@@ -2839,7 +2839,7 @@ extern void *netdev_lower_get_next_private_rcu(struct net_device *dev,
struct list_head **iter);
#define netdev_for_each_lower_private(dev, priv, iter) \
- for (iter = &(dev)->adj_list.lower, \
+ for (iter = (dev)->adj_list.lower.next, \
priv = netdev_lower_get_next_private(dev, &(iter)); \
priv; \
priv = netdev_lower_get_next_private(dev, &(iter)))
@@ -4563,7 +4563,7 @@ void *netdev_lower_get_next_private(struct net_device *dev,
struct netdev_adjacent *lower;
if (iter)
- lower = list_entry((*iter)->next, struct netdev_adjacent,
+ lower = list_entry(*iter, struct netdev_adjacent,
list);
else
lower = list_entry(dev->adj_list.lower.next,
@@ -4573,7 +4573,7 @@ void *netdev_lower_get_next_private(struct net_device *dev,
return NULL;
if (iter)
- *iter = &lower->list;
+ *iter = lower->list.next;
return lower->private;
}