Message ID | 20240122080834.8251-3-huangpei@loongson.cn (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] MIPS: reserve exception vector space ONLY ONCE | expand |
On 1/22/24 11:08 AM, Huang Pei wrote: > Commit 61167ad5fecd("mm: pass nid to reserve_bootmem_region()) reveals You forgot a space before (" and " after reserve_bootmem_region(). :-) > 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 Again, you forgot to close the quote... > CONFIG_DEFERRED_STRUCT_PAGE_INIT. > > Signed-off-by: Huang Pei <huangpei@loongson.cn> > --- > arch/mips/loongson64/init.c | 2 ++ > arch/mips/loongson64/numa.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/arch/mips/loongson64/init.c b/arch/mips/loongson64/init.c > index f25caa6aa9d3..000ba91c0886 100644 > --- a/arch/mips/loongson64/init.c > +++ b/arch/mips/loongson64/init.c > @@ -103,6 +103,8 @@ void __init szmem(unsigned int node) > if (loongson_sysconf.vgabios_addr) > memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr), > SZ_256K); > + /* set nid for reserved memory */ > + memblock_set_node((u64)node << 44, (u64)(node+1) << 44, &memblock.reserved, node); Please add spaces around +, at least for consistency with <<. :-) [...] > diff --git a/arch/mips/loongson64/numa.c b/arch/mips/loongson64/numa.c > index 8f61e93c0c5b..6345e096c532 100644 > --- a/arch/mips/loongson64/numa.c > +++ b/arch/mips/loongson64/numa.c > @@ -132,6 +132,8 @@ static void __init node_mem_init(unsigned int node) > > /* Reserve pfn range 0~node[0]->node_start_pfn */ > memblock_reserve(0, PAGE_SIZE * start_pfn); > + /* set nid for reserved memory on node 0 */ > + memblock_set_node(0, (u64)1 << 44, &memblock.reserved, 1); Could use 1ULL instead of (u64)1... [...] MBR, Sergey
diff --git a/arch/mips/loongson64/init.c b/arch/mips/loongson64/init.c index f25caa6aa9d3..000ba91c0886 100644 --- a/arch/mips/loongson64/init.c +++ b/arch/mips/loongson64/init.c @@ -103,6 +103,8 @@ void __init szmem(unsigned int node) if (loongson_sysconf.vgabios_addr) memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr), SZ_256K); + /* set nid for reserved memory */ + memblock_set_node((u64)node << 44, (u64)(node+1) << 44, &memblock.reserved, node); } #ifndef CONFIG_NUMA diff --git a/arch/mips/loongson64/numa.c b/arch/mips/loongson64/numa.c index 8f61e93c0c5b..6345e096c532 100644 --- a/arch/mips/loongson64/numa.c +++ b/arch/mips/loongson64/numa.c @@ -132,6 +132,8 @@ static void __init node_mem_init(unsigned int node) /* Reserve pfn range 0~node[0]->node_start_pfn */ memblock_reserve(0, PAGE_SIZE * start_pfn); + /* set nid for reserved memory on node 0 */ + memblock_set_node(0, (u64)1 << 44, &memblock.reserved, 1); } }
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> --- arch/mips/loongson64/init.c | 2 ++ arch/mips/loongson64/numa.c | 2 ++ 2 files changed, 4 insertions(+)