Commit 0b6e452c authored by Yevgeny Kliteynik's avatar Yevgeny Kliteynik Committed by Jakub Kicinski
Browse files

net/mlx5: HWS, fix typo - 'nope' to 'nop'



Fix typo - rename 'nope_locations' to 'nop_locations', which describes
the locations of 'nop' actions. To shorten the lines, this renaming
also required some refactoring.

Signed-off-by: default avatarYevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/1747766802-958178-4-git-send-email-tariqt@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b206d9ec
Loading
Loading
Loading
Loading
+28 −25
Original line number Diff line number Diff line
@@ -1207,16 +1207,16 @@ hws_action_create_modify_header_hws(struct mlx5hws_action *action,
	for (i = 0; i < num_of_patterns; i++) {
		size_t new_num_actions;
		size_t cur_num_actions;
		u32 nope_location;
		u32 nop_locations;

		cur_num_actions = pattern[i].sz / MLX5HWS_MODIFY_ACTION_SIZE;

		mlx5hws_pat_calc_nope(pattern[i].data, cur_num_actions,
		mlx5hws_pat_calc_nop(pattern[i].data, cur_num_actions,
				     pat_max_sz / MLX5HWS_MODIFY_ACTION_SIZE,
				      &new_num_actions, &nope_location,
				     &new_num_actions, &nop_locations,
				     &new_pattern[i * pat_max_sz]);

		action[i].modify_header.nope_locations = nope_location;
		action[i].modify_header.nop_locations = nop_locations;
		action[i].modify_header.num_of_actions = new_num_actions;

		max_mh_actions = max(max_mh_actions, new_num_actions);
@@ -1263,7 +1263,7 @@ hws_action_create_modify_header_hws(struct mlx5hws_action *action,
				MLX5_GET(set_action_in, pattern[i].data, action_type);
		} else {
			/* Multiple modify actions require a pattern */
			if (unlikely(action[i].modify_header.nope_locations)) {
			if (unlikely(action[i].modify_header.nop_locations)) {
				size_t pattern_sz;

				pattern_sz = action[i].modify_header.num_of_actions *
@@ -2105,12 +2105,12 @@ static void hws_action_modify_write(struct mlx5hws_send_engine *queue,
				    u32 arg_idx,
				    u8 *arg_data,
				    u16 num_of_actions,
				    u32 nope_locations)
				    u32 nop_locations)
{
	u8 *new_arg_data = NULL;
	int i, j;

	if (unlikely(nope_locations)) {
	if (unlikely(nop_locations)) {
		new_arg_data = kcalloc(num_of_actions,
				       MLX5HWS_MODIFY_ACTION_SIZE, GFP_KERNEL);
		if (unlikely(!new_arg_data))
@@ -2118,7 +2118,7 @@ static void hws_action_modify_write(struct mlx5hws_send_engine *queue,

		for (i = 0, j = 0; i < num_of_actions; i++, j++) {
			memcpy(&new_arg_data[j], arg_data, MLX5HWS_MODIFY_ACTION_SIZE);
			if (BIT(i) & nope_locations)
			if (BIT(i) & nop_locations)
				j++;
		}
	}
@@ -2215,6 +2215,7 @@ hws_action_setter_modify_header(struct mlx5hws_actions_apply_data *apply,
	struct mlx5hws_action *action;
	u32 arg_sz, arg_idx;
	u8 *single_action;
	u8 max_actions;
	__be32 stc_idx;

	rule_action = &apply->rule_action[setter->idx_double];
@@ -2242,9 +2243,12 @@ hws_action_setter_modify_header(struct mlx5hws_actions_apply_data *apply,

		apply->wqe_data[MLX5HWS_ACTION_OFFSET_DW7] =
			*(__be32 *)MLX5_ADDR_OF(set_action_in, single_action, data);
	} else {
		return;
	}

	/* Argument offset multiple with number of args per these actions */
		arg_sz = mlx5hws_arg_get_arg_size(action->modify_header.max_num_of_actions);
	max_actions = action->modify_header.max_num_of_actions;
	arg_sz = mlx5hws_arg_get_arg_size(max_actions);
	arg_idx = rule_action->modify_header.offset * arg_sz;

	apply->wqe_data[MLX5HWS_ACTION_OFFSET_DW7] = htonl(arg_idx);
@@ -2255,8 +2259,7 @@ hws_action_setter_modify_header(struct mlx5hws_actions_apply_data *apply,
					action->modify_header.arg_id + arg_idx,
					rule_action->modify_header.data,
					action->modify_header.num_of_actions,
						action->modify_header.nope_locations);
		}
					action->modify_header.nop_locations);
	}
}

+1 −1
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ struct mlx5hws_action {
					u32 pat_id;
					u32 arg_id;
					__be64 single_action;
					u32 nope_locations;
					u32 nop_locations;
					u8 num_of_patterns;
					u8 single_action_type;
					u8 num_of_actions;
+9 −9
Original line number Diff line number Diff line
@@ -522,9 +522,9 @@ bool mlx5hws_pat_verify_actions(struct mlx5hws_context *ctx, __be64 pattern[], s
	return true;
}

void mlx5hws_pat_calc_nope(__be64 *pattern, size_t num_actions,
void mlx5hws_pat_calc_nop(__be64 *pattern, size_t num_actions,
			  size_t max_actions, size_t *new_size,
			   u32 *nope_location, __be64 *new_pat)
			  u32 *nop_locations, __be64 *new_pat)
{
	u16 prev_src_field = 0, prev_dst_field = 0;
	u16 src_field, dst_field;
@@ -532,7 +532,7 @@ void mlx5hws_pat_calc_nope(__be64 *pattern, size_t num_actions,
	size_t i, j;

	*new_size = num_actions;
	*nope_location = 0;
	*nop_locations = 0;

	if (num_actions == 1)
		return;
@@ -546,18 +546,18 @@ void mlx5hws_pat_calc_nope(__be64 *pattern, size_t num_actions,
			if (action_type == MLX5_ACTION_TYPE_COPY &&
			    (prev_src_field == src_field ||
			     prev_dst_field == dst_field)) {
				/* need Nope */
				/* need Nop */
				*new_size += 1;
				*nope_location |= BIT(i);
				*nop_locations |= BIT(i);
				memset(&new_pat[j], 0, MLX5HWS_MODIFY_ACTION_SIZE);
				MLX5_SET(set_action_in, &new_pat[j],
					 action_type,
					 MLX5_MODIFICATION_TYPE_NOP);
				j++;
			} else if (prev_src_field == src_field) {
				/* need Nope*/
				/* need Nop */
				*new_size += 1;
				*nope_location |= BIT(i);
				*nop_locations |= BIT(i);
				MLX5_SET(set_action_in, &new_pat[j],
					 action_type,
					 MLX5_MODIFICATION_TYPE_NOP);
@@ -568,7 +568,7 @@ void mlx5hws_pat_calc_nope(__be64 *pattern, size_t num_actions,
		/* check if no more space */
		if (j > max_actions) {
			*new_size = num_actions;
			*nope_location = 0;
			*nop_locations = 0;
			return;
		}

+3 −2
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ int mlx5hws_arg_write_inline_arg_data(struct mlx5hws_context *ctx,
				      u8 *arg_data,
				      size_t data_size);

void mlx5hws_pat_calc_nope(__be64 *pattern, size_t num_actions, size_t max_actions,
			   size_t *new_size, u32 *nope_location, __be64 *new_pat);
void mlx5hws_pat_calc_nop(__be64 *pattern, size_t num_actions,
			  size_t max_actions, size_t *new_size,
			  u32 *nop_locations, __be64 *new_pat);
#endif /* MLX5HWS_PAT_ARG_H_ */