net/virtio: allow virtual address to fill vring descriptors
[dpdk.git] / drivers / net / virtio / virtio_rxtx.c
index 3c69110..a27208e 100644 (file)
@@ -193,8 +193,7 @@ virtqueue_enqueue_recv_refill(struct virtqueue *vq, struct rte_mbuf *cookie)
 
        start_dp = vq->vq_ring.desc;
        start_dp[idx].addr =
-               (uint64_t)(cookie->buf_physaddr + RTE_PKTMBUF_HEADROOM
-               - hw->vtnet_hdr_size);
+               MBUF_DATA_DMA_ADDR(cookie, vq->offset) - hw->vtnet_hdr_size;
        start_dp[idx].len =
                cookie->buf_len - RTE_PKTMBUF_HEADROOM + hw->vtnet_hdr_size;
        start_dp[idx].flags =  VRING_DESC_F_WRITE;
@@ -266,7 +265,7 @@ virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
        }
 
        do {
-               start_dp[idx].addr  = rte_mbuf_data_dma_addr(cookie);
+               start_dp[idx].addr  = MBUF_DATA_DMA_ADDR(cookie, vq->offset);
                start_dp[idx].len   = cookie->data_len;
                start_dp[idx].flags = cookie->next ? VRING_DESC_F_NEXT : 0;
                idx = start_dp[idx].next;