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 | ||
