kfree_skb()只在skb->users为1的情况下才释放内存,否则只简单地递减skb->users,因此假设SKB有三个引用者,那么只有第三次调用dev_kfree_skb()或kfree_skb()时才释放内存。
dev_kfree_skb()只是一个简单调用kfree_skb()的宏。
__kfree_skb绕过了对skb引用计数的判断,一般来说,在内核中函数名前面加“__”的都提示要小心使用,也就是它略去了一些检查,于是在调用这类函数之前要做检查。
kfree()调用了slab_free()并不会释放skb的线性区及分片等。
————————————————
版权声明:本文为CSDN博主「在南京看海」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33336155/article/details/53640324