]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/pci/intr_remapping.c
x86, dmar: start with sane state while enabling dma and interrupt-remapping
[net-next-2.6.git] / drivers / pci / intr_remapping.c
index 0d202d73a1ac0908f1254471aa7a30d5937fe47b..a84686b2478bbd5cfd9560e7b401ce1c393037d8 100644 (file)
@@ -499,6 +499,23 @@ int __init enable_intr_remapping(int eim)
        struct dmar_drhd_unit *drhd;
        int setup = 0;
 
+       for_each_drhd_unit(drhd) {
+               struct intel_iommu *iommu = drhd->iommu;
+
+               /*
+                * Clear previous faults.
+                */
+               dmar_fault(-1, iommu);
+
+               /*
+                * Disable intr remapping and queued invalidation, if already
+                * enabled prior to OS handover.
+                */
+               disable_intr_remapping(iommu);
+
+               dmar_disable_qi(iommu);
+       }
+
        /*
         * check for the Interrupt-remapping support
         */