summaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/cdc_eem.c
diff options
context:
space:
mode:
authorIan Coolidge <iancoolidge@gmail.com>2012-11-07 15:39:19 +0100
committerDavid S. Miller <davem@davemloft.net>2012-11-08 03:12:26 +0100
commita66fe1653f4e81c007a68ca975067432a42df05b (patch)
tree236cf01306c151e26b6759414aef249961ff04a3 /drivers/net/usb/cdc_eem.c
parentusb: gadget: g_ether: fix frame size check for 802.1Q (diff)
downloadlinux-a66fe1653f4e81c007a68ca975067432a42df05b.tar.xz
linux-a66fe1653f4e81c007a68ca975067432a42df05b.zip
net: usb: cdc_eem: Fix rx skb allocation for 802.1Q VLANs
cdc_eem frames might need to contain 802.1Q VLAN Ethernet frames. URB/skb sizing from usbnet will default to the hard_mtu, so account for the VLAN header by expanding that via hard_header_len Signed-off-by: Ian Coolidge <iancoolidge@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/cdc_eem.c')
-rw-r--r--drivers/net/usb/cdc_eem.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/usb/cdc_eem.c b/drivers/net/usb/cdc_eem.c
index c81e278629ff..08d55b6bf272 100644
--- a/drivers/net/usb/cdc_eem.c
+++ b/drivers/net/usb/cdc_eem.c
@@ -31,6 +31,7 @@
#include <linux/usb/cdc.h>
#include <linux/usb/usbnet.h>
#include <linux/gfp.h>
+#include <linux/if_vlan.h>
/*
@@ -92,7 +93,7 @@ static int eem_bind(struct usbnet *dev, struct usb_interface *intf)
/* no jumbogram (16K) support for now */
- dev->net->hard_header_len += EEM_HEAD + ETH_FCS_LEN;
+ dev->net->hard_header_len += EEM_HEAD + ETH_FCS_LEN + VLAN_HLEN;
dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
return 0;