Andi Kleen 919f18f961 x86/mtrr: Check if fixed MTRRs exist before saving them
MTRRs have an obsolete fixed variant for fine grained caching control
of the 640K-1MB region that uses separate MSRs. This fixed variant has
a separate capability bit in the MTRR capability MSR.

So far all x86 CPUs which support MTRR have this separate bit set, so it
went unnoticed that mtrr_save_state() does not check the capability bit
before accessing the fixed MTRR MSRs.

Though on a CPU that does not support the fixed MTRR capability this
results in a #GP.  The #GP itself is harmless because the RDMSR fault is
handled gracefully, but results in a WARN_ON().

Add the missing capability check to prevent this.

Fixes: 2b1f6278d77c ("[PATCH] x86: Save the MTRRs of the BSP before booting an AP")
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/20240808000244.946864-1-ak@linux.intel.com
2024-08-08 17:03:12 +02:00
..
2024-05-17 18:29:30 -07:00
2024-07-16 13:45:43 -07:00
2023-08-17 17:07:09 +02:00
2023-12-15 16:25:55 -08:00
2024-05-13 18:21:24 -07:00
2024-05-13 18:21:24 -07:00
2024-04-25 20:55:49 -07:00
2024-04-09 09:48:09 +02:00
2024-07-11 11:55:58 +02:00
2021-12-01 00:06:43 +01:00
2022-12-10 10:33:11 -06:00
2024-04-03 08:24:48 -07:00
2023-12-27 11:49:56 -05:00
2022-02-25 09:36:05 +01:00
2022-09-26 19:46:16 -07:00
2024-03-11 19:53:15 -07:00
2022-04-14 14:09:43 +02:00