[dpdk-dev] [PATCH 2/2] net/vhost: prevent multiple setup on reconfig
    Maxime Coquelin 
    maxime.coquelin at redhat.com
       
    Tue Feb 18 15:35:14 CET 2020
    
    
  
Ethdev's .dev_configure callback can be called multiple
time during a device life-time, but Vhost makes the
wrong assumption that it is not the case and try to
setup again the device on reconfiguration.
This patch ensures the device hasn't been already setup
before proceeding.
Fixes: 3d01b759d267 ("net/vhost: delay driver setup")
Reported-by: Yinan Wang <yinan.wang at intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
---
 drivers/net/vhost/rte_eth_vhost.c | 5 +++++
 1 file changed, 5 insertions(+)
diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
index c0056bc8bf..c4643da120 100644
--- a/drivers/net/vhost/rte_eth_vhost.c
+++ b/drivers/net/vhost/rte_eth_vhost.c
@@ -876,6 +876,11 @@ vhost_driver_setup(struct rte_eth_dev *eth_dev)
 	unsigned int numa_node = eth_dev->device->numa_node;
 	const char *name = eth_dev->device->name;
 
+	/* Don't try to setup again if it has already been done. */
+	list = find_internal_resource(internal->iface_name);
+	if (list)
+		return 0;
+
 	list = rte_zmalloc_socket(name, sizeof(*list), 0, numa_node);
 	if (list == NULL)
 		return -1;
-- 
2.24.1
    
    
More information about the dev
mailing list