linux/virt/kvm/arm/vgic
Andre Przywara a5e1e6ca94 KVM: arm/arm64: VGIC: Fix command handling while ITS being disabled
The ITS spec says that ITS commands are only processed when the ITS
is enabled (section 8.19.4, Enabled, bit[0]). Our emulation was not taking
this into account.
Fix this by checking the enabled state before handling CWRITER writes.

On the other hand that means that CWRITER could advance while the ITS
is disabled, and enabling it would need those commands to be processed.
Fix this case as well by refactoring actual command processing and
calling this from both the GITS_CWRITER and GITS_CTLR handlers.

Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Christoffer Dall <cdall@linaro.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2017-03-07 15:44:08 +00: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: arm/arm64: vgic: Add debugfs vgic-state file 2017-01-25 13:50:03 +01: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: Introduce VENG0 and VENG1 fields to vmcr struct 2017-01-30 13:47:21 +00: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: Remove struct vgic_irq pending field 2017-01-25 13:26:13 +01: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: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl 2017-01-30 13:47:29 +00:00