net/mlx5: Rate limit tables support
[linux-2.6-block.git] / drivers / net / ethernet / mellanox / mlx5 / core / main.c
index a19b59348dd685816c88736a4d9e47f78b3f847c..08cae34859601cd204f1274492518e6a9cbface8 100644 (file)
@@ -1144,6 +1144,13 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
                dev_err(&pdev->dev, "Failed to init flow steering\n");
                goto err_fs;
        }
+
+       err = mlx5_init_rl_table(dev);
+       if (err) {
+               dev_err(&pdev->dev, "Failed to init rate limiting\n");
+               goto err_rl;
+       }
+
 #ifdef CONFIG_MLX5_CORE_EN
        err = mlx5_eswitch_init(dev);
        if (err) {
@@ -1183,6 +1190,8 @@ err_sriov:
        mlx5_eswitch_cleanup(dev->priv.eswitch);
 #endif
 err_reg_dev:
+       mlx5_cleanup_rl_table(dev);
+err_rl:
        mlx5_cleanup_fs(dev);
 err_fs:
        mlx5_cleanup_mkey_table(dev);
@@ -1253,6 +1262,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
        mlx5_eswitch_cleanup(dev->priv.eswitch);
 #endif
 
+       mlx5_cleanup_rl_table(dev);
        mlx5_cleanup_fs(dev);
        mlx5_cleanup_mkey_table(dev);
        mlx5_cleanup_srq_table(dev);