diff options
Diffstat (limited to 'net/decnet/af_decnet.c')
-rw-r--r-- | net/decnet/af_decnet.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index 664965c87e16..2e355841ca99 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c | |||
@@ -749,9 +749,9 @@ static int dn_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) | |||
749 | 749 | ||
750 | if (!(saddr->sdn_flags & SDF_WILD)) { | 750 | if (!(saddr->sdn_flags & SDF_WILD)) { |
751 | if (le16_to_cpu(saddr->sdn_nodeaddrl)) { | 751 | if (le16_to_cpu(saddr->sdn_nodeaddrl)) { |
752 | read_lock(&dev_base_lock); | 752 | rcu_read_lock(); |
753 | ldev = NULL; | 753 | ldev = NULL; |
754 | for_each_netdev(&init_net, dev) { | 754 | for_each_netdev_rcu(&init_net, dev) { |
755 | if (!dev->dn_ptr) | 755 | if (!dev->dn_ptr) |
756 | continue; | 756 | continue; |
757 | if (dn_dev_islocal(dev, dn_saddr2dn(saddr))) { | 757 | if (dn_dev_islocal(dev, dn_saddr2dn(saddr))) { |
@@ -759,7 +759,7 @@ static int dn_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) | |||
759 | break; | 759 | break; |
760 | } | 760 | } |
761 | } | 761 | } |
762 | read_unlock(&dev_base_lock); | 762 | rcu_read_unlock(); |
763 | if (ldev == NULL) | 763 | if (ldev == NULL) |
764 | return -EADDRNOTAVAIL; | 764 | return -EADDRNOTAVAIL; |
765 | } | 765 | } |