--- linux-2.6.11/drivers/usb/net/usbnet.c_orig 2005-03-03 13:50:54.053237416 -0500 +++ linux-2.6.11/drivers/usb/net/usbnet.c 2005-03-03 13:53:19.415139048 -0500 @@ -2404,12 +2404,13 @@ #endif size = (sizeof (struct ethhdr) + dev->net->mtu); - if ((skb = alloc_skb (size, flags)) == NULL) { + 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;