From 1aab341a41132a24a29553bb6e0a9165d72df9e3 Mon Sep 17 00:00:00 2001 From: Suresh Siddha Date: Fri, 24 Aug 2012 14:12:57 -0700 Subject: [PATCH] --- yaml --- r: 323995 b: refs/heads/master c: e962591749dfd4df9fea2c530ed7a3cfed50e5aa h: refs/heads/master i: 323993: d1355eeb40f6c7dbc402fada0e6fd7a73233b06b 323991: a1a62789a2bb4097f265d77c6806ada4405ab4d0 v: v3 --- [refs] | 2 +- trunk/arch/x86/include/asm/fpu-internal.h | 7 +------ trunk/arch/x86/kernel/xsave.c | 8 +++----- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index eba5708418b0..2b1ffc149e43 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 72a671ced66db6d1c2bfff1c930a101ac8d08204 +refs/heads/master: e962591749dfd4df9fea2c530ed7a3cfed50e5aa diff --git a/trunk/arch/x86/include/asm/fpu-internal.h b/trunk/arch/x86/include/asm/fpu-internal.h index 4fbb4195bc63..78169d133d4c 100644 --- a/trunk/arch/x86/include/asm/fpu-internal.h +++ b/trunk/arch/x86/include/asm/fpu-internal.h @@ -448,17 +448,12 @@ static inline void save_init_fpu(struct task_struct *tsk) preempt_enable(); } -static inline void stop_fpu_preload(struct task_struct *tsk) -{ - tsk->fpu_counter = 0; -} - static inline void drop_fpu(struct task_struct *tsk) { /* * Forget coprocessor state.. */ - stop_fpu_preload(tsk); + tsk->fpu_counter = 0; preempt_disable(); __drop_fpu(tsk); preempt_enable(); diff --git a/trunk/arch/x86/kernel/xsave.c b/trunk/arch/x86/kernel/xsave.c index 0923d27f23df..07ddc870640b 100644 --- a/trunk/arch/x86/kernel/xsave.c +++ b/trunk/arch/x86/kernel/xsave.c @@ -382,16 +382,14 @@ int __restore_xstate_sig(void __user *buf, void __user *buf_fx, int size) struct xsave_struct *xsave = &tsk->thread.fpu.state->xsave; struct user_i387_ia32_struct env; - stop_fpu_preload(tsk); - unlazy_fpu(tsk); + drop_fpu(tsk); if (__copy_from_user(xsave, buf_fx, state_size) || - __copy_from_user(&env, buf, sizeof(env))) { - drop_fpu(tsk); + __copy_from_user(&env, buf, sizeof(env))) return -1; - } sanitize_restored_xstate(tsk, &env, xstate_bv, fx_only); + set_used_math(); } else { /* * For 64-bit frames and 32-bit fsave frames, restore the user