#define skb_queue_walk_from(queue, skb) \ for (; prefetch(skb->next), (skb != (struct sk_buff *)(queue)); \ skb = skb->next) // 这个宏是从skb元素处开始遍历直到遇到头结点queue结束,该宏只能做查看操作,不能做删除skb操作,分析如第一个宏 #define skb_queue_walk_from_safe(queue, sk...
skb_queue_purge : 将某个链表清空 voidskb_queue_purge(structsk_buff_head *list){structsk_buff*skb;while((skb =skb_dequeue(list)) !=NULL)kfree_skb(skb); } skb_queue_walk : 遍历链表 #defineskb_queue_walk(queue, skb) \for(skb = (queue)->next,prefetch(skb->next); \ (skb != (...
/* free every skb remained in tx list */ skb_queue_walk_safe(&tx_ring->queue, skb, tmp) { @@ -110,21 +107,30 @@ static void rtw_pci_free_tx_ring(struct rtw_dev *rtwdev, pci_unmap_single(pdev, dma, skb->len, PCI_DMA_TODEVICE); dev_kfree_skb_any(skb); } +} + +st...
commit 43bee598bd747dc6849d3c4f32a3a912200073c0 Author: James Chapman <[EMAIL PROTECTED]> Date: Sun Apr 6 23:41:29 2008 -0700