[PATCH] KVM: arm64: Return on kvm_gmem_get_pfn() failure in gmem_abort()

From: Fuad Tabba

Date: Thu Oct 22 2026 - 08:35:00 EST


The kvm-arm64/mmu-fixes-7.4 merge dropped the return from the
kvm_gmem_get_pfn() error path in gmem_abort(). Both parents of the
merge keep that return. On a failed kvm_gmem_get_pfn(), gmem_abort()
then carries on with a zero pfn, and on a nested stage-2 it uses the
mapping it has just freed.

Restore the return.

Fixes: 65f95b2874a15 ("Merge branch kvm-arm64/mmu-fixes-7.4 into kvmarm-master/next")
Signed-off-by: Fuad Tabba <fuad.tabba@xxxxxxxxx>
---

Notes:
I went through the rest of the merge's conflict resolution with
git show --remerge-diff, and this is the only line it dropped.

arch/arm64/kvm/mmu.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c
index a48f3f531e827..ba4fe58222ad5 100644
--- a/arch/arm64/kvm/mmu.c
+++ b/arch/arm64/kvm/mmu.c
@@ -1802,6 +1802,7 @@ static int gmem_abort(const struct kvm_s2_fault_desc *s2fd,
s2vi.vma_pagesize, write_fault, exec_fault,
false);
kfree(mapping);
+ return ret;
}

if (!(s2fd->memslot->flags & KVM_MEM_READONLY))
--
2.47.3