mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-14 06:35:12 +00:00
ipvs: fix hashing in ip_vs_svc_hashkey
net is a pointer in host order, mix it properly with other keys in network order. Fixes sparse warning. Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
1cdb09056b
commit
e9836f24f2
1 changed files with 5 additions and 3 deletions
|
@ -271,16 +271,18 @@ ip_vs_svc_hashkey(struct net *net, int af, unsigned int proto,
|
|||
{
|
||||
register unsigned int porth = ntohs(port);
|
||||
__be32 addr_fold = addr->ip;
|
||||
__u32 ahash;
|
||||
|
||||
#ifdef CONFIG_IP_VS_IPV6
|
||||
if (af == AF_INET6)
|
||||
addr_fold = addr->ip6[0]^addr->ip6[1]^
|
||||
addr->ip6[2]^addr->ip6[3];
|
||||
#endif
|
||||
addr_fold ^= ((size_t)net>>8);
|
||||
ahash = ntohl(addr_fold);
|
||||
ahash ^= ((size_t) net >> 8);
|
||||
|
||||
return (proto^ntohl(addr_fold)^(porth>>IP_VS_SVC_TAB_BITS)^porth)
|
||||
& IP_VS_SVC_TAB_MASK;
|
||||
return (proto ^ ahash ^ (porth >> IP_VS_SVC_TAB_BITS) ^ porth) &
|
||||
IP_VS_SVC_TAB_MASK;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue