diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-10-29 03:09:24 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-08 13:50:08 -0800 |
commit | fc766e4c4965915ab52a1d1fa3c7a7b3e7bc07f0 (patch) | |
tree | d45160f52eea37d4e5149d511c3c577bef253801 /include/net/dst.h | |
parent | e4a7b93bd5d84e1e79917d024d17d745d190fc9a (diff) | |
download | op-kernel-dev-fc766e4c4965915ab52a1d1fa3c7a7b3e7bc07f0.zip op-kernel-dev-fc766e4c4965915ab52a1d1fa3c7a7b3e7bc07f0.tar.gz |
decnet: RCU conversion and get rid of dev_base_lock
While tracking dev_base_lock users, I found decnet used it in
dnet_select_source(), but for a wrong purpose:
Writers only hold RTNL, not dev_base_lock, so readers must use RCU if
they cannot use RTNL.
Adds an rcu_head in struct dn_ifaddr and handle proper RCU management.
Adds __rcu annotation in dn_route as well.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/dst.h')
-rw-r--r-- | include/net/dst.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index ffe9cb7..a5bd726 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -94,10 +94,10 @@ struct dst_entry { int __use; unsigned long lastuse; union { - struct dst_entry *next; - struct rtable __rcu *rt_next; - struct rt6_info *rt6_next; - struct dn_route *dn_next; + struct dst_entry *next; + struct rtable __rcu *rt_next; + struct rt6_info *rt6_next; + struct dn_route __rcu *dn_next; }; }; |