aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm
diff options
context:
space:
mode:
authorRobert Richter <robert.richter@amd.com>2010-07-21 13:03:52 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2010-07-21 17:06:04 -0400
commit0e49bf66d2ca649b167428adddbbbe9d9bd4894c (patch)
tree741f170dbb160ece127b2ab497f9fc9d1e3bd1bc /arch/x86/include/asm
parent82d4150cec83b9775f84810b39a1c0b91585d429 (diff)
x86, xsave: Separate fpu and xsave initialization
As xsave also supports other than fpu features, it should be initialized independently of the fpu. This patch moves this out of fpu initialization. There is also a lot of cross referencing between fpu and xsave code. This patch reduces this by making xsave_cntxt_init() and init_thread_xstate() static functions. The patch moves the cpu_has_xsave check at the beginning of xsave_init(). All other checks may removed then. Signed-off-by: Robert Richter <robert.richter@amd.com> LKML-Reference: <1279731838-1522-2-git-send-email-robert.richter@amd.com> Acked-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r--arch/x86/include/asm/i387.h1
-rw-r--r--arch/x86/include/asm/xsave.h1
2 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
index 59bd93ac7fef..509ddabeae25 100644
--- a/arch/x86/include/asm/i387.h
+++ b/arch/x86/include/asm/i387.h
@@ -31,7 +31,6 @@ extern void mxcsr_feature_mask_init(void);
31extern int init_fpu(struct task_struct *child); 31extern int init_fpu(struct task_struct *child);
32extern asmlinkage void math_state_restore(void); 32extern asmlinkage void math_state_restore(void);
33extern void __math_state_restore(void); 33extern void __math_state_restore(void);
34extern void init_thread_xstate(void);
35extern int dump_fpu(struct pt_regs *, struct user_i387_struct *); 34extern int dump_fpu(struct pt_regs *, struct user_i387_struct *);
36 35
37extern user_regset_active_fn fpregs_active, xfpregs_active; 36extern user_regset_active_fn fpregs_active, xfpregs_active;
diff --git a/arch/x86/include/asm/xsave.h b/arch/x86/include/asm/xsave.h
index 94d5f84d89f2..4d3b5d1fc028 100644
--- a/arch/x86/include/asm/xsave.h
+++ b/arch/x86/include/asm/xsave.h
@@ -28,7 +28,6 @@ extern u64 pcntxt_mask;
28extern struct xsave_struct *init_xstate_buf; 28extern struct xsave_struct *init_xstate_buf;
29extern u64 xstate_fx_sw_bytes[USER_XSTATE_FX_SW_WORDS]; 29extern u64 xstate_fx_sw_bytes[USER_XSTATE_FX_SW_WORDS];
30 30
31extern void xsave_cntxt_init(void);
32extern void xsave_init(void); 31extern void xsave_init(void);
33extern void update_regset_xstate_info(unsigned int size, u64 xstate_mask); 32extern void update_regset_xstate_info(unsigned int size, u64 xstate_mask);
34extern int init_fpu(struct task_struct *child); 33extern int init_fpu(struct task_struct *child);