On 4/1/20 4:00 PM, Jason Gunthorpe wrote: > On Wed, Apr 01, 2020 at 03:58:31PM -0700, Andrew Morton wrote: >> On Tue, 31 Mar 2020 19:56:12 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> 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.. Yes, this patch causes at least the BUG here, https://lore.kernel.org/linux-mm/CA+G9fYsJgZhhWLMzUxu_ZQ+THdCcJmFbHQ2ETA_YPP8M6yxOYA@xxxxxxxxxxxxxx/ -- Mike Kravetz