Re: [PATCH v3 01/13] x86/fpu/xstate: Avoid getting xstate address of init_fpstate if fpstate contains the component

From: Mingwei Zhang
Date: Wed Feb 22 2023 - 13:42:11 EST


> > We have this [1]:
> >
> > if (fpu_state_size_dynamic())
> > mask &= (header.xfeatures | xinit->header.xcomp_bv);
> >
> > If header.xfeatures[18] = 0 then mask[18] = 0 because
> > xinit->header.xcomp_bv[18] = 0. Then, it won't hit that code. So, I'm
> > confused about the problem that you described here.
>
> Read the suggested changelog I wrote in my reply to Mingwei.
>
> TLDR:
>
> xsave.header.xfeatures[18] = 1
> xinit.header.xfeatures[18] = 0
> -> mask[18] = 1
> -> __raw_xsave_addr(xsave, 18) <- Success
> -> __raw_xsave_addr(xinit, 18) <- WARN
>
> Thanks,
>
> tglx

Hi Thomas,

Thanks for the review and I will provide the next version separately
from the series, since this one is independent from the rest.

Chang: to reproduce this issue, you can simply run the amx_test in the
kvm selftest directory.

Thanks.
-Mingwei