* [PATCH net] mlxsw: spectrum_mr: Fix list iteration in error path
@ 2020-03-26 14:17 Ido Schimmel
2020-03-26 19:01 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Ido Schimmel @ 2020-03-26 14:17 UTC (permalink / raw)
To: netdev; +Cc: davem, jiri, mlxsw, Ido Schimmel
From: Ido Schimmel <idosch@mellanox.com>
list_for_each_entry_from_reverse() iterates backwards over the list from
the current position, but in the error path we should start from the
previous position.
Fix this by using list_for_each_entry_continue_reverse() instead.
This suppresses the following error from coccinelle:
drivers/net/ethernet/mellanox/mlxsw//spectrum_mr.c:655:34-38: ERROR:
invalid reference to the index variable of the iterator on line 636
Fixes: c011ec1bbfd6 ("mlxsw: spectrum: Add the multicast routing offloading logic")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
---
drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
index 54275624718b..336e5ecc68f8 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
@@ -637,12 +637,12 @@ static int mlxsw_sp_mr_vif_resolve(struct mlxsw_sp_mr_table *mr_table,
return 0;
err_erif_unresolve:
- list_for_each_entry_from_reverse(erve, &mr_vif->route_evif_list,
- vif_node)
+ list_for_each_entry_continue_reverse(erve, &mr_vif->route_evif_list,
+ vif_node)
mlxsw_sp_mr_route_evif_unresolve(mr_table, erve);
err_irif_unresolve:
- list_for_each_entry_from_reverse(irve, &mr_vif->route_ivif_list,
- vif_node)
+ list_for_each_entry_continue_reverse(irve, &mr_vif->route_ivif_list,
+ vif_node)
mlxsw_sp_mr_route_ivif_unresolve(mr_table, irve);
mr_vif->rif = NULL;
return err;
--
2.24.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net] mlxsw: spectrum_mr: Fix list iteration in error path
2020-03-26 14:17 [PATCH net] mlxsw: spectrum_mr: Fix list iteration in error path Ido Schimmel
@ 2020-03-26 19:01 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2020-03-26 19:01 UTC (permalink / raw)
To: idosch; +Cc: netdev, jiri, mlxsw, idosch
From: Ido Schimmel <idosch@idosch.org>
Date: Thu, 26 Mar 2020 16:17:33 +0200
> From: Ido Schimmel <idosch@mellanox.com>
>
> list_for_each_entry_from_reverse() iterates backwards over the list from
> the current position, but in the error path we should start from the
> previous position.
>
> Fix this by using list_for_each_entry_continue_reverse() instead.
>
> This suppresses the following error from coccinelle:
>
> drivers/net/ethernet/mellanox/mlxsw//spectrum_mr.c:655:34-38: ERROR:
> invalid reference to the index variable of the iterator on line 636
>
> Fixes: c011ec1bbfd6 ("mlxsw: spectrum: Add the multicast routing offloading logic")
> Signed-off-by: Ido Schimmel <idosch@mellanox.com>
> Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Applied and queued up for -stable, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-03-26 19:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-26 14:17 [PATCH net] mlxsw: spectrum_mr: Fix list iteration in error path Ido Schimmel
2020-03-26 19:01 ` 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).