diff options
Diffstat (limited to 'mm/hugetlb_vmemmap.c')
| -rw-r--r-- | mm/hugetlb_vmemmap.c | 18 | 
1 files changed, 8 insertions, 10 deletions
diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c index a559037cce00..27f001e0f0a2 100644 --- a/mm/hugetlb_vmemmap.c +++ b/mm/hugetlb_vmemmap.c @@ -264,7 +264,7 @@ static void vmemmap_remap_pte(pte_t *pte, unsigned long addr,   * How many struct page structs need to be reset. When we reuse the head   * struct page, the special metadata (e.g. page->flags or page->mapping)   * cannot copy to the tail struct page structs. The invalid value will be - * checked in the free_tail_pages_check(). In order to avoid the message + * checked in the free_tail_page_prepare(). In order to avoid the message   * of "corrupted mapping in tail page". We need to reset at least 3 (one   * head struct page struct and two tail struct page structs) struct page   * structs. @@ -400,7 +400,7 @@ static int alloc_vmemmap_page_list(unsigned long start, unsigned long end,  	return 0;  out:  	list_for_each_entry_safe(page, next, list, lru) -		__free_pages(page, 0); +		__free_page(page);  	return -ENOMEM;  } @@ -590,17 +590,15 @@ static struct ctl_table hugetlb_vmemmap_sysctls[] = {  static int __init hugetlb_vmemmap_init(void)  { +	const struct hstate *h; +  	/* HUGETLB_VMEMMAP_RESERVE_SIZE should cover all used struct pages */  	BUILD_BUG_ON(__NR_USED_SUBPAGE * sizeof(struct page) > HUGETLB_VMEMMAP_RESERVE_SIZE); -	if (IS_ENABLED(CONFIG_PROC_SYSCTL)) { -		const struct hstate *h; - -		for_each_hstate(h) { -			if (hugetlb_vmemmap_optimizable(h)) { -				register_sysctl_init("vm", hugetlb_vmemmap_sysctls); -				break; -			} +	for_each_hstate(h) { +		if (hugetlb_vmemmap_optimizable(h)) { +			register_sysctl_init("vm", hugetlb_vmemmap_sysctls); +			break;  		}  	}  	return 0;  |