From f7ec3cc1d2c668ee5bcee62574a69765b9e49ddf Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Thu, 7 Jul 2022 15:51:34 +0100 Subject: [PATCH] Revert "ANDROID: KVM: arm64: Avoid BBM when changing only s/w bits in Stage-2 PTE" This reverts commit 233f0df2b18b142b6f80c8f50b7af091be39ad12. Bug: 233587962 Signed-off-by: Will Deacon Change-Id: If70acbf8ec01efb259ba9874ab4f38766694f16f --- arch/arm64/kvm/hyp/pgtable.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c index afbebef34044..2cb3867eb7c2 100644 --- a/arch/arm64/kvm/hyp/pgtable.c +++ b/arch/arm64/kvm/hyp/pgtable.c @@ -744,13 +744,6 @@ static int stage2_map_walker_try_leaf(u64 addr, u64 end, u32 level, if (!stage2_pte_needs_update(old, new)) return -EAGAIN; - /* - * If we're only changing software bits, then we don't need to - * do anything else/ - */ - if (!((old ^ new) & ~KVM_PTE_LEAF_ATTR_HI_SW)) - goto out_set_pte; - stage2_put_pte(ptep, data->mmu, addr, level, mm_ops); } @@ -762,11 +755,9 @@ static int stage2_map_walker_try_leaf(u64 addr, u64 end, u32 level, if (mm_ops->icache_inval_pou && stage2_pte_executable(new)) mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule); + smp_store_release(ptep, new); if (stage2_pte_is_counted(new)) mm_ops->get_page(ptep); - -out_set_pte: - smp_store_release(ptep, new); if (kvm_phys_is_valid(phys)) data->phys += granule; return 0;