* [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
@ 2019-02-17 7:18 Ido Schimmel
2019-02-17 18:14 ` David Miller
0 siblings, 1 reply; 6+ messages in thread
From: Ido Schimmel @ 2019-02-17 7:18 UTC (permalink / raw)
To: netdev; +Cc: davem, Jiri Pirko, Petr Machata, mlxsw, Ido Schimmel
From: Petr Machata <petrm@mellanox.com>
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>
---
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index 32519c93df17..b65e274b02e9 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -862,8 +862,9 @@ int __mlxsw_sp_port_headroom_set(struct mlxsw_sp_port *mlxsw_sp_port, int mtu,
for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) {
bool configure = false;
bool pfc = false;
+ u16 thres_cells;
+ u16 delay_cells;
bool lossy;
- u16 thres;
for (j = 0; j < IEEE_8021QAZ_MAX_TCS; j++) {
if (prio_tc[j] == i) {
@@ -877,10 +878,11 @@ int __mlxsw_sp_port_headroom_set(struct mlxsw_sp_port *mlxsw_sp_port, int mtu,
continue;
lossy = !(pfc || pause_en);
- thres = mlxsw_sp_pg_buf_threshold_get(mlxsw_sp, mtu);
- delay = mlxsw_sp_pg_buf_delay_get(mlxsw_sp, mtu, delay, pfc,
- pause_en);
- mlxsw_sp_pg_buf_pack(pbmc_pl, i, thres + delay, thres, lossy);
+ thres_cells = mlxsw_sp_pg_buf_threshold_get(mlxsw_sp, mtu);
+ delay_cells = mlxsw_sp_pg_buf_delay_get(mlxsw_sp, mtu, delay,
+ pfc, pause_en);
+ mlxsw_sp_pg_buf_pack(pbmc_pl, i, thres_cells + delay_cells,
+ thres_cells, lossy);
}
return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(pbmc), pbmc_pl);
--
2.20.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
2019-02-17 7:18 [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable Ido Schimmel
@ 2019-02-17 18:14 ` David Miller
2019-02-19 9:30 ` Ido Schimmel
0 siblings, 1 reply; 6+ messages in thread
From: David Miller @ 2019-02-17 18:14 UTC (permalink / raw)
To: idosch; +Cc: netdev, jiri, petrm, mlxsw
From: Ido Schimmel <idosch@mellanox.com>
Date: Sun, 17 Feb 2019 07:18:41 +0000
> From: Petr Machata <petrm@mellanox.com>
>
> 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>
Applied and queued up for -stable, thanks Ido.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
2019-02-17 18:14 ` David Miller
@ 2019-02-19 9:30 ` Ido Schimmel
2019-02-19 18:33 ` David Miller
0 siblings, 1 reply; 6+ messages in thread
From: Ido Schimmel @ 2019-02-19 9:30 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Jiri Pirko, Petr Machata, mlxsw
On Sun, Feb 17, 2019 at 10:14:40AM -0800, David Miller wrote:
> From: Ido Schimmel <idosch@mellanox.com>
> Date: Sun, 17 Feb 2019 07:18:41 +0000
>
> > From: Petr Machata <petrm@mellanox.com>
> >
> > 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>
>
> Applied and queued up for -stable, thanks Ido.
Hi David,
We have a series for net-next that adds support for Spectrum-2 shared
buffers and it depends on this patch. I was wondering if you could merge
net into net-next today or later this week, so that we could submit it.
Normally I would just wait for the merge to happen, but it looks like
this is going to be the last week to submit changes and I prefer not to
miss the window while waiting for the inevitable merge.
Thanks and sorry about the noise.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
2019-02-19 9:30 ` Ido Schimmel
@ 2019-02-19 18:33 ` David Miller
2019-02-20 8:12 ` Ido Schimmel
0 siblings, 1 reply; 6+ messages in thread
From: David Miller @ 2019-02-19 18:33 UTC (permalink / raw)
To: idosch; +Cc: netdev, jiri, petrm, mlxsw
From: Ido Schimmel <idosch@mellanox.com>
Date: Tue, 19 Feb 2019 09:30:31 +0000
> We have a series for net-next that adds support for Spectrum-2 shared
> buffers and it depends on this patch. I was wondering if you could merge
> net into net-next today or later this week, so that we could submit it.
>
> Normally I would just wait for the merge to happen, but it looks like
> this is going to be the last week to submit changes and I prefer not to
> miss the window while waiting for the inevitable merge.
>
> Thanks and sorry about the noise.
Ido, I will send Linus a pull request today and he should pull it in and
I should therefore be able to get net-next sync'd with it by the end of
tomorrow.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
2019-02-19 18:33 ` David Miller
@ 2019-02-20 8:12 ` Ido Schimmel
2019-02-20 18:41 ` David Miller
0 siblings, 1 reply; 6+ messages in thread
From: Ido Schimmel @ 2019-02-20 8:12 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Jiri Pirko, Petr Machata, mlxsw
On Tue, Feb 19, 2019 at 10:33:38AM -0800, David Miller wrote:
> From: Ido Schimmel <idosch@mellanox.com>
> Date: Tue, 19 Feb 2019 09:30:31 +0000
>
> > We have a series for net-next that adds support for Spectrum-2 shared
> > buffers and it depends on this patch. I was wondering if you could merge
> > net into net-next today or later this week, so that we could submit it.
> >
> > Normally I would just wait for the merge to happen, but it looks like
> > this is going to be the last week to submit changes and I prefer not to
> > miss the window while waiting for the inevitable merge.
> >
> > Thanks and sorry about the noise.
>
> Ido, I will send Linus a pull request today and he should pull it in and
> I should therefore be able to get net-next sync'd with it by the end of
> tomorrow.
Great, thanks!
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable
2019-02-20 8:12 ` Ido Schimmel
@ 2019-02-20 18:41 ` David Miller
0 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2019-02-20 18:41 UTC (permalink / raw)
To: idosch; +Cc: netdev, jiri, petrm, mlxsw
From: Ido Schimmel <idosch@mellanox.com>
Date: Wed, 20 Feb 2019 08:12:18 +0000
> On Tue, Feb 19, 2019 at 10:33:38AM -0800, David Miller wrote:
>> From: Ido Schimmel <idosch@mellanox.com>
>> Date: Tue, 19 Feb 2019 09:30:31 +0000
>>
>> > We have a series for net-next that adds support for Spectrum-2 shared
>> > buffers and it depends on this patch. I was wondering if you could merge
>> > net into net-next today or later this week, so that we could submit it.
>> >
>> > Normally I would just wait for the merge to happen, but it looks like
>> > this is going to be the last week to submit changes and I prefer not to
>> > miss the window while waiting for the inevitable merge.
>> >
>> > Thanks and sorry about the noise.
>>
>> Ido, I will send Linus a pull request today and he should pull it in and
>> I should therefore be able to get net-next sync'd with it by the end of
>> tomorrow.
>
> Great, thanks!
This is now done.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-02-20 18:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-17 7:18 [PATCH net] mlxsw: __mlxsw_sp_port_headroom_set(): Fix a use of local variable Ido Schimmel
2019-02-17 18:14 ` David Miller
2019-02-19 9:30 ` Ido Schimmel
2019-02-19 18:33 ` David Miller
2019-02-20 8:12 ` Ido Schimmel
2019-02-20 18:41 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).