summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDust Li <dust.li@linux.alibaba.com>2019-12-03 11:17:40 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-18 16:05:43 +0100
commitd38ae2264d8650abcbc5f27e90e444f474355a61 (patch)
treeedf73105d7cedfb50a408dc6f1d28050e5b5054c
parenta22984689ca59550501392ff34cda62bf0c38df2 (diff)
downloadlinux-stable-d38ae2264d8650abcbc5f27e90e444f474355a61.tar.gz
linux-stable-d38ae2264d8650abcbc5f27e90e444f474355a61.tar.bz2
linux-stable-d38ae2264d8650abcbc5f27e90e444f474355a61.zip
net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
[ Upstream commit 2f23cd42e19c22c24ff0e221089b7b6123b117c5 ] 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 7b67e4d8e448..8766ab5b8788 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;