From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nachiketa Prachanda Subject: [PATCH] vdev: fix name comparison in find_vdev Date: Fri, 9 Mar 2018 14:28:38 -0800 Message-ID: <1520634518-3055-1-git-send-email-nprachan@vyatta.att-mail.com> Cc: dev@dpdk.org, Nachiketa Prachanda , jblunck@infradead.org, stable@dpdk.org To: Jianfeng Tan Return-path: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Use strcmp to compare device names as the strncmp in original code causes find_vdev to return -EEXIST for names that are prefix of another. The creation of interfaces fails unpredictably based on the order of their creation. An easy way hit this bug is to create eth_vhost1 after eth_vhost11. Signed-off-by: Nachiketa Prachanda Fixes: dda987315ca2 ("vdev: make virtual bus use its device struct") Cc: jblunck@infradead.org Cc: stable@dpdk.org --- drivers/bus/vdev/vdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c index e4bc724..7eae319 100644 --- a/drivers/bus/vdev/vdev.c +++ b/drivers/bus/vdev/vdev.c @@ -188,7 +188,7 @@ find_vdev(const char *name) TAILQ_FOREACH(dev, &vdev_device_list, next) { const char *devname = rte_vdev_device_name(dev); - if (!strncmp(devname, name, strlen(name))) + if (!strcmp(devname, name)) return dev; } -- 2.7.4