diff options
author | Denis V. Lunev <den@openvz.org> | 2008-01-15 09:59:59 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-29 02:02:10 +0300 |
commit | 486b51d3706c5493b6c50992eaaafc44e628a7ed (patch) | |
tree | a673ae4ee9f03bfad9649d02d9ef27151c241f2c /net/core/neighbour.c | |
parent | 72132c1b6c7a7605cdfde86a9f58b6ca2b2195a6 (diff) | |
download | linux-486b51d3706c5493b6c50992eaaafc44e628a7ed.tar.xz |
[ARP]: Remove overkill checks from neigh_param_alloc.
Valid network device is always passed into neigh_param_alloc, so
remove extra checking for dev == NULL. Additionally, cleanup bogus
netns assignment.
Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/neighbour.c')
-rw-r--r-- | net/core/neighbour.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 19c0dd12fd58..62d47841c67d 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -1291,10 +1291,7 @@ struct neigh_parms *neigh_parms_alloc(struct net_device *dev, struct neigh_parms *p, *ref; struct net *net; - net = &init_net; - if (dev) - net = dev->nd_net; - + net = dev->nd_net; ref = lookup_neigh_params(tbl, net, 0); if (!ref) return NULL; @@ -1306,15 +1303,14 @@ struct neigh_parms *neigh_parms_alloc(struct net_device *dev, INIT_RCU_HEAD(&p->rcu_head); p->reachable_time = neigh_rand_reach_time(p->base_reachable_time); - if (dev) { - if (dev->neigh_setup && dev->neigh_setup(dev, p)) { - kfree(p); - return NULL; - } - dev_hold(dev); - p->dev = dev; + if (dev->neigh_setup && dev->neigh_setup(dev, p)) { + kfree(p); + return NULL; } + + dev_hold(dev); + p->dev = dev; p->net = hold_net(net); p->sysctl_table = NULL; write_lock_bh(&tbl->lock); |