aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/addrconf.c
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-04-16 20:00:53 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:29:05 -0400
commit6313c1e0992feaee56bc09b85042b3186041fa3c (patch)
treef75cda674d8f2b62bcdb09e59f8bc7010003a91f /net/ipv6/addrconf.c
parent1c2d670f3660e9103fdcdca702f6dbf8ea7d6afb (diff)
[RTNETLINK]: Remove unnecessary locking in dump callbacks
Since we're now holding the rtnl during the entire dump operation, we can remove additional locking for rtnl protected data. This patch does that for all simple cases (dev_base_lock for dev_base walking, RCU protection for FIB rule dumping). Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r--net/ipv6/addrconf.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index eecba1886b49..1486f76f7878 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3224,7 +3224,6 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
3224 3224
3225 s_idx = cb->args[0]; 3225 s_idx = cb->args[0];
3226 s_ip_idx = ip_idx = cb->args[1]; 3226 s_ip_idx = ip_idx = cb->args[1];
3227 read_lock(&dev_base_lock);
3228 3227
3229 for (dev = dev_base, idx = 0; dev; dev = dev->next, idx++) { 3228 for (dev = dev_base, idx = 0; dev; dev = dev->next, idx++) {
3230 if (idx < s_idx) 3229 if (idx < s_idx)
@@ -3286,7 +3285,6 @@ done:
3286 read_unlock_bh(&idev->lock); 3285 read_unlock_bh(&idev->lock);
3287 in6_dev_put(idev); 3286 in6_dev_put(idev);
3288 } 3287 }
3289 read_unlock(&dev_base_lock);
3290 cb->args[0] = idx; 3288 cb->args[0] = idx;
3291 cb->args[1] = ip_idx; 3289 cb->args[1] = ip_idx;
3292 return skb->len; 3290 return skb->len;