diff options
| -rw-r--r-- | Documentation/kernel-parameters.txt | 2 | ||||
| -rw-r--r-- | arch/x86/Kconfig | 11 | ||||
| -rw-r--r-- | drivers/pci/intel-iommu.c | 14 |
3 files changed, 24 insertions, 3 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index d8362cf9909e..b182626739ea 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -937,6 +937,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 937 | 937 | ||
| 938 | 938 | ||
| 939 | intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option | 939 | intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option |
| 940 | on | ||
| 941 | Enable intel iommu driver. | ||
| 940 | off | 942 | off |
| 941 | Disable intel iommu driver. | 943 | Disable intel iommu driver. |
| 942 | igfx_off [Default Off] | 944 | igfx_off [Default Off] |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 73f7fe8fd4d1..9c39095b33fc 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -1802,6 +1802,17 @@ config DMAR | |||
| 1802 | and include PCI device scope covered by these DMA | 1802 | and include PCI device scope covered by these DMA |
| 1803 | remapping devices. | 1803 | remapping devices. |
| 1804 | 1804 | ||
| 1805 | config DMAR_DEFAULT_ON | ||
| 1806 | def_bool n | ||
| 1807 | prompt "Enable DMA Remapping Devices by default" | ||
| 1808 | depends on DMAR | ||
| 1809 | help | ||
| 1810 | Selecting this option will enable a DMAR device at boot time if | ||
| 1811 | one is found. If this option is not selected, DMAR support can | ||
| 1812 | be enabled by passing intel_iommu=on to the kernel. It is | ||
| 1813 | recommended you say N here while the DMAR code remains | ||
| 1814 | experimental. | ||
| 1815 | |||
| 1805 | config DMAR_GFX_WA | 1816 | config DMAR_GFX_WA |
| 1806 | def_bool y | 1817 | def_bool y |
| 1807 | prompt "Support for Graphics workaround" | 1818 | prompt "Support for Graphics workaround" |
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index 3dfecb20d5e7..f4b7c79023ff 100644 --- a/drivers/pci/intel-iommu.c +++ b/drivers/pci/intel-iommu.c | |||
| @@ -268,7 +268,12 @@ static long list_size; | |||
| 268 | 268 | ||
| 269 | static void domain_remove_dev_info(struct dmar_domain *domain); | 269 | static void domain_remove_dev_info(struct dmar_domain *domain); |
| 270 | 270 | ||
| 271 | int dmar_disabled; | 271 | #ifdef CONFIG_DMAR_DEFAULT_ON |
| 272 | int dmar_disabled = 0; | ||
| 273 | #else | ||
| 274 | int dmar_disabled = 1; | ||
| 275 | #endif /*CONFIG_DMAR_DEFAULT_ON*/ | ||
| 276 | |||
| 272 | static int __initdata dmar_map_gfx = 1; | 277 | static int __initdata dmar_map_gfx = 1; |
| 273 | static int dmar_forcedac; | 278 | static int dmar_forcedac; |
| 274 | static int intel_iommu_strict; | 279 | static int intel_iommu_strict; |
| @@ -284,9 +289,12 @@ static int __init intel_iommu_setup(char *str) | |||
| 284 | if (!str) | 289 | if (!str) |
| 285 | return -EINVAL; | 290 | return -EINVAL; |
| 286 | while (*str) { | 291 | while (*str) { |
| 287 | if (!strncmp(str, "off", 3)) { | 292 | if (!strncmp(str, "on", 2)) { |
| 293 | dmar_disabled = 0; | ||
| 294 | printk(KERN_INFO "Intel-IOMMU: enabled\n"); | ||
| 295 | } else if (!strncmp(str, "off", 3)) { | ||
| 288 | dmar_disabled = 1; | 296 | dmar_disabled = 1; |
| 289 | printk(KERN_INFO"Intel-IOMMU: disabled\n"); | 297 | printk(KERN_INFO "Intel-IOMMU: disabled\n"); |
| 290 | } else if (!strncmp(str, "igfx_off", 8)) { | 298 | } else if (!strncmp(str, "igfx_off", 8)) { |
| 291 | dmar_map_gfx = 0; | 299 | dmar_map_gfx = 0; |
| 292 | printk(KERN_INFO | 300 | printk(KERN_INFO |
