diff options
author | WANG Cong <xiyou.wangcong@gmail.com> | 2014-05-06 14:15:56 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-08 22:56:56 -0400 |
commit | 32a4be48907b930606f8736caa15c812af802227 (patch) | |
tree | bb39bdbdd14525746e9663f616c783464654c8d0 | |
parent | f398a77177716137cceda2f00901f54413677869 (diff) |
ipv4: remove inet_addr_hash_lock in devinet.c
All the callers hold RTNL lock, so there is no need to use inet_addr_hash_lock
to protect the hash list.
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/devinet.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index bdbf68bb2e2d..78692e46b64f 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c | |||
@@ -106,7 +106,6 @@ static const struct nla_policy ifa_ipv4_policy[IFA_MAX+1] = { | |||
106 | #define IN4_ADDR_HSIZE (1U << IN4_ADDR_HSIZE_SHIFT) | 106 | #define IN4_ADDR_HSIZE (1U << IN4_ADDR_HSIZE_SHIFT) |
107 | 107 | ||
108 | static struct hlist_head inet_addr_lst[IN4_ADDR_HSIZE]; | 108 | static struct hlist_head inet_addr_lst[IN4_ADDR_HSIZE]; |
109 | static DEFINE_SPINLOCK(inet_addr_hash_lock); | ||
110 | 109 | ||
111 | static u32 inet_addr_hash(struct net *net, __be32 addr) | 110 | static u32 inet_addr_hash(struct net *net, __be32 addr) |
112 | { | 111 | { |
@@ -119,16 +118,14 @@ static void inet_hash_insert(struct net *net, struct in_ifaddr *ifa) | |||
119 | { | 118 | { |
120 | u32 hash = inet_addr_hash(net, ifa->ifa_local); | 119 | u32 hash = inet_addr_hash(net, ifa->ifa_local); |
121 | 120 | ||
122 | spin_lock(&inet_addr_hash_lock); | 121 | ASSERT_RTNL(); |
123 | hlist_add_head_rcu(&ifa->hash, &inet_addr_lst[hash]); | 122 | hlist_add_head_rcu(&ifa->hash, &inet_addr_lst[hash]); |
124 | spin_unlock(&inet_addr_hash_lock); | ||
125 | } | 123 | } |
126 | 124 | ||
127 | static void inet_hash_remove(struct in_ifaddr *ifa) | 125 | static void inet_hash_remove(struct in_ifaddr *ifa) |
128 | { | 126 | { |
129 | spin_lock(&inet_addr_hash_lock); | 127 | ASSERT_RTNL(); |
130 | hlist_del_init_rcu(&ifa->hash); | 128 | hlist_del_init_rcu(&ifa->hash); |
131 | spin_unlock(&inet_addr_hash_lock); | ||
132 | } | 129 | } |
133 | 130 | ||
134 | /** | 131 | /** |