]> Git Repo - linux.git/commitdiff
x86/fsgsbase: Replace static_cpu_has() with boot_cpu_has()
authorBorislav Petkov <[email protected]>
Tue, 18 Aug 2020 10:28:31 +0000 (12:28 +0200)
committerBorislav Petkov <[email protected]>
Mon, 24 Aug 2020 16:18:32 +0000 (18:18 +0200)
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: Borislav Petkov <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
arch/x86/include/asm/fsgsbase.h
arch/x86/kernel/process_64.c

index d552646411a9d5176737ea54a91530cb98d822dc..35cff5f2becf6bcbbdc34a890f29d3ba197e100d 100644 (file)
@@ -57,7 +57,7 @@ static inline unsigned long x86_fsbase_read_cpu(void)
 {
        unsigned long fsbase;
 
-       if (static_cpu_has(X86_FEATURE_FSGSBASE))
+       if (boot_cpu_has(X86_FEATURE_FSGSBASE))
                fsbase = rdfsbase();
        else
                rdmsrl(MSR_FS_BASE, fsbase);
@@ -67,7 +67,7 @@ static inline unsigned long x86_fsbase_read_cpu(void)
 
 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);
        else
                wrmsrl(MSR_FS_BASE, fsbase);
index 9afefe325acb1f0425ef9f2bf12451fbc778b7bc..df342bedea88afc1e8571d6e20024bf477569c82 100644 (file)
@@ -407,7 +407,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void)
 {
        unsigned long gsbase;
 
-       if (static_cpu_has(X86_FEATURE_FSGSBASE)) {
+       if (boot_cpu_has(X86_FEATURE_FSGSBASE)) {
                unsigned long flags;
 
                local_irq_save(flags);
@@ -422,7 +422,7 @@ unsigned long x86_gsbase_read_cpu_inactive(void)
 
 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;
 
                local_irq_save(flags);
@@ -439,7 +439,7 @@ unsigned long x86_fsbase_read_task(struct task_struct *task)
 
        if (task == current)
                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))
                fsbase = task->thread.fsbase;
        else
@@ -454,7 +454,7 @@ unsigned long x86_gsbase_read_task(struct task_struct *task)
 
        if (task == current)
                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))
                gsbase = task->thread.gsbase;
        else
This page took 0.063998 seconds and 4 git commands to generate.