Commit 7fefe6a8 authored by Vincent CUISSARD's avatar Vincent CUISSARD Committed by David S. Miller

cdc-eem: bad crc checking

When the driver received an EEM packet with CRC option enabled, driver must
compute and check the CRC of the Ethernet data. Previous version computes CRC
on Ethernet data plus the original CRC value. Skbuff is correctly trimed but
the old length is used when CRC is computed.
Signed-off-by: default avatarVincent CUISSARD <vincent.cuissard@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 869f1c54
...@@ -311,7 +311,7 @@ static int eem_rx_fixup(struct usbnet *dev, struct sk_buff *skb) ...@@ -311,7 +311,7 @@ static int eem_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
* bmCRC = 0 : CRC = 0xDEADBEEF * bmCRC = 0 : CRC = 0xDEADBEEF
*/ */
if (header & BIT(14)) if (header & BIT(14))
crc2 = ~crc32_le(~0, skb2->data, len); crc2 = ~crc32_le(~0, skb2->data, skb2->len);
else else
crc2 = 0xdeadbeef; crc2 = 0xdeadbeef;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment