Re: [PATCH 1/2] arm64/mm: Directly use TTBRx_EL1_ASID_MASK
From: Marc Zyngier
Date: Wed Feb 25 2026 - 05:50:57 EST
On Wed, 25 Feb 2026 09:23:29 +0000,
Marc Zyngier <maz@xxxxxxxxxx> wrote:
>
> On Wed, 25 Feb 2026 03:51:56 +0000,
> Anshuman Khandual <anshuman.khandual@xxxxxxx> wrote:
> >
> > diff --git a/arch/arm64/kvm/at.c b/arch/arm64/kvm/at.c
> > index 885bd5bb2f41..d5c342ccf0f9 100644
> > --- a/arch/arm64/kvm/at.c
> > +++ b/arch/arm64/kvm/at.c
> > @@ -560,7 +560,7 @@ static int walk_s1(struct kvm_vcpu *vcpu, struct s1_walk_info *wi,
> > BUG();
> > }
> >
> > - wr->asid = FIELD_GET(TTBR_ASID_MASK, asid_ttbr);
> > + wr->asid = FIELD_GET(TTBRx_EL1_ASID_MASK, asid_ttbr);
> > if (!kvm_has_feat_enum(vcpu->kvm, ID_AA64MMFR0_EL1, ASIDBITS, 16) ||
> > !(tcr & TCR_ASID16))
> > wr->asid &= GENMASK(7, 0);
> > diff --git a/arch/arm64/kvm/nested.c b/arch/arm64/kvm/nested.c
> > index 620126d1f0dc..82558fb2685f 100644
> > --- a/arch/arm64/kvm/nested.c
> > +++ b/arch/arm64/kvm/nested.c
> > @@ -1343,7 +1343,7 @@ static bool kvm_vncr_tlb_lookup(struct kvm_vcpu *vcpu)
> > vcpu_read_sys_reg(vcpu, TTBR0_EL2));
> > u16 asid;
> >
> > - asid = FIELD_GET(TTBR_ASID_MASK, ttbr);
> > + asid = FIELD_GET(TTBRx_EL1_ASID_MASK, ttbr);
> > if (!kvm_has_feat_enum(vcpu->kvm, ID_AA64MMFR0_EL1, ASIDBITS, 16) ||
> > !(tcr & TCR_ASID16))
> > asid &= GENMASK(7, 0);
> > @@ -1459,7 +1459,7 @@ static void kvm_map_l1_vncr(struct kvm_vcpu *vcpu)
> > vcpu_read_sys_reg(vcpu, TTBR0_EL2));
> > u16 asid;
> >
> > - asid = FIELD_GET(TTBR_ASID_MASK, ttbr);
> > + asid = FIELD_GET(TTBRx_EL1_ASID_MASK, ttbr);
> > if (!kvm_has_feat_enum(vcpu->kvm, ID_AA64MMFR0_EL1, ASIDBITS, 16) ||
> > !(tcr & TCR_ASID16))
> > asid &= GENMASK(7, 0);
>
> Given the 3 hunks above, there is clearly a better approach.
https://lore.kernel.org/r/20260225104718.14209-1-maz@xxxxxxxxxx
M.
--
Without deviation from the norm, progress is not possible.