[PATCH v3 06/10] crash_dump: Only use kexec_dprintk during the kexec_file_load syscall

Sourabh Jain sourabhjain at linux.ibm.com
Wed Aug 5 04:36:39 PDT 2026



On 29/07/26 09:06, Coiby Xu wrote:
> kexec_dprintk will only be activated by "kexec -d" during
> kexec_file_load syscall. So use pr_* outside of this syscall.
>
> Fixes: 9ebfa8dcaea7 ("crash_dump: reuse saved dm crypt keys for CPU/memory hot-plugging")
> Fixes: 62f17d9df692 ("crash_dump: retrieve dm crypt keys in kdump kernel")
> Signed-off-by: Coiby Xu <coiby.xu at gmail.com>
> ---
>   kernel/crash_dump_dm_crypt.c | 15 +++++++--------
>   1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/kernel/crash_dump_dm_crypt.c b/kernel/crash_dump_dm_crypt.c
> index 9a64e2d6841b..3ee01996778f 100644
> --- a/kernel/crash_dump_dm_crypt.c
> +++ b/kernel/crash_dump_dm_crypt.c
> @@ -75,10 +75,10 @@ static int add_key_to_keyring(struct dm_crypt_key *dm_key,
>   	if (!IS_ERR(key_ref)) {
>   		r = key_ref_to_ptr(key_ref)->serial;
>   		key_ref_put(key_ref);
> -		kexec_dprintk("Success adding key %s", dm_key->key_desc);
> +		pr_debug("Success adding key %s", dm_key->key_desc);

Missing a newline in the above debug message.

>   	} else {
>   		r = PTR_ERR(key_ref);
> -		kexec_dprintk("Error when adding key");
> +		pr_warn("Error when adding key");
>   	}

Missing a newline. Also, I think printing the error code (r) would be 
helpful.

Apart from these two minor nits, the changes look good to me.

Reviewed-by: Sourabh Jain <sourabhjain at linux.ibm.com>

>   
>   	return r;
> @@ -128,19 +128,19 @@ static int restore_dm_crypt_keys_to_thread_keyring(void)
>   	keyring_ref =
>   		lookup_user_key(KEY_SPEC_USER_KEYRING, 0x01, KEY_NEED_WRITE);
>   	if (IS_ERR(keyring_ref)) {
> -		kexec_dprintk("Failed to get the user keyring\n");
> +		pr_warn("Failed to get the user keyring\n");
>   		return PTR_ERR(keyring_ref);
>   	}
>   
>   	addr = dm_crypt_keys_addr;
>   	dm_crypt_keys_read((char *)&key_count, sizeof(key_count), &addr);
>   	if (key_count > KEY_NUM_MAX) {
> -		kexec_dprintk("Failed to read the number of dm-crypt keys\n");
> +		pr_warn("Failed to read the number of dm-crypt keys\n");
>   		ret = -1;
>   		goto out;
>   	}
>   
> -	kexec_dprintk("There are %u keys\n", key_count);
> +	pr_debug("There are %u keys\n", key_count);
>   	addr = dm_crypt_keys_addr;
>   
>   	keys_header_size = get_keys_header_size(key_count);
> @@ -154,7 +154,7 @@ static int restore_dm_crypt_keys_to_thread_keyring(void)
>   
>   	for (int i = 0; i < keys_header->total_keys; i++) {
>   		key = &keys_header->keys[i];
> -		kexec_dprintk("Get key (size=%u)\n", key->key_size);
> +		pr_debug("Get key (size=%u)\n", key->key_size);
>   		add_key_to_keyring(key, keyring_ref);
>   	}
>   
> @@ -309,8 +309,7 @@ static ssize_t config_keys_reuse_store(struct config_item *item,
>   	int r;
>   
>   	if (!kexec_crash_image || !kexec_crash_image->dm_crypt_keys_addr) {
> -		kexec_dprintk(
> -			"dm-crypt keys haven't be saved to crash-reserved memory\n");
> +		pr_debug("dm-crypt keys haven't be saved to crash-reserved memory\n");
>   		return -EINVAL;
>   	}
>   




More information about the kexec mailing list