diff options
author | Kuniyuki Iwashima <kuniyu@amazon.com> | 2023-12-19 03:18:30 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-12-23 01:15:35 +0300 |
commit | 8002d44fe84dd7b98812aadcbc1bd897e270355c (patch) | |
tree | 90af38c04d00d50b9d47edf7a3dcfc9cbf9b0c9b /net/ipv4/inet_timewait_sock.c | |
parent | b82ba728ccfecb4cee518199597598ef385b47d5 (diff) | |
download | linux-8002d44fe84dd7b98812aadcbc1bd897e270355c.tar.xz |
tcp: Check hlist_empty(&tb->bhash2) instead of hlist_empty(&tb->owners).
We use hlist_empty(&tb->owners) to check if the bhash bucket has a socket.
We can check the child bhash2 buckets instead.
For this to work, the bhash2 bucket must be freed before the bhash bucket.
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/inet_timewait_sock.c')
-rw-r--r-- | net/ipv4/inet_timewait_sock.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c index dd37a5bf6881..466d4faa9272 100644 --- a/net/ipv4/inet_timewait_sock.c +++ b/net/ipv4/inet_timewait_sock.c @@ -37,11 +37,11 @@ void inet_twsk_bind_unhash(struct inet_timewait_sock *tw, __hlist_del(&tw->tw_bind_node); tw->tw_tb = NULL; - inet_bind_bucket_destroy(hashinfo->bind_bucket_cachep, tb); __hlist_del(&tw->tw_bind2_node); tw->tw_tb2 = NULL; inet_bind2_bucket_destroy(hashinfo->bind2_bucket_cachep, tb2); + inet_bind_bucket_destroy(hashinfo->bind_bucket_cachep, tb); __sock_put((struct sock *)tw); } |