RDMA/bnxt_re: Create direct symbol link between bnxt modules
authorLeon Romanovsky <leonro@nvidia.com>
Thu, 1 Apr 2021 06:57:12 +0000 (09:57 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 19 Apr 2021 17:57:03 +0000 (14:57 -0300)
Convert indirect probe call to its direct equivalent to create a symbol
link between RDMA and netdev modules. This will give us an ability to
remove custom module reference counting that doesn't belong to the driver.

Link: https://lore.kernel.org/r/20210401065715.565226-3-leon@kernel.org
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Acked-By: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/bnxt_re/main.c
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c

index b30d37f0bad2e094cc54d0765fbdab67d8d5921e..140c54ee5916a2f5ab57f09fae6eced6d42177d5 100644 (file)
@@ -610,15 +610,10 @@ static void bnxt_re_dev_unprobe(struct net_device *netdev,
 
 static struct bnxt_en_dev *bnxt_re_dev_probe(struct net_device *netdev)
 {
-       struct bnxt *bp = netdev_priv(netdev);
        struct bnxt_en_dev *en_dev;
        struct pci_dev *pdev;
 
-       /* Call bnxt_en's RoCE probe via indirect API */
-       if (!bp->ulp_probe)
-               return ERR_PTR(-EINVAL);
-
-       en_dev = bp->ulp_probe(netdev);
+       en_dev = bnxt_ulp_probe(netdev);
        if (IS_ERR(en_dev))
                return en_dev;
 
index a680fd9c68ea909c8e4a0618123010a615014907..3f0e4bde5dc93a96845e533f5cf18d5cebadcbc8 100644 (file)
@@ -12859,8 +12859,6 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (!BNXT_CHIP_P4_PLUS(bp))
                bp->flags |= BNXT_FLAG_DOUBLE_DB;
 
-       bp->ulp_probe = bnxt_ulp_probe;
-
        rc = bnxt_init_mac_addr(bp);
        if (rc) {
                dev_err(&pdev->dev, "Unable to initialize mac address.\n");
index 1259e68cba2a7f7ecac1ecba8fec050ab691062a..eb0314d7a9b15db12515a2b9da8328517726da36 100644 (file)
@@ -1745,7 +1745,6 @@ struct bnxt {
        (BNXT_CHIP_P4(bp) || BNXT_CHIP_P5(bp))
 
        struct bnxt_en_dev      *edev;
-       struct bnxt_en_dev *    (*ulp_probe)(struct net_device *);
 
        struct bnxt_napi        **bnapi;
 
index 64dbbb04b04346719b46e5e4214ce095d7c9947d..a918e374f3c5c4f3714638332c45c0e24c4f3adc 100644 (file)
@@ -491,3 +491,4 @@ struct bnxt_en_dev *bnxt_ulp_probe(struct net_device *dev)
        }
        return bp->edev;
 }
+EXPORT_SYMBOL(bnxt_ulp_probe);