Re: [PATCH v6 3/7] crash_dump: store dm crypt keys in kdump reserved memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 29, 2024 at 10:41:50PM +0800, kernel test robot wrote:
Hi Coiby,

kernel test robot noticed the following build errors:

[auto build test ERROR on e42b1a9a2557aa94fee47f078633677198386a52]

url:    https://github.com/intel-lab-lkp/linux/commits/Coiby-Xu/kexec_file-allow-to-place-kexec_buf-randomly/20241029-135449
base:   e42b1a9a2557aa94fee47f078633677198386a52
patch link:    https://lore.kernel.org/r/20241029055223.210039-4-coxu%40redhat.com
patch subject: [PATCH v6 3/7] crash_dump: store dm crypt keys in kdump reserved memory
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20241029/202410292237.HA9vMqbC-lkp@xxxxxxxxx/config)
compiler: loongarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410292237.HA9vMqbC-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/202410292237.HA9vMqbC-lkp@xxxxxxxxx/

All error/warnings (new ones prefixed by >>):

  kernel/crash_dump_dm_crypt.c: In function 'crash_load_dm_crypt_keys':
kernel/crash_dump_dm_crypt.c:221:16: error: variable 'kbuf' has initializer but incomplete type
    221 |         struct kexec_buf kbuf = {
        |                ^~~~~~~~~
kernel/crash_dump_dm_crypt.c:222:18: error: 'struct kexec_buf' has no member named 'image'
    222 |                 .image = image,
        |                  ^~~~~
kernel/crash_dump_dm_crypt.c:222:26: warning: excess elements in struct initializer
    222 |                 .image = image,
        |                          ^~~~~
  kernel/crash_dump_dm_crypt.c:222:26: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:223:18: error: 'struct kexec_buf' has no member named 'buf_min'
    223 |                 .buf_min = 0,
        |                  ^~~~~~~
  kernel/crash_dump_dm_crypt.c:223:28: warning: excess elements in struct initializer
    223 |                 .buf_min = 0,
        |                            ^
  kernel/crash_dump_dm_crypt.c:223:28: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:224:18: error: 'struct kexec_buf' has no member named 'buf_max'
    224 |                 .buf_max = ULONG_MAX,
        |                  ^~~~~~~
  In file included from include/linux/limits.h:7,
                   from include/linux/thread_info.h:12,
                   from include/asm-generic/preempt.h:5,
                   from ./arch/loongarch/include/generated/asm/preempt.h:1,
                   from include/linux/preempt.h:79,
                   from include/linux/rcupdate.h:27,
                   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:224:28: note: in expansion of macro 'ULONG_MAX'
    224 |                 .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:224:28: note: in expansion of macro 'ULONG_MAX'
    224 |                 .buf_max = ULONG_MAX,
        |                            ^~~~~~~~~
kernel/crash_dump_dm_crypt.c:225:18: error: 'struct kexec_buf' has no member named 'top_down'
    225 |                 .top_down = false,
        |                  ^~~~~~~~
  kernel/crash_dump_dm_crypt.c:225:29: warning: excess elements in struct initializer
    225 |                 .top_down = false,
        |                             ^~~~~
  kernel/crash_dump_dm_crypt.c:225:29: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:226:18: error: 'struct kexec_buf' has no member named 'random'
    226 |                 .random = true,
        |                  ^~~~~~
  kernel/crash_dump_dm_crypt.c:226:27: warning: excess elements in struct initializer
    226 |                 .random = true,
        |                           ^~~~
  kernel/crash_dump_dm_crypt.c:226:27: note: (near initialization for 'kbuf')
kernel/crash_dump_dm_crypt.c:221:26: error: storage size of 'kbuf' isn't known
    221 |         struct kexec_buf kbuf = {
        |                          ^~~~
kernel/crash_dump_dm_crypt.c:246:20: error: 'KEXEC_BUF_MEM_UNKNOWN' undeclared (first use in this function)
    246 |         kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
        |                    ^~~~~~~~~~~~~~~~~~~~~
  kernel/crash_dump_dm_crypt.c:246:20: note: each undeclared identifier is reported only once for each function it appears in
kernel/crash_dump_dm_crypt.c:247:13: error: implicit declaration of function 'kexec_add_buffer' [-Wimplicit-function-declaration]
    247 |         r = kexec_add_buffer(&kbuf);
        |             ^~~~~~~~~~~~~~~~
kernel/crash_dump_dm_crypt.c:221:26: warning: unused variable 'kbuf' [-Wunused-variable]
    221 |         struct kexec_buf kbuf = {
        |                          ^~~~


vim +/kbuf +221 kernel/crash_dump_dm_crypt.c

  218	
  219	int crash_load_dm_crypt_keys(struct kimage *image)
  220	{
> 221		struct kexec_buf kbuf = {
> 222			.image = image,
> 223			.buf_min = 0,
> 224			.buf_max = ULONG_MAX,
> 225			.top_down = false,
> 226			.random = true,
  227		};
  228		int r;
  229	
  230	
  231		if (key_count <= 0) {
  232			kexec_dprintk("No dm-crypt keys\n");
  233			return -EINVAL;
  234		}
  235	
  236		image->dm_crypt_keys_addr = 0;
  237		r = build_keys_header();
  238		if (r)
  239			return r;
  240	
  241		kbuf.buffer = keys_header;
  242		kbuf.bufsz = get_keys_header_size(key_count);
  243	
  244		kbuf.memsz = kbuf.bufsz;
  245		kbuf.buf_align = ELF_CORE_HEADER_ALIGN;
> 246		kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
> 247		r = kexec_add_buffer(&kbuf);
  248		if (r) {
  249			kvfree((void *)kbuf.buffer);
  250			return r;
  251		}
  252		image->dm_crypt_keys_addr = kbuf.mem;
  253		image->dm_crypt_keys_sz = kbuf.bufsz;
  254		kexec_dprintk(
  255			"Loaded dm crypt keys to kexec_buffer bufsz=0x%lx memsz=0x%lx\n",
  256			kbuf.bufsz, kbuf.bufsz);
  257	
  258		return r;
  259	}
  260	

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

Thanks for reporting this issue. I'll make CRASH_DM_CRYPT depend on
KEXEC_FILE to fix it in new version of patch set!

_______________________________________________
kexec mailing list
kexec@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/kexec


--
Best regards,
Coiby


_______________________________________________
kexec mailing list
kexec@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/kexec



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux