On 2015/08/07 3:04, Ravi Kerur wrote: > diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c > index 8280cea..472ef5a 100644 > --- a/drivers/net/enic/enic_ethdev.c > +++ b/drivers/net/enic/enic_ethdev.c > @@ -36,8 +36,8 @@ > #include <stdio.h> > #include <stdint.h> > > -#include <rte_dev.h> > #include <rte_pci.h> > +#include <rte_dev.h> > #include <rte_ethdev.h> > #include <rte_string_fns.h>
Hi Ravi, Do we need this fixing? > > diff --git a/drivers/net/mpipe/mpipe_tilegx.c > b/drivers/net/mpipe/mpipe_tilegx.c > index 743feef..6e3e304 100644 > --- a/drivers/net/mpipe/mpipe_tilegx.c > +++ b/drivers/net/mpipe/mpipe_tilegx.c > @@ -1582,6 +1582,7 @@ rte_pmd_mpipe_devinit(const char *ifname, > if (!eth_dev) { > RTE_LOG(ERR, PMD, "%s: Failed to allocate device.\n", ifname); > rte_free(priv); > + return -ENOMEM; How about separating this fixing from the patch, and put it as an one of cleanup patch series? > } > > RTE_LOG(INFO, PMD, "%s: Initialized mpipe device" > diff --git a/lib/librte_eal/common/eal_common_dev.c > b/lib/librte_eal/common/eal_common_dev.c > index 4089d66..82d5693 100644 > --- a/lib/librte_eal/common/eal_common_dev.c > +++ b/lib/librte_eal/common/eal_common_dev.c > > RTE_LOG(ERR, EAL, "no driver found for %s\n", name); > @@ -94,6 +99,7 @@ rte_eal_dev_init(void) > { > struct rte_devargs *devargs; > struct rte_driver *driver; > + uint8_t port_id; > > /* > * Note that the dev_driver_list is populated here > @@ -108,7 +114,7 @@ rte_eal_dev_init(void) > continue; > > if (rte_eal_vdev_init(devargs->virtual.drv_name, > - devargs->args)) { > + devargs->args, &port_id)) { After this line, 'port_id' is actually not used by anywhere in this function. Also, I guess we will not use port_id in this function in the future. How about fixing rte_eal_vdev_init() to handle NULL value correctly to remove port_id from this function? But I agree your current implementation is also one of choice. > diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c > index 5fe1906..355d709 100644 > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > +int > +rte_eth_dev_get_port_by_addr(const struct rte_pci_addr *addr, uint8_t > *port_id) > +{ > + int i; > + struct rte_pci_device *pci_dev = NULL; > + > + if (addr == NULL || port_id == NULL) { > + PMD_DEBUG_TRACE("Null pointer is specified\n"); > + return -EINVAL; > + } > + > + *port_id = RTE_MAX_ETHPORTS; > + > + for (i = 0; i < RTE_MAX_ETHPORTS; i++) { > + > + pci_dev = rte_eth_devices[i].pci_dev; > + > + if (pci_dev != NULL && > + pci_dev->addr.domain == addr->domain && > + pci_dev->addr.bus == addr->bus && > + pci_dev->addr.devid == addr->devid && > + pci_dev->addr.function == addr->function) { You can use rte_eal_compare_pci_addr() here. > + > + *port_id = i; > + return 0; > + } > + } > + return -ENODEV; > +} > diff --git a/lib/librte_ether/rte_ether_version.map > b/lib/librte_ether/rte_ether_version.map > index 8345a6c..3d5cb23 100644 > --- a/lib/librte_ether/rte_ether_version.map > +++ b/lib/librte_ether/rte_ether_version.map > @@ -125,5 +125,7 @@ DPDK_2.1 { > rte_eth_timesync_enable; > rte_eth_timesync_read_rx_timestamp; > rte_eth_timesync_read_tx_timestamp; > + rte_eth_dev_get_port_by_name; > + rte_eth_dev_get_port_by_addr; > > } DPDK_2.0; Hi Thomas, Could you please make sure API consistency? Is it ok to add above functions to DPDK_2.1 even though we are in RC phase, or need to add to DPDK_2.2? Thanks, Tetsuya