Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0cd5c3c8 authored by Kyle McMartin's avatar Kyle McMartin Committed by Ingo Molnar
Browse files

x86: disable intel_iommu support by default

Due to recurring issues with DMAR support on certain platforms.
There's a number of filesystem corruption incidents reported:

  https://bugzilla.redhat.com/show_bug.cgi?id=479996
  http://bugzilla.kernel.org/show_bug.cgi?id=12578



Provide a Kconfig option to change whether it is enabled by
default.

If disabled, it can still be reenabled by passing intel_iommu=on to the
kernel. Keep the .config option off by default.

Signed-off-by: default avatarKyle McMartin <kyle@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Acked-By: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent b534816b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -937,6 +937,8 @@ and is between 256 and 4096 characters. It is defined in the file


	intel_iommu=	[DMAR] Intel IOMMU driver (DMAR) option
		on
			Enable intel iommu driver.
		off
			Disable intel iommu driver.
		igfx_off [Default Off]
+11 −0
Original line number Diff line number Diff line
@@ -1802,6 +1802,17 @@ config DMAR
	  and include PCI device scope covered by these DMA
	  remapping devices.

config DMAR_DEFAULT_ON
	def_bool n
	prompt "Enable DMA Remapping Devices by default"
	depends on DMAR
	help
	  Selecting this option will enable a DMAR device at boot time if
	  one is found. If this option is not selected, DMAR support can
	  be enabled by passing intel_iommu=on to the kernel. It is
	  recommended you say N here while the DMAR code remains
	  experimental.

config DMAR_GFX_WA
	def_bool y
	prompt "Support for Graphics workaround"
+11 −3
Original line number Diff line number Diff line
@@ -268,7 +268,12 @@ static long list_size;

static void domain_remove_dev_info(struct dmar_domain *domain);

int dmar_disabled;
#ifdef CONFIG_DMAR_DEFAULT_ON
int dmar_disabled = 0;
#else
int dmar_disabled = 1;
#endif /*CONFIG_DMAR_DEFAULT_ON*/

static int __initdata dmar_map_gfx = 1;
static int dmar_forcedac;
static int intel_iommu_strict;
@@ -284,7 +289,10 @@ static int __init intel_iommu_setup(char *str)
	if (!str)
		return -EINVAL;
	while (*str) {
		if (!strncmp(str, "off", 3)) {
		if (!strncmp(str, "on", 2)) {
			dmar_disabled = 0;
			printk(KERN_INFO "Intel-IOMMU: enabled\n");
		} else if (!strncmp(str, "off", 3)) {
			dmar_disabled = 1;
			printk(KERN_INFO "Intel-IOMMU: disabled\n");
		} else if (!strncmp(str, "igfx_off", 8)) {