diff options
Diffstat (limited to 'net/sched/sch_cbq.c')
| -rw-r--r-- | net/sched/sch_cbq.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index 4e261ce62f48..8fa90d68ec6d 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c | |||
| @@ -521,6 +521,10 @@ static void cbq_ovl_delay(struct cbq_class *cl) | |||
| 521 | struct cbq_sched_data *q = qdisc_priv(cl->qdisc); | 521 | struct cbq_sched_data *q = qdisc_priv(cl->qdisc); |
| 522 | psched_tdiff_t delay = cl->undertime - q->now; | 522 | psched_tdiff_t delay = cl->undertime - q->now; |
| 523 | 523 | ||
| 524 | if (test_bit(__QDISC_STATE_DEACTIVATED, | ||
| 525 | &qdisc_root_sleeping(cl->qdisc)->state)) | ||
| 526 | return; | ||
| 527 | |||
| 524 | if (!cl->delayed) { | 528 | if (!cl->delayed) { |
| 525 | psched_time_t sched = q->now; | 529 | psched_time_t sched = q->now; |
| 526 | ktime_t expires; | 530 | ktime_t expires; |
| @@ -654,7 +658,7 @@ static enum hrtimer_restart cbq_undelay(struct hrtimer *timer) | |||
| 654 | } | 658 | } |
| 655 | 659 | ||
| 656 | sch->flags &= ~TCQ_F_THROTTLED; | 660 | sch->flags &= ~TCQ_F_THROTTLED; |
| 657 | __netif_schedule(sch); | 661 | __netif_schedule(qdisc_root(sch)); |
| 658 | return HRTIMER_NORESTART; | 662 | return HRTIMER_NORESTART; |
| 659 | } | 663 | } |
| 660 | 664 | ||
