v2 changes: change LOG level from ERR to INFO virtio PMD could use IO port to configure the virtio device without using uio driver.
There are two issues with previous implementation: 1) virtio PMD will take over each virtio device blindly even if some are not intended for DPDK. 2) driver conflict between virtio PMD and virtio-net kernel driver. This patch checks if there is any kernel driver manipulating the virtio device before virtio PMD uses IO port to configure the device. Fixes: da978dfdc43b ("virtio: use port IO to get PCI resource") Signed-off-by: Huawei Xie <huawei.xie at intel.com> --- drivers/net/virtio/virtio_ethdev.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index e815acd..7a50dac 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1138,6 +1138,13 @@ static int virtio_resource_init_by_ioports(struct rte_pci_device *pci_dev) int found = 0; size_t linesz; + if (pci_dev->kdrv != RTE_KDRV_NONE) { + PMD_INIT_LOG(INFO, + "kernel driver is manipulating this device." \ + " Please unbind the kernel driver."); + return -1; + } + snprintf(pci_id, sizeof(pci_id), PCI_PRI_FMT, pci_dev->addr.domain, pci_dev->addr.bus, -- 1.8.1.4