diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 7111f2f5af6..c8eed94343e 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1451,6 +1451,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))