diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-20 19:00:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-20 19:06:10 -0400 |
commit | 0bb4087cbec0ef74fd416789d6aad67957063057 (patch) | |
tree | b5a9a178fb8af1e83e806a91950904273d9e9927 /include/net/arp.h | |
parent | fa0afcd10951afad2022dda09777d2bf70cdab3d (diff) |
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/arp.h')
-rw-r--r-- | include/net/arp.h | 3 |
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 | |||
21 | struct neighbour *n; | 21 | struct neighbour *n; |
22 | u32 hash_val; | 22 | u32 hash_val; |
23 | 23 | ||
24 | if (dev->flags & (IFF_LOOPBACK | IFF_POINTOPOINT)) | ||
25 | key = 0; | ||
26 | |||
27 | hash_val = arp_hashfn(key, dev, nht->hash_rnd[0]) >> (32 - nht->hash_shift); | 24 | hash_val = arp_hashfn(key, dev, nht->hash_rnd[0]) >> (32 - nht->hash_shift); |
28 | for (n = rcu_dereference_bh(nht->hash_buckets[hash_val]); | 25 | for (n = rcu_dereference_bh(nht->hash_buckets[hash_val]); |
29 | n != NULL; | 26 | n != NULL; |