|
@@ -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);
|
|
|
}
|
|
|
|