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>
This commit is contained in:
parent
e4a7b93bd5
commit
fc766e4c49
8 changed files with 127 additions and 88 deletions
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue