diff options
author | Weidong Han <weidong.han@intel.com> | 2009-04-17 04:42:15 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-19 04:21:54 -0400 |
commit | 03ea81550676296d94596e4337c771c6ba29f542 (patch) | |
tree | 85ac9b9541fca0d5cc74571009af32863ba17185 /drivers/pci | |
parent | 937582382c71b75b29fbb92615629494e1a05ac0 (diff) |
x86, intr-remap: add option to disable interrupt remapping
Add option "nointremap" to disable interrupt remapping.
[ Impact: add new boot option ]
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Weidong Han <weidong.han@intel.com>
Acked-by: David Woodhouse <David.Woodhouse@intel.com>
Cc: iommu@lists.linux-foundation.org
Cc: allen.m.kay@intel.com
Cc: fenghua.yu@intel.com
LKML-Reference: <1239957736-6161-5-git-send-email-weidong.han@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/intr_remapping.c | 11 |
1 files changed, 11 insertions, 0 deletions
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]; | |||
15 | static int ir_ioapic_num; | 15 | static int ir_ioapic_num; |
16 | int intr_remapping_enabled; | 16 | int intr_remapping_enabled; |
17 | 17 | ||
18 | static int disable_intremap; | ||
19 | static __init int setup_nointremap(char *str) | ||
20 | { | ||
21 | disable_intremap = 1; | ||
22 | return 0; | ||
23 | } | ||
24 | early_param("nointremap", setup_nointremap); | ||
25 | |||
18 | struct irq_2_iommu { | 26 | struct 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 | ||