Re: [RESEND] [PATCH] tcp: fix for splice receive when used with software LRO
From: David Miller <davem@davemloft.net>
Date: 2008-06-28 00:27:36
From: David Miller <davem@davemloft.net>
Date: 2008-06-28 00:27:36
From: Octavian Purdila <redacted> Date: Wed, 18 Jun 2008 19:07:16 +0300
tcp: fix for splice receive when used with software LRO
If an skb has nr_frags set to zero but its frag_list is not empty (as
it can happen if software LRO is enabled), and a previous
tcp_read_sock has consumed the linear part of the skb, then
__skb_splice_bits:
(a) incorrectly reports an error and
(b) forgets to update the offset to account for the linear part
Any of the two problems will cause the subsequent __skb_splice_bits
call (the one that handles the frag_list skbs) to either skip data,
or, if the unadjusted offset is greater then the size of the next skb
in the frag_list, make tcp_splice_read loop forever.
Signed-off-by: Octavian Purdila [off-list ref]Applied, th anks Octavian.