diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-12-01 02:16:22 -0500 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2009-12-01 02:16:22 -0500 |
commit | 838632438145ac6863377eb12d8b8eef9c55d288 (patch) | |
tree | fbb0757df837f3c75a99c518a3596c38daef162d /drivers/pci/intr_remapping.c | |
parent | 9996508b3353063f2d6c48c1a28a84543d72d70b (diff) | |
parent | 29e553631b2a0d4eebd23db630572e1027a9967a (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers/pci/intr_remapping.c')
-rw-r--r-- | drivers/pci/intr_remapping.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c index 44803644ca05..0ed78a764ded 100644 --- a/drivers/pci/intr_remapping.c +++ b/drivers/pci/intr_remapping.c | |||
@@ -603,6 +603,9 @@ int __init intr_remapping_supported(void) | |||
603 | if (disable_intremap) | 603 | if (disable_intremap) |
604 | return 0; | 604 | return 0; |
605 | 605 | ||
606 | if (!dmar_ir_support()) | ||
607 | return 0; | ||
608 | |||
606 | for_each_drhd_unit(drhd) { | 609 | for_each_drhd_unit(drhd) { |
607 | struct intel_iommu *iommu = drhd->iommu; | 610 | struct intel_iommu *iommu = drhd->iommu; |
608 | 611 | ||
@@ -618,6 +621,11 @@ int __init enable_intr_remapping(int eim) | |||
618 | struct dmar_drhd_unit *drhd; | 621 | struct dmar_drhd_unit *drhd; |
619 | int setup = 0; | 622 | int setup = 0; |
620 | 623 | ||
624 | if (parse_ioapics_under_ir() != 1) { | ||
625 | printk(KERN_INFO "Not enable interrupt remapping\n"); | ||
626 | return -1; | ||
627 | } | ||
628 | |||
621 | for_each_drhd_unit(drhd) { | 629 | for_each_drhd_unit(drhd) { |
622 | struct intel_iommu *iommu = drhd->iommu; | 630 | struct intel_iommu *iommu = drhd->iommu; |
623 | 631 | ||