net: usb: cdc_eem: fix mtu
authorRabin Vincent <rabin@rab.in>
Thu, 29 Mar 2012 07:15:15 +0000 (07:15 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Apr 2012 03:32:35 +0000 (23:32 -0400)
Make CDC EEM recalculate the hard_mtu after adjusting the
hard_header_len.

Without this, usbnet adjusts the MTU down to 1494 bytes, and the host is
unable to receive standard 1500-byte frames from the device.

Tested with the Linux USB Ethernet gadget.

Cc: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/cdc_eem.c

index 439690b..685a4e2 100644 (file)
@@ -93,6 +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->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
 
        return 0;
 }