diff options
author | Bibo Mao <maobibo@loongson.cn> | 2025-06-06 14:30:29 +0800 |
---|---|---|
committer | Song Gao <gaosong@loongson.cn> | 2025-06-19 15:51:36 +0800 |
commit | 0dd6798a1adda03dcfa6304437faa8e62a193d9c (patch) | |
tree | 4d45b5946c0cbb442807d311f395777452e7f394 | |
parent | 11a04c9f40ac479f68139f6801da314591e67ae1 (diff) | |
download | qemu-0dd6798a1adda03dcfa6304437faa8e62a193d9c.zip qemu-0dd6798a1adda03dcfa6304437faa8e62a193d9c.tar.gz qemu-0dd6798a1adda03dcfa6304437faa8e62a193d9c.tar.bz2 |
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 <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>
-rw-r--r-- | hw/intc/loongarch_pch_pic.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/intc/loongarch_pch_pic.c b/hw/intc/loongarch_pch_pic.c index 13b5766..1adef98 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) { |