Linux Patch #1
PATCH v6 1/10 Linux Patch #1
Combine the various logic which goes through all those x86_cpu_id matching structures in one function.
xSuggested-by Borislav Petkov <[email protected]>
xReviewed-by Borislav Petkov <[email protected]>
Signed-off-by Konrad Rzeszutek Wilk <[email protected]>
---
v2: New patch
v3: Added Reviewed-by
v4: Changed title of the patch
--- arch/x86/kernel/cpu/common.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-)
arch/x86/kernel/cpu/common.c +11 -10
@@ -923,21 +923,27 @@ static const __initconst struct x86_cpu_id cpu_no_meltdown[] = { {} }; -static bool __init cpu_vulnerable_to_meltdown (struct cpuinfo_x86 *c) +static void __init cpu_set_bug_bits (struct cpuinfo_x86 *c) {u64 ia32_cap =0 ; +if (x86_match_cpu (cpu_no_speculation)) +return ; + +setup_force_cpu_bug (X86_BUG_SPECTRE_V1 ); +setup_force_cpu_bug (X86_BUG_SPECTRE_V2 ); +if (x86_match_cpu (cpu_no_meltdown)) -return false; +return ;if (cpu_has (c,X86_FEATURE_ARCH_CAPABILITIES ))rdmsrl (MSR_IA32_ARCH_CAPABILITIES , ia32_cap);/* Rogue Data Cache Load? No! */ if (ia32_cap &ARCH_CAP_RDCL_NO ) -return false; +return ; -return true; +setup_force_cpu_bug (X86_BUG_CPU_MELTDOWN ); }/*
@@ -988,12 +994,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)setup_force_cpu_cap (X86_FEATURE_ALWAYS ); -if (!x86_match_cpu (cpu_no_speculation)) { -if (cpu_vulnerable_to_meltdown (c)) -setup_force_cpu_bug (X86_BUG_CPU_MELTDOWN ); -setup_force_cpu_bug (X86_BUG_SPECTRE_V1 ); -setup_force_cpu_bug (X86_BUG_SPECTRE_V2 ); - } +cpu_set_bug_bits (c);fpu__init_system (c);
Signature · 1 line
2.14.3