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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2025 08:45:39 +0000 (10:45 +0200)
[ Upstream commit 95ba3850fed03e01b422ab5d7943aeba130c9723 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/usnic/usnic_ib_main.c

index 13b654ddd3cc8d208b17fa647fbf4bd1cd5cf100..bcf7d8607d56ef09e5e1f61dfd0aaa8dd0b89203 100644 (file)
@@ -380,7 +380,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);
@@ -500,8 +500,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;
        }
 
@@ -569,10 +569,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;
        }