Lines Matching refs:dev

36 static unsigned char default_operstate(const struct net_device *dev)  in default_operstate()  argument
38 if (netif_testing(dev)) in default_operstate()
44 if (!netif_carrier_ok(dev)) { in default_operstate()
45 int iflink = dev_get_iflink(dev); in default_operstate()
48 if (iflink == dev->ifindex) in default_operstate()
51 peer = __dev_get_by_index(dev_net(dev), iflink); in default_operstate()
59 if (netif_dormant(dev)) in default_operstate()
66 static void rfc2863_policy(struct net_device *dev) in rfc2863_policy() argument
68 unsigned char operstate = default_operstate(dev); in rfc2863_policy()
70 if (operstate == READ_ONCE(dev->operstate)) in rfc2863_policy()
75 switch(dev->link_mode) { in rfc2863_policy()
90 WRITE_ONCE(dev->operstate, operstate); in rfc2863_policy()
96 void linkwatch_init_dev(struct net_device *dev) in linkwatch_init_dev() argument
99 if (!netif_carrier_ok(dev) || netif_dormant(dev) || in linkwatch_init_dev()
100 netif_testing(dev)) in linkwatch_init_dev()
101 rfc2863_policy(dev); in linkwatch_init_dev()
105 static bool linkwatch_urgent_event(struct net_device *dev) in linkwatch_urgent_event() argument
107 if (!netif_running(dev)) in linkwatch_urgent_event()
110 if (dev->ifindex != dev_get_iflink(dev)) in linkwatch_urgent_event()
113 if (netif_is_lag_port(dev) || netif_is_lag_master(dev)) in linkwatch_urgent_event()
116 return netif_carrier_ok(dev) && qdisc_tx_changing(dev); in linkwatch_urgent_event()
120 static void linkwatch_add_event(struct net_device *dev) in linkwatch_add_event() argument
125 if (list_empty(&dev->link_watch_list)) { in linkwatch_add_event()
126 list_add_tail(&dev->link_watch_list, &lweventlist); in linkwatch_add_event()
127 netdev_hold(dev, &dev->linkwatch_dev_tracker, GFP_ATOMIC); in linkwatch_add_event()
162 static void linkwatch_do_dev(struct net_device *dev) in linkwatch_do_dev() argument
173 clear_bit(__LINK_STATE_LINKWATCH_PENDING, &dev->state); in linkwatch_do_dev()
175 rfc2863_policy(dev); in linkwatch_do_dev()
176 if (dev->flags & IFF_UP) { in linkwatch_do_dev()
177 if (netif_carrier_ok(dev)) in linkwatch_do_dev()
178 dev_activate(dev); in linkwatch_do_dev()
180 dev_deactivate(dev); in linkwatch_do_dev()
182 netdev_state_change(dev); in linkwatch_do_dev()
187 __dev_put(dev); in linkwatch_do_dev()
195 struct net_device *dev; in __linkwatch_run_queue() local
222 dev = list_first_entry(&wrk, struct net_device, link_watch_list); in __linkwatch_run_queue()
223 list_del_init(&dev->link_watch_list); in __linkwatch_run_queue()
225 if (!netif_device_present(dev) || in __linkwatch_run_queue()
226 (urgent_only && !linkwatch_urgent_event(dev))) { in __linkwatch_run_queue()
227 list_add_tail(&dev->link_watch_list, &lweventlist); in __linkwatch_run_queue()
233 netdev_tracker_free(dev, &dev->linkwatch_dev_tracker); in __linkwatch_run_queue()
235 linkwatch_do_dev(dev); in __linkwatch_run_queue()
248 void linkwatch_forget_dev(struct net_device *dev) in linkwatch_forget_dev() argument
254 if (!list_empty(&dev->link_watch_list)) { in linkwatch_forget_dev()
255 list_del_init(&dev->link_watch_list); in linkwatch_forget_dev()
260 netdev_tracker_free(dev, &dev->linkwatch_dev_tracker); in linkwatch_forget_dev()
264 linkwatch_do_dev(dev); in linkwatch_forget_dev()
283 void linkwatch_fire_event(struct net_device *dev) in linkwatch_fire_event() argument
285 bool urgent = linkwatch_urgent_event(dev); in linkwatch_fire_event()
287 if (!test_and_set_bit(__LINK_STATE_LINKWATCH_PENDING, &dev->state)) { in linkwatch_fire_event()
288 linkwatch_add_event(dev); in linkwatch_fire_event()