OpenCloudOS-Kernel/virt/kvm/arm/vgic
Marc Zyngier 96085b9496 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: 0e4e82f154 ("KVM: arm64: vgic-its: Enable ITS emulation as a virtual MSI controller")
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-03 02:18:43 +01:00
..
trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vgic-debug.c KVM: arm/arm64: vgic: Make vgic_irq->irq_lock a raw_spinlock 2019-01-24 15:08:50 +01:00
vgic-init.c KVM: arm/arm64: vgic: Always initialize the group of private IRQs 2019-02-07 11:44:47 +00:00
vgic-irqfd.c KVM: arm/arm64: vgic-irqfd: Fix MSI entry allocation 2017-11-29 16:46:12 +01:00
vgic-its.c KVM: arm/arm64: vgic-its: Make attribute accessors static 2019-03-20 17:33:41 +00:00
vgic-kvm-device.c kvm: arm/arm64: Prepare for VM specific stage2 translations 2018-10-01 13:50:30 +01:00
vgic-mmio-v2.c KVM: arm/arm64: vgic: Make vgic_irq->irq_lock a raw_spinlock 2019-01-24 15:08:50 +01:00
vgic-mmio-v3.c KVM: arm/arm64: vgic-v3: Retire pending interrupts on disabling LPIs 2019-04-03 02:18:43 +01:00
vgic-mmio.c KVM: arm/arm64: vgic: Make vgic_irq->irq_lock a raw_spinlock 2019-01-24 15:08:50 +01:00
vgic-mmio.h KVM: arm/arm64: vgic: Allow configuration of interrupt groups 2018-07-21 16:02:29 +01:00
vgic-v2.c KVM: arm/arm64: vgic: Make vgic_irq->irq_lock a raw_spinlock 2019-01-24 15:08:50 +01:00
vgic-v3.c KVM: arm/arm64: vgic-its: Take the srcu lock when writing to guest memory 2019-03-19 17:56:56 +00:00
vgic-v4.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
vgic.c KVM: arm/arm64: vgic-v3: Retire pending interrupts on disabling LPIs 2019-04-03 02:18:43 +01:00
vgic.h KVM: arm/arm64: vgic-v3: Retire pending interrupts on disabling LPIs 2019-04-03 02:18:43 +01:00