On Thu, 19 Aug 2021 at 15:21, Philippe Mathieu-Daudé <phi...@redhat.com> wrote: > > Replace g_malloc0() + address_space_init() by address_space_create(). > Release the resource in DeviceUnrealize(). > > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > hw/dma/xlnx-zdma.c | 15 +++++++++------ > hw/dma/xlnx_csu_dma.c | 9 ++------- > 2 files changed, 11 insertions(+), 13 deletions(-) > > diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c > index fa38a556341..9f6b3fa47c6 100644 > --- a/hw/dma/xlnx-zdma.c > +++ b/hw/dma/xlnx-zdma.c > @@ -777,15 +777,17 @@ static void zdma_realize(DeviceState *dev, Error **errp) > }; > } > > - if (s->dma_mr) { > - s->dma_as = g_malloc0(sizeof(AddressSpace)); > - address_space_init(s->dma_as, s->dma_mr, NULL); > - } else { > - s->dma_as = &address_space_memory; > - } > + s->dma_as = address_space_create(s->dma_mr ?: get_system_memory(), NULL); > s->attr = MEMTXATTRS_UNSPECIFIED; > }
Why are these devices doing a heap allocation rather than having an AddressSpace whatever field in their device struct ? thanks -- PMM