]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drivers/base/node: fold register_node() into register_one_node()
authorDonet Tom <donettom@linux.ibm.com>
Tue, 14 Oct 2025 15:39:16 +0000 (21:09 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 15 Oct 2025 04:28:53 +0000 (21:28 -0700)
Patch series "drivers/base/node: fold node register and unregister
functions", v2.

The first patch merges register_one_node() and register_node(), leaving a
single register_node() function.

The second patch merges unregister_one_node() and unregister_node(),
leaving a single unregister_node() function.

There are no functional changes in these patches.

This patch (of 2):

register_node() is only called from register_one_node().  This patch folds
register_node() into its only caller and renames register_one_node() to
register_node().

This reduces unnecessary indirection and simplifies the code structure.
No functional changes are introduced.

Link: https://lkml.kernel.org/r/cover.1760097207.git.donettom@linux.ibm.com
Link: https://lkml.kernel.org/r/910853c9dd61f7a2190a56cba101e73e9c6859be.1760097207.git.donettom@linux.ibm.com
Signed-off-by: Donet Tom <donettom@linux.ibm.com>
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Cc: Aboorva Devarajan <aboorvad@linux.ibm.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/powerpc/platforms/pseries/pci_dlpar.c
arch/x86/mm/numa.c
drivers/base/node.c
include/linux/node.h
mm/memory_hotplug.c
mm/mm_init.c

index aeb8633a3d00fa17426a62e65bde59d9fba17335..8c77ec7980de3b9e64fe34045be635f588a8d4a7 100644 (file)
@@ -29,7 +29,7 @@ struct pci_controller *init_phb_dynamic(struct device_node *dn)
        nid = of_node_to_nid(dn);
        if (likely((nid) >= 0)) {
                if (!node_online(nid)) {
-                       if (register_one_node(nid)) {
+                       if (register_node(nid)) {
                                pr_err("PCI: Failed to register node %d\n", nid);
                        } else {
                                update_numa_distance(dn);
index c24890c40138f84a3b900285f7d08d0c1da153cc..7a97327140df89c09b2943336ae6b1978d06c27f 100644 (file)
@@ -262,7 +262,7 @@ void __init init_gi_nodes(void)
         * bringup_nonboot_cpus
         *  cpu_up
         *   __try_online_node
-        *    register_one_node
+        *    register_node
         * because node_subsys is not initialized yet.
         * TODO remove dependency on node_online
         */
@@ -303,7 +303,7 @@ void __init init_cpu_to_node(void)
                 * bringup_nonboot_cpus
                 *  cpu_up
                 *   __try_online_node
-                *    register_one_node
+                *    register_node
                 * because node_subsys is not initialized yet.
                 * TODO remove dependency on node_online
                 */
index 83aeb0518e1daee036a0555311fc1ff2206a40a5..4bcaa8006cd6d54bc4e7282e89faf5e2546d091a 100644 (file)
@@ -676,33 +676,6 @@ static void node_device_release(struct device *dev)
        kfree(to_node(dev));
 }
 
-/*
- * register_node - Setup a sysfs device for a node.
- * @num - Node number to use when creating the device.
- *
- * Initialize and register the node device.
- */
-static int register_node(struct node *node, int num)
-{
-       int error;
-
-       node->dev.id = num;
-       node->dev.bus = &node_subsys;
-       node->dev.release = node_device_release;
-       node->dev.groups = node_dev_groups;
-       error = device_register(&node->dev);
-
-       if (error) {
-               put_device(&node->dev);
-       } else {
-               hugetlb_register_node(node);
-               compaction_register_node(node);
-               reclaim_register_node(node);
-       }
-
-       return error;
-}
-
 /**
  * unregister_node - unregister a node device
  * @node: node going away
@@ -907,7 +880,13 @@ void register_memory_blocks_under_node_hotplug(int nid, unsigned long start_pfn,
 }
 #endif /* CONFIG_MEMORY_HOTPLUG */
 
-int register_one_node(int nid)
+/**
+ * register_node - Initialize and register the node device.
+ * @nid - Node number to use when creating the device.
+ *
+ * Return: 0 on success, -errno otherwise
+ */
+int register_node(int nid)
 {
        int error;
        int cpu;
@@ -918,14 +897,23 @@ int register_one_node(int nid)
                return -ENOMEM;
 
        INIT_LIST_HEAD(&node->access_list);
-       node_devices[nid] = node;
 
-       error = register_node(node_devices[nid], nid);
+       node->dev.id = nid;
+       node->dev.bus = &node_subsys;
+       node->dev.release = node_device_release;
+       node->dev.groups = node_dev_groups;
+
+       error = device_register(&node->dev);
        if (error) {
-               node_devices[nid] = NULL;
+               put_device(&node->dev);
                return error;
        }
 
+       node_devices[nid] = node;
+       hugetlb_register_node(node);
+       compaction_register_node(node);
+       reclaim_register_node(node);
+
        /* link cpu under this node */
        for_each_present_cpu(cpu) {
                if (cpu_to_node(cpu) == nid)
@@ -1018,7 +1006,7 @@ void __init node_dev_init(void)
         * to already created cpu devices.
         */
        for_each_online_node(i) {
-               ret =  register_one_node(i);
+               ret =  register_node(i);
                if (ret)
                        panic("%s() failed to add node: %d\n", __func__, ret);
        }
index 866e3323f1fdc54f265d28c6aad8da3aa4b8aa57..b7028d3ec3b45f43ee30b369b6df09ee6e00dc43 100644 (file)
@@ -176,7 +176,7 @@ static inline int hotplug_node_notifier(notifier_fn_t fn, int pri)
 #ifdef CONFIG_NUMA
 extern void node_dev_init(void);
 /* Core of the node registration - only memory hotplug should use this */
-extern int register_one_node(int nid);
+int register_node(int nid);
 extern void unregister_one_node(int nid);
 extern int register_cpu_under_node(unsigned int cpu, unsigned int nid);
 extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid);
@@ -189,7 +189,7 @@ extern int register_memory_node_under_compute_node(unsigned int mem_nid,
 static inline void node_dev_init(void)
 {
 }
-static inline int register_one_node(int nid)
+static inline int register_node(int nid)
 {
        return 0;
 }
index 0be83039c3b5e0ad36aea86075339b332803ae4f..6c050d867031e84aedb64d1977a157fa7c2cc96f 100644 (file)
@@ -1311,7 +1311,7 @@ static int __try_online_node(int nid, bool set_node_online)
 
        if (set_node_online) {
                node_set_online(nid);
-               ret = register_one_node(nid);
+               ret = register_node(nid);
                BUG_ON(ret);
        }
 out:
@@ -1542,7 +1542,7 @@ int add_memory_resource(int nid, struct resource *res, mhp_t mhp_flags)
                goto error_memblock_remove;
        if (ret) {
                node_set_online(nid);
-               ret = register_one_node(nid);
+               ret = register_node(nid);
                if (WARN_ON(ret)) {
                        node_set_offline(nid);
                        goto error_memblock_remove;
index 3db2dea7db4c57c81f3fc3b71f0867025edda655..d9ef05c4dc5b3bc6e070a1fe6396f45943d41c1e 100644 (file)
@@ -1909,7 +1909,7 @@ void __init free_area_init(unsigned long *max_zone_pfn)
                free_area_init_node(nid);
 
                /*
-                * No sysfs hierarchy will be created via register_one_node()
+                * No sysfs hierarchy will be created via register_node()
                 *for memory-less node because here it's not marked as N_MEMORY
                 *and won't be set online later. The benefit is userspace
                 *program won't be confused by sysfs files/directories of