[PATCH v2 02/23] vmw_balloon: remove vmballoon_compaction_init()

David Hildenbrand (Red Hat) posted 23 patches 3 weeks, 4 days ago
There is a newer version of this series
[PATCH v2 02/23] vmw_balloon: remove vmballoon_compaction_init()
Posted by David Hildenbrand (Red Hat) 3 weeks, 4 days ago
Now that there is not a lot of logic left, let's just inline setting up
the migration function and drop all these excessive comments that are
not really required (or true) anymore.

To avoid #ifdef in the caller we can instead use IS_ENABLED() and make
the compiler happy by only providing the function declaration.

Signed-off-by: David Hildenbrand (Red Hat) <david@kernel.org>
---
 drivers/misc/vmw_balloon.c | 30 +++++-------------------------
 1 file changed, 5 insertions(+), 25 deletions(-)

diff --git a/drivers/misc/vmw_balloon.c b/drivers/misc/vmw_balloon.c
index 2cc34c4968fac..07e60a4b846aa 100644
--- a/drivers/misc/vmw_balloon.c
+++ b/drivers/misc/vmw_balloon.c
@@ -1833,27 +1833,10 @@ static int vmballoon_migratepage(struct balloon_dev_info *b_dev_info,
 	up_read(&b->conf_sem);
 	return ret;
 }
-
-/**
- * vmballoon_compaction_init() - initialized compaction for the balloon.
- *
- * @b: pointer to the balloon.
- *
- * If during the initialization a failure occurred, this function does not
- * perform cleanup. The caller must call vmballoon_compaction_deinit() in this
- * case.
- *
- * Return: zero on success or error code on failure.
- */
-static __init void vmballoon_compaction_init(struct vmballoon *b)
-{
-	b->b_dev_info.migratepage = vmballoon_migratepage;
-}
-
 #else /* CONFIG_BALLOON_COMPACTION */
-static inline void vmballoon_compaction_init(struct vmballoon *b)
-{
-}
+int vmballoon_migratepage(struct balloon_dev_info *b_dev_info,
+			  struct page *newpage, struct page *page,
+			  enum migrate_mode mode);
 #endif /* CONFIG_BALLOON_COMPACTION */
 
 static int __init vmballoon_init(void)
@@ -1873,12 +1856,9 @@ static int __init vmballoon_init(void)
 	if (error)
 		return error;
 
-	/*
-	 * Initialization of compaction must be done after the call to
-	 * balloon_devinfo_init() .
-	 */
 	balloon_devinfo_init(&balloon.b_dev_info);
-	vmballoon_compaction_init(&balloon);
+	if (IS_ENABLED(CONFIG_BALLOON_COMPACTION))
+		balloon.b_dev_info.migratepage = vmballoon_migratepage;
 
 	INIT_LIST_HEAD(&balloon.huge_pages);
 	spin_lock_init(&balloon.comm_lock);
-- 
2.52.0
Re: [PATCH v2 02/23] vmw_balloon: remove vmballoon_compaction_init()
Posted by Lorenzo Stoakes 3 weeks, 4 days ago
On Thu, Jan 15, 2026 at 10:19:52AM +0100, David Hildenbrand (Red Hat) wrote:
> Now that there is not a lot of logic left, let's just inline setting up
> the migration function and drop all these excessive comments that are
> not really required (or true) anymore.
>
> To avoid #ifdef in the caller we can instead use IS_ENABLED() and make
> the compiler happy by only providing the function declaration.
>
> Signed-off-by: David Hildenbrand (Red Hat) <david@kernel.org>

Seems reasonable to me, so:

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  drivers/misc/vmw_balloon.c | 30 +++++-------------------------
>  1 file changed, 5 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/misc/vmw_balloon.c b/drivers/misc/vmw_balloon.c
> index 2cc34c4968fac..07e60a4b846aa 100644
> --- a/drivers/misc/vmw_balloon.c
> +++ b/drivers/misc/vmw_balloon.c
> @@ -1833,27 +1833,10 @@ static int vmballoon_migratepage(struct balloon_dev_info *b_dev_info,
>  	up_read(&b->conf_sem);
>  	return ret;
>  }
> -
> -/**
> - * vmballoon_compaction_init() - initialized compaction for the balloon.
> - *
> - * @b: pointer to the balloon.
> - *
> - * If during the initialization a failure occurred, this function does not
> - * perform cleanup. The caller must call vmballoon_compaction_deinit() in this
> - * case.
> - *
> - * Return: zero on success or error code on failure.
> - */
> -static __init void vmballoon_compaction_init(struct vmballoon *b)
> -{
> -	b->b_dev_info.migratepage = vmballoon_migratepage;
> -}
> -
>  #else /* CONFIG_BALLOON_COMPACTION */
> -static inline void vmballoon_compaction_init(struct vmballoon *b)
> -{
> -}
> +int vmballoon_migratepage(struct balloon_dev_info *b_dev_info,
> +			  struct page *newpage, struct page *page,
> +			  enum migrate_mode mode);
>  #endif /* CONFIG_BALLOON_COMPACTION */
>
>  static int __init vmballoon_init(void)
> @@ -1873,12 +1856,9 @@ static int __init vmballoon_init(void)
>  	if (error)
>  		return error;
>
> -	/*
> -	 * Initialization of compaction must be done after the call to
> -	 * balloon_devinfo_init() .
> -	 */
>  	balloon_devinfo_init(&balloon.b_dev_info);
> -	vmballoon_compaction_init(&balloon);
> +	if (IS_ENABLED(CONFIG_BALLOON_COMPACTION))
> +		balloon.b_dev_info.migratepage = vmballoon_migratepage;
>
>  	INIT_LIST_HEAD(&balloon.huge_pages);
>  	spin_lock_init(&balloon.comm_lock);
> --
> 2.52.0
>