[dpdk-dev] [PATCH v2 4/4] virtio: check if any kernel driver is manipulating the virtio device
Huawei Xie
huawei.xie at intel.com
Sun Jan 3 18:56:13 CET 2016
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
More information about the dev
mailing list