From: Maor Gottlieb <ma...@mellanox.com>

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 <ma...@mellanox.com>
Reviewed-by: Mark Bloch <ma...@mellanox.com>
Signed-off-by: Saeed Mahameed <sae...@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/rdma.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/rdma.c 
b/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
index 18af6981e0be..0fc7de4aa572 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
@@ -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);
-- 
2.21.0

Reply via email to