It is weird to cast to a timewait_sock before checking sk_state, even
if the use is after such a check. Remove the tw local variable, and
use inet_twsk() directly in the timewait branch.
Signed-off-by: Daniel Zahka <daniel.zahka@gmail.com>
Link: https://patch.msgid.link/20250918155205.2197603-3-daniel.zahka@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
static inline struct psp_assoc *psp_sk_get_assoc_rcu(const struct sock *sk)
{
- struct inet_timewait_sock *tw;
struct psp_assoc *pas;
int state;
if (!sk_is_inet(sk) || state & TCPF_NEW_SYN_RECV)
return NULL;
- tw = inet_twsk(sk);
- pas = state & TCPF_TIME_WAIT ? rcu_dereference(tw->psp_assoc) :
- rcu_dereference(sk->psp_assoc);
+ pas = state & TCPF_TIME_WAIT ?
+ rcu_dereference(inet_twsk(sk)->psp_assoc) :
+ rcu_dereference(sk->psp_assoc);
return pas;
}