Commit 0522bab1 authored by David S. Miller's avatar David S. Miller

Merge branch 'mlxsw-Update-firmware-version'

Jiri Pirko says:

====================
mlxsw: Update firmware version

Ido says:

This set adjusts the driver to use a new firmware version. The new
version includes various enhancements and fixes detailed in the first
patch.

The second patch enables batch deletion of neighbours on a router
interface (RIF) which was not possible with previous versions.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 8983487f 63dd00fa
...@@ -74,8 +74,8 @@ ...@@ -74,8 +74,8 @@
#include "../mlxfw/mlxfw.h" #include "../mlxfw/mlxfw.h"
#define MLXSW_FWREV_MAJOR 13 #define MLXSW_FWREV_MAJOR 13
#define MLXSW_FWREV_MINOR 1420 #define MLXSW_FWREV_MINOR 1530
#define MLXSW_FWREV_SUBMINOR 122 #define MLXSW_FWREV_SUBMINOR 152
static const struct mlxsw_fw_rev mlxsw_sp_supported_fw_rev = { static const struct mlxsw_fw_rev mlxsw_sp_supported_fw_rev = {
.major = MLXSW_FWREV_MAJOR, .major = MLXSW_FWREV_MAJOR,
......
...@@ -2416,16 +2416,25 @@ static void mlxsw_sp_neigh_fini(struct mlxsw_sp *mlxsw_sp) ...@@ -2416,16 +2416,25 @@ static void mlxsw_sp_neigh_fini(struct mlxsw_sp *mlxsw_sp)
rhashtable_destroy(&mlxsw_sp->router->neigh_ht); 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, static void mlxsw_sp_neigh_rif_gone_sync(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_rif *rif) struct mlxsw_sp_rif *rif)
{ {
struct mlxsw_sp_neigh_entry *neigh_entry, *tmp; 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, 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); mlxsw_sp_neigh_entry_destroy(mlxsw_sp, neigh_entry);
}
} }
enum mlxsw_sp_nexthop_type { enum mlxsw_sp_nexthop_type {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment