Re: [PATCH v12 net-next 12/15] tcp: accecn: AccECN option send control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/4/25 10:53 AM, chia-yu.chang@xxxxxxxxxxxxxxxxxxx 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 ||
> +	     tcp_accecn_option_beacon_check(sk))) {
>  		opts->use_synack_ecn_bytes = 0;
>  		size += tcp_options_fit_accecn(opts, tp->accecn_minlen,
>  					       MAX_TCP_OPTION_SPACE - size);

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





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux