On 7/4/25 10:53 AM, chia-yu.chang@nokia-bell-labs.com wrote:
@@ -1151,7 +1155,10 @@ static unsigned int tcp_established_options(struct sock *sk, struct sk_buff *skb } if (tcp_ecn_mode_accecn(tp) &&
READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn_option)) {
READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn_option) &&
(READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn_option) >= TCP_ACCECN_OPTION_FULL ||
tp->accecn_opt_demand ||
opts->use_synack_ecn_bytes = 0; size += tcp_options_fit_accecn(opts, tp->accecn_minlen, MAX_TCP_OPTION_SPACE - size);tcp_accecn_option_beacon_check(sk))) {
whoops, I almost missed it...
Please call READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn_option) only once, i.e.:
if (tcp_ecn_mode_accecn(tp)) { int ecn_opt = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn_option);
if (ecn_opt && (ecn_opt >= TCP_ACCECN_OPTION_FULL || // ...
/P