diff options
author | Ingo Molnar <mingo@kernel.org> | 2018-10-08 11:41:59 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-10-08 11:45:04 +0300 |
commit | ec3a94188df7d28b374868d9a2a0face910e62ab (patch) | |
tree | fb89d6eecb6d7f4d6c880dfa05866499f1f469b4 | |
parent | 22245bdf0ad805d6c29f82b6d5e977ee94bb2166 (diff) | |
download | linux-ec3a94188df7d28b374868d9a2a0face910e62ab.tar.xz |
x86/fsgsbase/64: Clean up various details
So:
- use 'extern' consistently for APIs
- fix weird header guard
- clarify code comments
- reorder APIs by type
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Chang S. Bae <chang.seok.bae@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Markus T Metzger <markus.t.metzger@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Shankar <ravi.v.shankar@intel.com>
Cc: Rik van Riel <riel@surriel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/1537312139-5580-2-git-send-email-chang.seok.bae@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | arch/x86/entry/vdso/vgetcpu.c | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/fsgsbase.h | 22 |
2 files changed, 13 insertions, 10 deletions
diff --git a/arch/x86/entry/vdso/vgetcpu.c b/arch/x86/entry/vdso/vgetcpu.c index edd214f5264d..f86ab0ae1777 100644 --- a/arch/x86/entry/vdso/vgetcpu.c +++ b/arch/x86/entry/vdso/vgetcpu.c @@ -14,6 +14,7 @@ notrace long __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused) { vdso_read_cpunode(cpu, node); + return 0; } diff --git a/arch/x86/include/asm/fsgsbase.h b/arch/x86/include/asm/fsgsbase.h index 5e9cbcce318a..eb377b6e9eed 100644 --- a/arch/x86/include/asm/fsgsbase.h +++ b/arch/x86/include/asm/fsgsbase.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_FSGSBASE_H -#define _ASM_FSGSBASE_H 1 +#define _ASM_FSGSBASE_H #ifndef __ASSEMBLY__ @@ -9,14 +9,15 @@ #include <asm/msr-index.h> /* - * Read/write a task's fsbase or gsbase. This returns the value that + * Read/write a task's FSBASE or GSBASE. This returns the value that * the FS/GS base would have (if the task were to be resumed). These - * work on current or on a different non-running task. + * work on the current task or on a non-running (typically stopped + * ptrace child) task. */ -unsigned long x86_fsbase_read_task(struct task_struct *task); -unsigned long x86_gsbase_read_task(struct task_struct *task); -int x86_fsbase_write_task(struct task_struct *task, unsigned long fsbase); -int x86_gsbase_write_task(struct task_struct *task, unsigned long gsbase); +extern unsigned long x86_fsbase_read_task(struct task_struct *task); +extern unsigned long x86_gsbase_read_task(struct task_struct *task); +extern int x86_fsbase_write_task(struct task_struct *task, unsigned long fsbase); +extern int x86_gsbase_write_task(struct task_struct *task, unsigned long gsbase); /* Helper functions for reading/writing FS/GS base */ @@ -25,20 +26,21 @@ static inline unsigned long x86_fsbase_read_cpu(void) unsigned long fsbase; rdmsrl(MSR_FS_BASE, fsbase); + return fsbase; } -void x86_fsbase_write_cpu(unsigned long fsbase); - static inline unsigned long x86_gsbase_read_cpu_inactive(void) { unsigned long gsbase; rdmsrl(MSR_KERNEL_GS_BASE, gsbase); + return gsbase; } -void x86_gsbase_write_cpu_inactive(unsigned long gsbase); +extern void x86_fsbase_write_cpu(unsigned long fsbase); +extern void x86_gsbase_write_cpu_inactive(unsigned long gsbase); #endif /* CONFIG_X86_64 */ |