net/mlx5: Avoid disabling RoCE when uninitialized
authorMaor Gottlieb <maorg@mellanox.com>
Thu, 29 Aug 2019 23:42:34 +0000 (23:42 +0000)
committerSaeed Mahameed <saeedm@mellanox.com>
Mon, 2 Sep 2019 06:44:42 +0000 (23:44 -0700)
Move the check if RoCE steering is initialized to the
disable RoCE function, it will ensure that we disable
RoCE only if we succeeded in enabling it before.

Fixes: 80f09dfc237f ("net/mlx5: Eswitch, enable RoCE loopback traffic")
Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/rdma.c

index 18af698..0fc7de4 100644 (file)
@@ -14,9 +14,6 @@ static void mlx5_rdma_disable_roce_steering(struct mlx5_core_dev *dev)
 {
        struct mlx5_core_roce *roce = &dev->priv.roce;
 
-       if (!roce->ft)
-               return;
-
        mlx5_del_flow_rules(roce->allow_rule);
        mlx5_destroy_flow_group(roce->fg);
        mlx5_destroy_flow_table(roce->ft);
@@ -145,6 +142,11 @@ static int mlx5_rdma_add_roce_addr(struct mlx5_core_dev *dev)
 
 void mlx5_rdma_disable_roce(struct mlx5_core_dev *dev)
 {
+       struct mlx5_core_roce *roce = &dev->priv.roce;
+
+       if (!roce->ft)
+               return;
+
        mlx5_rdma_disable_roce_steering(dev);
        mlx5_rdma_del_roce_addr(dev);
        mlx5_nic_vport_disable_roce(dev);