[RFC PATCH 0/2] KVM: arm64: fix VGICv3 redistributor rollback
Karl Mehltretter
kmehltretter at gmail.com
Sun Aug 9 23:52:15 PDT 2026
A failed REDIST_REGION update can unregister redistributor iodevs
belonging to earlier regions without clearing their cached base
addresses. A corrected retry then succeeds without restoring the missing
iodevs.
Limit rollback to vCPUs assigned to the newly added region. Extend
vgic_init to access an earlier redistributor after a failed update and
retry.
Commits 8542a8f95a67, 59112e9c390b, and 0d92e4a7ffd5 progressively fixed
cleanup after a failed region update. Preserving earlier regions follows
that model.
Built with GCC 15.2.0 and tested under QEMU 10.2.1 TCG with
-machine virt,virtualization=on,gic-version=3 and -cpu max. Both runs
reached the VGICv3 tests. The patched kernel passed; the same selftest
against the unpatched base failed with:
Unexpected MMIO exit at 0x8050008
Karl Mehltretter (2):
KVM: arm64: vgic-v3: Roll back failed redistributor region setup
KVM: arm64: selftests: Test VGICv3 redistributor region retry
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 42 ++++---
tools/testing/selftests/kvm/arm64/vgic_init.c | 115 +++++++++++++-----
2 files changed, 112 insertions(+), 45 deletions(-)
base-commit: b9b3e33b70b71e516930117e21de3ad2a7723747
--
2.53.0
More information about the linux-arm-kernel
mailing list