From 4e50aa871fb5eaf156ca2437753e8c28ab854fcd Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Thu, 5 Oct 2006 18:47:22 +0200 Subject: [PATCH] --- yaml --- r: 39021 b: refs/heads/master c: 0a5ace2ab08d45cd78d7ef0067cdcd5c812ac54f h: refs/heads/master i: 39019: 0eb4fd0191e46201e7a55a8260ea2d3d66f8c3b8 v: v3 --- [refs] | 2 +- trunk/arch/x86_64/kernel/process.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 2f1ccc0bedda..4e2a318f2019 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 51ec28e1b2cb267a09a0b8eac1ccf8d61b7268bf +refs/heads/master: 0a5ace2ab08d45cd78d7ef0067cdcd5c812ac54f diff --git a/trunk/arch/x86_64/kernel/process.c b/trunk/arch/x86_64/kernel/process.c index de10cb8a2c97..5e95b257ee26 100644 --- a/trunk/arch/x86_64/kernel/process.c +++ b/trunk/arch/x86_64/kernel/process.c @@ -615,6 +615,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) prev->gsindex = gsindex; } + /* Must be after DS reload */ + unlazy_fpu(prev_p); + /* * Switch the PDA and FPU contexts. */ @@ -622,10 +625,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) write_pda(oldrsp, next->userrsp); write_pda(pcurrent, next_p); - /* This must be here to ensure both math_state_restore() and - kernel_fpu_begin() work consistently. - And the AMD workaround requires it to be after DS reload. */ - unlazy_fpu(prev_p); write_pda(kernelstack, (unsigned long)task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET); #ifdef CONFIG_CC_STACKPROTECTOR