diff options
| author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2016-07-13 02:11:59 +0200 |
|---|---|---|
| committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2016-09-08 18:05:21 +0400 |
| commit | e305a16510afa74eec20390479e349402e55ef4c (patch) | |
| tree | a7b169b1ea91349fb47db68c74e66d635a11e518 /hw/audio/sb16.c | |
| parent | bd794065ffffe10721b6a95f1db52f2cc7953196 (diff) | |
| download | focaccia-qemu-e305a16510afa74eec20390479e349402e55ef4c.tar.gz focaccia-qemu-e305a16510afa74eec20390479e349402e55ef4c.zip | |
portio: keep references on portio
The isa_register_portio_list() function allocates ioports data/state. Let's keep the reference to this data on some owner. This isn't enough to fix leaks, but at least, ASAN stops complaining of direct leaks. Further cleanup would require calling portio_list_del/destroy(). Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/audio/sb16.c')
| -rw-r--r-- | hw/audio/sb16.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/audio/sb16.c b/hw/audio/sb16.c index 3a4a57ac31..6b4427f242 100644 --- a/hw/audio/sb16.c +++ b/hw/audio/sb16.c @@ -106,6 +106,7 @@ typedef struct SB16State { /* mixer state */ int mixer_nreg; uint8_t mixer_regs[256]; + PortioList portio_list; } SB16State; static void SB_audio_callback (void *opaque, int free); @@ -1378,7 +1379,8 @@ static void sb16_realizefn (DeviceState *dev, Error **errp) dolog ("warning: Could not create auxiliary timer\n"); } - isa_register_portio_list (isadev, s->port, sb16_ioport_list, s, "sb16"); + isa_register_portio_list(isadev, &s->portio_list, s->port, + sb16_ioport_list, s, "sb16"); s->isa_hdma = isa_get_dma(isa_bus_from_device(isadev), s->hdma); k = ISADMA_GET_CLASS(s->isa_hdma); |