]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
hw/intc/loongarch_pch: Inject irq line interrupt to kernel
authorBibo Mao <maobibo@loongson.cn>
Fri, 6 Jun 2025 06:30:29 +0000 (14:30 +0800)
committerSong Gao <gaosong@loongson.cn>
Thu, 19 Jun 2025 07:51:36 +0000 (15:51 +0800)
If kvm_irqchip_in_kernel() return true, irq line interrupt can be
injected with API kvm_set_irq() to KVM.

Reviewed-by: Song Gao <gaosong@loongson.cn>
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Message-ID: <20250606063033.2557365-10-maobibo@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
hw/intc/loongarch_pch_pic.c

index 13b5766444c42b1d0165edb47082e36f993928c2..1adef980d489c09e7c47d65732a6a14553ab0984 100644 (file)
@@ -49,6 +49,11 @@ static void pch_pic_irq_handler(void *opaque, int irq, int level)
     assert(irq < s->irq_num);
     trace_loongarch_pch_pic_irq_handler(irq, level);
 
+    if (kvm_irqchip_in_kernel()) {
+        kvm_set_irq(kvm_state, irq, !!level);
+        return;
+    }
+
     if (s->intedge & mask) {
         /* Edge triggered */
         if (level) {