if (xen_pv_domain())
ignore = true;
- if (boot_cpu_has(X86_FEATURE_IBRS)) {
+ if (cpu_has(c, X86_FEATURE_IBRS)) {
printk_once(KERN_INFO "FEATURE SPEC_CTRL Present%s\n",
ignore ? " but ignored (Xen)": "");
} else {
printk(KERN_INFO "FEATURE SPEC_CTRL Not Present\n");
}
- if (boot_cpu_has(X86_FEATURE_IBPB)) {
+ if (cpu_has(c, X86_FEATURE_IBPB)) {
printk_once(KERN_INFO "FEATURE IBPB Present%s\n",
ignore ? " but ignored (Xen)": "");
} else {
if ((cpu_has(c, X86_FEATURE_IBRS) ||
cpu_has(c, X86_FEATURE_STIBP)) && bad_spectre_microcode(c)) {
- if (&boot_cpu_data == c)
+ if (c->cpu_index == 0)
pr_warn("Intel Spectre v2 broken microcode detected; disabling SPEC_CTRL/IBRS\n");
clear_cpu_cap(c, X86_FEATURE_IBRS);
clear_cpu_cap(c, X86_FEATURE_IBPB);
clear_cpu_cap(c, X86_FEATURE_STIBP);
}
- if (&boot_cpu_data == c) {
+ if (c->cpu_index == 0) {
mutex_lock(&spec_ctrl_mutex);
if (cpu_has(c, X86_FEATURE_IBRS)) {
set_ibrs_supported();