diff options
Diffstat (limited to 'net/sched/sch_cbq.c')
-rw-r--r-- | net/sched/sch_cbq.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index 290b26bdc89d..9e6cdab6af3b 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c | |||
@@ -390,7 +390,7 @@ cbq_mark_toplevel(struct cbq_sched_data *q, struct cbq_class *cl) | |||
390 | now = q->now + incr; | 390 | now = q->now + incr; |
391 | 391 | ||
392 | do { | 392 | do { |
393 | if (PSCHED_TLESS(cl->undertime, now)) { | 393 | if (cl->undertime < now) { |
394 | q->toplevel = cl->level; | 394 | q->toplevel = cl->level; |
395 | return; | 395 | return; |
396 | } | 396 | } |
@@ -845,8 +845,7 @@ cbq_under_limit(struct cbq_class *cl) | |||
845 | if (cl->tparent == NULL) | 845 | if (cl->tparent == NULL) |
846 | return cl; | 846 | return cl; |
847 | 847 | ||
848 | if (PSCHED_IS_PASTPERFECT(cl->undertime) || | 848 | if (PSCHED_IS_PASTPERFECT(cl->undertime) || q->now >= cl->undertime) { |
849 | !PSCHED_TLESS(q->now, cl->undertime)) { | ||
850 | cl->delayed = 0; | 849 | cl->delayed = 0; |
851 | return cl; | 850 | return cl; |
852 | } | 851 | } |
@@ -870,7 +869,7 @@ cbq_under_limit(struct cbq_class *cl) | |||
870 | if (cl->level > q->toplevel) | 869 | if (cl->level > q->toplevel) |
871 | return NULL; | 870 | return NULL; |
872 | } while (!PSCHED_IS_PASTPERFECT(cl->undertime) && | 871 | } while (!PSCHED_IS_PASTPERFECT(cl->undertime) && |
873 | PSCHED_TLESS(q->now, cl->undertime)); | 872 | q->now < cl->undertime); |
874 | 873 | ||
875 | cl->delayed = 0; | 874 | cl->delayed = 0; |
876 | return cl; | 875 | return cl; |