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);