Register devlink before interfaces are added.
This will allow interfaces to use devlink while initalizing. For example,
call mlx5_is_roce_enabled.
Fixes: aba25279c100 ("net/mlx5e: Add TX reporter support")
Signed-off-by: Michael Guralnik <michaelgur@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
        if (err)
                goto err_load;
 
+       if (boot) {
+               err = mlx5_devlink_register(priv_to_devlink(dev), dev->device);
+               if (err)
+                       goto err_devlink_reg;
+       }
+
        if (mlx5_device_registered(dev)) {
                mlx5_attach_device(dev);
        } else {
        return err;
 
 err_reg_dev:
+       if (boot)
+               mlx5_devlink_unregister(priv_to_devlink(dev));
+err_devlink_reg:
        mlx5_unload(dev);
 err_load:
        if (boot)
 
        request_module_nowait(MLX5_IB_MOD);
 
-       err = mlx5_devlink_register(devlink, &pdev->dev);
-       if (err)
-               goto clean_load;
-
        err = mlx5_crdump_enable(dev);
        if (err)
                dev_err(&pdev->dev, "mlx5_crdump_enable failed with error code %d\n", err);
        pci_save_state(pdev);
        return 0;
 
-clean_load:
-       mlx5_unload_one(dev, true);
-
 err_load_one:
        mlx5_pci_close(dev);
 pci_init_err: