Patchwork IP checksuming doesn't work on GE0301 option cards

login
register
mail settings
Submitter Thomas Bogendoerfer
Date Dec. 8, 2010, 8:21 a.m.
Message ID <20101208082152.407022397DD@solo.franken.de>
Download mbox | patch
Permalink /patch/74658/
State Accepted
Delegated to: David Miller
Headers show

Comments

Thomas Bogendoerfer - Dec. 8, 2010, 8:21 a.m.
There is definitly a problem, that some option cards send up broken
IP pakets leading to corrupted IP packets. These corruptions aren't
detected, because the driver claims that the packets are already
checksummed. This change removes the CHECKSUM_UNNECESSARY option
and let IP detect broken data.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
---

 drivers/net/usb/hso.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Dec. 10, 2010, 4:43 a.m.
From: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Date: Wed,  8 Dec 2010 09:21:52 +0100 (CET)

> There is definitly a problem, that some option cards send up broken
> IP pakets leading to corrupted IP packets. These corruptions aren't
> detected, because the driver claims that the packets are already
> checksummed. This change removes the CHECKSUM_UNNECESSARY option
> and let IP detect broken data.
> 
> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

Applied, thank you.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index b154a94..1f94f92 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -958,10 +958,6 @@  static void packetizeRx(struct hso_net *odev, unsigned char *ip_pkt,
 				/* Packet is complete. Inject into stack. */
 				/* We have IP packet here */
 				odev->skb_rx_buf->protocol = cpu_to_be16(ETH_P_IP);
-				/* don't check it */
-				odev->skb_rx_buf->ip_summed =
-					CHECKSUM_UNNECESSARY;
-
 				skb_reset_mac_header(odev->skb_rx_buf);
 
 				/* Ship it off to the kernel */