diff --git a/[refs] b/[refs] index cfe28850c8e5..0f3f48de49a7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 15c041759bfcd9ab0a4e43f1c16e2644977d0467 +refs/heads/master: 71261956973ba9e0637848a5adb4a5819b4bae83 diff --git a/trunk/net/sched/sch_qfq.c b/trunk/net/sched/sch_qfq.c index e4723d31fdd5..211a21217045 100644 --- a/trunk/net/sched/sch_qfq.c +++ b/trunk/net/sched/sch_qfq.c @@ -865,7 +865,10 @@ static void qfq_update_start(struct qfq_sched *q, struct qfq_class *cl) if (mask) { struct qfq_group *next = qfq_ffs(q, mask); if (qfq_gt(roundedF, next->F)) { - cl->S = next->F; + if (qfq_gt(limit, next->F)) + cl->S = next->F; + else /* preserve timestamp correctness */ + cl->S = limit; return; } }