summaryrefslogtreecommitdiffstats
path: root/net/sched/sch_cbq.c
diff options
context:
space:
mode:
authorAhmed S. Darwish <a.darwish@linutronix.de>2021-10-16 10:49:08 +0200
committerDavid S. Miller <davem@davemloft.net>2021-10-18 12:54:41 +0100
commitf56940daa5a74fb20b5f5487535549949f2d8d0c (patch)
treef50ec19fb2903f670b8f6ed33c89be3bb8694503 /net/sched/sch_cbq.c
parent67c9e6270f3013e4d86ec57c4e7f27459f2a0652 (diff)
downloadlinux-stable-f56940daa5a74fb20b5f5487535549949f2d8d0c.tar.gz
linux-stable-f56940daa5a74fb20b5f5487535549949f2d8d0c.tar.bz2
linux-stable-f56940daa5a74fb20b5f5487535549949f2d8d0c.zip
net: sched: Use _bstats_update/set() instead of raw writes
The Qdisc::running sequence counter, used to protect Qdisc::bstats reads from parallel writes, is in the process of being removed. Qdisc::bstats read/writes will synchronize using an internal u64_stats sync point instead. Modify all bstats writes to use _bstats_update(). This ensures that the internal u64_stats sync point is always acquired and released as appropriate. Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_cbq.c')
-rw-r--r--net/sched/sch_cbq.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index d01f6ec315f8..ef9e87175d35 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -565,8 +565,7 @@ cbq_update(struct cbq_sched_data *q)
long avgidle = cl->avgidle;
long idle;
- cl->bstats.packets++;
- cl->bstats.bytes += len;
+ _bstats_update(&cl->bstats, len, 1);
/*
* (now - last) is total time between packet right edges.