[PATCH] virtio-balloon: move release_pages_balloon() outside of mutex_unlock(&vb->balloon_lock)

From: Liu Xiang
Date: Fri Mar 26 2021 - 05:54:33 EST


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;
}

--
2.17.1