From: Oscar Salvador <osalvador@suse.de>
To: Muchun Song <songmuchun@bytedance.com>
Cc: David Hildenbrand <david@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Danilo Krummrich <dakr@kernel.org>,
muchun.song@linux.dev, Ying Huang <huang.ying.caritas@gmail.com>,
Dan Williams <djbw@kernel.org>,
Vishal Verma <vishal.l.verma@intel.com>,
Miaohe Lin <linmiaohe@huawei.com>,
Naoya Horiguchi <nao.horiguchi@gmail.com>,
linux-mm@kvack.org, linux-cxl@vger.kernel.org,
driver-core@lists.linux.dev, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH 1/2] mm/memory_hotplug: fix memory block reference leak on remove
Date: Mon, 27 Apr 2026 09:49:03 +0200 [thread overview]
Message-ID: <ae8U73RyTE2a6bdp@localhost.localdomain> (raw)
In-Reply-To: <20260426144447.817722-1-songmuchun@bytedance.com>
On Sun, Apr 26, 2026 at 10:44:46PM +0800, Muchun Song wrote:
> remove_memory_blocks_and_altmaps() looks up each memory block with
> find_memory_block(), which acquires a reference to the memory block
> device.
>
> That reference is never dropped on this path, resulting in a leaked
> device reference when removing memory blocks and their altmaps. Drop
> the reference after retrieving mem->altmap and clearing mem->altmap,
> before removing the memory block device.
>
> Fixes: 6b8f0798b85a ("mm/memory_hotplug: split memmap_on_memory requests across memblocks")
> Cc: stable@vger.kernel.org
> Signed-off-by: Muchun Song <songmuchun@bytedance.com>
The change looks good but some comments below:
Acked-by: Oscar Salvador <osalvador@suse.de>
The outcome of leaking the reference is that the final call to put_device()
in device_unregister() leaves the memory block device linked in the
system under /sys/ ? (besides not deleting the struct I guess)
> ---
> mm/memory_hotplug.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 2a943ec57c85..4426abb05655 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1422,6 +1422,7 @@ static void remove_memory_blocks_and_altmaps(u64 start, u64 size)
>
> altmap = mem->altmap;
> mem->altmap = NULL;
> + put_device(&mem->dev);
1) Six months from now we might not remember why we need to call
put_device() here.
I would put a comment like remove_memory_block has:
"/* drop the ref. we got via find_memory_block() */" or something like
that.
2) I kind of dislike having an internal put_device() lingering here in
memory-hotplug code, it feels like it does not really belong here.
Ideally we should have a high-level function in drivers/base/memory.c
that calls put_device itself.
Something like "put_memblock_dev", dunno, names are hard.
--
Oscar Salvador
SUSE Labs
next prev parent reply other threads:[~2026-04-27 7:49 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-26 14:44 [PATCH 1/2] mm/memory_hotplug: fix memory block reference leak on remove Muchun Song
2026-04-26 14:44 ` [PATCH 2/2] drivers/base/memory: fix memory block reference leak in poison accounting Muchun Song
2026-04-27 9:13 ` Miaohe Lin
2026-04-27 9:16 ` Muchun Song
2026-04-27 9:28 ` David Hildenbrand (Arm)
2026-04-27 7:49 ` Oscar Salvador [this message]
2026-04-27 8:02 ` [PATCH 1/2] mm/memory_hotplug: fix memory block reference leak on remove Muchun Song
2026-04-27 8:13 ` Oscar Salvador
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=ae8U73RyTE2a6bdp@localhost.localdomain \
--to=osalvador@suse.de \
--cc=akpm@linux-foundation.org \
--cc=dakr@kernel.org \
--cc=david@kernel.org \
--cc=djbw@kernel.org \
--cc=driver-core@lists.linux.dev \
--cc=gregkh@linuxfoundation.org \
--cc=huang.ying.caritas@gmail.com \
--cc=linmiaohe@huawei.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=muchun.song@linux.dev \
--cc=nao.horiguchi@gmail.com \
--cc=rafael@kernel.org \
--cc=songmuchun@bytedance.com \
--cc=stable@vger.kernel.org \
--cc=vishal.l.verma@intel.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.