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
> 


Reply via email to