diff --git a/include/net/tcp.h b/include/net/tcp.h
index 5a841786988d5ab887badd5cd1124b63d00a6609..e2c09ab2e1f8384afb5aa67afa99156d60339e08 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1357,7 +1357,7 @@ void tcp_select_initial_window(const struct sock *sk, int __space,
 
 static inline int tcp_win_from_space(const struct sock *sk, int space)
 {
-	int tcp_adv_win_scale = sock_net(sk)->ipv4.sysctl_tcp_adv_win_scale;
+	int tcp_adv_win_scale = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_adv_win_scale);
 
 	return tcp_adv_win_scale <= 0 ?
 		(space>>(-tcp_adv_win_scale)) :