|
@@ -214,7 +214,15 @@ static int __mlxsw_sp_port_flood_set(struct mlxsw_sp_port *mlxsw_sp_port,
|
|
mlxsw_reg_sftr_pack(sftr_pl, MLXSW_SP_FLOOD_TABLE_BM, idx_begin,
|
|
mlxsw_reg_sftr_pack(sftr_pl, MLXSW_SP_FLOOD_TABLE_BM, idx_begin,
|
|
table_type, range, local_port, set);
|
|
table_type, range, local_port, set);
|
|
err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sftr), sftr_pl);
|
|
err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sftr), sftr_pl);
|
|
|
|
+ if (err)
|
|
|
|
+ goto err_flood_bm_set;
|
|
|
|
+ else
|
|
|
|
+ goto buffer_out;
|
|
|
|
|
|
|
|
+err_flood_bm_set:
|
|
|
|
+ mlxsw_reg_sftr_pack(sftr_pl, MLXSW_SP_FLOOD_TABLE_UC, idx_begin,
|
|
|
|
+ table_type, range, local_port, !set);
|
|
|
|
+ mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sftr), sftr_pl);
|
|
buffer_out:
|
|
buffer_out:
|
|
kfree(sftr_pl);
|
|
kfree(sftr_pl);
|
|
return err;
|
|
return err;
|