memory: fix address space initialization/destruction

A couple of fields were left uninitialized.  This was not observed earlier
because all address spaces were statically allocated.  Also free allocation
for those fields.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Avi Kivity <avi.kivity@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Avi Kivity 2012-10-30 13:47:44 +02:00 committed by Paolo Bonzini
parent 1d671369c3
commit 4c19eb721a

View File

@ -1572,6 +1572,8 @@ void address_space_init(AddressSpace *as, MemoryRegion *root)
as->root = root; as->root = root;
as->current_map = g_new(FlatView, 1); as->current_map = g_new(FlatView, 1);
flatview_init(as->current_map); flatview_init(as->current_map);
as->ioeventfd_nb = 0;
as->ioeventfds = NULL;
QTAILQ_INSERT_TAIL(&address_spaces, as, address_spaces_link); QTAILQ_INSERT_TAIL(&address_spaces, as, address_spaces_link);
as->name = NULL; as->name = NULL;
memory_region_transaction_commit(); memory_region_transaction_commit();
@ -1588,6 +1590,7 @@ void address_space_destroy(AddressSpace *as)
address_space_destroy_dispatch(as); address_space_destroy_dispatch(as);
flatview_destroy(as->current_map); flatview_destroy(as->current_map);
g_free(as->current_map); g_free(as->current_map);
g_free(as->ioeventfds);
} }
uint64_t io_mem_read(MemoryRegion *mr, hwaddr addr, unsigned size) uint64_t io_mem_read(MemoryRegion *mr, hwaddr addr, unsigned size)