diff options
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r-- | mm/hugetlb.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 12908dcf5831..06ae13e869d0 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -1001,7 +1001,7 @@ static int hstate_next_node_to_free(struct hstate *h, nodemask_t *nodes_allowed) | |||
1001 | ((node = hstate_next_node_to_free(hs, mask)) || 1); \ | 1001 | ((node = hstate_next_node_to_free(hs, mask)) || 1); \ |
1002 | nr_nodes--) | 1002 | nr_nodes--) |
1003 | 1003 | ||
1004 | #if defined(CONFIG_CMA) && defined(CONFIG_X86_64) | 1004 | #if defined(CONFIG_X86_64) && ((defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || defined(CONFIG_CMA)) |
1005 | static void destroy_compound_gigantic_page(struct page *page, | 1005 | static void destroy_compound_gigantic_page(struct page *page, |
1006 | unsigned int order) | 1006 | unsigned int order) |
1007 | { | 1007 | { |
@@ -1214,8 +1214,8 @@ void free_huge_page(struct page *page) | |||
1214 | 1214 | ||
1215 | set_page_private(page, 0); | 1215 | set_page_private(page, 0); |
1216 | page->mapping = NULL; | 1216 | page->mapping = NULL; |
1217 | BUG_ON(page_count(page)); | 1217 | VM_BUG_ON_PAGE(page_count(page), page); |
1218 | BUG_ON(page_mapcount(page)); | 1218 | VM_BUG_ON_PAGE(page_mapcount(page), page); |
1219 | restore_reserve = PagePrivate(page); | 1219 | restore_reserve = PagePrivate(page); |
1220 | ClearPagePrivate(page); | 1220 | ClearPagePrivate(page); |
1221 | 1221 | ||
@@ -1286,6 +1286,7 @@ static void prep_compound_gigantic_page(struct page *page, unsigned int order) | |||
1286 | set_page_count(p, 0); | 1286 | set_page_count(p, 0); |
1287 | set_compound_head(p, page); | 1287 | set_compound_head(p, page); |
1288 | } | 1288 | } |
1289 | atomic_set(compound_mapcount_ptr(page), -1); | ||
1289 | } | 1290 | } |
1290 | 1291 | ||
1291 | /* | 1292 | /* |