diff mbox

[v18,3/6] intc: arm_gic_kvm: set the qemu_irq/gsi mapping

Message ID 1435339767-2301-4-git-send-email-eric.auger@linaro.org
State Superseded
Headers show

Commit Message

Auger Eric June 26, 2015, 5:29 p.m. UTC
The arm_gic_kvm now calls kvm_irqchip_set_qemuirq_gsi to build
the hash table storing qemu_irq/gsi mappings. From that point on
irqfd can be setup directly from the qemu_irq using
kvm_irqchip_add_irqfd_notifier.

Signed-off-by: Eric Auger <eric.auger@linaro.org>
Tested-by: Vikram Sethi <vikrams@codeaurora.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>

---
v16 -> v17:
- add Paolo's A-b

v15 -> v16:
- added Vikram's T-b
- Resolve rebase conflict

v2 -> v3:
- kvm_irqchip_add_qemuirq_irqfd_notifier renamed into
  kvm_irqchip_add_irqfd_notifier
---
 hw/intc/arm_gic_kvm.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Peter Maydell June 29, 2015, 9:43 a.m. UTC | #1
On 26 June 2015 at 18:29, Eric Auger <eric.auger@linaro.org> wrote:
> The arm_gic_kvm now calls kvm_irqchip_set_qemuirq_gsi to build
> the hash table storing qemu_irq/gsi mappings. From that point on
> irqfd can be setup directly from the qemu_irq using
> kvm_irqchip_add_irqfd_notifier.
>
> Signed-off-by: Eric Auger <eric.auger@linaro.org>
> Tested-by: Vikram Sethi <vikrams@codeaurora.org>
> Acked-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM
diff mbox

Patch

diff --git a/hw/intc/arm_gic_kvm.c b/hw/intc/arm_gic_kvm.c
index 2cb7d25..f56bff1 100644
--- a/hw/intc/arm_gic_kvm.c
+++ b/hw/intc/arm_gic_kvm.c
@@ -570,6 +570,12 @@  static void kvm_arm_gic_realize(DeviceState *dev, Error **errp)
      */
     i += (GIC_INTERNAL * s->num_cpu);
     qdev_init_gpio_in(dev, kvm_arm_gic_set_irq, i);
+
+    for (i = 0; i < s->num_irq - GIC_INTERNAL; i++) {
+        qemu_irq irq = qdev_get_gpio_in(dev, i);
+        kvm_irqchip_set_qemuirq_gsi(kvm_state, irq, i);
+    }
+
     /* We never use our outbound IRQ/FIQ lines but provide them so that
      * we maintain the same interface as the non-KVM GIC.
      */