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

From: Jason Gunthorpe <[email-masked]>
Date: Wed, 1 Apr 2020 20:00:24 -0300

On Wed, Apr 01, 2020 at 03:58:31PM -0700, Andrew Morton wrote:
> On Tue, 31 Mar 2020 19:56:12 +1100 Stephen Rothwell <[email-masked]> wrote:
> 
> > Hi all,
> > 
> > After merging the akpm-current tree, today's linux-next build (i386
> > defconfig) produced this warning:
> > 
> > mm/hugetlb.c: In function 'huge_pte_offset':
> > cc1: warning: function may return address of local variable [-Wreturn-local-addr]
> > mm/hugetlb.c:5361:14: note: declared here
> >  5361 |  pud_t *pud, pud_entry;
> >       |              ^~~~~~~~~
> > cc1: warning: function may return address of local variable [-Wreturn-local-addr]
> > mm/hugetlb.c:5360:14: note: declared here
> >  5360 |  p4d_t *p4d, p4d_entry;
> >       |              ^~~~~~~~~
> > 
> > Introduced by commit
> > 
> >   826ddc88e2cf ("mm/hugetlb: fix a addressing exception caused by huge_pte_offset")
> 
> I can reproduce this (i386 defconfig, gcc-7.2.0).
> 
> I can see no way in which this makes any sense.  Hopefully it's a gcc
> bug but it's hard to see how it could have messed up this fairly simple
> code.

It is a code bug, there was a little thread about this. It happens
because the address of a stack variable is passed into the pXX_offset
functions which return that address when the page levels are folded.

I recommend to drop this patch until it is adjusted..

Jason