From: Arjan van de Ven Several of the pte_chain_alloc() allocators that use GFP_ATOMIC have a fallback for failure that sleeps; they thus need to not warn on failure.. Seen during a big fork on a busy system. --- 25-akpm/mm/memory.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN mm/memory.c~pte_chain-nowarns mm/memory.c --- 25/mm/memory.c~pte_chain-nowarns Wed Mar 10 15:07:13 2004 +++ 25-akpm/mm/memory.c Wed Mar 10 15:07:14 2004 @@ -222,7 +222,7 @@ int copy_page_range(struct mm_struct *ds if (is_vm_hugetlb_page(vma)) return copy_hugetlb_page_range(dst, src, vma); - pte_chain = pte_chain_alloc(GFP_ATOMIC); + pte_chain = pte_chain_alloc(GFP_ATOMIC | __GFP_NOWARN); if (!pte_chain) { spin_unlock(&dst->page_table_lock); pte_chain = pte_chain_alloc(GFP_KERNEL); @@ -335,7 +335,7 @@ skip_copy_pte_range: pte_chain); if (pte_chain) goto cont_copy_pte_range_noset; - pte_chain = pte_chain_alloc(GFP_ATOMIC); + pte_chain = pte_chain_alloc(GFP_ATOMIC | __GFP_NOWARN); if (pte_chain) goto cont_copy_pte_range_noset; @@ -1354,7 +1354,7 @@ do_anonymous_page(struct mm_struct *mm, struct pte_chain *pte_chain; int ret; - pte_chain = pte_chain_alloc(GFP_ATOMIC); + pte_chain = pte_chain_alloc(GFP_ATOMIC | __GFP_NOWARN); if (!pte_chain) { pte_unmap(page_table); spin_unlock(&mm->page_table_lock); _