diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 13:06:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 13:06:10 -0400 |
commit | b09a75fc5e77b7c58d097236f89b1ff72dcdb562 (patch) | |
tree | 8f818f1b3e44d9bc822b13dc7c368077981dd6ea /drivers/pci/intr_remapping.c | |
parent | cf63ff5fa4399e215cc5ef322ccd8bddfff9afa6 (diff) | |
parent | b94996c99c8befed9cbbb8804a4625e203913318 (diff) |
Merge git://git.infradead.org/iommu-2.6
* git://git.infradead.org/iommu-2.6: (23 commits)
intel-iommu: Disable PMRs after we enable translation, not before
intel-iommu: Kill DMAR_BROKEN_GFX_WA option.
intel-iommu: Fix integer wrap on 32 bit kernels
intel-iommu: Fix integer overflow in dma_pte_{clear_range,free_pagetable}()
intel-iommu: Limit DOMAIN_MAX_PFN to fit in an 'unsigned long'
intel-iommu: Fix kernel hang if interrupt remapping disabled in BIOS
intel-iommu: Disallow interrupt remapping if not all ioapics covered
intel-iommu: include linux/dmi.h to use dmi_ routines
pci/dmar: correct off-by-one error in dmar_fault()
intel-iommu: Cope with yet another BIOS screwup causing crashes
intel-iommu: iommu init error path bug fixes
intel-iommu: Mark functions with __init
USB: Work around BIOS bugs by quiescing USB controllers earlier
ia64: IOMMU passthrough mode shouldn't trigger swiotlb init
intel-iommu: make domain_add_dev_info() call domain_context_mapping()
intel-iommu: Unify hardware and software passthrough support
intel-iommu: Cope with broken HP DC7900 BIOS
iommu=pt is a valid early param
intel-iommu: double kfree()
intel-iommu: Kill pointless intel_unmap_single() function
...
Fixed up trivial include lines conflict in drivers/pci/intel-iommu.c
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 | ||