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

From: Baoquan He <[email-masked]>
Date: Sat, 14 Mar 2020 08:35:07 +0800

On 03/14/20 at 11:09am, Stephen Rothwell wrote:
> Hi Baoquan,
> 
> On Fri, 13 Mar 2020 20:56:27 +0800 Baoquan He <[email-masked]> wrote:
> >
> > I made below change, but I can't triger these warnings. Could you try
> > below patch, see if it's works?
> 
> I needed to add "ARCH=x86_64" to the "make allnoconfig" command line
> (and the subsequent "make") otherwise I get a 32 bit build.

Ok, I now see the warnings with 'allnoconfig ARCH=x86_64', thanks.

> 
> > 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)
> >  {
> >  }
> 
> This didn't make any difference as CONFIG_SPARSEMEM is set for the
> x86_64 allnoconfig build.

You are right, CONFIG_SPARSEMEM is set for x86_64. I will work out a
patch after testing. Thanks for these details.