mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum: Check requested ageing time is valid
Commit c62987bbd8
("bridge: push bridge setting ageing_time down to
switchdev") added a check for minimum and maximum ageing time, but this
breaks existing behaviour where one can set ageing time to 0 for a
non-learning bridge.
Push this check down to the driver and allow the check in the bridge
layer to be removed. Currently ageing time 0 is refused by the driver,
but we can later add support for this functionality.
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8e2ad4113c
commit
869f63a4d2
|
@ -123,6 +123,8 @@ struct mlxsw_sp {
|
|||
#define MLXSW_SP_DEFAULT_LEARNING_INTERVAL 100
|
||||
unsigned int interval; /* ms */
|
||||
} fdb_notify;
|
||||
#define MLXSW_SP_MIN_AGEING_TIME 10
|
||||
#define MLXSW_SP_MAX_AGEING_TIME 1000000
|
||||
#define MLXSW_SP_DEFAULT_AGEING_TIME 300
|
||||
u32 ageing_time;
|
||||
struct mlxsw_sp_upper master_bridge;
|
||||
|
|
|
@ -311,8 +311,13 @@ static int mlxsw_sp_port_attr_br_ageing_set(struct mlxsw_sp_port *mlxsw_sp_port,
|
|||
unsigned long ageing_jiffies = clock_t_to_jiffies(ageing_clock_t);
|
||||
u32 ageing_time = jiffies_to_msecs(ageing_jiffies) / 1000;
|
||||
|
||||
if (switchdev_trans_ph_prepare(trans))
|
||||
if (switchdev_trans_ph_prepare(trans)) {
|
||||
if (ageing_time < MLXSW_SP_MIN_AGEING_TIME ||
|
||||
ageing_time > MLXSW_SP_MAX_AGEING_TIME)
|
||||
return -ERANGE;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
return mlxsw_sp_ageing_set(mlxsw_sp, ageing_time);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue