35 lines
1.3 KiB
Diff
35 lines
1.3 KiB
Diff
From 66ba6c9e2893bd2f7659286627b05c37312994db Mon Sep 17 00:00:00 2001
|
|
From: David Hildenbrand <dahi@linux.vnet.ibm.com>
|
|
Date: Mon, 11 May 2015 17:52:19 +0200
|
|
Subject: [PATCH 13/14] mips: properly lock access to the fpu
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.0/patches-4.0.4-rt1.tar.xz
|
|
|
|
Let's always disable preemption and pagefaults when locking the fpu,
|
|
so we can be sure that the owner won't change in between.
|
|
|
|
This is a preparation for pagefault_disable() not touching preemption
|
|
anymore.
|
|
|
|
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
|
|
---
|
|
arch/mips/kernel/signal-common.h | 9 ++-------
|
|
1 file changed, 2 insertions(+), 7 deletions(-)
|
|
|
|
--- a/arch/mips/kernel/signal-common.h
|
|
+++ b/arch/mips/kernel/signal-common.h
|
|
@@ -28,12 +28,7 @@ extern void __user *get_sigframe(struct
|
|
extern int fpcsr_pending(unsigned int __user *fpcsr);
|
|
|
|
/* Make sure we will not lose FPU ownership */
|
|
-#ifdef CONFIG_PREEMPT
|
|
-#define lock_fpu_owner() preempt_disable()
|
|
-#define unlock_fpu_owner() preempt_enable()
|
|
-#else
|
|
-#define lock_fpu_owner() pagefault_disable()
|
|
-#define unlock_fpu_owner() pagefault_enable()
|
|
-#endif
|
|
+#define lock_fpu_owner() ({ preempt_disable(); pagefault_disable(); })
|
|
+#define unlock_fpu_owner() ({ pagefault_enable(); preempt_enable(); })
|
|
|
|
#endif /* __SIGNAL_COMMON_H */
|