@samitouri / QOSamiQemu / commits / 13a1083b42

hw/ssi/pnv_spi: Fix fifo8 memory leak on unrealize

unrealize should free the fifo8 memory that was allocated by realize. Fixes: 17befecda85 ("hw/ssi/pnv_spi: Replace PnvXferBuffer with Fifo8 structure") Reviewed-by: Glenn Miles <milesg@linux.ibm.com> Reviewed-by: Chalapathi V <chalapathi.v@linux.ibm.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Caleb Schlossin <calebs@linux.ibm.com> Reviewed-by: Aditya Gupta <adityag@linux.ibm.com> Link: https://lore.kernel.org/qemu-devel/20260120145117.602960-1-calebs@linux.ibm.com Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>

Caleb Schlossin committed Jan 20, 2026 at 08:51 UTC 13a1083b42b0679b7de3facbd0c4ba47f6e908fc
1 file changed +8
hw/ssi/pnv_spi.c
+8
@@ -1177,6 +1177,13 @@ static void pnv_spi_realize(DeviceState *dev, Error **errp)
1177 s, "xscom-spi", PNV10_XSCOM_PIB_SPIC_SIZE);
1178 }
1179
1180 +static void pnv_spi_unrealize(DeviceState *dev)
1181 +{
1182 + PnvSpi *s = PNV_SPI(dev);
1183 + fifo8_destroy(&s->tx_fifo);
1184 + fifo8_destroy(&s->rx_fifo);
1185 +}
1186 +
1187 static int pnv_spi_dt_xscom(PnvXScomInterface *dev, void *fdt,
1188 int offset)
1189 {
@@ -1234,6 +1241,7 @@ static void pnv_spi_class_init(ObjectClass *klass, const void *data)
1241
1242 dc->desc = "PowerNV SPI";
1243 dc->realize = pnv_spi_realize;
1244 + dc->unrealize = pnv_spi_unrealize;
1245 device_class_set_legacy_reset(dc, do_reset);
1246 dc->vmsd = &pnv_spi_vmstate;
1247 device_class_set_props(dc, pnv_spi_properties);