Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pkt_sched: Kill stats_lock member of struct Qdisc.

It is always equal to qdisc->dev_queue->lock

Signed-off-by: David S. Miller <davem@davemloft.net>

+4 -7
-1
include/net/sch_generic.h
··· 43 43 struct gnet_stats_basic bstats; 44 44 struct gnet_stats_queue qstats; 45 45 struct gnet_stats_rate_est rate_est; 46 - spinlock_t *stats_lock; 47 46 struct rcu_head q_rcu; 48 47 int (*reshape_fail)(struct sk_buff *skb, 49 48 struct Qdisc *q);
+4 -5
net/sched/sch_api.c
··· 604 604 605 605 sch->parent = parent; 606 606 607 - sch->stats_lock = &dev_queue->lock; 608 607 if (handle == TC_H_INGRESS) { 609 608 sch->flags |= TCQ_F_INGRESS; 610 609 handle = TC_H_MAKE(TC_H_INGRESS, 0); ··· 621 622 if (!ops->init || (err = ops->init(sch, tca[TCA_OPTIONS])) == 0) { 622 623 if (tca[TCA_RATE]) { 623 624 err = gen_new_estimator(&sch->bstats, &sch->rate_est, 624 - sch->stats_lock, 625 + &sch->dev_queue->lock, 625 626 tca[TCA_RATE]); 626 627 if (err) { 627 628 /* ··· 663 664 } 664 665 if (tca[TCA_RATE]) 665 666 gen_replace_estimator(&sch->bstats, &sch->rate_est, 666 - sch->stats_lock, tca[TCA_RATE]); 667 + &sch->dev_queue->lock, tca[TCA_RATE]); 667 668 return 0; 668 669 } 669 670 ··· 953 954 q->qstats.qlen = q->q.qlen; 954 955 955 956 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, 956 - TCA_XSTATS, q->stats_lock, &d) < 0) 957 + TCA_XSTATS, &q->dev_queue->lock, &d) < 0) 957 958 goto nla_put_failure; 958 959 959 960 if (q->ops->dump_stats && q->ops->dump_stats(q, &d) < 0) ··· 1202 1203 goto nla_put_failure; 1203 1204 1204 1205 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, 1205 - TCA_XSTATS, q->stats_lock, &d) < 0) 1206 + TCA_XSTATS, &q->dev_queue->lock, &d) < 0) 1206 1207 goto nla_put_failure; 1207 1208 1208 1209 if (cl_ops->dump_stats && cl_ops->dump_stats(q, cl, &d) < 0)
-1
net/sched/sch_generic.c
··· 484 484 sch = qdisc_alloc(dev_queue, ops); 485 485 if (IS_ERR(sch)) 486 486 goto errout; 487 - sch->stats_lock = &dev_queue->lock; 488 487 sch->parent = parentid; 489 488 490 489 if (!ops->init || ops->init(sch, NULL) == 0)