Hi Zenghui, On 3/30/21 11:17 AM, Zenghui Yu wrote: > On 2021/2/24 4:56, Eric Auger wrote: >> @@ -1936,7 +1950,12 @@ static void >> arm_smmu_tlb_inv_range_domain(unsigned long iova, size_t size, >> }, >> }; >> - if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) { >> + if (ext_asid >= 0) { /* guest stage 1 invalidation */ >> + cmd.opcode = smmu_domain->smmu->features & >> ARM_SMMU_FEAT_E2H ? >> + CMDQ_OP_TLBI_EL2_VA : CMDQ_OP_TLBI_NH_VA; > > If I understand it correctly, the true nested mode effectively gives us > a *NS-EL1* StreamWorld. We should therefore use CMDQ_OP_TLBI_NH_VA to > invalidate the stage-1 NS-EL1 entries, no matter E2H is selected or not. > Yes at the moment you're right. Support for nested virt may induce some changes here but we are not there. I will fix it and add a comment. Thank you! Best Regards Eric