From 98936d0f67a4f53714a97ce55077257be83c6d7e Mon Sep 17 00:00:00 2001 From: Johannes Weiner Date: Wed, 23 Jul 2008 21:28:09 -0700 Subject: [PATCH] --- yaml --- r: 105334 b: refs/heads/master c: 75a56cfe9fdb064d1db1cfbc564315fddb756fb1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/bootmem.c | 27 ++++++--------------------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/[refs] b/[refs] index 204d64ee99af..197959ad55b3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4cc278b721d5bf3569dfc5f1100253042e097bc3 +refs/heads/master: 75a56cfe9fdb064d1db1cfbc564315fddb756fb1 diff --git a/trunk/mm/bootmem.c b/trunk/mm/bootmem.c index 459da4710b8f..282b786c2b15 100644 --- a/trunk/mm/bootmem.c +++ b/trunk/mm/bootmem.c @@ -632,30 +632,15 @@ void * __init __alloc_bootmem_node(pg_data_t *pgdat, unsigned long size, void * __init alloc_bootmem_section(unsigned long size, unsigned long section_nr) { - void *ptr; - unsigned long limit, goal, start_nr, end_nr, pfn; - struct pglist_data *pgdat; + bootmem_data_t *bdata; + unsigned long pfn, goal, limit; pfn = section_nr_to_pfn(section_nr); - goal = PFN_PHYS(pfn); - limit = PFN_PHYS(section_nr_to_pfn(section_nr + 1)) - 1; - pgdat = NODE_DATA(early_pfn_to_nid(pfn)); - ptr = alloc_bootmem_core(pgdat->bdata, size, SMP_CACHE_BYTES, goal, - limit); - - if (!ptr) - return NULL; - - start_nr = pfn_to_section_nr(PFN_DOWN(__pa(ptr))); - end_nr = pfn_to_section_nr(PFN_DOWN(__pa(ptr) + size)); - if (start_nr != section_nr || end_nr != section_nr) { - printk(KERN_WARNING "alloc_bootmem failed on section %ld.\n", - section_nr); - free_bootmem_node(pgdat, __pa(ptr), size); - ptr = NULL; - } + goal = pfn << PAGE_SHIFT; + limit = section_nr_to_pfn(section_nr + 1) << PAGE_SHIFT; + bdata = &bootmem_node_data[early_pfn_to_nid(pfn)]; - return ptr; + return alloc_bootmem_core(bdata, size, SMP_CACHE_BYTES, goal, limit); } #endif