|
@@ -441,29 +441,29 @@ static void mlxsw_sp_txhdr_construct(struct sk_buff *skb,
|
|
|
mlxsw_tx_hdr_type_set(txhdr, MLXSW_TXHDR_TYPE_CONTROL);
|
|
|
}
|
|
|
|
|
|
-int mlxsw_sp_port_vid_stp_set(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid,
|
|
|
- u8 state)
|
|
|
+enum mlxsw_reg_spms_state mlxsw_sp_stp_spms_state(u8 state)
|
|
|
{
|
|
|
- struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
|
|
|
- enum mlxsw_reg_spms_state spms_state;
|
|
|
- char *spms_pl;
|
|
|
- int err;
|
|
|
-
|
|
|
switch (state) {
|
|
|
case BR_STATE_FORWARDING:
|
|
|
- spms_state = MLXSW_REG_SPMS_STATE_FORWARDING;
|
|
|
- break;
|
|
|
+ return MLXSW_REG_SPMS_STATE_FORWARDING;
|
|
|
case BR_STATE_LEARNING:
|
|
|
- spms_state = MLXSW_REG_SPMS_STATE_LEARNING;
|
|
|
- break;
|
|
|
+ return MLXSW_REG_SPMS_STATE_LEARNING;
|
|
|
case BR_STATE_LISTENING: /* fall-through */
|
|
|
case BR_STATE_DISABLED: /* fall-through */
|
|
|
case BR_STATE_BLOCKING:
|
|
|
- spms_state = MLXSW_REG_SPMS_STATE_DISCARDING;
|
|
|
- break;
|
|
|
+ return MLXSW_REG_SPMS_STATE_DISCARDING;
|
|
|
default:
|
|
|
BUG();
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+int mlxsw_sp_port_vid_stp_set(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid,
|
|
|
+ u8 state)
|
|
|
+{
|
|
|
+ enum mlxsw_reg_spms_state spms_state = mlxsw_sp_stp_spms_state(state);
|
|
|
+ struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
|
|
|
+ char *spms_pl;
|
|
|
+ int err;
|
|
|
|
|
|
spms_pl = kmalloc(MLXSW_REG_SPMS_LEN, GFP_KERNEL);
|
|
|
if (!spms_pl)
|