Subject: Re: linux-next: build warning after merge of the akpm-current tree

From: Baoquan He <[email-masked]>
Date: Fri, 13 Mar 2020 20:56:27 +0800

On 03/13/20 at 09:42pm, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the akpm-current tree, today's linux-next build (x86_64
> allnoconfig) produced this warning:
> 
> mm/sparse.c:311:12: warning: 'fill_subsection_map' defined but not used [-Wunused-function]
>   311 | static int fill_subsection_map(unsigned long pfn, unsigned long nr_pages)
>       |            ^~~~~~~~~~~~~~~~~~~
> mm/sparse.c:306:13: warning: 'is_subsection_map_empty' defined but not used [-Wunused-function]
>   306 | static bool is_subsection_map_empty(struct mem_section *ms)
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> mm/sparse.c:301:12: warning: 'clear_subsection_map' defined but not used [-Wunused-function]
>   301 | static int clear_subsection_map(unsigned long pfn, unsigned long nr_pages)
>       |            ^~~~~~~~~~~~~~~~~~~~
> 
> Introduced by commits
> 
>   38eb09ac7c29 ("mm/sparse.c: introduce new function fill_subsection_map()")
>   334411156ba6 ("mm/sparse.c: introduce a new function clear_subsection_map()")

Hi Stephen,

I made below change, but I can't triger these warnings. Could you try
below patch, see if it's works?

>From 9be668f1e30b6bb4ed5f4a07e7d3bb76d3f58f35 Mon Sep 17 00:00:00 2001
From: Baoquan He <[email-masked]>
Date: Fri, 13 Mar 2020 20:25:54 +0800
Subject: [PATCH] mm/sparse.c: fix the building warning with !SPARSEMEM

Stephen reported below warnings are seen with allnoconfig on x86_64.
Fix it by making those dummy functions sub-section map handling visible
with CONFIG_SPARSEMEM enabled.

mm/sparse.c:311:12: warning: 'fill_subsection_map' defined but not used [-Wunused-function]
  311 | static int fill_subsection_map(unsigned long pfn, unsigned long nr_pages)
      |            ^~~~~~~~~~~~~~~~~~~
mm/sparse.c:306:13: warning: 'is_subsection_map_empty' defined but not used [-Wunused-function]
  306 | static bool is_subsection_map_empty(struct mem_section *ms)
      |             ^~~~~~~~~~~~~~~~~~~~~~~
mm/sparse.c:301:12: warning: 'clear_subsection_map' defined but not used [-Wunused-function]
  301 | static int clear_subsection_map(unsigned long pfn, unsigned long nr_pages)
      |            ^~~~~~~~~~~~~~~~~~~~

Signed-off-by: Baoquan He <[email-masked]>
---
 mm/sparse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/sparse.c b/mm/sparse.c
index 362018e82e22..9e08d118719f 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -293,7 +293,7 @@ static int fill_subsection_map(unsigned long pfn, unsigned long nr_pages)
 
 	return rc;
 }
-#else
+#elif defined(CONFIG_SPARSEMEM)
 void __init subsection_map_init(unsigned long pfn, unsigned long nr_pages)
 {
 }
-- 
2.17.2