Commit 369a9d8523dc7317eccb64b7aee6e9641d84cc8b

Authored by Jiang Liu
Committed by Linus Torvalds
1 parent 7d2c774708

mm/ppc: prepare for removing num_physpages and simplify mem_init()

Prepare for removing num_physpages and simplify mem_init().

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 12 additions and 44 deletions Side-by-side Diff

arch/powerpc/mm/mem.c
... ... @@ -299,47 +299,28 @@
299 299  
300 300 void __init mem_init(void)
301 301 {
302   -#ifdef CONFIG_NEED_MULTIPLE_NODES
303   - int nid;
304   -#endif
305   - pg_data_t *pgdat;
306   - unsigned long i;
307   - struct page *page;
308   - unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize;
309   -
310 302 #ifdef CONFIG_SWIOTLB
311 303 swiotlb_init(0);
312 304 #endif
313 305  
314   - num_physpages = memblock_phys_mem_size() >> PAGE_SHIFT;
315 306 high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
316 307  
317 308 #ifdef CONFIG_NEED_MULTIPLE_NODES
318   - for_each_online_node(nid) {
319   - if (NODE_DATA(nid)->node_spanned_pages != 0) {
320   - printk("freeing bootmem node %d\n", nid);
321   - free_all_bootmem_node(NODE_DATA(nid));
322   - }
  309 + {
  310 + pg_data_t *pgdat;
  311 +
  312 + for_each_online_pgdat(pgdat)
  313 + if (pgdat->node_spanned_pages != 0) {
  314 + printk("freeing bootmem node %d\n",
  315 + pgdat->node_id);
  316 + free_all_bootmem_node(pgdat);
  317 + }
323 318 }
324 319 #else
325 320 max_mapnr = max_pfn;
326 321 free_all_bootmem();
327 322 #endif
328   - for_each_online_pgdat(pgdat) {
329   - for (i = 0; i < pgdat->node_spanned_pages; i++) {
330   - if (!pfn_valid(pgdat->node_start_pfn + i))
331   - continue;
332   - page = pgdat_page_nr(pgdat, i);
333   - if (PageReserved(page))
334   - reservedpages++;
335   - }
336   - }
337 323  
338   - codesize = (unsigned long)&_sdata - (unsigned long)&_stext;
339   - datasize = (unsigned long)&_edata - (unsigned long)&_sdata;
340   - initsize = (unsigned long)&__init_end - (unsigned long)&__init_begin;
341   - bsssize = (unsigned long)&__bss_stop - (unsigned long)&__bss_start;
342   -
343 324 #ifdef CONFIG_HIGHMEM
344 325 {
345 326 unsigned long pfn, highmem_mapnr;
346 327  
... ... @@ -348,13 +329,9 @@
348 329 for (pfn = highmem_mapnr; pfn < max_mapnr; ++pfn) {
349 330 phys_addr_t paddr = (phys_addr_t)pfn << PAGE_SHIFT;
350 331 struct page *page = pfn_to_page(pfn);
351   - if (memblock_is_reserved(paddr))
352   - continue;
353   - free_highmem_page(page);
354   - reservedpages--;
  332 + if (!memblock_is_reserved(paddr))
  333 + free_highmem_page(page);
355 334 }
356   - printk(KERN_DEBUG "High memory: %luk\n",
357   - totalhigh_pages << (PAGE_SHIFT-10));
358 335 }
359 336 #endif /* CONFIG_HIGHMEM */
360 337  
... ... @@ -367,16 +344,7 @@
367 344 (mfspr(SPRN_TLB1CFG) & TLBnCFG_N_ENTRY) - 1;
368 345 #endif
369 346  
370   - printk(KERN_INFO "Memory: %luk/%luk available (%luk kernel code, "
371   - "%luk reserved, %luk data, %luk bss, %luk init)\n",
372   - nr_free_pages() << (PAGE_SHIFT-10),
373   - num_physpages << (PAGE_SHIFT-10),
374   - codesize >> 10,
375   - reservedpages << (PAGE_SHIFT-10),
376   - datasize >> 10,
377   - bsssize >> 10,
378   - initsize >> 10);
379   -
  347 + mem_init_print_info(NULL);
380 348 #ifdef CONFIG_PPC32
381 349 pr_info("Kernel virtual memory layout:\n");
382 350 pr_info(" * 0x%08lx..0x%08lx : fixmap\n", FIXADDR_START, FIXADDR_TOP);