swiotlb: move the SWIOTLB config symbol to lib/Kconfig
authorChristoph Hellwig <hch@lst.de>
Tue, 24 Apr 2018 07:00:54 +0000 (09:00 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 9 May 2018 04:58:01 +0000 (06:58 +0200)
This way we have one central definition of it, and user can select it as
needed.  The new option is not user visible, which is the behavior
it had in most architectures, with a few notable exceptions:

 - On x86_64 and mips/loongson3 it used to be user selectable, but
   defaulted to y.  It now is unconditional, which seems like the right
   thing for 64-bit architectures without guaranteed availablity of
   IOMMUs.
 - on powerpc the symbol is user selectable and defaults to n, but
   many boards select it.  This change assumes no working setup
   required a manual selection, but if that turned out to be wrong
   we'll have to add another select statement or two for the respective
   boards.

Signed-off-by: Christoph Hellwig <hch@lst.de>
arch/arm/Kconfig
arch/arm64/Kconfig
arch/ia64/Kconfig
arch/mips/Kconfig
arch/mips/cavium-octeon/Kconfig
arch/mips/loongson64/Kconfig
arch/powerpc/Kconfig
arch/unicore32/Kconfig
arch/unicore32/mm/Kconfig
arch/x86/Kconfig
lib/Kconfig

index 4a176c369ab71672c74872fb5be6a4626d845f4c..c43f5bb55ac856391f201d500d5f8690b28ea57f 100644 (file)
@@ -1772,9 +1772,6 @@ config SECCOMP
          and the task is only allowed to execute a few safe syscalls
          defined by each seccomp mode.
 
-config SWIOTLB
-       bool
-
 config PARAVIRT
        bool "Enable paravirtualization code"
        help
index 9edcb141bed1a181a29ee5657fc29df4d0754c70..b25ed7834f6c354a5363e5b80e7da05d705d2861 100644 (file)
@@ -143,6 +143,7 @@ config ARM64
        select POWER_SUPPLY
        select REFCOUNT_FULL
        select SPARSE_IRQ
+       select SWIOTLB
        select SYSCTL_EXCEPTION_TRACE
        select THREAD_INFO_IN_TASK
        help
@@ -238,9 +239,6 @@ config HAVE_GENERIC_GUP
 config SMP
        def_bool y
 
-config SWIOTLB
-       def_bool y
-
 config KERNEL_MODE_NEON
        def_bool y
 
index 940326409c60a12a9fe5a896608538cdeee502b2..2067289fad4a3bd3f1a11ccf97681095abd7a3dd 100644 (file)
@@ -79,9 +79,6 @@ config MMU
        bool
        default y
 
-config SWIOTLB
-       bool
-
 config STACKTRACE_SUPPORT
        def_bool y
 
@@ -138,7 +135,6 @@ config IA64_GENERIC
        bool "generic"
        select NUMA
        select ACPI_NUMA
-       select DMA_DIRECT_OPS
        select SWIOTLB
        select PCI_MSI
        help
@@ -159,7 +155,6 @@ config IA64_GENERIC
 
 config IA64_DIG
        bool "DIG-compliant"
-       select DMA_DIRECT_OPS
        select SWIOTLB
 
 config IA64_DIG_VTD
@@ -175,7 +170,6 @@ config IA64_HP_ZX1
 
 config IA64_HP_ZX1_SWIOTLB
        bool "HP-zx1/sx1000 with software I/O TLB"
-       select DMA_DIRECT_OPS
        select SWIOTLB
        help
          Build a kernel that runs on HP zx1 and sx1000 systems even when they
@@ -199,7 +193,6 @@ config IA64_SGI_UV
        bool "SGI-UV"
        select NUMA
        select ACPI_NUMA
-       select DMA_DIRECT_OPS
        select SWIOTLB
        help
          Selecting this option will optimize the kernel for use on UV based
@@ -210,7 +203,6 @@ config IA64_SGI_UV
 
 config IA64_HP_SIM
        bool "Ski-simulator"
-       select DMA_DIRECT_OPS
        select SWIOTLB
        depends on !PM
 
index 82934f27b0d5ef57bc9fcda2f96965ac60ac88e0..2dcdc13cd65dd77274a3c5627fe44d7013cd7c9c 100644 (file)
@@ -911,6 +911,7 @@ config CAVIUM_OCTEON_SOC
        select MIPS_NR_CPU_NR_MAP_1024
        select BUILTIN_DTB
        select MTD_COMPLEX_MAPPINGS
+       select SWIOTLB
        select SYS_SUPPORTS_RELOCATABLE
        help
          This option supports all of the Octeon reference boards from Cavium
@@ -1366,6 +1367,7 @@ config CPU_LOONGSON3
        select MIPS_PGD_C0_CONTEXT
        select MIPS_L1_CACHE_SHIFT_6
        select GPIOLIB
+       select SWIOTLB
        help
                The Loongson 3 processor implements the MIPS64R2 instruction
                set with many extensions.
index eb5faeed4f66dfaab85e12ef3d16337a3a806ccf..4984e462be303cbc34832d91cd96b566a62e57be 100644 (file)
@@ -67,10 +67,6 @@ config CAVIUM_OCTEON_LOCK_L2_MEMCPY
        help
          Lock the kernel's implementation of memcpy() into L2.
 
-config SWIOTLB
-       def_bool y
-       select DMA_DIRECT_OPS
-
 config OCTEON_ILM
        tristate "Module to measure interrupt latency using Octeon CIU Timer"
        help
index 2a4fb91adbb66ef063bf8783499145baee8a960d..c79e6a565572f35668608e877fece23f9f3c0f46 100644 (file)
@@ -130,13 +130,6 @@ config LOONGSON_UART_BASE
        default y
        depends on EARLY_PRINTK || SERIAL_8250
 
-config SWIOTLB
-       bool "Soft IOMMU Support for All-Memory DMA"
-       default y
-       depends on CPU_LOONGSON3
-       select DMA_DIRECT_OPS
-       select NEED_DMA_MAP_STATE
-
 config PHYS48_TO_HT40
        bool
        default y if CPU_LOONGSON3
index e5da6b40d42c59dca3b4ad7780744f600bd7f6ce..268fd46fc3c7b3e7c4aee74f9c5625e391836929 100644 (file)
@@ -473,15 +473,6 @@ config MPROFILE_KERNEL
        depends on PPC64 && CPU_LITTLE_ENDIAN
        def_bool !DISABLE_MPROFILE_KERNEL
 
-config SWIOTLB
-       bool "SWIOTLB support"
-       default n
-       ---help---
-         Support for IO bounce buffering for systems without an IOMMU.
-         This allows us to DMA to the full physical address space on
-         platforms where the size of a physical address is larger
-         than the bus address.  Not all platforms support this.
-
 config HOTPLUG_CPU
        bool "Support for enabling/disabling CPUs"
        depends on SMP && (PPC_PSERIES || \
index 82195714d20b29dfb0729642fb975ee66652f0be..03f991e44288fbb2e9251fadf9c0daa10a328fa9 100644 (file)
@@ -20,6 +20,7 @@ config UNICORE32
        select GENERIC_IOMAP
        select MODULES_USE_ELF_REL
        select NEED_DMA_MAP_STATE
+       select SWIOTLB
        help
          UniCore-32 is 32-bit Instruction Set Architecture,
          including a series of low-power-consumption RISC chip
index 45b7f769375e2476fca590640db09736fc39a1cc..82759b6aba679b6bd0e20ffbf4bf06440c08c241 100644 (file)
@@ -39,7 +39,3 @@ config CPU_TLB_SINGLE_ENTRY_DISABLE
        default y
        help
          Say Y here to disable the TLB single entry operations.
-
-config SWIOTLB
-       def_bool y
-       select DMA_DIRECT_OPS
index 31aad36d7ba98ea060daa28ab7700c5683e40cc6..f2ee6a8ffe657fd63377a85757743cb186f8615b 100644 (file)
@@ -29,6 +29,7 @@ config X86_64
        select HAVE_ARCH_SOFT_DIRTY
        select MODULES_USE_ELF_RELA
        select NEED_DMA_MAP_STATE
+       select SWIOTLB
        select X86_DEV_DMA_OPS
        select ARCH_HAS_SYSCALL_WRAPPER
 
@@ -919,17 +920,6 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
          Calgary anyway, pass 'iommu=calgary' on the kernel command line.
          If unsure, say Y.
 
-# need this always selected by IOMMU for the VIA workaround
-config SWIOTLB
-       def_bool y if X86_64
-       select NEED_DMA_MAP_STATE
-       ---help---
-         Support for software bounce buffers used on x86-64 systems
-         which don't have a hardware IOMMU. Using this PCI devices
-         which can only access 32-bits of memory can be used on systems
-         with more than 3 GB of memory.
-         If unsure, say Y.
-
 config MAXSMP
        bool "Enable Maximum number of SMP Processors and NUMA Nodes"
        depends on X86_64 && SMP && DEBUG_KERNEL
index 1f12faf038192ae6272f4d552105ce12108e1534..1d84e61cccfede0d87bc07ee6579549d3f5eebac 100644 (file)
@@ -451,6 +451,11 @@ config DMA_VIRT_OPS
        depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
        default n
 
+config SWIOTLB
+       bool
+       select DMA_DIRECT_OPS
+       select NEED_DMA_MAP_STATE
+
 config CHECK_SIGNATURE
        bool