linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] drivers/base/node: fold node register and unregister functions
@ 2025-10-14 15:39 Donet Tom
  2025-10-14 15:39 ` [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node() Donet Tom
  2025-10-14 15:39 ` [PATCH v2 2/2] drivers/base/node: Fold unregister_node() into unregister_one_node() Donet Tom
  0 siblings, 2 replies; 10+ messages in thread
From: Donet Tom @ 2025-10-14 15:39 UTC (permalink / raw)
  To: Andrew Morton, David Hildenbrand, Mike Rapoport, Oscar Salvador
  Cc: Ritesh Harjani, Aboorva Devarajan, linux-mm, linux-kernel,
	Madhavan Srinivasan, linuxppc-dev, Christophe Leroy,
	Peter Zijlstra, Ingo Molnar, x86, Greg Kroah-Hartman, rafael,
	Danilo Krummrich, Dave Jiang, Donet Tom

This change came from the discussion in [1]. It consists of two patches:

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 is no functional change in these patches.

[1] https://lore.kernel.org/all/5512b1b6-31f8-4322-8a5f-add8d1e9b22f@redhat.com/

---
v1 -> v2
- Changed commit description
- Removed extern from the function declarations of register_node() and unregister_node().

v1 - https://lore.kernel.org/all/cover.1758736423.git.donettom@linux.ibm.com/

Donet Tom (2):
  drivers/base/node: Fold register_node() into register_one_node()
  drivers/base/node: Fold unregister_node() into unregister_one_node()

 arch/powerpc/platforms/pseries/pci_dlpar.c |  2 +-
 arch/x86/mm/numa.c                         |  4 +-
 drivers/base/node.c                        | 90 +++++++++-------------
 include/linux/node.h                       | 10 +--
 mm/memory_hotplug.c                        |  8 +-
 mm/mm_init.c                               |  2 +-
 6 files changed, 49 insertions(+), 67 deletions(-)

-- 
2.47.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
  2025-10-14 15:39 [PATCH v2 0/2] drivers/base/node: fold node register and unregister functions Donet Tom
@ 2025-10-14 15:39 ` Donet Tom
  2025-10-15  3:53   ` kernel test robot
                     ` (2 more replies)
  2025-10-14 15:39 ` [PATCH v2 2/2] drivers/base/node: Fold unregister_node() into unregister_one_node() Donet Tom
  1 sibling, 3 replies; 10+ messages in thread
From: Donet Tom @ 2025-10-14 15:39 UTC (permalink / raw)
  To: Andrew Morton, David Hildenbrand, Mike Rapoport, Oscar Salvador
  Cc: Ritesh Harjani, Aboorva Devarajan, linux-mm, linux-kernel,
	Madhavan Srinivasan, linuxppc-dev, Christophe Leroy,
	Peter Zijlstra, Ingo Molnar, x86, Greg Kroah-Hartman, rafael,
	Danilo Krummrich, Dave Jiang, Donet Tom

The function 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.

Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Signed-off-by: Donet Tom <donettom@linux.ibm.com>
---
 arch/powerpc/platforms/pseries/pci_dlpar.c |  2 +-
 arch/x86/mm/numa.c                         |  4 +-
 drivers/base/node.c                        | 52 +++++++++-------------
 include/linux/node.h                       |  4 +-
 mm/memory_hotplug.c                        |  4 +-
 mm/mm_init.c                               |  2 +-
 6 files changed, 28 insertions(+), 40 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c
index aeb8633a3d00..8c77ec7980de 100644
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
@@ -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);
diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
index c24890c40138..7a97327140df 100644
--- a/arch/x86/mm/numa.c
+++ b/arch/x86/mm/numa.c
@@ -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
 		 */
diff --git a/drivers/base/node.c b/drivers/base/node.c
index 83aeb0518e1d..4bcaa8006cd6 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -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);
 	}
