--- 2.5/mm/slab.c Sun Sep 22 06:25:17 2002 +++ build-2.5/mm/slab.c Thu Sep 26 23:02:40 2002 @@ -1259,6 +1259,13 @@ static inline void kmem_cache_alloc_head(kmem_cache_t *cachep, int flags) { +#if DEBUG + /* check if someone calls us from interrupt with GFP_WAIT set + * With debug disabled, this only happens in kmem_cache_grow, + * to reduce the critical path length. + */ + if (in_interrupt() && (flags & __GFP_WAIT)) + BUG(); if (flags & SLAB_DMA) { if (!(cachep->gfpflags & GFP_DMA)) BUG(); @@ -1266,6 +1273,7 @@ if (cachep->gfpflags & GFP_DMA) BUG(); } +#endif } static inline void * kmem_cache_alloc_one_tail (kmem_cache_t *cachep,