]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
devlink: Make devlink_register to be void
authorLeon Romanovsky <leonro@nvidia.com>
Wed, 22 Sep 2021 08:58:03 +0000 (11:58 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Sep 2021 13:15:12 +0000 (14:15 +0100)
devlink_register() can't fail and always returns success, but all drivers
are obligated to check returned status anyway. This adds a lot of boilerplate
code to handle impossible flow.

Make devlink_register() void and simplify the drivers that use that
API call.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Acked-by: Simon Horman <simon.horman@corigine.com>
Acked-by: Vladimir Oltean <olteanv@gmail.com> # dsa
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
30 files changed:
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
drivers/net/ethernet/cavium/liquidio/lio_main.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c
drivers/net/ethernet/huawei/hinic/hinic_devlink.c
drivers/net/ethernet/huawei/hinic/hinic_devlink.h
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
drivers/net/ethernet/intel/ice/ice_devlink.c
drivers/net/ethernet/intel/ice/ice_devlink.h
drivers/net/ethernet/intel/ice/ice_main.c
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c
drivers/net/ethernet/marvell/prestera/prestera_devlink.c
drivers/net/ethernet/mellanox/mlx4/main.c
drivers/net/ethernet/mellanox/mlx5/core/devlink.c
drivers/net/ethernet/mellanox/mlxsw/core.c
drivers/net/ethernet/mscc/ocelot_vsc7514.c
drivers/net/ethernet/netronome/nfp/nfp_net_main.c
drivers/net/ethernet/pensando/ionic/ionic_devlink.c
drivers/net/ethernet/qlogic/qed/qed_devlink.c
drivers/net/ethernet/ti/am65-cpsw-nuss.c
drivers/net/ethernet/ti/cpsw_new.c
drivers/net/netdevsim/dev.c
drivers/net/wwan/iosm/iosm_ipc_devlink.c
drivers/ptp/ptp_ocp.c
drivers/staging/qlge/qlge_main.c
include/net/devlink.h
net/core/devlink.c
net/dsa/dsa2.c

index 9576547df4aba20c2d2d7459af6de3d8c557551b..bf7d3c17049baab7f09ba0b02ffcbad208ef1696 100644 (file)
@@ -802,12 +802,7 @@ int bnxt_dl_register(struct bnxt *bp)
            bp->hwrm_spec_code > 0x10803)
                bp->eswitch_mode = DEVLINK_ESWITCH_MODE_LEGACY;
 
-       rc = devlink_register(dl);
-       if (rc) {
-               netdev_warn(bp->dev, "devlink_register failed. rc=%d\n", rc);
-               goto err_dl_free;
-       }
-
+       devlink_register(dl);
        if (!BNXT_PF(bp))
                return 0;
 
@@ -819,7 +814,7 @@ int bnxt_dl_register(struct bnxt *bp)
        rc = devlink_port_register(dl, &bp->dl_port, bp->pf.port_id);
        if (rc) {
                netdev_err(bp->dev, "devlink_port_register failed\n");
-               goto err_dl_unreg;
+               goto err_dl_free;
        }
 
        rc = bnxt_dl_params_register(bp);
@@ -830,8 +825,6 @@ int bnxt_dl_register(struct bnxt *bp)
 
 err_dl_port_unreg:
        devlink_port_unregister(&bp->dl_port);
-err_dl_unreg:
-       devlink_unregister(dl);
 err_dl_free:
        bnxt_link_bp_to_dl(bp, NULL);
        devlink_free(dl);
index 2907e13b9df6978ba1e11c1fa771362c82e5ab00..a34b3bb2dd4ff5e48919de62b37bfa88f19be162 100644 (file)
@@ -3760,13 +3760,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
        lio_devlink = devlink_priv(devlink);
        lio_devlink->oct = octeon_dev;
 
-       if (devlink_register(devlink)) {
-               devlink_free(devlink);
-               dev_err(&octeon_dev->pci_dev->dev,
-                       "devlink registration failed\n");
-               goto setup_nic_dev_free;
-       }
-
+       devlink_register(devlink);
        octeon_dev->devlink = devlink;
        octeon_dev->eswitch_mode = DEVLINK_ESWITCH_MODE_LEGACY;
 
index 605a39f892b949730fe86c7a0f5318c90fa7ec94..426926fb6fc6ee86ed7b37b45e552a44f2675680 100644 (file)
@@ -194,7 +194,6 @@ int dpaa2_eth_dl_register(struct dpaa2_eth_priv *priv)
        struct net_device *net_dev = priv->net_dev;
        struct device *dev = net_dev->dev.parent;
        struct dpaa2_eth_devlink_priv *dl_priv;
-       int err;
 
        priv->devlink =
                devlink_alloc(&dpaa2_eth_devlink_ops, sizeof(*dl_priv), dev);
@@ -205,18 +204,8 @@ int dpaa2_eth_dl_register(struct dpaa2_eth_priv *priv)
        dl_priv = devlink_priv(priv->devlink);
        dl_priv->dpaa2_priv = priv;
 
-       err = devlink_register(priv->devlink);
-       if (err) {
-               dev_err(dev, "devlink_register() = %d\n", err);
-               goto devlink_free;
-       }
-
+       devlink_register(priv->devlink);
        return 0;
-
-devlink_free:
-       devlink_free(priv->devlink);
-
-       return err;
 }
 
 void dpaa2_eth_dl_unregister(struct dpaa2_eth_priv *priv)
index e4aad695abcc1835f90dfd67c4dc4c4fee29bfba..59b0ae7d59e018748941672b4052c415a7ebdb52 100644 (file)
@@ -109,7 +109,6 @@ int hclge_devlink_init(struct hclge_dev *hdev)
        struct pci_dev *pdev = hdev->pdev;
        struct hclge_devlink_priv *priv;
        struct devlink *devlink;
-       int ret;
 
        devlink = devlink_alloc(&hclge_devlink_ops,
                                sizeof(struct hclge_devlink_priv), &pdev->dev);
@@ -120,20 +119,9 @@ int hclge_devlink_init(struct hclge_dev *hdev)
        priv->hdev = hdev;
        hdev->devlink = devlink;
 
-       ret = devlink_register(devlink);
-       if (ret) {
-               dev_err(&pdev->dev, "failed to register devlink, ret = %d\n",
-                       ret);
-               goto out_reg_fail;
-       }
-
+       devlink_register(devlink);
        devlink_reload_enable(devlink);
-
        return 0;
-
-out_reg_fail:
-       devlink_free(devlink);
-       return ret;
 }
 
 void hclge_devlink_uninit(struct hclge_dev *hdev)
index f478770299c6cd53fbc4d167eeeaead1c4a23d24..d60cc9426f7019ae68b376a2c364be447bc17d9f 100644 (file)
@@ -110,7 +110,6 @@ int hclgevf_devlink_init(struct hclgevf_dev *hdev)
        struct pci_dev *pdev = hdev->pdev;
        struct hclgevf_devlink_priv *priv;
        struct devlink *devlink;
-       int ret;
 
        devlink =
                devlink_alloc(&hclgevf_devlink_ops,
@@ -122,20 +121,9 @@ int hclgevf_devlink_init(struct hclgevf_dev *hdev)
        priv->hdev = hdev;
        hdev->devlink = devlink;
 
-       ret = devlink_register(devlink);
-       if (ret) {
-               dev_err(&pdev->dev, "failed to register devlink, ret = %d\n",
-                       ret);
-               goto out_reg_fail;
-       }
-
+       devlink_register(devlink);
        devlink_reload_enable(devlink);
-
        return 0;
-
-out_reg_fail:
-       devlink_free(devlink);
-       return ret;
 }
 
 void hclgevf_devlink_uninit(struct hclgevf_dev *hdev)
