Commit 459de5c6 authored by Alexey Kuznetsov's avatar Alexey Kuznetsov Committed by Sridhar Samudrala

[TCP]: Do not forget data copy while collapsing retransmission queue.

parent 3ae4c190
...@@ -786,13 +786,13 @@ static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb, int m ...@@ -786,13 +786,13 @@ static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb, int m
/* Ok. We will be able to collapse the packet. */ /* Ok. We will be able to collapse the packet. */
__skb_unlink(next_skb, next_skb->list); __skb_unlink(next_skb, next_skb->list);
memcpy(skb_put(skb, next_skb_size), next_skb->data, next_skb_size);
if (next_skb->ip_summed == CHECKSUM_HW) if (next_skb->ip_summed == CHECKSUM_HW)
skb->ip_summed = CHECKSUM_HW; skb->ip_summed = CHECKSUM_HW;
if (skb->ip_summed != CHECKSUM_HW) { if (skb->ip_summed != CHECKSUM_HW)
memcpy(skb_put(skb, next_skb_size), next_skb->data, next_skb_size);
skb->csum = csum_block_add(skb->csum, next_skb->csum, skb_size); skb->csum = csum_block_add(skb->csum, next_skb->csum, skb_size);
}
/* Update sequence range on original skb. */ /* Update sequence range on original skb. */
TCP_SKB_CB(skb)->end_seq = TCP_SKB_CB(next_skb)->end_seq; TCP_SKB_CB(skb)->end_seq = TCP_SKB_CB(next_skb)->end_seq;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment