forked from luck/tmp_suning_uos_patched
mlxsw: spectrum_router: Nullify nexthop's neigh pointer
When we invalidate a nexthop we should also invalidate its neighbour entry pointer as it might be destroyed later on. This makes the nexthop de-init function symmetric with its init and also ensures nobody will try to access the neighbour entry. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b05d0cfa19
commit
e58be79e2d
@ -1398,12 +1398,13 @@ static void mlxsw_sp_nexthop_fini(struct mlxsw_sp *mlxsw_sp,
|
||||
|
||||
__mlxsw_sp_nexthop_neigh_update(nh, true);
|
||||
list_del(&nh->neigh_list_node);
|
||||
nh->neigh_entry = NULL;
|
||||
|
||||
/* If that is the last nexthop connected to that neigh, remove from
|
||||
* nexthop_neighs_list
|
||||
*/
|
||||
if (list_empty(&nh->neigh_entry->nexthop_list))
|
||||
list_del(&nh->neigh_entry->nexthop_neighs_list_node);
|
||||
if (list_empty(&neigh_entry->nexthop_list))
|
||||
list_del(&neigh_entry->nexthop_neighs_list_node);
|
||||
|
||||
if (!neigh_entry->connected && list_empty(&neigh_entry->nexthop_list))
|
||||
mlxsw_sp_neigh_entry_destroy(mlxsw_sp, neigh_entry);
|
||||
|
Loading…
Reference in New Issue
Block a user