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

MIPS: Loongson64: Clean up numa.c

(1) Replace nid_to_addroffset() with nid_to_addrbase() and then remove the
related useless code.

(2) Since end_pfn = start_pfn + node_psize, use "node_psize" instead of
"end_pfn - start_pfn" to avoid the redundant calculation.

(3) After commit 6fbde6b492df ("MIPS: Loongson64: Move files to the
top-level directory"), CONFIG_ZONE_DMA32 is always set for Loongson64
due to MACH_LOONGSON64 selects ZONE_DMA32, so no need to use ifdef any
more, just remove it.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Tiezhu Yang and committed by
Thomas Bogendoerfer
73826d60 1062fc45

+4 -31
+1 -5
arch/mips/include/asm/mach-loongson64/mmzone.h
··· 11 11 12 12 #include <boot_param.h> 13 13 #define NODE_ADDRSPACE_SHIFT 44 14 - #define NODE0_ADDRSPACE_OFFSET 0x000000000000UL 15 - #define NODE1_ADDRSPACE_OFFSET 0x100000000000UL 16 - #define NODE2_ADDRSPACE_OFFSET 0x200000000000UL 17 - #define NODE3_ADDRSPACE_OFFSET 0x300000000000UL 18 14 19 15 #define pa_to_nid(addr) (((addr) & 0xf00000000000) >> NODE_ADDRSPACE_SHIFT) 20 - #define nid_to_addrbase(nid) ((nid) << NODE_ADDRSPACE_SHIFT) 16 + #define nid_to_addrbase(nid) ((unsigned long)(nid) << NODE_ADDRSPACE_SHIFT) 21 17 22 18 extern struct pglist_data *__node_data[]; 23 19
+3 -26
arch/mips/loongson64/numa.c
··· 98 98 } 99 99 } 100 100 101 - static unsigned long nid_to_addroffset(unsigned int nid) 102 - { 103 - unsigned long result; 104 - switch (nid) { 105 - case 0: 106 - default: 107 - result = NODE0_ADDRSPACE_OFFSET; 108 - break; 109 - case 1: 110 - result = NODE1_ADDRSPACE_OFFSET; 111 - break; 112 - case 2: 113 - result = NODE2_ADDRSPACE_OFFSET; 114 - break; 115 - case 3: 116 - result = NODE3_ADDRSPACE_OFFSET; 117 - break; 118 - } 119 - return result; 120 - } 121 - 122 101 static void __init szmem(unsigned int node) 123 102 { 124 103 u32 i, mem_type; ··· 125 146 pr_info(" start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n", 126 147 start_pfn, end_pfn, num_physpages); 127 148 memblock_add_node(PFN_PHYS(start_pfn), 128 - PFN_PHYS(end_pfn - start_pfn), node); 149 + PFN_PHYS(node_psize), node); 129 150 break; 130 151 case SYSTEM_RAM_HIGH: 131 152 start_pfn = ((node_id << 44) + mem_start) >> PAGE_SHIFT; ··· 137 158 pr_info(" start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n", 138 159 start_pfn, end_pfn, num_physpages); 139 160 memblock_add_node(PFN_PHYS(start_pfn), 140 - PFN_PHYS(end_pfn - start_pfn), node); 161 + PFN_PHYS(node_psize), node); 141 162 break; 142 163 case SYSTEM_RAM_RESERVED: 143 164 pr_info("Node%d: mem_type:%d, mem_start:0x%llx, mem_size:0x%llx MB\n", ··· 154 175 unsigned long node_addrspace_offset; 155 176 unsigned long start_pfn, end_pfn; 156 177 157 - node_addrspace_offset = nid_to_addroffset(node); 178 + node_addrspace_offset = nid_to_addrbase(node); 158 179 pr_info("Node%d's addrspace_offset is 0x%lx\n", 159 180 node, node_addrspace_offset); 160 181 ··· 221 242 unsigned long zones_size[MAX_NR_ZONES] = {0, }; 222 243 223 244 pagetable_init(); 224 - #ifdef CONFIG_ZONE_DMA32 225 245 zones_size[ZONE_DMA32] = MAX_DMA32_PFN; 226 - #endif 227 246 zones_size[ZONE_NORMAL] = max_low_pfn; 228 247 free_area_init(zones_size); 229 248 }