Merge branch 'mlxsw-misc-updates'
Ido Schimmel says: ==================== mlxsw: Misc updates This patch set contains miscellaneous updates for mlxsw. Patches #1-#2 reword an extack message to make it clearer and fix a comment. Patch #3 bumps the minimum firmware version enforced by mlxsw. This is needed for two upcoming features: Resilient hashing and per-flow sampling. Patches #4-#6 improve the information reported via devlink-health for 'fw_fatal' events. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
a3c392302a
|
@ -1728,7 +1728,7 @@ static int mlxsw_core_health_fw_fatal_dump(struct devlink_health_reporter *repor
|
|||
return err;
|
||||
|
||||
event_id = mlxsw_reg_mfde_event_id_get(mfde_pl);
|
||||
err = devlink_fmsg_u8_pair_put(fmsg, "id", event_id);
|
||||
err = devlink_fmsg_u32_pair_put(fmsg, "id", event_id);
|
||||
if (err)
|
||||
return err;
|
||||
switch (event_id) {
|
||||
|
@ -1806,6 +1806,10 @@ static int mlxsw_core_health_fw_fatal_dump(struct devlink_health_reporter *repor
|
|||
err = devlink_fmsg_u8_pair_put(fmsg, "log_irisc_id", val);
|
||||
if (err)
|
||||
return err;
|
||||
val = mlxsw_reg_mfde_log_ip_get(mfde_pl);
|
||||
err = devlink_fmsg_u64_pair_put(fmsg, "log_ip", val);
|
||||
if (err)
|
||||
return err;
|
||||
} else if (event_id == MLXSW_REG_MFDE_EVENT_ID_KVD_IM_STOP) {
|
||||
val = mlxsw_reg_mfde_pipes_mask_get(mfde_pl);
|
||||
err = devlink_fmsg_u32_pair_put(fmsg, "pipes_mask", val);
|
||||
|
|
|
@ -5637,7 +5637,7 @@ static inline void mlxsw_reg_pspa_pack(char *payload, u8 swid, u8 local_port)
|
|||
|
||||
MLXSW_REG_DEFINE(pmaos, MLXSW_REG_PMAOS_ID, MLXSW_REG_PMAOS_LEN);
|
||||
|
||||
/* reg_slot_index
|
||||
/* reg_pmaos_slot_index
|
||||
* Slot index.
|
||||
* Access: Index
|
||||
*/
|
||||
|
@ -10919,7 +10919,7 @@ MLXSW_REG_DEFINE(mfde, MLXSW_REG_MFDE_ID, MLXSW_REG_MFDE_LEN);
|
|||
* Which irisc triggered the event
|
||||
* Access: RO
|
||||
*/
|
||||
MLXSW_ITEM32(reg, mfde, irisc_id, 0x00, 8, 4);
|
||||
MLXSW_ITEM32(reg, mfde, irisc_id, 0x00, 24, 8);
|
||||
|
||||
enum mlxsw_reg_mfde_event_id {
|
||||
MLXSW_REG_MFDE_EVENT_ID_CRSPACE_TO = 1,
|
||||
|
@ -10930,7 +10930,7 @@ enum mlxsw_reg_mfde_event_id {
|
|||
/* reg_mfde_event_id
|
||||
* Access: RO
|
||||
*/
|
||||
MLXSW_ITEM32(reg, mfde, event_id, 0x00, 0, 8);
|
||||
MLXSW_ITEM32(reg, mfde, event_id, 0x00, 0, 16);
|
||||
|
||||
enum mlxsw_reg_mfde_method {
|
||||
MLXSW_REG_MFDE_METHOD_QUERY,
|
||||
|
@ -10979,6 +10979,13 @@ MLXSW_ITEM32(reg, mfde, log_address, 0x10, 0, 32);
|
|||
*/
|
||||
MLXSW_ITEM32(reg, mfde, log_id, 0x14, 0, 4);
|
||||
|
||||
/* reg_mfde_log_ip
|
||||
* IP (instruction pointer) that triggered the timeout.
|
||||
* Valid in case event_id == MLXSW_REG_MFDE_EVENT_ID_CRSPACE_TO
|
||||
* Access: RO
|
||||
*/
|
||||
MLXSW_ITEM64(reg, mfde, log_ip, 0x18, 0, 64);
|
||||
|
||||
/* reg_mfde_pipes_mask
|
||||
* Bit per kvh pipe.
|
||||
* Access: RO
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
|
||||
#define MLXSW_SP1_FWREV_MAJOR 13
|
||||
#define MLXSW_SP1_FWREV_MINOR 2008
|
||||
#define MLXSW_SP1_FWREV_SUBMINOR 2018
|
||||
#define MLXSW_SP1_FWREV_SUBMINOR 2406
|
||||
#define MLXSW_SP1_FWREV_CAN_RESET_MINOR 1702
|
||||
|
||||
static const struct mlxsw_fw_rev mlxsw_sp1_fw_rev = {
|
||||
|
@ -62,7 +62,7 @@ static const struct mlxsw_fw_rev mlxsw_sp1_fw_rev = {
|
|||
|
||||
#define MLXSW_SP2_FWREV_MAJOR 29
|
||||
#define MLXSW_SP2_FWREV_MINOR 2008
|
||||
#define MLXSW_SP2_FWREV_SUBMINOR 2018
|
||||
#define MLXSW_SP2_FWREV_SUBMINOR 2406
|
||||
|
||||
static const struct mlxsw_fw_rev mlxsw_sp2_fw_rev = {
|
||||
.major = MLXSW_SP2_FWREV_MAJOR,
|
||||
|
@ -77,7 +77,7 @@ static const struct mlxsw_fw_rev mlxsw_sp2_fw_rev = {
|
|||
|
||||
#define MLXSW_SP3_FWREV_MAJOR 30
|
||||
#define MLXSW_SP3_FWREV_MINOR 2008
|
||||
#define MLXSW_SP3_FWREV_SUBMINOR 2018
|
||||
#define MLXSW_SP3_FWREV_SUBMINOR 2406
|
||||
|
||||
static const struct mlxsw_fw_rev mlxsw_sp3_fw_rev = {
|
||||
.major = MLXSW_SP3_FWREV_MAJOR,
|
||||
|
@ -4283,7 +4283,7 @@ static int mlxsw_sp_netdevice_bridge_event(struct net_device *br_dev,
|
|||
if (br_vlan_enabled(br_dev)) {
|
||||
br_vlan_get_proto(br_dev, &proto);
|
||||
if (proto == ETH_P_8021AD) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Uppers are not supported on top of an 802.1ad bridge");
|
||||
NL_SET_ERR_MSG_MOD(extack, "Upper devices are not supported on top of an 802.1ad bridge");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue