net/mlx4: Move devlink_register to be the last initialization command
authorLeon Romanovsky <leonro@nvidia.com>
Sat, 25 Sep 2021 11:22:49 +0000 (14:22 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Sep 2021 15:31:59 +0000 (16:31 +0100)
Refactor the code to make sure that devlink_register() is the last
command during initialization stage.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/main.c

index 27ed4694fbeacebde1477efb20bc8ce881ff55f9..9541f3a920c8c291ce0d698aafbe30f738a190f5 100644 (file)
@@ -4015,7 +4015,6 @@ 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);
 
-       devlink_register(devlink);
        ret = devlink_params_register(devlink, mlx4_devlink_params,
                                      ARRAY_SIZE(mlx4_devlink_params));
        if (ret)
@@ -4025,16 +4024,15 @@ static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
        if (ret)
                goto err_params_unregister;
 
-       devlink_params_publish(devlink);
-       devlink_reload_enable(devlink);
        pci_save_state(pdev);
+       devlink_register(devlink);
+       devlink_reload_enable(devlink);
        return 0;
 
 err_params_unregister:
        devlink_params_unregister(devlink, mlx4_devlink_params,
                                  ARRAY_SIZE(mlx4_devlink_params));
 err_devlink_unregister:
-       devlink_unregister(devlink);
        kfree(dev->persist);
 err_devlink_free:
        devlink_free(devlink);
@@ -4138,6 +4136,7 @@ static void mlx4_remove_one(struct pci_dev *pdev)
        int active_vfs = 0;
 
        devlink_reload_disable(devlink);
+       devlink_unregister(devlink);
 
        if (mlx4_is_slave(dev))
                persist->interface_state |= MLX4_INTERFACE_STATE_NOWAIT;
@@ -4173,7 +4172,6 @@ static void mlx4_remove_one(struct pci_dev *pdev)
        mlx4_pci_disable_device(dev);
        devlink_params_unregister(devlink, mlx4_devlink_params,
                                  ARRAY_SIZE(mlx4_devlink_params));
-       devlink_unregister(devlink);
        kfree(dev->persist);
        devlink_free(devlink);
 }