mirror of https://gitee.com/openkylin/linux.git
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: Kyle McMartin <kyle@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-By: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
b534816b55
commit
0cd5c3c80a
|
@ -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
|
intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option
|
||||||
|
on
|
||||||
|
Enable intel iommu driver.
|
||||||
off
|
off
|
||||||
Disable intel iommu driver.
|
Disable intel iommu driver.
|
||||||
igfx_off [Default Off]
|
igfx_off [Default Off]
|
||||||
|
|
|
@ -1802,6 +1802,17 @@ config DMAR
|
||||||
and include PCI device scope covered by these DMA
|
and include PCI device scope covered by these DMA
|
||||||
remapping devices.
|
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
|
config DMAR_GFX_WA
|
||||||
def_bool y
|
def_bool y
|
||||||
prompt "Support for Graphics workaround"
|
prompt "Support for Graphics workaround"
|
||||||
|
|
|
@ -268,7 +268,12 @@ static long list_size;
|
||||||
|
|
||||||
static void domain_remove_dev_info(struct dmar_domain *domain);
|
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 __initdata dmar_map_gfx = 1;
|
||||||
static int dmar_forcedac;
|
static int dmar_forcedac;
|
||||||
static int intel_iommu_strict;
|
static int intel_iommu_strict;
|
||||||
|
@ -284,9 +289,12 @@ static int __init intel_iommu_setup(char *str)
|
||||||
if (!str)
|
if (!str)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
while (*str) {
|
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;
|
dmar_disabled = 1;
|
||||||
printk(KERN_INFO"Intel-IOMMU: disabled\n");
|
printk(KERN_INFO "Intel-IOMMU: disabled\n");
|
||||||
} else if (!strncmp(str, "igfx_off", 8)) {
|
} else if (!strncmp(str, "igfx_off", 8)) {
|
||||||
dmar_map_gfx = 0;
|
dmar_map_gfx = 0;
|
||||||
printk(KERN_INFO
|
printk(KERN_INFO
|
||||||
|
|
Loading…
Reference in New Issue