X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Fhugetlb.c;h=832f676ca038837ab87c7544d4c3344b45cdc264;hb=74ef872c8f250acc02add54ff9d96f31d17bfeb3;hp=ebad6bbb35012570944117a4a495f2f6782e8f12;hpb=1ebbe2b20091d306453a5cf480a87e6cd28ae76f;p=linux-2.6 diff --git a/mm/hugetlb.c b/mm/hugetlb.c index ebad6bbb35..832f676ca0 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -334,6 +334,7 @@ static unsigned long set_max_huge_pages(unsigned long count) return nr_huge_pages; spin_lock(&hugetlb_lock); + count = max(count, reserved_huge_pages); try_to_free_low(count); while (count < nr_huge_pages) { struct page *page = dequeue_huge_page(NULL, 0); @@ -697,9 +698,10 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, pfn_offset = (vaddr & ~HPAGE_MASK) >> PAGE_SHIFT; page = pte_page(*pte); same_page: - get_page(page); - if (pages) + if (pages) { + get_page(page); pages[i] = page + pfn_offset; + } if (vmas) vmas[i] = vma;