diff options
Diffstat (limited to 'net/ipv4/tcp_diag.c')
| -rw-r--r-- | net/ipv4/tcp_diag.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/tcp_diag.c b/net/ipv4/tcp_diag.c index 81a8221d650a..549506162dde 100644 --- a/net/ipv4/tcp_diag.c +++ b/net/ipv4/tcp_diag.c @@ -26,8 +26,9 @@ static void tcp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,  	} else if (sk->sk_type == SOCK_STREAM) {  		const struct tcp_sock *tp = tcp_sk(sk); -		r->idiag_rqueue = max_t(int, tp->rcv_nxt - tp->copied_seq, 0); -		r->idiag_wqueue = tp->write_seq - tp->snd_una; +		r->idiag_rqueue = max_t(int, READ_ONCE(tp->rcv_nxt) - +					     READ_ONCE(tp->copied_seq), 0); +		r->idiag_wqueue = READ_ONCE(tp->write_seq) - tp->snd_una;  	}  	if (info)  		tcp_get_info(sk, info);  | 
