Thread (92 messages) 92 messages, 9 authors, 2016-03-09

Re: [PATCH v4 4/4] virtio: return 1 to tell the upper layer we don't take over this device

From: Thomas Monjalon <hidden>
Date: 2016-03-01 07:18:28

Hi Huawei,

2016-02-26 09:53, Huawei Xie:
quoted hunk ↗ jump to hunk
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1,4 +1,5 @@
 /*-
+
This new line seems useless :)
  *   BSD LICENSE
  *
[...]
quoted hunk ↗ jump to hunk
@@ -1037,8 +1039,11 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 
 	pci_dev = eth_dev->pci_dev;
 
-	if (vtpci_init(pci_dev, hw) < 0)
-		return -1;
+	ret = vtpci_init(pci_dev, hw);
+	if (ret) {
+		rte_free(eth_dev->data->mac_addrs);
The freeing seems not related to this patch.
+		return ret;
+	}
[...]
 	PMD_INIT_LOG(INFO, "trying with legacy virtio pci.");
-	if (legacy_virtio_resource_init(dev, hw) < 0)
+	if (legacy_virtio_resource_init(dev, hw) < 0) {
+		if (dev->kdrv == RTE_KDRV_UNKNOWN) {
+			PMD_INIT_LOG(INFO,
+				"skip kernel managed virtio device.");
+			return 1;
+		}
 		return -1;
+	}
You cannot skip a device if it was whitelisted.
I think you should check RTE_DEVTYPE_WHITELISTED_PCI and throw an error
in this case.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help