admin管理员组文章数量:1655508
2024年4月1日发(作者:)
break;
/* Process all buffers of the current transmitted frame */
for (;; tail++) {
tx_skb = macb_tx_skb(queue, tail);
skb = tx_skb->skb;
/* First, update TX stats if needed */
if (skb) {
netdev_vdbg(bp->dev, "skb %u (data %p) TX completen",
macb_tx_ring_wrap(tail), skb->data);
bp->_packets++;
bp->_bytes += skb->len;
}
/* Now we can safely release resources */
macb_tx_unmap(bp, tx_skb);
/* skb is set only for the last buffer of the frame.
* WARNING: at this point skb has been freed by
* macb_tx_unmap().
*/
if (skb)
break;
}
}
queue->tx_tail = tail;
if (__netif_subqueue_stopped(bp->dev, queue_index) &&
CIRC_CNT(queue->tx_head, queue->tx_tail,
TX_RING_SIZE) <= MACB_TX_WAKEUP_THRESH)
netif_wake_subqueue(bp->dev, queue_index);
}
版权声明:本文标题:网卡dma屏障指令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1711967415a336492.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论