[PATCH v3] KVM: arm64: selftests: Check SError is not pending after delivery
From: Fuad Tabba
Date: Mon Oct 05 2026 - 01:04:05 EST
test_serror() never looks at the vCPU after the SError is delivered, so
a stale pending SError goes unnoticed. Read the vCPU events back and
check the SError is no longer pending.
Signed-off-by: Fuad Tabba <fuad.tabba@xxxxxxxxx>
---
The fix from v2 was applied [1], but not this test.
Changes since v2 [2]:
- Dropped the fix, now in kvmarm/next.
- Rebased on kvmarm/next.
[1] https://lore.kernel.org/all/20261001135711.1640520-2-fuad.tabba@xxxxxxxxx/
[2] https://lore.kernel.org/all/20260921101030.1231605-1-fuad.tabba@xxxxxxxxx/
tools/testing/selftests/kvm/arm64/external_aborts.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/testing/selftests/kvm/arm64/external_aborts.c b/tools/testing/selftests/kvm/arm64/external_aborts.c
index 7836756a38a6c..c35b0c87250a1 100644
--- a/tools/testing/selftests/kvm/arm64/external_aborts.c
+++ b/tools/testing/selftests/kvm/arm64/external_aborts.c
@@ -239,6 +239,7 @@ static void test_serror_guest(void)
static void test_serror(void)
{
+ struct kvm_vcpu_events events;
struct kvm_vcpu *vcpu;
struct kvm_vm *vm = vm_create_with_dabt_handler(&vcpu, test_serror_guest,
unexpected_dabt_handler);
@@ -247,6 +248,11 @@ static void test_serror(void)
vcpu_inject_serror(vcpu);
vcpu_run_expect_done(vcpu);
+
+ vcpu_events_get(vcpu, &events);
+ TEST_ASSERT(!events.exception.serror_pending,
+ "SError still pending after the guest took it");
+
kvm_vm_free(vm);
}
base-commit: fa22cd9947fc245d71bc40482f7f78eb0d5a4af0
--
2.39.5