Revision ec34232575083fd0f43d3a101e8ebb041b203761 authored by Andrew Vagin on 15 November 2012, 04:03:17 UTC, committed by David S. Miller on 15 November 2012, 22:44:58 UTC
Currently if a socket was repaired with a few packet in a write queue, a kernel bug may be triggered: kernel BUG at net/ipv4/tcp_output.c:2330! RIP: 0010:[<ffffffff8155784f>] tcp_retransmit_skb+0x5ff/0x610 According to the initial realization v3.4-rc2-963-gc0e88ff, all skb-s should look like already posted. This patch fixes code according with this sentence. Here are three points, which were not done in the initial patch: 1. A tcp send head should not be changed 2. Initialize TSO state of a skb 3. Reset the retransmission time This patch moves logic from tcp_sendmsg to tcp_write_xmit. A packet passes the ussual way, but isn't sent to network. This patch solves all described problems and handles tcp_sendpages. Cc: Pavel Emelyanov <xemul@parallels.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Cc: James Morris <jmorris@namei.org> Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Cc: Patrick McHardy <kaber@trash.net> Signed-off-by: Andrey Vagin <avagin@openvz.org> Acked-by: Pavel Emelyanov <xemul@parallels.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 0da9a0c
File | Mode | Size |
---|---|---|
internal | ||
aead.h | -rw-r--r-- | 2.6 KB |
aes.h | -rw-r--r-- | 1019 bytes |
algapi.h | -rw-r--r-- | 10.1 KB |
authenc.h | -rw-r--r-- | 609 bytes |
b128ops.h | -rw-r--r-- | 2.4 KB |
blowfish.h | -rw-r--r-- | 376 bytes |
cast5.h | -rw-r--r-- | 648 bytes |
cast6.h | -rw-r--r-- | 694 bytes |
compress.h | -rw-r--r-- | 4.0 KB |
cryptd.h | -rw-r--r-- | 1.8 KB |
crypto_wq.h | -rw-r--r-- | 122 bytes |
ctr.h | -rw-r--r-- | 524 bytes |
des.h | -rw-r--r-- | 403 bytes |
gf128mul.h | -rw-r--r-- | 8.0 KB |
hash.h | -rw-r--r-- | 8.8 KB |
if_alg.h | -rw-r--r-- | 2.2 KB |
lrw.h | -rw-r--r-- | 1.2 KB |
md5.h | -rw-r--r-- | 288 bytes |
padlock.h | -rw-r--r-- | 649 bytes |
pcrypt.h | -rw-r--r-- | 1.4 KB |
public_key.h | -rw-r--r-- | 2.5 KB |
rng.h | -rw-r--r-- | 1.8 KB |
scatterwalk.h | -rw-r--r-- | 3.2 KB |
serpent.h | -rw-r--r-- | 673 bytes |
sha.h | -rw-r--r-- | 2.1 KB |
skcipher.h | -rw-r--r-- | 2.7 KB |
twofish.h | -rw-r--r-- | 716 bytes |
vmac.h | -rw-r--r-- | 2.0 KB |
xts.h | -rw-r--r-- | 613 bytes |
Computing file changes ...