Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0afd9ce authored by WANG Cong's avatar WANG Cong Committed by David S. Miller
Browse files

fq_codel: fix return value of fq_codel_drop()



The ->drop() is supposed to return the number of bytes it dropped,
however fq_codel_drop() returns the index of the flow where it drops
a packet from.

Fix this by introducing a helper to wrap fq_codel_drop().

Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: default avatarCong Wang <cwang@twopensource.com>
Acked-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e8d092aa
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -163,6 +163,15 @@ static unsigned int fq_codel_drop(struct Qdisc *sch)
	return idx;
}

static unsigned int fq_codel_qdisc_drop(struct Qdisc *sch)
{
	unsigned int prev_backlog;

	prev_backlog = sch->qstats.backlog;
	fq_codel_drop(sch);
	return prev_backlog - sch->qstats.backlog;
}

static int fq_codel_enqueue(struct sk_buff *skb, struct Qdisc *sch)
{
	struct fq_codel_sched_data *q = qdisc_priv(sch);
@@ -604,7 +613,7 @@ static struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = {
	.enqueue	=	fq_codel_enqueue,
	.dequeue	=	fq_codel_dequeue,
	.peek		=	qdisc_peek_dequeued,
	.drop		=	fq_codel_drop,
	.drop		=	fq_codel_qdisc_drop,
	.init		=	fq_codel_init,
	.reset		=	fq_codel_reset,
	.destroy	=	fq_codel_destroy,