On 2018-10-11 19:30:07 [+0200], Christophe de Dinechin wrote: > > diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c > > index 87a57b7642d36..38d0b5ea40425 100644 > > --- a/arch/x86/kernel/fpu/xstate.c > > +++ b/arch/x86/kernel/fpu/xstate.c > > @@ -811,10 +811,8 @@ void fpu__resume_cpu(void) > > * > > * Note: does not work for compacted buffers. > > */ > > -void *__raw_xsave_addr(struct xregs_state *xsave, int xstate_feature_mask) > > +void *__raw_xsave_addr(struct xregs_state *xsave, int feature_nr) > > It might be clearer to offer both interfaces, since both are used? > … > > @@ -869,7 +868,8 @@ void *get_xsave_addr(struct xregs_state *xsave, int xstate_feature) > > if (!(xsave->header.xfeatures & xstate_feature)) > > return NULL; > > > > - return __raw_xsave_addr(xsave, xstate_feature); > > + feature_nr = fls64(xstate_feature) - 1; > > + return __raw_xsave_addr(xsave, feature_nr); > > and then move that to a wrapper function that takes a mask? made another patch this fls is gone now and everyone is using a number instead of a mask. Sebastian