]> Pileus Git - ~andy/linux/commitdiff
iommu/amd: Check for the right TLP prefix bit
authorJoerg Roedel <joerg.roedel@amd.com>
Thu, 12 Apr 2012 10:49:26 +0000 (12:49 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Thu, 12 Apr 2012 10:49:26 +0000 (12:49 +0200)
Unfortunatly the PRI spec changed and moved the
TLP-prefix-required bit to a different location. This patch
makes the necessary change in the AMD IOMMU driver.
Regressions are not expected because all hardware
implementing the PRI capability sets this bit to zero
anyway.

Cc: stable@vger.kernel.org # v3.3
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
drivers/iommu/amd_iommu.c

index a5bee8e2dfce7904b637f8fd3d9871c75b7824a5..08f3eecb87a250180a262380aacfd5cf56cf0db2 100644 (file)
@@ -2035,20 +2035,20 @@ out_err:
 }
 
 /* FIXME: Move this to PCI code */
-#define PCI_PRI_TLP_OFF                (1 << 2)
+#define PCI_PRI_TLP_OFF                (1 << 15)
 
 bool pci_pri_tlp_required(struct pci_dev *pdev)
 {
-       u16 control;
+       u16 status;
        int pos;
 
        pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_PRI);
        if (!pos)
                return false;
 
-       pci_read_config_word(pdev, pos + PCI_PRI_CTRL, &control);
+       pci_read_config_word(pdev, pos + PCI_PRI_STATUS, &status);
 
-       return (control & PCI_PRI_TLP_OFF) ? true : false;
+       return (status & PCI_PRI_TLP_OFF) ? true : false;
 }
 
 /*