Lines Matching refs:page
45 int page_to_nid(const struct page *page) in page_to_nid() argument
47 return section_to_node_table[page_to_section(page)]; in page_to_nid()
209 return nr_pages * sizeof(struct page); in node_memmap_size_bytes()
217 static unsigned long sparse_encode_mem_map(struct page *mem_map, unsigned long pnum) in sparse_encode_mem_map()
225 struct page *sparse_decode_mem_map(unsigned long coded_mem_map, unsigned long pnum) in sparse_decode_mem_map()
229 return ((struct page *)coded_mem_map) + section_nr_to_pfn(pnum); in sparse_decode_mem_map()
233 unsigned long pnum, struct page *mem_map, in sparse_init_one_section()
372 struct page __init *sparse_mem_map_populate(unsigned long pnum, int nid) in sparse_mem_map_populate()
374 struct page *map; in sparse_mem_map_populate()
377 map = alloc_remap(nid, sizeof(struct page) * PAGES_PER_SECTION); in sparse_mem_map_populate()
381 size = PAGE_ALIGN(sizeof(struct page) * PAGES_PER_SECTION); in sparse_mem_map_populate()
387 void __init sparse_mem_maps_populate_node(struct page **map_map, in sparse_mem_maps_populate_node()
394 unsigned long size = sizeof(struct page) * PAGES_PER_SECTION; in sparse_mem_maps_populate_node()
444 struct page **map_map = (struct page **)data; in sparse_early_mem_maps_alloc_node()
449 static struct page __init *sparse_early_mem_map_alloc(unsigned long pnum) in sparse_early_mem_map_alloc()
451 struct page *map; in sparse_early_mem_map_alloc()
526 struct page *map; in sparse_init()
532 struct page **map_map; in sparse_init()
560 size2 = sizeof(struct page *) * NR_MEM_SECTIONS; in sparse_init()
598 static inline struct page *kmalloc_section_memmap(unsigned long pnum, int nid) in kmalloc_section_memmap()
603 static void __kfree_section_memmap(struct page *memmap) in __kfree_section_memmap()
611 static void free_map_bootmem(struct page *memmap) in free_map_bootmem()
620 static struct page *__kmalloc_section_memmap(void) in __kmalloc_section_memmap()
622 struct page *page, *ret; in __kmalloc_section_memmap() local
623 unsigned long memmap_size = sizeof(struct page) * PAGES_PER_SECTION; in __kmalloc_section_memmap()
625 page = alloc_pages(GFP_KERNEL|__GFP_NOWARN, get_order(memmap_size)); in __kmalloc_section_memmap()
626 if (page) in __kmalloc_section_memmap()
635 ret = (struct page *)pfn_to_kaddr(page_to_pfn(page)); in __kmalloc_section_memmap()
641 static inline struct page *kmalloc_section_memmap(unsigned long pnum, int nid) in kmalloc_section_memmap()
646 static void __kfree_section_memmap(struct page *memmap) in __kfree_section_memmap()
652 get_order(sizeof(struct page) * PAGES_PER_SECTION)); in __kfree_section_memmap()
656 static void free_map_bootmem(struct page *memmap) in free_map_bootmem()
660 struct page *page = virt_to_page(memmap); in free_map_bootmem() local
662 nr_pages = PAGE_ALIGN(PAGES_PER_SECTION * sizeof(struct page)) in free_map_bootmem()
665 for (i = 0; i < nr_pages; i++, page++) { in free_map_bootmem()
666 magic = (unsigned long) page->lru.next; in free_map_bootmem()
670 maps_section_nr = pfn_to_section_nr(page_to_pfn(page)); in free_map_bootmem()
671 removing_section_nr = page->private; in free_map_bootmem()
682 put_page_bootmem(page); in free_map_bootmem()
698 struct page *memmap; in sparse_add_one_section()
727 memset(memmap, 0, sizeof(struct page) * PAGES_PER_SECTION); in sparse_add_one_section()
744 static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages()
759 static inline void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages()
764 static void free_section_usemap(struct page *memmap, unsigned long *usemap) in free_section_usemap()
766 struct page *usemap_page; in free_section_usemap()
793 struct page *memmap = NULL; in sparse_remove_one_section()