* Re: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel
[not found] <20260211082401.2407853-3-coxu@redhat.com>
@ 2026-02-11 22:35 ` kernel test robot
2026-02-12 2:22 ` Coiby Xu
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2026-02-11 22:35 UTC (permalink / raw)
To: Coiby Xu, kexec, linux-arm-kernel, linuxppc-dev, devicetree
Cc: oe-kbuild-all, Arnaud Lefebvre, Baoquan he, Dave Young,
Kairui Song, Pingfan Liu, Andrew Morton,
Linux Memory Management List, Krzysztof Kozlowski, Rob Herring,
Thomas Staudt, Sourabh Jain, Will Deacon, Catalin Marinas,
Madhavan Srinivasan, Michael Ellerman, Nicholas Piggin,
Christophe Leroy (CS GROUP),
Saravana Kannan, linux-kernel
Hi Coiby,
kernel test robot noticed the following build errors:
[auto build test ERROR on 2619c62b7ef2f463bcbbb34af122689c09855c23]
url: https://github.com/intel-lab-lkp/linux/commits/Coiby-Xu/crash_dump-dm-crypt-Don-t-print-in-arch-specific-code/20260211-162729
base: 2619c62b7ef2f463bcbbb34af122689c09855c23
patch link: https://lore.kernel.org/r/20260211082401.2407853-3-coxu%40redhat.com
patch subject: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel
config: powerpc64-randconfig-r111-20260212 (https://download.01.org/0day-ci/archive/20260212/202602120648.RgQALnnI-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260212/202602120648.RgQALnnI-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602120648.RgQALnnI-lkp@intel.com/
All errors (new ones prefixed by >>):
arch/powerpc/kexec/elf_64.c: In function 'elf64_load':
>> arch/powerpc/kexec/elf_64.c:82:23: error: implicit declaration of function 'crash_load_dm_crypt_keys' [-Werror=implicit-function-declaration]
82 | ret = crash_load_dm_crypt_keys(image);
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/crash_load_dm_crypt_keys +82 arch/powerpc/kexec/elf_64.c
27
28 static void *elf64_load(struct kimage *image, char *kernel_buf,
29 unsigned long kernel_len, char *initrd,
30 unsigned long initrd_len, char *cmdline,
31 unsigned long cmdline_len)
32 {
33 int ret;
34 unsigned long kernel_load_addr;
35 unsigned long initrd_load_addr = 0, fdt_load_addr;
36 void *fdt;
37 const void *slave_code;
38 struct elfhdr ehdr;
39 char *modified_cmdline = NULL;
40 struct crash_mem *rmem = NULL;
41 struct kexec_elf_info elf_info;
42 struct kexec_buf kbuf = { .image = image, .buf_min = 0,
43 .buf_max = ppc64_rma_size };
44 struct kexec_buf pbuf = { .image = image, .buf_min = 0,
45 .buf_max = ppc64_rma_size, .top_down = true,
46 .mem = KEXEC_BUF_MEM_UNKNOWN };
47
48 ret = kexec_build_elf_info(kernel_buf, kernel_len, &ehdr, &elf_info);
49 if (ret)
50 return ERR_PTR(ret);
51
52 if (IS_ENABLED(CONFIG_CRASH_DUMP) && image->type == KEXEC_TYPE_CRASH) {
53 /* min & max buffer values for kdump case */
54 kbuf.buf_min = pbuf.buf_min = crashk_res.start;
55 kbuf.buf_max = pbuf.buf_max =
56 ((crashk_res.end < ppc64_rma_size) ?
57 crashk_res.end : (ppc64_rma_size - 1));
58 }
59
60 ret = kexec_elf_load(image, &ehdr, &elf_info, &kbuf, &kernel_load_addr);
61 if (ret)
62 goto out;
63
64 kexec_dprintk("Loaded the kernel at 0x%lx\n", kernel_load_addr);
65
66 ret = kexec_load_purgatory(image, &pbuf);
67 if (ret) {
68 pr_err("Loading purgatory failed.\n");
69 goto out;
70 }
71
72 kexec_dprintk("Loaded purgatory at 0x%lx\n", pbuf.mem);
73
74 /* Load additional segments needed for panic kernel */
75 if (IS_ENABLED(CONFIG_CRASH_DUMP) && image->type == KEXEC_TYPE_CRASH) {
76 ret = load_crashdump_segments_ppc64(image, &kbuf);
77 if (ret) {
78 pr_err("Failed to load kdump kernel segments\n");
79 goto out;
80 }
81
> 82 ret = crash_load_dm_crypt_keys(image);
83 if (ret)
84 goto out;
85
86 /* Setup cmdline for kdump kernel case */
87 modified_cmdline = setup_kdump_cmdline(image, cmdline,
88 cmdline_len);
89 if (!modified_cmdline) {
90 pr_err("Setting up cmdline for kdump kernel failed\n");
91 ret = -EINVAL;
92 goto out;
93 }
94 cmdline = modified_cmdline;
95 }
96
97 if (initrd != NULL) {
98 kbuf.buffer = initrd;
99 kbuf.bufsz = kbuf.memsz = initrd_len;
100 kbuf.buf_align = PAGE_SIZE;
101 kbuf.top_down = false;
102 kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
103 ret = kexec_add_buffer(&kbuf);
104 if (ret)
105 goto out;
106 initrd_load_addr = kbuf.mem;
107
108 kexec_dprintk("Loaded initrd at 0x%lx\n", initrd_load_addr);
109 }
110
111 ret = get_reserved_memory_ranges(&rmem);
112 if (ret)
113 goto out;
114
115 fdt = of_kexec_alloc_and_setup_fdt(image, initrd_load_addr,
116 initrd_len, cmdline,
117 kexec_extra_fdt_size_ppc64(image, rmem));
118 if (!fdt) {
119 pr_err("Error setting up the new device tree.\n");
120 ret = -EINVAL;
121 goto out;
122 }
123
124 ret = setup_new_fdt_ppc64(image, fdt, rmem);
125 if (ret)
126 goto out_free_fdt;
127
128 if (!IS_ENABLED(CONFIG_CRASH_HOTPLUG) || image->type != KEXEC_TYPE_CRASH)
129 fdt_pack(fdt);
130
131 kbuf.buffer = fdt;
132 kbuf.bufsz = kbuf.memsz = fdt_totalsize(fdt);
133 kbuf.buf_align = PAGE_SIZE;
134 kbuf.top_down = true;
135 kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
136 ret = kexec_add_buffer(&kbuf);
137 if (ret)
138 goto out_free_fdt;
139
140 /* FDT will be freed in arch_kimage_file_post_load_cleanup */
141 image->arch.fdt = fdt;
142
143 fdt_load_addr = kbuf.mem;
144
145 kexec_dprintk("Loaded device tree at 0x%lx\n", fdt_load_addr);
146
147 slave_code = elf_info.buffer + elf_info.proghdrs[0].p_offset;
148 ret = setup_purgatory_ppc64(image, slave_code, fdt, kernel_load_addr,
149 fdt_load_addr);
150 if (ret)
151 pr_err("Error setting up the purgatory.\n");
152
153 goto out;
154
155 out_free_fdt:
156 kvfree(fdt);
157 out:
158 kfree(rmem);
159 kfree(modified_cmdline);
160 kexec_free_elf_info(&elf_info);
161
162 return ret ? ERR_PTR(ret) : NULL;
163 }
164
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread