Lines Matching refs:memmap

571 static void __kfree_section_memmap(struct page *memmap,  in __kfree_section_memmap()  argument
574 unsigned long start = (unsigned long)memmap; in __kfree_section_memmap()
575 unsigned long end = (unsigned long)(memmap + PAGES_PER_SECTION); in __kfree_section_memmap()
580 static void free_map_bootmem(struct page *memmap) in free_map_bootmem() argument
582 unsigned long start = (unsigned long)memmap; in free_map_bootmem()
583 unsigned long end = (unsigned long)(memmap + PAGES_PER_SECTION); in free_map_bootmem()
616 static void __kfree_section_memmap(struct page *memmap, in __kfree_section_memmap() argument
619 if (is_vmalloc_addr(memmap)) in __kfree_section_memmap()
620 vfree(memmap); in __kfree_section_memmap()
622 free_pages((unsigned long)memmap, in __kfree_section_memmap()
627 static void free_map_bootmem(struct page *memmap) in free_map_bootmem() argument
631 struct page *page = virt_to_page(memmap); in free_map_bootmem()
669 struct page *memmap; in sparse_add_one_section() local
682 memmap = kmalloc_section_memmap(section_nr, pgdat->node_id, altmap); in sparse_add_one_section()
683 if (!memmap) in sparse_add_one_section()
687 __kfree_section_memmap(memmap, altmap); in sparse_add_one_section()
704 memset(memmap, PAGE_POISON_PATTERN, sizeof(struct page) * PAGES_PER_SECTION); in sparse_add_one_section()
708 sparse_init_one_section(ms, section_nr, memmap, usemap); in sparse_add_one_section()
714 __kfree_section_memmap(memmap, altmap); in sparse_add_one_section()
721 static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages() argument
725 if (!memmap) in clear_hwpoisoned_pages()
729 if (PageHWPoison(&memmap[i])) { in clear_hwpoisoned_pages()
731 ClearPageHWPoison(&memmap[i]); in clear_hwpoisoned_pages()
736 static inline void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) in clear_hwpoisoned_pages() argument
741 static void free_section_usemap(struct page *memmap, unsigned long *usemap, in free_section_usemap() argument
755 if (memmap) in free_section_usemap()
756 __kfree_section_memmap(memmap, altmap); in free_section_usemap()
765 if (memmap) in free_section_usemap()
766 free_map_bootmem(memmap); in free_section_usemap()
772 struct page *memmap = NULL; in sparse_remove_one_section() local
779 memmap = sparse_decode_mem_map(ms->section_mem_map, in sparse_remove_one_section()
786 clear_hwpoisoned_pages(memmap + map_offset, in sparse_remove_one_section()
788 free_section_usemap(memmap, usemap, altmap); in sparse_remove_one_section()