summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Popovich <popovich_sergei@mail.ua>2015-01-23 14:58:45 +0200
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2015-03-24 21:19:10 +0100
commit50197fe55fa9af9d8bd8500459b4dbbffd1419a0 (patch)
tree2f03de3de0445ca4aab98e40a0eb56e591f15124
parente3fa2c296c43919fc701bd20ed3fc4fc91d6b415 (diff)
downloadipset-50197fe55fa9af9d8bd8500459b4dbbffd1419a0.tar.gz
netfilter: ipset: Fix hashing for ipv6 sets
HKEY_DATALEN remains defined after first inclusion of ip_set_hash_gen.h, so it is incorrectly reused for IPv6 code. Undefine HKEY_DATALEN in ip_set_hash_gen.h at the end. Also remove some useless defines of HKEY_DATALEN in ip_set_hash_{ip{,mark,port},netiface}.c as ip_set_hash_gen.h defines it correctly for such set types anyway. Signed-off-by: Sergey Popovich <popovich_sergei@mail.ua> Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
-rw-r--r--kernel/net/netfilter/ipset/ip_set_hash_gen.h2
-rw-r--r--kernel/net/netfilter/ipset/ip_set_hash_ip.c1
-rw-r--r--kernel/net/netfilter/ipset/ip_set_hash_ipmark.c3
-rw-r--r--kernel/net/netfilter/ipset/ip_set_hash_ipport.c3
-rw-r--r--kernel/net/netfilter/ipset/ip_set_hash_netiface.c1
5 files changed, 2 insertions, 8 deletions
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_gen.h b/kernel/net/netfilter/ipset/ip_set_hash_gen.h
index d9b4a2a..102aa16 100644
--- a/kernel/net/netfilter/ipset/ip_set_hash_gen.h
+++ b/kernel/net/netfilter/ipset/ip_set_hash_gen.h
@@ -1331,3 +1331,5 @@ IPSET_TOKEN(HTYPE, _create)(struct net *net, struct ip_set *set,
return 0;
}
#endif /* IP_SET_EMIT_CREATE */
+
+#undef HKEY_DATALEN
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_ip.c b/kernel/net/netfilter/ipset/ip_set_hash_ip.c
index 48e2ee4..967b6e6 100644
--- a/kernel/net/netfilter/ipset/ip_set_hash_ip.c
+++ b/kernel/net/netfilter/ipset/ip_set_hash_ip.c
@@ -205,7 +205,6 @@ hash_ip6_data_next(struct hash_ip4_elem *next, const struct hash_ip6_elem *e)
#undef MTYPE
#undef HOST_MASK
-#undef HKEY_DATALEN
#define MTYPE hash_ip6
#define HOST_MASK 128
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_ipmark.c b/kernel/net/netfilter/ipset/ip_set_hash_ipmark.c
index 4f6fc0d..32fbb59 100644
--- a/kernel/net/netfilter/ipset/ip_set_hash_ipmark.c
+++ b/kernel/net/netfilter/ipset/ip_set_hash_ipmark.c
@@ -78,7 +78,6 @@ hash_ipmark4_data_next(struct hash_ipmark4_elem *next,
#define MTYPE hash_ipmark4
#define HOST_MASK 32
-#define HKEY_DATALEN sizeof(struct hash_ipmark4_elem)
#include "ip_set_hash_gen.h"
static int
@@ -201,11 +200,9 @@ hash_ipmark6_data_next(struct hash_ipmark4_elem *next,
#undef MTYPE
#undef HOST_MASK
-#undef HKEY_DATALEN
#define MTYPE hash_ipmark6
#define HOST_MASK 128
-#define HKEY_DATALEN sizeof(struct hash_ipmark6_elem)
#define IP_SET_EMIT_CREATE
#include "ip_set_hash_gen.h"
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_ipport.c b/kernel/net/netfilter/ipset/ip_set_hash_ipport.c
index 19afae9..4311d2b 100644
--- a/kernel/net/netfilter/ipset/ip_set_hash_ipport.c
+++ b/kernel/net/netfilter/ipset/ip_set_hash_ipport.c
@@ -85,7 +85,6 @@ hash_ipport4_data_next(struct hash_ipport4_elem *next,
#define MTYPE hash_ipport4
#define HOST_MASK 32
-#define HKEY_DATALEN sizeof(struct hash_ipport4_elem)
#include "ip_set_hash_gen.h"
static int
@@ -240,11 +239,9 @@ hash_ipport6_data_next(struct hash_ipport4_elem *next,
#undef MTYPE
#undef HOST_MASK
-#undef HKEY_DATALEN
#define MTYPE hash_ipport6
#define HOST_MASK 128
-#define HKEY_DATALEN sizeof(struct hash_ipport6_elem)
#define IP_SET_EMIT_CREATE
#include "ip_set_hash_gen.h"
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_netiface.c b/kernel/net/netfilter/ipset/ip_set_hash_netiface.c
index c9551f3..646c9f5 100644
--- a/kernel/net/netfilter/ipset/ip_set_hash_netiface.c
+++ b/kernel/net/netfilter/ipset/ip_set_hash_netiface.c
@@ -341,7 +341,6 @@ hash_netiface6_data_next(struct hash_netiface4_elem *next,
#undef MTYPE
#undef HOST_MASK
-#undef HKEY_DATALEN
#define MTYPE hash_netiface6
#define HOST_MASK 128