From 901f361acc109d38dffc0171e01c231b2dddd4ec Mon Sep 17 00:00:00 2001 From: Sebastian Ene Date: Wed, 10 Aug 2022 13:14:17 +0000 Subject: [PATCH] ANDROID: KVM: arm64: Pass the pagetable struct as an argument to the freewalker Extend the scope of the stage2_freewalker by passing the pgt instead of the mm_ops callbacks. This will later be used by the stage2_pte_is_counted function. Bug: 222044487 Signed-off-by: Sebastian Ene Change-Id: I390661eb106cbdb863cbb1832e39ec155c439091 Signed-off-by: Quentin Perret --- arch/arm64/kvm/hyp/pgtable.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c index 5992b7a7cb1f..ead0c5e5c6ba 100644 --- a/arch/arm64/kvm/hyp/pgtable.c +++ b/arch/arm64/kvm/hyp/pgtable.c @@ -1201,7 +1201,8 @@ static int stage2_free_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep, enum kvm_pgtable_walk_flags flag, void * const arg) { - struct kvm_pgtable_mm_ops *mm_ops = arg; + struct kvm_pgtable *pgt = arg; + struct kvm_pgtable_mm_ops *mm_ops = pgt->mm_ops; kvm_pte_t pte = *ptep; if (!stage2_pte_is_counted(pte)) @@ -1222,7 +1223,7 @@ void kvm_pgtable_stage2_destroy(struct kvm_pgtable *pgt) .cb = stage2_free_walker, .flags = KVM_PGTABLE_WALK_LEAF | KVM_PGTABLE_WALK_TABLE_POST, - .arg = pgt->mm_ops, + .arg = pgt, }; WARN_ON(kvm_pgtable_walk(pgt, 0, BIT(pgt->ia_bits), &walker));