diff options
Diffstat (limited to 'net/core/link_watch.c')
| -rw-r--r-- | net/core/link_watch.c | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/net/core/link_watch.c b/net/core/link_watch.c index 4859b7446c6f..d43d1201275c 100644 --- a/net/core/link_watch.c +++ b/net/core/link_watch.c @@ -16,6 +16,7 @@  #include <linux/netdevice.h>  #include <linux/if.h>  #include <net/sock.h> +#include <net/pkt_sched.h>  #include <linux/rtnetlink.h>  #include <linux/jiffies.h>  #include <linux/spinlock.h> @@ -74,6 +75,12 @@ void linkwatch_run_queue(void)  		clear_bit(__LINK_STATE_LINKWATCH_PENDING, &dev->state);  		if (dev->flags & IFF_UP) { +			if (netif_carrier_ok(dev)) { +				WARN_ON(dev->qdisc_sleeping == &noop_qdisc); +				dev_activate(dev); +			} else +				dev_deactivate(dev); +  			netdev_state_change(dev);  		} | 
