Index: 2006-01-05/arch/x86_64/kernel/process-xen.c =================================================================== --- 2006-01-05.orig/arch/x86_64/kernel/process-xen.c 2005-12-16 15:38:28.000000000 +0100 +++ 2006-01-05/arch/x86_64/kernel/process-xen.c 2006-01-10 09:03:01.221261480 +0100 @@ -420,13 +420,6 @@ out: return err; } -static inline void __save_init_fpu( struct task_struct *tsk ) -{ - asm volatile( "rex64 ; fxsave %0 ; fnclex" - : "=m" (tsk->thread.i387.fxsave)); - tsk->thread_info->status &= ~TS_USEDFPU; -} - /* * switch_to(x,y) should switch tasks from x to y. * Index: 2006-01-05/include/asm-x86_64/i387.h =================================================================== --- 2006-01-05.orig/include/asm-x86_64/i387.h 2005-11-21 16:42:15.000000000 +0100 +++ 2006-01-05/include/asm-x86_64/i387.h 2006-01-10 09:03:33.486356440 +0100 @@ -131,11 +131,16 @@ static inline void kernel_fpu_end(void) preempt_enable(); } -static inline void save_init_fpu( struct task_struct *tsk ) +static inline void __save_init_fpu( struct task_struct *tsk ) { asm volatile( "rex64 ; fxsave %0 ; fnclex" : "=m" (tsk->thread.i387.fxsave)); tsk->thread_info->status &= ~TS_USEDFPU; +} + +static inline void save_init_fpu( struct task_struct *tsk ) +{ + __save_init_fpu(tsk); stts(); }