x86/xsaves: Call booting time xsaves and xrstors in setup_init_fpu_buf
setup_init_fpu_buf() calls booting time xsaves and xrstors to save and restore xstate in xsave area. Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Link: http://lkml.kernel.org/r/1401387164-43416-15-git-send-email-fenghua.yu@intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>hifive-unleashed-5.1
parent
f41d830fa8
commit
47c2f292cc
|
@ -496,15 +496,21 @@ static void __init setup_init_fpu_buf(void)
|
|||
|
||||
setup_xstate_features();
|
||||
|
||||
if (cpu_has_xsaves) {
|
||||
init_xstate_buf->xsave_hdr.xcomp_bv =
|
||||
(u64)1 << 63 | pcntxt_mask;
|
||||
init_xstate_buf->xsave_hdr.xstate_bv = pcntxt_mask;
|
||||
}
|
||||
|
||||
/*
|
||||
* Init all the features state with header_bv being 0x0
|
||||
*/
|
||||
xrstor_state(init_xstate_buf, -1);
|
||||
xrstor_state_booting(init_xstate_buf, -1);
|
||||
/*
|
||||
* Dump the init state again. This is to identify the init state
|
||||
* of any feature which is not represented by all zero's.
|
||||
*/
|
||||
xsave_state(init_xstate_buf, -1);
|
||||
xsave_state_booting(init_xstate_buf, -1);
|
||||
}
|
||||
|
||||
static enum { AUTO, ENABLE, DISABLE } eagerfpu = AUTO;
|
||||
|
|
Loading…
Reference in New Issue