From 68d71340f26a1ccdc5aadfa7e7afd6288b613b25 Mon Sep 17 00:00:00 2001 From: Paolo Valente Date: Sat, 15 Sep 2012 00:41:35 +0000 Subject: [PATCH] --- yaml --- r: 323083 b: refs/heads/master c: 71261956973ba9e0637848a5adb4a5819b4bae83 h: refs/heads/master i: 323081: 6bf17af0de1ba1dbd42c5aa72fc0584ef89fbf63 323079: 55cfd485a39c2402aca239d02facf82dd0cdace9 v: v3 --- [refs] | 2 +- trunk/net/sched/sch_qfq.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) 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; } }