2014-06-02 11:50:17 +00:00
|
|
|
commit e3804842c60157bab0d5bf2daa42f99ec3f8499d
|
|
|
|
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
|
|
|
|
Date: Mon Jun 2 13:24:37 2014 +0200
|
|
|
|
|
|
|
|
csum.patch
|
|
|
|
|
|
|
|
--- a/drivers/net/usb/smsc95xx.c
|
|
|
|
+++ b/drivers/net/usb/smsc95xx.c
|
|
|
|
@@ -1716,7 +1716,13 @@ static int smsc95xx_resume(struct usb_interface *intf)
|
2012-06-25 14:31:04 +00:00
|
|
|
|
|
|
|
static void smsc95xx_rx_csum_offload(struct sk_buff *skb)
|
|
|
|
{
|
|
|
|
- skb->csum = *(u16 *)(skb_tail_pointer(skb) - 2);
|
|
|
|
+ /*
|
|
|
|
+ * Use bytewise access to avoid alignment issues on packets that have none
|
|
|
|
+ * aligned sizes
|
|
|
|
+ */
|
|
|
|
+ char *tail = skb_tail_pointer(skb);
|
|
|
|
+ skb->csum = (*(tail - 2) << 8) | *(tail - 1);
|
2013-04-17 15:58:46 +00:00
|
|
|
+
|
2012-06-25 14:31:04 +00:00
|
|
|
skb->ip_summed = CHECKSUM_COMPLETE;
|
|
|
|
skb_trim(skb, skb->len - 2);
|
|
|
|
}
|