Commit d4f25be27e3e for kernel

commit d4f25be27e3ef7e23998fbd3dd4bff0602de7ae5
Author: Maher Sanalla <msanalla@nvidia.com>
Date:   Tue Oct 15 12:32:05 2024 +0300

    net/mlx5: Check for invalid vector index on EQ creation

    Currently, mlx5 driver does not enforce vector index to be lower than
    the maximum number of supported completion vectors when requesting a
    new completion EQ. Thus, mlx5_comp_eqn_get() fails when trying to
    acquire an IRQ with an improper vector index.

    To prevent the case above, enforce that vector index value is
    valid and lower than maximum in mlx5_comp_eqn_get() before handling the
    request.

    Fixes: f14c1a14e632 ("net/mlx5: Allocate completion EQs dynamically")
    Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
index 2505f90c0b39..68cb86b37e56 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
@@ -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) {