On 03/03, Itsuro Oda wrote: >If a vhost device is closed before eth_dev_configure is done >to the device, internal resources allocated to the device >does not freed. This patch fixes it.
s/does not freed/would not be freed > >Fixes: 3d01b759d267 ("net/vhost: delay driver setup") Cc: sta...@dpdk.org > >Signed-off-by: Itsuro Oda <o...@valinux.co.jp> >--- > drivers/net/vhost/rte_eth_vhost.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > >diff --git a/drivers/net/vhost/rte_eth_vhost.c >b/drivers/net/vhost/rte_eth_vhost.c >index 458ed58f5..1ed977e9b 100644 >--- a/drivers/net/vhost/rte_eth_vhost.c >+++ b/drivers/net/vhost/rte_eth_vhost.c >@@ -1065,16 +1065,14 @@ eth_dev_close(struct rte_eth_dev *dev) > > eth_dev_stop(dev); > >- rte_vhost_driver_unregister(internal->iface_name); >- > list = find_internal_resource(internal->iface_name); >- if (!list) >- return; >- >- pthread_mutex_lock(&internal_list_lock); >- TAILQ_REMOVE(&internal_list, list, next); >- pthread_mutex_unlock(&internal_list_lock); >- rte_free(list); >+ if (list) { >+ rte_vhost_driver_unregister(internal->iface_name); >+ pthread_mutex_lock(&internal_list_lock); >+ TAILQ_REMOVE(&internal_list, list, next); >+ pthread_mutex_unlock(&internal_list_lock); >+ rte_free(list); >+ } > > if (dev->data->rx_queues) > for (i = 0; i < dev->data->nb_rx_queues; i++) >-- >2.17.0 > For the rest, Reviewed-by: Xiaolong Ye <xiaolong...@intel.com>