Commit dd3fddb8 authored by Roi Dayan's avatar Roi Dayan Committed by Saeed Mahameed
Browse files

net/mlx5: E-Switch, handle devcom events only for ports on the same device



This is the same check as LAG mode checks if to enable lag.
This will fix adding peer miss rules if lag is not supported
and even an incorrect rules in socket direct mode.

Also fix the incorrect comment on mlx5_get_next_phys_dev() as flow #1
doesn't exists.

Fixes: ac004b83 ("net/mlx5e: E-Switch, Add peer miss rules")
Signed-off-by: default avatarRoi Dayan <roid@nvidia.com>
Reviewed-by: default avatarMaor Dickman <maord@nvidia.com>
Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent c6719725
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -500,10 +500,7 @@ static int next_phys_dev(struct device *dev, const void *data)
	return 1;
}

/* This function is called with two flows:
 * 1. During initialization of mlx5_core_dev and we don't need to lock it.
 * 2. During LAG configure stage and caller holds &mlx5_intf_mutex.
 */
/* Must be called with intf_mutex held */
struct mlx5_core_dev *mlx5_get_next_phys_dev(struct mlx5_core_dev *dev)
{
	struct auxiliary_device *adev;
+3 −0
Original line number Diff line number Diff line
@@ -2368,6 +2368,9 @@ static int mlx5_esw_offloads_devcom_event(int event,

	switch (event) {
	case ESW_OFFLOADS_DEVCOM_PAIR:
		if (mlx5_get_next_phys_dev(esw->dev) != peer_esw->dev)
			break;

		if (mlx5_eswitch_vport_match_metadata_enabled(esw) !=
		    mlx5_eswitch_vport_match_metadata_enabled(peer_esw))
			break;