net/mlx5e: Return a valid errno if can't get lag device index
authorJianbo Liu <jianbol@mellanox.com>
Thu, 30 Apr 2020 01:59:20 +0000 (01:59 +0000)
committerSaeed Mahameed <saeedm@nvidia.com>
Tue, 15 Sep 2020 18:59:50 +0000 (11:59 -0700)
Change the return value to -ENOENT, to make it more meaningful.

Signed-off-by: Jianbo Liu <jianbol@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/lag.c
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c

index 874c70e..8b6e2aa 100644 (file)
@@ -102,7 +102,7 @@ int mlx5_lag_dev_get_netdev_idx(struct mlx5_lag *ldev,
                if (ldev->pf[i].netdev == ndev)
                        return i;
 
-       return -1;
+       return -ENOENT;
 }
 
 static bool __mlx5_lag_is_roce(struct mlx5_lag *ldev)
@@ -374,7 +374,7 @@ static int mlx5_handle_changeupper_event(struct mlx5_lag *ldev,
        rcu_read_lock();
        for_each_netdev_in_bond_rcu(upper, ndev_tmp) {
                idx = mlx5_lag_dev_get_netdev_idx(ldev, ndev_tmp);
-               if (idx > -1)
+               if (idx >= 0)
                        bond_status |= (1 << idx);
 
                num_slaves++;
@@ -418,7 +418,7 @@ static int mlx5_handle_changelowerstate_event(struct mlx5_lag *ldev,
                return 0;
 
        idx = mlx5_lag_dev_get_netdev_idx(ldev, ndev);
-       if (idx == -1)
+       if (idx < 0)
                return 0;
 
        /* This information is used to determine virtual to physical
index 9e68f59..d192d25 100644 (file)
@@ -131,7 +131,12 @@ static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev,
                        struct net_device *nh_dev = nh->fib_nh_dev;
                        int i = mlx5_lag_dev_get_netdev_idx(ldev, nh_dev);
 
-                       mlx5_lag_set_port_affinity(ldev, ++i);
+                       if (i < 0)
+                               i = MLX5_LAG_NORMAL_AFFINITY;
+                       else
+                               ++i;
+
+                       mlx5_lag_set_port_affinity(ldev, i);
                }
                return;
        }