]>
 
 
pilppa.com Git - linux-2.6-omap-h63xx.git/commit 
 
 
 
 
 
 
[PATCH] mm: __GFP_NOFAIL fix 
 
In __alloc_pages(): 
 
if ((p->flags & (PF_MEMALLOC | PF_MEMDIE)) && !in_interrupt()) { 
         /* go through the zonelist yet again, ignoring mins */ 
         for (i = 0; zones[i] != NULL; i++) { 
                 struct zone *z = zones[i]; 
 
                 page = buffered_rmqueue(z, order, gfp_mask); 
                 if (page) { 
                         zone_statistics(zonelist, z); 
                         goto got_pg; 
                 } 
         } 
         goto nopage;                <<<< HERE!!! FAIL... 
} 
 
kswapd (which has PF_MEMALLOC flag) can fail to allocate memory even when 
it allocates it with __GFP_NOFAIL flag. 
 
Signed-Off-By: Pavel Emelianov <xemul@sw.ru>  
Signed-Off-By: Denis Lunev <den@sw.ru>  
Signed-Off-By: Kirill Korotaev <dev@sw.ru>  
Cc: Nick Piggin <nickpiggin@yahoo.com.au>  
Signed-off-by: Andrew Morton <akpm@osdl.org>  
Signed-off-by: Linus Torvalds <torvalds@osdl.org>