]> rtime.felk.cvut.cz Git - jailhouse.git/blobdiff - hypervisor/arch/arm/irqchip.c
arm: Enable maintenance interrupt also from irqchip_set_pending
[jailhouse.git] / hypervisor / arch / arm / irqchip.c
index bec3d956937eaef47a3294eb0ce448c7995655a0..7f81eb8ea2dfc81ee66387f05bd14920dac67e69 100644 (file)
@@ -73,6 +73,14 @@ void irqchip_set_pending(struct per_cpu *cpu_data, u16 irq_id)
        }
 
        spin_unlock(&cpu_data->pending_irqs_lock);
+
+       /*
+        * The list registers are full, trigger maintenance interrupt if we are
+        * on the target CPU. In the other case, the caller will send a
+        * SGI_INJECT, and irqchip_inject_pending will take care.
+        */
+       if (local_injection)
+               irqchip.enable_maint_irq(true);
 }
 
 void irqchip_inject_pending(struct per_cpu *cpu_data)