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
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)
#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);
}
/*