From patchwork Fri Sep 22 11:30:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ferruh Yigit X-Patchwork-Id: 29103 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9E9567CFD; Fri, 22 Sep 2017 13:30:22 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 193AD2C24 for ; Fri, 22 Sep 2017 13:30:20 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP; 22 Sep 2017 04:30:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos; i="5.42,427,1500966000"; d="scan'208"; a="1222333200" Received: from silpixa00372839.ir.intel.com (HELO silpixa00372839.ger.corp.intel.com) ([10.237.222.154]) by fmsmga002.fm.intel.com with ESMTP; 22 Sep 2017 04:30:10 -0700 From: Ferruh Yigit To: Thomas Monjalon Cc: dev@dpdk.org, Adrien Mazarguil , Ferruh Yigit Date: Fri, 22 Sep 2017 12:30:07 +0100 Message-Id: <20170922113007.43385-1-ferruh.yigit@intel.com> X-Mailer: git-send-email 2.13.5 Subject: [dpdk-dev] [PATCH] ethdev: revert use device name from device structure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This reverts commit a1e7c17555e8f77d520ba5f06ed26c00e77a2bd1. Original commit assumes there is 1:1 mapping between physical device and ethdev port, so that device name can be used per port instead of ethdev name field. But one physical device may have multiple ethdev ports and each port needs its own unique name. One issue reported here: http://dpdk.org/ml/archives/users/2017-September/002484.html So reverting back the commit to continue using ethdev name field per port. Reported-by: Adrien Mazarguil Signed-off-by: Ferruh Yigit Acked-by: Adrien Mazarguil Acked-by: Thomas Monjalon --- lib/librte_ether/rte_ethdev.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 6016fd9be..c944b9fb1 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -177,11 +177,9 @@ rte_eth_dev_allocated(const char *name) unsigned i; for (i = 0; i < RTE_MAX_ETHPORTS; i++) { - if (rte_eth_devices[i].state == RTE_ETH_DEV_ATTACHED && - rte_eth_devices[i].device) { - if (!strcmp(rte_eth_devices[i].device->name, name)) - return &rte_eth_devices[i]; - } + if ((rte_eth_devices[i].state == RTE_ETH_DEV_ATTACHED) && + strcmp(rte_eth_devices[i].data->name, name) == 0) + return &rte_eth_devices[i]; } return NULL; } @@ -318,7 +316,7 @@ rte_eth_dev_count(void) int rte_eth_dev_get_name_by_port(uint8_t port_id, char *name) { - const char *tmp; + char *tmp; RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL); @@ -329,7 +327,7 @@ rte_eth_dev_get_name_by_port(uint8_t port_id, char *name) /* shouldn't check 'rte_eth_devices[i].data', * because it might be overwritten by VDEV PMD */ - tmp = rte_eth_devices[port_id].device->name; + tmp = rte_eth_dev_data[port_id].name; strcpy(name, tmp); return 0; } @@ -337,7 +335,6 @@ rte_eth_dev_get_name_by_port(uint8_t port_id, char *name) int rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id) { - int ret; int i; if (name == NULL) { @@ -346,13 +343,11 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id) } RTE_ETH_FOREACH_DEV(i) { - if (!rte_eth_devices[i].device) - continue; + if (!strncmp(name, + rte_eth_dev_data[i].name, strlen(name))) { - ret = strncmp(name, rte_eth_devices[i].device->name, - strlen(name)); - if (ret == 0) { *port_id = i; + return 0; } } @@ -435,8 +430,8 @@ rte_eth_dev_detach(uint8_t port_id, char *name) if (rte_eth_dev_is_detachable(port_id)) goto err; - snprintf(name, RTE_DEV_NAME_MAX_LEN, "%s", - rte_eth_devices[port_id].device->name); + snprintf(name, sizeof(rte_eth_devices[port_id].data->name), + "%s", rte_eth_devices[port_id].data->name); ret = rte_eal_dev_detach(rte_eth_devices[port_id].device); if (ret < 0)