index 6e11ee339f12f5bdf2fac2a62e54bb48c71aed7d..60ae8bfc5f69a768e8f3d443e1ec1034296b7c70 100644 (file)
@@ -303,11 +303,11 @@ void hinic_devlink_free(struct devlink *devlink)
        devlink_free(devlink);
 }
 
-int hinic_devlink_register(struct hinic_devlink_priv *priv)
+void hinic_devlink_register(struct hinic_devlink_priv *priv)
 {
        struct devlink *devlink = priv_to_devlink(priv);
 
-       return devlink_register(devlink);
+       devlink_register(devlink);
 }
 
 void hinic_devlink_unregister(struct hinic_devlink_priv *priv)
index 9e315011015c563f05d6c5fe93ed0f54bf39a737..46760d607b9b08c17699b211f21ccf9cc459c05a 100644 (file)
@@ -110,7 +110,7 @@ struct host_image_st {
 
 struct devlink *hinic_devlink_alloc(struct device *dev);
 void hinic_devlink_free(struct devlink *devlink);
-int hinic_devlink_register(struct hinic_devlink_priv *priv);
+void hinic_devlink_register(struct hinic_devlink_priv *priv);
 void hinic_devlink_unregister(struct hinic_devlink_priv *priv);
 
 int hinic_health_reporters_create(struct hinic_devlink_priv *priv);
index 56b6b04e209b3e7f3ab5c75991a33b2a2f9ab653..b2ece3adbc726a2b99826175b472dd88563809b2 100644 (file)
@@ -754,13 +754,7 @@ static int init_pfhwdev(struct hinic_pfhwdev *pfhwdev)
                return err;
        }
 
