mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
net/mlx5: Only set num_doorbells on a fully initialized SF
The validation for the num_doorbells devlink param rejects values
greater than num_channels. For lightweight SFs, this ends up accessing
a NULL priv->eq_table, leading to a crash.
Fix that by rejecting setting num_doorbells on uninitialized SFs.
Fixes: 11bbcfb766 ("net/mlx5e: Use the 'num_doorbells' devlink param")
Signed-off-by: Cosmin Ratiu <cratiu@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Daniel Machon <daniel.machon@microchip.com>
Link: https://patch.msgid.link/20261026084503.4122732-1-tariqt@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
fcc00b15cb
commit
fa503935c2
|
|
@ -542,6 +542,12 @@ static int mlx5_devlink_num_doorbells_validate(struct devlink *devlink, u32 id,
|
|||
u32 val32 = val->vu32;
|
||||
u32 max_num_channels;
|
||||
|
||||
if (mlx5_dev_is_lightweight(mdev)) {
|
||||
NL_SET_ERR_MSG_MOD(extack,
|
||||
"Setting num_doorbells requires full device initialization; reload the device first");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
max_num_channels = mlx5e_get_max_num_channels(mdev);
|
||||
if (val32 > max_num_channels) {
|
||||
NL_SET_ERR_MSG_FMT_MOD(extack,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user