Make the access to the struct inet_hashinfo's ehash member consistent.
In net/ipv4/inet_hashtables.c, the ehash member is accessed by calling
inet_ehash_bucket(...) except for the access in __inet_lookup_established.
In order to make the access consistent, use inet_ehash_bucket(...)
in __inet_lookup_established.

Signed-off-by: Marcus Huewe <suse-...@gmx.de>
---
 net/ipv4/inet_hashtables.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
index 942265d65eb3..2b54eb6e5951 100644
--- a/net/ipv4/inet_hashtables.c
+++ b/net/ipv4/inet_hashtables.c
@@ -361,8 +361,7 @@ struct sock *__inet_lookup_established(struct net *net,
         * have wildcards anyways.
         */
        unsigned int hash = inet_ehashfn(net, daddr, hnum, saddr, sport);
-       unsigned int slot = hash & hashinfo->ehash_mask;
-       struct inet_ehash_bucket *head = &hashinfo->ehash[slot];
+       struct inet_ehash_bucket *head = inet_ehash_bucket(hashinfo, hash);
 
 begin:
        sk_nulls_for_each_rcu(sk, node, &head->chain) {
-- 
2.18.0

Reply via email to