Commit e67f928a authored by Shay Drory's avatar Shay Drory Committed by Saeed Mahameed
Browse files

net/mlx5: Devcom, Rename paired to ready



In downstream patch devcom will provide support for more than two
devices. The term 'paired' will be renamed as 'ready' to convey a
more accurate meaning.

Signed-off-by: default avatarShay Drory <shayd@nvidia.com>
Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
Reviewed-by: default avatarRoi Dayan <roid@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 6d5b7321
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -414,7 +414,7 @@ static int mlx5e_sqs2vport_start(struct mlx5_eswitch *esw,
		return 0;

	rpriv = mlx5e_rep_to_rep_priv(rep);
	if (mlx5_devcom_is_paired(esw->dev->priv.devcom, MLX5_DEVCOM_ESW_OFFLOADS))
	if (mlx5_devcom_comp_is_ready(esw->dev->priv.devcom, MLX5_DEVCOM_ESW_OFFLOADS))
		peer_esw = mlx5_devcom_get_peer_data(esw->dev->priv.devcom,
						     MLX5_DEVCOM_ESW_OFFLOADS);

+2 −2
Original line number Diff line number Diff line
@@ -4210,7 +4210,7 @@ static bool is_peer_flow_needed(struct mlx5e_tc_flow *flow)
		flow_flag_test(flow, INGRESS);
	bool act_is_encap = !!(attr->action &
			       MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT);
	bool esw_paired = mlx5_devcom_is_paired(esw_attr->in_mdev->priv.devcom,
	bool esw_paired = mlx5_devcom_comp_is_ready(esw_attr->in_mdev->priv.devcom,
						    MLX5_DEVCOM_ESW_OFFLOADS);

	if (!esw_paired)
+2 −2
Original line number Diff line number Diff line
@@ -2836,14 +2836,14 @@ static int mlx5_esw_offloads_devcom_event(int event,

		esw->paired[mlx5_get_dev_index(peer_esw->dev)] = true;
		peer_esw->paired[mlx5_get_dev_index(esw->dev)] = true;
		mlx5_devcom_set_paired(devcom, MLX5_DEVCOM_ESW_OFFLOADS, true);
		mlx5_devcom_comp_set_ready(devcom, MLX5_DEVCOM_ESW_OFFLOADS, true);
		break;

	case ESW_OFFLOADS_DEVCOM_UNPAIR:
		if (!esw->paired[mlx5_get_dev_index(peer_esw->dev)])
			break;

		mlx5_devcom_set_paired(devcom, MLX5_DEVCOM_ESW_OFFLOADS, false);
		mlx5_devcom_comp_set_ready(devcom, MLX5_DEVCOM_ESW_OFFLOADS, false);
		esw->paired[mlx5_get_dev_index(peer_esw->dev)] = false;
		peer_esw->paired[mlx5_get_dev_index(esw->dev)] = false;
		mlx5_esw_offloads_unpair(peer_esw, esw);
+2 −2
Original line number Diff line number Diff line
@@ -824,7 +824,7 @@ bool mlx5_shared_fdb_supported(struct mlx5_lag *ldev)
	    is_mdev_switchdev_mode(dev1) &&
	    mlx5_eswitch_vport_match_metadata_enabled(dev0->priv.eswitch) &&
	    mlx5_eswitch_vport_match_metadata_enabled(dev1->priv.eswitch) &&
	    mlx5_devcom_is_paired(dev0->priv.devcom,
	    mlx5_devcom_comp_is_ready(dev0->priv.devcom,
				      MLX5_DEVCOM_ESW_OFFLOADS) &&
	    MLX5_CAP_GEN(dev1, lag_native_fdb_selection) &&
	    MLX5_CAP_ESW(dev1, root_ft_on_other_esw) &&
+10 −10
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ struct mlx5_devcom_component {

	mlx5_devcom_event_handler_t handler;
	struct rw_semaphore sem;
	bool paired;
	bool ready;
};

struct mlx5_devcom_list {
@@ -218,25 +218,25 @@ int mlx5_devcom_send_event(struct mlx5_devcom *devcom,
	return err;
}

void mlx5_devcom_set_paired(struct mlx5_devcom *devcom,
void mlx5_devcom_comp_set_ready(struct mlx5_devcom *devcom,
				enum mlx5_devcom_components id,
			    bool paired)
				bool ready)
{
	struct mlx5_devcom_component *comp;

	comp = &devcom->priv->components[id];
	WARN_ON(!rwsem_is_locked(&comp->sem));

	WRITE_ONCE(comp->paired, paired);
	WRITE_ONCE(comp->ready, ready);
}

bool mlx5_devcom_is_paired(struct mlx5_devcom *devcom,
bool mlx5_devcom_comp_is_ready(struct mlx5_devcom *devcom,
			       enum mlx5_devcom_components id)
{
	if (IS_ERR_OR_NULL(devcom))
		return false;

	return READ_ONCE(devcom->priv->components[id].paired);
	return READ_ONCE(devcom->priv->components[id].ready);
}

void *mlx5_devcom_get_peer_data(struct mlx5_devcom *devcom,
@@ -250,7 +250,7 @@ void *mlx5_devcom_get_peer_data(struct mlx5_devcom *devcom,

	comp = &devcom->priv->components[id];
	down_read(&comp->sem);
	if (!READ_ONCE(comp->paired)) {
	if (!READ_ONCE(comp->ready)) {
		up_read(&comp->sem);
		return NULL;
	}
@@ -278,7 +278,7 @@ void *mlx5_devcom_get_peer_data_rcu(struct mlx5_devcom *devcom, enum mlx5_devcom
	/* This can change concurrently, however 'data' pointer will remain
	 * valid for the duration of RCU read section.
	 */
	if (!READ_ONCE(comp->paired))
	if (!READ_ONCE(comp->ready))
		return NULL;

	return rcu_dereference(comp->device[i].data);
Loading