mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v6 00/14] crash: Fix several bugs
@ 2026-09-21  9:04 Jinjie Ruan
  2026-09-21  9:04 ` [PATCH v6 01/14] kexec: Fix CMA segment address translation with non-zero text_offset Jinjie Ruan
                   ` (13 more replies)
  0 siblings, 14 replies; 28+ messages in thread
From: Jinjie Ruan @ 2026-09-21  9:04 UTC (permalink / raw)
  To: catalin.marinas, will, mark.rutland, chenhuacai, kernel, maddy,
	mpe, npiggin, chleroy, ritesh.list, sshegde, tglx, mingo, bp,
	dave.hansen, hpa, gregkh, rafael, dakr, akpm, baoquan.he, rppt,
	pasha.tatashin, pratyush, ruirui.yang, leitao, yeoreum.yun,
	sourabhjain, robh, coxu, kees, tangyouling, liukexin,
	zhangtianyang, guodongtai, maqianga, chao.gao, kai.huang,
	vishal.l.verma, seanjc, piliu, thuth, jbouron, me, mclapinski,
	graf, bgwin, hbathini, eric.devolder, takahiro.akashi,
	james.morse, palmer, x86, linux-arm-kernel, linux-kernel,
	loongarch, linuxppc-dev, driver-core, kexec
  Cc: ruanjinjie

As Baoquan and Catalin suggested, this patch set fixes
several pre-existing code issues found by Sashiko AI [1][2][3].

The major improvements and fixes included in this series are:
- Fix several memory leaks for arm64, and similar issues on LoongArch.
- Fix out-of-bounds write on 32-bit Highmem for x86.
- Fix TOCTOU race in crash memory range collection.

This patch set is rebased on v7.3-rc3. Compared to the previous version,
split out arm64 crash hotplug patches as Breno suggested, which are based
on these bugfix patches and will be resubmitted after this patch series
is merged.

Slightly tested on x86_64 and arm64 qemu with:
- kexec_load (--kexec-syscall --hotplug)
- kexec_load (--kexec-file-syscall)

All boot successfully into the second kernel.

[1]: https://lore.kernel.org/all/20260601094805.2928614-1-ruanjinjie@huawei.com/
[2]: https://sashiko.dev/#/patchset/20260729031235.2840255-1-ruanjinjie%40huawei.com
[3]: https://sashiko.dev/#/patchset/20260907125404.922123-1-ruanjinjie%40huawei.com

Changes in v6:
- Split out arm64 crash hotplug patches as Breno suggested.
- Remove unused elfcorehdr_updated [4].
- Make the patch split more clear.
- Link to v5: https://lore.kernel.org/all/20260918100442.3841135-1-ruanjinjie@huawei.com/

[4]: https://sashiko.dev/#/patchset/20260907125404.922123-1-ruanjinjie%40huawei.com

Changs in v5:
- Rebased on v7.3-rc3.
- Fix several pre-existing code issues reported by Sashiko AI review. [3]
- Add an extra slot for memory hot-unplug.
- Add device_hotplug_lock_assert_held() helper.
- Rework to let the hotplug paths to skip CPU events entirely, which avoid
  the TOCTOU race of memory hotplug events and internal CPU offline path
  without holding device_hotplug_lock.
- Link to v4: https://lore.kernel.org/all/20260907125404.922123-1-ruanjinjie@huawei.com/

Changes in v4:
- Rebased on v7.3-rc1.
- Update the kexec_core code as Mike suggested.
- Update the LoongArch subject as Huacai suggested.
- Drop crash_dump_dm_crypt patch which will be fixed by Coiby in [4] as
  Sourabh suggested.
- Drop x86 related patches because of branch conflict, which will
  be done later.
- Drop the incorrect CRASH_MAX_MEMORY_RANGES patch.
- Handle elfcorehdr_index in arm64 arch code.
- Link to v3: https://lore.kernel.org/all/20260826092541.3905933-1-ruanjinjie@huawei.com/

[4] https://lore.kernel.org/all/20260828084900.1496839-2-coiby.xu@gmail.com/

Changes in v3:
- Handle "KEXEC_CRASH_HP_REMOVE_MEMORY" action.
- Fix several pre-existing code issues reported by Sashiko AI review [3].
- Introduce crash_extra_elfcorehdr_size() and elf64_phdr_size() helper.
- Rework related crash and arch code.
- Add test method.
- v2: https://lore.kernel.org/all/20260729031235.2840255-1-ruanjinjie@huawei.com/

