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

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

sch_sfb: keep backlog updated with qlen



Fixes: 2ccccf5f ("net_sched: update hierarchical backlog too")
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2ed5c3f0
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -400,6 +400,7 @@ static int sfb_enqueue(struct sk_buff *skb, struct Qdisc *sch,
enqueue:
enqueue:
	ret = qdisc_enqueue(skb, child, to_free);
	ret = qdisc_enqueue(skb, child, to_free);
	if (likely(ret == NET_XMIT_SUCCESS)) {
	if (likely(ret == NET_XMIT_SUCCESS)) {
		qdisc_qstats_backlog_inc(sch, skb);
		sch->q.qlen++;
		sch->q.qlen++;
		increment_qlen(skb, q);
		increment_qlen(skb, q);
	} else if (net_xmit_drop_count(ret)) {
	} else if (net_xmit_drop_count(ret)) {
@@ -428,6 +429,7 @@ static struct sk_buff *sfb_dequeue(struct Qdisc *sch)


	if (skb) {
	if (skb) {
		qdisc_bstats_update(sch, skb);
		qdisc_bstats_update(sch, skb);
		qdisc_qstats_backlog_dec(sch, skb);
		sch->q.qlen--;
		sch->q.qlen--;
		decrement_qlen(skb, q);
		decrement_qlen(skb, q);
	}
	}
@@ -450,6 +452,7 @@ static void sfb_reset(struct Qdisc *sch)
	struct sfb_sched_data *q = qdisc_priv(sch);
	struct sfb_sched_data *q = qdisc_priv(sch);


	qdisc_reset(q->qdisc);
	qdisc_reset(q->qdisc);
	sch->qstats.backlog = 0;
	sch->q.qlen = 0;
	sch->q.qlen = 0;
	q->slot = 0;
	q->slot = 0;
	q->double_buffering = false;
	q->double_buffering = false;