mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
![]() When hotplugging memory, it is possible that two calls are being made to register_mem_sect_under_node(). One comes from __add_section()->hotplug_memory_register() and the other from add_memory_resource()->link_mem_sections() if we had to register a new node. In case we had to register a new node, hotplug_memory_register() will only handle/allocate the memory_block's since register_mem_sect_under_node() will return right away because the node it is not online yet. I think it is better if we leave hotplug_memory_register() to handle/allocate only memory_block's and make link_mem_sections() to call register_mem_sect_under_node(). So this patch removes the call to register_mem_sect_under_node() from hotplug_memory_register(), and moves the call to link_mem_sections() out of the condition, so it will always be called. In this way we only have one place where the memory sections are registered. Link: http://lkml.kernel.org/r/20180622111839.10071-3-osalvador@techadventures.net Signed-off-by: Oscar Salvador <osalvador@suse.de> Reviewed-by: Pavel Tatashin <pasha.tatashin@oracle.com> Tested-by: Reza Arbab <arbab@linux.vnet.ibm.com> Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Cc: Pasha Tatashin <Pavel.Tatashin@microsoft.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
firmware_loader | ||
power | ||
regmap | ||
test | ||
arch_topology.c | ||
attribute_container.c | ||
base.h | ||
bus.c | ||
cacheinfo.c | ||
class.c | ||
component.c | ||
container.c | ||
core.c | ||
cpu.c | ||
dd.c | ||
devcon.c | ||
devcoredump.c | ||
devres.c | ||
devtmpfs.c | ||
driver.c | ||
firmware.c | ||
hypervisor.c | ||
init.c | ||
isa.c | ||
Kconfig | ||
Makefile | ||
map.c | ||
memory.c | ||
module.c | ||
node.c | ||
pinctrl.c | ||
platform-msi.c | ||
platform.c | ||
property.c | ||
soc.c | ||
syscore.c | ||
topology.c | ||
transport_class.c |