[PATCH v2] x86/mtrr: Check if fixed MTRRs exist before saving them

From: Andi Kleen
Date: Wed Jan 10 2024 - 10:08:22 EST


This one place forgot to check the fixed capability. Otherwise there
will a harmless but ugly WARN_ON for the failed WRMSR when the MSR
doesn't exist. Noticed when testing X86S support.

Fixes: 2b1f6278d77c ("[PATCH] x86: Save the MTRRs of the BSP before")
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>

---

v2: Add Fixes tag and expand description.
---
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtrr.c
index 767bf1c71aad..2a2fc14955cd 100644
--- a/arch/x86/kernel/cpu/mtrr/mtrr.c
+++ b/arch/x86/kernel/cpu/mtrr/mtrr.c
@@ -609,7 +609,7 @@ void mtrr_save_state(void)
{
int first_cpu;

- if (!mtrr_enabled())
+ if (!mtrr_enabled() || !mtrr_state.have_fixed)
return;

first_cpu = cpumask_first(cpu_online_mask);
--
2.43.0