linux/virt/kvm/arm/vgic
Christoffer Dall 6d56111c92 KVM: arm/arm64: vgic: Fix GICC_PMR uaccess on GICv3 and clarify ABI
As an oversight, for GICv2, we accidentally export the GICC_PMR register
in the format of the GICH_VMCR.VMPriMask field in the lower 5 bits of a
word, meaning that userspace must always use the lower 5 bits to
communicate with the KVM device and must shift the value left by 3
places to obtain the actual priority mask level.

Since GICv3 supports the full 8 bits of priority masking in the ICH_VMCR,
we have to fix the value we export when emulating a GICv2 on top of a
hardware GICv3 and exporting the emulated GICv2 state to userspace.

Take the chance to clarify this aspect of the ABI.

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@linaro.org>
2017-04-04 14:33:59 +02:00
..
vgic-debug.c KVM: arm/arm64: vgic: Add debugfs vgic-state file 2017-01-25 13:50:03 +01:00
vgic-init.c KVM: arm64: Ensure LRs are clear when they should be 2017-04-04 14:33:58 +02:00
vgic-irqfd.c KVM: arm/arm64: vgic: Stop injecting the MSI occurrence twice 2017-02-08 15:13:14 +00:00
vgic-its.c KVM: arm/arm64: VGIC: Fix command handling while ITS being disabled 2017-03-07 15:44:08 +00:00
vgic-kvm-device.c KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl 2017-01-30 13:47:29 +00:00
vgic-mmio-v2.c KVM: arm/arm64: vgic: Fix GICC_PMR uaccess on GICv3 and clarify ABI 2017-04-04 14:33:59 +02:00
vgic-mmio-v3.c KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl 2017-01-30 13:47:29 +00:00
vgic-mmio.c KVM: arm/arm64: Let vcpu thread modify its own active state 2017-03-07 14:48:16 +00:00
vgic-mmio.h KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl 2017-01-30 13:47:29 +00:00
vgic-v2.c KVM: arm/arm64: vgic: Fix GICC_PMR uaccess on GICv3 and clarify ABI 2017-04-04 14:33:59 +02:00
vgic-v3.c KVM: arm/arm64: vgic-v3: Don't pretend to support IRQ/FIQ bypass 2017-03-06 10:30:57 +00:00
vgic.c KVM: arm/arm64: Remove kvm_vgic_inject_mapped_irq 2017-02-01 11:56:35 +01:00
vgic.h KVM: arm/arm64: vgic: Fix GICC_PMR uaccess on GICv3 and clarify ABI 2017-04-04 14:33:59 +02:00