[PATCH v4 5/9] crash_dump: Only use kexec_dprintk during the kexec_file_load syscall

From: Coiby Xu

Date: Fri Aug 28 2026 - 04:53:33 EST


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")
Reviewed-by: Sourabh Jain <sourabhjain@xxxxxxxxxxxxx>
Signed-off-by: Coiby Xu <coiby.xu@xxxxxxxxx>
---
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 91b7a5413b62..9ccc7b5320a3 100644
--- a/kernel/crash_dump_dm_crypt.c
+++ b/kernel/crash_dump_dm_crypt.c
@@ -76,10 +76,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\n", dm_key->key_desc);
} else {
r = PTR_ERR(key_ref);
- kexec_dprintk("Error when adding key");
+ pr_warn("Error when adding key, ret=%d\n", r);
}

return r;
@@ -129,19 +129,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);
@@ -155,7 +155,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);
}

@@ -315,8 +315,7 @@ static ssize_t config_keys_reuse_store(struct config_item *item,

r = -EINVAL;
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");
goto unlock;
}

--
2.55.0