The commit is pushed to "branch-rh7-3.10.0-327.10.1.vz7.12.x-ovz" and will
appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-327.10.1.vz7.12.3
------>
commit 9393d1053494a6051009ff7473a1634e847e3115
Author: Pavel Tikhomirov <[email protected]>
Date: Thu Mar 24 19:53:37 2016 +0400
vzprivnet6: Mask the jhash value to fit the chain into one page - fix hash
access
Port diff-vz-privnet6-fix-hash-access
privnet6: Mask the jhash value to fit the chain into one page...
Ported from rhel5
Signed-off-by: Pavel Tikhomirov <[email protected]>
---
net/ipv6/netfilter/ip6_vzprivnet.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/ipv6/netfilter/ip6_vzprivnet.c
b/net/ipv6/netfilter/ip6_vzprivnet.c
index 44fb61b..3586c72 100644
--- a/net/ipv6/netfilter/ip6_vzprivnet.c
+++ b/net/ipv6/netfilter/ip6_vzprivnet.c
@@ -38,12 +38,14 @@ struct vzprivnet_hash {
static struct vzprivnet_hash hashes[MAX_PREFLEN];
static unsigned hash_rnd;
+#define HASH_MASK ((PAGE_SIZE / sizeof(struct hlist_head)) - 1)
+
static noinline unsigned hash_ip_and_prefix(u32 *ip, unsigned preflen)
{
u32 key[4];
ipv6_addr_prefix((struct in6_addr *)key, (struct in6_addr *)ip,
preflen);
- return jhash2(key, 4, hash_rnd);
+ return jhash2(key, 4, hash_rnd) & HASH_MASK;
}
static inline int ip6_match(u32 *net, unsigned plen, u32 *ip)
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel