No GFP_DMA check in the slab if no CONFIG_ZONE_DMA is set The GFP_DMA check in the slab is not necessary if there is no ZONE_DMA available. The SCSI layer still sets GFP_DMA just in case which may cause the BUG_ON to fire. Signed-off-by: Christoph Lameter Index: linux-2.6.19-rc1-mm1/mm/slab.c =================================================================== --- linux-2.6.19-rc1-mm1.orig/mm/slab.c 2006-10-16 03:42:42.000000000 -0500 +++ linux-2.6.19-rc1-mm1/mm/slab.c 2006-10-16 18:47:43.900899030 -0500 @@ -2624,10 +2624,12 @@ static void cache_init_objs(struct kmem_ static void kmem_flagcheck(struct kmem_cache *cachep, gfp_t flags) { +#ifdef CONFIG_ZONE_DMA if (flags & SLAB_DMA) BUG_ON(!(cachep->gfpflags & GFP_DMA)); else BUG_ON(cachep->gfpflags & GFP_DMA); +#endif } static void *slab_get_obj(struct kmem_cache *cachep, struct slab *slabp,