Lines Matching refs:memmap
602 static void __kfree_section_memmap(struct page *memmap) in __kfree_section_memmap() argument
604 unsigned long start = (unsigned long)memmap; in __kfree_section_memmap()
605 unsigned long end = (unsigned long)(memmap + PAGES_PER_SECTION); in __kfree_section_memmap()
610 static void free_map_bootmem(struct page *memmap) in free_map_bootmem() argument
612 unsigned long start = (unsigned long)memmap; in free_map_bootmem()
613 unsigned long end = (unsigned long)(memmap + PAGES_PER_SECTION); in free_map_bootmem()
645 static void __kfree_section_memmap(struct page *memmap) in __kfree_section_memmap() argument
647 if (is_vmalloc_addr(memmap)) in __kfree_section_memmap()
648 vfree(memmap); in __kfree_section_memmap()
650 free_pages((unsigned long)memmap, in __kfree_section_memmap()
655 static void free_map_bootmem(struct page *memmap) in free_map_bootmem() argument
659 struct page *page = virt_to_page(memmap); in free_map_bootmem()
697 struct page *memmap; in sparse_add_one_section() local
709 memmap = kmalloc_section_memmap(section_nr, pgdat->node_id); in sparse_add_one_section()
710 if (!memmap) in sparse_add_one_section()
714 __kfree_section_memmap(memmap); in sparse_add_one_section()
726 memset(memmap, 0, sizeof(struct page) * PAGES_PER_SECTION); in sparse_add_one_section()
730 ret = sparse_init_one_section(ms, section_nr, memmap, usemap); in sparse_add_one_section()
736 __kfree_section_memmap(memmap); in sparse_add_one_section()
743 static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages() argument
747 if (!memmap) in clear_hwpoisoned_pages()
751 if (PageHWPoison(&memmap[i])) { in clear_hwpoisoned_pages()
753 ClearPageHWPoison(&memmap[i]); in clear_hwpoisoned_pages()
758 static inline void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages() argument
763 static void free_section_usemap(struct page *memmap, unsigned long *usemap) in free_section_usemap() argument
776 if (memmap) in free_section_usemap()
777 __kfree_section_memmap(memmap); in free_section_usemap()
786 if (memmap) in free_section_usemap()
787 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 + map_offset, in sparse_remove_one_section()
809 free_section_usemap(memmap, usemap); in sparse_remove_one_section()