diff options
author | Luca Boccassi <luca.boccassi@gmail.com> | 2018-08-14 18:52:30 +0100 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@gmail.com> | 2018-08-14 18:53:17 +0100 |
commit | b63264c8342e6a1b6971c79550d2af2024b6a4de (patch) | |
tree | 83114aac64286fe616506c0b3dfaec2ab86ef835 /drivers/net/virtio/virtio_rxtx_simple.c | |
parent | ca33590b6af032bff57d9cc70455660466a654b2 (diff) |
New upstream version 18.08upstream/18.08
Change-Id: I32fdf5e5016556d9c0a6d88ddaf1fc468961790a
Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
Diffstat (limited to 'drivers/net/virtio/virtio_rxtx_simple.c')
-rw-r--r-- | drivers/net/virtio/virtio_rxtx_simple.c | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/drivers/net/virtio/virtio_rxtx_simple.c b/drivers/net/virtio/virtio_rxtx_simple.c index 51520758..31e565b4 100644 --- a/drivers/net/virtio/virtio_rxtx_simple.c +++ b/drivers/net/virtio/virtio_rxtx_simple.c @@ -27,73 +27,6 @@ #pragma GCC diagnostic ignored "-Wcast-qual" #endif -uint16_t -virtio_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts, - uint16_t nb_pkts) -{ - struct virtnet_tx *txvq = tx_queue; - struct virtqueue *vq = txvq->vq; - struct virtio_hw *hw = vq->hw; - uint16_t nb_used; - uint16_t desc_idx; - struct vring_desc *start_dp; - uint16_t nb_tail, nb_commit; - int i; - uint16_t desc_idx_max = (vq->vq_nentries >> 1) - 1; - uint16_t nb_tx = 0; - - if (unlikely(hw->started == 0 && tx_pkts != hw->inject_pkts)) - return nb_tx; - - nb_used = VIRTQUEUE_NUSED(vq); - rte_compiler_barrier(); - - if (nb_used >= VIRTIO_TX_FREE_THRESH) - virtio_xmit_cleanup_simple(vq); - - nb_commit = nb_pkts = RTE_MIN((vq->vq_free_cnt >> 1), nb_pkts); - desc_idx = (uint16_t)(vq->vq_avail_idx & desc_idx_max); - start_dp = vq->vq_ring.desc; - nb_tail = (uint16_t) (desc_idx_max + 1 - desc_idx); - - if (nb_commit >= nb_tail) { - for (i = 0; i < nb_tail; i++) - vq->vq_descx[desc_idx + i].cookie = tx_pkts[i]; - for (i = 0; i < nb_tail; i++) { - start_dp[desc_idx].addr = - VIRTIO_MBUF_DATA_DMA_ADDR(*tx_pkts, vq); - start_dp[desc_idx].len = (*tx_pkts)->pkt_len; - tx_pkts++; - desc_idx++; - } - nb_commit -= nb_tail; - desc_idx = 0; - } - for (i = 0; i < nb_commit; i++) - vq->vq_descx[desc_idx + i].cookie = tx_pkts[i]; - for (i = 0; i < nb_commit; i++) { - start_dp[desc_idx].addr = - VIRTIO_MBUF_DATA_DMA_ADDR(*tx_pkts, vq); - start_dp[desc_idx].len = (*tx_pkts)->pkt_len; - tx_pkts++; - desc_idx++; - } - - rte_compiler_barrier(); - - vq->vq_free_cnt -= (uint16_t)(nb_pkts << 1); - vq->vq_avail_idx += nb_pkts; - vq->vq_ring.avail->idx = vq->vq_avail_idx; - txvq->stats.packets += nb_pkts; - - if (likely(nb_pkts)) { - if (unlikely(virtqueue_kick_prepare(vq))) - virtqueue_notify(vq); - } - - return nb_pkts; -} - int __attribute__((cold)) virtio_rxq_vec_setup(struct virtnet_rx *rxq) { |