Re: [PATCH v5 11/13] x86/xsaves: Add WARN_ON_FPU() when a disabled xstate component offset is requested for a compacted format

From: Dave Hansen
Date: Mon May 09 2016 - 19:32:12 EST


On 05/09/2016 01:46 PM, Yu-cheng Yu wrote:
> Add a warning in case a disabled (not existing) xstate component offset
> is requested.
...
> diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
> index 350814c..2e6dbfe 100644
> --- a/arch/x86/kernel/fpu/xstate.c
> +++ b/arch/x86/kernel/fpu/xstate.c
> @@ -756,6 +756,7 @@ void *__raw_xsave_addr(struct xregs_state *xsave, int xstate_feature_mask)
> {
> int feature_nr = fls64(xstate_feature_mask) - 1;
>
> + WARN_ON_FPU(using_compacted_format() && !xfeature_enabled(feature_nr));
> return (void *)xsave + xstate_comp_offsets[feature_nr];
> }

Why the using_compacted_format()? Shouldn't this be an error, regardless.

Also, what is xstate_comp_offsets[feature_nr] in this case? Isn't it
-1? Should we be returning NULL along with WARN()ing?