[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250918155205.2197603-3-daniel.zahka@gmail.com>
Date: Thu, 18 Sep 2025 08:52:03 -0700
From: Daniel Zahka <daniel.zahka@...il.com>
To: "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Simon Horman <horms@...nel.org>
Cc: Willem de Bruijn <willemb@...gle.com>,
netdev@...r.kernel.org
Subject: [PATCH net-next 2/3] psp: fix preemptive inet_twsk() cast in psp_sk_get_assoc_rcu()
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@...il.com>
---
include/net/psp/functions.h | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/include/net/psp/functions.h b/include/net/psp/functions.h
index fb3cbe8427ea..980de7e58f8a 100644
--- a/include/net/psp/functions.h
+++ b/include/net/psp/functions.h
@@ -126,7 +126,6 @@ psp_twsk_rx_policy_check(struct inet_timewait_sock *tw, struct sk_buff *skb)
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;
@@ -134,9 +133,9 @@ static inline struct psp_assoc *psp_sk_get_assoc_rcu(const struct sock *sk)
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;
}
--
2.47.3
Powered by blists - more mailing lists