On 10/23/2015 1:51 PM, Jianfeng wrote: > -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Huawei Xie > Sent: Thursday, October 22, 2015 8:10 PM > To: dev at dpdk.org > Subject: [dpdk-dev] [PATCH v4 4/7] virtio: fill RX avail ring with blank mbufs > +int __attribute__((cold)) > +virtqueue_enqueue_recv_refill_simple(struct virtqueue *vq, > + struct rte_mbuf *cookie) > +{ > + struct vq_desc_extra *dxp; > + struct vring_desc *start_dp; > + uint16_t desc_idx; > + > + desc_idx = vq->vq_avail_idx & (vq->vq_nentries - 1); > + dxp = &vq->vq_descx[desc_idx]; > + dxp->cookie = (void *)cookie; > + vq->sw_ring[desc_idx] = cookie; > + > + start_dp = vq->vq_ring.desc; > + start_dp[desc_idx].addr = (uint64_t)((uintptr_t)cookie- > >buf_physaddr + > + RTE_PKTMBUF_HEADROOM - sizeof(struct virtio_net_hdr));
Please use RTE_MBUF_DATA_DMA_ADDR instead of "buf_physaddr + RTE_PKTMBUF_HEADROOM". > + start_dp[desc_idx].len = cookie->buf_len - > + RTE_PKTMBUF_HEADROOM + sizeof(struct virtio_net_hdr); > + > + vq->vq_free_cnt--; > + vq->vq_avail_idx++; > + > + return 0; > +} > -- > 1.8.1.4