--- a/mm/hugetlb.c~mm-hugetlb-not-necessary-to-coalesce-regions-recursively +++ a/mm/hugetlb.c @@ -309,8 +309,7 @@ static void coalesce_file_region(struct list_del(&rg->link); kfree(rg); - coalesce_file_region(resv, prg); - return; + rg = prg; } nrg = list_next_entry(rg, link); @@ -320,9 +319,6 @@ static void coalesce_file_region(struct list_del(&rg->link); kfree(rg); - - coalesce_file_region(resv, nrg); - return; } }