diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 27938c441b6feb3ec7751bacc7ce902ab653d63a..dd30f22b35e0c904b0fe9cfd4f550b810e1e7c22 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1536,6 +1536,7 @@ static unsigned long set_max_huge_pages(struct hstate *h, unsigned long count, while (min_count < persistent_huge_pages(h)) { if (!free_pool_huge_page(h, nodes_allowed, 0)) break; + cond_resched_lock(&hugetlb_lock); } while (count < persistent_huge_pages(h)) { if (!adjust_pool_surplus(h, nodes_allowed, 1))