mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
drivers/base: move memory_block_add_nid() into the caller
Now the node id only needs to be set for early memory, so move memory_block_add_nid() into the caller and rename it into memory_block_add_nid_early(). This allows us to further simplify the code by dropping the 'context' argument to do_register_memory_block_under_node(). Link: https://lkml.kernel.org/r/20250729064637.51662-4-hare@kernel.org Suggested-by: David Hildenbrand <david@redhat.com> Signed-off-by: Hannes Reinecke <hare@kernel.org> Acked-by: David Hildenbrand <david@redhat.com> Acked-by: Oscar Salvador <osalvador@suse.de> Reviewed-by: Donet Tom <donettom@linux.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
b8179af120
commit
0a947c14e4
|
|
@ -769,21 +769,22 @@ static struct zone *early_node_zone_for_memory_block(struct memory_block *mem,
|
|||
|
||||
#ifdef CONFIG_NUMA
|
||||
/**
|
||||
* memory_block_add_nid() - Indicate that system RAM falling into this memory
|
||||
* block device (partially) belongs to the given node.
|
||||
* memory_block_add_nid_early() - Indicate that early system RAM falling into
|
||||
* this memory block device (partially) belongs
|
||||
* to the given node.
|
||||
* @mem: The memory block device.
|
||||
* @nid: The node id.
|
||||
* @context: The memory initialization context.
|
||||
*
|
||||
* Indicate that system RAM falling into this memory block (partially) belongs
|
||||
* to the given node. If the context indicates ("early") that we are adding the
|
||||
* node during node device subsystem initialization, this will also properly
|
||||
* set/adjust mem->zone based on the zone ranges of the given node.
|
||||
* Indicate that early system RAM falling into this memory block (partially)
|
||||
* belongs to the given node. This will also properly set/adjust mem->zone based
|
||||
* on the zone ranges of the given node.
|
||||
*
|
||||
* Memory hotplug handles this on memory block creation, where we can only have
|
||||
* a single nid span a memory block.
|
||||
*/
|
||||
void memory_block_add_nid(struct memory_block *mem, int nid,
|
||||
enum meminit_context context)
|
||||
void memory_block_add_nid_early(struct memory_block *mem, int nid)
|
||||
{
|
||||
if (context == MEMINIT_EARLY && mem->nid != nid) {
|
||||
if (mem->nid != nid) {
|
||||
/*
|
||||
* For early memory we have to determine the zone when setting
|
||||
* the node id and handle multiple nodes spanning a single
|
||||
|
|
@ -797,15 +798,14 @@ void memory_block_add_nid(struct memory_block *mem, int nid,
|
|||
mem->zone = early_node_zone_for_memory_block(mem, nid);
|
||||
else
|
||||
mem->zone = NULL;
|
||||
/*
|
||||
* If this memory block spans multiple nodes, we only indicate
|
||||
* the last processed node. If we span multiple nodes (not applicable
|
||||
* to hotplugged memory), zone == NULL will prohibit memory offlining
|
||||
* and consequently unplug.
|
||||
*/
|
||||
mem->nid = nid;
|
||||
}
|
||||
|
||||
/*
|
||||
* If this memory block spans multiple nodes, we only indicate
|
||||
* the last processed node. If we span multiple nodes (not applicable
|
||||
* to hotplugged memory), zone == NULL will prohibit memory offlining
|
||||
* and consequently unplug.
|
||||
*/
|
||||
mem->nid = nid;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -781,13 +781,10 @@ int unregister_cpu_under_node(unsigned int cpu, unsigned int nid)
|
|||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
static void do_register_memory_block_under_node(int nid,
|
||||
struct memory_block *mem_blk,
|
||||
enum meminit_context context)
|
||||
struct memory_block *mem_blk)
|
||||
{
|
||||
int ret;
|
||||
|
||||
memory_block_add_nid(mem_blk, nid, context);
|
||||
|
||||
ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
|
||||
&mem_blk->dev.kobj,
|
||||
kobject_name(&mem_blk->dev.kobj));
|
||||
|
|
@ -815,7 +812,7 @@ static int register_mem_block_under_node_hotplug(struct memory_block *mem_blk,
|
|||
{
|
||||
int nid = *(int *)arg;
|
||||
|
||||
do_register_memory_block_under_node(nid, mem_blk, MEMINIT_HOTPLUG);
|
||||
do_register_memory_block_under_node(nid, mem_blk);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -855,7 +852,8 @@ static void register_memory_blocks_under_nodes(void)
|
|||
if (!mem)
|
||||
continue;
|
||||
|
||||
do_register_memory_block_under_node(nid, mem, MEMINIT_EARLY);
|
||||
memory_block_add_nid_early(mem, nid);
|
||||
do_register_memory_block_under_node(nid, mem);
|
||||
put_device(&mem->dev);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -202,8 +202,7 @@ static inline unsigned long phys_to_block_id(unsigned long phys)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
void memory_block_add_nid(struct memory_block *mem, int nid,
|
||||
enum meminit_context context);
|
||||
void memory_block_add_nid_early(struct memory_block *mem, int nid);
|
||||
#endif /* CONFIG_NUMA */
|
||||
int memory_block_advise_max_size(unsigned long size);
|
||||
unsigned long memory_block_advised_max_size(void);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user