aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/fpu/signal.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c
index 060d6188b453..0071b794ed19 100644
--- a/arch/x86/kernel/fpu/signal.c
+++ b/arch/x86/kernel/fpu/signal.c
@@ -62,6 +62,11 @@ static inline int save_fsave_header(struct task_struct *tsk, void __user *buf)
62 struct user_i387_ia32_struct env; 62 struct user_i387_ia32_struct env;
63 struct _fpstate_32 __user *fp = buf; 63 struct _fpstate_32 __user *fp = buf;
64 64
65 fpregs_lock();
66 if (!test_thread_flag(TIF_NEED_FPU_LOAD))
67 copy_fxregs_to_kernel(&tsk->thread.fpu);
68 fpregs_unlock();
69
65 convert_from_fxsr(&env, tsk); 70 convert_from_fxsr(&env, tsk);
66 71
67 if (__copy_to_user(buf, &env, sizeof(env)) || 72 if (__copy_to_user(buf, &env, sizeof(env)) ||