{
unsigned long mapsize, section_nr, i;
struct mem_section *ms;
- struct page *page, *memmap;
struct mem_section_usage *usage;
+ struct page *page;
+ start_pfn = SECTION_ALIGN_DOWN(start_pfn);
section_nr = pfn_to_section_nr(start_pfn);
ms = __nr_to_section(section_nr);
- memmap = sparse_decode_mem_map(ms->section_mem_map, section_nr);
-
if (!preinited_vmemmap_section(ms))
- register_page_bootmem_memmap(section_nr, memmap,
- PAGES_PER_SECTION);
+ register_page_bootmem_memmap(section_nr, pfn_to_page(start_pfn),
+ PAGES_PER_SECTION);
usage = ms->usage;
page = virt_to_page(usage);