From: Bibo Mao Date: Fri, 6 Jun 2025 06:30:29 +0000 (+0800) Subject: hw/intc/loongarch_pch: Inject irq line interrupt to kernel X-Git-Tag: v10.1.0-rc0~47^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0dd6798a1adda03dcfa6304437faa8e62a193d9c;p=thirdparty%2Fqemu.git hw/intc/loongarch_pch: Inject irq line interrupt to kernel If kvm_irqchip_in_kernel() return true, irq line interrupt can be injected with API kvm_set_irq() to KVM. Reviewed-by: Song Gao Signed-off-by: Bibo Mao Message-ID: <20250606063033.2557365-10-maobibo@loongson.cn> Signed-off-by: Song Gao --- diff --git a/hw/intc/loongarch_pch_pic.c b/hw/intc/loongarch_pch_pic.c index 13b5766444c..1adef980d48 100644 --- a/hw/intc/loongarch_pch_pic.c +++ b/hw/intc/loongarch_pch_pic.c @@ -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) {