On 29/03/2021 08:13, Ido Schimmel wrote: > On Sat, Mar 27, 2021 at 10:33:34PM +0000, Colin King wrote: >> From: Colin Ian King <colin.king@xxxxxxxxxxxxx> >> >> The variable force is being initialized with a value that is >> never read and it is being updated later with a new value. The >> initialization is redundant and can be removed. >> >> Addresses-Coverity: ("Unused value") >> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> >> --- >> drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c >> index 6ccaa194733b..ff240e3c29f7 100644 >> --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c >> +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c >> @@ -5059,7 +5059,7 @@ mlxsw_sp_nexthop_obj_bucket_adj_update(struct mlxsw_sp *mlxsw_sp, >> { >> u16 bucket_index = info->nh_res_bucket->bucket_index; >> struct netlink_ext_ack *extack = info->extack; >> - bool force = info->nh_res_bucket->force; >> + bool force; > > Actually, there is a bug to be fixed here: > > ``` > diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c > index 6ccaa194733b..41259c0004d1 100644 > --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c > +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c > @@ -5068,8 +5068,9 @@ mlxsw_sp_nexthop_obj_bucket_adj_update(struct mlxsw_sp *mlxsw_sp, > /* No point in trying an atomic replacement if the idle timer interval > * is smaller than the interval in which we query and clear activity. > */ > - force = info->nh_res_bucket->idle_timer_ms < > - MLXSW_SP_NH_GRP_ACTIVITY_UPDATE_INTERVAL; > + if (!force && info->nh_res_bucket->idle_timer_ms < > + MLXSW_SP_NH_GRP_ACTIVITY_UPDATE_INTERVAL) > + force = true; > > adj_index = nh->nhgi->adj_index + bucket_index; > err = mlxsw_sp_nexthop_update(mlxsw_sp, adj_index, nh, force, ratr_pl); > ``` > > We should only fallback to a non-atomic replacement when the current > replacement is atomic and the idle timer is too short. > > We currently ignore the value of 'force'. This means that a non-atomic > replacement ('force' is true) can be made atomic if idle timer is larger > than 1 second. > > Colin, do you mind if I submit it formally as a fix later this week? I > want to run it through our usual process. Will mention you in > Reported-by, obviously. Sure. Good idea. > >> char ratr_pl_new[MLXSW_REG_RATR_LEN]; >> char ratr_pl[MLXSW_REG_RATR_LEN]; >> u32 adj_index; >> -- >> 2.30.2 >>