pci: remove flag for multiple devices with single id
authorThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 26 Sep 2014 15:46:38 +0000 (17:46 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 29 Sep 2014 13:05:00 +0000 (15:05 +0200)
The flag RTE_PCI_DRV_MULTIPLE was used to register an eth_driver allowing
multiples devices with a single PCI id.
It is now possible to register a pci_driver and create ethdev objects
using rte_eth_dev_allocate().

Suggested-by: David Marchand <david.marchand@6wind.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
lib/librte_eal/common/eal_common_pci.c
lib/librte_eal/common/include/rte_pci.h

index af809a8..f3c7f71 100644 (file)
@@ -103,10 +103,6 @@ static struct rte_devargs *pci_devargs_lookup(struct rte_pci_device *dev)
  * If vendor/device ID match, call the devinit() function of all
  * registered driver for the given device. Return -1 if initialization
  * failed, return 1 if no driver is found for this device.
- * For drivers with the RTE_PCI_DRV_MULTIPLE flag enabled, register
- * the same device multiple times until failure to do so.
- * It is required for non-Intel NIC drivers provided by third-parties such
- * as 6WIND.
  */
 static int
 pci_probe_all_drivers(struct rte_pci_device *dev)
@@ -122,12 +118,6 @@ pci_probe_all_drivers(struct rte_pci_device *dev)
                if (rc > 0)
                        /* positive value means driver not found */
                        continue;
-               /* initialize subsequent driver instances for this device */
-               if ((dr->drv_flags & RTE_PCI_DRV_MULTIPLE) &&
-                       (dev->devargs == NULL ||
-                               dev->devargs->type != RTE_DEVTYPE_BLACKLISTED_PCI))
-                       while (rte_eal_pci_probe_one_driver(dr, dev) == 0)
-                               ;
                return 0;
        }
        return 1;
index d6b1c1b..66ed793 100644 (file)
@@ -193,8 +193,8 @@ struct rte_pci_driver {
 
 /** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO) */
 #define RTE_PCI_DRV_NEED_MAPPING 0x0001
-/** Device driver must be registered several times until failure */
-#define RTE_PCI_DRV_MULTIPLE 0x0002
+/** Device driver must be registered several times until failure - deprecated */
+#pragma GCC poison RTE_PCI_DRV_MULTIPLE
 /** Device needs to be unbound even if no module is provided */
 #define RTE_PCI_DRV_FORCE_UNBIND 0x0004
 /** Device driver supports link state interrupt */