diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2025-08-22 15:59:00 -0700 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2025-08-22 15:59:00 -0700 |
| commit | 718d6e8669cb8cf4deda8b69950b8f8c62dbbcaa (patch) | |
| tree | 872d306c59671201e58538bb5d6e1404bb4c7cf6 /net/ipv4/tcp_output.c | |
| parent | 02614eee26fbdfd73b944769001cefeff6ed008c (diff) | |
| parent | 9217146fee49575dfe4ac9416587392fc31171f1 (diff) | |
Merge branch 'tcp-user_mss-and-tcp_maxseg-series'
Eric Dumazet says:
====================
tcp: user_mss and TCP_MAXSEG series
Annotate data-races around tp->rx_opt.user_mss and make
TCP_MAXSEG lockless.
====================
Link: https://patch.msgid.link/20250821141901.18839-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index dfbac0876d96..86892c8672ed 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -3890,6 +3890,7 @@ static void tcp_connect_init(struct sock *sk) const struct dst_entry *dst = __sk_dst_get(sk); struct tcp_sock *tp = tcp_sk(sk); __u8 rcv_wscale; + u16 user_mss; u32 rcv_wnd; /* We'll fix this up when we get a response from the other end. @@ -3902,8 +3903,9 @@ static void tcp_connect_init(struct sock *sk) tcp_ao_connect_init(sk); /* If user gave his TCP_MAXSEG, record it to clamp */ - if (tp->rx_opt.user_mss) - tp->rx_opt.mss_clamp = tp->rx_opt.user_mss; + user_mss = READ_ONCE(tp->rx_opt.user_mss); + if (user_mss) + tp->rx_opt.mss_clamp = user_mss; tp->max_window = 0; tcp_mtup_init(sk); tcp_sync_mss(sk, dst_mtu(dst)); |
