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