提交 416d49ac 编写于 作者: I Ingo Molnar

x86/fpu: Make kernel_fpu_disable/enable() static

This allows the compiler to inline them and to eliminate them:

   arch/x86/kernel/fpu/core.o:

   text    data     bss     dec     hex filename
   6741       4       8    6753    1a61 core.o.before
   6716       4       8    6728    1a48 core.o.after
Reviewed-by: NBorislav Petkov <bp@alien8.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: NIngo Molnar <mingo@kernel.org>
上级 f55f88e2
...@@ -54,10 +54,6 @@ static inline void kernel_fpu_end(void) ...@@ -54,10 +54,6 @@ static inline void kernel_fpu_end(void)
preempt_enable(); preempt_enable();
} }
/* Must be called with preempt disabled */
extern void kernel_fpu_disable(void);
extern void kernel_fpu_enable(void);
/* /*
* Some instructions like VIA's padlock instructions generate a spurious * Some instructions like VIA's padlock instructions generate a spurious
* DNA fault but don't modify SSE registers. And these instructions * DNA fault but don't modify SSE registers. And these instructions
......
...@@ -9,13 +9,13 @@ ...@@ -9,13 +9,13 @@
static DEFINE_PER_CPU(bool, in_kernel_fpu); static DEFINE_PER_CPU(bool, in_kernel_fpu);
void kernel_fpu_disable(void) static void kernel_fpu_disable(void)
{ {
WARN_ON(this_cpu_read(in_kernel_fpu)); WARN_ON(this_cpu_read(in_kernel_fpu));
this_cpu_write(in_kernel_fpu, true); this_cpu_write(in_kernel_fpu, true);
} }
void kernel_fpu_enable(void) static void kernel_fpu_enable(void)
{ {
this_cpu_write(in_kernel_fpu, false); this_cpu_write(in_kernel_fpu, false);
} }
...@@ -32,7 +32,7 @@ void kernel_fpu_enable(void) ...@@ -32,7 +32,7 @@ void kernel_fpu_enable(void)
* Except for the eagerfpu case when we return true; in the likely case * Except for the eagerfpu case when we return true; in the likely case
* the thread has FPU but we are not going to set/clear TS. * the thread has FPU but we are not going to set/clear TS.
*/ */
static inline bool interrupted_kernel_fpu_idle(void) static bool interrupted_kernel_fpu_idle(void)
{ {
if (this_cpu_read(in_kernel_fpu)) if (this_cpu_read(in_kernel_fpu))
return false; return false;
...@@ -52,7 +52,7 @@ static inline bool interrupted_kernel_fpu_idle(void) ...@@ -52,7 +52,7 @@ static inline bool interrupted_kernel_fpu_idle(void)
* in an interrupt context from user mode - we'll just * in an interrupt context from user mode - we'll just
* save the FPU state as required. * save the FPU state as required.
*/ */
static inline bool interrupted_user_mode(void) static bool interrupted_user_mode(void)
{ {
struct pt_regs *regs = get_irq_regs(); struct pt_regs *regs = get_irq_regs();
return regs && user_mode(regs); return regs && user_mode(regs);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册