When eth_virtio_dev_init is failed, the registered virtio user memory event cb is not released and creating a new vdev could be failed because the new virtio_user_dev could use the same address pointer and register memory event cb to the same address is not allowed.
Signed-off-by: Harold Huang <baymaxhu...@gmail.com> --- Compared PATCH v2, commit message is changed. The problem this patch want to solve can be reproduced by ovs 2.16.90 and the latest dpdk. drivers/net/virtio/virtio_user_ethdev.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c index 0271098f0d..16eca2f940 100644 --- a/drivers/net/virtio/virtio_user_ethdev.c +++ b/drivers/net/virtio/virtio_user_ethdev.c @@ -666,6 +666,7 @@ virtio_user_pmd_probe(struct rte_vdev_device *vdev) /* previously called by pci probing for physical dev */ if (eth_virtio_dev_init(eth_dev) < 0) { PMD_INIT_LOG(ERR, "eth_virtio_dev_init fails"); + virtio_user_dev_uninit(dev); virtio_user_eth_dev_free(eth_dev); goto end; } -- 2.27.0