X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=net%2Frds%2Fconnection.c;h=378c3a6acf84cab59346ab832d2fffba33e6e543;hb=d09f4bdc4b8feadbb3326d4e6e0890556b19bf07;hp=642ad42c416ba915680645d8bc3539e5bdee4bf5;hpb=296b60109e0a2dfae4d22b393744634ca6322822;p=karo-tx-linux.git diff --git a/net/rds/connection.c b/net/rds/connection.c index 642ad42c416b..378c3a6acf84 100644 --- a/net/rds/connection.c +++ b/net/rds/connection.c @@ -51,10 +51,16 @@ static struct kmem_cache *rds_conn_slab; static struct hlist_head *rds_conn_bucket(__be32 laddr, __be32 faddr) { + static u32 rds_hash_secret __read_mostly; + + unsigned long hash; + + net_get_random_once(&rds_hash_secret, sizeof(rds_hash_secret)); + /* Pass NULL, don't need struct net for hash */ - unsigned long hash = inet_ehashfn(NULL, - be32_to_cpu(laddr), 0, - be32_to_cpu(faddr), 0); + hash = __inet_ehashfn(be32_to_cpu(laddr), 0, + be32_to_cpu(faddr), 0, + rds_hash_secret); return &rds_conn_hash[hash & RDS_CONNECTION_HASH_MASK]; }