diff options
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/signal.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c index edd9f07860b2..b8a0a7d257a9 100644 --- a/arch/ia64/kernel/signal.c +++ b/arch/ia64/kernel/signal.c | |||
@@ -143,6 +143,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr) | |||
143 | 143 | ||
144 | __copy_from_user(current->thread.fph, &sc->sc_fr[32], 96*16); | 144 | __copy_from_user(current->thread.fph, &sc->sc_fr[32], 96*16); |
145 | psr->mfh = 0; /* drop signal handler's fph contents... */ | 145 | psr->mfh = 0; /* drop signal handler's fph contents... */ |
146 | preempt_disable(); | ||
146 | if (psr->dfh) | 147 | if (psr->dfh) |
147 | ia64_drop_fpu(current); | 148 | ia64_drop_fpu(current); |
148 | else { | 149 | else { |
@@ -150,6 +151,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr) | |||
150 | __ia64_load_fpu(current->thread.fph); | 151 | __ia64_load_fpu(current->thread.fph); |
151 | ia64_set_local_fpu_owner(current); | 152 | ia64_set_local_fpu_owner(current); |
152 | } | 153 | } |
154 | preempt_enable(); | ||
153 | } | 155 | } |
154 | return err; | 156 | return err; |
155 | } | 157 | } |