我想在一个以上的队列中排队一个skb buff.所以我想到了使用克隆选项.
现在我的问题是,如果我在克隆的skb上执行kfree\_skb,它会释放原始的skb,还是只删除一个引用?

谢谢!

解决方法:

kfree_skb()将使用克隆的skbuff做正确的事情,即释放skbuff结构本身但不释放数据,如果它仍被其他skbuff引用.


这是在skb_release_data()完成的,它检查skbuff是否不是克隆,或者这是否是对skb->数据的最后一次引用(以环形方式完成以支持无头skbuff,其中包含对skb的有效负载部分的引用 – >数据(skb-> dataref的高16位),除了对整个skb->数据的通常引用之外).

标签: linux, kernel, linux-kernel

相关文章推荐

添加新评论,含*的栏目为必填