Commit 67e87d43 authored by Borislav Petkov's avatar Borislav Petkov

x86: Convert some slow-path static_cpu_has() callers to boot_cpu_has()

Using static_cpu_has() is pointless on those paths, convert them to the
boot_cpu_has() variant.

No functional changes.
Reported-by: default avatarNadav Amit <nadav.amit@gmail.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Reviewed-by: default avatarRik van Riel <riel@surriel.com>
Reviewed-by: Juergen Gross <jgross@suse.com> # for paravirt
Cc: Aubrey Li <aubrey.li@intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Joerg Roedel <jroedel@suse.de>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Thomas Lendacky <Thomas.Lendacky@amd.com>
Cc: linux-edac@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: virtualization@lists.linux-foundation.org
Cc: x86@kernel.org
Link: https://lkml.kernel.org/r/20190330112022.28888-3-bp@alien8.de
parent bfdd5a67
...@@ -253,7 +253,7 @@ static inline void copy_xregs_to_kernel_booting(struct xregs_state *xstate) ...@@ -253,7 +253,7 @@ static inline void copy_xregs_to_kernel_booting(struct xregs_state *xstate)
WARN_ON(system_state != SYSTEM_BOOTING); WARN_ON(system_state != SYSTEM_BOOTING);
if (static_cpu_has(X86_FEATURE_XSAVES)) if (boot_cpu_has(X86_FEATURE_XSAVES))
XSTATE_OP(XSAVES, xstate, lmask, hmask, err); XSTATE_OP(XSAVES, xstate, lmask, hmask, err);
else else
XSTATE_OP(XSAVE, xstate, lmask, hmask, err); XSTATE_OP(XSAVE, xstate, lmask, hmask, err);
...@@ -275,7 +275,7 @@ static inline void copy_kernel_to_xregs_booting(struct xregs_state *xstate) ...@@ -275,7 +275,7 @@ static inline void copy_kernel_to_xregs_booting(struct xregs_state *xstate)
WARN_ON(system_state != SYSTEM_BOOTING); WARN_ON(system_state != SYSTEM_BOOTING);
if (static_cpu_has(X86_FEATURE_XSAVES)) if (boot_cpu_has(X86_FEATURE_XSAVES))
XSTATE_OP(XRSTORS, xstate, lmask, hmask, err); XSTATE_OP(XRSTORS, xstate, lmask, hmask, err);
else else
XSTATE_OP(XRSTOR, xstate, lmask, hmask, err); XSTATE_OP(XRSTOR, xstate, lmask, hmask, err);
...@@ -497,8 +497,7 @@ static inline void fpregs_activate(struct fpu *fpu) ...@@ -497,8 +497,7 @@ static inline void fpregs_activate(struct fpu *fpu)
* - switch_fpu_finish() restores the new state as * - switch_fpu_finish() restores the new state as
* necessary. * necessary.
*/ */
static inline void static inline void switch_fpu_prepare(struct fpu *old_fpu, int cpu)
switch_fpu_prepare(struct fpu *old_fpu, int cpu)
{ {
if (static_cpu_has(X86_FEATURE_FPU) && old_fpu->initialized) { if (static_cpu_has(X86_FEATURE_FPU) && old_fpu->initialized) {
if (!copy_fpregs_to_fpstate(old_fpu)) if (!copy_fpregs_to_fpstate(old_fpu))
......
...@@ -175,7 +175,7 @@ static void fixup_cpu_id(struct cpuinfo_x86 *c, int node) ...@@ -175,7 +175,7 @@ static void fixup_cpu_id(struct cpuinfo_x86 *c, int node)
this_cpu_write(cpu_llc_id, node); this_cpu_write(cpu_llc_id, node);
/* Account for nodes per socket in multi-core-module processors */ /* Account for nodes per socket in multi-core-module processors */
if (static_cpu_has(X86_FEATURE_NODEID_MSR)) { if (boot_cpu_has(X86_FEATURE_NODEID_MSR)) {
rdmsrl(MSR_FAM10H_NODE_ID, val); rdmsrl(MSR_FAM10H_NODE_ID, val);
nodes = ((val >> 3) & 7) + 1; nodes = ((val >> 3) & 7) + 1;
} }
......
...@@ -83,7 +83,7 @@ unsigned int aperfmperf_get_khz(int cpu) ...@@ -83,7 +83,7 @@ unsigned int aperfmperf_get_khz(int cpu)
if (!cpu_khz) if (!cpu_khz)
return 0; return 0;
if (!static_cpu_has(X86_FEATURE_APERFMPERF)) if (!boot_cpu_has(X86_FEATURE_APERFMPERF))
return 0; return 0;
aperfmperf_snapshot_cpu(cpu, ktime_get(), true); aperfmperf_snapshot_cpu(cpu, ktime_get(), true);
...@@ -99,7 +99,7 @@ void arch_freq_prepare_all(void) ...@@ -99,7 +99,7 @@ void arch_freq_prepare_all(void)
if (!cpu_khz) if (!cpu_khz)
return; return;
if (!static_cpu_has(X86_FEATURE_APERFMPERF)) if (!boot_cpu_has(X86_FEATURE_APERFMPERF))
return; return;
for_each_online_cpu(cpu) for_each_online_cpu(cpu)
...@@ -115,7 +115,7 @@ unsigned int arch_freq_get_on_cpu(int cpu) ...@@ -115,7 +115,7 @@ unsigned int arch_freq_get_on_cpu(int cpu)
if (!cpu_khz) if (!cpu_khz)
return 0; return 0;
if (!static_cpu_has(X86_FEATURE_APERFMPERF)) if (!boot_cpu_has(X86_FEATURE_APERFMPERF))
return 0; return 0;
if (aperfmperf_snapshot_cpu(cpu, ktime_get(), true)) if (aperfmperf_snapshot_cpu(cpu, ktime_get(), true))
......
...@@ -1668,7 +1668,7 @@ static void setup_getcpu(int cpu) ...@@ -1668,7 +1668,7 @@ static void setup_getcpu(int cpu)
unsigned long cpudata = vdso_encode_cpunode(cpu, early_cpu_to_node(cpu)); unsigned long cpudata = vdso_encode_cpunode(cpu, early_cpu_to_node(cpu));
struct desc_struct d = { }; struct desc_struct d = { };
if (static_cpu_has(X86_FEATURE_RDTSCP)) if (boot_cpu_has(X86_FEATURE_RDTSCP))
write_rdtscp_aux(cpudata); write_rdtscp_aux(cpudata);
/* Store CPU and node number in limit. */ /* Store CPU and node number in limit. */
......
...@@ -528,7 +528,7 @@ static void do_inject(void) ...@@ -528,7 +528,7 @@ static void do_inject(void)
* only on the node base core. Refer to D18F3x44[NbMcaToMstCpuEn] for * only on the node base core. Refer to D18F3x44[NbMcaToMstCpuEn] for
* Fam10h and later BKDGs. * Fam10h and later BKDGs.
*/ */
if (static_cpu_has(X86_FEATURE_AMD_DCM) && if (boot_cpu_has(X86_FEATURE_AMD_DCM) &&
b == 4 && b == 4 &&
boot_cpu_data.x86 < 0x17) { boot_cpu_data.x86 < 0x17) {
toggle_nb_mca_mst_cpu(amd_get_nb_id(cpu)); toggle_nb_mca_mst_cpu(amd_get_nb_id(cpu));
......
...@@ -35,11 +35,11 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c) ...@@ -35,11 +35,11 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
"fpu_exception\t: %s\n" "fpu_exception\t: %s\n"
"cpuid level\t: %d\n" "cpuid level\t: %d\n"
"wp\t\t: yes\n", "wp\t\t: yes\n",
static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no", boot_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no",
static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no", boot_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no",
static_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no", boot_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no",
static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no", boot_cpu_has(X86_FEATURE_FPU) ? "yes" : "no",
static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no", boot_cpu_has(X86_FEATURE_FPU) ? "yes" : "no",
c->cpuid_level); c->cpuid_level);
} }
#else #else
......
...@@ -113,7 +113,7 @@ static void do_sanity_check(struct mm_struct *mm, ...@@ -113,7 +113,7 @@ static void do_sanity_check(struct mm_struct *mm,
* tables. * tables.
*/ */
WARN_ON(!had_kernel_mapping); WARN_ON(!had_kernel_mapping);
if (static_cpu_has(X86_FEATURE_PTI)) if (boot_cpu_has(X86_FEATURE_PTI))
WARN_ON(!had_user_mapping); WARN_ON(!had_user_mapping);
} else { } else {
/* /*
...@@ -121,7 +121,7 @@ static void do_sanity_check(struct mm_struct *mm, ...@@ -121,7 +121,7 @@ static void do_sanity_check(struct mm_struct *mm,
* Sync the pgd to the usermode tables. * Sync the pgd to the usermode tables.
*/ */
WARN_ON(had_kernel_mapping); WARN_ON(had_kernel_mapping);
if (static_cpu_has(X86_FEATURE_PTI)) if (boot_cpu_has(X86_FEATURE_PTI))
WARN_ON(had_user_mapping); WARN_ON(had_user_mapping);
} }
} }
...@@ -156,7 +156,7 @@ static void map_ldt_struct_to_user(struct mm_struct *mm) ...@@ -156,7 +156,7 @@ static void map_ldt_struct_to_user(struct mm_struct *mm)
k_pmd = pgd_to_pmd_walk(k_pgd, LDT_BASE_ADDR); k_pmd = pgd_to_pmd_walk(k_pgd, LDT_BASE_ADDR);
u_pmd = pgd_to_pmd_walk(u_pgd, LDT_BASE_ADDR); u_pmd = pgd_to_pmd_walk(u_pgd, LDT_BASE_ADDR);
if (static_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt) if (boot_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt)
set_pmd(u_pmd, *k_pmd); set_pmd(u_pmd, *k_pmd);
} }
...@@ -181,7 +181,7 @@ static void map_ldt_struct_to_user(struct mm_struct *mm) ...@@ -181,7 +181,7 @@ static void map_ldt_struct_to_user(struct mm_struct *mm)
{ {
pgd_t *pgd = pgd_offset(mm, LDT_BASE_ADDR); pgd_t *pgd = pgd_offset(mm, LDT_BASE_ADDR);
if (static_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt) if (boot_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt)
set_pgd(kernel_to_user_pgdp(pgd), *pgd); set_pgd(kernel_to_user_pgdp(pgd), *pgd);
} }
...@@ -208,7 +208,7 @@ map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot) ...@@ -208,7 +208,7 @@ map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot)
spinlock_t *ptl; spinlock_t *ptl;
int i, nr_pages; int i, nr_pages;
if (!static_cpu_has(X86_FEATURE_PTI)) if (!boot_cpu_has(X86_FEATURE_PTI))
return 0; return 0;
/* /*
...@@ -271,7 +271,7 @@ static void unmap_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt) ...@@ -271,7 +271,7 @@ static void unmap_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt)
return; return;
/* LDT map/unmap is only required for PTI */ /* LDT map/unmap is only required for PTI */
if (!static_cpu_has(X86_FEATURE_PTI)) if (!boot_cpu_has(X86_FEATURE_PTI))
return; return;
nr_pages = DIV_ROUND_UP(ldt->nr_entries * LDT_ENTRY_SIZE, PAGE_SIZE); nr_pages = DIV_ROUND_UP(ldt->nr_entries * LDT_ENTRY_SIZE, PAGE_SIZE);
...@@ -311,7 +311,7 @@ static void free_ldt_pgtables(struct mm_struct *mm) ...@@ -311,7 +311,7 @@ static void free_ldt_pgtables(struct mm_struct *mm)
unsigned long start = LDT_BASE_ADDR; unsigned long start = LDT_BASE_ADDR;
unsigned long end = LDT_END_ADDR; unsigned long end = LDT_END_ADDR;
if (!static_cpu_has(X86_FEATURE_PTI)) if (!boot_cpu_has(X86_FEATURE_PTI))
return; return;
tlb_gather_mmu(&tlb, mm, start, end); tlb_gather_mmu(&tlb, mm, start, end);
......
...@@ -121,7 +121,7 @@ DEFINE_STATIC_KEY_TRUE(virt_spin_lock_key); ...@@ -121,7 +121,7 @@ DEFINE_STATIC_KEY_TRUE(virt_spin_lock_key);
void __init native_pv_lock_init(void) void __init native_pv_lock_init(void)
{ {
if (!static_cpu_has(X86_FEATURE_HYPERVISOR)) if (!boot_cpu_has(X86_FEATURE_HYPERVISOR))
static_branch_disable(&virt_spin_lock_key); static_branch_disable(&virt_spin_lock_key);
} }
......
...@@ -236,7 +236,7 @@ static int get_cpuid_mode(void) ...@@ -236,7 +236,7 @@ static int get_cpuid_mode(void)
static int set_cpuid_mode(struct task_struct *task, unsigned long cpuid_enabled) static int set_cpuid_mode(struct task_struct *task, unsigned long cpuid_enabled)
{ {
if (!static_cpu_has(X86_FEATURE_CPUID_FAULT)) if (!boot_cpu_has(X86_FEATURE_CPUID_FAULT))
return -ENODEV; return -ENODEV;
if (cpuid_enabled) if (cpuid_enabled)
...@@ -666,7 +666,7 @@ static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) ...@@ -666,7 +666,7 @@ static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c)
if (c->x86_vendor != X86_VENDOR_INTEL) if (c->x86_vendor != X86_VENDOR_INTEL)
return 0; return 0;
if (!cpu_has(c, X86_FEATURE_MWAIT) || static_cpu_has_bug(X86_BUG_MONITOR)) if (!cpu_has(c, X86_FEATURE_MWAIT) || boot_cpu_has_bug(X86_BUG_MONITOR))
return 0; return 0;
return 1; return 1;
......
...@@ -108,7 +108,7 @@ void __noreturn machine_real_restart(unsigned int type) ...@@ -108,7 +108,7 @@ void __noreturn machine_real_restart(unsigned int type)
write_cr3(real_mode_header->trampoline_pgd); write_cr3(real_mode_header->trampoline_pgd);
/* Exiting long mode will fail if CR4.PCIDE is set. */ /* Exiting long mode will fail if CR4.PCIDE is set. */
if (static_cpu_has(X86_FEATURE_PCID)) if (boot_cpu_has(X86_FEATURE_PCID))
cr4_clear_bits(X86_CR4_PCIDE); cr4_clear_bits(X86_CR4_PCIDE);
#endif #endif
......
...@@ -369,7 +369,7 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus) ...@@ -369,7 +369,7 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus)
preempt_disable(); preempt_disable();
tsk->thread.sp0 += 16; tsk->thread.sp0 += 16;
if (static_cpu_has(X86_FEATURE_SEP)) { if (boot_cpu_has(X86_FEATURE_SEP)) {
tsk->thread.sysenter_cs = 0; tsk->thread.sysenter_cs = 0;
refresh_sysenter_cs(&tsk->thread); refresh_sysenter_cs(&tsk->thread);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment