|
@@ -9,6 +9,7 @@
|
|
#include <asm/fpu/regset.h>
|
|
#include <asm/fpu/regset.h>
|
|
#include <asm/fpu/signal.h>
|
|
#include <asm/fpu/signal.h>
|
|
#include <asm/fpu/types.h>
|
|
#include <asm/fpu/types.h>
|
|
|
|
+#include <asm/fpu/xstate.h>
|
|
#include <asm/traps.h>
|
|
#include <asm/traps.h>
|
|
|
|
|
|
#include <linux/hardirq.h>
|
|
#include <linux/hardirq.h>
|
|
@@ -183,7 +184,8 @@ void fpstate_init(union fpregs_state *state)
|
|
* it will #GP. Make sure it is replaced after the memset().
|
|
* it will #GP. Make sure it is replaced after the memset().
|
|
*/
|
|
*/
|
|
if (static_cpu_has(X86_FEATURE_XSAVES))
|
|
if (static_cpu_has(X86_FEATURE_XSAVES))
|
|
- state->xsave.header.xcomp_bv = XCOMP_BV_COMPACTED_FORMAT;
|
|
|
|
|
|
+ state->xsave.header.xcomp_bv = XCOMP_BV_COMPACTED_FORMAT |
|
|
|
|
+ xfeatures_mask;
|
|
|
|
|
|
if (static_cpu_has(X86_FEATURE_FXSR))
|
|
if (static_cpu_has(X86_FEATURE_FXSR))
|
|
fpstate_init_fxstate(&state->fxsave);
|
|
fpstate_init_fxstate(&state->fxsave);
|