ntb: clean up unnecessary MSI/MSI-X capability find
authorYijing Wang <wangyijing@huawei.com>
Thu, 8 Aug 2013 13:09:34 +0000 (21:09 +0800)
committerJon Mason <jon.mason@intel.com>
Thu, 5 Sep 2013 18:08:01 +0000 (11:08 -0700)
PCI core will initialize device MSI/MSI-X capability in
pci_msi_init_pci_dev(). So device driver should use
pci_dev->msi_cap/msix_cap to determine whether the device
support MSI/MSI-X instead of using
pci_find_capability(pci_dev, PCI_CAP_ID_MSI/MSIX).
Access to PCIe device config space again will consume more time.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Jon Mason <jon.mason@intel.com>
drivers/ntb/ntb_hw.c

index b717922d6240308966451eae029d4020243475b4..1cb6e51e6bda97aadb4ba88bd46123544dcc4140 100644 (file)
@@ -1031,16 +1031,15 @@ static int ntb_setup_msix(struct ntb_device *ndev)
        struct pci_dev *pdev = ndev->pdev;
        struct msix_entry *msix;
        int msix_entries;
-       int rc, i, pos;
+       int rc, i;
        u16 val;
 
-       pos = pci_find_capability(pdev, PCI_CAP_ID_MSIX);
-       if (!pos) {
+       if (!pdev->msix_cap) {
                rc = -EIO;
                goto err;
        }
 
-       rc = pci_read_config_word(pdev, pos + PCI_MSIX_FLAGS, &val);
+       rc = pci_read_config_word(pdev, pdev->msix_cap + PCI_MSIX_FLAGS, &val);
        if (rc)
                goto err;