x86, intr-remapping: fix free_irte() to clear all the IRTE entries
authorSuresh Siddha <suresh.b.siddha@intel.com>
Tue, 17 Mar 2009 00:04:58 +0000 (17:04 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Tue, 17 Mar 2009 22:42:00 +0000 (15:42 -0700)
Impact: fix interrupt table entry leak

Fix the typo which was not clearing all the interrupt remapping table
entries corresponding to an irq.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
drivers/pci/intr_remapping.c

index a84686b2478bbd5cfd9560e7b401ce1c393037d8..f7ecd85e2104366c94e1accbb0bbc9185f1fa013 100644 (file)
@@ -386,7 +386,7 @@ int free_irte(int irq)
 
        if (!irq_iommu->sub_handle) {
                for (i = 0; i < (1 << irq_iommu->irte_mask); i++)
-                       set_64bit((unsigned long *)irte, 0);
+                       set_64bit((unsigned long *)(irte + i), 0);
                rc = qi_flush_iec(iommu, index, irq_iommu->irte_mask);
        }