Re: [PATCH v15 00/23] arm64/riscv: Add support for crashkernel CMA reservation
From: Baoquan He <baoquan.he@linux.dev>
Date: 2026-06-01 13:40:46
Also in:
kexec, linux-devicetree, linux-doc, linux-riscv, lkml, loongarch
Hi Jinjie, On 06/01/26 at 05:47pm, Jinjie Ruan wrote: ...snip...
Changes in v15: - Unify the subject prefix formats as Huacai suggested. - Fix powerpc pre-existing NULL pointer dereference [Sashiko [1]] - Fix powerpc pre-existing __merge_memory_ranges() memory range truncation [Sashiko [1]]. - Fix pre-existing arm64 CMA page leaks [Sashiko[2]]. - Fix pre-existing crash_load_dm_crypt_keys() Use-After-Free and Double Free issue [Sashiko[3]]. - Fix vfree(headers) and uninitialized variables issue and simplify the fix [Sashiko[2]]. - As walk_system_ram_res() and for_each_mem_range() use different lock, unify and simplify the fix of TOCTOU buffer overflow via memory region padding [Sashiko[4]]. - Fix the arm64 crash dump issues in Sashiko[5]. - Link to v14: https://lore.kernel.org/all/20260525084932.934910-1-ruanjinjie@huawei.com/ (local)
Do these Fixes have anything with the main target of this patch series you mentioned in cover-letter:"arm64/riscv: Add support for crashkernel CMA"? The patches become more and more in each new version, I am wondering if it relies on these Fixes patches to implement your adding support for crashkernel CMA on arm64/risc-v. If not relying on them, could you split them into different patchset on different purpose? Thanks Baoquan
[1]: https://lore.kernel.org/all/20260525092207.96B9D1F000E9@smtp.kernel.org/ (local) [2]: https://lore.kernel.org/all/20260525091149.1A1E01F00A3D@smtp.kernel.org/ (local) [3]: https://lore.kernel.org/all/20260525105227.3C2421F000E9@smtp.kernel.org/ (local) [4]: https://lore.kernel.org/all/20260525095447.944E11F000E9@smtp.kernel.org/ (local) [5]: https://lore.kernel.org/all/20260525101746.9959D1F000E9@smtp.kernel.org/ (local) Changes in v14: - Fix image->elf_headers memory leak during retry loop for arm64 as Sashiko AI code review pointed out. - Solve the hotplug notifier arch_crash_handle_hotplug_event() AA self-deadlock problem as Sashiko AI code review pointed out. - Fix the TOCTOU issue in prepare_elf_headers() by get_online_mems(). - -ENOMEM -> -EAGAIN as Breno suggested. - Add support for arm64 crash hotplug. - Link to v13: https://lore.kernel.org/all/20260511030454.1730881-1-ruanjinjie@huawei.com/ (local) Changes in v13: - Rebased on v7.1-rc1. - Update the commit message. - Add Reviewed-by. - Link to v12: https://lore.kernel.org/all/20260402072701.628293-1-ruanjinjie@huawei.com/ (local) Changes in v12: - Remove the unused "nr_mem_ranges" for x86. - Add "Fix crashk_low_res not exclude bug" test log. - Provide a separate patch for each architecture for using crash_prepare_headers(), which will make the review more convenient. - Add Reviewed-by and Tested-by. - Link to v11: https://lore.kernel.org/all/20260328074013.3589544-1-ruanjinjie@huawei.com/ (local) Changes in v11: - Avoid silently drop crash memory if the crash kernel is built without CONFIG_CMA. - Remove unnecessary "cmem->nr_ranges = 0" for arch_crash_populate_cmem() as we use kvzalloc(). - Provide a separate patch for each architecture to fix the existing buffer overflow issue. - Add Acked-bys for arm64. Changes in v10: - Fix crashk_low_res not excluded bug in the existing RISC-V code. - Fix an existing memory leak issue in the existing PowerPC code. - Fix the ordering issue of adding CMA ranges to "linux,usable-memory-range". - Fix an existing concurrency issue. A Concurrent memory hotplug may occur between reading memblock and attempting to fill cmem during kexec_load() for almost all existing architectures. - Link to v9: https://lore.kernel.org/all/20260323072745.2481719-1-ruanjinjie@huawei.com/ (local) Changes in v9: - Collect Reviewed-by and Acked-by, and prepare for Sashiko AI review. - Link to v8: https://lore.kernel.org/all/20260302035315.3892241-1-ruanjinjie@huawei.com/ (local) Changes in v8: - Fix the build issues reported by kernel test robot and Sourabh. - Link to v7: https://lore.kernel.org/all/20260226130437.1867658-1-ruanjinjie@huawei.com/ (local) Changes in v7: - Correct the inclusion of CMA-reserved ranges for kdump kernel in of/kexec for arm64 and riscv. - Add Acked-by. - Link to v6: https://lore.kernel.org/all/20260224085342.387996-1-ruanjinjie@huawei.com/ (local) Changes in v6: - Update the crash core exclude code as Mike suggested. - Rebased on v7.0-rc1. - Add acked-by. - Link to v5: https://lore.kernel.org/all/20260212101001.343158-1-ruanjinjie@huawei.com/ (local) Jinjie Ruan (22): riscv: kexec_file: Fix crashk_low_res not exclude bug powerpc/crash: Fix possible memory leak in update_crash_elfcorehdr() powerpc/kexec_file: Fix NULL pointer dereference in kexec_extra_fdt_size_ppc64() powerpc/kexec_file: Fix memory range truncation in __merge_memory_ranges() kexec: Extract kexec_free_segment_cma() from kimage_free_cma() arm64: kexec_file: Fix CMA page leaks during segment placement retry loops arm64: kexec_file: Fix image->elf_headers memory leak during retry loop kexec: Fix UAF and Double Free in crash_load_dm_crypt_keys() crash_core: Introduce CRASH_HOTPLUG_SAFETY_PADDING for memory hotplug safety x86: kexec_file: Fix TOCTOU buffer overflow via memory region padding arm64: kexec_file: Fix TOCTOU buffer overflow via memory region padding riscv: kexec_file: Fix TOCTOU buffer overflow via memory region padding LoongArch: kexec_file: Fix TOCTOU buffer overflow via memory region padding crash: Add crash_prepare_headers() to exclude crash kernel memory arm64: kexec_file: Use crash_prepare_headers() helper to simplify code x86: kexec_file: Use crash_prepare_headers() helper to simplify code riscv: kexec_file: Use crash_prepare_headers() helper to simplify code LoongArch: kexec_file: Use crash_prepare_headers() helper to simplify code powerpc/kexec_file: Use crash_exclude_core_ranges() helper arm64: kexec_file: Add support for crashkernel CMA reservation riscv: kexec_file: Add support for crashkernel CMA reservation arm64: crash: Add crash hotplug support Sourabh Jain (1): powerpc/crash: sort crash memory ranges before preparing elfcorehdr .../admin-guide/kernel-parameters.txt | 16 +- arch/arm64/Kconfig | 3 + arch/arm64/include/asm/kexec.h | 13 ++ arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/crash.c | 152 ++++++++++++++++++ arch/arm64/kernel/kexec_image.c | 34 ++++ arch/arm64/kernel/machine_kexec_file.c | 78 ++------- arch/arm64/mm/init.c | 5 +- arch/loongarch/kernel/machine_kexec_file.c | 44 ++--- arch/powerpc/include/asm/kexec_ranges.h | 1 - arch/powerpc/kexec/crash.c | 7 +- arch/powerpc/kexec/file_load_64.c | 3 + arch/powerpc/kexec/ranges.c | 113 ++----------- arch/riscv/kernel/machine_kexec_file.c | 43 ++--- arch/riscv/mm/init.c | 5 +- arch/x86/kernel/crash.c | 92 ++--------- drivers/of/fdt.c | 9 +- drivers/of/kexec.c | 9 ++ include/linux/crash_core.h | 15 ++ include/linux/crash_reserve.h | 4 +- include/linux/kexec.h | 2 + kernel/crash_core.c | 89 +++++++++- kernel/crash_dump_dm_crypt.c | 4 +- kernel/kexec_core.c | 25 +-- 24 files changed, 430 insertions(+), 338 deletions(-) create mode 100644 arch/arm64/kernel/crash.c -- 2.34.1