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>
        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;