From: Christoph Lameter This patch simply defines CONFIG_ZONE_DMA for all arches. We later do special things with CONFIG_ZONE_DMA after the VM and an arch are prepared to work without ZONE_DMA. CONFIG_ZONE_DMA can be defined in two ways depending on how an architecture handles ISA DMA. First if CONFIG_GENERIC_ISA_DMA is set by the arch then we know that the arch needs ZONE_DMA because ISA DMA devices are supported. We can catch this in mm/Kconfig and do not need to modify arch code. Second, arches may use ZONE_DMA in an unknown way. We set CONFIG_ZONE_DMA for all arches that do not set CONFIG_GENERIC_ISA_DMA in order to insure backwards compatibility. The arches may later undefine ZONE_DMA if their arch code has been verified to not depend on ZONE_DMA. Signed-off-by: Christoph Lameter Cc: Andi Kleen Cc: "Luck, Tony" Cc: Kyle McMartin Cc: Matthew Wilcox Cc: James Bottomley Cc: Paul Mundt Signed-off-by: Andrew Morton --- arch/cris/Kconfig | 4 ++++ arch/frv/Kconfig | 4 ++++ arch/h8300/Kconfig | 4 ++++ arch/ia64/Kconfig | 4 ++++ arch/m68knommu/Kconfig | 4 ++++ arch/s390/Kconfig | 4 ++++ arch/v850/Kconfig | 3 +++ arch/xtensa/Kconfig | 4 ++++ mm/Kconfig | 4 ++++ 9 files changed, 35 insertions(+) diff -puN arch/cris/Kconfig~introduce-config_zone_dma arch/cris/Kconfig --- a/arch/cris/Kconfig~introduce-config_zone_dma +++ a/arch/cris/Kconfig @@ -9,6 +9,10 @@ config MMU bool default y +config ZONE_DMA + bool + default y + config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/frv/Kconfig~introduce-config_zone_dma arch/frv/Kconfig --- a/arch/frv/Kconfig~introduce-config_zone_dma +++ a/arch/frv/Kconfig @@ -6,6 +6,10 @@ config FRV bool default y +config ZONE_DMA + bool + default y + config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/h8300/Kconfig~introduce-config_zone_dma arch/h8300/Kconfig --- a/arch/h8300/Kconfig~introduce-config_zone_dma +++ a/arch/h8300/Kconfig @@ -17,6 +17,10 @@ config SWAP bool default n +config ZONE_DMA + bool + default y + config FPU bool default n diff -puN arch/ia64/Kconfig~introduce-config_zone_dma arch/ia64/Kconfig --- a/arch/ia64/Kconfig~introduce-config_zone_dma +++ a/arch/ia64/Kconfig @@ -22,6 +22,10 @@ config 64BIT bool default y +config ZONE_DMA + bool + default y + config MMU bool default y diff -puN arch/m68knommu/Kconfig~introduce-config_zone_dma arch/m68knommu/Kconfig --- a/arch/m68knommu/Kconfig~introduce-config_zone_dma +++ a/arch/m68knommu/Kconfig @@ -17,6 +17,10 @@ config FPU bool default n +config ZONE_DMA + bool + default y + config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/s390/Kconfig~introduce-config_zone_dma arch/s390/Kconfig --- a/arch/s390/Kconfig~introduce-config_zone_dma +++ a/arch/s390/Kconfig @@ -7,6 +7,10 @@ config MMU bool default y +config ZONE_DMA + bool + default y + config LOCKDEP_SUPPORT bool default y diff -puN arch/v850/Kconfig~introduce-config_zone_dma arch/v850/Kconfig --- a/arch/v850/Kconfig~introduce-config_zone_dma +++ a/arch/v850/Kconfig @@ -10,6 +10,9 @@ mainmenu "uClinux/v850 (w/o MMU) Kernel config MMU bool default n +config ZONE_DMA + bool + default y config RWSEM_GENERIC_SPINLOCK bool default y diff -puN arch/xtensa/Kconfig~introduce-config_zone_dma arch/xtensa/Kconfig --- a/arch/xtensa/Kconfig~introduce-config_zone_dma +++ a/arch/xtensa/Kconfig @@ -7,6 +7,10 @@ config FRAME_POINTER bool default n +config ZONE_DMA + bool + default y + config XTENSA bool default y diff -puN mm/Kconfig~introduce-config_zone_dma mm/Kconfig --- a/mm/Kconfig~introduce-config_zone_dma +++ a/mm/Kconfig @@ -153,6 +153,10 @@ config SPLIT_PTLOCK_CPUS default "4096" if PARISC && !PA20 default "4" +config ZONE_DMA + def_bool y + depends on GENERIC_ISA_DMA + # # support for page migration # _