linux/virt/kvm/arm/vgic
Christoffer Dall ab2d5eb03d KVM: arm/arm64: vgic: Always initialize the group of private IRQs
We currently initialize the group of private IRQs during
kvm_vgic_vcpu_init, and the value of the group depends on the GIC model
we are emulating.  However, CPUs created before creating (and
initializing) the VGIC might end up with the wrong group if the VGIC
is created as GICv3 later.

Since we have no enforced ordering of creating the VGIC and creating
VCPUs, we can end up with part the VCPUs being properly intialized and
the remaining incorrectly initialized.  That also means that we have no
single place to do the per-cpu data structure initialization which
depends on knowing the emulated GIC model (which is only the group
field).

This patch removes the incorrect comment from kvm_vgic_vcpu_init and
initializes the group of all previously created VCPUs's private
interrupts in vgic_init in addition to the existing initialization in
kvm_vgic_vcpu_init.

Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-02-07 11:44:47 +00: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: Make vgic_dist->lpi_list_lock a raw_spinlock 2019-01-24 15:09:01 +01: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: Make vgic_irq->irq_lock a raw_spinlock 2019-01-24 15:08:50 +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: Make vgic_irq->irq_lock a raw_spinlock 2019-01-24 15:08:50 +01:00
vgic-v4.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
vgic.c KVM: arm/arm64: vgic: Make vgic_cpu->ap_list_lock a raw_spinlock 2019-01-24 15:09:09 +01:00
vgic.h KVM: arm/arm64: vgic: Move DEBUG_SPINLOCK_BUG_ON to vgic.h 2018-08-12 12:14:08 +01:00