>From a7d439154c7990418da976e5864b91fce9d49d58 Mon Sep 17 00:00:00 2001 From: "Vishal Moola (Oracle)" Date: Wed, 27 Aug 2025 11:10:22 -0700 Subject: [PATCH] virtio_ballon: Call __free_pages() in get_free_page_and_send() free_pages() should be used when we only have a virtual address. We should call __free_pages() directly on our page instead. Signed-off-by: Vishal Moola (Oracle) --- drivers/virtio/virtio_balloon.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index d4e6865ce355..7f3fd72678eb 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -718,8 +718,7 @@ static int get_free_page_and_send(struct virtio_balloon *vb) if (vq->num_free > 1) { err = virtqueue_add_inbuf(vq, &sg, 1, p, GFP_KERNEL); if (unlikely(err)) { - free_pages((unsigned long)p, - VIRTIO_BALLOON_HINT_BLOCK_ORDER); + __free_pages(page, VIRTIO_BALLOON_HINT_BLOCK_ORDER); return err; } virtqueue_kick(vq); @@ -732,7 +731,7 @@ static int get_free_page_and_send(struct virtio_balloon *vb) * The vq has no available entry to add this page block, so * just free it. */ - free_pages((unsigned long)p, VIRTIO_BALLOON_HINT_BLOCK_ORDER); + __free_pages(page, VIRTIO_BALLOON_HINT_BLOCK_ORDER); } return 0; -- 2.51.0