]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
x86: Display correct settings for the SPECTRE_V2 bug
authorKanth Ghatraju <kanth.ghatraju@oracle.com>
Thu, 11 Jan 2018 22:27:49 +0000 (17:27 -0500)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 17 Jan 2018 20:28:56 +0000 (15:28 -0500)
Update the display message for spectre v2. Move the set up of the
bug bits to identify_cpu routine to remain persistent. This
routine reinitializes the data structure.

Orabug: 27353383

Signed-off-by: Kanth Ghatraju <kanth.ghatraju@oracle.com>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/kernel/cpu/bugs_64.c
arch/x86/kernel/cpu/common.c

index 6a9b2a18156c1b4407c04dea8b9a0c88178cd0b8..90bce302496392b57891f8c88f0922426e5bd7fe 100644 (file)
@@ -54,9 +54,12 @@ ssize_t cpu_show_spectre_v1(struct device *dev,
 ssize_t cpu_show_spectre_v2(struct device *dev,
                            struct device_attribute *attr, char *buf)
 {
-       if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V2) ||
-           (ibrs_inuse && ibpb_inuse))
+       if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V2))
                return sprintf(buf, "Not affected\n");
+       if (ibrs_inuse && ibpb_inuse)
+               return sprintf(buf, "Mitigation: IBRS IBPB\n");
+       if (ibpb_inuse && !ibrs_inuse)
+               return sprintf(buf, "Mitigation: IBPB\n");
        return sprintf(buf, "Vulnerable\n");
 }
 #endif
index 9d82ca57f2eab2df358cffb62d12ad69b07a55b9..975a113faefc1b15a537ae32ebd7eda5b96af86a 100644 (file)
@@ -842,14 +842,6 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
                this_cpu->c_bsp_init(c);
 
        setup_force_cpu_cap(X86_FEATURE_ALWAYS);
-
-       if (c->x86_vendor != X86_VENDOR_AMD)
-               setup_force_cpu_bug(X86_BUG_CPU_MELTDOWN);
-
-       /* Mitigation for SPECTRE_V1 already in place */
-       /* setup_force_cpu_bug(X86_BUG_SPECTRE_V1); */
-
-       setup_force_cpu_bug(X86_BUG_SPECTRE_V2);
 }
 
 void __init early_cpu_init(void)
@@ -1078,6 +1070,14 @@ static void identify_cpu(struct cpuinfo_x86 *c)
 #ifdef CONFIG_NUMA
        numa_add_cpu(smp_processor_id());
 #endif
+
+       if (c->x86_vendor != X86_VENDOR_AMD)
+               setup_force_cpu_bug(X86_BUG_CPU_MELTDOWN);
+
+       /* Mitigation for SPECTRE_V1 already in place */
+       /* setup_force_cpu_bug(X86_BUG_SPECTRE_V1); */
+
+       setup_force_cpu_bug(X86_BUG_SPECTRE_V2);
 }
 
 /*