Remove wrong and misleading comments.
Return VM_FAULT_OOM if the hugetlbpage fault handler cannot allocate a
page. do_no_page will end up doing do_exit(SIGKILL).
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
if (!new_page) {
page_cache_release(old_page);
if (!new_page) {
page_cache_release(old_page);
-
- /* Logically this is OOM, not a SIGBUS, but an OOM
- * could cause the kernel to go killing other
- * processes which won't help the hugepage situation
- * at all (?) */
- return VM_FAULT_SIGBUS;
}
spin_unlock(&mm->page_table_lock);
}
spin_unlock(&mm->page_table_lock);
page = alloc_huge_page(vma, address);
if (!page) {
hugetlb_put_quota(mapping);
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!
- */