Commit 1c2d03bb08 for qemu.org

commit 1c2d03bb0889b7a9a677d53126fb035190683af4
Author: Zheng Huang <hz1624917200@gmail.com>
Date:   Fri Mar 28 17:49:35 2025 +0800

    hw/sd/sdhci: free irq on exit

    Fix a memory leak bug in sdhci_pci_realize() due to s->irq
    not being freed in sdhci_pci_exit().

    Signed-off-by: Zheng Huang <hz1624917200@gmail.com>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Message-ID: <09ddf42b-a6db-42d5-954b-148d09d8d6cc@gmail.com>
    [PMD: Moved qemu_free_irq() call before sdhci_common_unrealize()]
    Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>

diff --git a/hw/sd/sdhci-pci.c b/hw/sd/sdhci-pci.c
index 5268c0dee5..bca149e811 100644
--- a/hw/sd/sdhci-pci.c
+++ b/hw/sd/sdhci-pci.c
@@ -18,6 +18,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu/module.h"
+#include "hw/irq.h"
 #include "hw/qdev-properties.h"
 #include "hw/sd/sdhci.h"
 #include "sdhci-internal.h"
@@ -48,6 +49,7 @@ static void sdhci_pci_exit(PCIDevice *dev)
 {
     SDHCIState *s = PCI_SDHCI(dev);

+    qemu_free_irq(s->irq);
     sdhci_common_unrealize(s);
     sdhci_uninitfn(s);
 }