[PATCH] KVM: selftests: Fix VM leak in early return
From: Tharit Tangkijwanichakul
Date: Sat Sep 05 2026 - 23:43:39 EST
test_mmio_ease() returns early and skips the call to kvm_vm_free() when
ID_AA64PFR1_EL1 is not available.
Use a goto so that the early return joins the common exit path.
Reported-by: Gokul K <gokul02k@xxxxxxxxx>
Link: https://lore.kernel.org/all/20260808081050.408657-1-gokul02k@xxxxxxxxx/
Fixes: a90aac553249 ("KVM: arm64: selftests: Test SEAs are taken to SError vector when EASE=1")
Signed-off-by: Tharit Tangkijwanichakul <tharitt97@xxxxxxxxx>
---
Tested on a Rock 5B (RK3588). ID_AA64PFR1_EL1.DF2 is not implemented,
so test_mmio_ease() takes the skip path exercised by this fix.
---
tools/testing/selftests/kvm/arm64/external_aborts.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kvm/arm64/external_aborts.c b/tools/testing/selftests/kvm/arm64/external_aborts.c
index d8fe17a6cc59..7836756a38a6 100644
--- a/tools/testing/selftests/kvm/arm64/external_aborts.c
+++ b/tools/testing/selftests/kvm/arm64/external_aborts.c
@@ -339,7 +339,7 @@ static void test_mmio_ease(void)
pfr1 = vcpu_get_reg(vcpu, KVM_ARM64_SYS_REG(SYS_ID_AA64PFR1_EL1));
if (!SYS_FIELD_GET(ID_AA64PFR1_EL1, DF2, pfr1)) {
pr_debug("Skipping %s\n", __func__);
- return;
+ goto done;
}
/*
@@ -356,6 +356,7 @@ static void test_mmio_ease(void)
vcpu_inject_sea(vcpu);
vcpu_run_expect_done(vcpu);
+done:
kvm_vm_free(vm);
}
--
2.47.3