-       err = hinic_devlink_register(hwdev->devlink_dev);
-       if (err) {
-               dev_err(&hwif->pdev->dev, "Failed to register devlink\n");
-               hinic_pf_to_mgmt_free(&pfhwdev->pf_to_mgmt);
-               return err;
-       }
-
+       hinic_devlink_register(hwdev->devlink_dev);
        err = hinic_func_to_func_init(hwdev);
        if (err) {
                dev_err(&hwif->pdev->dev, "Failed to init mailbox\n");
index 14afce82ef6312e80300ea16c2b4eb23479f857f..ab3d876fa62442563a60207e70b5da8cf2e44edc 100644 (file)
@@ -498,19 +498,11 @@ struct ice_pf *ice_allocate_pf(struct device *dev)
  *
  * Return: zero on success or an error code on failure.
  */
-int ice_devlink_register(struct ice_pf *pf)
+void ice_devlink_register(struct ice_pf *pf)
 {
        struct devlink *devlink = priv_to_devlink(pf);
-       struct device *dev = ice_pf_to_dev(pf);
-       int err;
 
-       err = devlink_register(devlink);
-       if (err) {
-               dev_err(dev, "devlink registration failed: %d\n", err);
-               return err;
-       }
-
-       return 0;
+       devlink_register(devlink);
 }
 
 /**
index e07e74426bde85643d00bf701e85a08970bb8f70..e721d7b0d627c0c9aff5bdac3d16bd585638a499 100644 (file)
@@ -6,7 +6,7 @@
 
 struct ice_pf *ice_allocate_pf(struct device *dev);
 
-int ice_devlink_register(struct ice_pf *pf);
+void ice_devlink_register(struct ice_pf *pf);
 void ice_devlink_unregister(struct ice_pf *pf);
 int ice_devlink_create_port(struct ice_vsi *vsi);
 void ice_devlink_destroy_port(struct ice_vsi *vsi);
index 0d6c143f665327793f29efd464bb2058d532d713..34e64533026a00b30f3d771d93974852b6f88241 100644 (file)
@@ -4258,11 +4258,7 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
 
        pf->msg_enable = netif_msg_init(debug, ICE_DFLT_NETIF_M);
 
-       err = ice_devlink_register(pf);
-       if (err) {
-               dev_err(dev, "ice_devlink_register failed: %d\n", err);
-               goto err_exit_unroll;
-       }
+       ice_devlink_register(pf);
 
 #ifndef CONFIG_DYNAMIC_DEBUG
        if (debug < -1)
index 274d3abe30eb43852b810907377504930bedd448..de9562acd04b6eb810af6ccb0744eed2fe16b123 100644 (file)
@@ -1510,13 +1510,7 @@ int rvu_register_dl(struct rvu *rvu)
                return -ENOMEM;
        }
 
-       err = devlink_register(dl);
-       if (err) {
-               dev_err(rvu->dev, "devlink register failed with error %d\n", err);
-               devlink_free(dl);
-               return err;
-       }
-
+       devlink_register(dl);
        rvu_dl = devlink_priv(dl);
        rvu_dl->dl = dl;
        rvu_dl->rvu = rvu;
index 7ac3ef2fa06a26b60ffb3dff57f005efbdb1444b..3de18f9433ae2835e65e11a373083ef7fae5eab5 100644 (file)
@@ -108,13 +108,7 @@ int otx2_register_dl(struct otx2_nic *pfvf)
                return -ENOMEM;
        }
 
-       err = devlink_register(dl);
-       if (err) {
-               dev_err(pfvf->dev, "devlink register failed with error %d\n", err);
-               devlink_free(dl);
-               return err;
-       }
-
+       devlink_register(dl);
        otx2_dl = devlink_priv(dl);
        otx2_dl->dl = dl;
        otx2_dl->pfvf = pfvf;
index 68b442eb6d6943a5bd25b703909f7e6dff8da87e..5cca007a3e1793e6c79a4279a92d96dcea6f0b2c 100644 (file)
@@ -412,11 +412,7 @@ int prestera_devlink_register(struct prestera_switch *sw)
        struct devlink *dl = priv_to_devlink(sw);
        int err;
 
-       err = devlink_register(dl);
-       if (err) {
-               dev_err(prestera_dev(sw), "devlink_register failed: %d\n", err);
-               return err;
-       }
+       devlink_register(dl);
 
        err = prestera_devlink_traps_register(sw);
        if (err) {
index 5a6b0fcaf7f8a59b3747a707862d0bdbdf471723..27ed4694fbeacebde1477efb20bc8ce881ff55f9 100644 (file)
@@ -4015,9 +4015,7 @@ static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
        mutex_init(&dev->persist->interface_state_mutex);
        mutex_init(&dev->persist->pci_status_mutex);
 
-       ret = devlink_register(devlink);
-       if (ret)
-               goto err_persist_free;
+       devlink_register(devlink);
        ret = devlink_params_register(devlink, mlx4_devlink_params,
                                      ARRAY_SIZE(mlx4_devlink_params));
        if (ret)
@@ -4037,7 +4035,6 @@ err_params_unregister:
                                  ARRAY_SIZE(mlx4_devlink_params));
 err_devlink_unregister:
        devlink_unregister(devlink);
-err_persist_free:
        kfree(dev->persist);
 err_devlink_free:
        devlink_free(devlink);
index 7d56a927081d0a8b4e723fdc8c12ac373dea0d50..b36f721625e4562d902063a4f960799829a9fc90 100644 (file)
@@ -793,10 +793,7 @@ int mlx5_devlink_register(struct devlink *devlink)
 {
        int err;
 
-       err = devlink_register(devlink);
-       if (err)
-               return err;
-
+       devlink_register(devlink);
        err = devlink_params_register(devlink, mlx5_devlink_params,
                                      ARRAY_SIZE(mlx5_devlink_params));
        if (err)
index 8c634976ca77329ec1875c84c0c72b0ac9239552..9a570fa167b6f1d22ecf4290512c78381a3e4618 100644 (file)
@@ -1973,11 +1973,8 @@ __mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
        if (err)
                goto err_emad_init;
 
-       if (!reload) {
-               err = devlink_register(devlink);
-               if (err)
-                       goto err_devlink_register;
-       }
+       if (!reload)
+               devlink_register(devlink);
 
        if (!reload) {
                err = mlxsw_core_params_register(mlxsw_core);
@@ -2035,7 +2032,6 @@ err_fw_rev_validate:
 err_register_params:
        if (!reload)
                devlink_unregister(devlink);
-err_devlink_register:
        mlxsw_emad_fini(mlxsw_core);
 err_emad_init:
        kfree(mlxsw_core->lag.mapping);
index 291ae6817c2607beefc79a6d90e98205818d13fe..2b8ea48d2fc45fb89f04ecbbe8c057d39ba4c63f 100644 (file)
@@ -1134,10 +1134,7 @@ static int mscc_ocelot_probe(struct platform_device *pdev)
        if (err)
                goto out_put_ports;
 
-       err = devlink_register(devlink);
-       if (err)
-               goto out_ocelot_deinit;
-
+       devlink_register(devlink);
        err = mscc_ocelot_init_ports(pdev, ports);
        if (err)
                goto out_ocelot_devlink_unregister;
@@ -1170,7 +1167,6 @@ out_ocelot_release_ports:
        mscc_ocelot_teardown_devlink_ports(ocelot);
 out_ocelot_devlink_unregister:
        devlink_unregister(devlink);
-out_ocelot_deinit:
        ocelot_deinit(ocelot);
 out_put_ports:
        of_node_put(ports);
index d10a938013445f221a71e3a2c97335bdf3c34084..616872928ada4d68be646967eb4e67aba84267ff 100644 (file)
@@ -701,10 +701,7 @@ int nfp_net_pci_probe(struct nfp_pf *pf)
        if (err)
                goto err_unmap;
 
-       err = devlink_register(devlink);
-       if (err)
-               goto err_app_clean;
-
+       devlink_register(devlink);
        err = nfp_shared_buf_register(pf);
        if (err)
                goto err_devlink_unreg;
@@ -752,7 +749,6 @@ err_shared_buf_unreg:
 err_devlink_unreg:
        cancel_work_sync(&pf->port_refresh_work);
        devlink_unregister(devlink);
-err_app_clean:
        nfp_net_pf_app_clean(pf);
 err_unmap:
        nfp_net_pci_unmap_mem(pf);
index c7d0e195d17607fe23f6dd5c68f588b9a5cf4da9..93282394d332b47b9826cac821a64ebbb4f2296f 100644 (file)
@@ -82,12 +82,7 @@ int ionic_devlink_register(struct ionic *ionic)
        struct devlink_port_attrs attrs = {};
        int err;
 
-       err = devlink_register(dl);
-       if (err) {
-               dev_warn(ionic->dev, "devlink_register failed: %d\n", err);
-               return err;
-       }
-
+       devlink_register(dl);
        attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
        devlink_port_attrs_set(&ionic->dl_port, &attrs);
        err = devlink_port_register(dl, &ionic->dl_port, 0);
index 78070682f2dff3cf1daa52766dfce8c6c3087539..c51f9590fe19385e61598f4d1d7b5b9405cd5209 100644 (file)
@@ -215,10 +215,7 @@ struct devlink *qed_devlink_register(struct qed_dev *cdev)
        qdevlink = devlink_priv(dl);
        qdevlink->cdev = cdev;
 
-       rc = devlink_register(dl);
-       if (rc)
-               goto err_free;
-
+       devlink_register(dl);
        rc = devlink_params_register(dl, qed_devlink_params,
                                     ARRAY_SIZE(qed_devlink_params));
        if (rc)
@@ -238,8 +235,6 @@ struct devlink *qed_devlink_register(struct qed_dev *cdev)
 
 err_unregister:
        devlink_unregister(dl);
-
-err_free:
        devlink_free(dl);
 
        return ERR_PTR(rc);
index 130346f74ee8a11678a7e3f37bc6b2af4bfc9b50..c2ea53ca92b66ec5115c9fb23be4d76886b4cee7 100644 (file)
@@ -2429,12 +2429,7 @@ static int am65_cpsw_nuss_register_devlink(struct am65_cpsw_common *common)
        dl_priv = devlink_priv(common->devlink);
        dl_priv->common = common;
 
-       ret = devlink_register(common->devlink);
-       if (ret) {
-               dev_err(dev, "devlink reg fail ret:%d\n", ret);
-               goto dl_free;
-       }
-
+       devlink_register(common->devlink);
        /* Provide devlink hook to switch mode when multiple external ports
         * are present NUSS switchdev driver is enabled.
         */
@@ -2480,9 +2475,7 @@ dl_port_unreg:
        }
 dl_unreg:
        devlink_unregister(common->devlink);
