net: dev: Fix non-RCU based lower dev walker
netdev_walk_all_lower_dev is not properly walking the lower device list. Commit1a3f060c1a
made netdev_walk_all_lower_dev similar to netdev_walk_all_upper_dev_rcu and netdev_walk_all_lower_dev_rcu but failed to update its netdev_next_lower_dev iterator. This patch fixes that. Fixes:1a3f060c1a
("net: Introduce new api for walking upper and lower devices") Reported-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Tested-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b917783c7b
commit
46b5ab1a7c
@ -5400,12 +5400,12 @@ static struct net_device *netdev_next_lower_dev(struct net_device *dev,
|
||||
{
|
||||
struct netdev_adjacent *lower;
|
||||
|
||||
lower = list_entry(*iter, struct netdev_adjacent, list);
|
||||
lower = list_entry((*iter)->next, struct netdev_adjacent, list);
|
||||
|
||||
if (&lower->list == &dev->adj_list.lower)
|
||||
return NULL;
|
||||
|
||||
*iter = lower->list.next;
|
||||
*iter = &lower->list;
|
||||
|
||||
return lower->dev;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user