summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-04-24 00:40:59 -0700
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-06-17 13:21:25 -0700
commite6e9cac8c3417b43498b243c1f8f11780e157168 (patch)
tree4a3a2995f8d930f7baaf19b827043c6f9bf62db3 /arch/x86/include/asm
parent3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8 (diff)
downloadlinux-stable-e6e9cac8c3417b43498b243c1f8f11780e157168.tar.gz
linux-stable-e6e9cac8c3417b43498b243c1f8f11780e157168.tar.bz2
linux-stable-e6e9cac8c3417b43498b243c1f8f11780e157168.zip
x86: split out core __math_state_restore
Split the core fpu state restoration out into __math_state_restore, which assumes that cr0.TS is clear and that the fpu context has been initialized. This will be used during context switch. There are two reasons this is desireable: - There's a small clarification. When __switch_to() calls math_state_restore, it relies on the fact that tsk_used_math() returns true, and so will never do a blocking init_fpu(). __math_state_restore() does not have (or need) that logic, so the question never arises. - It allows the clts() to be moved earler in __switch_to() so it can be performed while cpu context updates are batched (will be done in a later patch). [ Impact: refactor code to make reuse cleaner; no functional change ] Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Alok Kataria <akataria@vmware.com> Cc: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r--arch/x86/include/asm/i387.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
index 175adf58dd4f..2e7529295f55 100644
--- a/arch/x86/include/asm/i387.h
+++ b/arch/x86/include/asm/i387.h
@@ -26,6 +26,7 @@ extern void fpu_init(void);
extern void mxcsr_feature_mask_init(void);
extern int init_fpu(struct task_struct *child);
extern asmlinkage void math_state_restore(void);
+extern void __math_state_restore(void);
extern void init_thread_xstate(void);
extern int dump_fpu(struct pt_regs *, struct user_i387_struct *);