Commit eb8762dc authored by Donet Tom's avatar Donet Tom Committed by Andrew Morton
Browse files

drivers/base/node: fold register_node() into register_one_node()

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.

[akpm@linux-foundation.org: fix kerneldoc, per David]
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: default avatarDonet Tom <donettom@linux.ibm.com>
Acked-by: default avatarMike Rapoport (Microsoft) <rppt@kernel.org>
Acked-by: default avatarSeongJae Park <sj@kernel.org>
Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
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: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 900fcf00
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+2 −2
Original line number Diff line number Diff line
@@ -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
		 */
+20 −32
Original line number Diff line number Diff line
@@ -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);
	}
+2 −2
Original line number Diff line number Diff line
@@ -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;
}
+2 −2
Original line number Diff line number Diff line
@@ -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;
Loading