diff options
Diffstat (limited to 'net/sched/sch_sfq.c')
-rw-r--r-- | net/sched/sch_sfq.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c index 60d47180f043..02a21abea65e 100644 --- a/net/sched/sch_sfq.c +++ b/net/sched/sch_sfq.c | |||
@@ -469,11 +469,15 @@ enqueue: | |||
469 | if (slot->qlen == 1) { /* The flow is new */ | 469 | if (slot->qlen == 1) { /* The flow is new */ |
470 | if (q->tail == NULL) { /* It is the first flow */ | 470 | if (q->tail == NULL) { /* It is the first flow */ |
471 | slot->next = x; | 471 | slot->next = x; |
472 | q->tail = slot; | ||
473 | } else { | 472 | } else { |
474 | slot->next = q->tail->next; | 473 | slot->next = q->tail->next; |
475 | q->tail->next = x; | 474 | q->tail->next = x; |
476 | } | 475 | } |
476 | /* We put this flow at the end of our flow list. | ||
477 | * This might sound unfair for a new flow to wait after old ones, | ||
478 | * but we could endup servicing new flows only, and freeze old ones. | ||
479 | */ | ||
480 | q->tail = slot; | ||
477 | /* We could use a bigger initial quantum for new flows */ | 481 | /* We could use a bigger initial quantum for new flows */ |
478 | slot->allot = q->scaled_quantum; | 482 | slot->allot = q->scaled_quantum; |
479 | } | 483 | } |