diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2014-06-11 13:02:51 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-08-17 23:25:24 +0200 |
commit | e3fb0ade83420a86464ee50c71f2daf5641cab10 (patch) | |
tree | 7baba155ac292b418f3ca852d8a70ffe1e7c4886 /ioport.c | |
parent | eed79309502034d348880414e1dc156c0c4b196c (diff) |
ioport: split deletion and destruction
Of the two functions portio_list_del and portio_list_destroy,
the latter is just freeing a memory area. However, portio_list_del
is the logical equivalent of memory_region_del_subregion so
destruction of memory regions does not belong there.
Actually, neither of these APIs are in use; portio is mostly used by
ISA devices or VGAs, and neither of these is currently hot-unpluggable.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'ioport.c')
-rw-r--r-- | ioport.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -149,6 +149,14 @@ void portio_list_set_flush_coalesced(PortioList *piolist) void portio_list_destroy(PortioList *piolist) { + MemoryRegionPortioList *mrpio; + unsigned i; + + for (i = 0; i < piolist->nr; ++i) { + mrpio = container_of(piolist->regions[i], MemoryRegionPortioList, mr); + memory_region_destroy(&mrpio->mr); + g_free(mrpio); + } g_free(piolist->regions); } @@ -291,8 +299,5 @@ void portio_list_del(PortioList *piolist) for (i = 0; i < piolist->nr; ++i) { mrpio = container_of(piolist->regions[i], MemoryRegionPortioList, mr); memory_region_del_subregion(piolist->address_space, &mrpio->mr); - memory_region_destroy(&mrpio->mr); - g_free(mrpio); - piolist->regions[i] = NULL; } } |