On Thu, 2023-12-21 at 09:02 -0500, Yang Weijiang wrote: > +static struct fpstate *__fpu_alloc_init_guest_fpstate(struct > fpu_guest *gfpu) > { > + bool compacted = cpu_feature_enabled(X86_FEATURE_XCOMPACTED); > + unsigned int gfpstate_size, size; > struct fpstate *fpstate; > - unsigned int size; > > - size = fpu_user_cfg.default_size + ALIGN(offsetof(struct > fpstate, regs), 64); > + /* > + * fpu_guest_cfg.default_size is initialized to hold all > enabled > + * xfeatures except the user dynamic xfeatures. If the user > dynamic > + * xfeatures are enabled, the guest fpstate will be re- > allocated to > + * hold all guest enabled xfeatures, so omit user dynamic > xfeatures > + * here. > + */ > + size = fpu_guest_cfg.default_size + > + ALIGN(offsetof(struct fpstate, regs), 64); > + > fpstate = vzalloc(size); > if (!fpstate) > - return false; > + return NULL; > + /* > + * Initialize sizes and feature masks, use fpu_user_cfg.* > + * for user_* settings for compatibility of exiting uAPIs. > + */ > + fpstate->size = gfpstate_size; gfpstate_size is used uninitialized.