mirror of
https://github.com/torvalds/linux.git
synced 2024-12-07 19:41:31 +00:00
mlxsw: core_env: Forbid power mode set and get on RJ45 ports
PMMP (Port Module Memory Map Properties) and MCION (Management Cable IO and Notifications) registers are not supported on RJ45 ports, so setting and getting power mode should be rejected. Therefore, before trying to access those registers, validate the port module type that was queried during initialization and return an error to user space in case the port module type is RJ45 (twisted pair). Set output example: # ethtool --set-module swp1 power-mode-policy auto netlink error: mlxsw_core: Power mode is not supported on port module type netlink error: Invalid argument Get output example: $ ethtool --show-module swp11 netlink error: mlxsw_core: Power mode is not supported on port module type netlink error: Invalid argument Signed-off-by: Danielle Ratson <danieller@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
615ebb8cc4
commit
c8f994ccdd
@ -509,6 +509,12 @@ mlxsw_env_get_module_power_mode(struct mlxsw_core *mlxsw_core, u8 module,
|
||||
|
||||
mutex_lock(&mlxsw_env->module_info_lock);
|
||||
|
||||
err = __mlxsw_env_validate_module_type(mlxsw_core, module);
|
||||
if (err) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Power mode is not supported on port module type");
|
||||
goto out;
|
||||
}
|
||||
|
||||
params->policy = mlxsw_env->module_info[module].power_mode_policy;
|
||||
|
||||
mlxsw_reg_mcion_pack(mcion_pl, module);
|
||||
@ -619,6 +625,13 @@ mlxsw_env_set_module_power_mode(struct mlxsw_core *mlxsw_core, u8 module,
|
||||
|
||||
mutex_lock(&mlxsw_env->module_info_lock);
|
||||
|
||||
err = __mlxsw_env_validate_module_type(mlxsw_core, module);
|
||||
if (err) {
|
||||
NL_SET_ERR_MSG_MOD(extack,
|
||||
"Power mode set is not supported on port module type");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (mlxsw_env->module_info[module].power_mode_policy == policy)
|
||||
goto out;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user