diff options
| author | David S. Miller <davem@davemloft.net> | 2011-05-11 14:26:15 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-05-11 14:26:58 -0400 |
| commit | 3c709f8fb43e07a0403bba4a8ca7ba00ab874994 (patch) | |
| tree | 9efc1e2bf6930851f0224f525b6cde0f5297fa61 /drivers/net/usb | |
| parent | 0074820978004cc484b132d7a9ce0df414660d9d (diff) | |
| parent | 9bbc052d5e63512b0ce4e201ea97e12fba9fda82 (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-3.6
Conflicts:
drivers/net/benet/be_main.c
Diffstat (limited to 'drivers/net/usb')
| -rw-r--r-- | drivers/net/usb/cdc_ether.c | 2 | ||||
| -rw-r--r-- | drivers/net/usb/ipheth.c | 14 |
2 files changed, 10 insertions, 6 deletions
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index a301479ecc6..c924ea2bce0 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c | |||
| @@ -567,7 +567,7 @@ static const struct usb_device_id products [] = { | |||
| 567 | { | 567 | { |
| 568 | USB_DEVICE_AND_INTERFACE_INFO(0x1004, 0x61aa, USB_CLASS_COMM, | 568 | USB_DEVICE_AND_INTERFACE_INFO(0x1004, 0x61aa, USB_CLASS_COMM, |
| 569 | USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), | 569 | USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), |
| 570 | .driver_info = 0, | 570 | .driver_info = (unsigned long)&wwan_info, |
| 571 | }, | 571 | }, |
| 572 | 572 | ||
| 573 | /* | 573 | /* |
diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c index 7d42f9a2c06..81126ff85e0 100644 --- a/drivers/net/usb/ipheth.c +++ b/drivers/net/usb/ipheth.c | |||
| @@ -65,6 +65,7 @@ | |||
| 65 | #define IPHETH_USBINTF_PROTO 1 | 65 | #define IPHETH_USBINTF_PROTO 1 |
| 66 | 66 | ||
| 67 | #define IPHETH_BUF_SIZE 1516 | 67 | #define IPHETH_BUF_SIZE 1516 |
| 68 | #define IPHETH_IP_ALIGN 2 /* padding at front of URB */ | ||
| 68 | #define IPHETH_TX_TIMEOUT (5 * HZ) | 69 | #define IPHETH_TX_TIMEOUT (5 * HZ) |
| 69 | 70 | ||
| 70 | #define IPHETH_INTFNUM 2 | 71 | #define IPHETH_INTFNUM 2 |
| @@ -202,18 +203,21 @@ static void ipheth_rcvbulk_callback(struct urb *urb) | |||
| 202 | return; | 203 | return; |
| 203 | } | 204 | } |
| 204 | 205 | ||
| 205 | len = urb->actual_length; | 206 | if (urb->actual_length <= IPHETH_IP_ALIGN) { |
| 206 | buf = urb->transfer_buffer; | 207 | dev->net->stats.rx_length_errors++; |
| 208 | return; | ||
| 209 | } | ||
| 210 | len = urb->actual_length - IPHETH_IP_ALIGN; | ||
| 211 | buf = urb->transfer_buffer + IPHETH_IP_ALIGN; | ||
| 207 | 212 | ||
| 208 | skb = dev_alloc_skb(NET_IP_ALIGN + len); | 213 | skb = dev_alloc_skb(len); |
| 209 | if (!skb) { | 214 | if (!skb) { |
| 210 | err("%s: dev_alloc_skb: -ENOMEM", __func__); | 215 | err("%s: dev_alloc_skb: -ENOMEM", __func__); |
| 211 | dev->net->stats.rx_dropped++; | 216 | dev->net->stats.rx_dropped++; |
| 212 | return; | 217 | return; |
| 213 | } | 218 | } |
| 214 | 219 | ||
| 215 | skb_reserve(skb, NET_IP_ALIGN); | 220 | memcpy(skb_put(skb, len), buf, len); |
| 216 | memcpy(skb_put(skb, len), buf + NET_IP_ALIGN, len - NET_IP_ALIGN); | ||
| 217 | skb->dev = dev->net; | 221 | skb->dev = dev->net; |
| 218 | skb->protocol = eth_type_trans(skb, dev->net); | 222 | skb->protocol = eth_type_trans(skb, dev->net); |
| 219 | 223 | ||
