diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2012-02-27 21:59:05 +0400 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2012-02-27 21:59:11 +0400 |
| commit | a0008bf73c12212769b0d0b19cdec5c432de94ba (patch) | |
| tree | e53c67efd4aad97ab9f2addc1fc0d62879b41c55 /net/ipv4/tcp_ipv4.c | |
| parent | 5a8c271b26b83a09924c99aaa5c607021aed142b (diff) | |
| parent | cfac337b0fbcad5181096ab72bb24a05bd444562 (diff) | |
| download | linux-a0008bf73c12212769b0d0b19cdec5c432de94ba.tar.xz | |
Merge branch 'lpc32xx/fixes-non-critical' of git://git.antcom.de/linux-2.6 into next/fixes-non-critical
* 'lpc32xx/fixes-non-critical' of git://git.antcom.de/linux-2.6: (1 commit)
ARM: LPC32xx: Fix missing and bad LPC32XX macros
Update to Linux 3.3-rc5
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 337ba4cca052..94d683a61cba 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -651,6 +651,11 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb) arg.iov[0].iov_len, IPPROTO_TCP, 0); 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 + */ + arg.bound_dev_if = sk ? sk->sk_bound_dev_if : inet_iif(skb); net = dev_net(skb_dst(skb)->dev); arg.tos = ip_hdr(skb)->tos; |
