Lines Matching refs:lower
7864 return !list_empty(&dev->adj_list.lower); in netdev_has_any_lower_dev()
8061 struct netdev_adjacent *lower; in netdev_lower_get_next_private() local
8063 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next_private()
8065 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private()
8068 *iter = lower->list.next; in netdev_lower_get_next_private()
8070 return lower->private; in netdev_lower_get_next_private()
8087 struct netdev_adjacent *lower; in netdev_lower_get_next_private_rcu() local
8091 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_lower_get_next_private_rcu()
8093 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private_rcu()
8096 *iter = &lower->list; in netdev_lower_get_next_private_rcu()
8098 return lower->private; in netdev_lower_get_next_private_rcu()
8115 struct netdev_adjacent *lower; in netdev_lower_get_next() local
8117 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next()
8119 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next()
8122 *iter = lower->list.next; in netdev_lower_get_next()
8124 return lower->dev; in netdev_lower_get_next()
8131 struct netdev_adjacent *lower; in netdev_next_lower_dev() local
8133 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev()
8135 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev()
8138 *iter = &lower->list; in netdev_next_lower_dev()
8140 return lower->dev; in netdev_next_lower_dev()
8147 struct netdev_adjacent *lower; in __netdev_next_lower_dev() local
8149 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in __netdev_next_lower_dev()
8151 if (&lower->list == &dev->adj_list.lower) in __netdev_next_lower_dev()
8154 *iter = &lower->list; in __netdev_next_lower_dev()
8155 *ignore = lower->ignore; in __netdev_next_lower_dev()
8157 return lower->dev; in __netdev_next_lower_dev()
8170 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev()
8186 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev()
8218 iter = &dev->adj_list.lower; in __netdev_walk_all_lower_dev()
8236 niter = &ldev->adj_list.lower; in __netdev_walk_all_lower_dev()
8259 struct netdev_adjacent *lower; in netdev_next_lower_dev_rcu() local
8261 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev_rcu()
8262 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev_rcu()
8265 *iter = &lower->list; in netdev_next_lower_dev_rcu()
8267 return lower->dev; in netdev_next_lower_dev_rcu()
8298 for (iter = &dev->adj_list.lower, in __netdev_lower_depth()
8355 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
8371 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
8403 struct netdev_adjacent *lower; in netdev_lower_get_first_private_rcu() local
8405 lower = list_first_or_null_rcu(&dev->adj_list.lower, in netdev_lower_get_first_private_rcu()
8407 if (lower) in netdev_lower_get_first_private_rcu()
8408 return lower->private; in netdev_lower_get_first_private_rcu()
8459 dev_list == &dev->adj_list.lower) && in netdev_adjacent_is_neigh_list()
8604 &upper_dev->adj_list.lower, in __netdev_adjacent_dev_link_neighbour()
8613 &upper_dev->adj_list.lower); in __netdev_adjacent_dev_unlink_neighbour()
8800 adj = __netdev_find_adj(lower_dev, &upper_dev->adj_list.lower); in __netdev_adjacent_dev_set()
9190 struct net_device *lower; in netdev_sk_get_lowest_dev() local
9192 lower = netdev_sk_get_lower_dev(dev, sk); in netdev_sk_get_lowest_dev()
9193 while (lower) { in netdev_sk_get_lowest_dev()
9194 dev = lower; in netdev_sk_get_lowest_dev()
9195 lower = netdev_sk_get_lower_dev(dev, sk); in netdev_sk_get_lowest_dev()
9212 &iter->dev->adj_list.lower); in netdev_adjacent_add_links()
9217 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_add_links()
9223 &dev->adj_list.lower); in netdev_adjacent_add_links()
9237 &iter->dev->adj_list.lower); in netdev_adjacent_del_links()
9242 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_del_links()
9248 &dev->adj_list.lower); in netdev_adjacent_del_links()
9262 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
9264 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
9267 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_rename_links()
9280 struct netdev_adjacent *lower; in netdev_lower_dev_get_private() local
9284 lower = __netdev_find_adj(lower_dev, &dev->adj_list.lower); in netdev_lower_dev_get_private()
9285 if (!lower) in netdev_lower_dev_get_private()
9288 return lower->private; in netdev_lower_dev_get_private()
10605 static netdev_features_t netdev_sync_upper_features(struct net_device *lower, in netdev_sync_upper_features() argument
10616 netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n", in netdev_sync_upper_features()
10626 struct net_device *lower, netdev_features_t features) in netdev_sync_lower_features() argument
10634 if (!(features & feature) && (lower->features & feature)) { in netdev_sync_lower_features()
10636 &feature, lower->name); in netdev_sync_lower_features()
10637 netdev_lock_ops(lower); in netdev_sync_lower_features()
10638 lower->wanted_features &= ~feature; in netdev_sync_lower_features()
10639 __netdev_update_features(lower); in netdev_sync_lower_features()
10641 if (unlikely(lower->features & feature)) in netdev_sync_lower_features()
10643 &feature, lower->name); in netdev_sync_lower_features()
10645 netdev_features_change(lower); in netdev_sync_lower_features()
10646 netdev_unlock_ops(lower); in netdev_sync_lower_features()
10761 struct net_device *upper, *lower; in __netdev_update_features() local
10806 netdev_for_each_lower_dev(dev, lower, iter) in __netdev_update_features()
10807 netdev_sync_lower_features(dev, lower, features); in __netdev_update_features()
11845 INIT_LIST_HEAD(&dev->adj_list.lower); in alloc_netdev_mqs()