diff --git a/[refs] b/[refs] index 9e7cd707278b..7d982d255212 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fe1dcbc4f311c2e6c23b33c0fa8572461618ab3e +refs/heads/master: 64b4a954b03a1153fb8ae38d6ffbd991e01a1e80 diff --git a/trunk/mm/hugetlb.c b/trunk/mm/hugetlb.c index b21d78c941b5..ceb3ebb3c399 100644 --- a/trunk/mm/hugetlb.c +++ b/trunk/mm/hugetlb.c @@ -444,6 +444,15 @@ int hugetlb_no_page(struct mm_struct *mm, struct vm_area_struct *vma, page = alloc_huge_page(vma, address); if (!page) { hugetlb_put_quota(mapping); + /* + * No huge pages available. So this is an OOM + * condition but we do not want to trigger the OOM + * killer, so we return VM_FAULT_SIGBUS. + * + * A program using hugepages may fault with Bus Error + * because no huge pages are available in the cpuset, per + * memory policy or because all are in use! + */ goto out; }