]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: handle shift/merge of cloned skbs too
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Tue, 25 Nov 2008 05:30:21 +0000 (21:30 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Nov 2008 05:30:21 +0000 (21:30 -0800)
commit752ed73a772e893cf21880a94e1cb367b5ae8a82
tree1bdfab683c0baea4827f0ee465ab9bc2e5833ba9
parenta34ddca559e04b01977a0f72ce2c7d22c450f82f
tcp: handle shift/merge of cloned skbs too

This caused me to get repeatably:

  tcpdump: pcap_loop: recvfrom: Bad address

Happens occassionally when I tcpdump my for-looped test xfers:
  while [ : ]; do echo -n "$(date '+%s.%N') "; ./sendfile; sleep 20; done

Rest of the relevant commands:
  ethtool -K eth0 tso off
  tc qdisc add dev eth0 root netem drop 4%
  tcpdump -n -s0 -i eth0 -w sacklog.all

Running net-next under kvm, connection goes to the same host
(basically just out of kvm). The connection itself works ok
and data gets sent without corruption even with a large
number of tests while tcpdump fails usually within less than
5 tests.

Whether it only happens because of this change or not, I
don't know for sure but it's the only thing with which
I've seen that error. The non-cloned variant works w/o it
for much longer time. I'm yet to debug where the error
actually comes from.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/skbuff.c