Lines Matching refs:memmap
603 static void __kfree_section_memmap(struct page *memmap) in __kfree_section_memmap() argument
605 unsigned long start = (unsigned long)memmap; in __kfree_section_memmap()
606 unsigned long end = (unsigned long)(memmap + PAGES_PER_SECTION); in __kfree_section_memmap()
611 static void free_map_bootmem(struct page *memmap) in free_map_bootmem() argument
613 unsigned long start = (unsigned long)memmap; in free_map_bootmem()
614 unsigned long end = (unsigned long)(memmap + PAGES_PER_SECTION); in free_map_bootmem()
646 static void __kfree_section_memmap(struct page *memmap) in __kfree_section_memmap() argument
648 if (is_vmalloc_addr(memmap)) in __kfree_section_memmap()
649 vfree(memmap); in __kfree_section_memmap()
651 free_pages((unsigned long)memmap, in __kfree_section_memmap()
656 static void free_map_bootmem(struct page *memmap) in free_map_bootmem() argument
660 struct page *page = virt_to_page(memmap); in free_map_bootmem()
698 struct page *memmap; in sparse_add_one_section() local
710 memmap = kmalloc_section_memmap(section_nr, pgdat->node_id); in sparse_add_one_section()
711 if (!memmap) in sparse_add_one_section()
715 __kfree_section_memmap(memmap); in sparse_add_one_section()
727 memset(memmap, 0, sizeof(struct page) * PAGES_PER_SECTION); in sparse_add_one_section()
731 ret = sparse_init_one_section(ms, section_nr, memmap, usemap); in sparse_add_one_section()
737 __kfree_section_memmap(memmap); in sparse_add_one_section()
744 static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages() argument
748 if (!memmap) in clear_hwpoisoned_pages()
752 if (PageHWPoison(&memmap[i])) { in clear_hwpoisoned_pages()
754 ClearPageHWPoison(&memmap[i]); in clear_hwpoisoned_pages()
759 static inline void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages() argument
764 static void free_section_usemap(struct page *memmap, unsigned long *usemap) in free_section_usemap() argument
777 if (memmap) in free_section_usemap()
778 __kfree_section_memmap(memmap); in free_section_usemap()
787 if (memmap) in free_section_usemap()
788 free_map_bootmem(memmap); in free_section_usemap()
793 struct page *memmap = NULL; in sparse_remove_one_section() local
800 memmap = sparse_decode_mem_map(ms->section_mem_map, in sparse_remove_one_section()
807 clear_hwpoisoned_pages(memmap, PAGES_PER_SECTION); in sparse_remove_one_section()
808 free_section_usemap(memmap, usemap); in sparse_remove_one_section()