arm/arm64: KVM: vgic: handle out-of-range MMIO accesses
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 8 Jul 2014 11:09:04 +0000 (12:09 +0100)
committerChristoffer Dall <christoffer.dall@linaro.org>
Fri, 19 Sep 2014 01:48:57 +0000 (18:48 -0700)
commitc3c918361adcceb816c92b21dd95d2b46fb96a8f
tree055024f1f93ec5fce6851aac87f9f22bb79a0a4d
parentfc675e355e705a046df7b635d3f3330c0ad94569
arm/arm64: KVM: vgic: handle out-of-range MMIO accesses

Now that we can (almost) dynamically size the number of interrupts,
we're facing an interesting issue:

We have to evaluate at runtime whether or not an access hits a valid
register, based on the sizing of this particular instance of the
distributor. Furthermore, the GIC spec says that accessing a reserved
register is RAZ/WI.

For this, add a new field to our range structure, indicating the number
of bits a single interrupts uses. That allows us to find out whether or
not the access is in range.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
include/kvm/arm_vgic.h
virt/kvm/arm/vgic.c