diff options
author | David S. Miller <davem@davemloft.net> | 2011-12-28 15:06:58 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-12-28 15:06:58 -0500 |
commit | 2c2aba6c561ac425602f4a0be61422224cb87151 (patch) | |
tree | 30b5f2c40b823ca61e2e0930d5e98a89a83222bb /net/ipv4 | |
parent | 32288eb4d940b10e40c6d4178fe3a40d1437d2f8 (diff) |
ipv6: Use universal hash for NDISC.
In order to perform a proper universal hash on a vector of integers,
we have to use different universal hashes on each vector element.
Which means we need 4 different hash randoms for ipv6.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/arp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 381a0876c363..59402be133f0 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c | |||
@@ -121,7 +121,7 @@ | |||
121 | /* | 121 | /* |
122 | * Interface to generic neighbour cache. | 122 | * Interface to generic neighbour cache. |
123 | */ | 123 | */ |
124 | static u32 arp_hash(const void *pkey, const struct net_device *dev, __u32 rnd); | 124 | static u32 arp_hash(const void *pkey, const struct net_device *dev, __u32 *hash_rnd); |
125 | static int arp_constructor(struct neighbour *neigh); | 125 | static int arp_constructor(struct neighbour *neigh); |
126 | static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb); | 126 | static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb); |
127 | static void arp_error_report(struct neighbour *neigh, struct sk_buff *skb); | 127 | static void arp_error_report(struct neighbour *neigh, struct sk_buff *skb); |
@@ -215,9 +215,9 @@ int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir) | |||
215 | 215 | ||
216 | static u32 arp_hash(const void *pkey, | 216 | static u32 arp_hash(const void *pkey, |
217 | const struct net_device *dev, | 217 | const struct net_device *dev, |
218 | __u32 hash_rnd) | 218 | __u32 *hash_rnd) |
219 | { | 219 | { |
220 | return arp_hashfn(*(u32 *)pkey, dev, hash_rnd); | 220 | return arp_hashfn(*(u32 *)pkey, dev, *hash_rnd); |
221 | } | 221 | } |
222 | 222 | ||
223 | static int arp_constructor(struct neighbour *neigh) | 223 | static int arp_constructor(struct neighbour *neigh) |