From: Chris Wright Date: Tue, 6 Sep 2005 23:26:46 +0000 (-0700) Subject: Add ipv4 fragmentation csum handling fix from Stephen Hemminger (fwd X-Git-Tag: v2.6.13.1~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5f7398287b4d6d039f7ec1377673ad9e5c1f331a;p=thirdparty%2Fkernel%2Fstable-queue.git Add ipv4 fragmentation csum handling fix from Stephen Hemminger (fwd from DaveM). --- diff --git a/queue/ipv4-fragmentation-csum-handling.patch b/queue/ipv4-fragmentation-csum-handling.patch new file mode 100644 index 00000000000..1249db1992a --- /dev/null +++ b/queue/ipv4-fragmentation-csum-handling.patch @@ -0,0 +1,37 @@ +From stable-bounces@linux.kernel.org Tue Sep 6 15:52:37 2005 +Date: Tue, 06 Sep 2005 15:52:34 -0700 (PDT) +To: stable@kernel.org +From: "David S. Miller" +Subject: [IPV4]: Reassembly trim not clearing CHECKSUM_HW + +From: Stephen Hemminger + +[IPV4]: Reassembly trim not clearing CHECKSUM_HW + +This was found by inspection while looking for checksum problems +with the skge driver that sets CHECKSUM_HW. It did not fix the +problem, but it looks like it is needed. + +If IP reassembly is trimming an overlapping fragment, it +should reset (or adjust) the hardware checksum flag on the skb. + +Signed-off-by: Stephen Hemminger +Signed-off-by: David S. Miller +Signed-off-by: Chris Wright +--- + net/ipv4/ip_fragment.c | 2 +- + 1 files changed, 1 insertion(+), 1 deletion(-) + +Index: linux-2.6.13.y/net/ipv4/ip_fragment.c +=================================================================== +--- linux-2.6.13.y.orig/net/ipv4/ip_fragment.c ++++ linux-2.6.13.y/net/ipv4/ip_fragment.c +@@ -457,7 +457,7 @@ static void ip_frag_queue(struct ipq *qp + + if (pskb_pull(skb, ihl) == NULL) + goto err; +- if (pskb_trim(skb, end-offset)) ++ if (pskb_trim_rcsum(skb, end-offset)) + goto err; + + /* Find out which fragments are in front and at the back of us diff --git a/queue/series b/queue/series index d45ba735665..de5fc191db7 100644 --- a/queue/series +++ b/queue/series @@ -6,3 +6,4 @@ pci_assign_unassigned_resources-update.patch fix-socket-filter-regression.patch ipsec-oops-fix.patch sparc-request_irq-in-RTC-fix.patch +ipv4-fragmentation-csum-handling.patch