summary refs log tree commit diff
path: root/include/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-07-20 16:00:53 -0700
committerDavid S. Miller <davem@davemloft.net>2012-07-20 16:06:10 -0700
commit0bb4087cbec0ef74fd416789d6aad67957063057 (patch)
treeb5a9a178fb8af1e83e806a91950904273d9e9927 /include/net
parentfa0afcd10951afad2022dda09777d2bf70cdab3d (diff)
downloadlinux-0bb4087cbec0ef74fd416789d6aad67957063057.tar.gz
ipv4: Fix neigh lookup keying over loopback/point-to-point devices.
We were using a special key "0" for all loopback and point-to-point
device neigh lookups under ipv4, but we wouldn't use that special
key for the neigh creation.

So basically we'd make a new neigh at each and every lookup :-)

This special case to use only one neigh for these device types
is of dubious value, so just remove it entirely.

Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/arp.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/include/net/arp.h b/include/net/arp.h
index 4617d9841132..7f7df93f37cd 100644
--- a/include/net/arp.h
+++ b/include/net/arp.h
@@ -21,9 +21,6 @@ static inline struct neighbour *__ipv4_neigh_lookup_noref(struct net_device *dev
 	struct neighbour *n;
 	u32 hash_val;
 
-	if (dev->flags & (IFF_LOOPBACK | IFF_POINTOPOINT))
-		key = 0;
-
 	hash_val = arp_hashfn(key, dev, nht->hash_rnd[0]) >> (32 - nht->hash_shift);
 	for (n = rcu_dereference_bh(nht->hash_buckets[hash_val]);
 	     n != NULL;