linux/arch
Andi Kleen 8aa79dfb21 x86/mtrr: Check if fixed MTRRs exist before saving them
commit 919f18f961 upstream.

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: 2b1f6278d7 ("[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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-14 13:52:59 +02:00
..
alpha rtc: Add support for configuring the UIP timeout for RTC reads 2024-01-31 16:17:01 -08:00
arc ARC: [plat-hsdk]: Remove misplaced interrupt-cells property 2024-05-02 16:29:23 +02:00
arm ARM: spitz: fix GPIO assignment for backlight 2024-08-03 08:49:02 +02:00
arm64 arm64: errata: Expand speculative SSBS workaround (again) 2024-08-14 13:52:52 +02:00
csky csky, hexagon: fix broken sys_sync_file_range 2024-07-05 09:31:57 +02:00
hexagon hexagon: fix fadvise64_64 calling conventions 2024-07-05 09:31:57 +02:00
ia64 ia64/cpu: Switch to arch_cpu_finalize_init() 2023-08-08 20:03:46 +02:00
loongarch LoongArch: Fix callchain parse error with kernel tracepoint events again 2024-06-12 11:03:43 +02:00
m68k m68k: amiga: Turn off Warp1260 interrupts during boot 2024-08-03 08:49:34 +02:00
microblaze microblaze: Remove early printk call from cpuinfo-static.c 2024-06-12 11:03:39 +02:00
mips MIPS: dts: loongson: Fix ls2k1000-rtc interrupt 2024-08-11 12:35:55 +02:00
nios2 mm/fault: convert remaining simple cases to lock_mm_and_find_vma() 2023-07-01 13:16:25 +02:00
openrisc mm: always expand the stack with the mmap write lock held 2023-07-01 13:16:25 +02:00
parisc parisc: Fix warning at drivers/pci/msi/msi.h:121 2024-08-03 08:49:37 +02:00
powerpc powerpc/pseries: Avoid hcall in plpks_is_available() on non-pseries 2024-08-03 08:49:53 +02:00
riscv riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error() 2024-08-11 12:35:59 +02:00
s390 s390/pci: Allow allocation of more than 1 MSI interrupt 2024-08-03 08:49:52 +02:00
sh sh: rework sync_file_range ABI 2024-07-05 09:31:57 +02:00
sparc sparc64: Fix incorrect function signature and add prototype for prom_cif_init 2024-08-03 08:49:16 +02:00
um um: time-travel: fix signal blocking race/hang 2024-08-03 08:49:47 +02:00
x86 x86/mtrr: Check if fixed MTRRs exist before saving them 2024-08-14 13:52:59 +02:00
xtensa xtensa: fix MAKE_PC_FROM_RA second argument 2024-06-21 14:35:39 +02:00
.gitignore
Kconfig Revert "mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default" 2024-06-27 13:46:24 +02:00