diff options
Diffstat (limited to 'net/sched/sch_generic.c')
-rw-r--r-- | net/sched/sch_generic.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 5f0ade7806a7..ec0a0839ce51 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
@@ -215,10 +215,9 @@ static void dev_watchdog(unsigned long arg) | |||
215 | time_after(jiffies, (dev->trans_start + | 215 | time_after(jiffies, (dev->trans_start + |
216 | dev->watchdog_timeo))) { | 216 | dev->watchdog_timeo))) { |
217 | char drivername[64]; | 217 | char drivername[64]; |
218 | printk(KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit timed out\n", | 218 | WARN_ONCE(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit timed out\n", |
219 | dev->name, netdev_drivername(dev, drivername, 64)); | 219 | dev->name, netdev_drivername(dev, drivername, 64)); |
220 | dev->tx_timeout(dev); | 220 | dev->tx_timeout(dev); |
221 | WARN_ON_ONCE(1); | ||
222 | } | 221 | } |
223 | if (!mod_timer(&dev->watchdog_timer, | 222 | if (!mod_timer(&dev->watchdog_timer, |
224 | round_jiffies(jiffies + | 223 | round_jiffies(jiffies + |
@@ -634,7 +633,7 @@ static void dev_deactivate_queue(struct net_device *dev, | |||
634 | if (!(qdisc->flags & TCQ_F_BUILTIN)) | 633 | if (!(qdisc->flags & TCQ_F_BUILTIN)) |
635 | set_bit(__QDISC_STATE_DEACTIVATED, &qdisc->state); | 634 | set_bit(__QDISC_STATE_DEACTIVATED, &qdisc->state); |
636 | 635 | ||
637 | dev_queue->qdisc = qdisc_default; | 636 | rcu_assign_pointer(dev_queue->qdisc, qdisc_default); |
638 | qdisc_reset(qdisc); | 637 | qdisc_reset(qdisc); |
639 | 638 | ||
640 | spin_unlock_bh(qdisc_lock(qdisc)); | 639 | spin_unlock_bh(qdisc_lock(qdisc)); |
@@ -709,7 +708,7 @@ static void shutdown_scheduler_queue(struct net_device *dev, | |||
709 | struct Qdisc *qdisc_default = _qdisc_default; | 708 | struct Qdisc *qdisc_default = _qdisc_default; |
710 | 709 | ||
711 | if (qdisc) { | 710 | if (qdisc) { |
712 | dev_queue->qdisc = qdisc_default; | 711 | rcu_assign_pointer(dev_queue->qdisc, qdisc_default); |
713 | dev_queue->qdisc_sleeping = qdisc_default; | 712 | dev_queue->qdisc_sleeping = qdisc_default; |
714 | 713 | ||
715 | qdisc_destroy(qdisc); | 714 | qdisc_destroy(qdisc); |