--- 2.2.20aa1/mm/page_alloc.c.~1~ Fri Apr 20 22:31:21 2001 +++ 2.2.20aa1/mm/page_alloc.c Sun Nov 4 01:39:49 2001 @@ -149,7 +149,8 @@ * local since we must deal with fragmentation too and we * can't rely on the nr_local_pages information. */ - if (current->nr_local_pages && !current->allocation_order) + if ((current->nr_local_pages && !current->allocation_order) || + in_interrupt()) goto back_local_freelist; page = mem_map + map_nr;