net: sched: gred: prevent races when adding offloads to stats
authorJakub Kicinski <kuba@kernel.org>
Fri, 13 Jan 2023 04:41:37 +0000 (20:41 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 19 Jan 2023 04:28:25 +0000 (20:28 -0800)
commit339346d49ae0859fe19b860998867861d37f1a76
tree008f4d986d20f21879d66819508b62bf4ed3d862
parentedb5b63e5673add742a860814a4f43ff213178ea
net: sched: gred: prevent races when adding offloads to stats

Naresh reports seeing a warning that gred is calling
u64_stats_update_begin() with preemption enabled.
Arnd points out it's coming from _bstats_update().

We should be holding the qdisc lock when writing
to stats, they are also updated from the datapath.

Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
Link: https://lore.kernel.org/all/CA+G9fYsTr9_r893+62u6UGD3dVaCE-kN9C-Apmb2m=hxjc1Cqg@mail.gmail.com/
Fixes: e49efd5288bd ("net: sched: gred: support reporting stats from offloads")
Link: https://lore.kernel.org/r/20230113044137.1383067-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sched/sch_gred.c