Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: loongson64: set nid for reserved memblock region

Commit 61167ad5fecd("mm: pass nid to reserve_bootmem_region()") reveals
that reserved memblock regions have no valid node id set, just set it
right since loongson64 firmware makes it clear in memory layout info.

This works around booting failure on 3A1000+ since commit 61167ad5fecd
("mm: pass nid to reserve_bootmem_region()") under
CONFIG_DEFERRED_STRUCT_PAGE_INIT.

Signed-off-by: Huang Pei <huangpei@loongson.cn>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Huang Pei and committed by
Thomas Bogendoerfer
822df315 c91c6b2f

+5
+3
arch/mips/loongson64/init.c
··· 103 103 if (loongson_sysconf.vgabios_addr) 104 104 memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr), 105 105 SZ_256K); 106 + /* set nid for reserved memory */ 107 + memblock_set_node((u64)node << 44, (u64)(node + 1) << 44, 108 + &memblock.reserved, node); 106 109 } 107 110 108 111 #ifndef CONFIG_NUMA
+2
arch/mips/loongson64/numa.c
··· 132 132 133 133 /* Reserve pfn range 0~node[0]->node_start_pfn */ 134 134 memblock_reserve(0, PAGE_SIZE * start_pfn); 135 + /* set nid for reserved memory on node 0 */ 136 + memblock_set_node(0, 1ULL << 44, &memblock.reserved, 0); 135 137 } 136 138 } 137 139