> -----Original Message----- > From: Iremonger, Bernard > Sent: Tuesday, July 14, 2015 9:11 PM > To: dev at dpdk.org > Cc: Ouyang, Changchun; stephen at networkplumber.org; Iremonger, Bernard > Subject: [PATCH 4/5] virtio: free queue memory in virtio_dev_close() > > Add function virtio_free_queues() and call from virtio_dev_close() Use > virtio_dev_rx_queue_release() and virtio_dev_tx_queue_release() > > Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com> > --- > drivers/net/virtio/virtio_ethdev.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/net/virtio/virtio_ethdev.c > b/drivers/net/virtio/virtio_ethdev.c > index b32b3e9..4676ab1 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -438,6 +438,24 @@ virtio_dev_cq_queue_setup(struct rte_eth_dev > *dev, uint16_t vtpci_queue_idx, } > > static void > +virtio_free_queues(struct rte_eth_dev *dev) { > + unsigned int i; > + > + for (i = 0; i < dev->data->nb_rx_queues; i++) { > + virtio_dev_rx_queue_release(dev->data->rx_queues[i]); > + dev->data->rx_queues[i] = NULL; > + } > + dev->data->nb_rx_queues = 0; > + > + for (i = 0; i < dev->data->nb_tx_queues; i++) { > + virtio_dev_tx_queue_release(dev->data->tx_queues[i]); > + dev->data->tx_queues[i] = NULL; > + } > + dev->data->nb_tx_queues = 0; > +} > + > +static void > virtio_dev_close(struct rte_eth_dev *dev) { > struct virtio_hw *hw = dev->data->dev_private; @@ -451,6 +469,7 > @@ virtio_dev_close(struct rte_eth_dev *dev) > vtpci_reset(hw); > hw->started = 0; > virtio_dev_free_mbufs(dev); > + virtio_free_queues(dev);
Validate it with vhost sample or not for this change? > } > > static void > -- > 1.9.1