diff options
Diffstat (limited to 'net/ipv6/ndisc.c')
-rw-r--r-- | net/ipv6/ndisc.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index f3e50c29add4..538a61960a24 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c | |||
@@ -93,7 +93,7 @@ | |||
93 | 93 | ||
94 | static u32 ndisc_hash(const void *pkey, | 94 | static u32 ndisc_hash(const void *pkey, |
95 | const struct net_device *dev, | 95 | const struct net_device *dev, |
96 | __u32 rnd); | 96 | __u32 *hash_rnd); |
97 | static int ndisc_constructor(struct neighbour *neigh); | 97 | static int ndisc_constructor(struct neighbour *neigh); |
98 | static void ndisc_solicit(struct neighbour *neigh, struct sk_buff *skb); | 98 | static void ndisc_solicit(struct neighbour *neigh, struct sk_buff *skb); |
99 | static void ndisc_error_report(struct neighbour *neigh, struct sk_buff *skb); | 99 | static void ndisc_error_report(struct neighbour *neigh, struct sk_buff *skb); |
@@ -349,16 +349,9 @@ EXPORT_SYMBOL(ndisc_mc_map); | |||
349 | 349 | ||
350 | static u32 ndisc_hash(const void *pkey, | 350 | static u32 ndisc_hash(const void *pkey, |
351 | const struct net_device *dev, | 351 | const struct net_device *dev, |
352 | __u32 hash_rnd) | 352 | __u32 *hash_rnd) |
353 | { | 353 | { |
354 | const u32 *p32 = pkey; | 354 | return ndisc_hashfn(pkey, dev, hash_rnd); |
355 | u32 addr_hash, i; | ||
356 | |||
357 | addr_hash = 0; | ||
358 | for (i = 0; i < (sizeof(struct in6_addr) / sizeof(u32)); i++) | ||
359 | addr_hash ^= *p32++; | ||
360 | |||
361 | return jhash_2words(addr_hash, dev->ifindex, hash_rnd); | ||
362 | } | 355 | } |
363 | 356 | ||
364 | static int ndisc_constructor(struct neighbour *neigh) | 357 | static int ndisc_constructor(struct neighbour *neigh) |