mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
devlink: remove reload failed checks in params get/set callbacks
[ Upstream commit633d76ad01
] The checks in question were introduced by: commit6b4db2e528
("devlink: Fix use-after-free after a failed reload"). That fixed an issue of reload with mlxsw driver. Back then, that was a valid fix, because there was a limitation in place that prevented drivers from registering/unregistering params when devlink instance was registered. It was possible to do the fix differently by changing drivers to register/unregister params in appropriate places making sure the ops operate only on memory which is allocated and initialized. But that, as a dependency, would require to remove the limitation mentioned above. Eventually, this limitation was lifted by: commit1d18bb1a4d
("devlink: allow registering parameters after the instance") Also, the alternative fix (which also fixed another issue) was done by: commit74cbc3c03c
("mlxsw: spectrum_acl_tcam: Move devlink param to TCAM code"). Therefore, the checks are no longer relevant. Each driver should make sure to have the params registered only when the memory the ops are working with is allocated and initialized. So remove the checks. Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
a0300edca5
commit
ac70101e5b
@ -5218,7 +5218,7 @@ static int devlink_param_get(struct devlink *devlink,
|
|||||||
const struct devlink_param *param,
|
const struct devlink_param *param,
|
||||||
struct devlink_param_gset_ctx *ctx)
|
struct devlink_param_gset_ctx *ctx)
|
||||||
{
|
{
|
||||||
if (!param->get || devlink->reload_failed)
|
if (!param->get)
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
return param->get(devlink, param->id, ctx);
|
return param->get(devlink, param->id, ctx);
|
||||||
}
|
}
|
||||||
@ -5227,7 +5227,7 @@ static int devlink_param_set(struct devlink *devlink,
|
|||||||
const struct devlink_param *param,
|
const struct devlink_param *param,
|
||||||
struct devlink_param_gset_ctx *ctx)
|
struct devlink_param_gset_ctx *ctx)
|
||||||
{
|
{
|
||||||
if (!param->set || devlink->reload_failed)
|
if (!param->set)
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
return param->set(devlink, param->id, ctx);
|
return param->set(devlink, param->id, ctx);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user