Hi Oliver, I was doing some SEA injection dev work and found tools/testing/selftests/kvm/arm64/external_aborts.c is failing at the head of my locally-tracked kvmarm/next, commit 811ec70dcf9cc ("Merge branch 'kvm-arm64/config-masks' into kvmarm/next"): vobeb33:/export/hda3/tmp/yjq# ./external_aborts Random seed: 0x6b8b4567 test_mmio_abort <= fail ==== Test Assertion Failure ==== arm64/external_aborts.c:19: regs->pc == expected_abort_pc pid=25675 tid=25675 errno=4 - Interrupted system call (stack trace empty) 0x0 != 0x21ed20 (regs->pc != expected_abort_pc) vobeb33:/export/hda3/tmp/yjq# vobeb33:/export/hda3/tmp/yjq# vobeb33:/export/hda3/tmp/yjq# ./external_aborts Random seed: 0x6b8b4567 test_mmio_nisv <= pass test_mmio_nisv_abort <=fail ==== Test Assertion Failure ==== arm64/external_aborts.c:19: regs->pc == expected_abort_pc pid=26153 tid=26153 errno=4 - Interrupted system call (stack trace empty) 0x0 != 0x21eb18 (regs->pc != expected_abort_pc) It looks like the PC in the guest register is lost / polluted. I only tested test_mmio_abort (fail), test_mmio_nisv (pass), and test_mmio_nisv_abort (fail), but from reading the code of test_mmio_nisv vs test_mmio_nisv_abort, I guess test failure is probably due to some bug in the code kvm injects SEA into guest. If I revert a single commit efa1368ba9f4 ("KVM: arm64: Commit exceptions from KVM_SET_VCPU_EVENTS immediately"), all tests in tools/testing/selftests/kvm/arm64/external_aborts.c pass. I have not yet figured out the bug tho. Want to report since you are the author maybe you can (or already) spot something. Thanks, Jiaqi