Since pages have been deflated to a local list,
there is no race between fill and leak.
Signed-off-by: Liu Xiang <liu.xiang@xxxxxxxxxxxxxx>
---
drivers/virtio/virtio_balloon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 8985fc2ce..7da25b87f 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -303,8 +303,8 @@ static unsigned leak_balloon(struct virtio_balloon *vb, size_t num)
*/
if (vb->num_pfns != 0)
tell_host(vb, vb->deflate_vq);
- release_pages_balloon(vb, &pages);
mutex_unlock(&vb->balloon_lock);
+ release_pages_balloon(vb, &pages);
return num_freed_pages;
}