mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum_router: Remove batch neighbour deletion causing FW bug
This reverts commit63dd00fa3e
. RAUHT DELETE_ALL seems to trigger a bug in FW. That manifests by later calls to RAUHT ADD of an IPv6 neighbor to fail with "bad parameter" error code. Signed-off-by: Petr Machata <petrm@mellanox.com> Fixes:63dd00fa3e
("mlxsw: spectrum_router: Add batch neighbour deletion") Reviewed-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
748a240c58
commit
8ba6b30ef7
|
@ -2436,25 +2436,16 @@ static void mlxsw_sp_neigh_fini(struct mlxsw_sp *mlxsw_sp)
|
|||
rhashtable_destroy(&mlxsw_sp->router->neigh_ht);
|
||||
}
|
||||
|
||||
static int mlxsw_sp_neigh_rif_flush(struct mlxsw_sp *mlxsw_sp,
|
||||
const struct mlxsw_sp_rif *rif)
|
||||
{
|
||||
char rauht_pl[MLXSW_REG_RAUHT_LEN];
|
||||
|
||||
mlxsw_reg_rauht_pack(rauht_pl, MLXSW_REG_RAUHT_OP_WRITE_DELETE_ALL,
|
||||
rif->rif_index, rif->addr);
|
||||
return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rauht), rauht_pl);
|
||||
}
|
||||
|
||||
static void mlxsw_sp_neigh_rif_gone_sync(struct mlxsw_sp *mlxsw_sp,
|
||||
struct mlxsw_sp_rif *rif)
|
||||
{
|
||||
struct mlxsw_sp_neigh_entry *neigh_entry, *tmp;
|
||||
|
||||
mlxsw_sp_neigh_rif_flush(mlxsw_sp, rif);
|
||||
list_for_each_entry_safe(neigh_entry, tmp, &rif->neigh_list,
|
||||
rif_list_node)
|
||||
rif_list_node) {
|
||||
mlxsw_sp_neigh_entry_update(mlxsw_sp, neigh_entry, false);
|
||||
mlxsw_sp_neigh_entry_destroy(mlxsw_sp, neigh_entry);
|
||||
}
|
||||
}
|
||||
|
||||
enum mlxsw_sp_nexthop_type {
|
||||
|
|
Loading…
Reference in New Issue