<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">This fixes oracle-bug 12375075.

diff -up a/mm/hugetlb.c.orig b/mm/hugetlb.c
--- a/mm/hugetlb.c.orig	2011-09-01 09:59:19.683846528 +0800
+++ b/mm/hugetlb.c	2011-09-01 10:00:00.977283135 +0800
@@ -263,7 +263,7 @@ static unsigned long set_max_huge_pages(
 		return nr_huge_pages;
 
 	spin_lock(&amp;hugetlb_lock);
-	count = max(count, resv_huge_pages);
+	count = max(count, nr_huge_pages - free_huge_pages + resv_huge_pages);
 	try_to_free_low(count);
 	while (count &lt; nr_huge_pages) {
 		struct page *page = dequeue_huge_page(NULL, 0);
</pre></body></html>