diff options
Diffstat (limited to 'drivers/net/usb/usbnet.c')
-rw-r--r-- | drivers/net/usb/usbnet.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index fa080e191ddf..056f6d91d226 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -930,6 +930,17 @@ static int usbnet_start_xmit (struct sk_buff *skb, struct net_device *net) struct driver_info *info = dev->driver_info; unsigned long flags; +#ifdef CONFIG_ARCH_TEGRA + // check and do the proper 32 byte alignment for sk buff + if ((int)skb->data & 0x0000001F) { + struct sk_buff *new_skb = skb_copy_expand(skb, 32, 0, GFP_ATOMIC); + if(unlikely(!(new_skb))) + return -1; + kfree_skb(skb); + skb = new_skb; + } +#endif + // some devices want funky USB-level framing, for // win32 driver (usually) and/or hardware quirks if (info->tx_fixup) { |