Commit 6c22dc61 authored by David Hildenbrand's avatar David Hildenbrand Committed by Michael S. Tsirkin

virtio-balloon: Fix memory leak when unloading while hinting is in progress

When unloading the driver while hinting is in progress, we will not
release the free page blocks back to MM, resulting in a memory leak.

Fixes: 86a55978 ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT")
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Wei Wang <wei.w.wang@intel.com>
Cc: Liang Li <liang.z.li@intel.com>
Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/20200205163402.42627-2-david@redhat.comSigned-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 6e9826e7
...@@ -970,6 +970,10 @@ static void remove_common(struct virtio_balloon *vb) ...@@ -970,6 +970,10 @@ static void remove_common(struct virtio_balloon *vb)
leak_balloon(vb, vb->num_pages); leak_balloon(vb, vb->num_pages);
update_balloon_size(vb); update_balloon_size(vb);
/* There might be free pages that are being reported: release them. */
if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
return_free_pages_to_mm(vb, ULONG_MAX);
/* Now we reset the device so we can clean up the queues. */ /* Now we reset the device so we can clean up the queues. */
vb->vdev->config->reset(vb->vdev); vb->vdev->config->reset(vb->vdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment