From 1d2b0891a53fb7a82cc66c3dd20ff349b2e4158d Mon Sep 17 00:00:00 2001 From: Brian Niebuhr Date: Mon, 10 Aug 2009 16:46:59 -0500 Subject: [PATCH] --- yaml --- r: 165001 b: refs/heads/master c: 9ca33a0f1abdefea3811666d9e87af11fd0af6c6 h: refs/heads/master i: 164999: 3e69782dd312d1f6a250dc4fe43ff12b8c8fe435 v: v3 --- [refs] | 2 +- trunk/drivers/net/usb/cdc_eem.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index ff5f7540ea34..955f08dcd491 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5429c7316577fcd859f6b53e10884bb8e1e3bcef +refs/heads/master: 9ca33a0f1abdefea3811666d9e87af11fd0af6c6 diff --git a/trunk/drivers/net/usb/cdc_eem.c b/trunk/drivers/net/usb/cdc_eem.c index 45cebfb302cf..23300656c266 100644 --- a/trunk/drivers/net/usb/cdc_eem.c +++ b/trunk/drivers/net/usb/cdc_eem.c @@ -300,20 +300,23 @@ static int eem_rx_fixup(struct usbnet *dev, struct sk_buff *skb) return 0; } - crc = get_unaligned_le32(skb2->data - + len - ETH_FCS_LEN); - skb_trim(skb2, len - ETH_FCS_LEN); - /* * The bmCRC helps to denote when the CRC field in * the Ethernet frame contains a calculated CRC: * bmCRC = 1 : CRC is calculated * bmCRC = 0 : CRC = 0xDEADBEEF */ - if (header & BIT(14)) - crc2 = ~crc32_le(~0, skb2->data, skb2->len); - else + if (header & BIT(14)) { + crc = get_unaligned_le32(skb2->data + + len - ETH_FCS_LEN); + crc2 = ~crc32_le(~0, skb2->data, skb2->len + - ETH_FCS_LEN); + } else { + crc = get_unaligned_be32(skb2->data + + len - ETH_FCS_LEN); crc2 = 0xdeadbeef; + } + skb_trim(skb2, len - ETH_FCS_LEN); if (is_last) return crc == crc2;