diff options
| author | Jason Xing <[email protected]> | 2025-03-17 12:03:14 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-03-25 11:27:20 +0000 |
| commit | 9552f90835ef3552d0af327e48dc360717777d62 (patch) | |
| tree | d3520dc3d4e998663707372a6b6e95e190ea92f4 /net/ipv4/tcp_output.c | |
| parent | tcp: support TCP_RTO_MIN_US for set/getsockopt use (diff) | |
| download | kernel-9552f90835ef3552d0af327e48dc360717777d62.tar.gz kernel-9552f90835ef3552d0af327e48dc360717777d62.zip | |
tcp: support TCP_DELACK_MAX_US for set/getsockopt use
Support adjusting/reading delayed ack max for socket level by using
set/getsockopt().
This option aligns with TCP_BPF_DELACK_MAX usage. Considering that bpf
option was implemented before this patch, so we need to use a standalone
new option for pure tcp set/getsockopt() use.
Add WRITE_ONCE/READ_ONCE() to prevent data-race if setsockopt()
happens to write one value to icsk_delack_max while icsk_delack_max is
being read.
Signed-off-by: Jason Xing <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index e0a4e5432399..9a6061017114 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -4179,7 +4179,7 @@ u32 tcp_delack_max(const struct sock *sk) { u32 delack_from_rto_min = max(tcp_rto_min(sk), 2) - 1; - return min(inet_csk(sk)->icsk_delack_max, delack_from_rto_min); + return min(READ_ONCE(inet_csk(sk)->icsk_delack_max), delack_from_rto_min); } /* Send out a delayed ack, the caller does the policy checking |
