tg3: clean up unnecessary MSI/MSI-X capability find
authorYijing Wang <wangyijing@huawei.com>
Thu, 8 Aug 2013 13:03:12 +0000 (21:03 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Aug 2013 20:49:51 +0000 (13:49 -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>
Cc: Nithin Nayak Sujir <nsujir@broadcom.com>
Cc: Michael Chan <mchan@broadcom.com>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/tg3.c

index 51bf9ca..ff28081 100644 (file)
@@ -15967,7 +15967,7 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
         */
        if (tg3_flag(tp, 5780_CLASS)) {
                tg3_flag_set(tp, 40BIT_DMA_BUG);
-               tp->msi_cap = pci_find_capability(tp->pdev, PCI_CAP_ID_MSI);
+               tp->msi_cap = tp->pdev->msi_cap;
        } else {
                struct pci_dev *bridge = NULL;