From: Mike Rapoport <r...@linux.ibm.com>

dummy_numa_init() loops over memblock.memory and passes nid=0 to
numa_add_memblk() which essentially wraps memblock_set_node(). However,
memblock_set_node() can cope with entire memory span itself, so the loop
over memblock.memory regions is redundant.

Replace the loop with a single call to memblock_set_node() to the entire
memory.

Signed-off-by: Mike Rapoport <r...@linux.ibm.com>
---
 arch/arm64/mm/numa.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c
index aafcee3e3f7e..0cbdbcc885fb 100644
--- a/arch/arm64/mm/numa.c
+++ b/arch/arm64/mm/numa.c
@@ -423,19 +423,16 @@ static int __init numa_init(int (*init_func)(void))
  */
 static int __init dummy_numa_init(void)
 {
+       phys_addr_t start = memblock_start_of_DRAM();
+       phys_addr_t end = memblock_end_of_DRAM();
        int ret;
-       struct memblock_region *mblk;
 
        if (numa_off)
                pr_info("NUMA disabled\n"); /* Forced off on command line. */
-       pr_info("Faking a node at [mem %#018Lx-%#018Lx]\n",
-               memblock_start_of_DRAM(), memblock_end_of_DRAM() - 1);
-
-       for_each_memblock(memory, mblk) {
-               ret = numa_add_memblk(0, mblk->base, mblk->base + mblk->size);
-               if (!ret)
-                       continue;
+       pr_info("Faking a node at [mem %#018Lx-%#018Lx]\n", start, end - 1);
 
+       ret = numa_add_memblk(0, start, end);
+       if (ret) {
                pr_err("NUMA init failed\n");
                return ret;
        }
-- 
2.26.2

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to