On Tue, 2 Dec 2025 at 15:41, Greg Kroah-Hartman gregkh@linuxfoundation.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... 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@linaro.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; | ^~~~~~~ make[2]: *** [scripts/Makefile.build:262: mm/mprotect.o] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1769: mm] Error 2 kernel/profile.c: In function 'profile_dead_cpu': kernel/profile.c:347:27: warning: the comparison will always evaluate as 'true' for the address of 'prof_cpu_mask' will never be NULL [-Waddress] 347 | if (prof_cpu_mask != NULL) | ^~ kernel/profile.c:50:22: note: 'prof_cpu_mask' declared here 50 | static cpumask_var_t prof_cpu_mask; | ^~~~~~~~~~~~~ kernel/profile.c: In function 'profile_online_cpu': kernel/profile.c:384:27: warning: the comparison will always evaluate as 'true' for the address of 'prof_cpu_mask' will never be NULL [-Waddress] 384 | if (prof_cpu_mask != NULL) | ^~ kernel/profile.c:50:22: note: 'prof_cpu_mask' declared here 50 | static cpumask_var_t prof_cpu_mask; | ^~~~~~~~~~~~~ kernel/profile.c: In function 'profile_tick': kernel/profile.c:414:47: warning: the comparison will always evaluate as 'true' for the address of 'prof_cpu_mask' will never be NULL [-Waddress] 414 | if (!user_mode(regs) && prof_cpu_mask != NULL && | ^~ kernel/profile.c:50:22: note: 'prof_cpu_mask' declared here 50 | static cpumask_var_t prof_cpu_mask; | ^~~~~~~~~~~~~ In file included from include/linux/list.h:9, from include/net/tcp.h:19, from net/ipv4/tcp_output.c:40: net/ipv4/tcp_output.c: In function 'tcp_tso_should_defer': include/linux/kernel.h:843:43: warning: comparison of distinct pointer types lacks a cast 843 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) | ^~ include/linux/kernel.h:857:18: note: in expansion of macro '__typecheck' 857 | (__typecheck(x, y) && __no_side_effects(x, y)) | ^~~~~~~~~~~ include/linux/kernel.h:867:31: note: in expansion of macro '__safe_cmp' 867 | __builtin_choose_expr(__safe_cmp(x, y), \ | ^~~~~~~~~~ include/linux/kernel.h:876:25: note: in expansion of macro '__careful_cmp' 876 | #define min(x, y) __careful_cmp(x, y, <) | ^~~~~~~~~~~~~ net/ipv4/tcp_output.c:2028:21: note: in expansion of macro 'min' 2028 | threshold = min(srtt_in_ns >> 1, NSEC_PER_MSEC); | ^~~ fs/xfs/libxfs/xfs_inode_fork.c: In function 'xfs_ifork_verify_attr': fs/xfs/libxfs/xfs_inode_fork.c:735:13: warning: the comparison will always evaluate as 'true' for the address of 'i_df' will never be NULL [-Waddress] 735 | if (!XFS_IFORK_PTR(ip, XFS_ATTR_FORK)) | ^ In file included from fs/xfs/libxfs/xfs_inode_fork.c:14: fs/xfs/xfs_inode.h:38:33: note: 'i_df' declared here 38 | struct xfs_ifork i_df; /* data fork */ | ^~~~ make[1]: Target '_all' not remade because of errors. make: *** [Makefile:186: sub-make] Error 2 make: Target '_all' not remade because of errors.
### Build logs Build details: https://regressions.linaro.org/lkft/linux-stable-rc-linux-5.4.y/v5.4.301-185... Build log: https://storage.tuxsuite.com/public/linaro/lkft/builds/36Hn1iZBZCBAXg2OuUdfd... Build config: https://storage.tuxsuite.com/public/linaro/lkft/builds/36Hn1iZBZCBAXg2OuUdfd...
### Steps to reproduce - tuxmake --runtime podman --target-arch powerpc --toolchain gcc-12 --kconfig defconfig
-- Linaro LKFT https://lkft.linaro.org