diff options
Diffstat (limited to 'mm/hugetlb.c')
| -rw-r--r-- | mm/hugetlb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 67f29516662a..508707704d2c 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
| @@ -85,7 +85,7 @@ void free_huge_page(struct page *page) | |||
| 85 | BUG_ON(page_count(page)); | 85 | BUG_ON(page_count(page)); |
| 86 | 86 | ||
| 87 | INIT_LIST_HEAD(&page->lru); | 87 | INIT_LIST_HEAD(&page->lru); |
| 88 | page[1].mapping = NULL; | 88 | page[1].lru.next = NULL; /* reset dtor */ |
| 89 | 89 | ||
| 90 | spin_lock(&hugetlb_lock); | 90 | spin_lock(&hugetlb_lock); |
| 91 | enqueue_huge_page(page); | 91 | enqueue_huge_page(page); |
| @@ -105,7 +105,7 @@ struct page *alloc_huge_page(struct vm_area_struct *vma, unsigned long addr) | |||
| 105 | } | 105 | } |
| 106 | spin_unlock(&hugetlb_lock); | 106 | spin_unlock(&hugetlb_lock); |
| 107 | set_page_count(page, 1); | 107 | set_page_count(page, 1); |
| 108 | page[1].mapping = (void *)free_huge_page; | 108 | page[1].lru.next = (void *)free_huge_page; /* set dtor */ |
| 109 | for (i = 0; i < (HPAGE_SIZE/PAGE_SIZE); ++i) | 109 | for (i = 0; i < (HPAGE_SIZE/PAGE_SIZE); ++i) |
| 110 | clear_user_highpage(&page[i], addr); | 110 | clear_user_highpage(&page[i], addr); |
| 111 | return page; | 111 | return page; |
