mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-21 06:12:56 +00:00
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:
parent
cf2d67408b
commit
f1170fd462
2 changed files with 18 additions and 230 deletions
|
@ -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),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue