KVM: arm/arm64: vgic-v3: Retire pending interrupts on disabling LPIs
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 2 Apr 2019 05:36:23 +0000 (06:36 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Wed, 3 Apr 2019 01:18:43 +0000 (02:18 +0100)
commit96085b949672dca19773495813b577eb3bedf06e
tree6976d070504820315cb794fda1f23e386ff9591b
parent8fa76162487143d202db20ce84e12061b671a058
KVM: arm/arm64: vgic-v3: Retire pending interrupts on disabling LPIs

When disabling LPIs (for example on reset) at the redistributor
level, it is expected that LPIs that was pending in the CPU
interface are eventually retired.

Currently, this is not what is happening, and these LPIs will
stay in the ap_list, eventually being acknowledged by the vcpu
(which didn't quite expect this behaviour).

The fix is thus to retire these LPIs from the list of pending
interrupts as we disable LPIs.

Reported-by: Heyi Guo <guoheyi@huawei.com>
Tested-by: Heyi Guo <guoheyi@huawei.com>
Fixes: 0e4e82f154e3 ("KVM: arm64: vgic-its: Enable ITS emulation as a virtual MSI controller")
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
virt/kvm/arm/vgic/vgic-mmio-v3.c
virt/kvm/arm/vgic/vgic.c
virt/kvm/arm/vgic/vgic.h