-dl_free:
        devlink_free(common->devlink);
-
        return ret;
 }
 
index 7968f24d99c8550fea08dde45bb77f38b4e3ebaa..204b4826303c1e5e50745a94976f3cd58f464cb6 100644 (file)
@@ -1810,12 +1810,7 @@ static int cpsw_register_devlink(struct cpsw_common *cpsw)
        dl_priv = devlink_priv(cpsw->devlink);
        dl_priv->cpsw = cpsw;
 
-       ret = devlink_register(cpsw->devlink);
-       if (ret) {
-               dev_err(dev, "DL reg fail ret:%d\n", ret);
-               goto dl_free;
-       }
-
+       devlink_register(cpsw->devlink);
        ret = devlink_params_register(cpsw->devlink, cpsw_devlink_params,
                                      ARRAY_SIZE(cpsw_devlink_params));
        if (ret) {
@@ -1828,7 +1823,6 @@ static int cpsw_register_devlink(struct cpsw_common *cpsw)
 
 dl_unreg:
        devlink_unregister(cpsw->devlink);
-dl_free:
        devlink_free(cpsw->devlink);
        return ret;
 }
index 54313bd577973189410f1db93e5fc459c78e0a8b..b2214bc9efe2885c049ba9b1769371c61770c02e 100644 (file)
@@ -1470,10 +1470,7 @@ int nsim_dev_probe(struct nsim_bus_dev *nsim_bus_dev)
        if (err)
                goto err_devlink_free;
 
