linux-next: build failure after merge of the mm tree

From: Stephen Rothwell
Date: Wed Jan 24 2024 - 22:31:34 EST


Hi all,

After merging the mm tree, today's linux-next build (powerpc allnoconfig)
failed like this:

WARNING: unmet direct dependencies detected for CRASH_DUMP
Depends on [n]: ARCH_SUPPORTS_CRASH_DUMP [=y] && KEXEC_CORE [=n]
Selected by [y]:
- ARCH_SELECTS_KEXEC [=y]
arch/powerpc/kernel/crash_dump.c:101:6: error: redefinition of 'is_kdump_kernel'
101 | bool is_kdump_kernel(void)
| ^~~~~~~~~~~~~~~
In file included from arch/powerpc/kernel/crash_dump.c:12:
include/linux/crash_dump.h:64:20: note: previous definition of 'is_kdump_kernel' with type 'bool(void)' {aka '_Bool(void)'}
64 | static inline bool is_kdump_kernel(void)
| ^~~~~~~~~~~~~~~
kernel/crash_core.c: In function 'kimage_crash_copy_vmcoreinfo':
kernel/crash_core.c:43:18: error: invalid use of undefined type 'struct kimage'
43 | if (image->type != KEXEC_TYPE_CRASH)
| ^~
kernel/crash_core.c:43:28: error: 'KEXEC_TYPE_CRASH' undeclared (first use in this function); did you mean 'KEXEC_ON_CRASH'?
43 | if (image->type != KEXEC_TYPE_CRASH)
| ^~~~~~~~~~~~~~~~
| KEXEC_ON_CRASH
kernel/crash_core.c:43:28: note: each undeclared identifier is reported only once for each function it appears in
kernel/crash_core.c:55:27: error: implicit declaration of function 'kimage_alloc_control_pages' [-Werror=implicit-function-declaration]
55 | vmcoreinfo_page = kimage_alloc_control_pages(image, 0);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/crash_core.c:55:25: warning: assignment to 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
55 | vmcoreinfo_page = kimage_alloc_control_pages(image, 0);
| ^
kernel/crash_core.c:66:14: error: invalid use of undefined type 'struct kimage'
66 | image->vmcoreinfo_data_copy = safecopy;
| ^~
kernel/crash_core.c: At top level:
kernel/crash_core.c:74:5: error: redefinition of 'kexec_should_crash'
74 | int kexec_should_crash(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~
In file included from kernel/crash_core.c:12:
include/linux/kexec.h:474:19: note: previous definition of 'kexec_should_crash' with type 'int(struct task_struct *)'
474 | static inline int kexec_should_crash(struct task_struct *p) { return 0; }
| ^~~~~~~~~~~~~~~~~~
kernel/crash_core.c:92:5: error: redefinition of 'kexec_crash_loaded'
92 | int kexec_crash_loaded(void)
| ^~~~~~~~~~~~~~~~~~
include/linux/kexec.h:475:19: note: previous definition of 'kexec_crash_loaded' with type 'int(void)'
475 | static inline int kexec_crash_loaded(void) { return 0; }
| ^~~~~~~~~~~~~~~~~~
kernel/crash_core.c: In function 'kexec_crash_loaded':
kernel/crash_core.c:94:18: error: 'kexec_crash_image' undeclared (first use in this function); did you mean 'kexec_crash_loaded'?
94 | return !!kexec_crash_image;
| ^~~~~~~~~~~~~~~~~
| kexec_crash_loaded
kernel/crash_core.c: At top level:
kernel/crash_core.c:103:16: error: redefinition of '__crash_kexec'
103 | void __noclone __crash_kexec(struct pt_regs *regs)
| ^~~~~~~~~~~~~
include/linux/kexec.h:472:20: note: previous definition of '__crash_kexec' with type 'void(struct pt_regs *)'
472 | static inline void __crash_kexec(struct pt_regs *regs) { }
| ^~~~~~~~~~~~~
kernel/crash_core.c: In function '__crash_kexec':
kernel/crash_core.c:114:21: error: 'kexec_crash_image' undeclared (first use in this function); did you mean 'kexec_crash_loaded'?
114 | if (kexec_crash_image) {
| ^~~~~~~~~~~~~~~~~
| kexec_crash_loaded
kernel/crash_core.c:117:25: error: implicit declaration of function 'crash_setup_regs' [-Werror=implicit-function-declaration]
117 | crash_setup_regs(&fixed_regs, regs);
| ^~~~~~~~~~~~~~~~
kernel/crash_core.c:120:25: error: implicit declaration of function 'machine_kexec' [-Werror=implicit-function-declaration]
120 | machine_kexec(kexec_crash_image);
| ^~~~~~~~~~~~~
kernel/crash_core.c: At top level:
kernel/crash_core.c:128:1: warning: ignoring attribute 'noinline' because it conflicts with attribute 'gnu_inline' [-Wattributes]
128 | {
| ^
include/linux/kexec.h:473:20: note: previous declaration here
473 | static inline void crash_kexec(struct pt_regs *regs) { }
| ^~~~~~~~~~~
kernel/crash_core.c:127:18: error: redefinition of 'crash_kexec'
127 | __bpf_kfunc void crash_kexec(struct pt_regs *regs)
| ^~~~~~~~~~~
include/linux/kexec.h:473:20: note: previous definition of 'crash_kexec' with type 'void(struct pt_regs *)'
473 | static inline void crash_kexec(struct pt_regs *regs) { }
| ^~~~~~~~~~~
kernel/crash_core.c: In function '__crash_shrink_memory':
kernel/crash_core.c:356:9: error: implicit declaration of function 'crash_free_reserved_phys_range' [-Werror=implicit-function-declaration]
356 | crash_free_reserved_phys_range(ram_res->start, ram_res->end);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/crash_core.c: In function 'crash_shrink_memory':
kernel/crash_core.c:370:13: error: 'kexec_crash_image' undeclared (first use in this function); did you mean 'kexec_crash_loaded'?
370 | if (kexec_crash_image) {
| ^~~~~~~~~~~~~~~~~
| kexec_crash_loaded
In file included from include/linux/kernel.h:27,
from arch/powerpc/include/asm/page.h:11,
from arch/powerpc/include/asm/thread_info.h:13,
from include/linux/thread_info.h:60,
from arch/powerpc/include/asm/processor.h:41,
from include/linux/sched.h:13,
from include/linux/utsname.h:6,
from kernel/crash_core.c:9:
kernel/crash_core.c:377:38: error: 'KEXEC_CRASH_MEM_ALIGN' undeclared (first use in this function)
377 | new_size = roundup(new_size, KEXEC_CRASH_MEM_ALIGN);
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/math.h:61:16: note: in definition of macro 'roundup'
61 | typeof(y) __y = y; \
| ^
kernel/crash_core.c: In function 'crash_save_cpu':
kernel/crash_core.c:437:36: error: 'KEXEC_CORE_NOTE_NAME' undeclared (first use in this function); did you mean 'CRASH_CORE_NOTE_NAME'?
437 | buf = append_elf_note(buf, KEXEC_CORE_NOTE_NAME, NT_PRSTATUS,
| ^~~~~~~~~~~~~~~~~~~~
| CRASH_CORE_NOTE_NAME
kernel/crash_core.c: In function 'kexec_crash_loaded':
kernel/crash_core.c:95:1: error: control reaches end of non-void function [-Werror=return-type]
95 | }
| ^
cc1: some warnings being treated as errors

Caused by commit

9dc830523e4e ("ppc, crash: enforce KEXEC and KEXEC_FILE to select CRASH_DUMP")

I have applied the following patch:

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Thu, 25 Jan 2024 14:20:51 +1100
Subject: [PATCH] fix up for "ppc, crash: enforce KEXEC and KEXEC_FILE to
select CRASH_DUMP"

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
arch/powerpc/Kconfig | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 31f013e636e3..e7707bebc061 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -610,6 +610,8 @@ config ARCH_SUPPORTS_KEXEC

config ARCH_SELECTS_KEXEC
def_bool y
+ depends on ARCH_SUPPORTS_CRASH_DUMP
+ depends on KEXEC_CORE
select CRASH_DUMP

config ARCH_SUPPORTS_KEXEC_FILE
--
2.43.0

--
Cheers,
Stephen Rothwell

Attachment: pgppKzJMqPWCE.pgp
Description: OpenPGP digital signature