Amit Shah <amit.s...@redhat.com> writes: > Add an exit handler that will free up RAM and unregister the savevm > section after a virtio-balloon device is unplugged. > > Signed-off-by: Amit Shah <amit.s...@redhat.com> > --- > hw/virtio-balloon.c | 5 +++++ > hw/virtio-pci.c | 11 ++++++++++- > hw/virtio.h | 1 + > 3 files changed, 16 insertions(+), 1 deletions(-) > > diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c > index 26ee364..0ce0049 100644 > --- a/hw/virtio-balloon.c > +++ b/hw/virtio-balloon.c > @@ -297,3 +297,8 @@ VirtIODevice *virtio_balloon_init(DeviceState *dev) > > return &s->vdev; > } > + > +void virtio_balloon_exit(VirtIODevice *vdev) > +{ > + virtio_cleanup(vdev); > +} > diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c > index ca5f125..316bf92 100644 > --- a/hw/virtio-pci.c > +++ b/hw/virtio-pci.c > @@ -795,6 +795,15 @@ static int virtio_balloon_init_pci(PCIDevice *pci_dev) > return 0; > } > > +static int virtio_balloon_exit_pci(PCIDevice *pci_dev) > +{ > + VirtIOPCIProxy *proxy = DO_UPCAST(VirtIOPCIProxy, pci_dev, pci_dev); > + > + virtio_pci_stop_ioeventfd(proxy); > + virtio_balloon_exit(proxy->vdev); > + return virtio_exit_pci(pci_dev); > +} > +
Same code in every other virtio_*_exit_pci(). Suggests there's something wrong with the generic code. Outside the scope of this series, of course. [...]