Re: [PATCH v2 3/5] crash_dump: retrieve dm crypt key in kdump kernel

From: kernel test robot
Date: Sat Jan 13 2024 - 13:45:30 EST


Hi Coiby,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/x86/core]
[also build test WARNING on v6.7]
[cannot apply to linus/master next-20240112]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Coiby-Xu/kexec_file-allow-to-place-kexec_buf-randomly/20240110-151859
base: tip/x86/core
patch link: https://lore.kernel.org/r/20240110071522.1308935-4-coxu%40redhat.com
patch subject: [PATCH v2 3/5] crash_dump: retrieve dm crypt key in kdump kernel
config: i386-buildonly-randconfig-003-20240113 (https://download.01.org/0day-ci/archive/20240114/202401140240.upb0a18s-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240114/202401140240.upb0a18s-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401140240.upb0a18s-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> kernel/crash_dump_dm_crypt.c:29:16: warning: no previous prototype for 'dm_crypt_key_read' [-Wmissing-prototypes]
29 | ssize_t __weak dm_crypt_key_read(char *buf, size_t count, u64 *ppos)
| ^~~~~~~~~~~~~~~~~
kernel/crash_dump_dm_crypt.c:83:6: warning: no previous prototype for 'wipe_dm_crypt_key' [-Wmissing-prototypes]
83 | void wipe_dm_crypt_key(void)
| ^~~~~~~~~~~~~~~~~
kernel/crash_dump_dm_crypt.c: In function 'crash_load_dm_crypt_key':
kernel/crash_dump_dm_crypt.c:207:16: error: variable 'kbuf' has initializer but incomplete type
207 | struct kexec_buf kbuf = {
| ^~~~~~~~~
kernel/crash_dump_dm_crypt.c:208:18: error: 'struct kexec_buf' has no member named 'image'
208 | .image = image,
| ^~~~~
kernel/crash_dump_dm_crypt.c:208:26: warning: excess elements in struct initializer
208 | .image = image,
| ^~~~~
kernel/crash_dump_dm_crypt.c:208:26: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:209:18: error: 'struct kexec_buf' has no member named 'buf_min'
209 | .buf_min = 0,
| ^~~~~~~
kernel/crash_dump_dm_crypt.c:209:28: warning: excess elements in struct initializer
209 | .buf_min = 0,
| ^
kernel/crash_dump_dm_crypt.c:209:28: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:210:18: error: 'struct kexec_buf' has no member named 'buf_max'
210 | .buf_max = ULONG_MAX,
| ^~~~~~~
In file included from include/linux/limits.h:7,
from include/linux/kernel.h:17,
from arch/x86/include/asm/percpu.h:27,
from arch/x86/include/asm/nospec-branch.h:14,
from arch/x86/include/asm/irqflags.h:9,
from include/linux/irqflags.h:17,
from include/linux/rcupdate.h:26,
from include/linux/rbtree.h:24,
from include/linux/key.h:15,
from kernel/crash_dump_dm_crypt.c:2:
include/vdso/limits.h:13:25: warning: excess elements in struct initializer
13 | #define ULONG_MAX (~0UL)
| ^
kernel/crash_dump_dm_crypt.c:210:28: note: in expansion of macro 'ULONG_MAX'
210 | .buf_max = ULONG_MAX,
| ^~~~~~~~~
include/vdso/limits.h:13:25: note: (near initialization for 'kbuf')
13 | #define ULONG_MAX (~0UL)
| ^
kernel/crash_dump_dm_crypt.c:210:28: note: in expansion of macro 'ULONG_MAX'
210 | .buf_max = ULONG_MAX,
| ^~~~~~~~~
kernel/crash_dump_dm_crypt.c:211:18: error: 'struct kexec_buf' has no member named 'top_down'
211 | .top_down = false,
| ^~~~~~~~
kernel/crash_dump_dm_crypt.c:211:29: warning: excess elements in struct initializer
211 | .top_down = false,
| ^~~~~
kernel/crash_dump_dm_crypt.c:211:29: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:212:18: error: 'struct kexec_buf' has no member named 'random'
212 | .random = true,
| ^~~~~~
kernel/crash_dump_dm_crypt.c:212:27: warning: excess elements in struct initializer
212 | .random = true,
| ^~~~
kernel/crash_dump_dm_crypt.c:212:27: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:207:26: error: storage size of 'kbuf' isn't known
207 | struct kexec_buf kbuf = {
| ^~~~
kernel/crash_dump_dm_crypt.c:222:20: error: 'KEXEC_BUF_MEM_UNKNOWN' undeclared (first use in this function)
222 | kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
| ^~~~~~~~~~~~~~~~~~~~~
kernel/crash_dump_dm_crypt.c:222:20: note: each undeclared identifier is reported only once for each function it appears in
kernel/crash_dump_dm_crypt.c:223:15: error: implicit declaration of function 'kexec_add_buffer' [-Werror=implicit-function-declaration]
223 | ret = kexec_add_buffer(&kbuf);
| ^~~~~~~~~~~~~~~~
kernel/crash_dump_dm_crypt.c:207:26: warning: unused variable 'kbuf' [-Wunused-variable]
207 | struct kexec_buf kbuf = {
| ^~~~
cc1: some warnings being treated as errors


vim +/dm_crypt_key_read +29 kernel/crash_dump_dm_crypt.c

25
26 /*
27 * Architectures may override this function to read dm crypt key
28 */
> 29 ssize_t __weak dm_crypt_key_read(char *buf, size_t count, u64 *ppos)
30 {
31 struct kvec kvec = { .iov_base = buf, .iov_len = count };
32 struct iov_iter iter;
33
34 iov_iter_kvec(&iter, READ, &kvec, 1, count);
35 return read_from_oldmem(&iter, count, ppos, false);
36 }
37

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki