On 2/1/2017 4:24 PM, Ananyev, Konstantin wrote: > Hi Wenzhuo, > >> -----Original Message----- >> From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Wenzhuo Lu >> Sent: Wednesday, January 25, 2017 2:39 AM >> To: dev@dpdk.org >> Cc: Lu, Wenzhuo <wenzhuo...@intel.com> >> Subject: [dpdk-dev] [PATCH] net/ixgbe: clean up rte_eth_dev_info_get >> >> It'not appropriate to call rte_eth_dev_info_get in PMD, >> as rte_eth_dev_info_get need to get info from PMD. >> Remove rte_eth_dev_info_get from PMD code and get the >> info directly. >> >> Signed-off-by: Wenzhuo Lu <wenzhuo...@intel.com> >> --- >> drivers/net/ixgbe/ixgbe_ethdev.c | 144 >> ++++++++++++++++++--------------------- >> 1 file changed, 68 insertions(+), 76 deletions(-) >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c >> b/drivers/net/ixgbe/ixgbe_ethdev.c >> index 64ce55a..f14a68b 100644 >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c >> @@ -4401,17 +4401,17 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused >> struct rte_eth_dev *dev, >> int rar_entry; >> uint8_t *new_mac = (uint8_t *)(mac_addr); >> struct rte_eth_dev *dev; >> - struct rte_eth_dev_info dev_info; >> + struct rte_pci_device *pci_dev; >> >> RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); >> >> dev = &rte_eth_devices[port]; >> - rte_eth_dev_info_get(port, &dev_info); >> + pci_dev = IXGBE_DEV_TO_PCI(dev); >> >> - if (is_ixgbe_pmd(dev_info.driver_name) != 0) >> + if (is_ixgbe_pmd(dev->data->drv_name)) >> return -ENOTSUP; > > I wonder why do we need now that it is really an ixgbe device all over the > place?
This device specific API, so it is missing merits of abstraction layer, application can these APIs with any port_id, API should be protected for it. > Konstantin >