--- /dev/null
+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