Commit 383eed2d authored by Eric Dumazet's avatar Eric Dumazet Committed by Jakub Kicinski

tcp: get rid of twsk_unique()

DCCP is going away soon, and had no twsk_unique() method.

We can directly call tcp_twsk_unique() for TCP sockets.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Reviewed-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20240507164140.940547-1-edumazet@google.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 33fb988b
...@@ -15,18 +15,9 @@ struct timewait_sock_ops { ...@@ -15,18 +15,9 @@ struct timewait_sock_ops {
struct kmem_cache *twsk_slab; struct kmem_cache *twsk_slab;
char *twsk_slab_name; char *twsk_slab_name;
unsigned int twsk_obj_size; unsigned int twsk_obj_size;
int (*twsk_unique)(struct sock *sk,
struct sock *sktw, void *twp);
void (*twsk_destructor)(struct sock *sk); void (*twsk_destructor)(struct sock *sk);
}; };
static inline int twsk_unique(struct sock *sk, struct sock *sktw, void *twp)
{
if (sk->sk_prot->twsk_prot->twsk_unique != NULL)
return sk->sk_prot->twsk_prot->twsk_unique(sk, sktw, twp);
return 0;
}
static inline void twsk_destructor(struct sock *sk) static inline void twsk_destructor(struct sock *sk)
{ {
if (sk->sk_prot->twsk_prot->twsk_destructor != NULL) if (sk->sk_prot->twsk_prot->twsk_destructor != NULL)
......
...@@ -565,7 +565,8 @@ static int __inet_check_established(struct inet_timewait_death_row *death_row, ...@@ -565,7 +565,8 @@ static int __inet_check_established(struct inet_timewait_death_row *death_row,
if (likely(inet_match(net, sk2, acookie, ports, dif, sdif))) { if (likely(inet_match(net, sk2, acookie, ports, dif, sdif))) {
if (sk2->sk_state == TCP_TIME_WAIT) { if (sk2->sk_state == TCP_TIME_WAIT) {
tw = inet_twsk(sk2); tw = inet_twsk(sk2);
if (twsk_unique(sk, sk2, twp)) if (sk->sk_protocol == IPPROTO_TCP &&
tcp_twsk_unique(sk, sk2, twp))
break; break;
} }
goto not_unique; goto not_unique;
......
...@@ -2437,7 +2437,6 @@ int tcp_v4_rcv(struct sk_buff *skb) ...@@ -2437,7 +2437,6 @@ int tcp_v4_rcv(struct sk_buff *skb)
static struct timewait_sock_ops tcp_timewait_sock_ops = { static struct timewait_sock_ops tcp_timewait_sock_ops = {
.twsk_obj_size = sizeof(struct tcp_timewait_sock), .twsk_obj_size = sizeof(struct tcp_timewait_sock),
.twsk_unique = tcp_twsk_unique,
.twsk_destructor= tcp_twsk_destructor, .twsk_destructor= tcp_twsk_destructor,
}; };
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <net/secure_seq.h> #include <net/secure_seq.h>
#include <net/ip.h> #include <net/ip.h>
#include <net/sock_reuseport.h> #include <net/sock_reuseport.h>
#include <net/tcp.h>
u32 inet6_ehashfn(const struct net *net, u32 inet6_ehashfn(const struct net *net,
const struct in6_addr *laddr, const u16 lport, const struct in6_addr *laddr, const u16 lport,
...@@ -289,7 +290,8 @@ static int __inet6_check_established(struct inet_timewait_death_row *death_row, ...@@ -289,7 +290,8 @@ static int __inet6_check_established(struct inet_timewait_death_row *death_row,
dif, sdif))) { dif, sdif))) {
if (sk2->sk_state == TCP_TIME_WAIT) { if (sk2->sk_state == TCP_TIME_WAIT) {
tw = inet_twsk(sk2); tw = inet_twsk(sk2);
if (twsk_unique(sk, sk2, twp)) if (sk->sk_protocol == IPPROTO_TCP &&
tcp_twsk_unique(sk, sk2, twp))
break; break;
} }
goto not_unique; goto not_unique;
......
...@@ -2049,7 +2049,6 @@ void tcp_v6_early_demux(struct sk_buff *skb) ...@@ -2049,7 +2049,6 @@ void tcp_v6_early_demux(struct sk_buff *skb)
static struct timewait_sock_ops tcp6_timewait_sock_ops = { static struct timewait_sock_ops tcp6_timewait_sock_ops = {
.twsk_obj_size = sizeof(struct tcp6_timewait_sock), .twsk_obj_size = sizeof(struct tcp6_timewait_sock),
.twsk_unique = tcp_twsk_unique,
.twsk_destructor = tcp_twsk_destructor, .twsk_destructor = tcp_twsk_destructor,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment