diff options
Diffstat (limited to 'arch/x86/kernel/xsave.c')
-rw-r--r-- | arch/x86/kernel/xsave.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c index 9e1a8a7ba6e6..7a3d4df9eaf6 100644 --- a/arch/x86/kernel/xsave.c +++ b/arch/x86/kernel/xsave.c | |||
@@ -176,8 +176,10 @@ int save_i387_xstate(void __user *buf) | |||
176 | else | 176 | else |
177 | err = fxsave_user(buf); | 177 | err = fxsave_user(buf); |
178 | 178 | ||
179 | if (err) | 179 | if (unlikely(err)) { |
180 | __clear_user(buf, xstate_size); | ||
180 | return err; | 181 | return err; |
182 | } | ||
181 | user_fpu_end(); | 183 | user_fpu_end(); |
182 | } else { | 184 | } else { |
183 | sanitize_i387_state(tsk); | 185 | sanitize_i387_state(tsk); |