diff options
author | Christoffer Dall <christoffer.dall@arm.com> | 2018-07-16 16:06:22 +0300 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2018-07-21 18:02:26 +0300 |
commit | 87322099052b6a534cecd3d303fc097d4560b7d0 (patch) | |
tree | 880ea15f8483cde93928f0836e7f7407e11b08e1 /virt/kvm/arm/vgic/vgic-v2.c | |
parent | 8df3c8f33f46adbaa811c0d57fb1d7eb421b88a9 (diff) | |
download | linux-87322099052b6a534cecd3d303fc097d4560b7d0.tar.xz |
KVM: arm/arm64: vgic: Signal IRQs using their configured group
Now when we have a group configuration on the struct IRQ, use this state
when populating the LR and signaling interrupts as either group 0 or
group 1 to the VM. Depending on the model of the emulated GIC, and the
guest's configuration of the VMCR, interrupts may be signaled as IRQs or
FIQs to the VM.
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'virt/kvm/arm/vgic/vgic-v2.c')
-rw-r--r-- | virt/kvm/arm/vgic/vgic-v2.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/virt/kvm/arm/vgic/vgic-v2.c b/virt/kvm/arm/vgic/vgic-v2.c index a5f2e44f1c33..df5e6a6e3186 100644 --- a/virt/kvm/arm/vgic/vgic-v2.c +++ b/virt/kvm/arm/vgic/vgic-v2.c @@ -159,6 +159,9 @@ void vgic_v2_populate_lr(struct kvm_vcpu *vcpu, struct vgic_irq *irq, int lr) } } + if (irq->group) + val |= GICH_LR_GROUP1; + if (irq->hw) { val |= GICH_LR_HW; val |= irq->hwintid << GICH_LR_PHYSID_CPUID_SHIFT; |