diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2016-07-13 02:11:59 +0200 |
---|---|---|
committer | Michael Roth <mdroth@linux.vnet.ibm.com> | 2016-12-21 10:08:19 -0600 |
commit | 7d17d68971903467c5d5edd035f6ee18a8b11742 (patch) | |
tree | f424d2035493e1d931a0631e9bf76c55f5f76b48 /hw/dma | |
parent | 345f1cd9f6e4f156c7af0098b3d220305037f227 (diff) |
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>
(cherry picked from commit e305a16510afa74eec20390479e349402e55ef4c)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Diffstat (limited to 'hw/dma')
-rw-r--r-- | hw/dma/i8257.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c index f345c54762..bffbdea0ca 100644 --- a/hw/dma/i8257.c +++ b/hw/dma/i8257.c @@ -553,10 +553,12 @@ static void i8257_realize(DeviceState *dev, Error **errp) memory_region_add_subregion(isa_address_space_io(isa), d->base, &d->channel_io); - isa_register_portio_list(isa, d->page_base, page_portio_list, d, + isa_register_portio_list(isa, &d->portio_page, + d->page_base, page_portio_list, d, "dma-page"); if (d->pageh_base >= 0) { - isa_register_portio_list(isa, d->pageh_base, pageh_portio_list, d, + isa_register_portio_list(isa, &d->portio_pageh, + d->pageh_base, pageh_portio_list, d, "dma-pageh"); } |