--- linux-2.6.9/drivers/usb/net/usbnet_orig.c 2005-02-11 19:14:59.455525200 -0500 +++ linux-2.6.9/drivers/usb/net/usbnet.c 2005-02-11 19:17:29.751676712 -0500 @@ -2374,12 +2374,13 @@ #endif size = (sizeof (struct ethhdr) + dev->net->mtu); - if ((skb = alloc_skb (size, flags)) == 0) { + if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) { devdbg (dev, "no rx skb"); defer_kevent (dev, EVENT_RX_MEMORY); usb_free_urb (urb); return; } + skb_reserve (skb, NET_IP_ALIGN); entry = (struct skb_data *) skb->cb; entry->urb = urb;