mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-26 22:09:51 +00:00
Ported drivers list and extract all needed source files. This decouples ports according to contrib sources and also enables us to revert lxip to Linux version 3.9, while staying with 3.14 for usb. Fixes #1285
26 lines
786 B
Diff
26 lines
786 B
Diff
commit e3804842c60157bab0d5bf2daa42f99ec3f8499d
|
|
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
|
|
Date: Mon Jun 2 13:24:37 2014 +0200
|
|
|
|
csum.patch
|
|
|
|
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
|
|
index 424db65..5eb8ac7 100644
|
|
--- a/drivers/net/usb/smsc95xx.c
|
|
+++ b/drivers/net/usb/smsc95xx.c
|
|
@@ -1716,7 +1716,13 @@ static int smsc95xx_resume(struct usb_interface *intf)
|
|
|
|
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);
|
|
+
|
|
skb->ip_summed = CHECKSUM_COMPLETE;
|
|
skb_trim(skb, skb->len - 2);
|
|
}
|