diff options
author | Sergey Popovich <popovich_sergei@mail.ua> | 2015-01-23 14:58:45 +0200 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2015-03-24 21:19:10 +0100 |
commit | 50197fe55fa9af9d8bd8500459b4dbbffd1419a0 (patch) | |
tree | 2f03de3de0445ca4aab98e40a0eb56e591f15124 | |
parent | e3fa2c296c43919fc701bd20ed3fc4fc91d6b415 (diff) |
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.h | 2 | ||||
-rw-r--r-- | kernel/net/netfilter/ipset/ip_set_hash_ip.c | 1 | ||||
-rw-r--r-- | kernel/net/netfilter/ipset/ip_set_hash_ipmark.c | 3 | ||||
-rw-r--r-- | kernel/net/netfilter/ipset/ip_set_hash_ipport.c | 3 | ||||
-rw-r--r-- | kernel/net/netfilter/ipset/ip_set_hash_netiface.c | 1 |
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 |