On 12/9/25 22:23, Dongli Zhang wrote:
Do not set vb->pr_dev_info.report unconditionally if
VIRTIO_BALLOON_F_REPORTING is not available.
Can you share with us why you think that should be done? Please document
the "why" and not only the "what".
Without VIRTIO_BALLOON_F_REPORTING, we'll never call
page_reporting_register(), so it will never be used.
But the compiler cannot optimize it out. It only happens during driver
loading, so I am not sure it is worth the churn?
Signed-off-by: Dongli Zhang <[email protected]>
---
drivers/virtio/virtio_balloon.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 74fe59f5a78c..0c39f2415324 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -1034,7 +1034,6 @@ static int virtballoon_probe(struct virtio_device *vdev)
poison_val, &poison_val);
}
- vb->pr_dev_info.report = virtballoon_free_page_report;
if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_REPORTING)) {
unsigned int capacity;
@@ -1044,6 +1043,8 @@ static int virtballoon_probe(struct virtio_device *vdev)
goto out_unregister_oom;
}
+ vb->pr_dev_info.report = virtballoon_free_page_report;
+
/*
* The default page reporting order is @pageblock_order, which
* corresponds to 512MB in size on ARM64 when 64KB base page
--
Cheers
David