Lines Matching refs:lower
7351 return !list_empty(&dev->adj_list.lower); in netdev_has_any_lower_dev()
7548 struct netdev_adjacent *lower; in netdev_lower_get_next_private() local
7550 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next_private()
7552 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private()
7555 *iter = lower->list.next; in netdev_lower_get_next_private()
7557 return lower->private; in netdev_lower_get_next_private()
7574 struct netdev_adjacent *lower; in netdev_lower_get_next_private_rcu() local
7578 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_lower_get_next_private_rcu()
7580 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private_rcu()
7583 *iter = &lower->list; in netdev_lower_get_next_private_rcu()
7585 return lower->private; in netdev_lower_get_next_private_rcu()
7602 struct netdev_adjacent *lower; in netdev_lower_get_next() local
7604 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next()
7606 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next()
7609 *iter = lower->list.next; in netdev_lower_get_next()
7611 return lower->dev; in netdev_lower_get_next()
7618 struct netdev_adjacent *lower; in netdev_next_lower_dev() local
7620 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev()
7622 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev()
7625 *iter = &lower->list; in netdev_next_lower_dev()
7627 return lower->dev; in netdev_next_lower_dev()
7634 struct netdev_adjacent *lower; in __netdev_next_lower_dev() local
7636 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in __netdev_next_lower_dev()
7638 if (&lower->list == &dev->adj_list.lower) in __netdev_next_lower_dev()
7641 *iter = &lower->list; in __netdev_next_lower_dev()
7642 *ignore = lower->ignore; in __netdev_next_lower_dev()
7644 return lower->dev; in __netdev_next_lower_dev()
7657 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev()
7673 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev()
7705 iter = &dev->adj_list.lower; in __netdev_walk_all_lower_dev()
7723 niter = &ldev->adj_list.lower; in __netdev_walk_all_lower_dev()
7746 struct netdev_adjacent *lower; in netdev_next_lower_dev_rcu() local
7748 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev_rcu()
7749 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev_rcu()
7752 *iter = &lower->list; in netdev_next_lower_dev_rcu()
7754 return lower->dev; in netdev_next_lower_dev_rcu()
7785 for (iter = &dev->adj_list.lower, in __netdev_lower_depth()
7832 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
7848 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
7880 struct netdev_adjacent *lower; in netdev_lower_get_first_private_rcu() local
7882 lower = list_first_or_null_rcu(&dev->adj_list.lower, in netdev_lower_get_first_private_rcu()
7884 if (lower) in netdev_lower_get_first_private_rcu()
7885 return lower->private; in netdev_lower_get_first_private_rcu()
7936 dev_list == &dev->adj_list.lower) && in netdev_adjacent_is_neigh_list()
8081 &upper_dev->adj_list.lower, in __netdev_adjacent_dev_link_neighbour()
8090 &upper_dev->adj_list.lower); in __netdev_adjacent_dev_unlink_neighbour()
8277 adj = __netdev_find_adj(lower_dev, &upper_dev->adj_list.lower); in __netdev_adjacent_dev_set()
8431 struct net_device *lower; in netdev_sk_get_lowest_dev() local
8433 lower = netdev_sk_get_lower_dev(dev, sk); in netdev_sk_get_lowest_dev()
8434 while (lower) { in netdev_sk_get_lowest_dev()
8435 dev = lower; in netdev_sk_get_lowest_dev()
8436 lower = netdev_sk_get_lower_dev(dev, sk); in netdev_sk_get_lowest_dev()
8453 &iter->dev->adj_list.lower); in netdev_adjacent_add_links()
8458 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_add_links()
8464 &dev->adj_list.lower); in netdev_adjacent_add_links()
8478 &iter->dev->adj_list.lower); in netdev_adjacent_del_links()
8483 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_del_links()
8489 &dev->adj_list.lower); in netdev_adjacent_del_links()
8503 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
8505 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
8508 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_rename_links()
8521 struct netdev_adjacent *lower; in netdev_lower_dev_get_private() local
8525 lower = __netdev_find_adj(lower_dev, &dev->adj_list.lower); in netdev_lower_dev_get_private()
8526 if (!lower) in netdev_lower_dev_get_private()
8529 return lower->private; in netdev_lower_dev_get_private()
9818 static netdev_features_t netdev_sync_upper_features(struct net_device *lower, in netdev_sync_upper_features() argument
9829 netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n", in netdev_sync_upper_features()
9839 struct net_device *lower, netdev_features_t features) in netdev_sync_lower_features() argument
9847 if (!(features & feature) && (lower->features & feature)) { in netdev_sync_lower_features()
9849 &feature, lower->name); in netdev_sync_lower_features()
9850 lower->wanted_features &= ~feature; in netdev_sync_lower_features()
9851 __netdev_update_features(lower); in netdev_sync_lower_features()
9853 if (unlikely(lower->features & feature)) in netdev_sync_lower_features()
9855 &feature, lower->name); in netdev_sync_lower_features()
9857 netdev_features_change(lower); in netdev_sync_lower_features()
9964 struct net_device *upper, *lower; in __netdev_update_features() local
10008 netdev_for_each_lower_dev(dev, lower, iter) in __netdev_update_features()
10009 netdev_sync_lower_features(dev, lower, features); in __netdev_update_features()
10869 INIT_LIST_HEAD(&dev->adj_list.lower); in alloc_netdev_mqs()