qemu/hw/char
Peter Maydell 7527e29c06 hw/char/max78000_uart: Destroy FIFO on deinit
In the max78000_uart we create a FIFO in the instance_init function,
but we don't destroy it on deinit, so ASAN reports a leak in the
device-introspect-test:

    #0 0x561cc92d5de3 in malloc (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-asan/qemu-system-arm+0x21f1de3) (BuildId: 98fdf9fc85c3beaeca8eda0be8412f1e11b9c6ad)
    #1 0x70cbf2afab09 in g_malloc (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x62b09) (BuildId: 1eb6131419edb83b2178b682829a6913cf682d75)
    #2 0x561ccc4c884d in fifo8_create /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-asan/../../util/fifo8.c:27:18
    #3 0x561cc9744ec9 in max78000_uart_init /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/arm-asan/../../hw/char/max78000_uart.c:241:5

Add an instance_finalize method to destroy the FIFO.

Cc: qemu-stable@nongnu.org
Fixes: d447e4b702 ("MAX78000: UART Implementation")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20250821154358.2417744-1-peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
(cherry picked from commit ac6b124180)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-09-04 23:17:16 +03:00
..
avr_usart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
bcm2835_aux.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cadence_uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
cmsdk-apb-uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
debugcon.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
digic-uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
diva-gsp.c hw/char/serial: Remove unused prog_if compat property 2025-05-02 21:49:32 +02:00
escc.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
exynos4210_uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
goldfish_tty.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
grlib_apbuart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ibex_uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
imx_serial.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
ipoctal232.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
Kconfig MAX78000: UART Implementation 2025-07-08 17:31:38 +01:00
max78000_uart.c hw/char/max78000_uart: Destroy FIFO on deinit 2025-09-04 23:17:16 +03:00
mcf_uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
mchp_pfsoc_mmuart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
meson.build MAX78000: UART Implementation 2025-07-08 17:31:38 +01:00
nrf51_uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
omap_uart.c include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
parallel-isa.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
parallel.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
pl011.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
renesas_sci.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
riscv_htif.c qemu: Declare all load/store helper in 'qemu/bswap.h' 2025-07-15 02:56:39 -04:00
sclpconsole-lm.c hw/char/sclpconsole-lm: skip automatic zero-init of large array 2025-06-12 13:40:15 -04:00
sclpconsole.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
serial-isa.c qom: Make InterfaceInfo[] uses const 2025-04-25 17:00:41 +02:00
serial-mm.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
serial-pci-multi.c hw/char/serial: Remove unused prog_if compat property 2025-05-02 21:49:32 +02:00
serial-pci.c hw/char/serial: Remove unused prog_if compat property 2025-05-02 21:49:32 +02:00
serial.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sh_serial.c hw/char/sh_serial: Convert to TypeInfo 2025-06-10 10:58:59 +02:00
shakti_uart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
sifive_uart.c hw/char: sifive_uart: Avoid infinite delay of async xmit function 2025-07-04 21:09:48 +10:00
spapr_vty.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32f2xx_usart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
stm32l4x5_usart.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
terminal3270.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
trace-events hw/char/pl011: Improve RX flow tracing events 2025-03-04 14:45:34 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
virtio-console.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
virtio-serial-bus.c vhost-user: return failure if backend crash when live migration 2025-05-14 05:39:15 -04:00
xen_console.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
xilinx_uartlite.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00