aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kernel-parameters.txt3
-rw-r--r--drivers/pci/intr_remapping.c11
2 files changed, 14 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 33989d284ff0..843cb6646d82 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1533,6 +1533,9 @@ and is between 256 and 4096 characters. It is defined in the file
1533 noinitrd [RAM] Tells the kernel not to load any configured 1533 noinitrd [RAM] Tells the kernel not to load any configured
1534 initial RAM disk. 1534 initial RAM disk.
1535 1535
1536 nointremap [X86-64, Intel-IOMMU] Do not enable interrupt
1537 remapping.
1538
1536 nointroute [IA-64] 1539 nointroute [IA-64]
1537 1540
1538 nojitter [IA64] Disables jitter checking for ITC timers. 1541 nojitter [IA64] Disables jitter checking for ITC timers.
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c
index 5c2142656e96..842039e4955b 100644
--- a/drivers/pci/intr_remapping.c
+++ b/drivers/pci/intr_remapping.c
@@ -15,6 +15,14 @@ static struct ioapic_scope ir_ioapic[MAX_IO_APICS];
15static int ir_ioapic_num; 15static int ir_ioapic_num;
16int intr_remapping_enabled; 16int intr_remapping_enabled;
17 17
18static int disable_intremap;
19static __init int setup_nointremap(char *str)
20{
21 disable_intremap = 1;
22 return 0;
23}
24early_param("nointremap", setup_nointremap);
25
18struct irq_2_iommu { 26struct irq_2_iommu {
19 struct intel_iommu *iommu; 27 struct intel_iommu *iommu;
20 u16 irte_index; 28 u16 irte_index;
@@ -506,6 +514,9 @@ int __init intr_remapping_supported(void)
506{ 514{
507 struct dmar_drhd_unit *drhd; 515 struct dmar_drhd_unit *drhd;
508 516
517 if (disable_intremap)
518 return 0;
519
509 for_each_drhd_unit(drhd) { 520 for_each_drhd_unit(drhd) {
510 struct intel_iommu *iommu = drhd->iommu; 521 struct intel_iommu *iommu = drhd->iommu;
511 522