[PATCH] x86/fixmap: Set the debugstore fixmap entries on Intel only

From: Borislav Petkov
Date: Fri Dec 15 2017 - 07:47:50 EST


From: Borislav Petkov <bp@xxxxxxx>

No need to setup those during boot on !Intel vendors.

Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirsky <luto@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: keescook@xxxxxxxxxx
Cc: hughd@xxxxxxxxxx
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: David Laight <David.Laight@xxxxxxxxxx>
Cc: Eduardo Valentin <eduval@xxxxxxxxxx>
Cc: aliguori@xxxxxxxxxx
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: daniel.gruss@xxxxxxxxxxxxxx
---
arch/x86/kernel/cpu/common.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 7b2988e521a7..bca5570d40bc 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -582,12 +582,16 @@ static void __init setup_cpu_entry_area(int cpu)

#ifdef CONFIG_CPU_SUP_INTEL
BUILD_BUG_ON(sizeof(struct debug_store) % PAGE_SIZE != 0);
- set_percpu_fixmap_pages(get_cpu_entry_area_index(cpu, cpu_debug_store),
- &per_cpu(cpu_debug_store, cpu),
- sizeof(struct debug_store) / PAGE_SIZE,
- PAGE_KERNEL);
- set_percpu_fixmap_ptes(get_cpu_entry_area_index(cpu, cpu_debug_buffers),
- sizeof(struct debug_store_buffers) / PAGE_SIZE);
+
+ if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) {
+ set_percpu_fixmap_pages(get_cpu_entry_area_index(cpu, cpu_debug_store),
+ &per_cpu(cpu_debug_store, cpu),
+ sizeof(struct debug_store) / PAGE_SIZE,
+ PAGE_KERNEL);
+
+ set_percpu_fixmap_ptes(get_cpu_entry_area_index(cpu, cpu_debug_buffers),
+ sizeof(struct debug_store_buffers) / PAGE_SIZE);
+ }
#endif
set_percpu_fixmap_ptes(get_cpu_entry_area_index(cpu, ldt_entries),
(LDT_ENTRIES * LDT_ENTRY_SIZE) / PAGE_SIZE);
--
2.13.0