Commit cb560795 authored by Paolo Abeni's avatar Paolo Abeni
Browse files

Merge branch 'mlx5-misc-fixes-2024-10-15'

Tariq Toukan says:

====================
mlx5 misc fixes 2024-10-15

This patchset provides misc bug fixes from the team to the mlx5 core and
Eth drivers.

Series generated against:
commit 174714f0 ("selftests: drivers: net: fix name not defined")
====================

Link: https://patch.msgid.link/20241015093208.197603-1-tariqt@nvidia.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parents 7decd1f5 4dbc1d1a
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1765,6 +1765,10 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
	}
}

#define MLX5_MAX_MANAGE_PAGES_CMD_ENT 1
#define MLX5_CMD_MASK ((1UL << (cmd->vars.max_reg_cmds + \
			   MLX5_MAX_MANAGE_PAGES_CMD_ENT)) - 1)

static void mlx5_cmd_trigger_completions(struct mlx5_core_dev *dev)
{
	struct mlx5_cmd *cmd = &dev->cmd;
@@ -1776,7 +1780,7 @@ static void mlx5_cmd_trigger_completions(struct mlx5_core_dev *dev)
	/* wait for pending handlers to complete */
	mlx5_eq_synchronize_cmd_irq(dev);
	spin_lock_irqsave(&dev->cmd.alloc_lock, flags);
	vector = ~dev->cmd.vars.bitmask & ((1ul << (1 << dev->cmd.vars.log_sz)) - 1);
	vector = ~dev->cmd.vars.bitmask & MLX5_CMD_MASK;
	if (!vector)
		goto no_trig;

@@ -2361,7 +2365,7 @@ int mlx5_cmd_enable(struct mlx5_core_dev *dev)

	cmd->state = MLX5_CMDIF_STATE_DOWN;
	cmd->vars.max_reg_cmds = (1 << cmd->vars.log_sz) - 1;
	cmd->vars.bitmask = (1UL << cmd->vars.max_reg_cmds) - 1;
	cmd->vars.bitmask = MLX5_CMD_MASK;

	sema_init(&cmd->vars.sem, cmd->vars.max_reg_cmds);
	sema_init(&cmd->vars.pages_sem, 1);
+3 −1
Original line number Diff line number Diff line
@@ -6509,6 +6509,8 @@ static void _mlx5e_remove(struct auxiliary_device *adev)
	mlx5e_dcbnl_delete_app(priv);
	unregister_netdev(priv->netdev);
	_mlx5e_suspend(adev, false);
	/* Avoid cleanup if profile rollback failed. */
	if (priv->profile)
		priv->profile->cleanup(priv);
	mlx5e_destroy_netdev(priv);
	mlx5e_devlink_port_unregister(mlx5e_dev);
+6 −0
Original line number Diff line number Diff line
@@ -1061,6 +1061,12 @@ int mlx5_comp_eqn_get(struct mlx5_core_dev *dev, u16 vecidx, int *eqn)
	struct mlx5_eq_comp *eq;
	int ret = 0;

	if (vecidx >= table->max_comp_eqs) {
		mlx5_core_dbg(dev, "Requested vector index %u should be less than %u",
			      vecidx, table->max_comp_eqs);
		return -EINVAL;
	}

	mutex_lock(&table->comp_lock);
	eq = xa_load(&table->comp_eqs, vecidx);
	if (eq) {
+3 −2
Original line number Diff line number Diff line
@@ -1489,7 +1489,7 @@ int mlx5_eswitch_enable_locked(struct mlx5_eswitch *esw, int num_vfs)
	}

	if (err)
		goto abort;
		goto err_esw_enable;

	esw->fdb_table.flags |= MLX5_ESW_FDB_CREATED;

@@ -1503,7 +1503,8 @@ int mlx5_eswitch_enable_locked(struct mlx5_eswitch *esw, int num_vfs)

	return 0;

abort:
err_esw_enable:
	mlx5_eq_notifier_unregister(esw->dev, &esw->nb);
	mlx5_esw_acls_ns_cleanup(esw);
	return err;
}
+1 −3
Original line number Diff line number Diff line
@@ -691,7 +691,6 @@ static int hws_bwc_matcher_move(struct mlx5hws_bwc_matcher *bwc_matcher)
static int
hws_bwc_matcher_rehash_size(struct mlx5hws_bwc_matcher *bwc_matcher)
{
	u32 num_of_rules;
	int ret;

	/* If the current matcher size is already at its max size, we can't
@@ -705,8 +704,7 @@ hws_bwc_matcher_rehash_size(struct mlx5hws_bwc_matcher *bwc_matcher)
	 * Need to check again if we really need rehash.
	 * If the reason for rehash was size, but not any more - skip rehash.
	 */
	num_of_rules = __atomic_load_n(&bwc_matcher->num_of_rules, __ATOMIC_RELAXED);
	if (!hws_bwc_matcher_rehash_size_needed(bwc_matcher, num_of_rules))
	if (!hws_bwc_matcher_rehash_size_needed(bwc_matcher, bwc_matcher->num_of_rules))
		return 0;

	/* Now we're done all the checking - do the rehash:
Loading