Commit 24ce003135 for qemu.org
commit 24ce0031350003bfb70676f47937dac8fb3f8294
Author: Mark Cave-Ayland <mark.caveayland@nutanix.com>
Date: Tue Nov 3 15:49:40 2026 +0000
i8259.c: don't leak I8259_PIC output IRQ
Commit 54fbbb30d44e ("i8259.c: introduce TYPE_I8259_PIC device") introduced a
separate output IRQ for a PIC representing a cascaded i8259 configuration, but
failed to free it afterwards. Use qemu_init_irq_child() so that the IRQ is
automatically freed when the PIC device is finalized.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Fixes: 54fbbb30d44e ("i8259.c: introduce TYPE_I8259_PIC device")
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-ID: <20261103155018.1454989-1-mark.caveayland@nutanix.com>
Signed-off-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
index 79b5e603bc..6c784ef2a4 100644
--- a/hw/intc/i8259.c
+++ b/hw/intc/i8259.c
@@ -491,7 +491,8 @@ static void i8259_pic_init(Object *obj)
object_initialize_child(obj, "primary", &s->i8259[0], TYPE_I8259);
object_initialize_child(obj, "secondary", &s->i8259[1], TYPE_I8259);
- qemu_init_irq(&s->i8259_primary_out_irq, i8259_primary_out_irq, s, 1);
+ qemu_init_irq_child(obj, "output-irq", &s->i8259_primary_out_irq,
+ i8259_primary_out_irq, s, 1);
qdev_init_gpio_in(DEVICE(obj), i8259_pic_set_irq, ISA_NUM_IRQS);
qdev_init_gpio_out(DEVICE(obj), &s->pic_out_irq, 1);