diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp_metrics.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c index 2ab09cbae74d..d3ee2e0c28b6 100644 --- a/net/ipv4/tcp_metrics.c +++ b/net/ipv4/tcp_metrics.c | |||
@@ -663,10 +663,13 @@ void tcp_fastopen_cache_get(struct sock *sk, u16 *mss, | |||
663 | void tcp_fastopen_cache_set(struct sock *sk, u16 mss, | 663 | void tcp_fastopen_cache_set(struct sock *sk, u16 mss, |
664 | struct tcp_fastopen_cookie *cookie, bool syn_lost) | 664 | struct tcp_fastopen_cookie *cookie, bool syn_lost) |
665 | { | 665 | { |
666 | struct dst_entry *dst = __sk_dst_get(sk); | ||
666 | struct tcp_metrics_block *tm; | 667 | struct tcp_metrics_block *tm; |
667 | 668 | ||
669 | if (!dst) | ||
670 | return; | ||
668 | rcu_read_lock(); | 671 | rcu_read_lock(); |
669 | tm = tcp_get_metrics(sk, __sk_dst_get(sk), true); | 672 | tm = tcp_get_metrics(sk, dst, true); |
670 | if (tm) { | 673 | if (tm) { |
671 | struct tcp_fastopen_metrics *tfom = &tm->tcpm_fastopen; | 674 | struct tcp_fastopen_metrics *tfom = &tm->tcpm_fastopen; |
672 | 675 | ||