]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add ipv4 fragmentation csum handling fix from Stephen Hemminger (fwd
authorChris Wright <chrisw@osdl.org>
Tue, 6 Sep 2005 23:26:46 +0000 (16:26 -0700)
committerChris Wright <chrisw@osdl.org>
Tue, 6 Sep 2005 23:26:46 +0000 (16:26 -0700)
from DaveM).

queue/ipv4-fragmentation-csum-handling.patch [new file with mode: 0644]
queue/series

diff --git a/queue/ipv4-fragmentation-csum-handling.patch b/queue/ipv4-fragmentation-csum-handling.patch
new file mode 100644 (file)
index 0000000..1249db1
--- /dev/null
@@ -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" <davem@davemloft.net>
+Subject: [IPV4]: Reassembly trim not clearing CHECKSUM_HW
+
+From: Stephen Hemminger <shemminger@osdl.org>
+
+[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 <shemminger@osdl.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+---
+ 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
index d45ba7356656a8ace80ddca219bc2301fe258f7d..de5fc191db7f2021c7156907b9658b32cdcdb444 100644 (file)
@@ -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