驱动内核:kfree_skb
kfree_skb()释放一个SKB的步骤:
1)kfree_skb()检测sk_buff结构的引用计数users,如果不为1,则说明此次释放后该SKB还将被用户占用,
因此递减引用计数users后即返回;否则说明不再有其他用户占用该sk_buff结构,调用__kfree_skb()释放之。
2)SKB描述符中包含一个dst_entry结构的引用,在释放SKB后,会调用dst_release()来递减dst_entry结构的引用计数。
3)如果初始化了SKB的析构函数,则调用相应的函数。
4)一个SKB描述符是与一个存有真正数据的内存块,即数据区相关的。如果存在聚合分散I/O数据,
该数据区底部的skb_shared_info结
浙公网安备 33010602011771号