[PATCH 1/2] arm64/mm: Directly use TTBRx_EL1_ASID_MASK

Marc Zyngier maz at kernel.org
Wed Feb 25 02:50:50 PST 2026


On Wed, 25 Feb 2026 09:23:29 +0000,
Marc Zyngier <maz at kernel.org> wrote:
> 
> On Wed, 25 Feb 2026 03:51:56 +0000,
> Anshuman Khandual <anshuman.khandual at arm.com> 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@kernel.org

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list