From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C09BC7EE30 for ; Wed, 2 Jul 2025 07:39:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4CB0D6B00A9; Wed, 2 Jul 2025 03:39:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 42CDD6B00B4; Wed, 2 Jul 2025 03:39:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2F4D76B00B8; Wed, 2 Jul 2025 03:39:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 19C846B00A9 for ; Wed, 2 Jul 2025 03:39:30 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id CAD675B60C for ; Wed, 2 Jul 2025 07:39:29 +0000 (UTC) X-FDA: 83618524458.06.1DF64E0 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf10.hostedemail.com (Postfix) with ESMTP id 3F5ADC0007 for ; Wed, 2 Jul 2025 07:39:28 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=f+XYsY2Z; spf=pass (imf10.hostedemail.com: domain of hare@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=hare@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751441968; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YhUC35I3H+reEgJYEf3nyg1hPmyG54ErM0KvJu/z0nQ=; b=QK7NWkDowwNWYhUTfhrXt0g25qusZJYG3KxzILBOuJJiiVYPG5D50MWue9GZlj7qL1kgi6 zFkhH621+szx8tUu/2qs7CZer/j2ZwNBFOdt9DKTsz8ieXwL7dsDU1USbFqXQP8oDSoO3Q ZKImnK4Qx7dt6U1DjrXshenK6//v3GU= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=f+XYsY2Z; spf=pass (imf10.hostedemail.com: domain of hare@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=hare@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751441968; a=rsa-sha256; cv=none; b=5sJLZkqxK1XOguDWsxaQSpGQyXelFpbjEXMyTaOHeJLNvmY9b/ltsSpyLXNLHfh5Jfkfgw oKVqFYJW/kx3OTsQR2/hArcK2VbKN+VBUoKy73kV3VKdbAN1y5f2f7YIs8gIkw8Vvdv3or xGwqULpdf+vXLPWB3lnd7BFlz7mxlU4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id D86AB458C6; Wed, 2 Jul 2025 07:39:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A67E5C4CEEE; Wed, 2 Jul 2025 07:39:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751441966; bh=E5aRjYQoY7jWdPJaqPF1Pgo2drpFNzervOkk8Q/H7ZA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f+XYsY2Z/zLuQrhTtugsOin1ZNdQw9Cwmo6S1S5iGuK2LVkKo/emX5VC6v3LrPI2H toTvxng3WzA6oWxdDyl3QKeNto5BseFGbptCROcSS9m3+2fNRK4LPcwzPulKEgS6yT +tDPhqY2P9fhptnZbsMzsVdwFIcAWORFZNhlStz82WuS435nAvsYEbujsCnsHKSyFT xAysTVdcHz9crBYvsnxbm++09TpeWXGtl5nID7PyJ5rarm2YDHQyDId+Ku5typx1Ad inXMscsMcoqfJ1c3Zd3QY6EbQERWACFr8fazTMdBvlWn23dvg53Ve2eSSsrkv8Sum2 LcvQAcRLhOnKA== From: Hannes Reinecke To: David Hildenbrand Cc: Oscar Salvador , linux-mm@kvack.org, Hannes Reinecke Subject: [PATCH 3/3] drivers/base: move memory_block_add_nid() into the caller Date: Wed, 2 Jul 2025 09:39:13 +0200 Message-ID: <20250702073913.58247-4-hare@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250702073913.58247-1-hare@kernel.org> References: <20250702073913.58247-1-hare@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 3F5ADC0007 X-Stat-Signature: 75jaqi39zu3yfae7ogy4mt78sgitckst X-HE-Tag: 1751441968-85659 X-HE-Meta: U2FsdGVkX18SSAifJw2clMZyKcrrwXJ2TQT34qhBxGu6xko9PqxWGTg7K+U/9YDXZ8FZ5Ztjl+UNd3BGRWwVgrZr3aoqL/9ae1YVsaemvHdg8en99YKnf9UbzQOlBOqv0TrupiAhsORgX/+KDvU6qlPSm+ctudXxR4k0W0Zpuv1xjKLojzTVua/LVTE1bk/Bmu+NLkZGKdqpXRdQEUeLSbmXPec91H2Y1Is0b8PNrS+CRngAiEgn6N0PKSbBLx+pq/jz9LayKO34uYp02fph8p9ij3Mg51CTyGx9PfBJ3mHGlu9BkbPwjq4RaGltRpYt0E/y0ThcltKflW1iAqAWmFTxOi54BBMIuhG/yk7CWqGVUlblyS4E7nJ+aA4zMIPIJ6QUlHTriE3yY72peGe6wB00oJxLdrLXCvoTna6DQI4aFx0aoQDdMa6G63uuTxfoYLVp/oHTFK3mHCdxOIbpXbtSUUQIeonkIKuPjeQdFAUKk1ZWzENdqb8PZc9cEDEl5XsvrPnIYqm/L13OejFskEw1sywr+SDNp1LRdHFyMoCuwydXXe3EVHvzn4eptsSqAytdfuhDNvQ/Vmi1nXmLzSC/TY+FqidPJYODdgM2CbCKZfcfCHkepC8gFcfHfRmGmdDwwyyb8lTgURXS+kfySRC3dLxw7q1WmZUsB6JjbhdvcB3XWill1SODr3+gFKoBvpYatyu2ukAkvjwlpDXjwijLESDWVdzq7gQJpfWgfVNGfS7FvL5Gc0ltNWrir6PHopZVupvwf49V77lAJsMFfsl8oXjElKtfLjPHmZU3oxHsDJIf7GNl/+z3CmRAAyfBwPSE9p+z0iobK57KtZNsA+iS9FPjLE8s3ufTjhhc3Ixtm9+HhOqSWEFTyjKr3WoJ0IPdfiU/9teSfDLAoWwjv9bzG7iFtaZXjSgz1pvTuV7pm3FIiWGBHu4rnkieTLzpr41qv2w4HP2pt2Aqn9z sQIUV4Zi Gf9JC2gbEwHIMUEpDGNma7eCSLp1aH07R7VldF07EK2Ms/84= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Now the node id only needs to be set for early memory, so move memory_block_add_nid() into the caller and rename it into memory_block_add_nid_early(). This allows us to further simplify the code by dropping the 'context' argument to do_register_memory_block_under_node(). Suggested-by: David Hildenbrand Signed-off-by: Hannes Reinecke --- drivers/base/memory.c | 21 +++++++++++---------- drivers/base/node.c | 10 ++++------ include/linux/memory.h | 3 +-- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/base/memory.c b/drivers/base/memory.c index d24a90e0ea96..5fb275d7ed7d 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c @@ -782,21 +782,22 @@ static struct zone *early_node_zone_for_memory_block(struct memory_block *mem, #ifdef CONFIG_NUMA /** - * memory_block_add_nid() - Indicate that system RAM falling into this memory - * block device (partially) belongs to the given node. + * memory_block_add_nid_early() - Indicate that early system RAM falling into + * this memory block device (partially) belongs + * to the given node. * @mem: The memory block device. * @nid: The node id. - * @context: The memory initialization context. * - * Indicate that system RAM falling into this memory block (partially) belongs - * to the given node. If the context indicates ("early") that we are adding the - * node during node device subsystem initialization, this will also properly - * set/adjust mem->zone based on the zone ranges of the given node. + * Indicate that early system RAM falling into this memory block (partially) + * belongs to the given node. This will also properly set/adjust mem->zone based + * on the zone ranges of the given node. + * + * Memory hotplug handles this on memory block creation, where we can only have + * a single nid span a memory block. */ -void memory_block_add_nid(struct memory_block *mem, int nid, - enum meminit_context context) +void memory_block_add_nid_early(struct memory_block *mem, int nid) { - if (context == MEMINIT_EARLY && mem->nid != nid) { + if (mem->nid != nid) { /* * For early memory we have to determine the zone when setting * the node id and handle multiple nodes spanning a single diff --git a/drivers/base/node.c b/drivers/base/node.c index c19094481630..8e3225434ae7 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -766,13 +766,10 @@ static int __ref get_nid_for_pfn(unsigned long pfn) } static void do_register_memory_block_under_node(int nid, - struct memory_block *mem_blk, - enum meminit_context context) + struct memory_block *mem_blk) { int ret; - memory_block_add_nid(mem_blk, nid, context); - ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj, &mem_blk->dev.kobj, kobject_name(&mem_blk->dev.kobj)); @@ -824,7 +821,8 @@ static int register_mem_block_under_node_early(struct memory_block *mem_blk, if (page_nid != nid) continue; - do_register_memory_block_under_node(nid, mem_blk, MEMINIT_EARLY); + memory_block_add_nid_early(mem_blk, nid); + do_register_memory_block_under_node(nid, mem_blk); return 0; } /* mem section does not span the specified node */ @@ -840,7 +838,7 @@ static int register_mem_block_under_node_hotplug(struct memory_block *mem_blk, { int nid = *(int *)arg; - do_register_memory_block_under_node(nid, mem_blk, MEMINIT_HOTPLUG); + do_register_memory_block_under_node(nid, mem_blk); return 0; } diff --git a/include/linux/memory.h b/include/linux/memory.h index d7c3a4856031..63f076f2d303 100644 --- a/include/linux/memory.h +++ b/include/linux/memory.h @@ -186,8 +186,7 @@ int walk_dynamic_memory_groups(int nid, walk_memory_groups_func_t func, }) #ifdef CONFIG_NUMA -void memory_block_add_nid(struct memory_block *mem, int nid, - enum meminit_context context); +void memory_block_add_nid_early(struct memory_block *mem, int nid); #endif /* CONFIG_NUMA */ int memory_block_advise_max_size(unsigned long size); unsigned long memory_block_advised_max_size(void); -- 2.43.0