Skip to content

Commit d4f25be

Browse files
msanallaPaolo Abeni
authored andcommitted
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: f14c1a1 ("net/mlx5: Allocate completion EQs dynamically") Signed-off-by: Maher Sanalla <[email protected]> Signed-off-by: Tariq Toukan <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent 9addffa commit d4f25be

File tree

1 file changed

+6
-0
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+6
-0
lines changed

drivers/net/ethernet/mellanox/mlx5/core/eq.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,6 +1061,12 @@ int mlx5_comp_eqn_get(struct mlx5_core_dev *dev, u16 vecidx, int *eqn)
10611061
struct mlx5_eq_comp *eq;
10621062
int ret = 0;
10631063

1064+
if (vecidx >= table->max_comp_eqs) {
1065+
mlx5_core_dbg(dev, "Requested vector index %u should be less than %u",
1066+
vecidx, table->max_comp_eqs);
1067+
return -EINVAL;
1068+
}
1069+
10641070
mutex_lock(&table->comp_lock);
10651071
eq = xa_load(&table->comp_eqs, vecidx);
10661072
if (eq) {

0 commit comments

Comments
 (0)