mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
ethtool: module: check fw_flash_in_progress under rtnl_lock
ethnl_set_module_validate() inspects module_fw_flash_in_progress
but validate is meant for _input_ validation, not state validation.
rtnl_lock is not held, yet. Move the check into ethnl_set_module().
Fixes: 32b4c8b53e ("ethtool: Add ability to flash transceiver modules' firmware")
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
Link: https://patch.msgid.link/20260522231312.1710836-5-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
7a84b965ff
commit
504eaefa44
|
|
@ -120,12 +120,6 @@ ethnl_set_module_validate(struct ethnl_req_info *req_info,
|
|||
if (!tb[ETHTOOL_A_MODULE_POWER_MODE_POLICY])
|
||||
return 0;
|
||||
|
||||
if (req_info->dev->ethtool->module_fw_flash_in_progress) {
|
||||
NL_SET_ERR_MSG(info->extack,
|
||||
"Module firmware flashing is in progress");
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
if (!ops->get_module_power_mode || !ops->set_module_power_mode) {
|
||||
NL_SET_ERR_MSG_ATTR(info->extack,
|
||||
tb[ETHTOOL_A_MODULE_POWER_MODE_POLICY],
|
||||
|
|
@ -148,6 +142,12 @@ ethnl_set_module(struct ethnl_req_info *req_info, struct genl_info *info)
|
|||
|
||||
ops = dev->ethtool_ops;
|
||||
|
||||
if (dev->ethtool->module_fw_flash_in_progress) {
|
||||
NL_SET_ERR_MSG(info->extack,
|
||||
"Module firmware flashing is in progress");
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
power_new.policy = nla_get_u8(tb[ETHTOOL_A_MODULE_POWER_MODE_POLICY]);
|
||||
ret = ops->get_module_power_mode(dev, &power, info->extack);
|
||||
if (ret < 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user