diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-09-05 11:53:05 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-05 11:53:05 -0400 |
commit | 28c3cfd5fb998bd3683bebeebbba38baa2101cad (patch) | |
tree | 3d325023e6dc56baa6c69fc59dd55bf37ef7967e /arch/x86/kernel/signal_64.c | |
parent | 04197c83b3e05546d1003cfa3ff43f1639c0057f (diff) | |
parent | b380b0d4f7dffcc235c0facefa537d4655619101 (diff) |
Merge branch 'linus' into x86/tracehook
Diffstat (limited to 'arch/x86/kernel/signal_64.c')
-rw-r--r-- | arch/x86/kernel/signal_64.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c index d01e3f6ef26d..1e1933892b4f 100644 --- a/arch/x86/kernel/signal_64.c +++ b/arch/x86/kernel/signal_64.c | |||
@@ -106,7 +106,16 @@ static inline int restore_i387(struct _fpstate __user *buf) | |||
106 | clts(); | 106 | clts(); |
107 | task_thread_info(current)->status |= TS_USEDFPU; | 107 | task_thread_info(current)->status |= TS_USEDFPU; |
108 | } | 108 | } |
109 | return restore_fpu_checking((__force struct i387_fxsave_struct *)buf); | 109 | err = restore_fpu_checking((__force struct i387_fxsave_struct *)buf); |
110 | if (unlikely(err)) { | ||
111 | /* | ||
112 | * Encountered an error while doing the restore from the | ||
113 | * user buffer, clear the fpu state. | ||
114 | */ | ||
115 | clear_fpu(tsk); | ||
116 | clear_used_math(); | ||
117 | } | ||
118 | return err; | ||
110 | } | 119 | } |
111 | 120 | ||
112 | /* | 121 | /* |