KVM: arm/arm64: VGIC: Fix command handling while ITS being disabled
authorAndre Przywara <andre.przywara@arm.com>
Thu, 16 Feb 2017 10:41:20 +0000 (10:41 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Tue, 7 Mar 2017 15:44:08 +0000 (15:44 +0000)
commita5e1e6ca94a8cec51571fd62e3eaec269717969c
tree92998b4189f7545cfca92f1813c0bf0dd0087903
parentba4dd156eabdca93501d92a980ba27fa5f4bbd27
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>
virt/kvm/arm/vgic/vgic-its.c