x86/fpu: Exclude dynamic states from init_fpstate
[linux-2.6-microblaze.git] / arch / x86 / kernel / fpu / xstate.c
index f5ef786..e77cabf 100644 (file)
@@ -857,9 +857,12 @@ void __init fpu__init_system_xstate(unsigned int legacy_size)
        update_regset_xstate_info(fpu_user_cfg.max_size,
                                  fpu_user_cfg.max_features);
 
-       /* Bring init_fpstate size and features up to date */
-       init_fpstate.size               = fpu_kernel_cfg.max_size;
-       init_fpstate.xfeatures          = fpu_kernel_cfg.max_features;
+       /*
+        * init_fpstate excludes dynamic states as they are large but init
+        * state is zero.
+        */
+       init_fpstate.size               = fpu_kernel_cfg.default_size;
+       init_fpstate.xfeatures          = fpu_kernel_cfg.default_features;
 
        if (init_fpstate.size > sizeof(init_fpstate.regs)) {
                pr_warn("x86/fpu: init_fpstate buffer too small (%zu < %d), disabling XSAVE\n",