From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ouyang, Changchun" Subject: Re: [PATCH 4/5] virtio: free queue memory in virtio_dev_close() Date: Wed, 15 Jul 2015 01:36:00 +0000 Message-ID: References: <1436879459-18400-1-git-send-email-bernard.iremonger@intel.com> <1436879459-18400-5-git-send-email-bernard.iremonger@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable To: "Iremonger, Bernard" , "dev@dpdk.org" Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 99AF9FFA for ; Wed, 15 Jul 2015 03:37:33 +0200 (CEST) In-Reply-To: <1436879459-18400-5-git-send-email-bernard.iremonger@intel.com> Content-Language: en-US List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Iremonger, Bernard > Sent: Tuesday, July 14, 2015 9:11 PM > To: dev@dpdk.org > Cc: Ouyang, Changchun; stephen@networkplumber.org; Iremonger, Bernard > Subject: [PATCH 4/5] virtio: free queue memory in virtio_dev_close() >=20 > Add function virtio_free_queues() and call from virtio_dev_close() Use > virtio_dev_rx_queue_release() and virtio_dev_tx_queue_release() >=20 > Signed-off-by: Bernard Iremonger > --- > drivers/net/virtio/virtio_ethdev.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) >=20 > 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, } >=20 > static void > +virtio_free_queues(struct rte_eth_dev *dev) { > + unsigned int i; > + > + for (i =3D 0; i < dev->data->nb_rx_queues; i++) { > + virtio_dev_rx_queue_release(dev->data->rx_queues[i]); > + dev->data->rx_queues[i] =3D NULL; > + } > + dev->data->nb_rx_queues =3D 0; > + > + for (i =3D 0; i < dev->data->nb_tx_queues; i++) { > + virtio_dev_tx_queue_release(dev->data->tx_queues[i]); > + dev->data->tx_queues[i] =3D NULL; > + } > + dev->data->nb_tx_queues =3D 0; > +} > + > +static void > virtio_dev_close(struct rte_eth_dev *dev) { > struct virtio_hw *hw =3D dev->data->dev_private; @@ -451,6 +469,7 > @@ virtio_dev_close(struct rte_eth_dev *dev) > vtpci_reset(hw); > hw->started =3D 0; > virtio_dev_free_mbufs(dev); > + virtio_free_queues(dev); Validate it with vhost sample or not for this change? > } >=20 > static void > -- > 1.9.1