the precondition of calling alloc_skb()/kfree_skb()?
Subsystems (2)
Hi, all:
I encountered a problem of using sk_buff.
I used 2.4.20 kernel, when burst traffic come, the kernel will complain a bug report at skbuff.c:316 later:
311 void __kfree_skb(struct sk_buff *skb)
312 {
313 if (skb->list) {
314 printk(KERN_WARNING "Warning: kfree_skb passed an skb still " 315 "on a list (from %p).\n", NET_CALLER(skb));
316 BUG(); /* HERE!!! */
317 }
/* snip some code here */
332 }
I saw the dev_kfree_skb_irq() and dev_kfree_skb_irq(), and how to use them. even, in fact, we work in pure poll I/O model, so the NIC can not issue any interrupt.
And, I searched google, there are many similar reports like above, but almost of them have no reply. I think there may have some unknown thing while sk_buff API.
Well, I hope know, are there some preconditions of calling alloc_skb() or *_kfree_skb_*() ? Thank in advanced.
Good luck.
- Yu Li