Commit 5f1dd4dd authored by Borislav Petkov's avatar Borislav Petkov

x86/fsgsbase: Replace static_cpu_has() with boot_cpu_has()

ptrace and prctl() are not really fast paths to warrant the use of
static_cpu_has() and cause alternatives patching for no good reason.
Replace with boot_cpu_has() which is simple and fast enough.

No functional changes.
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20200818103715.32736-1-bp@alien8.de
parent 0b2c605f
...@@ -57,7 +57,7 @@ static inline unsigned long x86_fsbase_read_cpu(void) ...@@ -57,7 +57,7 @@ static inline unsigned long x86_fsbase_read_cpu(void)
{ {
unsigned long fsbase; unsigned long fsbase;
if (static_cpu_has(X86_FEATURE_FSGSBASE)) if (boot_cpu_has(X86_FEATURE_FSGSBASE))
fsbase = rdfsbase(); fsbase = rdfsbase();
else else
rdmsrl(MSR_FS_BASE, fsbase); rdmsrl(MSR_FS_BASE, fsbase);
...@@ -67,7 +67,7 @@ static inline unsigned long x86_fsbase_read_cpu(void) ...@@ -67,7 +67,7 @@ static inline unsigned long x86_fsbase_read_cpu(void)
static inline void x86_fsbase_write_cpu(unsigned long fsbase) static inline void x86_fsbase_write_cpu(unsigned long fsbase)
{ {
if (static_cpu_has(X86_FEATURE_FSGSBASE)) if (boot_cpu_has(X86_FEATURE_FSGSBASE))
wrfsbase(fsbase); wrfsbase(fsbase);
else else
wrmsrl(MSR_FS_BASE, fsbase); wrmsrl(MSR_FS_BASE, fsbase);
......
...@@ -407,7 +407,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void) ...@@ -407,7 +407,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void)
{ {
unsigned long gsbase; unsigned long gsbase;
if (static_cpu_has(X86_FEATURE_FSGSBASE)) { if (boot_cpu_has(X86_FEATURE_FSGSBASE)) {
unsigned long flags; unsigned long flags;
local_irq_save(flags); local_irq_save(flags);
...@@ -422,7 +422,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void) ...@@ -422,7 +422,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void)
void x86_gsbase_write_cpu_inactive(unsigned long gsbase) void x86_gsbase_write_cpu_inactive(unsigned long gsbase)
{ {
if (static_cpu_has(X86_FEATURE_FSGSBASE)) { if (boot_cpu_has(X86_FEATURE_FSGSBASE)) {
unsigned long flags; unsigned long flags;
local_irq_save(flags); local_irq_save(flags);
...@@ -439,7 +439,7 @@ unsigned long x86_fsbase_read_task(struct task_struct *task) ...@@ -439,7 +439,7 @@ unsigned long x86_fsbase_read_task(struct task_struct *task)
if (task == current) if (task == current)
fsbase = x86_fsbase_read_cpu(); fsbase = x86_fsbase_read_cpu();
else if (static_cpu_has(X86_FEATURE_FSGSBASE) || else if (boot_cpu_has(X86_FEATURE_FSGSBASE) ||
(task->thread.fsindex == 0)) (task->thread.fsindex == 0))
fsbase = task->thread.fsbase; fsbase = task->thread.fsbase;
else else
...@@ -454,7 +454,7 @@ unsigned long x86_gsbase_read_task(struct task_struct *task) ...@@ -454,7 +454,7 @@ unsigned long x86_gsbase_read_task(struct task_struct *task)
if (task == current) if (task == current)
gsbase = x86_gsbase_read_cpu_inactive(); gsbase = x86_gsbase_read_cpu_inactive();
else if (static_cpu_has(X86_FEATURE_FSGSBASE) || else if (boot_cpu_has(X86_FEATURE_FSGSBASE) ||
(task->thread.gsindex == 0)) (task->thread.gsindex == 0))
gsbase = task->thread.gsbase; gsbase = task->thread.gsbase;
else else
......
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