diff options
-rw-r--r-- | arch/x86/kernel/xsave.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c index cf0b83040ec8..4c540c4719d8 100644 --- a/arch/x86/kernel/xsave.c +++ b/arch/x86/kernel/xsave.c | |||
@@ -400,8 +400,11 @@ int __restore_xstate_sig(void __user *buf, void __user *buf_fx, int size) | |||
400 | set_used_math(); | 400 | set_used_math(); |
401 | } | 401 | } |
402 | 402 | ||
403 | if (use_eager_fpu()) | 403 | if (use_eager_fpu()) { |
404 | preempt_disable(); | ||
404 | math_state_restore(); | 405 | math_state_restore(); |
406 | preempt_enable(); | ||
407 | } | ||
405 | 408 | ||
406 | return err; | 409 | return err; |
407 | } else { | 410 | } else { |