aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_api.c
diff options
context:
space:
mode:
authorEric Dumazet <dada1@cosmosbay.com>2007-11-14 04:44:41 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:53:58 -0500
commit20fea08b5fb639c4c175b5c74a2bb346c5c5bc2e (patch)
tree3ffa7e1e82051c6772fc2a01d561e4a5a29bb138 /net/sched/sch_api.c
parent2a8cc6c89039e0530a3335954253b76ed0f9339a (diff)
[NET]: Move Qdisc_class_ops and Qdisc_ops in appropriate sections.
Qdisc_class_ops are const, and Qdisc_ops are mostly read. Using "const" and "__read_mostly" qualifiers helps to reduce false sharing. Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_api.c')
-rw-r--r--net/sched/sch_api.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index 8ae137e3522b..259321be1ad8 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -195,7 +195,7 @@ static struct Qdisc *qdisc_leaf(struct Qdisc *p, u32 classid)
195{ 195{
196 unsigned long cl; 196 unsigned long cl;
197 struct Qdisc *leaf; 197 struct Qdisc *leaf;
198 struct Qdisc_class_ops *cops = p->ops->cl_ops; 198 const struct Qdisc_class_ops *cops = p->ops->cl_ops;
199 199
200 if (cops == NULL) 200 if (cops == NULL)
201 return NULL; 201 return NULL;
@@ -373,7 +373,7 @@ dev_graft_qdisc(struct net_device *dev, struct Qdisc *qdisc)
373 373
374void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n) 374void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
375{ 375{
376 struct Qdisc_class_ops *cops; 376 const struct Qdisc_class_ops *cops;
377 unsigned long cl; 377 unsigned long cl;
378 u32 parentid; 378 u32 parentid;
379 379
@@ -417,7 +417,7 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
417 *old = dev_graft_qdisc(dev, new); 417 *old = dev_graft_qdisc(dev, new);
418 } 418 }
419 } else { 419 } else {
420 struct Qdisc_class_ops *cops = parent->ops->cl_ops; 420 const struct Qdisc_class_ops *cops = parent->ops->cl_ops;
421 421
422 err = -EINVAL; 422 err = -EINVAL;
423 423
@@ -581,7 +581,7 @@ static int
581check_loop_fn(struct Qdisc *q, unsigned long cl, struct qdisc_walker *w) 581check_loop_fn(struct Qdisc *q, unsigned long cl, struct qdisc_walker *w)
582{ 582{
583 struct Qdisc *leaf; 583 struct Qdisc *leaf;
584 struct Qdisc_class_ops *cops = q->ops->cl_ops; 584 const struct Qdisc_class_ops *cops = q->ops->cl_ops;
585 struct check_loop_arg *arg = (struct check_loop_arg *)w; 585 struct check_loop_arg *arg = (struct check_loop_arg *)w;
586 586
587 leaf = cops->leaf(q, cl); 587 leaf = cops->leaf(q, cl);
@@ -924,7 +924,7 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
924 struct rtattr **tca = arg; 924 struct rtattr **tca = arg;
925 struct net_device *dev; 925 struct net_device *dev;
926 struct Qdisc *q = NULL; 926 struct Qdisc *q = NULL;
927 struct Qdisc_class_ops *cops; 927 const struct Qdisc_class_ops *cops;
928 unsigned long cl = 0; 928 unsigned long cl = 0;
929 unsigned long new_cl; 929 unsigned long new_cl;
930 u32 pid = tcm->tcm_parent; 930 u32 pid = tcm->tcm_parent;
@@ -1039,7 +1039,7 @@ static int tc_fill_tclass(struct sk_buff *skb, struct Qdisc *q,
1039 struct nlmsghdr *nlh; 1039 struct nlmsghdr *nlh;
1040 unsigned char *b = skb_tail_pointer(skb); 1040 unsigned char *b = skb_tail_pointer(skb);
1041 struct gnet_dump d; 1041 struct gnet_dump d;
1042 struct Qdisc_class_ops *cl_ops = q->ops->cl_ops; 1042 const struct Qdisc_class_ops *cl_ops = q->ops->cl_ops;
1043 1043
1044 nlh = NLMSG_NEW(skb, pid, seq, event, sizeof(*tcm), flags); 1044 nlh = NLMSG_NEW(skb, pid, seq, event, sizeof(*tcm), flags);
1045 tcm = NLMSG_DATA(nlh); 1045 tcm = NLMSG_DATA(nlh);