Changes in v2:
- Split out Powerpc bugfix patch as Mike suggested.
- Use phys_to_virt() instead of __va() in update_crash_elfcorehdr().
- Convert pnum_hdr_sz() to a function.
- Only assign elfcorehdr_index after kexec_add_buffer succeeds, considering
  crash_handle_hotplug_event() already performs validity check on
  elfcorehdr_index:
  - We can safely remove the check for CPU hotplug
    in arch_crash_handle_hotplug_event().
  - The elfcorehdr_index's segment mem will be valid in
    update_crash_elfcorehdr(), so we can safely remove the NULL check.
- Simplify the commit message.
- v1: https://lore.kernel.org/all/20260723131242.1537633-1-ruanjinjie@huawei.com/#t

Jinjie Ruan (14):
  kexec: Fix CMA segment address translation with non-zero text_offset
  kexec: Record allocated CMA pages to fix release size mismatch
  kexec: Extract kexec_free_segment_cma() from kimage_free_cma()
  arm64: kexec_file: Fix CMA page leaks in segment placement retry loops
  arm64: kexec_file: Fix elf_headers memory leak in retry loop
  LoongArch: kexec_file: Fix CMA page leaks in segment placement retry
    loops
  LoongArch: kexec_file: Fix elf_headers memory leak in retry loop
  LoongArch: kexec_file: Fix a modified_cmdline leak
  x86/crash: Fix massive out-of-bounds write on 32-bit Highmem
  crash: Extract crash_get_memory_ranges() helper
  crash: Factor out crash_find_elfcorehdr() helper
  crash: Normalize the kexec_load elfcorehdr at load time
  driver core: Add device_hotplug_lock_assert_held() helper
  crash: Fix TOCTOU race in crash memory range collection

 arch/arm64/kernel/kexec_image.c            |   1 +
 arch/arm64/kernel/machine_kexec_file.c     |   9 +-
 arch/loongarch/kernel/kexec_efi.c          |   1 +
 arch/loongarch/kernel/machine_kexec.c      |   2 +
 arch/loongarch/kernel/machine_kexec_file.c |  10 +-
 arch/powerpc/kexec/crash.c                 |   1 +
 arch/x86/kernel/crash.c                    |  40 +++++---
 drivers/base/core.c                        |   5 +
 include/linux/crash_core.h                 |   2 +
 include/linux/device.h                     |   1 +
 include/linux/kexec.h                      |   4 +-
 kernel/crash_core.c                        | 114 +++++++++++++++++----
 kernel/kexec.c                             |   4 +
 kernel/kexec_core.c                        |  43 +++++---
 kernel/kexec_file.c                        |  13 ++-
 15 files changed, 192 insertions(+), 58 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2026-09-21  9:25 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-21  9:04 [PATCH v6 00/14] crash: Fix several bugs Jinjie Ruan
2026-09-21  9:04 ` [PATCH v6 01/14] kexec: Fix CMA segment address translation with non-zero text_offset Jinjie Ruan
2026-09-21  9:17   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 02/14] kexec: Record allocated CMA pages to fix release size mismatch Jinjie Ruan
2026-09-21  9:14   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 03/14] kexec: Extract kexec_free_segment_cma() from kimage_free_cma() Jinjie Ruan
2026-09-21  9:13   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 04/14] arm64: kexec_file: Fix CMA page leaks in segment placement retry loops Jinjie Ruan
2026-09-21  9:18   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 05/14] arm64: kexec_file: Fix elf_headers memory leak in retry loop Jinjie Ruan
2026-09-21  9:15   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 06/14] LoongArch: kexec_file: Fix CMA page leaks in segment placement retry loops Jinjie Ruan
2026-09-21  9:13   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 07/14] LoongArch: kexec_file: Fix elf_headers memory leak in retry loop Jinjie Ruan
2026-09-21  9:14   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 08/14] LoongArch: kexec_file: Fix a modified_cmdline leak Jinjie Ruan
2026-09-21  9:15   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 09/14] x86/crash: Fix massive out-of-bounds write on 32-bit Highmem Jinjie Ruan
2026-09-21  9:04 ` [PATCH v6 10/14] crash: Extract crash_get_memory_ranges() helper Jinjie Ruan
2026-09-21  9:19   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 11/14] crash: Factor out crash_find_elfcorehdr() helper Jinjie Ruan
2026-09-21  9:17   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 12/14] crash: Normalize the kexec_load elfcorehdr at load time Jinjie Ruan
2026-09-21  9:19   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 13/14] driver core: Add device_hotplug_lock_assert_held() helper Jinjie Ruan
2026-09-21  9:18   ` sashiko-bot
2026-09-21  9:04 ` [PATCH v6 14/14] crash: Fix TOCTOU race in crash memory range collection Jinjie Ruan
2026-09-21  9:25   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®