X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=mm%2Fhugetlb.c;h=06a9bc0a312005d11e844cec3566796939c5f751;hb=b3fe93951b249262799da15d571ea7240f323f6e;hp=c01cb9fedb18f8495c815d4caa380580734e1c8e;hpb=da89486f03ec5996d87b62d1a26c19e9c5cddf12;p=karo-tx-linux.git diff --git a/mm/hugetlb.c b/mm/hugetlb.c index c01cb9fedb18..06a9bc0a3120 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1134,6 +1134,7 @@ static void return_unused_surplus_pages(struct hstate *h, while (nr_pages--) { if (!free_pool_huge_page(h, &node_states[N_MEMORY], 1)) break; + cond_resched_lock(&hugetlb_lock); } } @@ -1509,6 +1510,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))