summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonet Tom <donettom@linux.ibm.com>2025-08-22 11:48:45 +0300
committerAndrew Morton <akpm@linux-foundation.org>2025-09-14 02:55:17 +0300
commit786eb990cfb78aab94eb74fb32a030e14723a620 (patch)
tree0f9210da38995eaa0018100568c123adfac54618
parent3615e106e0f7099af5ac8a2d4338b34b7a2dbae1 (diff)
downloadlinux-786eb990cfb78aab94eb74fb32a030e14723a620.tar.xz
drivers/base/node: handle error properly in register_one_node()
If register_node() returns an error, it is not handled correctly. The function will proceed further and try to register CPUs under the node, which is not correct. So, in this patch, if register_node() returns an error, we return immediately from the function. Link: https://lkml.kernel.org/r/20250822084845.19219-1-donettom@linux.ibm.com Fixes: 76b67ed9dce6 ("[PATCH] node hotplug: register cpu: remove node struct") Signed-off-by: Donet Tom <donettom@linux.ibm.com> Acked-by: David Hildenbrand <david@redhat.com> Cc: Alison Schofield <alison.schofield@intel.com> Cc: Danilo Krummrich <dakr@kernel.org> Cc: Dave Jiang <dave.jiang@intel.com> Cc: Donet Tom <donettom@linux.ibm.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Hiroyouki Kamezawa <kamezawa.hiroyu@jp.fujitsu.com> Cc: Joanthan Cameron <Jonathan.Cameron@huawei.com> Cc: Oscar Salvador <osalvador@suse.de> Cc: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com> Cc: Yury Norov (NVIDIA) <yury.norov@gmail.com> Cc: Zi Yan <ziy@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--drivers/base/node.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/base/node.c b/drivers/base/node.c
index 3399594136b2..45d512939c40 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -885,6 +885,11 @@ int register_one_node(int nid)
node_devices[nid] = node;
error = register_node(node_devices[nid], nid);
+ if (error) {
+ node_devices[nid] = NULL;
+ kfree(node);
+ return error;
+ }
/* link cpu under this node */
for_each_present_cpu(cpu) {