From: Eric Dumazet Date: Thu, 18 Apr 2024 07:32:40 +0000 (+0000) Subject: net_sched: sch_tfs: implement lockless etf_dump() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a1ac3a7c3d1e1f80965510cec7f2c3d4eba57d37;p=linux.git net_sched: sch_tfs: implement lockless etf_dump() Instead of relying on RTNL, codel_dump() can use READ_ONCE() annotations. There is no etf_change() yet, this patch imply aligns this qdisc with others. Signed-off-by: Eric Dumazet Reviewed-by: Simon Horman Signed-off-by: David S. Miller --- diff --git a/net/sched/sch_etf.c b/net/sched/sch_etf.c index 2e4bef713b6ab..c74d778c32a1e 100644 --- a/net/sched/sch_etf.c +++ b/net/sched/sch_etf.c @@ -467,15 +467,15 @@ static int etf_dump(struct Qdisc *sch, struct sk_buff *skb) if (!nest) goto nla_put_failure; - opt.delta = q->delta; - opt.clockid = q->clockid; - if (q->offload) + opt.delta = READ_ONCE(q->delta); + opt.clockid = READ_ONCE(q->clockid); + if (READ_ONCE(q->offload)) opt.flags |= TC_ETF_OFFLOAD_ON; - if (q->deadline_mode) + if (READ_ONCE(q->deadline_mode)) opt.flags |= TC_ETF_DEADLINE_MODE_ON; - if (q->skip_sock_check) + if (READ_ONCE(q->skip_sock_check)) opt.flags |= TC_ETF_SKIP_SOCK_CHECK; if (nla_put(skb, TCA_ETF_PARMS, sizeof(opt), &opt))