KVM doesn't check for redist regions that extend partially above the
VM-specified IPA (phys_size). This can happen when using the
KVM_VGIC_V3_ADDR_TYPE_REDIST or KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION attribute
to set a new region that extends partially above phys_size (with the base below
phys_size). The issue is that vcpus can potentially run into a situation where
some redistributors are addressable and others are not.
Patch 1 adds the missing checks, and patch 2 adds a test into aarch64/vgic_init.
Changes:
v2: adding a test for KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, and returning E2BIG
instead of EINVAL (thanks Alexandru and Eric).
Ricardo Koller (2):
KVM: arm64: vgic: check redist region is not above the VM IPA size
KVM: arm64: selftests: tests for vgic redist regions above the VM IPA
size
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 7 ++-
arch/arm64/kvm/vgic/vgic-v3.c | 4 ++
.../testing/selftests/kvm/aarch64/vgic_init.c | 52 +++++++++++++++++++
3 files changed, 62 insertions(+), 1 deletion(-)
--
2.33.0.309.g3052b89438-goog
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm