|
@@ -246,6 +246,15 @@ static void __init setup_xstate_features(void)
|
|
|
/* start at the beginnning of the "extended state" */
|
|
|
unsigned int last_good_offset = offsetof(struct xregs_state,
|
|
|
extended_state_area);
|
|
|
+ /*
|
|
|
+ * The FP xstates and SSE xstates are legacy states. They are always
|
|
|
+ * in the fixed offsets in the xsave area in either compacted form
|
|
|
+ * or standard form.
|
|
|
+ */
|
|
|
+ xstate_offsets[0] = 0;
|
|
|
+ xstate_sizes[0] = offsetof(struct fxregs_state, xmm_space);
|
|
|
+ xstate_offsets[1] = xstate_sizes[0];
|
|
|
+ xstate_sizes[1] = FIELD_SIZEOF(struct fxregs_state, xmm_space);
|
|
|
|
|
|
for (i = FIRST_EXTENDED_XFEATURE; i < XFEATURE_MAX; i++) {
|
|
|
if (!xfeature_enabled(i))
|