|
@@ -508,9 +508,12 @@ static inline void user_fpu_begin(void)
|
|
|
|
|
|
static inline void __save_fpu(struct task_struct *tsk)
|
|
static inline void __save_fpu(struct task_struct *tsk)
|
|
{
|
|
{
|
|
- if (use_xsave())
|
|
|
|
- xsave_state(&tsk->thread.fpu.state->xsave, -1);
|
|
|
|
- else
|
|
|
|
|
|
+ if (use_xsave()) {
|
|
|
|
+ if (unlikely(system_state == SYSTEM_BOOTING))
|
|
|
|
+ xsave_state_booting(&tsk->thread.fpu.state->xsave, -1);
|
|
|
|
+ else
|
|
|
|
+ xsave_state(&tsk->thread.fpu.state->xsave, -1);
|
|
|
|
+ } else
|
|
fpu_fxsave(&tsk->thread.fpu);
|
|
fpu_fxsave(&tsk->thread.fpu);
|
|
}
|
|
}
|
|
|
|
|