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

Reply via email to