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