From: Christoph Lameter V1->V2 use CONFIG_ZONE_DMA_FLAG that was defined in mm/Kconfig. Reduce #ifdef CONFIG_ZONE_DMA This reduces the #ifdefs in the slab allocator by adding a new CONFIG_ZONE_DMA_FLAG in mm/Kconfig. The definitions for the page allocator are already minimal and orthogonal to CONFIG_ZONE_DMA32 and CONFIG_HIGHMEM. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton --- mm/Kconfig | 6 ++++++ mm/slab.c | 22 ++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff -puN mm/Kconfig~optional-zone_dma-in-the-vm-no-gfp_dma-check-in-the-slab-if-no-config_zone_dma-is-set-reduce-config_zone_dma-ifdefs mm/Kconfig --- a/mm/Kconfig~optional-zone_dma-in-the-vm-no-gfp_dma-check-in-the-slab-if-no-config_zone_dma-is-set-reduce-config_zone_dma-ifdefs +++ a/mm/Kconfig @@ -161,3 +161,9 @@ config RESOURCES_64BIT default 64BIT help This option allows memory and IO resources to be 64 bit. + +config ZONE_DMA_FLAG + int + default "0" if !ZONE_DMA + default "1" + diff -puN mm/slab.c~optional-zone_dma-in-the-vm-no-gfp_dma-check-in-the-slab-if-no-config_zone_dma-is-set-reduce-config_zone_dma-ifdefs mm/slab.c --- a/mm/slab.c~optional-zone_dma-in-the-vm-no-gfp_dma-check-in-the-slab-if-no-config_zone_dma-is-set-reduce-config_zone_dma-ifdefs +++ a/mm/slab.c @@ -1455,14 +1455,14 @@ void __init kmem_cache_init(void) ARCH_KMALLOC_FLAGS|SLAB_PANIC, NULL, NULL); } -#ifdef CONFIG_ZONE_DMA - sizes->cs_dmacachep = kmem_cache_create(names->name_dma, + if (CONFIG_ZONE_DMA_FLAG) + sizes->cs_dmacachep = kmem_cache_create( + names->name_dma, sizes->cs_size, ARCH_KMALLOC_MINALIGN, ARCH_KMALLOC_FLAGS|SLAB_CACHE_DMA| SLAB_PANIC, NULL, NULL); -#endif sizes++; names++; } @@ -2295,10 +2295,8 @@ kmem_cache_create (const char *name, siz cachep->slab_size = slab_size; cachep->flags = flags; cachep->gfpflags = 0; -#ifdef CONFIG_ZONE_DMA - if (flags & SLAB_CACHE_DMA) + if (CONFIG_ZONE_DMA_FLAG && (flags & SLAB_CACHE_DMA)) cachep->gfpflags |= GFP_DMA; -#endif cachep->buffer_size = size; if (flags & CFLGS_OFF_SLAB) { @@ -2621,12 +2619,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 + if (CONFIG_ZONE_DMA_FLAG) { + if (flags & SLAB_DMA) + BUG_ON(!(cachep->gfpflags & GFP_DMA)); + else + BUG_ON(cachep->gfpflags & GFP_DMA); + } } static void *slab_get_obj(struct kmem_cache *cachep, struct slab *slabp, _