summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAlexander van Heukelum <heukelum@mailshack.com>2008-10-03 23:16:12 +0200
committerIngo Molnar <mingo@elte.hu>2008-10-13 10:33:22 +0200
commit091d30c8f7744f43b0bb507fd30ceb95f9ff9e1b (patch)
tree277346d53056a92013f9c01260cc23617dd1cc33 /arch
parent699d2937d45d9dabc1772d0d07501ccc43885c23 (diff)
traps: x86_64: make math_state_restore more like i386
- rename variable me -> tsk - get thread and tsk like i386 - expand used_math() - copy comment Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/traps_64.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/x86/kernel/traps_64.c b/arch/x86/kernel/traps_64.c
index ea091dfe0cd..00406c99aee 100644
--- a/arch/x86/kernel/traps_64.c
+++ b/arch/x86/kernel/traps_64.c
@@ -604,14 +604,15 @@ asmlinkage void __attribute__((weak)) mce_threshold_interrupt(void)
*/
asmlinkage void math_state_restore(void)
{
- struct task_struct *me = current;
+ struct thread_info *thread = current_thread_info();
+ struct task_struct *tsk = thread->task;
- if (!used_math()) {
+ if (!tsk_used_math(tsk)) {
local_irq_enable();
/*
* does a slab alloc which can sleep
*/
- if (init_fpu(me)) {
+ if (init_fpu(tsk)) {
/*
* ran out of memory!
*/
@@ -625,13 +626,13 @@ asmlinkage void math_state_restore(void)
/*
* Paranoid restore. send a SIGSEGV if we fail to restore the state.
*/
- if (unlikely(restore_fpu_checking(me))) {
+ if (unlikely(restore_fpu_checking(tsk))) {
stts();
- force_sig(SIGSEGV, me);
+ force_sig(SIGSEGV, tsk);
return;
}
- task_thread_info(me)->status |= TS_USEDFPU;
- me->fpu_counter++;
+ thread->status |= TS_USEDFPU; /* So we fnsave on switch_to() */
+ tsk->fpu_counter++;
}
EXPORT_SYMBOL_GPL(math_state_restore);