[PATCH v5 0/3] kdump: Enable LUKS-encrypted dump target support in ARM64 and PowerPC

Coiby Xu
2026-02-25T06:04:08Z

CONFIG_CRASH_DM_CRYPT has been introduced to support LUKS-encrypted
device dump target by addressing two challenges [1],
- Kdump kernel may not be able to decrypt the LUKS partition. For some
machines, a system administrator may not have a chance to enter the
password to decrypt the device in kdump initramfs after the 1st kernel
crashes

- LUKS2 by default use the memory-hard Argon2 key derivation function
which is quite memory-consuming compared to the limited memory reserved
for kdump.

To also enable this feature for ARM64 and PowerPC, we need to add a
device tree property dmcryptkeys [2] as similar to elfcorehdr to pass
the memory address of the stored info of dm-crypt keys to the kdump
kernel.

[1] https://lore.kernel.org/all/20250502011246.99238-1-coxu@redhat.com/
[2] https://github.com/devicetree-org/dt-schema/pull/181

v5
- Improve commit msg [Christophe]
- Fix a compiling error found by kernel test robot

v4
- Make arch-specific code more succinct by printing more logs in
arch-independent code [Will Deacon]

- Also use device tree for PowerPC to pass memory address of dm-crypt
keys info
- powerpc v2 patch that passes the dmcryptkeys kernel cmdline
parameter:
https://lore.kernel.org/all/20260106074039.564707-1-coxu@redhat.com/

v3
- Delete the property after reading it [Rob Herring]

v2
- Krzysztof
- Use imperative mood for commit message
- Add dt-schema ABI Documentation
https://github.com/devicetree-org/dt-schema/pull/181
- Don't print dm-crypt keys address via pr_debug

Coiby Xu (3):
crash_dump/dm-crypt: Don't print in arch-specific code
crash: Align the declaration of crash_load_dm_crypt_keys with
CONFIG_CRASH_DM_CRYPT
arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel

arch/arm64/kernel/machine_kexec_file.c | 4 ++++
arch/powerpc/kexec/elf_64.c | 4 ++++
arch/x86/kernel/kexec-bzimage64.c | 6 +-----
drivers/of/fdt.c | 21 +++++++++++++++++++++
drivers/of/kexec.c | 19 +++++++++++++++++++
include/linux/crash_core.h | 14 +++++++-------
kernel/crash_dump_dm_crypt.c | 7 +++++--
7 files changed, 61 insertions(+), 14 deletions(-)

base-commit: 7dff99b354601dd01829e1511711846e04340a69
--
2.53.0