From: Ben Greear <[EMAIL PROTECTED]> Date: Tue, 17 Jan 2006 17:01:46 -0800
> int rsrv = (odev->hard_header_len + 16) & ~0xF; > .... > > skb = alloc_skb(info->cur_pkt_size + 64 + rsrv, GFP_ATOMIC); > .... > > /* Make some extra space, align on 16-byte boundary > * (helps Chelsio) Used to be just a default 16 for > * everyone... > */ > skb_reserve(skb, rsrv); Thanks for pointing this out, I've checked in the following fix. diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 3827f88..da16f8f 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1860,13 +1860,14 @@ static struct sk_buff *fill_packet_ipv4( */ mod_cur_headers(pkt_dev); - skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + 16, GFP_ATOMIC); + datalen = (odev->hard_header_len + 16) & ~0xf; + skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + datalen, GFP_ATOMIC); if (!skb) { sprintf(pkt_dev->result, "No memory"); return NULL; } - skb_reserve(skb, 16); + skb_reserve(skb, datalen); /* Reserve for ethernet and IP header */ eth = (__u8 *) skb_push(skb, 14); - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html