diff options
author | Roy.Li <rongqing.li@windriver.com> | 2011-10-03 19:43:35 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-17 19:27:56 -0400 |
commit | 01b7806cdce3d3cf1626a1e79389f30512703069 (patch) | |
tree | f4f20f62018d494e63c58f4b7906badbbf25435c /net/ipv6/ndisc.c | |
parent | f861c2b80c45954e1ea04ead24cafcb1806dd536 (diff) | |
download | lwn-01b7806cdce3d3cf1626a1e79389f30512703069.tar.gz lwn-01b7806cdce3d3cf1626a1e79389f30512703069.zip |
ipv6: remove a rcu_read_lock in ndisc_constructor
in6_dev_get(dev) takes a reference on struct inet6_dev, we dont need
rcu locking in ndisc_constructor()
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/ndisc.c')
-rw-r--r-- | net/ipv6/ndisc.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 1f52dd257631..7968bfec6138 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -370,17 +370,14 @@ static int ndisc_constructor(struct neighbour *neigh) struct neigh_parms *parms; int is_multicast = ipv6_addr_is_multicast(addr); - rcu_read_lock(); in6_dev = in6_dev_get(dev); if (in6_dev == NULL) { - rcu_read_unlock(); return -EINVAL; } parms = in6_dev->nd_parms; __neigh_parms_put(neigh->parms); neigh->parms = neigh_parms_clone(parms); - rcu_read_unlock(); neigh->type = is_multicast ? RTN_MULTICAST : RTN_UNICAST; if (!dev->header_ops) { |