diff options
| author | Ingo Molnar <mingo@kernel.org> | 2025-03-08 00:54:06 +0100 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2025-03-08 00:54:06 +0100 | 
| commit | f23ecef20af6fbd489e0362d33cdf8d9429fa901 (patch) | |
| tree | 713f06d8335b7c3388bbfbc46cb6d2a568951252 /net/ipv4/tcp_minisocks.c | |
| parent | c929d08df8bee855528b9d15b853c892c54e1eee (diff) | |
| parent | 85b2b9c16d053364e2004883140538e73b333cdb (diff) | |
Merge branch 'locking/urgent' into locking/core, to pick up locking fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
| -rw-r--r-- | net/ipv4/tcp_minisocks.c | 10 | 
1 files changed, 4 insertions, 6 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index b089b08e9617..dfdb7a4608a8 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c @@ -815,12 +815,6 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_buff *skb,  	/* In sequence, PAWS is OK. */ -	/* TODO: We probably should defer ts_recent change once -	 * we take ownership of @req. -	 */ -	if (tmp_opt.saw_tstamp && !after(TCP_SKB_CB(skb)->seq, tcp_rsk(req)->rcv_nxt)) -		WRITE_ONCE(req->ts_recent, tmp_opt.rcv_tsval); -  	if (TCP_SKB_CB(skb)->seq == tcp_rsk(req)->rcv_isn) {  		/* Truncate SYN, it is out of window starting  		   at tcp_rsk(req)->rcv_isn + 1. */ @@ -869,6 +863,10 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_buff *skb,  	if (!child)  		goto listen_overflow; +	if (own_req && tmp_opt.saw_tstamp && +	    !after(TCP_SKB_CB(skb)->seq, tcp_rsk(req)->rcv_nxt)) +		tcp_sk(child)->rx_opt.ts_recent = tmp_opt.rcv_tsval; +  	if (own_req && rsk_drop_req(req)) {  		reqsk_queue_removed(&inet_csk(req->rsk_listener)->icsk_accept_queue, req);  		inet_csk_reqsk_queue_drop_and_put(req->rsk_listener, req);  | 
