mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-28 07:13:34 +00:00
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
1 changed files with 2 additions and 2 deletions
|
@ -5400,12 +5400,12 @@ static struct net_device *netdev_next_lower_dev(struct net_device *dev,
|
||||||
{
|
{
|
||||||
struct netdev_adjacent *lower;
|
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)
|
if (&lower->list == &dev->adj_list.lower)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
*iter = lower->list.next;
|
*iter = &lower->list;
|
||||||
|
|
||||||
return lower->dev;
|
return lower->dev;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue