net: Remove all_adj_list and its references
Only direct adjacencies are maintained. All upper or lower devices can be learned via the new walk API which recursively walks the adj_list for upper devices or lower devices. Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
cf2d67408b
commit
f1170fd462
@@ -1456,7 +1456,6 @@ enum netdev_priv_flags {
|
||||
* @ptype_specific: Device-specific, protocol-specific packet handlers
|
||||
*
|
||||
* @adj_list: Directly linked devices, like slaves for bonding
|
||||
* @all_adj_list: All linked devices, *including* neighbours
|
||||
* @features: Currently active device features
|
||||
* @hw_features: User-changeable features
|
||||
*
|
||||
@@ -1675,11 +1674,6 @@ struct net_device {
|
||||
struct list_head lower;
|
||||
} adj_list;
|
||||
|
||||
struct {
|
||||
struct list_head upper;
|
||||
struct list_head lower;
|
||||
} all_adj_list;
|
||||
|
||||
netdev_features_t features;
|
||||
netdev_features_t hw_features;
|
||||
netdev_features_t wanted_features;
|
||||
@@ -3771,13 +3765,6 @@ struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev,
|
||||
updev; \
|
||||
updev = netdev_upper_get_next_dev_rcu(dev, &(iter)))
|
||||
|
||||
/* iterate through upper list, must be called under RCU read lock */
|
||||
#define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \
|
||||
for (iter = &(dev)->all_adj_list.upper, \
|
||||
updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)); \
|
||||
updev; \
|
||||
updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)))
|
||||
|
||||
int netdev_walk_all_upper_dev_rcu(struct net_device *dev,
|
||||
int (*fn)(struct net_device *upper_dev,
|
||||
void *data),
|
||||
@@ -3817,18 +3804,6 @@ struct net_device *netdev_all_lower_get_next(struct net_device *dev,
|
||||
struct net_device *netdev_all_lower_get_next_rcu(struct net_device *dev,
|
||||
struct list_head **iter);
|
||||
|
||||
#define netdev_for_each_all_lower_dev(dev, ldev, iter) \
|
||||
for (iter = (dev)->all_adj_list.lower.next, \
|
||||
ldev = netdev_all_lower_get_next(dev, &(iter)); \
|
||||
ldev; \
|
||||
ldev = netdev_all_lower_get_next(dev, &(iter)))
|
||||
|
||||
#define netdev_for_each_all_lower_dev_rcu(dev, ldev, iter) \
|
||||
for (iter = (dev)->all_adj_list.lower.next, \
|
||||
ldev = netdev_all_lower_get_next_rcu(dev, &(iter)); \
|
||||
ldev; \
|
||||
ldev = netdev_all_lower_get_next_rcu(dev, &(iter)))
|
||||
|
||||
int netdev_walk_all_lower_dev(struct net_device *dev,
|
||||
int (*fn)(struct net_device *lower_dev,
|
||||
void *data),
|
||||
|
Reference in New Issue
Block a user