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.

[...]

Reply via email to