-       err = devlink_register(devlink);
-       if (err)
-               goto err_resources_unregister;
-
+       devlink_register(devlink);
        err = devlink_params_register(devlink, nsim_devlink_params,
                                      ARRAY_SIZE(nsim_devlink_params));
        if (err)
@@ -1538,7 +1535,6 @@ err_params_unregister:
                                  ARRAY_SIZE(nsim_devlink_params));
 err_dl_unregister:
        devlink_unregister(devlink);
-err_resources_unregister:
        devlink_resources_unregister(devlink, NULL);
 err_devlink_free:
        devlink_free(devlink);
index 7fd7956cc61e3f905c336d892cd9cac4152c1313..aa1c8c6276dc77ac3f5064cc72e5b2475e8f0c16 100644 (file)
@@ -290,11 +290,7 @@ struct iosm_devlink *ipc_devlink_init(struct iosm_imem *ipc_imem)
        ipc_devlink->devlink_ctx = devlink_ctx;
        ipc_devlink->pcie = ipc_imem->pcie;
        ipc_devlink->dev = ipc_imem->dev;
-       rc = devlink_register(devlink_ctx);
-       if (rc) {
-               dev_err(ipc_devlink->dev, "devlink_register failed rc %d", rc);
-               goto free_dl;
-       }
+       devlink_register(devlink_ctx);
 
        rc = devlink_params_register(devlink_ctx, iosm_devlink_params,
                                     ARRAY_SIZE(iosm_devlink_params));
