mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
mlxsw: spectrum_mr: Fix list iteration in error path
[ Upstream commit f6bf1bafdc2152bb22aff3a4e947f2441a1d49e2 ]
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: c011ec1bbf ("mlxsw: spectrum: Add the multicast routing offloading logic")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5a1a00f6ac
commit
8567506413
1 changed files with 4 additions and 4 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue