]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tcp: Remove timeout arg from reqsk_queue_hash_req().
authorKuniyuki Iwashima <kuniyu@google.com>
Thu, 6 Nov 2025 00:32:41 +0000 (00:32 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 8 Nov 2025 02:05:25 +0000 (18:05 -0800)
inet_csk_reqsk_queue_hash_add() is no longer shared by DCCP.

We do not need to pass req->timeout down to reqsk_queue_hash_req().

Let's move tcp_timeout_init() from tcp_conn_request() to
reqsk_queue_hash_req().

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20251106003357.273403-3-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/inet_connection_sock.h
net/ipv4/inet_connection_sock.c
net/ipv4/tcp_input.c

index b4b8866476075b78c7de67a2bd2148fa2342c72a..90a99a2fc804771db2e5d1ba3a5a1647a8d232c4 100644 (file)
@@ -267,8 +267,7 @@ struct dst_entry *inet_csk_route_child_sock(const struct sock *sk,
 struct sock *inet_csk_reqsk_queue_add(struct sock *sk,
                                      struct request_sock *req,
                                      struct sock *child);
-bool inet_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req,
-                                  unsigned long timeout);
+bool inet_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req);
 struct sock *inet_csk_complete_hashdance(struct sock *sk, struct sock *child,
                                         struct request_sock *req,
                                         bool own_req);
index 6a86c1ac301124bc2e51625f8b52e0050f4caf74..d9c674403eb033e0f016b073c2d76f0e5894cbad 100644 (file)
@@ -1144,8 +1144,7 @@ drop:
        reqsk_put(oreq);
 }
 
-static bool reqsk_queue_hash_req(struct request_sock *req,
-                                unsigned long timeout)
+static bool reqsk_queue_hash_req(struct request_sock *req)
 {
        bool found_dup_sk = false;
 
@@ -1153,8 +1152,9 @@ static bool reqsk_queue_hash_req(struct request_sock *req,
                return false;
 
        /* The timer needs to be setup after a successful insertion. */
+       req->timeout = tcp_timeout_init((struct sock *)req);
        timer_setup(&req->rsk_timer, reqsk_timer_handler, TIMER_PINNED);
-       mod_timer(&req->rsk_timer, jiffies + timeout);
+       mod_timer(&req->rsk_timer, jiffies + req->timeout);
 
        /* before letting lookups find us, make sure all req fields
         * are committed to memory and refcnt initialized.
@@ -1164,10 +1164,9 @@ static bool reqsk_queue_hash_req(struct request_sock *req,
        return true;
 }
 
-bool inet_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req,
-                                  unsigned long timeout)
+bool inet_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req)
 {
-       if (!reqsk_queue_hash_req(req, timeout))
+       if (!reqsk_queue_hash_req(req))
                return false;
 
        inet_csk_reqsk_queue_added(sk);
index 6db1d4c36a88bfa64b48388ee95e4e9218d9a9fd..804ec56bdd244143f78a7d7e29c04e637f88db28 100644 (file)
@@ -7531,15 +7531,11 @@ int tcp_conn_request(struct request_sock_ops *rsk_ops,
                sock_put(fastopen_sk);
        } else {
                tcp_rsk(req)->tfo_listener = false;
-               if (!want_cookie) {
-                       req->timeout = tcp_timeout_init((struct sock *)req);
-                       if (unlikely(!inet_csk_reqsk_queue_hash_add(sk, req,
-                                                                   req->timeout))) {
-                               reqsk_free(req);
-                               dst_release(dst);
-                               return 0;
-                       }
-
+               if (!want_cookie &&
+                   unlikely(!inet_csk_reqsk_queue_hash_add(sk, req))) {
+                       reqsk_free(req);
+                       dst_release(dst);
+                       return 0;
                }
                af_ops->send_synack(sk, dst, &fl, req, &foc,
                                    !want_cookie ? TCP_SYNACK_NORMAL :