RDMA/usnic: Fix passing zero to PTR_ERR in usnic_ib_pci_probe()
authorYue Haibing <yuehaibing@huawei.com>
Mon, 24 Mar 2025 12:31:32 +0000 (20:31 +0800)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 7 Apr 2025 18:08:32 +0000 (15:08 -0300)
drivers/infiniband/hw/usnic/usnic_ib_main.c:590
 usnic_ib_pci_probe() warn: passing zero to 'PTR_ERR'

Make usnic_ib_device_add() return NULL on fail path, also remove
useless NULL check for usnic_ib_discover_pf()

Fixes: e3cf00d0a87f ("IB/usnic: Add Cisco VIC low-level hardware driver")
Link: https://patch.msgid.link/r/20250324123132.2392077-1-yuehaibing@huawei.com
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/usnic/usnic_ib_main.c

index 4ddcd5860e0fa44e851d7d0f284025e377f0a563..11eca39b73a93eba601eeeb0c62d63768323b47a 100644 (file)
@@ -397,7 +397,7 @@ static void *usnic_ib_device_add(struct pci_dev *dev)
        if (!us_ibdev) {
                usnic_err("Device %s context alloc failed\n",
                                netdev_name(pci_get_drvdata(dev)));
-               return ERR_PTR(-EFAULT);
+               return NULL;
        }
 
        us_ibdev->ufdev = usnic_fwd_dev_alloc(dev);
@@ -517,8 +517,8 @@ static struct usnic_ib_dev *usnic_ib_discover_pf(struct usnic_vnic *vnic)
        }
 
        us_ibdev = usnic_ib_device_add(parent_pci);
-       if (IS_ERR_OR_NULL(us_ibdev)) {
-               us_ibdev = us_ibdev ? us_ibdev : ERR_PTR(-EFAULT);
+       if (!us_ibdev) {
+               us_ibdev = ERR_PTR(-EFAULT);
                goto out;
        }
 
@@ -586,10 +586,10 @@ static int usnic_ib_pci_probe(struct pci_dev *pdev,
        }
 
        pf = usnic_ib_discover_pf(vf->vnic);
-       if (IS_ERR_OR_NULL(pf)) {
-               usnic_err("Failed to discover pf of vnic %s with err%ld\n",
-                               pci_name(pdev), PTR_ERR(pf));
-               err = pf ? PTR_ERR(pf) : -EFAULT;
+       if (IS_ERR(pf)) {
+               err = PTR_ERR(pf);
+               usnic_err("Failed to discover pf of vnic %s with err%d\n",
+                               pci_name(pdev), err);
                goto out_clean_vnic;
        }