diff options
-rw-r--r-- | arch/x86/include/asm/fpu/api.h | 15 | ||||
-rw-r--r-- | arch/x86/kernel/fpu/core.c | 15 |
2 files changed, 17 insertions, 13 deletions
diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h index eeac3766d8e5..d4ab9e3af234 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -39,19 +39,8 @@ extern bool irq_fpu_usable(void); */ extern void __kernel_fpu_begin(void); extern void __kernel_fpu_end(void); - -static inline void kernel_fpu_begin(void) -{ - preempt_disable(); - WARN_ON_ONCE(!irq_fpu_usable()); - __kernel_fpu_begin(); -} - -static inline void kernel_fpu_end(void) -{ - __kernel_fpu_end(); - preempt_enable(); -} +extern void kernel_fpu_begin(void); +extern void kernel_fpu_end(void); /* * Some instructions like VIA's padlock instructions generate a spurious diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c index 3d2ec4bd7f8c..8323a2a5241c 100644 --- a/arch/x86/kernel/fpu/core.c +++ b/arch/x86/kernel/fpu/core.c @@ -125,6 +125,21 @@ void __kernel_fpu_end(void) } EXPORT_SYMBOL(__kernel_fpu_end); +void kernel_fpu_begin(void) +{ + preempt_disable(); + WARN_ON_ONCE(!irq_fpu_usable()); + __kernel_fpu_begin(); +} +EXPORT_SYMBOL_GPL(kernel_fpu_begin); + +void kernel_fpu_end(void) +{ + __kernel_fpu_end(); + preempt_enable(); +} +EXPORT_SYMBOL_GPL(kernel_fpu_end); + static void __save_fpu(struct fpu *fpu) { if (use_xsave()) { |