+++ /dev/null
-From 3fcd043424744c62b4b710d27b3a845ef1e4225b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 22 Sep 2021 11:58:03 +0300
-Subject: devlink: Make devlink_register to be void
-
-From: Leon Romanovsky <leonro@nvidia.com>
-
-[ Upstream commit db4278c55fa53760893266538e86e638330b03bb ]
-
-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>
-Stable-dep-of: 0288c3e709e5 ("ice: reset first in crash dump kernels")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 11 ++---------
- drivers/net/ethernet/cavium/liquidio/lio_main.c | 8 +-------
- .../ethernet/freescale/dpaa2/dpaa2-eth-devlink.c | 13 +------------
- .../ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c | 14 +-------------
- .../hisilicon/hns3/hns3vf/hclgevf_devlink.c | 14 +-------------
- drivers/net/ethernet/huawei/hinic/hinic_devlink.c | 4 ++--
- drivers/net/ethernet/huawei/hinic/hinic_devlink.h | 2 +-
- drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c | 8 +-------
- drivers/net/ethernet/intel/ice/ice_devlink.c | 12 ++----------
- drivers/net/ethernet/intel/ice/ice_devlink.h | 2 +-
- drivers/net/ethernet/intel/ice/ice_main.c | 6 +-----
- .../ethernet/marvell/octeontx2/af/rvu_devlink.c | 8 +-------
- .../ethernet/marvell/octeontx2/nic/otx2_devlink.c | 8 +-------
- .../ethernet/marvell/prestera/prestera_devlink.c | 6 +-----
- drivers/net/ethernet/mellanox/mlx4/main.c | 5 +----
- drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 5 +----
- drivers/net/ethernet/mellanox/mlxsw/core.c | 8 ++------
- drivers/net/ethernet/mscc/ocelot_vsc7514.c | 6 +-----
- drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 6 +-----
- .../net/ethernet/pensando/ionic/ionic_devlink.c | 7 +------
- drivers/net/ethernet/qlogic/qed/qed_devlink.c | 7 +------
- drivers/net/ethernet/ti/am65-cpsw-nuss.c | 9 +--------
- drivers/net/ethernet/ti/cpsw_new.c | 8 +-------
- drivers/net/netdevsim/dev.c | 6 +-----
- drivers/ptp/ptp_ocp.c | 7 +------
- drivers/staging/qlge/qlge_main.c | 6 +-----
- include/net/devlink.h | 2 +-
- net/core/devlink.c | 3 +--
- net/dsa/dsa2.c | 7 +------
- 29 files changed, 33 insertions(+), 175 deletions(-)
-
-diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
-index 2a80882971e3d..dc0851f709f52 100644
---- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
-+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
-@@ -805,12 +805,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;
-
-@@ -822,7 +817,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);
-@@ -833,8 +828,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:
- devlink_free(dl);
- return rc;
-diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
-index 443755729d793..cf4a9c6600800 100644
---- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
-+++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
-@@ -3778,13 +3778,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;
-
-diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c
-index 605a39f892b94..426926fb6fc6e 100644
---- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c
-+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c
-@@ -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)
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c
-index e4aad695abcc1..59b0ae7d59e01 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c
-@@ -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)
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c
-index f478770299c6c..d60cc9426f701 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c
-@@ -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)
-diff --git a/drivers/net/ethernet/huawei/hinic/hinic_devlink.c b/drivers/net/ethernet/huawei/hinic/hinic_devlink.c
-index 6e11ee339f12f..60ae8bfc5f69a 100644
---- a/drivers/net/ethernet/huawei/hinic/hinic_devlink.c
-+++ b/drivers/net/ethernet/huawei/hinic/hinic_devlink.c
-@@ -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)
-diff --git a/drivers/net/ethernet/huawei/hinic/hinic_devlink.h b/drivers/net/ethernet/huawei/hinic/hinic_devlink.h
-index 9e315011015c5..46760d607b9b0 100644
---- a/drivers/net/ethernet/huawei/hinic/hinic_devlink.h
-+++ b/drivers/net/ethernet/huawei/hinic/hinic_devlink.h
-@@ -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);
-diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
-index 8b04d133b3c47..536ed7c290c73 100644
---- a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
-+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
-@@ -753,13 +753,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");
-diff --git a/drivers/net/ethernet/intel/ice/ice_devlink.c b/drivers/net/ethernet/intel/ice/ice_devlink.c
-index 2ec5d5cb72803..43dca9ab57ec9 100644
---- a/drivers/net/ethernet/intel/ice/ice_devlink.c
-+++ b/drivers/net/ethernet/intel/ice/ice_devlink.c
-@@ -499,19 +499,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);
- }
-
- /**
-diff --git a/drivers/net/ethernet/intel/ice/ice_devlink.h b/drivers/net/ethernet/intel/ice/ice_devlink.h
-index e30284ccbed4c..b7f9551e4fc44 100644
---- a/drivers/net/ethernet/intel/ice/ice_devlink.h
-+++ b/drivers/net/ethernet/intel/ice/ice_devlink.h
-@@ -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_pf_port(struct ice_pf *pf);
- void ice_devlink_destroy_pf_port(struct ice_pf *pf);
-diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
-index d4c29e2562a1c..b742afafd90bb 100644
---- a/drivers/net/ethernet/intel/ice/ice_main.c
-+++ b/drivers/net/ethernet/intel/ice/ice_main.c
-@@ -4324,11 +4324,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)
-diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
-index 274d3abe30eb4..de9562acd04b6 100644
---- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
-+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
-@@ -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;
-diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c
-index 7ac3ef2fa06a2..3de18f9433ae2 100644
---- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c
-+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c
-@@ -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;
-diff --git a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c
-index 68b442eb6d694..5cca007a3e179 100644
---- a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c
-+++ b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c
-@@ -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) {
-diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
-index 5a6b0fcaf7f8a..27ed4694fbeac 100644
---- a/drivers/net/ethernet/mellanox/mlx4/main.c
-+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
-@@ -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 @@ static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
- ARRAY_SIZE(mlx4_devlink_params));
- err_devlink_unregister:
- devlink_unregister(devlink);
--err_persist_free:
- kfree(dev->persist);
- err_devlink_free:
- devlink_free(devlink);
-diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
-index 7d56a927081d0..b36f721625e45 100644
---- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
-+++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
-@@ -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)
-diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.c b/drivers/net/ethernet/mellanox/mlxsw/core.c
-index f080fab3de2b5..2d5f82be3db0e 100644
---- a/drivers/net/ethernet/mellanox/mlxsw/core.c
-+++ b/drivers/net/ethernet/mellanox/mlxsw/core.c
-@@ -1974,11 +1974,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);
-@@ -2038,7 +2035,6 @@ __mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
- err_register_params:
- if (!reload)
- devlink_unregister(devlink);
--err_devlink_register:
- mlxsw_emad_fini(mlxsw_core);
- err_emad_init:
- kfree(mlxsw_core->lag.mapping);
-diff --git a/drivers/net/ethernet/mscc/ocelot_vsc7514.c b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
-index d51f799e4e861..a66e96ab24c71 100644
---- a/drivers/net/ethernet/mscc/ocelot_vsc7514.c
-+++ b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
-@@ -1135,10 +1135,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;
-@@ -1171,7 +1168,6 @@ static int mscc_ocelot_probe(struct platform_device *pdev)
- 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);
-diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c
-index 74c4bf4d397d8..6d3edeff1bb33 100644
---- a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c
-+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c
-@@ -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 @@ int nfp_net_pci_probe(struct nfp_pf *pf)
- 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);
-diff --git a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
-index 5c06decc868c4..17b2060405513 100644
---- a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
-+++ b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
-@@ -84,12 +84,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);
-diff --git a/drivers/net/ethernet/qlogic/qed/qed_devlink.c b/drivers/net/ethernet/qlogic/qed/qed_devlink.c
-index 78070682f2dff..c51f9590fe193 100644
---- a/drivers/net/ethernet/qlogic/qed/qed_devlink.c
-+++ b/drivers/net/ethernet/qlogic/qed/qed_devlink.c
-@@ -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);
-diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
-index 4aa9477ac5977..3cf3befc8576c 100644
---- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
-+++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
-@@ -2441,12 +2441,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.
- */
-@@ -2491,9 +2486,7 @@ static int am65_cpsw_nuss_register_devlink(struct am65_cpsw_common *common)
- }
- dl_unreg:
- devlink_unregister(common->devlink);
--dl_free:
- devlink_free(common->devlink);
--
- return ret;
- }
-
-diff --git a/drivers/net/ethernet/ti/cpsw_new.c b/drivers/net/ethernet/ti/cpsw_new.c
-index 0d921f6542d6f..9c87f857e2859 100644
---- a/drivers/net/ethernet/ti/cpsw_new.c
-+++ b/drivers/net/ethernet/ti/cpsw_new.c
-@@ -1813,12 +1813,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) {
-@@ -1831,7 +1826,6 @@ static int cpsw_register_devlink(struct cpsw_common *cpsw)
-
- dl_unreg:
- devlink_unregister(cpsw->devlink);
--dl_free:
- devlink_free(cpsw->devlink);
- return ret;
- }
-diff --git a/drivers/net/netdevsim/dev.c b/drivers/net/netdevsim/dev.c
-index a7279356299af..0c6bfe00b6983 100644
---- a/drivers/net/netdevsim/dev.c
-+++ b/drivers/net/netdevsim/dev.c
-@@ -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 @@ int nsim_dev_probe(struct nsim_bus_dev *nsim_bus_dev)
- 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);
-diff --git a/drivers/ptp/ptp_ocp.c b/drivers/ptp/ptp_ocp.c
-index 7a4a06148515a..5120d3d8cca4e 100644
---- a/drivers/ptp/ptp_ocp.c
-+++ b/drivers/ptp/ptp_ocp.c
-@@ -1425,10 +1425,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");
-@@ -1481,9 +1478,7 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
- pci_disable_device(pdev);
- out_unregister:
- devlink_unregister(devlink);
--out_free:
- devlink_free(devlink);
--
- return err;
- }
-
-diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
-index 8fcdf89da8aa9..33539f6c254d8 100644
---- a/drivers/staging/qlge/qlge_main.c
-+++ b/drivers/staging/qlge/qlge_main.c
-@@ -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;
-
-diff --git a/include/net/devlink.h b/include/net/devlink.h
-index 154cf0dbca372..3c023fd515634 100644
---- a/include/net/devlink.h
-+++ b/include/net/devlink.h
-@@ -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);
-diff --git a/net/core/devlink.c b/net/core/devlink.c
-index db76c55e1a6d7..3ff210c9dc5e1 100644
---- a/net/core/devlink.c
-+++ b/net/core/devlink.c
-@@ -8961,13 +8961,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);
-
-diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
-index 34763f575c308..711eeee885f93 100644
---- a/net/dsa/dsa2.c
-+++ b/net/dsa/dsa2.c
-@@ -850,10 +850,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
- */
-@@ -912,10 +909,8 @@ static int dsa_switch_setup(struct dsa_switch *ds)
- if (dp->ds == ds)
- dsa_port_devlink_teardown(dp);
- devlink_unregister(ds->devlink);
--free_devlink:
- devlink_free(ds->devlink);
- ds->devlink = NULL;
--
- return err;
- }
-
---
-2.40.1
-