diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index fd365de4d5ff..069642014636 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -307,8 +307,9 @@ int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)  						  inet->inet_daddr,  						  inet->inet_sport,  						  usin->sin_port)); -		tp->tsoffset = secure_tcp_ts_off(net, inet->inet_saddr, -						 inet->inet_daddr); +		WRITE_ONCE(tp->tsoffset, +			   secure_tcp_ts_off(net, inet->inet_saddr, +					     inet->inet_daddr));  	}  	inet->inet_id = get_random_u16(); @@ -988,11 +989,12 @@ static void tcp_v4_reqsk_send_ack(const struct sock *sk, struct sk_buff *skb,  			tcp_rsk(req)->rcv_nxt,  			req->rsk_rcv_wnd >> inet_rsk(req)->rcv_wscale,  			tcp_time_stamp_raw() + tcp_rsk(req)->ts_off, -			req->ts_recent, +			READ_ONCE(req->ts_recent),  			0,  			tcp_md5_do_lookup(sk, l3index, addr, AF_INET),  			inet_rsk(req)->no_srccheck ? IP_REPLY_ARG_NOSRCCHECK : 0, -			ip_hdr(skb)->tos, tcp_rsk(req)->txhash); +			ip_hdr(skb)->tos, +			READ_ONCE(tcp_rsk(req)->txhash));  }  /*  |