summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJussi Mäki <joamaki@gmail.com>2009-08-06 23:38:14 +0200
committerDavid S. Miller <davem@davemloft.net>2009-08-10 06:45:31 +0200
commitb79a79471bd31d737c939a6ddc347417047b4320 (patch)
treec208fa8937da25184215504c063e032822ea2d3e /net
parentatlx: strncpy does not null terminate string (diff)
downloadlinux-b79a79471bd31d737c939a6ddc347417047b4320.tar.xz
linux-b79a79471bd31d737c939a6ddc347417047b4320.zip
Fix xfrm hash collisions by changing __xfrm4_daddr_saddr_hash to hash addresses with addition
This patch fixes hash collisions in cases where number of entries have incrementing IP source and destination addresses from single respective subnets (i.e. 192.168.0.1-172.16.0.1, 192.168.0.2-172.16.0.2, and so on.). Signed-off-by: Jussi Maki <joamaki@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/xfrm/xfrm_hash.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_hash.h b/net/xfrm/xfrm_hash.h
index d401dc8f05ed..e5195c99f71e 100644
--- a/net/xfrm/xfrm_hash.h
+++ b/net/xfrm/xfrm_hash.h
@@ -16,7 +16,7 @@ static inline unsigned int __xfrm6_addr_hash(xfrm_address_t *addr)
static inline unsigned int __xfrm4_daddr_saddr_hash(xfrm_address_t *daddr, xfrm_address_t *saddr)
{
- return ntohl(daddr->a4 ^ saddr->a4);
+ return ntohl(daddr->a4 + saddr->a4);
}
static inline unsigned int __xfrm6_daddr_saddr_hash(xfrm_address_t *daddr, xfrm_address_t *saddr)