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

Baoquan He
2024-12-11T12:58:44Z

On 10/29/24 at 01:52pm, Coiby Xu wrote:
......
> +int crash_load_dm_crypt_keys(struct kimage *image)
> +{
> + struct kexec_buf kbuf = {
> + .image = image,
> + .buf_min = 0,
> + .buf_max = ULONG_MAX,
> + .top_down = false,
> + .random = true,
> + };
> + int r;
> +
> +
> + if (key_count <= 0) {
> + kexec_dprintk("No dm-crypt keys\n");
> + return -EINVAL;
> + }
> +
> + image->dm_crypt_keys_addr = 0;
> + r = build_keys_header();
> + if (r)
> + return r;
> +
> + kbuf.buffer = keys_header;
> + kbuf.bufsz = get_keys_header_size(key_count);
> +
> + kbuf.memsz = kbuf.bufsz;
> + kbuf.buf_align = ELF_CORE_HEADER_ALIGN;
> + kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
> + r = kexec_add_buffer(&kbuf);
> + if (r) {
> + kvfree((void *)kbuf.buffer);
> + return r;
> + }
> + image->dm_crypt_keys_addr = kbuf.mem;
> + image->dm_crypt_keys_sz = kbuf.bufsz;

Wondering why not assigning kbuf.memsz, but bufsz.

> + kexec_dprintk(
> + "Loaded dm crypt keys to kexec_buffer bufsz=0x%lx memsz=0x%lx\n",
> + kbuf.bufsz, kbuf.bufsz);
> +
> + return r;
> +}
> +
> +
> static int __init configfs_dmcrypt_keys_init(void)
> {
> int ret;
> --
> 2.47.0
>