diff --git a/include/linux/node.h b/include/linux/node.h
index 866e3323f1fd..b7028d3ec3b4 100644
--- a/include/linux/node.h
+++ b/include/linux/node.h
@@ -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;
 }
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 0be83039c3b5..6c050d867031 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -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;
diff --git a/mm/mm_init.c b/mm/mm_init.c
index 3db2dea7db4c..d9ef05c4dc5b 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -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
-- 
2.47.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 2/2] drivers/base/node: Fold unregister_node() into unregister_one_node()
  2025-10-14 15:39 [PATCH v2 0/2] drivers/base/node: fold node register and unregister functions Donet Tom
  2025-10-14 15:39 ` [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node() Donet Tom
@ 2025-10-14 15:39 ` Donet Tom
  2025-10-15 17:27   ` SeongJae Park
  1 sibling, 1 reply; 10+ messages in thread
From: Donet Tom @ 2025-10-14 15:39 UTC (permalink / raw)
  To: Andrew Morton, David Hildenbrand, Mike Rapoport, Oscar Salvador
  Cc: Ritesh Harjani, Aboorva Devarajan, linux-mm, linux-kernel,
	Madhavan Srinivasan, linuxppc-dev, Christophe Leroy,
	Peter Zijlstra, Ingo Molnar, x86, Greg Kroah-Hartman, rafael,
	Danilo Krummrich, Dave Jiang, Donet Tom

The function unregister_node() is only called from unregister_one_node().
This patch folds unregister_node() into its only caller and renames
unregister_one_node() to unregister_node().

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

Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Signed-off-by: Donet Tom <donettom@linux.ibm.com>
---
 drivers/base/node.c  | 38 +++++++++++++++++---------------------
 include/linux/node.h |  6 ++----
 mm/memory_hotplug.c  |  4 ++--
 3 files changed, 21 insertions(+), 27 deletions(-)

diff --git a/drivers/base/node.c b/drivers/base/node.c
index 4bcaa8006cd6..758b777dec1f 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -676,23 +676,6 @@ static void node_device_release(struct device *dev)
 	kfree(to_node(dev));
 }
 
-/**
- * unregister_node - unregister a node device
- * @node: node going away
- *
- * Unregisters a node device @node.  All the devices on the node must be
- * unregistered before calling this function.
- */
-void unregister_node(struct node *node)
-{
-	hugetlb_unregister_node(node);
-	compaction_unregister_node(node);
-	reclaim_unregister_node(node);
-	node_remove_accesses(node);
-	node_remove_caches(node);
-	device_unregister(&node->dev);
-}
-
 struct node *node_devices[MAX_NUMNODES];
 
 /*
@@ -924,13 +907,26 @@ int register_node(int nid)
 
 	return error;
 }
-
-void unregister_one_node(int nid)
+/**
+ * unregister_node - unregister a node device
+ * @nid: nid of the node going away
+ *
+ * Unregisters the node device at node id  @nid.  All the devices on the
+ * node must be unregistered before calling this function.
+ */
+void unregister_node(int nid)
 {
-	if (!node_devices[nid])
+	struct node *node = node_devices[nid];
+
+	if (!node)
 		return;
 
-	unregister_node(node_devices[nid]);
+	hugetlb_unregister_node(node);
+	compaction_unregister_node(node);
+	reclaim_unregister_node(node);
+	node_remove_accesses(node);
+	node_remove_caches(node);
+	device_unregister(&node->dev);
 	node_devices[nid] = NULL;
 }
 
diff --git a/include/linux/node.h b/include/linux/node.h
index b7028d3ec3b4..0269b064ba65 100644
--- a/include/linux/node.h
+++ b/include/linux/node.h
@@ -132,8 +132,6 @@ static inline void register_memory_blocks_under_nodes(void)
 }
 #endif
 
-extern void unregister_node(struct node *node);
-
 struct node_notify {
 	int nid;
 };
@@ -177,7 +175,7 @@ static inline int hotplug_node_notifier(notifier_fn_t fn, int pri)
 extern void node_dev_init(void);
 /* Core of the node registration - only memory hotplug should use this */
 int register_node(int nid);
-extern void unregister_one_node(int nid);
+void unregister_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);
 extern void unregister_memory_block_under_nodes(struct memory_block *mem_blk);
@@ -193,7 +191,7 @@ static inline int register_node(int nid)
 {
 	return 0;
 }
-static inline int unregister_one_node(int nid)
+static inline int unregister_node(int nid)
 {
 	return 0;
 }
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 6c050d867031..94a8f6e8811a 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1596,7 +1596,7 @@ int add_memory_resource(int nid, struct resource *res, mhp_t mhp_flags)
 error:
 	if (new_node) {
 		node_set_offline(nid);
-		unregister_one_node(nid);
+		unregister_node(nid);
 	}
 error_memblock_remove:
 	if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK))
@@ -2201,7 +2201,7 @@ void try_offline_node(int nid)
 	 * node now.
 	 */
 	node_set_offline(nid);
-	unregister_one_node(nid);
+	unregister_node(nid);
 }
 EXPORT_SYMBOL(try_offline_node);
 
-- 
2.47.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
  2025-10-14 15:39 ` [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node() Donet Tom
@ 2025-10-15  3:53   ` kernel test robot
  2025-10-15 12:27     ` Donet Tom
  2025-10-15 12:36   ` David Hildenbrand
  2025-10-15 17:26   ` SeongJae Park
  2 siblings, 1 reply; 10+ messages in thread
From: kernel test robot @ 2025-10-15  3:53 UTC (permalink / raw)
  To: Donet Tom, Andrew Morton, David Hildenbrand, Mike Rapoport,
	Oscar Salvador
  Cc: oe-kbuild-all, Linux Memory Management List, Ritesh Harjani,
	Aboorva Devarajan, linux-kernel, Madhavan Srinivasan,
	linuxppc-dev, Christophe Leroy, Peter Zijlstra, Ingo Molnar, x86,
	Greg Kroah-Hartman, rafael, Danilo Krummrich, Dave Jiang,
	Donet Tom

Hi Donet,

kernel test robot noticed the following build warnings:

[auto build test WARNING on akpm-mm/mm-everything]
[also build test WARNING on powerpc/fixes linus/master v6.18-rc1 next-20251014]
[cannot apply to driver-core/driver-core-testing driver-core/driver-core-next driver-core/driver-core-linus powerpc/next tip/x86/mm rppt-memblock/for-next rppt-memblock/fixes]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Donet-Tom/drivers-base-node-Fold-register_node-into-register_one_node/20251015-000850
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link:    https://lore.kernel.org/r/910853c9dd61f7a2190a56cba101e73e9c6859be.1760097207.git.donettom%40linux.ibm.com
patch subject: [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
config: s390-randconfig-001-20251015 (https://download.01.org/0day-ci/archive/20251015/202510151130.JYajIJuM-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251015/202510151130.JYajIJuM-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510151130.JYajIJuM-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> Warning: drivers/base/node.c:889 function parameter 'nid' not described in 'register_node'

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
  2025-10-15  3:53   ` kernel test robot
@ 2025-10-15 12:27     ` Donet Tom
  0 siblings, 0 replies; 10+ messages in thread
From: Donet Tom @ 2025-10-15 12:27 UTC (permalink / raw)
  To: kernel test robot, Andrew Morton, David Hildenbrand,
	Mike Rapoport, Oscar Salvador
  Cc: oe-kbuild-all, Linux Memory Management List, Ritesh Harjani,
	Aboorva Devarajan, linux-kernel, Madhavan Srinivasan,
	linuxppc-dev, Christophe Leroy, Peter Zijlstra, Ingo Molnar, x86,
	Greg Kroah-Hartman, rafael, Danilo Krummrich, Dave Jiang


On 10/15/25 9:23 AM, kernel test robot wrote:
> Hi Donet,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on akpm-mm/mm-everything]
> [also build test WARNING on powerpc/fixes linus/master v6.18-rc1 next-20251014]
> [cannot apply to driver-core/driver-core-testing driver-core/driver-core-next driver-core/driver-core-linus powerpc/next tip/x86/mm rppt-memblock/for-next rppt-memblock/fixes]
> [If your patch is applied to the wrong git tree, kindly drop us a note.

This patch is based on the mm-new branch. It is not applying cleanly on 
target branch because the target branches are missing some patches that 
are present in mm-new.

> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url:    https://github.com/intel-lab-lkp/linux/commits/Donet-Tom/drivers-base-node-Fold-register_node-into-register_one_node/20251015-000850
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link:    https://lore.kernel.org/r/910853c9dd61f7a2190a56cba101e73e9c6859be.1760097207.git.donettom%40linux.ibm.com
> patch subject: [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
> config: s390-randconfig-001-20251015 (https://download.01.org/0day-ci/archive/20251015/202510151130.JYajIJuM-lkp@intel.com/config)
> compiler: s390-linux-gcc (GCC) 12.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251015/202510151130.JYajIJuM-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202510151130.JYajIJuM-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
>>> Warning: drivers/base/node.c:889 function parameter 'nid' not described in 'register_node'


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
  2025-10-14 15:39 ` [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node() Donet Tom
  2025-10-15  3:53   ` kernel test robot
@ 2025-10-15 12:36   ` David Hildenbrand
  2025-10-17  5:25     ` Donet Tom
  2025-10-15 17:26   ` SeongJae Park
  2 siblings, 1 reply; 10+ messages in thread
From: David Hildenbrand @ 2025-10-15 12:36 UTC (permalink / raw)
  To: Donet Tom, Andrew Morton, Mike Rapoport, Oscar Salvador
  Cc: Ritesh Harjani, Aboorva Devarajan, linux-mm, linux-kernel,
	Madhavan Srinivasan, linuxppc-dev, Christophe Leroy,
	Peter Zijlstra, Ingo Molnar, x86, Greg Kroah-Hartman, rafael,
	Danilo Krummrich, Dave Jiang

On 14.10.25 17:39, Donet Tom wrote:
> The function 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.
> 
> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Signed-off-by: Donet Tom <donettom@linux.ibm.com>
> ---
[...]

>   /**
>    * 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.
>

I assume that should be "@nid: ..." to silence the warning.

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
  2025-10-14 15:39 ` [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node() Donet Tom
  2025-10-15  3:53   ` kernel test robot
  2025-10-15 12:36   ` David Hildenbrand
@ 2025-10-15 17:26   ` SeongJae Park
  2 siblings, 0 replies; 10+ messages in thread
From: SeongJae Park @ 2025-10-15 17:26 UTC (permalink / raw)
  To: Donet Tom
  Cc: SeongJae Park, Andrew Morton, David Hildenbrand, Mike Rapoport,
	Oscar Salvador, Ritesh Harjani, Aboorva Devarajan, linux-mm,
	linux-kernel, Madhavan Srinivasan, linuxppc-dev,
	Christophe Leroy, Peter Zijlstra, Ingo Molnar, x86,
	Greg Kroah-Hartman, rafael, Danilo Krummrich, Dave Jiang

On Tue, 14 Oct 2025 21:09:16 +0530 Donet Tom <donettom@linux.ibm.com> wrote:

> The function 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.
> 
> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Signed-off-by: Donet Tom <donettom@linux.ibm.com>

Acked-by: SeongJae Park <sj@kernel.org>


Thanks,
SJ

[...]


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/2] drivers/base/node: Fold unregister_node() into unregister_one_node()
  2025-10-14 15:39 ` [PATCH v2 2/2] drivers/base/node: Fold unregister_node() into unregister_one_node() Donet Tom
@ 2025-10-15 17:27   ` SeongJae Park
  2025-10-17  5:17     ` Donet Tom
  0 siblings, 1 reply; 10+ messages in thread
From: SeongJae Park @ 2025-10-15 17:27 UTC (permalink / raw)
  To: Donet Tom
  Cc: SeongJae Park, Andrew Morton, David Hildenbrand, Mike Rapoport,
	Oscar Salvador, Ritesh Harjani, Aboorva Devarajan, linux-mm,
	linux-kernel, Madhavan Srinivasan, linuxppc-dev,
	Christophe Leroy, Peter Zijlstra, Ingo Molnar, x86,
	Greg Kroah-Hartman, rafael, Danilo Krummrich, Dave Jiang

On Tue, 14 Oct 2025 21:09:17 +0530 Donet Tom <donettom@linux.ibm.com> wrote:

> The function unregister_node() is only called from unregister_one_node().
> This patch folds unregister_node() into its only caller and renames
> unregister_one_node() to unregister_node().
> 
> This reduces unnecessary indirection and simplifies the code structure.
> No functional changes are introduced.
> 
> Acked-by: David Hildenbrand <david@redhat.com>
> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Signed-off-by: Donet Tom <donettom@linux.ibm.com>

Acked-by: SeongJae Park <sj@kernel.org>

> ---
>  drivers/base/node.c  | 38 +++++++++++++++++---------------------
>  include/linux/node.h |  6 ++----
>  mm/memory_hotplug.c  |  4 ++--
>  3 files changed, 21 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/base/node.c b/drivers/base/node.c
> index 4bcaa8006cd6..758b777dec1f 100644
> --- a/drivers/base/node.c
> +++ b/drivers/base/node.c
> @@ -676,23 +676,6 @@ static void node_device_release(struct device *dev)
>  	kfree(to_node(dev));
>  }
>  
> -/**
> - * unregister_node - unregister a node device
> - * @node: node going away
> - *
> - * Unregisters a node device @node.  All the devices on the node must be
> - * unregistered before calling this function.
> - */
> -void unregister_node(struct node *node)
> -{
> -	hugetlb_unregister_node(node);
> -	compaction_unregister_node(node);
> -	reclaim_unregister_node(node);
> -	node_remove_accesses(node);
> -	node_remove_caches(node);
> -	device_unregister(&node->dev);
> -}
> -
>  struct node *node_devices[MAX_NUMNODES];
>  
>  /*
> @@ -924,13 +907,26 @@ int register_node(int nid)
>  
>  	return error;
>  }
> -
> -void unregister_one_node(int nid)
> +/**
> + * unregister_node - unregister a node device
> + * @nid: nid of the node going away
> + *
> + * Unregisters the node device at node id  @nid.  All the devices on the

Nit.  Why two spaces before "@nid"?

[...]


Thanks,
SJ


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/2] drivers/base/node: Fold unregister_node() into unregister_one_node()
  2025-10-15 17:27   ` SeongJae Park
@ 2025-10-17  5:17     ` Donet Tom
  0 siblings, 0 replies; 10+ messages in thread
From: Donet Tom @ 2025-10-17  5:17 UTC (permalink / raw)
  To: SeongJae Park
  Cc: Andrew Morton, David Hildenbrand, Mike Rapoport, Oscar Salvador,
	Ritesh Harjani, Aboorva Devarajan, linux-mm, linux-kernel,
	Madhavan Srinivasan, linuxppc-dev, Christophe Leroy,
	Peter Zijlstra, Ingo Molnar, x86, Greg Kroah-Hartman, rafael,
	Danilo Krummrich, Dave Jiang

[-- Attachment #1: Type: text/plain, Size: 3459 bytes --]


On 10/15/25 10:57 PM, SeongJae Park wrote:
> On Tue, 14 Oct 2025 21:09:17 +0530 Donet Tom<donettom@linux.ibm.com> wrote:
>
>> The function unregister_node() is only called from unregister_one_node().
>> This patch folds unregister_node() into its only caller and renames
>> unregister_one_node() to unregister_node().
>>
>> This reduces unnecessary indirection and simplifies the code structure.
>> No functional changes are introduced.
>>
>> Acked-by: David Hildenbrand<david@redhat.com>
>> Acked-by: Mike Rapoport (Microsoft)<rppt@kernel.org>
>> Signed-off-by: Donet Tom<donettom@linux.ibm.com>
> Acked-by: SeongJae Park<sj@kernel.org>
>
>> ---
>>   drivers/base/node.c  | 38 +++++++++++++++++---------------------
>>   include/linux/node.h |  6 ++----
>>   mm/memory_hotplug.c  |  4 ++--
>>   3 files changed, 21 insertions(+), 27 deletions(-)
>>
>> diff --git a/drivers/base/node.c b/drivers/base/node.c
>> index 4bcaa8006cd6..758b777dec1f 100644
>> --- a/drivers/base/node.c
>> +++ b/drivers/base/node.c
>> @@ -676,23 +676,6 @@ static void node_device_release(struct device *dev)
>>   	kfree(to_node(dev));
>>   }
>>   
>> -/**
>> - * unregister_node - unregister a node device
>> - * @node: node going away
>> - *
>> - * Unregisters a node device @node.  All the devices on the node must be
>> - * unregistered before calling this function.
>> - */
>> -void unregister_node(struct node *node)
>> -{
>> -	hugetlb_unregister_node(node);
>> -	compaction_unregister_node(node);
>> -	reclaim_unregister_node(node);
>> -	node_remove_accesses(node);
>> -	node_remove_caches(node);
>> -	device_unregister(&node->dev);
>> -}
>> -
>>   struct node *node_devices[MAX_NUMNODES];
>>   
>>   /*
>> @@ -924,13 +907,26 @@ int register_node(int nid)
>>   
>>   	return error;
>>   }
>> -
>> -void unregister_one_node(int nid)
>> +/**
>> + * unregister_node - unregister a node device
>> + * @nid: nid of the node going away
>> + *
>> + * Unregisters the node device at node id  @nid.  All the devices on the
> Nit.  Why two spaces before "@nid"?

Thank you for pointing this out.

Andrew could you please help apply the below fixlet on top of this patch?

 From 0d0345847ad33607c7ebae3798ef37ff16a20fd0 Mon Sep 17 00:00:00 2001
From: Donet Tom<donettom@linux.ibm.com>                                        
Date: Fri, 17 Oct 2025 10:27:54 +0530
Subject: [PATCH] [fixlet] drivers/base/node: Remove extra space in description
                                                                                 
This patch removes an extra space before @nid and "All".
                                                                                 
Signed-off-by: Donet Tom<donettom@linux.ibm.com>                               
---
  drivers/base/node.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
                                                                                 
diff --git a/drivers/base/node.c b/drivers/base/node.c
index 63b223a3b38e..00cf4532f121 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -911,7 +911,7 @@ int register_node(int nid)
   * unregister_node - unregister a node device
   * @nid: nid of the node going away
   *
- * Unregisters the node device at node id  @nid.  All the devices on the
+ * Unregisters the node device at node id @nid. All the devices on the
   * node must be unregistered before calling this function.
   */
  void unregister_node(int nid)
--
2.51.0


>
> [...]
>
>
> Thanks,
> SJ

[-- Attachment #2: Type: text/html, Size: 6686 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node()
  2025-10-15 12:36   ` David Hildenbrand
@ 2025-10-17  5:25     ` Donet Tom
  0 siblings, 0 replies; 10+ messages in thread
From: Donet Tom @ 2025-10-17  5:25 UTC (permalink / raw)
  To: David Hildenbrand, Andrew Morton, Mike Rapoport, Oscar Salvador
  Cc: Ritesh Harjani, Aboorva Devarajan, linux-mm, linux-kernel,
	Madhavan Srinivasan, linuxppc-dev, Christophe Leroy,
	Peter Zijlstra, Ingo Molnar, x86, Greg Kroah-Hartman, rafael,
	Danilo Krummrich, Dave Jiang


On 10/15/25 6:06 PM, David Hildenbrand wrote:
> On 14.10.25 17:39, Donet Tom wrote:
>> The function 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.
>>
>> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
>> Signed-off-by: Donet Tom <donettom@linux.ibm.com>
>> ---
> [...]
>
>>   /**
>>    * 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.
>>
>
> I assume that should be "@nid: ..." to silence the warning.
>
>

Thank you, David, for pointing this out. Andrew has already applied the fix.

>
> Acked-by: David Hildenbrand <david@redhat.com>
>


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-10-17  5:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-14 15:39 [PATCH v2 0/2] drivers/base/node: fold node register and unregister functions Donet Tom
2025-10-14 15:39 ` [PATCH v2 1/2] drivers/base/node: Fold register_node() into register_one_node() Donet Tom
2025-10-15  3:53   ` kernel test robot
2025-10-15 12:27     ` Donet Tom
2025-10-15 12:36   ` David Hildenbrand
2025-10-17  5:25     ` Donet Tom
2025-10-15 17:26   ` SeongJae Park
2025-10-14 15:39 ` [PATCH v2 2/2] drivers/base/node: Fold unregister_node() into unregister_one_node() Donet Tom
2025-10-15 17:27   ` SeongJae Park
2025-10-17  5:17     ` Donet Tom

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox