diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.11-mm4/mm/page_alloc.c linux-2.6.11-mm4+fix-__alloc_pages/mm/page_alloc.c --- linux-2.6.11-mm4/mm/page_alloc.c 2005-03-16 16:07:49.000000000 -0800 +++ linux-2.6.11-mm4+fix-__alloc_pages/mm/page_alloc.c 2005-03-18 14:10:27.433667720 -0800 @@ -957,8 +957,10 @@ rebalance: cond_resched(); /* We now go into synchronous reclaim */ + BUG_ON(p->flags & PF_MEMALLOC); p->flags |= PF_MEMALLOC; reclaim_state.reclaimed_slab = 0; + BUG_ON(p->reclaim_state); p->reclaim_state = &reclaim_state; did_some_progress = try_to_free_pages(zones, gfp_mask, order);