mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
authorPetr Machata <petrm@mellanox.com>
Sun, 17 Feb 2019 07:18:41 +0000 (07:18 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Feb 2019 08:07:24 +0000 (09:07 +0100)
commitbd1488b8d4768ebe026cd719d162a8d5507e59a5
tree229ae7c2013775408b1b92c09a1c84fd8c50d5b9
parent017d511085a36f45e5da70fd1a442f97a2e7c147
mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable

[ Upstream commit 289460404f6947ef1c38e67d680be9a84161250b ]

The function-local variable "delay" enters the loop interpreted as delay
in bits. However, inside the loop it gets overwritten by the result of
mlxsw_sp_pg_buf_delay_get(), and thus leaves the loop as quantity in
cells. Thus on second and further loop iterations, the headroom for a
given priority is configured with a wrong size.

Fix by introducing a loop-local variable, delay_cells. Rename thres to
thres_cells for consistency.

Fixes: f417f04da589 ("mlxsw: spectrum: Refactor port buffer configuration")
Signed-off-by: Petr Machata <petrm@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlxsw/spectrum.c