On Thu, Jul 04, 2024 at 10:58:51PM +0200, Bernhard Beschow wrote: > This series first turns vt82c686's "INTR" pin into a named GPIO for better > comprehensibility. It then continues fixing qemu_irq memory leaks in vt82c686 > and piix4 by connecting out IRQs of the south bridges before they get > realized. > This approach is already used in the pc machines after it had been discussed > at > KVM forum `23. > > Observe that out IRQs are callbacks such as an INTR IRQ handler in a CPU > which a > south bridge wants to trigger. If, as an implementation detail, the south > bridge > wants to pass this callback to a child device, such as the PIC, then this > callback must be known to the south bridge before it gets realized. Otherwise > board code had to wire the PIC device itself, breaking encapsulation. This > means > that qdev_connect_gpio_out*() has to be called before realize() which this > series implements. Another way to look at it is that callbacks apparently are > resouces such as memory regions which are also populated before realize(). > > Please check if above paragraph makes sense. > > Best regards, > Bernhard
Bernhard, do you intend to resolve Zoltan's comments on this patchset? Thanks! > See also: > * > https://lore.kernel.org/qemu-devel/0FFB5FD2-08CE-4CEC-9001-E7AC24407A44@gmail. > com/ > * "Remove intermediate IRQ forwarder" patches in > https://lore.kernel.org/qemu-devel/20230210163744.32182-1-phi...@linaro.org/ > > Testing done: > * Boot amigaone machine into Linux > * Boot pegasos2 machine into MorphOS > * Start fuloong2e machine and check that it doesn't abort > * Boot malta machine with https://people.debian.org/~gio/dqib/ > > Bernhard Beschow (3): > hw/isa/vt82c686: Turn "intr" irq into a named gpio > hw/isa/vt82c686: Resolve intermediate IRQ forwarder > hw/isa/piix: Resolve intermediate IRQ forwarder > > hw/isa/piix.c | 13 ++----------- > hw/isa/vt82c686.c | 12 ++---------- > hw/mips/fuloong2e.c | 2 +- > hw/mips/malta.c | 4 +--- > hw/ppc/amigaone.c | 8 ++++---- > hw/ppc/pegasos2.c | 4 ++-- > 6 files changed, 12 insertions(+), 31 deletions(-) > > -- > 2.45.2 >