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)
commit0ace285605314c54339710484b54814945a60df8
tree1bdfab683c0baea4827f0ee465ab9bc2e5833ba9
parent111cc8b913b42ef07793648b1699288332f273e1
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