Lines Matching refs:pfn
124 unsigned long pfn = page_to_pfn(page);
137 index = pfn - round_down(node_start_pfn(page_to_nid(page)),
198 unsigned long pfn = page_to_pfn(page);
199 struct mem_section *section = __pfn_to_section(pfn);
208 return get_entry(section->page_ext, pfn);
227 static int __meminit init_section_page_ext(unsigned long pfn, int nid)
233 section = __pfn_to_section(pfn);
242 * The value stored in section->page_ext is (base - pfn)
254 * The passed "pfn" may not be aligned to SECTION. For the calculation
257 pfn &= PAGE_SECTION_MASK;
258 section->page_ext = (void *)base - page_ext_size * pfn;
279 static void __free_page_ext(unsigned long pfn)
284 ms = __pfn_to_section(pfn);
287 base = get_entry(ms->page_ext, pfn);
296 unsigned long start, end, pfn;
305 * "start_pfn" passed to us is a pfn which is an arg for
312 for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION)
313 fail = init_section_page_ext(pfn, nid);
318 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
319 __free_page_ext(pfn);
327 unsigned long start, end, pfn;
332 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
333 __free_page_ext(pfn);
371 unsigned long pfn;
385 * scan [start_pfn, the biggest section's pfn < end_pfn) here.
387 for (pfn = start_pfn; pfn < end_pfn;
388 pfn = ALIGN(pfn + 1, PAGES_PER_SECTION)) {
390 if (!pfn_valid(pfn))
395 * -------------pfn-------------->
398 if (pfn_to_nid(pfn) != nid)
400 if (init_section_page_ext(pfn, nid))