Commit 3ce5dd81 authored by Kuniyuki Iwashima's avatar Kuniyuki Iwashima Committed by Jakub Kicinski
Browse files

tcp: Remove timeout arg from reqsk_queue_hash_req().



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: default avatarKuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20251106003357.273403-3-kuniyu@google.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent be88c549
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
+5 −6
Original line number Diff line number Diff line
@@ -1144,8 +1144,7 @@ static void reqsk_timer_handler(struct timer_list *t)
	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);
+5 −9
Original line number Diff line number Diff line
@@ -7531,16 +7531,12 @@ 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))) {
		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 :
						   TCP_SYNACK_COOKIE,