On Mon, May 09, 2016 at 07:58:26AM +0000, Tan, Jianfeng wrote: > Hi Yuanhan, > > > -----Original Message----- > > From: Yuanhan Liu [mailto:yuanhan.liu at linux.intel.com] > > Sent: Thursday, May 5, 2016 11:20 AM > > To: Tan, Jianfeng > > Cc: dev at dpdk.org; Xie, Huawei > > Subject: Re: [PATCH v3 1/2] virtio: cleanup virtio_dev_queue_setup() > > > > On Fri, Apr 29, 2016 at 12:48:45AM +0000, Jianfeng Tan wrote: > > > + if (queue_type < VTNET_RQ || queue_type > VTNET_CQ) { > > > + PMD_INIT_LOG(ERR, "invalid queue type: %d", queue_type); > > > + return -EINVAL; > > > } > > > > I'm thinking this check is not necessary. We can make sure it's a valid > > queue type. > > Yes, this is not necessary, and I was also entangled with whether to keep it > or not. And ok, I'll send a new version with this check removed.
Not necessary; it's trivial for me to fix it while applying it. So, this series is applied to dpdk-next-virtio, with following changes: --yliu --- diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 6b291f5..70ee12a 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -266,7 +266,7 @@ virtio_dev_queue_release(struct virtqueue *vq) if (vq) { hw = vq->hw; - if (vq->started) + if (vq->configured) hw->vtpci_ops->del_queue(hw, vq); rte_memzone_free(vq->mz); @@ -311,11 +311,6 @@ int virtio_dev_queue_setup(struct rte_eth_dev *dev, return -EINVAL; } - if (queue_type < VTNET_RQ || queue_type > VTNET_CQ) { - PMD_INIT_LOG(ERR, "invalid queue type: %d", queue_type); - return -EINVAL; - } - snprintf(vq_name, sizeof(vq_name), "port%d_%s%d", dev->data->port_id, queue_names[queue_type], queue_idx); vq = rte_zmalloc(vq_name, sizeof(struct virtqueue) + @@ -453,7 +448,7 @@ int virtio_dev_queue_setup(struct rte_eth_dev *dev, hw->vtpci_ops->setup_queue(hw, vq); - vq->started = 1; + vq->configured = 1; *pvq = vq; return 0; } diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h index 0006a29..4e543d2 100644 --- a/drivers/net/virtio/virtqueue.h +++ b/drivers/net/virtio/virtqueue.h @@ -201,7 +201,7 @@ struct virtqueue { uint16_t *notify_addr; - int started; + int configured; struct vq_desc_extra { void *cookie;