mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 20:34:23 -04:00
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: f14c1a14e6 ("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>
This commit is contained in:
committed by
Paolo Abeni
parent
9addffa343
commit
d4f25be27e
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user