From: Donet Tom <donettom@linux.ibm.com>
To: Muchun Song <songmuchun@bytedance.com>,
David Hildenbrand <david@kernel.org>,
Oscar Salvador <osalvador@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org
Cc: muchun.song@linux.dev, linux-cxl@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm/memory_hotplug: Factor out altmap freeing checks
Date: Mon, 11 May 2026 14:42:25 +0530 [thread overview]
Message-ID: <67f5b175-7a9e-4693-95ce-84d4b42e6b45@linux.ibm.com> (raw)
In-Reply-To: <20260511084307.1827127-1-songmuchun@bytedance.com>
On 5/11/26 2:13 PM, Muchun Song wrote:
> Use a small helper to centralize altmap freeing after verifying that all
> vmemmap pages were released. This keeps the check consistent between the
> normal teardown path and the memory hotplug error paths.
>
> Suggested-by: David Hildenbrand (Arm) <david@kernel.org>
> Signed-off-by: Muchun Song <songmuchun@bytedance.com>
looks good to me.
Reviewed-by: Donet Tom <donettom@linux.ibm.com>
-Donet
> ---
> mm/memory_hotplug.c | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 462d8dcd636d..af5489f03771 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1403,6 +1403,12 @@ bool mhp_supports_memmap_on_memory(void)
> }
> EXPORT_SYMBOL_GPL(mhp_supports_memmap_on_memory);
>
> +static void altmap_free(struct vmem_altmap *altmap)
> +{
> + WARN_ONCE(altmap->alloc, "Altmap not fully unmapped");
> + kfree(altmap);
> +}
> +
> static void remove_memory_blocks_and_altmaps(u64 start, u64 size)
> {
> unsigned long memblock_size = memory_block_size_bytes();
> @@ -1427,12 +1433,8 @@ static void remove_memory_blocks_and_altmaps(u64 start, u64 size)
> put_device(&mem->dev);
>
> remove_memory_block_devices(cur_start, memblock_size);
> -
> arch_remove_memory(cur_start, memblock_size, altmap, NULL);
> -
> - /* Verify that all vmemmap pages have actually been freed. */
> - WARN(altmap->alloc, "Altmap not fully unmapped");
> - kfree(altmap);
> + altmap_free(altmap);
> }
> }
>
> @@ -1463,7 +1465,7 @@ static int create_altmaps_and_memory_blocks(int nid, struct memory_group *group,
> /* call arch's memory hotadd */
> ret = arch_add_memory(nid, cur_start, memblock_size, ¶ms);
> if (ret < 0) {
> - kfree(params.altmap);
> + altmap_free(params.altmap);
> goto out;
> }
>
> @@ -1472,7 +1474,7 @@ static int create_altmaps_and_memory_blocks(int nid, struct memory_group *group,
> params.altmap, group);
> if (ret) {
> arch_remove_memory(cur_start, memblock_size, params.altmap, NULL);
> - kfree(params.altmap);
> + altmap_free(params.altmap);
> goto out;
> }
> }
>
> base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83
prev parent reply other threads:[~2026-05-11 9:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-11 8:43 [PATCH] mm/memory_hotplug: Factor out altmap freeing checks Muchun Song
2026-05-11 9:00 ` David Hildenbrand (Arm)
2026-05-11 9:02 ` Oscar Salvador
2026-05-11 9:12 ` Donet Tom [this message]
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=67f5b175-7a9e-4693-95ce-84d4b42e6b45@linux.ibm.com \
--to=donettom@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
--cc=songmuchun@bytedance.com \
/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.