[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2025120238-glider-raffle-99ea@gregkh>
Date: Tue, 2 Dec 2025 16:24:04 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: Harry Yoo <harry.yoo@...cle.com>
Cc: Naresh Kamboju <naresh.kamboju@...aro.org>, stable@...r.kernel.org,
patches@...ts.linux.dev, linux-kernel@...r.kernel.org,
torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
linux@...ck-us.net, shuah@...nel.org, patches@...nelci.org,
lkft-triage@...ts.linaro.org, pavel@...x.de, jonathanh@...dia.com,
f.fainelli@...il.com, sudipm.mukherjee@...il.com, rwarsow@....de,
conor@...nel.org, hargar@...rosoft.com, broonie@...nel.org,
achill@...ill.org, sr@...dewatkins.com,
Ben Copeland <benjamin.copeland@...aro.org>,
Dan Carpenter <dan.carpenter@...aro.org>,
Anders Roxell <anders.roxell@...aro.org>,
Arnd Bergmann <arnd@...db.de>, Hugh Dickins <hughd@...gle.com>,
Sasha Levin <sashal@...nel.org>, Peter Xu <peterx@...hat.com>
Subject: Re: [PATCH 5.4 000/184] 5.4.302-rc2 review
On Tue, Dec 02, 2025 at 10:10:21PM +0900, Harry Yoo wrote:
> On Tue, Dec 02, 2025 at 06:02:33PM +0530, Naresh Kamboju wrote:
> > On Tue, 2 Dec 2025 at 15:41, Greg Kroah-Hartman
> > <gregkh@...uxfoundation.org> wrote:
> > >
> > > This is the start of the stable review cycle for the 5.4.302 release.
> > > There are 184 patches in this series, all will be posted as a response
> > > to this one. If anyone has any issues with these being applied, please
> > > let me know.
> > >
> > > Responses should be made by Thu, 04 Dec 2025 09:54:14 +0000.
> > > Anything received after that time might be too late.
> > >
> > > The whole patch series can be found in one patch at:
> > > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.302-rc2.gz
> > > or in the git tree and branch at:
> > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> > > and the diffstat can be found below.
> > >
> > > thanks,
> > >
> > > greg k-h
> >
> > The powerpc builds failed on the stable-rc 5.4.302-rc1 and 5.4.302-rc2.
> >
> > * powerpc, build
> > - clang-21-cell_defconfig
> > - clang-nightly-cell_defconfig
> > - gcc-12-cell_defconfig
> > - gcc-12-defconfig
> > - gcc-12-ppc64e_defconfig
> > - gcc-12-ppc6xx_defconfig
> > - gcc-8-cell_defconfig
> > - gcc-8-defconfig
> > - gcc-8-ppc64e_defconfig
> > - gcc-8-ppc6xx_defconfig
> >
> > Build regressions: powerpc: mm/mprotect.c:: pgtable.h:971:38: error:
> > called object 'pmd_val' is not a function or function pointer
> > Reported-by: Linux Kernel Functional Testing <lkft@...aro.org>
> >
> > The bisection is in progress,
> > meanwhile this patch looks to be causing the build failure,
> >
> > mm/mprotect: delete pmd_none_or_clear_bad_unless_trans_huge()
> > commit 670ddd8cdcbd1d07a4571266ae3517f821728c3a upstream.
> >
> > The sequence patch.
> > mm/mprotect: use long for page accountings and retval
> > commit a79390f5d6a78647fd70856bd42b22d994de0ba2 upstream.
> >
> > ### Build error
> > In file included from include/linux/bug.h:5,
> > from include/linux/mmdebug.h:5,
> > from include/linux/mm.h:9,
> > from include/linux/pagewalk.h:5,
> > from mm/mprotect.c:12:
> > mm/mprotect.c: In function 'change_pte_range':
> > arch/powerpc/include/asm/book3s/64/pgtable.h:971:38: error: called
> > object 'pmd_val' is not a function or function pointer
> > 971 | #define pmd_page_vaddr(pmd) __va(pmd_val(pmd) & ~PMD_MASKED_BITS)
> > | ^~~~~~~
> > arch/powerpc/include/asm/bug.h:91:32: note: in definition of macro 'WARN_ON'
> > 91 | int __ret_warn_on = !!(x); \
> > | ^
> > arch/powerpc/include/asm/page.h:229:9: note: in expansion of macro
> > 'VIRTUAL_WARN_ON'
> > 229 | VIRTUAL_WARN_ON((unsigned long)(x) >= PAGE_OFFSET);
> > \
> > | ^~~~~~~~~~~~~~~
> > arch/powerpc/include/asm/book3s/64/pgtable.h:971:33: note: in
> > expansion of macro '__va'
> > 971 | #define pmd_page_vaddr(pmd) __va(pmd_val(pmd) & ~PMD_MASKED_BITS)
> > | ^~~~
> > arch/powerpc/include/asm/book3s/64/pgtable.h:1007:21: note: in
> > expansion of macro 'pmd_page_vaddr'
> > 1007 | (((pte_t *) pmd_page_vaddr(*(dir))) + pte_index(addr))
> > | ^~~~~~~~~~~~~~
> > arch/powerpc/include/asm/book3s/64/pgtable.h:1009:41: note: in
> > expansion of macro 'pte_offset_kernel'
> > 1009 | #define pte_offset_map(dir,addr) pte_offset_kernel((dir), (addr))
> > | ^~~~~~~~~~~~~~~~~
> > include/linux/mm.h:2010:24: note: in expansion of macro 'pte_offset_map'
> > 2010 | pte_t *__pte = pte_offset_map(pmd, address); \
> > | ^~~~~~~~~~~~~~
> > mm/mprotect.c:48:15: note: in expansion of macro 'pte_offset_map_lock'
> > 48 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
> > | ^~~~~~~~~~~~~~~~~~~
> > mm/mprotect.c:43:15: note: declared here
> > 43 | pmd_t pmd_val;
> > | ^~~~~~~
> > In file included from arch/powerpc/include/asm/mmu.h:132,
> > from arch/powerpc/include/asm/lppaca.h:47,
> > from arch/powerpc/include/asm/paca.h:17,
> > from arch/powerpc/include/asm/current.h:13,
> > from include/linux/thread_info.h:22,
> > from include/asm-generic/preempt.h:5,
> > from ./arch/powerpc/include/generated/asm/preempt.h:1,
> > from include/linux/preempt.h:78,
> > from include/linux/spinlock.h:51,
> > from include/linux/mmzone.h:8,
> > from include/linux/gfp.h:6,
> > from include/linux/mm.h:10:
> > arch/powerpc/include/asm/book3s/64/pgtable.h:971:38: error: called
> > object 'pmd_val' is not a function or function pointer
> > 971 | #define pmd_page_vaddr(pmd) __va(pmd_val(pmd) & ~PMD_MASKED_BITS)
> > | ^~~~~~~
> > arch/powerpc/include/asm/page.h:230:47: note: in definition of macro '__va'
> > 230 | (void *)(unsigned long)((phys_addr_t)(x) |
> > PAGE_OFFSET); \
> > | ^
> > arch/powerpc/include/asm/book3s/64/pgtable.h:1007:21: note: in
> > expansion of macro 'pmd_page_vaddr'
> > 1007 | (((pte_t *) pmd_page_vaddr(*(dir))) + pte_index(addr))
> > | ^~~~~~~~~~~~~~
> > arch/powerpc/include/asm/book3s/64/pgtable.h:1009:41: note: in
> > expansion of macro 'pte_offset_kernel'
> > 1009 | #define pte_offset_map(dir,addr) pte_offset_kernel((dir), (addr))
> > | ^~~~~~~~~~~~~~~~~
> > include/linux/mm.h:2010:24: note: in expansion of macro 'pte_offset_map'
> > 2010 | pte_t *__pte = pte_offset_map(pmd, address); \
> > | ^~~~~~~~~~~~~~
> > mm/mprotect.c:48:15: note: in expansion of macro 'pte_offset_map_lock'
> > 48 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
> > | ^~~~~~~~~~~~~~~~~~~
> > mm/mprotect.c:43:15: note: declared here
> > 43 | pmd_t pmd_val;
> > | ^~~~~~~
>
> Hi Naresh, thanks for reporting!
>
> Whoa, I really didn't expect this.
>
> I named the variable pmd_val, and during the expansion of
> pte_offset_map_lock(), we call pmd_val(), and the compiler is confused
> because it's calling a variable rather than a function or macro.
>
> And it didn't show up on my testing environment because on x86_64
> implementation of pte_offset_map_lock() implementation we don't call
> pmd_val(). The fix would be simply renaming the variable.
>
> To Greg and Sasha; I guess these patches will be dropped for this cycle
> and I'm supposed to send V2, right? These two patches are queued for
> 6.1, 5.15, 5.10 as well.
Ok, I'll go drop these from all of these branches now and wait for a v2.
I'll also push out a -rc3.
thanks,
greg k-h
Powered by blists - more mailing lists