On 15.09.2015 18:07, marcandre.lur...@redhat.com wrote: > From: Marc-André Lureau <marcandre.lur...@redhat.com> > > Failing to create a chardev shouldn't be fatal. > > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> > --- > hw/misc/ivshmem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c > index 3af73a5..7ba93c0 100644 > --- a/hw/misc/ivshmem.c > +++ b/hw/misc/ivshmem.c > @@ -299,7 +299,7 @@ static CharDriverState* create_eventfd_chr_device(void * > opaque, EventNotifier * > > if (chr == NULL) { > error_report("creating eventfd for eventfd %d failed", eventfd); > - exit(1); > + return NULL; > } > qemu_chr_fe_claim_no_fail(chr); > >
I took a look at the eventfd_chr array in the IVShmemState, and I noticed that it's allocated with malloc at some point for receiving interrupts with g_malloc0 in pci_ivshmem_init, but it's never freed in pci_ivshmem_uninit. Is there such a change somewhere in the patchset I have missed? Have you checked that the resources allocated during pci_ivshmem_init are released on pci_ivshmem_uninit? Ciao Claudio