From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>,
<mark.rutland@arm.com>, <chenhuacai@kernel.org>,
<kernel@xen0n.name>, <maddy@linux.ibm.com>, <mpe@ellerman.id.au>,
<npiggin@gmail.com>, <chleroy@kernel.org>,
<ritesh.list@gmail.com>, <sshegde@linux.ibm.com>,
<pjw@kernel.org>, <palmer@dabbelt.com>, <aou@eecs.berkeley.edu>,
<alex@ghiti.fr>, <tglx@kernel.org>, <mingo@redhat.com>,
<bp@alien8.de>, <dave.hansen@linux.intel.com>, <hpa@zytor.com>,
<akpm@linux-foundation.org>, <baoquan.he@linux.dev>,
<rppt@kernel.org>, <pasha.tatashin@soleen.com>,
<pratyush@kernel.org>, <thuth@redhat.com>, <leitao@debian.org>,
<yeoreum.yun@arm.com>, <robh@kernel.org>,
<sourabhjain@linux.ibm.com>, <kees@kernel.org>,
<coiby.xu@gmail.com>, <Yeking@Red54.com>,
<tangyouling@kylinos.cn>, <maqianga@uniontech.com>,
<zhangtianyang@loongson.cn>, <guodongtai@kylinos.cn>,
<blum@kernel.org>, <adityag@linux.ibm.com>,
<hui.wang@canonical.com>, <sohammetha01@gmail.com>,
<guoren@kernel.org>, <gaohan@iscas.ac.cn>, <kai.huang@intel.com>,
<kas@kernel.org>, <vishal.l.verma@intel.com>, <piliu@redhat.com>,
<jbouron@amazon.com>, <mclapinski@google.com>, <me@linux.beauty>,
<graf@amazon.com>, <bgwin@google.com>, <x86@kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <loongarch@lists.linux.dev>,
<linuxppc-dev@lists.ozlabs.org>,
<linux-riscv@lists.infradead.org>, <kexec@lists.infradead.org>
Subject: Re: [PATCH v7 05/15] LoongArch: kexec_file: Fix CMA page leaks in segment placement retry loops
Date: Tue, 3 Nov 2026 17:16:13 +0800 [thread overview]
Message-ID: <9ef43c59-72b8-4ef8-96cd-0dfd133cde0f@huawei.com> (raw)
In-Reply-To: <20261026075201.699550-6-ruanjinjie@huawei.com>
Will fix sashiko review issue in v8.
在 2026/10/26 15:51, Jinjie Ruan 写道:
> The retry loop drops nr_segments, leaking the CMA pages of the failed
> segments. Release them first, and disable CMA for the retry: it
> ignores buf_min and would hand out the same region forever.
>
> Cc: Huacai Chen <chenhuacai@kernel.org>
> Cc: WANG Xuerui <kernel@xen0n.name>
> Cc: Youling Tang <tangyouling@kylinos.cn>
> Cc: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Cc: Sourabh Jain <sourabhjain@linux.ibm.com>
> Cc: Kees Cook <kees@kernel.org>
> Cc: stable@vger.kernel.org
> Link: https://sashiko.dev/#/patchset/20260729031235.2840255-1-ruanjinjie%40huawei.com
> Fixes: 55d990f0084c ("LoongArch: Add EFI binary support for kexec_file")
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
> arch/loongarch/kernel/kexec_efi.c | 8 ++++++++
> arch/loongarch/kernel/machine_kexec_file.c | 6 +++++-
> 2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/arch/loongarch/kernel/kexec_efi.c b/arch/loongarch/kernel/kexec_efi.c
> index 5ee78ebb1546..d42711b895a2 100644
> --- a/arch/loongarch/kernel/kexec_efi.c
> +++ b/arch/loongarch/kernel/kexec_efi.c
> @@ -86,6 +86,14 @@ static void *efi_kexec_load(struct kimage *image,
> * We couldn't find space for the other segments; erase the
> * kernel segment and try the next available hole.
> */
> + /*
> + * kexec_alloc_contig() ignores buf_min, so disable CMA to
> + * let the retry make progress.
> + */
> + if (image->segment_cma[kernel_segment_number])
> + image->no_cma = true;
> +
> + kexec_free_segment_cma(image, kernel_segment_number);
> image->nr_segments -= 1;
> kbuf.buf_min = kernel_segment->mem + kernel_segment->memsz;
> kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
> diff --git a/arch/loongarch/kernel/machine_kexec_file.c b/arch/loongarch/kernel/machine_kexec_file.c
> index 5412aa9f3568..62a5be102065 100644
> --- a/arch/loongarch/kernel/machine_kexec_file.c
> +++ b/arch/loongarch/kernel/machine_kexec_file.c
> @@ -217,7 +217,11 @@ int load_other_segments(struct kimage *image,
> return 0;
>
> out_err:
> - image->nr_segments = orig_segments;
> + while (image->nr_segments > orig_segments) {
> + kexec_free_segment_cma(image, image->nr_segments - 1);
> + image->nr_segments--;
> + }
> +
> kfree(modified_cmdline);
> return ret;
> }
--
Best regards,
Jinjie
WARNING: multiple messages have this Message-ID (diff)
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>,
<mark.rutland@arm.com>, <chenhuacai@kernel.org>,
<kernel@xen0n.name>, <maddy@linux.ibm.com>, <mpe@ellerman.id.au>,
<npiggin@gmail.com>, <chleroy@kernel.org>,
<ritesh.list@gmail.com>, <sshegde@linux.ibm.com>,
<pjw@kernel.org>, <palmer@dabbelt.com>, <aou@eecs.berkeley.edu>,
<alex@ghiti.fr>, <tglx@kernel.org>, <mingo@redhat.com>,
<bp@alien8.de>, <dave.hansen@linux.intel.com>, <hpa@zytor.com>,
<akpm@linux-foundation.org>, <baoquan.he@linux.dev>,
<rppt@kernel.org>, <pasha.tatashin@soleen.com>,
<pratyush@kernel.org>, <thuth@redhat.com>, <leitao@debian.org>,
<yeoreum.yun@arm.com>, <robh@kernel.org>,
<sourabhjain@linux.ibm.com>, <kees@kernel.org>,
<coiby.xu@gmail.com>, <Yeking@Red54.com>,
<tangyouling@kylinos.cn>, <maqianga@uniontech.com>,
<zhangtianyang@loongson.cn>, <guodongtai@kylinos.cn>,
<blum@kernel.org>, <adityag@linux.ibm.com>,
<hui.wang@canonical.com>, <sohammetha01@gmail.com>,
<guoren@kernel.org>, <gaohan@iscas.ac.cn>, <kai.huang@intel.com>,
<kas@kernel.org>, <vishal.l.verma@intel.com>, <piliu@redhat.com>,
<jbouron@amazon.com>, <mclapinski@google.com>, <me@linux.beauty>,
<graf@amazon.com>, <bgwin@google.com>, <x86@kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <loongarch@lists.linux.dev>,
<linuxppc-dev@lists.ozlabs.org>,
<linux-riscv@lists.infradead.org>, <kexec@lists.infradead.org>
Subject: Re: [PATCH v7 05/15] LoongArch: kexec_file: Fix CMA page leaks in segment placement retry loops
Date: Tue, 3 Nov 2026 17:16:13 +0800 [thread overview]
Message-ID: <9ef43c59-72b8-4ef8-96cd-0dfd133cde0f@huawei.com> (raw)
In-Reply-To: <20261026075201.699550-6-ruanjinjie@huawei.com>
Will fix sashiko review issue in v8.
在 2026/10/26 15:51, Jinjie Ruan 写道:
> The retry loop drops nr_segments, leaking the CMA pages of the failed
> segments. Release them first, and disable CMA for the retry: it
> ignores buf_min and would hand out the same region forever.
>
> Cc: Huacai Chen <chenhuacai@kernel.org>
> Cc: WANG Xuerui <kernel@xen0n.name>
> Cc: Youling Tang <tangyouling@kylinos.cn>
> Cc: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Cc: Sourabh Jain <sourabhjain@linux.ibm.com>
> Cc: Kees Cook <kees@kernel.org>
> Cc: stable@vger.kernel.org
> Link: https://sashiko.dev/#/patchset/20260729031235.2840255-1-ruanjinjie%40huawei.com
> Fixes: 55d990f0084c ("LoongArch: Add EFI binary support for kexec_file")
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
> arch/loongarch/kernel/kexec_efi.c | 8 ++++++++
> arch/loongarch/kernel/machine_kexec_file.c | 6 +++++-
> 2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/arch/loongarch/kernel/kexec_efi.c b/arch/loongarch/kernel/kexec_efi.c
> index 5ee78ebb1546..d42711b895a2 100644
> --- a/arch/loongarch/kernel/kexec_efi.c
> +++ b/arch/loongarch/kernel/kexec_efi.c
> @@ -86,6 +86,14 @@ static void *efi_kexec_load(struct kimage *image,
> * We couldn't find space for the other segments; erase the
> * kernel segment and try the next available hole.
> */
> + /*
> + * kexec_alloc_contig() ignores buf_min, so disable CMA to
> + * let the retry make progress.
> + */
> + if (image->segment_cma[kernel_segment_number])
> + image->no_cma = true;
> +
> + kexec_free_segment_cma(image, kernel_segment_number);
> image->nr_segments -= 1;
> kbuf.buf_min = kernel_segment->mem + kernel_segment->memsz;
> kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
> diff --git a/arch/loongarch/kernel/machine_kexec_file.c b/arch/loongarch/kernel/machine_kexec_file.c
> index 5412aa9f3568..62a5be102065 100644
> --- a/arch/loongarch/kernel/machine_kexec_file.c
> +++ b/arch/loongarch/kernel/machine_kexec_file.c
> @@ -217,7 +217,11 @@ int load_other_segments(struct kimage *image,
> return 0;
>
> out_err:
> - image->nr_segments = orig_segments;
> + while (image->nr_segments > orig_segments) {
> + kexec_free_segment_cma(image, image->nr_segments - 1);
> + image->nr_segments--;
> + }
> +
> kfree(modified_cmdline);
> return ret;
> }
--
Best regards,
Jinjie
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-11-03 9:16 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 7:51 [PATCH v7 00/15] kexec: Fix CMA and elf header leaks and rework Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 7:51 ` [PATCH v7 01/15] arm64: kexec_file: Stop using the Image text_offset Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 9:32 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 02/15] kexec: Extract kexec_free_segment_cma() from kimage_free_cma() Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 9:41 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 03/15] arm64: kexec_file: Fix CMA page leaks in segment placement retry loops Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 9:53 ` sashiko-bot
2026-11-03 9:15 ` Jinjie Ruan
2026-11-03 9:15 ` Jinjie Ruan
2026-10-26 7:51 ` [PATCH v7 04/15] arm64: kexec_file: Fix elf_headers memory leak in retry loop Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:00 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 05/15] LoongArch: kexec_file: Fix CMA page leaks in segment placement retry loops Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:13 ` sashiko-bot
2026-11-03 9:16 ` Jinjie Ruan [this message]
2026-11-03 9:16 ` Jinjie Ruan
2026-10-26 7:51 ` [PATCH v7 06/15] LoongArch: kexec_file: Fix elf_headers memory leak in retry loop Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:21 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 07/15] LoongArch: kexec_file: Fix a modified_cmdline leak Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:28 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 08/15] arm64: kexec_file: Simplify load_other_segments() Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:32 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 09/15] LoongArch: " Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:40 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 10/15] riscv: kexec_file: Simplify load_extra_segments() Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:42 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 11/15] kexec: Free the elf core header in kimage_file_post_load_cleanup() Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:47 ` sashiko-bot
2026-10-26 7:51 ` [PATCH v7 12/15] kexec: Add kexec_load_other_segments() helper Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 10:56 ` sashiko-bot
2026-11-10 10:04 ` Mike Rapoport
2026-11-10 10:04 ` Mike Rapoport
2026-11-11 12:01 ` Jinjie Ruan
2026-11-11 12:01 ` Jinjie Ruan
2026-10-26 7:51 ` [PATCH v7 13/15] arm64: kexec_file: Use kexec_load_other_segments() to simplify code Jinjie Ruan
2026-10-26 7:51 ` Jinjie Ruan
2026-10-26 11:01 ` sashiko-bot
2026-10-26 7:52 ` [PATCH v7 14/15] LoongArch: " Jinjie Ruan
2026-10-26 7:52 ` Jinjie Ruan
2026-10-26 11:12 ` sashiko-bot
2026-10-26 7:52 ` [PATCH v7 15/15] riscv: " Jinjie Ruan
2026-10-26 7:52 ` Jinjie Ruan
2026-10-26 11:21 ` sashiko-bot
2026-11-03 9:14 ` [PATCH v7 00/15] kexec: Fix CMA and elf header leaks and rework Jinjie Ruan
2026-11-03 9:14 ` Jinjie Ruan
2026-11-04 14:56 ` Mike Rapoport
2026-11-04 14:56 ` Mike Rapoport
2026-11-05 3:45 ` Jinjie Ruan
2026-11-05 3:45 ` Jinjie Ruan
2026-11-05 7:52 ` Mike Rapoport
2026-11-05 7:52 ` Mike Rapoport
2026-11-05 8:04 ` Jinjie Ruan
2026-11-05 8:04 ` Jinjie Ruan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9ef43c59-72b8-4ef8-96cd-0dfd133cde0f@huawei.com \
--to=ruanjinjie@huawei.com \
--cc=Yeking@Red54.com \
--cc=adityag@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=baoquan.he@linux.dev \
--cc=bgwin@google.com \
--cc=blum@kernel.org \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=chleroy@kernel.org \
--cc=coiby.xu@gmail.com \
--cc=dave.hansen@linux.intel.com \
--cc=gaohan@iscas.ac.cn \
--cc=graf@amazon.com \
--cc=guodongtai@kylinos.cn \
--cc=guoren@kernel.org \
--cc=hpa@zytor.com \
--cc=hui.wang@canonical.com \
--cc=jbouron@amazon.com \
--cc=kai.huang@intel.com \
--cc=kas@kernel.org \
--cc=kees@kernel.org \
--cc=kernel@xen0n.name \
--cc=kexec@lists.infradead.org \
--cc=leitao@debian.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=maddy@linux.ibm.com \
--cc=maqianga@uniontech.com \
--cc=mark.rutland@arm.com \
--cc=mclapinski@google.com \
--cc=me@linux.beauty \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pasha.tatashin@soleen.com \
--cc=piliu@redhat.com \
--cc=pjw@kernel.org \
--cc=pratyush@kernel.org \
--cc=ritesh.list@gmail.com \
--cc=robh@kernel.org \
--cc=rppt@kernel.org \
--cc=sohammetha01@gmail.com \
--cc=sourabhjain@linux.ibm.com \
--cc=sshegde@linux.ibm.com \
--cc=tangyouling@kylinos.cn \
--cc=tglx@kernel.org \
--cc=thuth@redhat.com \
--cc=vishal.l.verma@intel.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=yeoreum.yun@arm.com \
--cc=zhangtianyang@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.