Lines Matching refs:lower
8076 return !list_empty(&dev->adj_list.lower); in netdev_has_any_lower_dev()
8273 struct netdev_adjacent *lower; in netdev_lower_get_next_private() local
8275 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next_private()
8277 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private()
8280 *iter = lower->list.next; in netdev_lower_get_next_private()
8282 return lower->private; in netdev_lower_get_next_private()
8299 struct netdev_adjacent *lower; in netdev_lower_get_next_private_rcu() local
8303 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_lower_get_next_private_rcu()
8305 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private_rcu()
8308 *iter = &lower->list; in netdev_lower_get_next_private_rcu()
8310 return lower->private; in netdev_lower_get_next_private_rcu()
8327 struct netdev_adjacent *lower; in netdev_lower_get_next() local
8329 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next()
8331 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next()
8334 *iter = lower->list.next; in netdev_lower_get_next()
8336 return lower->dev; in netdev_lower_get_next()
8343 struct netdev_adjacent *lower; in netdev_next_lower_dev() local
8345 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev()
8347 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev()
8350 *iter = &lower->list; in netdev_next_lower_dev()
8352 return lower->dev; in netdev_next_lower_dev()
8359 struct netdev_adjacent *lower; in __netdev_next_lower_dev() local
8361 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in __netdev_next_lower_dev()
8363 if (&lower->list == &dev->adj_list.lower) in __netdev_next_lower_dev()
8366 *iter = &lower->list; in __netdev_next_lower_dev()
8367 *ignore = lower->ignore; in __netdev_next_lower_dev()
8369 return lower->dev; in __netdev_next_lower_dev()
8382 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev()
8398 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev()
8430 iter = &dev->adj_list.lower; in __netdev_walk_all_lower_dev()
8448 niter = &ldev->adj_list.lower; in __netdev_walk_all_lower_dev()
8471 struct netdev_adjacent *lower; in netdev_next_lower_dev_rcu() local
8473 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev_rcu()
8474 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev_rcu()
8477 *iter = &lower->list; in netdev_next_lower_dev_rcu()
8479 return lower->dev; in netdev_next_lower_dev_rcu()
8510 for (iter = &dev->adj_list.lower, in __netdev_lower_depth()
8567 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
8583 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
8615 struct netdev_adjacent *lower; in netdev_lower_get_first_private_rcu() local
8617 lower = list_first_or_null_rcu(&dev->adj_list.lower, in netdev_lower_get_first_private_rcu()
8619 if (lower) in netdev_lower_get_first_private_rcu()
8620 return lower->private; in netdev_lower_get_first_private_rcu()
8671 dev_list == &dev->adj_list.lower) && in netdev_adjacent_is_neigh_list()
8816 &upper_dev->adj_list.lower, in __netdev_adjacent_dev_link_neighbour()
8825 &upper_dev->adj_list.lower); in __netdev_adjacent_dev_unlink_neighbour()
9012 adj = __netdev_find_adj(lower_dev, &upper_dev->adj_list.lower); in __netdev_adjacent_dev_set()
9402 struct net_device *lower; in netdev_sk_get_lowest_dev() local
9404 lower = netdev_sk_get_lower_dev(dev, sk); in netdev_sk_get_lowest_dev()
9405 while (lower) { in netdev_sk_get_lowest_dev()
9406 dev = lower; in netdev_sk_get_lowest_dev()
9407 lower = netdev_sk_get_lower_dev(dev, sk); in netdev_sk_get_lowest_dev()
9424 &iter->dev->adj_list.lower); in netdev_adjacent_add_links()
9429 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_add_links()
9435 &dev->adj_list.lower); in netdev_adjacent_add_links()
9449 &iter->dev->adj_list.lower); in netdev_adjacent_del_links()
9454 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_del_links()
9460 &dev->adj_list.lower); in netdev_adjacent_del_links()
9474 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
9476 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
9479 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_rename_links()
9492 struct netdev_adjacent *lower; in netdev_lower_dev_get_private() local
9496 lower = __netdev_find_adj(lower_dev, &dev->adj_list.lower); in netdev_lower_dev_get_private()
9497 if (!lower) in netdev_lower_dev_get_private()
9500 return lower->private; in netdev_lower_dev_get_private()
10817 static netdev_features_t netdev_sync_upper_features(struct net_device *lower, in netdev_sync_upper_features() argument
10828 netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n", in netdev_sync_upper_features()
10838 struct net_device *lower, netdev_features_t features) in netdev_sync_lower_features() argument
10846 if (!(features & feature) && (lower->features & feature)) { in netdev_sync_lower_features()
10848 &feature, lower->name); in netdev_sync_lower_features()
10849 netdev_lock_ops(lower); in netdev_sync_lower_features()
10850 lower->wanted_features &= ~feature; in netdev_sync_lower_features()
10851 __netdev_update_features(lower); in netdev_sync_lower_features()
10853 if (unlikely(lower->features & feature)) in netdev_sync_lower_features()
10855 &feature, lower->name); in netdev_sync_lower_features()
10857 netdev_features_change(lower); in netdev_sync_lower_features()
10858 netdev_unlock_ops(lower); in netdev_sync_lower_features()
10973 struct net_device *upper, *lower; in __netdev_update_features() local
11018 netdev_for_each_lower_dev(dev, lower, iter) in __netdev_update_features()
11019 netdev_sync_lower_features(dev, lower, features); in __netdev_update_features()
12057 INIT_LIST_HEAD(&dev->adj_list.lower); in alloc_netdev_mqs()