diff options
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/sch_generic.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 8c01e023f02e..9a2f8e41a26e 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
@@ -539,6 +539,10 @@ void dev_activate(struct net_device *dev) | |||
539 | write_unlock_bh(&qdisc_tree_lock); | 539 | write_unlock_bh(&qdisc_tree_lock); |
540 | } | 540 | } |
541 | 541 | ||
542 | if (!netif_carrier_ok(dev)) | ||
543 | /* Delay activation until next carrier-on event */ | ||
544 | return; | ||
545 | |||
542 | spin_lock_bh(&dev->queue_lock); | 546 | spin_lock_bh(&dev->queue_lock); |
543 | rcu_assign_pointer(dev->qdisc, dev->qdisc_sleeping); | 547 | rcu_assign_pointer(dev->qdisc, dev->qdisc_sleeping); |
544 | if (dev->qdisc != &noqueue_qdisc) { | 548 | if (dev->qdisc != &noqueue_qdisc) { |