summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDust Li <dust.li@linux.alibaba.com>2019-12-03 11:17:40 +0800
committerDavid S. Miller <davem@davemloft.net>2019-12-03 11:53:55 -0800
commit2f23cd42e19c22c24ff0e221089b7b6123b117c5 (patch)
treece2e53a524b4584053dca5b04fd261f29cc54d65 /net
parent0d580fbd2db084a5c96ee9c00492236a279d5e0f (diff)
downloadlinux-2f23cd42e19c22c24ff0e221089b7b6123b117c5.tar.gz
linux-2f23cd42e19c22c24ff0e221089b7b6123b117c5.tar.bz2
linux-2f23cd42e19c22c24ff0e221089b7b6123b117c5.zip
net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
sch->q.len hasn't been set if the subqueue is a NOLOCK qdisc in mq_dump() and mqprio_dump(). Fixes: ce679e8df7ed ("net: sched: add support for TCQ_F_NOLOCK subqueues to sch_mqprio") Signed-off-by: Dust Li <dust.li@linux.alibaba.com> Signed-off-by: Tony Lu <tonylu@linux.alibaba.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/sched/sch_mq.c1
-rw-r--r--net/sched/sch_mqprio.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/net/sched/sch_mq.c b/net/sched/sch_mq.c
index 278c0b2dc523..e79f1afe0cfd 100644
--- a/net/sched/sch_mq.c
+++ b/net/sched/sch_mq.c
@@ -153,6 +153,7 @@ static int mq_dump(struct Qdisc *sch, struct sk_buff *skb)
__gnet_stats_copy_queue(&sch->qstats,
qdisc->cpu_qstats,
&qdisc->qstats, qlen);
+ sch->q.qlen += qlen;
} else {
sch->q.qlen += qdisc->q.qlen;
sch->bstats.bytes += qdisc->bstats.bytes;
diff --git a/net/sched/sch_mqprio.c b/net/sched/sch_mqprio.c
index 0d0113a24962..de4e00a58bc6 100644
--- a/net/sched/sch_mqprio.c
+++ b/net/sched/sch_mqprio.c
@@ -411,6 +411,7 @@ static int mqprio_dump(struct Qdisc *sch, struct sk_buff *skb)
__gnet_stats_copy_queue(&sch->qstats,
qdisc->cpu_qstats,
&qdisc->qstats, qlen);
+ sch->q.qlen += qlen;
} else {
sch->q.qlen += qdisc->q.qlen;
sch->bstats.bytes += qdisc->bstats.bytes;