KVM: arm64: Return on kvm_gmem_get_pfn() failure in gmem_abort()

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: 65f95b2874 ("Merge branch kvm-arm64/mmu-fixes-7.4 into kvmarm-master/next")
Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://patch.msgid.link/20261022123054.31729-1-fuad.tabba@linux.dev
Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
Fuad Tabba 2026-10-22 13:30:54 +01:00 committed by Marc Zyngier
parent 5b34f0b4ad
commit c4c362949d

View File

@ -1781,6 +1781,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))