Re: [PATCH v8 06/26] x86/fpu/xstate: Create guest fpstate with guest specific config
From: Edgecombe, Rick P
Date: Thu Jan 04 2024 - 17:47:36 EST
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.