* [PATCH v4 1/2] crash_dump/dm-crypt: Don't print in arch-specific code [not found] <20260211082401.2407853-1-coxu@redhat.com> @ 2026-02-11 8:23 ` Coiby Xu 2026-02-11 8:24 ` [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel Coiby Xu 1 sibling, 0 replies; 6+ messages in thread From: Coiby Xu @ 2026-02-11 8:23 UTC (permalink / raw) To: kexec, linux-arm-kernel, linuxppc-dev, devicetree Cc: Will Deacon, Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT), H. Peter Anvin, Andrew Morton, Baoquan He, Vivek Goyal, Dave Young, open list:X86 ARCHITECTURE (32-BIT AND 64-BIT) When the vmcore dumping target is not a LUKS-encrypted target, it's expected that there is no dm-crypt key thus no need to return -ENOENT. Also print more logs in crash_load_dm_crypt_keys. The benefit is arch-specific code can be more succinct. Suggested-by: Will Deacon <will@kernel.org> Signed-off-by: Coiby Xu <coxu@redhat.com> --- arch/x86/kernel/kexec-bzimage64.c | 6 +----- kernel/crash_dump_dm_crypt.c | 7 +++++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c index 7508d0ccc740..d20cf976d01a 100644 --- a/arch/x86/kernel/kexec-bzimage64.c +++ b/arch/x86/kernel/kexec-bzimage64.c @@ -518,12 +518,8 @@ static void *bzImage64_load(struct kimage *image, char *kernel, if (ret) return ERR_PTR(ret); ret = crash_load_dm_crypt_keys(image); - if (ret == -ENOENT) { - kexec_dprintk("No dm crypt key to load\n"); - } else if (ret) { - pr_err("Failed to load dm crypt keys\n"); + if (ret) return ERR_PTR(ret); - } if (image->dm_crypt_keys_addr && cmdline_len + MAX_ELFCOREHDR_STR_LEN + MAX_DMCRYPTKEYS_STR_LEN > header->cmdline_size) { diff --git a/kernel/crash_dump_dm_crypt.c b/kernel/crash_dump_dm_crypt.c index 401423ba477d..478dacb0625c 100644 --- a/kernel/crash_dump_dm_crypt.c +++ b/kernel/crash_dump_dm_crypt.c @@ -405,14 +405,16 @@ int crash_load_dm_crypt_keys(struct kimage *image) if (key_count <= 0) { kexec_dprintk("No dm-crypt keys\n"); - return -ENOENT; + return 0; } if (!is_dm_key_reused) { image->dm_crypt_keys_addr = 0; r = build_keys_header(); - if (r) + if (r) { + pr_err("Failed to build dm-crypt keys header, ret=%d\n", r); return r; + } } kbuf.buffer = keys_header; @@ -423,6 +425,7 @@ int crash_load_dm_crypt_keys(struct kimage *image) kbuf.mem = KEXEC_BUF_MEM_UNKNOWN; r = kexec_add_buffer(&kbuf); if (r) { + pr_err("Failed to call kexec_add_buffer, ret=%d\n", r); kvfree((void *)kbuf.buffer); return r; } -- 2.53.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel [not found] <20260211082401.2407853-1-coxu@redhat.com> 2026-02-11 8:23 ` [PATCH v4 1/2] crash_dump/dm-crypt: Don't print in arch-specific code Coiby Xu @ 2026-02-11 8:24 ` Coiby Xu 2026-02-11 9:55 ` Christophe Leroy (CS GROUP) 2026-02-11 22:35 ` kernel test robot 1 sibling, 2 replies; 6+ messages in thread From: Coiby Xu @ 2026-02-11 8:24 UTC (permalink / raw) To: kexec, linux-arm-kernel, linuxppc-dev, devicetree Cc: Arnaud Lefebvre, Baoquan he, Dave Young, Kairui Song, Pingfan Liu, Andrew Morton, Krzysztof Kozlowski, Rob Herring, Thomas Staudt, Sourabh Jain, Will Deacon, Catalin Marinas, Madhavan Srinivasan, Michael Ellerman, Nicholas Piggin, Christophe Leroy (CS GROUP), Saravana Kannan, open list 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 only 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. Since this property is only needed by the kdump kernel, it won't be exposed to user space. [1] https://lore.kernel.org/all/20250502011246.99238-1-coxu@redhat.com/ [2] https://github.com/devicetree-org/dt-schema/pull/181 Cc: Arnaud Lefebvre <arnaud.lefebvre@clever-cloud.com> Cc: Baoquan he <bhe@redhat.com> Cc: Dave Young <dyoung@redhat.com> Cc: Kairui Song <ryncsn@gmail.com> Cc: Pingfan Liu <kernelfans@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Krzysztof Kozlowski <krzk@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: Thomas Staudt <tstaudt@de.ibm.com> Cc: Sourabh Jain <sourabhjain@linux.ibm.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Coiby Xu <coxu@redhat.com> --- arch/arm64/kernel/machine_kexec_file.c | 4 ++++ arch/powerpc/kexec/elf_64.c | 4 ++++ drivers/of/fdt.c | 21 +++++++++++++++++++++ drivers/of/kexec.c | 19 +++++++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/arch/arm64/kernel/machine_kexec_file.c b/arch/arm64/kernel/machine_kexec_file.c index 410060ebd86d..b6798bb2bb82 100644 --- a/arch/arm64/kernel/machine_kexec_file.c +++ b/arch/arm64/kernel/machine_kexec_file.c @@ -134,6 +134,10 @@ int load_other_segments(struct kimage *image, kexec_dprintk("Loaded elf core header at 0x%lx bufsz=0x%lx memsz=0x%lx\n", image->elf_load_addr, kbuf.bufsz, kbuf.memsz); + + ret = crash_load_dm_crypt_keys(image); + if (ret) + goto out_err; } #endif diff --git a/arch/powerpc/kexec/elf_64.c b/arch/powerpc/kexec/elf_64.c index 5d6d616404cf..ea50a072debf 100644 --- a/arch/powerpc/kexec/elf_64.c +++ b/arch/powerpc/kexec/elf_64.c @@ -79,6 +79,10 @@ static void *elf64_load(struct kimage *image, char *kernel_buf, goto out; } + ret = crash_load_dm_crypt_keys(image); + if (ret) + goto out; + /* Setup cmdline for kdump kernel case */ modified_cmdline = setup_kdump_cmdline(image, cmdline, cmdline_len); diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 331646d667b9..2967e4aff807 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -866,6 +866,26 @@ static void __init early_init_dt_check_for_elfcorehdr(unsigned long node) elfcorehdr_addr, elfcorehdr_size); } +static void __init early_init_dt_check_for_dmcryptkeys(unsigned long node) +{ + const char *prop_name = "linux,dmcryptkeys"; + const __be32 *prop; + + if (!IS_ENABLED(CONFIG_CRASH_DM_CRYPT)) + return; + + pr_debug("Looking for dmcryptkeys property... "); + + prop = of_get_flat_dt_prop(node, prop_name, NULL); + if (!prop) + return; + + dm_crypt_keys_addr = dt_mem_next_cell(dt_root_addr_cells, &prop); + + /* Property only accessible to crash dump kernel */ + fdt_delprop(initial_boot_params, node, prop_name); +} + static unsigned long chosen_node_offset = -FDT_ERR_NOTFOUND; /* @@ -1097,6 +1117,7 @@ int __init early_init_dt_scan_chosen(char *cmdline) early_init_dt_check_for_initrd(node); early_init_dt_check_for_elfcorehdr(node); + early_init_dt_check_for_dmcryptkeys(node); rng_seed = of_get_flat_dt_prop(node, "rng-seed", &l); if (rng_seed && l > 0) { diff --git a/drivers/of/kexec.c b/drivers/of/kexec.c index 1ee2d31816ae..4bfb1ea5744e 100644 --- a/drivers/of/kexec.c +++ b/drivers/of/kexec.c @@ -432,6 +432,25 @@ void *of_kexec_alloc_and_setup_fdt(const struct kimage *image, if (ret) goto out; + if (image->dm_crypt_keys_addr != 0) { + ret = fdt_appendprop_addrrange(fdt, 0, chosen_node, + "linux,dmcryptkeys", + image->dm_crypt_keys_addr, + image->dm_crypt_keys_sz); + + if (ret) + goto out; + + /* + * Avoid dmcryptkeys from being stomped on in kdump kernel by + * setting up memory reserve map. + */ + ret = fdt_add_mem_rsv(fdt, image->dm_crypt_keys_addr, + image->dm_crypt_keys_sz); + if (ret) + goto out; + } + #ifdef CONFIG_CRASH_DUMP /* add linux,usable-memory-range */ ret = fdt_appendprop_addrrange(fdt, 0, chosen_node, -- 2.53.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel 2026-02-11 8:24 ` [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel Coiby Xu @ 2026-02-11 9:55 ` Christophe Leroy (CS GROUP) 2026-02-12 2:01 ` Coiby Xu 2026-02-11 22:35 ` kernel test robot 1 sibling, 1 reply; 6+ messages in thread From: Christophe Leroy (CS GROUP) @ 2026-02-11 9:55 UTC (permalink / raw) To: Coiby Xu, kexec, linux-arm-kernel, linuxppc-dev, devicetree Cc: Arnaud Lefebvre, Baoquan he, Dave Young, Kairui Song, Pingfan Liu, Andrew Morton, Krzysztof Kozlowski, Rob Herring, Thomas Staudt, Sourabh Jain, Will Deacon, Catalin Marinas, Madhavan Srinivasan, Michael Ellerman, Nicholas Piggin, Saravana Kannan, open list Le 11/02/2026 à 09:24, Coiby Xu a écrit : > 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 only need to add What do you want to say exactly with 'only' ? > 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. Since this property is only needed by the kdump kernel, it won't > be exposed to user space. > > [1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fall%2F20250502011246.99238-1-coxu%40redhat.com%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C0aa5f3b34d694b23b0cc08de6946f66c%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639063950684962054%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=8uCc%2Bg6YNojymf8UpZhmJY19vpWXJCC9KIf3qMyQ3dI%3D&reserved=0 > [2] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdevicetree-org%2Fdt-schema%2Fpull%2F181&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C0aa5f3b34d694b23b0cc08de6946f66c%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639063950684987003%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=1s5NPHgF1LsXdrDXBhawduFXOqnHPlkbohQHHvolLw4%3D&reserved=0 > > Cc: Arnaud Lefebvre <arnaud.lefebvre@clever-cloud.com> > Cc: Baoquan he <bhe@redhat.com> > Cc: Dave Young <dyoung@redhat.com> > Cc: Kairui Song <ryncsn@gmail.com> > Cc: Pingfan Liu <kernelfans@gmail.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Krzysztof Kozlowski <krzk@kernel.org> > Cc: Rob Herring <robh@kernel.org> > Cc: Thomas Staudt <tstaudt@de.ibm.com> > Cc: Sourabh Jain <sourabhjain@linux.ibm.com> > Cc: Will Deacon <will@kernel.org> > Signed-off-by: Coiby Xu <coxu@redhat.com> > --- > arch/arm64/kernel/machine_kexec_file.c | 4 ++++ > arch/powerpc/kexec/elf_64.c | 4 ++++ > drivers/of/fdt.c | 21 +++++++++++++++++++++ > drivers/of/kexec.c | 19 +++++++++++++++++++ > 4 files changed, 48 insertions(+) > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index 331646d667b9..2967e4aff807 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -866,6 +866,26 @@ static void __init early_init_dt_check_for_elfcorehdr(unsigned long node) > elfcorehdr_addr, elfcorehdr_size); > } > > +static void __init early_init_dt_check_for_dmcryptkeys(unsigned long node) > +{ > + const char *prop_name = "linux,dmcryptkeys"; > + const __be32 *prop; > + > + if (!IS_ENABLED(CONFIG_CRASH_DM_CRYPT)) > + return; > + > + pr_debug("Looking for dmcryptkeys property... "); > + > + prop = of_get_flat_dt_prop(node, prop_name, NULL); > + if (!prop) > + return; > + > + dm_crypt_keys_addr = dt_mem_next_cell(dt_root_addr_cells, &prop); > + > + /* Property only accessible to crash dump kernel */ > + fdt_delprop(initial_boot_params, node, prop_name); Shouldn't this property be deleted regardless of whether kernel is built with CONFIG_CRASH_DM_CRYPT or without ? > +} > + > static unsigned long chosen_node_offset = -FDT_ERR_NOTFOUND; > > /* > @@ -1097,6 +1117,7 @@ int __init early_init_dt_scan_chosen(char *cmdline) > > early_init_dt_check_for_initrd(node); > early_init_dt_check_for_elfcorehdr(node); > + early_init_dt_check_for_dmcryptkeys(node); > > rng_seed = of_get_flat_dt_prop(node, "rng-seed", &l); > if (rng_seed && l > 0) { ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel 2026-02-11 9:55 ` Christophe Leroy (CS GROUP) @ 2026-02-12 2:01 ` Coiby Xu 0 siblings, 0 replies; 6+ messages in thread From: Coiby Xu @ 2026-02-12 2:01 UTC (permalink / raw) To: Christophe Leroy (CS GROUP) Cc: kexec, linux-arm-kernel, linuxppc-dev, devicetree, Arnaud Lefebvre, Baoquan he, Dave Young, Kairui Song, Pingfan Liu, Andrew Morton, Krzysztof Kozlowski, Rob Herring, Thomas Staudt, Sourabh Jain, Will Deacon, Catalin Marinas, Madhavan Srinivasan, Michael Ellerman, Nicholas Piggin, Saravana Kannan, open list On Wed, Feb 11, 2026 at 10:55:17AM +0100, Christophe Leroy (CS GROUP) wrote: > > >Le 11/02/2026 à 09:24, Coiby Xu a écrit : >>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 only need to add > >What do you want to say exactly with 'only' ? Hi Christophe, Thanks for raising the question! To clarify, CONFIG_CRASH_DM_CRYPT provides the framework to address these challenges for LUKS-encrypted dump target. Since the heavy lifting is handled in the arch-independent code, we only need to... If it looks good to you, I'll rephrase it as "To also enable this feature for ARM64 and PowerPC, the missing piece is to let the kdump kernel know where to find the dm-crypt keys which are randomly stored in memory reserved for kdump. I'll introduce a new device tree property dmcryptkeys ...". > >>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. Since this property is only needed by the kdump kernel, it won't >>be exposed to user space. >> >>[1] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fall%2F20250502011246.99238-1-coxu%40redhat.com%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C0aa5f3b34d694b23b0cc08de6946f66c%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639063950684962054%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=8uCc%2Bg6YNojymf8UpZhmJY19vpWXJCC9KIf3qMyQ3dI%3D&reserved=0 >>[2] https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdevicetree-org%2Fdt-schema%2Fpull%2F181&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C0aa5f3b34d694b23b0cc08de6946f66c%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639063950684987003%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=1s5NPHgF1LsXdrDXBhawduFXOqnHPlkbohQHHvolLw4%3D&reserved=0 >> >>Cc: Arnaud Lefebvre <arnaud.lefebvre@clever-cloud.com> >>Cc: Baoquan he <bhe@redhat.com> >>Cc: Dave Young <dyoung@redhat.com> >>Cc: Kairui Song <ryncsn@gmail.com> >>Cc: Pingfan Liu <kernelfans@gmail.com> >>Cc: Andrew Morton <akpm@linux-foundation.org> >>Cc: Krzysztof Kozlowski <krzk@kernel.org> >>Cc: Rob Herring <robh@kernel.org> >>Cc: Thomas Staudt <tstaudt@de.ibm.com> >>Cc: Sourabh Jain <sourabhjain@linux.ibm.com> >>Cc: Will Deacon <will@kernel.org> >>Signed-off-by: Coiby Xu <coxu@redhat.com> >>--- >> arch/arm64/kernel/machine_kexec_file.c | 4 ++++ >> arch/powerpc/kexec/elf_64.c | 4 ++++ >> drivers/of/fdt.c | 21 +++++++++++++++++++++ >> drivers/of/kexec.c | 19 +++++++++++++++++++ >> 4 files changed, 48 insertions(+) >> >>diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c >>index 331646d667b9..2967e4aff807 100644 >>--- a/drivers/of/fdt.c >>+++ b/drivers/of/fdt.c >>@@ -866,6 +866,26 @@ static void __init early_init_dt_check_for_elfcorehdr(unsigned long node) >> elfcorehdr_addr, elfcorehdr_size); >> } >>+static void __init early_init_dt_check_for_dmcryptkeys(unsigned long node) >>+{ >>+ const char *prop_name = "linux,dmcryptkeys"; >>+ const __be32 *prop; >>+ >>+ if (!IS_ENABLED(CONFIG_CRASH_DM_CRYPT)) >>+ return; >>+ >>+ pr_debug("Looking for dmcryptkeys property... "); >>+ >>+ prop = of_get_flat_dt_prop(node, prop_name, NULL); >>+ if (!prop) >>+ return; >>+ >>+ dm_crypt_keys_addr = dt_mem_next_cell(dt_root_addr_cells, &prop); >>+ >>+ /* Property only accessible to crash dump kernel */ >>+ fdt_delprop(initial_boot_params, node, prop_name); > >Shouldn't this property be deleted regardless of whether kernel is >built with CONFIG_CRASH_DM_CRYPT or without ? This property will be created only if 1) CONFIG_CRASH_DM_CRYPT is enabled and 2) the dump target is LUKS-encrypted. So there is no need to delete it if it doesn't exist at all. > >>+} >>+ >> static unsigned long chosen_node_offset = -FDT_ERR_NOTFOUND; >> /* >>@@ -1097,6 +1117,7 @@ int __init early_init_dt_scan_chosen(char *cmdline) >> early_init_dt_check_for_initrd(node); >> early_init_dt_check_for_elfcorehdr(node); >>+ early_init_dt_check_for_dmcryptkeys(node); >> rng_seed = of_get_flat_dt_prop(node, "rng-seed", &l); >> if (rng_seed && l > 0) { > -- Best regards, Coiby ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel 2026-02-11 8:24 ` [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel Coiby Xu 2026-02-11 9:55 ` Christophe Leroy (CS GROUP) @ 2026-02-11 22:35 ` kernel test robot 2026-02-12 2:22 ` Coiby Xu 1 sibling, 1 reply; 6+ messages in thread From: kernel test robot @ 2026-02-11 22:35 UTC (permalink / raw) To: Coiby Xu, kexec, linux-arm-kernel, linuxppc-dev, devicetree Cc: oe-kbuild-all, Arnaud Lefebvre, Baoquan he, Dave Young, Kairui Song, Pingfan Liu, Andrew Morton, Linux Memory Management List, Krzysztof Kozlowski, Rob Herring, Thomas Staudt, Sourabh Jain, Will Deacon, Catalin Marinas, Madhavan Srinivasan, Michael Ellerman, Nicholas Piggin, Christophe Leroy (CS GROUP), Saravana Kannan, linux-kernel Hi Coiby, kernel test robot noticed the following build errors: [auto build test ERROR on 2619c62b7ef2f463bcbbb34af122689c09855c23] url: https://github.com/intel-lab-lkp/linux/commits/Coiby-Xu/crash_dump-dm-crypt-Don-t-print-in-arch-specific-code/20260211-162729 base: 2619c62b7ef2f463bcbbb34af122689c09855c23 patch link: https://lore.kernel.org/r/20260211082401.2407853-3-coxu%40redhat.com patch subject: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel config: powerpc64-randconfig-r111-20260212 (https://download.01.org/0day-ci/archive/20260212/202602120648.RgQALnnI-lkp@intel.com/config) compiler: powerpc64-linux-gcc (GCC) 11.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260212/202602120648.RgQALnnI-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202602120648.RgQALnnI-lkp@intel.com/ All errors (new ones prefixed by >>): arch/powerpc/kexec/elf_64.c: In function 'elf64_load': >> arch/powerpc/kexec/elf_64.c:82:23: error: implicit declaration of function 'crash_load_dm_crypt_keys' [-Werror=implicit-function-declaration] 82 | ret = crash_load_dm_crypt_keys(image); | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/crash_load_dm_crypt_keys +82 arch/powerpc/kexec/elf_64.c 27 28 static void *elf64_load(struct kimage *image, char *kernel_buf, 29 unsigned long kernel_len, char *initrd, 30 unsigned long initrd_len, char *cmdline, 31 unsigned long cmdline_len) 32 { 33 int ret; 34 unsigned long kernel_load_addr; 35 unsigned long initrd_load_addr = 0, fdt_load_addr; 36 void *fdt; 37 const void *slave_code; 38 struct elfhdr ehdr; 39 char *modified_cmdline = NULL; 40 struct crash_mem *rmem = NULL; 41 struct kexec_elf_info elf_info; 42 struct kexec_buf kbuf = { .image = image, .buf_min = 0, 43 .buf_max = ppc64_rma_size }; 44 struct kexec_buf pbuf = { .image = image, .buf_min = 0, 45 .buf_max = ppc64_rma_size, .top_down = true, 46 .mem = KEXEC_BUF_MEM_UNKNOWN }; 47 48 ret = kexec_build_elf_info(kernel_buf, kernel_len, &ehdr, &elf_info); 49 if (ret) 50 return ERR_PTR(ret); 51 52 if (IS_ENABLED(CONFIG_CRASH_DUMP) && image->type == KEXEC_TYPE_CRASH) { 53 /* min & max buffer values for kdump case */ 54 kbuf.buf_min = pbuf.buf_min = crashk_res.start; 55 kbuf.buf_max = pbuf.buf_max = 56 ((crashk_res.end < ppc64_rma_size) ? 57 crashk_res.end : (ppc64_rma_size - 1)); 58 } 59 60 ret = kexec_elf_load(image, &ehdr, &elf_info, &kbuf, &kernel_load_addr); 61 if (ret) 62 goto out; 63 64 kexec_dprintk("Loaded the kernel at 0x%lx\n", kernel_load_addr); 65 66 ret = kexec_load_purgatory(image, &pbuf); 67 if (ret) { 68 pr_err("Loading purgatory failed.\n"); 69 goto out; 70 } 71 72 kexec_dprintk("Loaded purgatory at 0x%lx\n", pbuf.mem); 73 74 /* Load additional segments needed for panic kernel */ 75 if (IS_ENABLED(CONFIG_CRASH_DUMP) && image->type == KEXEC_TYPE_CRASH) { 76 ret = load_crashdump_segments_ppc64(image, &kbuf); 77 if (ret) { 78 pr_err("Failed to load kdump kernel segments\n"); 79 goto out; 80 } 81 > 82 ret = crash_load_dm_crypt_keys(image); 83 if (ret) 84 goto out; 85 86 /* Setup cmdline for kdump kernel case */ 87 modified_cmdline = setup_kdump_cmdline(image, cmdline, 88 cmdline_len); 89 if (!modified_cmdline) { 90 pr_err("Setting up cmdline for kdump kernel failed\n"); 91 ret = -EINVAL; 92 goto out; 93 } 94 cmdline = modified_cmdline; 95 } 96 97 if (initrd != NULL) { 98 kbuf.buffer = initrd; 99 kbuf.bufsz = kbuf.memsz = initrd_len; 100 kbuf.buf_align = PAGE_SIZE; 101 kbuf.top_down = false; 102 kbuf.mem = KEXEC_BUF_MEM_UNKNOWN; 103 ret = kexec_add_buffer(&kbuf); 104 if (ret) 105 goto out; 106 initrd_load_addr = kbuf.mem; 107 108 kexec_dprintk("Loaded initrd at 0x%lx\n", initrd_load_addr); 109 } 110 111 ret = get_reserved_memory_ranges(&rmem); 112 if (ret) 113 goto out; 114 115 fdt = of_kexec_alloc_and_setup_fdt(image, initrd_load_addr, 116 initrd_len, cmdline, 117 kexec_extra_fdt_size_ppc64(image, rmem)); 118 if (!fdt) { 119 pr_err("Error setting up the new device tree.\n"); 120 ret = -EINVAL; 121 goto out; 122 } 123 124 ret = setup_new_fdt_ppc64(image, fdt, rmem); 125 if (ret) 126 goto out_free_fdt; 127 128 if (!IS_ENABLED(CONFIG_CRASH_HOTPLUG) || image->type != KEXEC_TYPE_CRASH) 129 fdt_pack(fdt); 130 131 kbuf.buffer = fdt; 132 kbuf.bufsz = kbuf.memsz = fdt_totalsize(fdt); 133 kbuf.buf_align = PAGE_SIZE; 134 kbuf.top_down = true; 135 kbuf.mem = KEXEC_BUF_MEM_UNKNOWN; 136 ret = kexec_add_buffer(&kbuf); 137 if (ret) 138 goto out_free_fdt; 139 140 /* FDT will be freed in arch_kimage_file_post_load_cleanup */ 141 image->arch.fdt = fdt; 142 143 fdt_load_addr = kbuf.mem; 144 145 kexec_dprintk("Loaded device tree at 0x%lx\n", fdt_load_addr); 146 147 slave_code = elf_info.buffer + elf_info.proghdrs[0].p_offset; 148 ret = setup_purgatory_ppc64(image, slave_code, fdt, kernel_load_addr, 149 fdt_load_addr); 150 if (ret) 151 pr_err("Error setting up the purgatory.\n"); 152 153 goto out; 154 155 out_free_fdt: 156 kvfree(fdt); 157 out: 158 kfree(rmem); 159 kfree(modified_cmdline); 160 kexec_free_elf_info(&elf_info); 161 162 return ret ? ERR_PTR(ret) : NULL; 163 } 164 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel 2026-02-11 22:35 ` kernel test robot @ 2026-02-12 2:22 ` Coiby Xu 0 siblings, 0 replies; 6+ messages in thread From: Coiby Xu @ 2026-02-12 2:22 UTC (permalink / raw) To: kernel test robot Cc: kexec, linux-arm-kernel, linuxppc-dev, devicetree, oe-kbuild-all, Arnaud Lefebvre, Baoquan he, Dave Young, Kairui Song, Pingfan Liu, Andrew Morton, Linux Memory Management List, Krzysztof Kozlowski, Rob Herring, Thomas Staudt, Sourabh Jain, Will Deacon, Catalin Marinas, Madhavan Srinivasan, Michael Ellerman, Nicholas Piggin, Christophe Leroy (CS GROUP), Saravana Kannan, linux-kernel On Thu, Feb 12, 2026 at 06:35:52AM +0800, kernel test robot wrote: >Hi Coiby, > >kernel test robot noticed the following build errors: > >[auto build test ERROR on 2619c62b7ef2f463bcbbb34af122689c09855c23] > >url: https://github.com/intel-lab-lkp/linux/commits/Coiby-Xu/crash_dump-dm-crypt-Don-t-print-in-arch-specific-code/20260211-162729 >base: 2619c62b7ef2f463bcbbb34af122689c09855c23 >patch link: https://lore.kernel.org/r/20260211082401.2407853-3-coxu%40redhat.com >patch subject: [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel >config: powerpc64-randconfig-r111-20260212 (https://download.01.org/0day-ci/archive/20260212/202602120648.RgQALnnI-lkp@intel.com/config) >compiler: powerpc64-linux-gcc (GCC) 11.5.0 >reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260212/202602120648.RgQALnnI-lkp@intel.com/reproduce) > >If you fix the issue in a separate patch/commit (i.e. not just a new version of >the same patch/commit), kindly add following tags >| Reported-by: kernel test robot <lkp@intel.com> >| Closes: https://lore.kernel.org/oe-kbuild-all/202602120648.RgQALnnI-lkp@intel.com/ > >All errors (new ones prefixed by >>): > > arch/powerpc/kexec/elf_64.c: In function 'elf64_load': >>> arch/powerpc/kexec/elf_64.c:82:23: error: implicit declaration of function 'crash_load_dm_crypt_keys' [-Werror=implicit-function-declaration] > 82 | ret = crash_load_dm_crypt_keys(image); > | ^~~~~~~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors Thanks for reporting this issue. I'll fix this issue in new patch set. -- Best regards, Coiby ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-02-12 2:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260211082401.2407853-1-coxu@redhat.com>
2026-02-11 8:23 ` [PATCH v4 1/2] crash_dump/dm-crypt: Don't print in arch-specific code Coiby Xu
2026-02-11 8:24 ` [PATCH v4 2/2] arm64,ppc64le/kdump: pass dm-crypt keys to kdump kernel Coiby Xu
2026-02-11 9:55 ` Christophe Leroy (CS GROUP)
2026-02-12 2:01 ` Coiby Xu
2026-02-11 22:35 ` kernel test robot
2026-02-12 2:22 ` Coiby Xu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox