[PATCH v2 01/11] arm64: Skip update of an idreg field affected by an override
Fuad Tabba
tabba at google.com
Mon Mar 2 05:14:15 PST 2026
On Mon, 2 Mar 2026 at 13:05, Fuad Tabba <tabba at google.com> wrote:
>
> Hi Marc,
>
> On Mon, 2 Mar 2026 at 11:57, Marc Zyngier <maz at kernel.org> wrote:
> >
> > When computing the new value od an idreg that contains a field
>
> nit: od->of
>
> > affected by an override, do not update that particular field.
> >
> > The value computed at init-time must be kept as-is, as that's
> > what the user has asked for, for better or worse.
> >
> > Signed-off-by: Marc Zyngier <maz at kernel.org>
Another nit, should you add a fixes tag, since this flaw is tired to
the original override facility? i.e.,
8f266a5d878a ("arm64: cpufeature: Add global feature override facility").
> Reviewed-by: Fuad Tabba <tabba at google.com>
Thanks,
/fuad
> Cheers,
> /fuad
>
>
> > ---
> > arch/arm64/kernel/cpufeature.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
> > index c31f8e17732a3..28fc77443ccd3 100644
> > --- a/arch/arm64/kernel/cpufeature.c
> > +++ b/arch/arm64/kernel/cpufeature.c
> > @@ -1224,6 +1224,13 @@ static void update_cpu_ftr_reg(struct arm64_ftr_reg *reg, u64 new)
> > s64 ftr_cur = arm64_ftr_value(ftrp, reg->sys_val);
> > s64 ftr_new = arm64_ftr_value(ftrp, new);
> >
> > + /*
> > + * Don't alter the initial value that has been forced
> > + * by an override.
> > + */
> > + if ((reg->override->mask & arm64_ftr_mask(ftrp)) == arm64_ftr_mask(ftrp))
> > + continue;
> > +
> > if (ftr_cur == ftr_new)
> > continue;
> > /* Find a safe value */
> > --
> > 2.47.3
> >
More information about the linux-arm-kernel
mailing list