|
@@ -2595,6 +2595,7 @@ void tcp_get_info(const struct sock *sk, struct tcp_info *info)
|
|
|
const struct tcp_sock *tp = tcp_sk(sk);
|
|
|
const struct inet_connection_sock *icsk = inet_csk(sk);
|
|
|
u32 now = tcp_time_stamp;
|
|
|
+ u32 rate;
|
|
|
|
|
|
memset(info, 0, sizeof(*info));
|
|
|
|
|
@@ -2655,10 +2656,11 @@ void tcp_get_info(const struct sock *sk, struct tcp_info *info)
|
|
|
|
|
|
info->tcpi_total_retrans = tp->total_retrans;
|
|
|
|
|
|
- info->tcpi_pacing_rate = sk->sk_pacing_rate != ~0U ?
|
|
|
- sk->sk_pacing_rate : ~0ULL;
|
|
|
- info->tcpi_max_pacing_rate = sk->sk_max_pacing_rate != ~0U ?
|
|
|
- sk->sk_max_pacing_rate : ~0ULL;
|
|
|
+ rate = READ_ONCE(sk->sk_pacing_rate);
|
|
|
+ info->tcpi_pacing_rate = rate != ~0U ? rate : ~0ULL;
|
|
|
+
|
|
|
+ rate = READ_ONCE(sk->sk_max_pacing_rate);
|
|
|
+ info->tcpi_max_pacing_rate = rate != ~0U ? rate : ~0ULL;
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(tcp_get_info);
|
|
|
|