diff options
| author | Paul E. McKenney <paulmck@us.ibm.com> | 2004-10-27 18:28:24 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-27 18:28:24 -0700 |
| commit | fa56b76fabdfdff9f8bcb8831ea9e7b4f76eddaf (patch) | |
| tree | 346688ebceddfc2f2c015367d065f12206aaa48d /net/sched | |
| parent | 85a8f4f2956d63628482c685b812432421629fa2 (diff) | |
[PATCH] RCU: use rcu_assign_pointer()
This patch uses the rcu_assign_pointer() API to eliminate a number of explicit
memory barriers from code using RCU. This has been tested successfully on
i386 and ppc64.
Signed-off-by: <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'net/sched')
| -rw-r--r-- | net/sched/sch_api.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c index 127fb296bf92..fee8da1a1c77 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c @@ -453,10 +453,9 @@ qdisc_create(struct net_device *dev, u32 handle, struct rtattr **tca, int *errp) /* enqueue is accessed locklessly - make sure it's visible * before we set a netdevice's qdisc pointer to sch */ - smp_wmb(); if (!ops->init || (err = ops->init(sch, tca[TCA_OPTIONS-1])) == 0) { qdisc_lock_tree(dev); - list_add_tail(&sch->list, &dev->qdisc_list); + list_add_tail_rcu(&sch->list, &dev->qdisc_list); qdisc_unlock_tree(dev); #ifdef CONFIG_NET_ESTIMATOR |
