From e85af6e459deaaa2e2a50e2d6251c231362bb26f Mon Sep 17 00:00:00 2001 From: Suresh Siddha Date: Wed, 16 May 2012 15:03:54 -0700 Subject: [PATCH] --- yaml --- r: 305466 b: refs/heads/master c: 1dcc8d7ba235a316a056f993e88f0d18b92c60d9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/process.c | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index cb25cc0a804d..cd22c6ac985a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d75f1b391f5ef73016d14bc6f7e4725820ebaa5b +refs/heads/master: 1dcc8d7ba235a316a056f993e88f0d18b92c60d9 diff --git a/trunk/arch/x86/kernel/process.c b/trunk/arch/x86/kernel/process.c index b7e1e0e53987..1219fe2be8f3 100644 --- a/trunk/arch/x86/kernel/process.c +++ b/trunk/arch/x86/kernel/process.c @@ -87,6 +87,16 @@ void arch_task_cache_init(void) SLAB_PANIC | SLAB_NOTRACK, NULL); } +static inline void drop_fpu(struct task_struct *tsk) +{ + /* + * Forget coprocessor state.. + */ + tsk->fpu_counter = 0; + clear_fpu(tsk); + clear_used_math(); +} + /* * Free current thread data structures etc.. */ @@ -109,6 +119,8 @@ void exit_thread(void) put_cpu(); kfree(bp); } + + drop_fpu(me); } void show_regs(struct pt_regs *regs) @@ -149,12 +161,7 @@ void flush_thread(void) flush_ptrace_hw_breakpoint(tsk); memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); - /* - * Forget coprocessor state.. - */ - tsk->fpu_counter = 0; - clear_fpu(tsk); - clear_used_math(); + drop_fpu(tsk); } static void hard_disable_TSC(void)