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

Message ID 20240110150806.22531-1-ak@linux.intel.com
State New
Headers
Series [v2] x86/mtrr: Check if fixed MTRRs exist before saving them |

Commit Message

Andi Kleen Jan. 10, 2024, 3:08 p.m. UTC
  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@linux.intel.com>

---

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

Comments

Andi Kleen Feb. 28, 2024, 4:52 p.m. UTC | #1
On Wed, Jan 10, 2024 at 07:08:06AM -0800, Andi Kleen wrote:
> 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@linux.intel.com>
> 
> ---
> 
> v2: Add Fixes tag and expand description.

Just wanted to ping the patch. Thanks.

-Andi


> ---
>  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
>
  
Thomas Gleixner Feb. 28, 2024, 11:26 p.m. UTC | #2
On Wed, Jan 10 2024 at 07:08, Andi Kleen wrote:
> This one place forgot to check the fixed capability.

This one place forgot? And what the heck is a fixed capability? 

> Otherwise there will a harmless but ugly WARN_ON for the failed WRMSR
> when the MSR doesn't exist.

This is not a sentence as it lacks a verb,

Also it does not matter whether you think that the WARN_ON() is ugly or
not. Can you please write a changelog in technical terms?

> Noticed when testing X86S support.

Who cares?

> Fixes: 2b1f6278d77c ("[PATCH] x86: Save the MTRRs of the BSP before")

This fixes tag is pointlessly truncated. The correct one is:

Fixes: 2b1f6278d77c ("[PATCH] x86: Save the MTRRs of the BSP before booting an AP")

It's not rocket science to copy & pasta correctly.

Thanks,

        tglx
  

Patch

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);