]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitd55d3cf43dd06aeea39a75e110f02b851ed570ba
tree6976d070504820315cb794fda1f23e386ff9591b
parentb013a24eb38a46758eb50b0a1e22f4df28879e7c
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: 5f8f66ae59b9 ("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