Commit 5ab3ee7b authored by Ken Chen's avatar Ken Chen Committed by Linus Torvalds

fix hugetlb page allocation leak

dequeue_huge_page() has a serious memory leak upon hugetlb page
allocation.  The for loop continues on allocating hugetlb pages out of
all allowable zone, where this function is supposedly only dequeue one
and only one pages.

Fixed it by breaking out of the for loop once a hugetlb page is found.
Signed-off-by: default avatarKen Chen <kenchen@google.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent be1ff386
...@@ -84,6 +84,7 @@ static struct page *dequeue_huge_page(struct vm_area_struct *vma, ...@@ -84,6 +84,7 @@ static struct page *dequeue_huge_page(struct vm_area_struct *vma,
list_del(&page->lru); list_del(&page->lru);
free_huge_pages--; free_huge_pages--;
free_huge_pages_node[nid]--; free_huge_pages_node[nid]--;
break;
} }
} }
return page; return page;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment