diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 75735c9a6a9d..ef998b008a57 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -708,10 +708,11 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)  	arg.csumoffset = offsetof(struct tcphdr, check) / 2;  	arg.flags = (sk && inet_sk(sk)->transparent) ? IP_REPLY_ARG_NOSRCCHECK : 0;  	/* When socket is gone, all binding information is lost. -	 * routing might fail in this case. using iif for oif to -	 * make sure we can deliver it +	 * routing might fail in this case. No choice here, if we choose to force +	 * input interface, we will misroute in case of asymmetric route.  	 */ -	arg.bound_dev_if = sk ? sk->sk_bound_dev_if : inet_iif(skb); +	if (sk) +		arg.bound_dev_if = sk->sk_bound_dev_if;  	net = dev_net(skb_dst(skb)->dev);  	arg.tos = ip_hdr(skb)->tos; | 
