x86/mtrr: Disentangle MTRR init from PAT init
authorJuergen Gross <jgross@suse.com>
Wed, 2 Nov 2022 07:47:04 +0000 (08:47 +0100)
committerBorislav Petkov <bp@suse.de>
Thu, 10 Nov 2022 12:12:44 +0000 (13:12 +0100)
commit7d71db537b01a6beadbe45a4e6e302272110c2c0
treecabf91f5054c2ee142f81bc4e5a6e1b61dd53158
parent23a63e369098a8503550d1df80f4b4801af32c19
x86/mtrr: Disentangle MTRR init from PAT init

Add a main cache_cpu_init() init routine which initializes MTRR and/or
PAT support depending on what has been detected on the system.

Leave the MTRR-specific initialization in a MTRR-specific init function
where the smp_changes_mask setting happens now with caches disabled.

This global mask update was done with caches enabled before probably
because atomic operations while running uncached might have been quite
expensive.

But since only systems with a broken BIOS should ever require to set any
bit in smp_changes_mask, hurting those devices with a penalty of a few
microseconds during boot shouldn't be a real issue.

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20221102074713.21493-8-jgross@suse.com
Signed-off-by: Borislav Petkov <bp@suse.de>
arch/x86/include/asm/cacheinfo.h
arch/x86/include/asm/mtrr.h
arch/x86/kernel/cpu/cacheinfo.c
arch/x86/kernel/cpu/mtrr/generic.c