diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 44c09eddbb78..cd426313a298 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -943,9 +943,11 @@ static int tcp_v4_send_synack(const struct sock *sk, struct dst_entry *dst, | |||
943 | if (skb) { | 943 | if (skb) { |
944 | __tcp_v4_send_check(skb, ireq->ir_loc_addr, ireq->ir_rmt_addr); | 944 | __tcp_v4_send_check(skb, ireq->ir_loc_addr, ireq->ir_rmt_addr); |
945 | 945 | ||
946 | rcu_read_lock(); | ||
946 | err = ip_build_and_send_pkt(skb, sk, ireq->ir_loc_addr, | 947 | err = ip_build_and_send_pkt(skb, sk, ireq->ir_loc_addr, |
947 | ireq->ir_rmt_addr, | 948 | ireq->ir_rmt_addr, |
948 | ireq_opt_deref(ireq)); | 949 | rcu_dereference(ireq->ireq_opt)); |
950 | rcu_read_unlock(); | ||
949 | err = net_xmit_eval(err); | 951 | err = net_xmit_eval(err); |
950 | } | 952 | } |
951 | 953 | ||