net/mlx5: Fix lag port remapping logic
[ Upstream commit 8613641063 ]
Fix the logic so that if both ports netdevices are enabled or disabled,
use the trivial mapping without swapping.
If only one of the netdevice's tx is enabled, use it to remap traffic to
that port.
Signed-off-by: Eli Cohen <elic@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
62137d1ae5
commit
e54b4a5348
1 changed files with 13 additions and 6 deletions
|
|
@ -118,17 +118,24 @@ static bool __mlx5_lag_is_sriov(struct mlx5_lag *ldev)
|
|||
static void mlx5_infer_tx_affinity_mapping(struct lag_tracker *tracker,
|
||||
u8 *port1, u8 *port2)
|
||||
{
|
||||
bool p1en;
|
||||
bool p2en;
|
||||
|
||||
p1en = tracker->netdev_state[MLX5_LAG_P1].tx_enabled &&
|
||||
tracker->netdev_state[MLX5_LAG_P1].link_up;
|
||||
|
||||
p2en = tracker->netdev_state[MLX5_LAG_P2].tx_enabled &&
|
||||
tracker->netdev_state[MLX5_LAG_P2].link_up;
|
||||
|
||||
*port1 = 1;
|
||||
*port2 = 2;
|
||||
if (!tracker->netdev_state[MLX5_LAG_P1].tx_enabled ||
|
||||
!tracker->netdev_state[MLX5_LAG_P1].link_up) {
|
||||
*port1 = 2;
|
||||
if ((!p1en && !p2en) || (p1en && p2en))
|
||||
return;
|
||||
}
|
||||
|
||||
if (!tracker->netdev_state[MLX5_LAG_P2].tx_enabled ||
|
||||
!tracker->netdev_state[MLX5_LAG_P2].link_up)
|
||||
if (p1en)
|
||||
*port2 = 1;
|
||||
else
|
||||
*port1 = 2;
|
||||
}
|
||||
|
||||
void mlx5_modify_lag(struct mlx5_lag *ldev,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue