aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/ipv6.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/ipv6.c')
-rw-r--r--net/sctp/ipv6.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
index 99c0cefc04e0..249e5033c1a8 100644
--- a/net/sctp/ipv6.c
+++ b/net/sctp/ipv6.c
@@ -78,7 +78,6 @@
78 78
79#include <asm/uaccess.h> 79#include <asm/uaccess.h>
80 80
81extern int sctp_inetaddr_event(struct notifier_block *, unsigned long, void *);
82static struct notifier_block sctp_inet6addr_notifier = { 81static struct notifier_block sctp_inet6addr_notifier = {
83 .notifier_call = sctp_inetaddr_event, 82 .notifier_call = sctp_inetaddr_event,
84}; 83};
@@ -322,9 +321,9 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
322 struct inet6_ifaddr *ifp; 321 struct inet6_ifaddr *ifp;
323 struct sctp_sockaddr_entry *addr; 322 struct sctp_sockaddr_entry *addr;
324 323
325 read_lock(&addrconf_lock); 324 rcu_read_lock();
326 if ((in6_dev = __in6_dev_get(dev)) == NULL) { 325 if ((in6_dev = __in6_dev_get(dev)) == NULL) {
327 read_unlock(&addrconf_lock); 326 rcu_read_unlock();
328 return; 327 return;
329 } 328 }
330 329
@@ -343,7 +342,7 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
343 } 342 }
344 343
345 read_unlock(&in6_dev->lock); 344 read_unlock(&in6_dev->lock);
346 read_unlock(&addrconf_lock); 345 rcu_read_unlock();
347} 346}
348 347
349/* Initialize a sockaddr_storage from in incoming skb. */ 348/* Initialize a sockaddr_storage from in incoming skb. */