diff options
Diffstat (limited to 'net/core/link_watch.c')
| -rw-r--r-- | net/core/link_watch.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/net/core/link_watch.c b/net/core/link_watch.c index c469d1c4db5d..429571c258da 100644 --- a/net/core/link_watch.c +++ b/net/core/link_watch.c @@ -192,7 +192,10 @@ static void __linkwatch_run_queue(int urgent_only)  #define MAX_DO_DEV_PER_LOOP	100  	int do_dev = MAX_DO_DEV_PER_LOOP; -	struct net_device *dev; +	/* Use a local list here since we add non-urgent +	 * events back to the global one when called with +	 * urgent_only=1. +	 */  	LIST_HEAD(wrk);  	/* Give urgent case more budget */ @@ -218,6 +221,7 @@ static void __linkwatch_run_queue(int urgent_only)  	list_splice_init(&lweventlist, &wrk);  	while (!list_empty(&wrk) && do_dev > 0) { +		struct net_device *dev;  		dev = list_first_entry(&wrk, struct net_device, link_watch_list);  		list_del_init(&dev->link_watch_list); @@ -245,7 +249,7 @@ static void __linkwatch_run_queue(int urgent_only)  	spin_unlock_irq(&lweventlist_lock);  } -void linkwatch_forget_dev(struct net_device *dev) +void linkwatch_sync_dev(struct net_device *dev)  {  	unsigned long flags;  	int clean = 0;  |