* [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