diff -purN v2.6.12-rc4/mm/mempool.c mempool-rc4/mm/mempool.c --- v2.6.12-rc4/mm/mempool.c 2005-05-09 15:47:01.000000000 -0400 +++ mempool-rc4/mm/mempool.c 2005-05-13 10:04:54.000000000 -0400 @@ -197,7 +197,7 @@ void * mempool_alloc(mempool_t *pool, un { void *element; unsigned long flags; - DEFINE_WAIT(wait); + wait_queue_t wait; int gfp_temp; might_sleep_if(gfp_mask & __GFP_WAIT); @@ -228,6 +228,7 @@ repeat_alloc: /* Now start performing page reclaim */ gfp_temp = gfp_mask; + init_wait(&wait); prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE); smp_mb(); if (!pool->curr_nr)