Lines Matching +full:non +full:- +full:urgent
1 // SPDX-License-Identifier: GPL-2.0-or-later
51 if (dev->reg_state <= NETREG_REGISTERED) in default_operstate()
54 iflink = dev->ifindex; in default_operstate()
56 if (iflink == dev->ifindex) in default_operstate()
78 if (operstate == READ_ONCE(dev->operstate)) in rfc2863_policy()
81 switch(dev->link_mode) { in rfc2863_policy()
96 WRITE_ONCE(dev->operstate, operstate); in rfc2863_policy()
102 /* Handle pre-registration link state changes */ in linkwatch_init_dev()
114 if (dev->ifindex != dev_get_iflink(dev)) in linkwatch_urgent_event()
129 if (list_empty(&dev->link_watch_list)) { in linkwatch_add_event()
130 list_add_tail(&dev->link_watch_list, &lweventlist); in linkwatch_add_event()
131 netdev_hold(dev, &dev->linkwatch_dev_tracker, GFP_ATOMIC); in linkwatch_add_event()
137 static void linkwatch_schedule_work(int urgent) in linkwatch_schedule_work() argument
139 unsigned long delay = linkwatch_nextevent - jiffies; in linkwatch_schedule_work()
144 /* Minimise down-time: drop delay for up event. */ in linkwatch_schedule_work()
145 if (urgent) { in linkwatch_schedule_work()
156 * If urgent, schedule immediate execution; otherwise, don't in linkwatch_schedule_work()
177 clear_bit(__LINK_STATE_LINKWATCH_PENDING, &dev->state); in linkwatch_do_dev()
180 if (dev->flags & IFF_UP) { in linkwatch_do_dev()
199 /* Use a local list here since we add non-urgent in __linkwatch_run_queue()
205 /* Give urgent case more budget */ in __linkwatch_run_queue()
218 /* Limit wrap-around effect on delay. */ in __linkwatch_run_queue()
231 list_del_init(&dev->link_watch_list); in __linkwatch_run_queue()
235 list_add_tail(&dev->link_watch_list, &lweventlist); in __linkwatch_run_queue()
241 netdev_tracker_free(dev, &dev->linkwatch_dev_tracker); in __linkwatch_run_queue()
244 do_dev--; in __linkwatch_run_queue()
262 if (!list_empty(&dev->link_watch_list)) { in linkwatch_sync_dev()
263 list_del_init(&dev->link_watch_list); in linkwatch_sync_dev()
268 netdev_tracker_free(dev, &dev->linkwatch_dev_tracker); in linkwatch_sync_dev()
293 bool urgent = linkwatch_urgent_event(dev); in linkwatch_fire_event() local
295 if (!test_and_set_bit(__LINK_STATE_LINKWATCH_PENDING, &dev->state)) { in linkwatch_fire_event()
297 } else if (!urgent) in linkwatch_fire_event()
300 linkwatch_schedule_work(urgent); in linkwatch_fire_event()