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