Re: skb allocation problems

From: Andi Kleen (ak@suse.de)
Date: Tue Apr 10 2001 - 01:07:13 EST


On Mon, Apr 09, 2001 at 07:03:46PM +0300, Imran.Patel@nokia.com wrote:
> I have written a test module which closely mirrors what my code tries to
> do(attached below). This is what i get:
>
> PRE_R: old skb:c371ee40 new skb:c371ee30

I guess oldskb->len is <=0xc, and the slab allocator packs them near together
in the same zone.

> printk("\nPRE_R: old skb:%p", (*pskb)->data);
>
> /* translation happens in the real code here */
>
> skb = alloc_skb((*pskb)->len, GFP_ATOMIC);
> if(!skb)
> printk("alloc failed");

I guess you want a return here.

> skb_reserve(skb, 16);

You cannot do that if you didn't make sure that the old skb had enough
room for it (or rather it'll sometimes panic)

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 15 2001 - 21:00:12 EST