@@ -334,8 +330,6 @@ region_create_fail:
        devlink_params_unregister(devlink_ctx, iosm_devlink_params,
                                  ARRAY_SIZE(iosm_devlink_params));
 param_reg_fail:
-       devlink_unregister(devlink_ctx);
-free_dl:
        devlink_free(devlink_ctx);
 devlink_alloc_fail:
        return NULL;
index c26708f486cfd3a778df821e3d5353bf22986471..4c25467198e330b797176f653e00bc23e2bbfc30 100644 (file)
@@ -2455,10 +2455,7 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                return -ENOMEM;
        }
 
-       err = devlink_register(devlink);
-       if (err)
-               goto out_free;
-
+       devlink_register(devlink);
        err = pci_enable_device(pdev);
        if (err) {
                dev_err(&pdev->dev, "pci_enable_device\n");
@@ -2510,9 +2507,7 @@ out_disable:
        pci_disable_device(pdev);
 out_unregister:
        devlink_unregister(devlink);
-out_free:
        devlink_free(devlink);
-
        return err;
 }
 
index 8fcdf89da8aa9c65433f3dfd9a08d8cb573caaa4..33539f6c254d8eccca6e41d7cae1dbc38955e152 100644 (file)
@@ -4614,12 +4614,8 @@ static int qlge_probe(struct pci_dev *pdev,
                goto netdev_free;
        }
 
-       err = devlink_register(devlink);
-       if (err)
-               goto netdev_free;
-
+       devlink_register(devlink);
        err = qlge_health_create_reporters(qdev);
-
        if (err)
                goto devlink_unregister;
 
index 0e06b3dbbec64e13211503ea1aea04219a75a613..c902e8e5f012e2bf0fcc4ddef36467333d8f58c4 100644 (file)
@@ -1566,7 +1566,7 @@ static inline struct devlink *devlink_alloc(const struct devlink_ops *ops,
 {
        return devlink_alloc_ns(ops, priv_size, &init_net, dev);
 }
-int devlink_register(struct devlink *devlink);
+void devlink_register(struct devlink *devlink);
 void devlink_unregister(struct devlink *devlink);
 void devlink_reload_enable(struct devlink *devlink);
 void devlink_reload_disable(struct devlink *devlink);
index 0f1663453ca00ecc6ddce41a0e41b2cfa9711013..7d975057c2a944bff0cc167583b1f34011f7a6a5 100644 (file)
@@ -8960,13 +8960,12 @@ EXPORT_SYMBOL_GPL(devlink_alloc_ns);
  *
  *     @devlink: devlink
  */
-int devlink_register(struct devlink *devlink)
+void devlink_register(struct devlink *devlink)
 {
        mutex_lock(&devlink_mutex);
        xa_set_mark(&devlinks, devlink->index, DEVLINK_REGISTERED);
        devlink_notify(devlink, DEVLINK_CMD_NEW);
        mutex_unlock(&devlink_mutex);
-       return 0;
 }
 EXPORT_SYMBOL_GPL(devlink_register);
 
index eef13cd20f19f40a5ec0eb37a01ce3cc0c7bfaec..96f211f52ac3b3cb4f118a5acc44ba3e0fbd4f43 100644 (file)
@@ -804,10 +804,7 @@ static int dsa_switch_setup(struct dsa_switch *ds)
        dl_priv = devlink_priv(ds->devlink);
        dl_priv->ds = ds;
 
-       err = devlink_register(ds->devlink);
-       if (err)
-               goto free_devlink;
-
+       devlink_register(ds->devlink);
        /* Setup devlink port instances now, so that the switch
         * setup() can register regions etc, against the ports
         */
@@ -863,10 +860,8 @@ unregister_devlink_ports:
                if (dp->ds == ds)
                        dsa_port_devlink_teardown(dp);
        devlink_unregister(ds->devlink);
-free_devlink:
        devlink_free(ds->devlink);
        ds->devlink = NULL;
-
        return err;
 }