ipv6: use jhash2() in rt6_exception_hash()
authorEric Dumazet <edumazet@google.com>
Mon, 4 Nov 2019 02:24:16 +0000 (18:24 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Nov 2019 19:28:49 +0000 (11:28 -0800)
Faster jhash2() can be used instead of jhash(), since
IPv6 addresses have the needed alignment requirement.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c

index a63ff85fe14198fc23a5cbc7abcd107df5df00c8..c7a2022e64eb9de9e4300f0311dbff66281ec0a8 100644 (file)
@@ -1475,11 +1475,11 @@ static u32 rt6_exception_hash(const struct in6_addr *dst,
        u32 val;
 
        net_get_random_once(&seed, sizeof(seed));
-       val = jhash(dst, sizeof(*dst), seed);
+       val = jhash2((const u32 *)dst, sizeof(*dst)/sizeof(u32), seed);
 
 #ifdef CONFIG_IPV6_SUBTREES
        if (src)
-               val = jhash(src, sizeof(*src), val);
+               val = jhash2((const u32 *)src, sizeof(*src)/sizeof(u32), val);
 #endif
        return hash_32(val, FIB6_EXCEPTION_BUCKET_SIZE_SHIFT);
 }