[PATCH v2 0/2] KVM: arm64: Fix a vSError staying pending after delivery under pKVM
From: Fuad Tabba
Date: Mon Sep 21 2026 - 06:10:50 EST
Hi folks,
Changes since v1 [1]:
- Added a cover letter. (Marc)
- Rebased on 7.3-rc4.
Under pKVM a vSError the guest has already taken stays pending in the
host's copy of HCR_EL2, since the lazy state sync for non-protected
guests stopped copying VSE back on exit. That's a 7.3-rc regression.
Patch 1 reflects VSE back on every exit. Patch 2 makes the
external_aborts selftest check that the SError is no longer pending
once delivered: it fails on the unpatched base and passes with the fix,
and also passes under nVHE and VHE.
The "Confine protected VM vCPU state to EL2" series [2] carries patch 1
as its own patch 1, since its later patches change the same exit path in
hyp-main.c and don't apply on a tree without the fix. It isn't part of
that series: the fix lands from here, and so does the selftest, which
that series doesn't carry.
Based on Linux 7.3-rc4 (93f51579e7df2).
Cheers,
/fuad
[1] https://lore.kernel.org/all/20260829071120.2522788-1-fuad.tabba@xxxxxxxxx/
[2] https://lore.kernel.org/all/20260914113338.159227-1-fuad.tabba@xxxxxxxxx/
Fuad Tabba (2):
KVM: arm64: Sync HCR_EL2.VSE back to the host vCPU under pKVM
KVM: arm64: selftests: Check SError is not pending after delivery
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 4 ++++
tools/testing/selftests/kvm/arm64/external_aborts.c | 6 ++++++
2 files changed, 10 insertions(+)
base-commit: 93f51579e7df248780214094418f205253383cc5
--
2.39.5