--- linux-2.6.17.6/drivers/net/e1000/e1000_main.c 2006-08-03 17:38:53.000000000 +0200 +++ linux-2.6.17.6.patched/drivers/net/e1000/e1000_main.c 2006-08-03 19:38:53.000000000 +0200 @@ -3843,9 +3843,13 @@ buffer_info = &rx_ring->buffer_info[i]; while (cleaned_count--) { - if (!(skb = buffer_info->skb)) + if (!(skb = buffer_info->skb)) { + if (SKB_DATA_ALIGN(adapter->hw.max_frame_size) + sizeof(struct skb_shared_info) <= bufsz) { + bufsz -= sizeof(struct skb_shared_info); + printk(KERN_INFO "%s - bufsz %d\n",e1000_driver_string, bufsz); + } skb = dev_alloc_skb(bufsz); - else { + } else { skb_trim(skb, 0); goto map_skb; }