aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2013-10-04 17:37:56 -0400
committerIngo Molnar <mingo@kernel.org>2013-10-06 05:47:04 -0400
commit38901f1c1cae241fd4e3c5e63fcc690b921734b1 (patch)
tree68d33f6ead8f10132292d6ee4f7f2daffa41915a
parente62063d69911886a5a92c719d262a2a87e1e5b60 (diff)
x86/iommu: Don't make AMD_GART depend on EXPERT and default y
The AMD_GART driver was made EXPERT/EMBEDDED a long time ago to avoid unbootable 64bit systems with 32bit only devices. This was before swiotlb was there, which does the job of this fallback today. SWIOTLB is always on, so systems should always boot. The drawback is that every system has to compile that driver in (it cannot be a module). Also: - Newer AMD CPUs (the APUs) don't seem to have AMD_GART support at all anymore. - Newer AMD platforms have a much better real IOMMU - The AMD GART driver was never very good (lots of overhead, e.g. in flushing due to some workarounds) and it's doubtful it's really better than SWIOTLB. - On older K8 systems it didn't even work with all chipsets. - The 32bit device bounce buffer case should be rare/ non performance critical these days anyways. - On non AMD systems it is not needed at all. So drop the EXPERT dependency on AMD_GART and remove the default y. The driver can be still compiled in, just it's an explicit decision now, and people who don't want it can unselect it. I also clarified the description a bit. This allows to save ~8K text on most modern x86-64 systems. Signed-off-by: Andi Kleen <ak@linux.intel.com> Acked-by: Borislav Petkov <bp@suse.de> Link: http://lkml.kernel.org/r/1380922676-23007-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/x86/Kconfig9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index ee2fb9d37745..c9d2b81ea310 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -756,17 +756,16 @@ config DMI
756 BIOS code. 756 BIOS code.
757 757
758config GART_IOMMU 758config GART_IOMMU
759 bool "GART IOMMU support" if EXPERT 759 bool "Old AMD GART IOMMU support"
760 default y
761 select SWIOTLB 760 select SWIOTLB
762 depends on X86_64 && PCI && AMD_NB 761 depends on X86_64 && PCI && AMD_NB
763 ---help--- 762 ---help---
764 Support for full DMA access of devices with 32bit memory access only 763 Support for full DMA access of devices with 32bit memory access only
765 on systems with more than 3GB. This is usually needed for USB, 764 on systems with more than 3GB. This is usually needed for USB,
766 sound, many IDE/SATA chipsets and some other devices. 765 sound, many IDE/SATA chipsets and some other devices.
767 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART 766 Provides a driver for the older AMD Athlon64/Opteron/Turion/Sempron GART
768 based hardware IOMMU and a software bounce buffer based IOMMU used 767 based hardware IOMMU.
769 on Intel systems and as fallback. 768 Newer systems typically have a better AMD IOMMU.
770 The code is only active when needed (enough memory and limited 769 The code is only active when needed (enough memory and limited
771 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified 770 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
772 too. 771 too.