mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-09 02:51:20 +00:00
mlxsw: spectrum_buffers: Fix pool value handling in mlxsw_sp_sb_tc_pool_bind_set
Pool index has to be converted by get_pool helper to work correctly for
egress pool. In mlxsw the egress pool index starts from 0.
Fixes: 0f433fa0ec
("mlxsw: spectrum_buffers: Implement shared buffer configuration")
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
56cff471d0
commit
8912862f06
@ -717,22 +717,18 @@ int mlxsw_sp_sb_tc_pool_bind_set(struct mlxsw_core_port *mlxsw_core_port,
|
||||
u8 local_port = mlxsw_sp_port->local_port;
|
||||
u8 pg_buff = tc_index;
|
||||
enum mlxsw_reg_sbxx_dir dir = pool_type;
|
||||
u8 pool = pool_index;
|
||||
u8 pool = pool_get(pool_index);
|
||||
u32 max_buff;
|
||||
int err;
|
||||
|
||||
if (dir != dir_get(pool_index))
|
||||
return -EINVAL;
|
||||
|
||||
err = mlxsw_sp_sb_threshold_in(mlxsw_sp, pool, dir,
|
||||
threshold, &max_buff);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (pool_type == DEVLINK_SB_POOL_TYPE_EGRESS) {
|
||||
if (pool < MLXSW_SP_SB_POOL_COUNT)
|
||||
return -EINVAL;
|
||||
pool -= MLXSW_SP_SB_POOL_COUNT;
|
||||
} else if (pool >= MLXSW_SP_SB_POOL_COUNT) {
|
||||
return -EINVAL;
|
||||
}
|
||||
return mlxsw_sp_sb_cm_write(mlxsw_sp, local_port, pg_buff, dir,
|
||||
0, max_buff, pool);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user