Lines Matching refs:pfn
581 void __meminit __init_single_page(struct page *page, unsigned long pfn, in __init_single_page() argument
585 set_page_links(page, zone, nid, pfn); in __init_single_page()
595 set_page_address(page, __va(pfn << PAGE_SHIFT)); in __init_single_page()
616 static int __meminit __early_pfn_to_nid(unsigned long pfn, in __early_pfn_to_nid() argument
622 if (state->last_start <= pfn && pfn < state->last_end) in __early_pfn_to_nid()
625 nid = memblock_search_pfn_nid(pfn, &start_pfn, &end_pfn); in __early_pfn_to_nid()
635 int __meminit early_pfn_to_nid(unsigned long pfn) in early_pfn_to_nid() argument
641 nid = __early_pfn_to_nid(pfn, &early_pfnnid_cache); in early_pfn_to_nid()
672 void __meminit __init_page_from_nid(unsigned long pfn, int nid) in __init_page_from_nid() argument
682 if (zone_spans_pfn(zone, pfn)) in __init_page_from_nid()
685 __init_single_page(pfn_to_page(pfn), pfn, zid, nid); in __init_page_from_nid()
687 if (pageblock_aligned(pfn)) in __init_page_from_nid()
688 init_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE, in __init_page_from_nid()
699 static inline bool __meminit early_page_initialised(unsigned long pfn, int nid) in early_page_initialised() argument
701 if (node_online(nid) && pfn >= NODE_DATA(nid)->first_deferred_pfn) in early_page_initialised()
712 defer_init(int nid, unsigned long pfn, unsigned long end_pfn) in defer_init() argument
741 (pfn & (PAGES_PER_SECTION - 1)) == 0) { in defer_init()
742 NODE_DATA(nid)->first_deferred_pfn = pfn; in defer_init()
748 static void __meminit __init_deferred_page(unsigned long pfn, int nid) in __init_deferred_page() argument
750 if (early_page_initialised(pfn, nid)) in __init_deferred_page()
753 __init_page_from_nid(pfn, nid); in __init_deferred_page()
758 static inline bool early_page_initialised(unsigned long pfn, int nid) in early_page_initialised() argument
763 static inline bool defer_init(int nid, unsigned long pfn, unsigned long end_pfn) in defer_init() argument
768 static inline void __init_deferred_page(unsigned long pfn, int nid) in __init_deferred_page() argument
773 void __meminit init_deferred_page(unsigned long pfn, int nid) in init_deferred_page() argument
775 __init_deferred_page(pfn, nid); in init_deferred_page()
787 unsigned long pfn; in reserve_bootmem_region() local
789 for_each_valid_pfn(pfn, PFN_DOWN(start), PFN_UP(end)) { in reserve_bootmem_region()
790 struct page *page = pfn_to_page(pfn); in reserve_bootmem_region()
792 __init_deferred_page(pfn, nid); in reserve_bootmem_region()
805 overlap_memmap_init(unsigned long zone, unsigned long *pfn) in overlap_memmap_init() argument
810 if (!r || *pfn >= memblock_region_memory_end_pfn(r)) { in overlap_memmap_init()
812 if (*pfn < memblock_region_memory_end_pfn(r)) in overlap_memmap_init()
816 if (*pfn >= memblock_region_memory_base_pfn(r) && in overlap_memmap_init()
818 *pfn = memblock_region_memory_end_pfn(r); in overlap_memmap_init()
852 unsigned long pfn; in init_unavailable_range() local
855 for_each_valid_pfn(pfn, spfn, epfn) { in init_unavailable_range()
856 __init_single_page(pfn_to_page(pfn), pfn, zone, node); in init_unavailable_range()
857 __SetPageReserved(pfn_to_page(pfn)); in init_unavailable_range()
881 unsigned long pfn, end_pfn = start_pfn + size; in memmap_init_range() local
905 for (pfn = start_pfn; pfn < end_pfn; ) { in memmap_init_range()
911 if (overlap_memmap_init(zone, &pfn)) in memmap_init_range()
913 if (defer_init(nid, pfn, zone_end_pfn)) { in memmap_init_range()
919 page = pfn_to_page(pfn); in memmap_init_range()
920 __init_single_page(page, pfn, zone, nid); in memmap_init_range()
935 if (pageblock_aligned(pfn)) { in memmap_init_range()
940 pfn++; in memmap_init_range()
1007 static void __ref __init_zone_device_page(struct page *page, unsigned long pfn, in __init_zone_device_page() argument
1012 __init_single_page(page, pfn, zone_idx, nid); in __init_zone_device_page()
1041 if (pageblock_aligned(pfn)) { in __init_zone_device_page()
1091 unsigned long pfn, end_pfn = head_pfn + nr_pages; in memmap_init_compound() local
1101 for (pfn = head_pfn + 1; pfn < end_pfn; pfn++) { in memmap_init_compound()
1102 struct page *page = pfn_to_page(pfn); in memmap_init_compound()
1104 __init_zone_device_page(page, pfn, zone_idx, nid, pgmap); in memmap_init_compound()
1105 prep_compound_tail(head, pfn - head_pfn); in memmap_init_compound()
1116 unsigned long pfn, end_pfn = start_pfn + nr_pages; in memmap_init_zone_device() local
1137 for (pfn = start_pfn; pfn < end_pfn; pfn += pfns_per_compound) { in memmap_init_zone_device()
1138 struct page *page = pfn_to_page(pfn); in memmap_init_zone_device()
1140 __init_zone_device_page(page, pfn, zone_idx, nid, pgmap); in memmap_init_zone_device()
1145 memmap_init_compound(page, pfn, zone_idx, nid, pgmap, in memmap_init_zone_device()
1988 static void __init deferred_free_pages(unsigned long pfn, in deferred_free_pages() argument
1997 page = pfn_to_page(pfn); in deferred_free_pages()
2000 if (nr_pages == MAX_ORDER_NR_PAGES && IS_MAX_ORDER_ALIGNED(pfn)) { in deferred_free_pages()
2009 accept_memory(PFN_PHYS(pfn), nr_pages * PAGE_SIZE); in deferred_free_pages()
2011 for (i = 0; i < nr_pages; i++, page++, pfn++) { in deferred_free_pages()
2012 if (pageblock_aligned(pfn)) in deferred_free_pages()
2035 unsigned long pfn, unsigned long end_pfn) in deferred_init_pages() argument
2038 unsigned long nr_pages = end_pfn - pfn; in deferred_init_pages()
2040 struct page *page = pfn_to_page(pfn); in deferred_init_pages()
2042 for (; pfn < end_pfn; pfn++, page++) in deferred_init_pages()
2043 __init_single_page(page, pfn, zid, nid); in deferred_init_pages()
2483 void __init memblock_free_pages(struct page *page, unsigned long pfn, in memblock_free_pages() argument
2487 int nid = early_pfn_to_nid(pfn); in memblock_free_pages()
2489 if (!early_page_initialised(pfn, nid)) in memblock_free_pages()