Lines Matching refs:lower
6546 return !list_empty(&dev->adj_list.lower); in netdev_has_any_lower_dev()
6738 struct netdev_adjacent *lower; in netdev_lower_get_next_private() local
6740 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next_private()
6742 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private()
6745 *iter = lower->list.next; in netdev_lower_get_next_private()
6747 return lower->private; in netdev_lower_get_next_private()
6764 struct netdev_adjacent *lower; in netdev_lower_get_next_private_rcu() local
6768 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_lower_get_next_private_rcu()
6770 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next_private_rcu()
6773 *iter = &lower->list; in netdev_lower_get_next_private_rcu()
6775 return lower->private; in netdev_lower_get_next_private_rcu()
6792 struct netdev_adjacent *lower; in netdev_lower_get_next() local
6794 lower = list_entry(*iter, struct netdev_adjacent, list); in netdev_lower_get_next()
6796 if (&lower->list == &dev->adj_list.lower) in netdev_lower_get_next()
6799 *iter = lower->list.next; in netdev_lower_get_next()
6801 return lower->dev; in netdev_lower_get_next()
6808 struct netdev_adjacent *lower; in netdev_next_lower_dev() local
6810 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev()
6812 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev()
6815 *iter = &lower->list; in netdev_next_lower_dev()
6817 return lower->dev; in netdev_next_lower_dev()
6824 struct netdev_adjacent *lower; in __netdev_next_lower_dev() local
6826 lower = list_entry((*iter)->next, struct netdev_adjacent, list); in __netdev_next_lower_dev()
6828 if (&lower->list == &dev->adj_list.lower) in __netdev_next_lower_dev()
6831 *iter = &lower->list; in __netdev_next_lower_dev()
6832 *ignore = lower->ignore; in __netdev_next_lower_dev()
6834 return lower->dev; in __netdev_next_lower_dev()
6847 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev()
6863 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev()
6895 iter = &dev->adj_list.lower; in __netdev_walk_all_lower_dev()
6913 niter = &ldev->adj_list.lower; in __netdev_walk_all_lower_dev()
6936 struct netdev_adjacent *lower; in netdev_next_lower_dev_rcu() local
6938 lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list); in netdev_next_lower_dev_rcu()
6939 if (&lower->list == &dev->adj_list.lower) in netdev_next_lower_dev_rcu()
6942 *iter = &lower->list; in netdev_next_lower_dev_rcu()
6944 return lower->dev; in netdev_next_lower_dev_rcu()
6974 for (iter = &dev->adj_list.lower, in __netdev_lower_depth()
7009 iter = &dev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
7025 niter = &ldev->adj_list.lower; in netdev_walk_all_lower_dev_rcu()
7057 struct netdev_adjacent *lower; in netdev_lower_get_first_private_rcu() local
7059 lower = list_first_or_null_rcu(&dev->adj_list.lower, in netdev_lower_get_first_private_rcu()
7061 if (lower) in netdev_lower_get_first_private_rcu()
7062 return lower->private; in netdev_lower_get_first_private_rcu()
7113 dev_list == &dev->adj_list.lower) && in netdev_adjacent_is_neigh_list()
7258 &upper_dev->adj_list.lower, in __netdev_adjacent_dev_link_neighbour()
7267 &upper_dev->adj_list.lower); in __netdev_adjacent_dev_unlink_neighbour()
7431 adj = __netdev_find_adj(lower_dev, &upper_dev->adj_list.lower); in __netdev_adjacent_dev_set()
7537 &iter->dev->adj_list.lower); in netdev_adjacent_add_links()
7542 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_add_links()
7548 &dev->adj_list.lower); in netdev_adjacent_add_links()
7562 &iter->dev->adj_list.lower); in netdev_adjacent_del_links()
7567 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_del_links()
7573 &dev->adj_list.lower); in netdev_adjacent_del_links()
7587 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
7589 &iter->dev->adj_list.lower); in netdev_adjacent_rename_links()
7592 list_for_each_entry(iter, &dev->adj_list.lower, list) { in netdev_adjacent_rename_links()
7605 struct netdev_adjacent *lower; in netdev_lower_dev_get_private() local
7609 lower = __netdev_find_adj(lower_dev, &dev->adj_list.lower); in netdev_lower_dev_get_private()
7610 if (!lower) in netdev_lower_dev_get_private()
7613 return lower->private; in netdev_lower_dev_get_private()
8568 static netdev_features_t netdev_sync_upper_features(struct net_device *lower, in netdev_sync_upper_features() argument
8579 netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n", in netdev_sync_upper_features()
8589 struct net_device *lower, netdev_features_t features) in netdev_sync_lower_features() argument
8597 if (!(features & feature) && (lower->features & feature)) { in netdev_sync_lower_features()
8599 &feature, lower->name); in netdev_sync_lower_features()
8600 lower->wanted_features &= ~feature; in netdev_sync_lower_features()
8601 netdev_update_features(lower); in netdev_sync_lower_features()
8603 if (unlikely(lower->features & feature)) in netdev_sync_lower_features()
8605 &feature, lower->name); in netdev_sync_lower_features()
8691 struct net_device *upper, *lower; in __netdev_update_features() local
8735 netdev_for_each_lower_dev(dev, lower, iter) in __netdev_update_features()
8736 netdev_sync_lower_features(dev, lower, features); in __netdev_update_features()
9530 INIT_LIST_HEAD(&dev->adj_list.lower); in alloc_netdev_mqs()