From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 71250457A1 for ; Mon, 12 Aug 2024 15:00:25 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6BF9F4066D; Mon, 12 Aug 2024 15:00:25 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2066.outbound.protection.outlook.com [40.107.94.66]) by mails.dpdk.org (Postfix) with ESMTP id A7C7F40668 for ; Mon, 12 Aug 2024 15:00:23 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FkHxzjCqbsZnCq3hmkW0A7n4skliNq08iti1oHB2LLUct7SOuSGQ4gd9BJ1vx+zL1oZPqXgLwamGHxXqYSrVMCtFCPGDEYEKjUg5ZDC2JT9KJRnwFsKsuVmQxrRxoSh9I3dCNR2MrmhTHEF+hAKv8F3BLIKsdeOIwj278429lXGl6AGhMu48f/lV6CIMF++IK/n8Snbb6IbY/JzPDeIWT89QoS1RxwLmpiwIXBrmE649PwT42sdMnlA4ETPb2eWqs+A5Xq7FjahkTQU91bAZo3w21t8EvpVWui8xsDnQF3xcLiL/6QlyHaV6/UZbOliSNVFu8BIn8tfMe9EGBYbIhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3gww+WVc1Nx7M88CV6rvBYRjLlngmSHYV5a/swNwgMA=; b=EmGw8cyngr0CPNaeiCJoz3rF2Y5ZW8AV2OXGAN/6Uc6afgdmMbBb2OH2Oo0ZE8R8QSexyIPbb/RwkiV5J5jflxqEOjgORgZFEYvemoGXGkqlTSJT7RM5fjSF4H+k1WxVCDom2Ma53knU7DZT2x6JRMbLIdN+VXaFC6ZPFRKOWD/AaCPNfJEeVm9rp8uHjli9FrsW9UR0V1BEt6qmYR+aHNai0jHAtJkmwncgRVDAK6tgq7dS5VGdmsZs8eLs9apJrlI7Osr83B4Eoqww0sliN4xqOj8oQ9dshSCRExfwfanXctjkZmwY46CQHlw+V8zdKNw0Ry+JdjUi2kcAJBCDsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=corigine.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3gww+WVc1Nx7M88CV6rvBYRjLlngmSHYV5a/swNwgMA=; b=bXZPHZcseTu+0lM+3eKZYwqORlCmB5NLGtGd7DLhmNMTDVwpb4Hf3NqzCXAg7s9anw2b7L2AqnWaCIX3HlyCcFwXRuKMFVvBSGpfzeUhq9glpWv0aTixD/0x0hWhwqle6oQDXGsVlU0QbOS+MF/ky7xFE7Yx7Q/LAF5dUMDwYtOZLSNbQ2pMo9hoWboshTGGII3kniKEPI47oCL6v1oQXS3A8E9/zO+cOA1MlMM19Vn/03VBS6eDpj1VmrZR8OJfoVcXPndtmGHX8RiqjplUiIhCpJc7lsnkflfkLvPBnOqaBtHuz1Fy2Kn7EDlPCSKeujvR/9oYwUsEWubBQnLC7g== Received: from SJ0PR13CA0126.namprd13.prod.outlook.com (2603:10b6:a03:2c6::11) by SA0PR12MB7092.namprd12.prod.outlook.com (2603:10b6:806:2d5::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.20; Mon, 12 Aug 2024 13:00:17 +0000 Received: from CO1PEPF000042A7.namprd03.prod.outlook.com (2603:10b6:a03:2c6:cafe::18) by SJ0PR13CA0126.outlook.office365.com (2603:10b6:a03:2c6::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.22 via Frontend Transport; Mon, 12 Aug 2024 13:00:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000042A7.mail.protection.outlook.com (10.167.243.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.19 via Frontend Transport; Mon, 12 Aug 2024 13:00:16 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 12 Aug 2024 05:59:58 -0700 Received: from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 12 Aug 2024 05:59:55 -0700 From: Xueming Li To: Zerun Fu CC: , Chaoyong He , Long Wu , Peng Zhang , dpdk stable Subject: patch 'net/nfp: fix getting firmware version' has been queued to stable release 23.11.2 Date: Mon, 12 Aug 2024 20:49:36 +0800 Message-ID: <20240812125035.389667-100-xuemingl@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240812125035.389667-1-xuemingl@nvidia.com> References: <20240712110153.309690-23-xuemingl@nvidia.com> <20240812125035.389667-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000042A7:EE_|SA0PR12MB7092:EE_ X-MS-Office365-Filtering-Correlation-Id: 215d81d7-4967-4ad0-6666-08dcbaceb6af X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|82310400026|36860700013|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nRwMXEcWx/K2SOnAxY1fjHz1A7VAWzH9pvWFsmhA4kDvr66KGcXVtSyt+F1y?= =?us-ascii?Q?mh2O3+Dqdy+3ZHW9AHDEqbn0kxrMbMxl5ylKSsaoNyxV5Pp13FoQqVB3lhfg?= =?us-ascii?Q?HYXwnOdGHSOW9MS653nm68HLkXYcQTwZ8DM1VWxpVTRMs3Ap2zYcA5+h5/KX?= =?us-ascii?Q?PWTNdF19RLvIdqBWuAdHFXouz0ruTTycuJqhESMjrKEvgHIBlRLBJIs0Nh9D?= =?us-ascii?Q?iHnjdvyiCsLgRA69WonaRlOH2FHh8fPndPS0d1crts2z2j9B5VVC4jhbvlMK?= =?us-ascii?Q?oiL7RqbF54naBt66EPGimGjTPRpOs/nzWR/HdVH9vfrRjkleHhQ430afMA1A?= =?us-ascii?Q?5hiwlKo4lTUsSdJ/i9xLc4Pe+76BnY/NaKOkrfSdwOS8WpvccsnehdOOTAP7?= =?us-ascii?Q?9UpprWZ/3q018oWXe8uHR0i57wyYwWYT9FXeDrTEudbDrmmExXwbwN1Bo88c?= =?us-ascii?Q?z/q+QVpe3YjceAsgrHRyXepuX8u4Eg7Y0/whuXNlphyCDgv/pI67EEyny99L?= =?us-ascii?Q?XfYuYwJIGe0HKtPe+JSJqRZDxAETywNS38WBEzxEQE7BH2WJ1Klpcjn9V8po?= =?us-ascii?Q?LDnxxdpLsdOPPxtsC0yQ5PBH65FRKWhaX3DMjxN2vOSucVpeMXtCiAtC/EtD?= =?us-ascii?Q?BSbv/6r7qtezM+UoLl8DJSolcRIZNye8FroMfQ+GwmIn9wmjkDOHKviB/duN?= =?us-ascii?Q?nfGvYJUySBnH6CXD1aT0k4yN4gmjzGK2rqZ/43FEMT0NhwaJ8j097TyhcF0z?= =?us-ascii?Q?XR31NhPty0RohuZ8oa4+uosq/0X5vavZnprQz1gu2C+NUdPTjPBFd9MJlUnh?= =?us-ascii?Q?tjUK8MdhmGSYDbDSUJlkfpP3fwCzyHDCF/s9qfOq8iisjjoRP0E/gOEBBtvh?= =?us-ascii?Q?DtpjAfUBorDq1Qrl/cFIiouOfnabXUDnNfHXwCf/OX9/kHbK+M9si0HzgM0j?= =?us-ascii?Q?SIaUHfREDi2cogstzLo8l3kvhW1QK1UT//TtH7tGy7Fd/pyFLZXaEOvtGnyU?= =?us-ascii?Q?cITjo+mTFhNNLI8SZKcNVeTkkcELiX4E0V6FrV7OqdOrQ/FXo25/BVAm91q8?= =?us-ascii?Q?lDCsd7zQJnHg46QISWS39JXqSRufSTVrQKu7fysJBpx8sjOxfvJ90zG9YkWC?= =?us-ascii?Q?llVCeKCuoO0j95J2iTKvXDGXWX7QynM11vyMj4K88QLFwng3scnNrAe8LOC8?= =?us-ascii?Q?7f4wB64d1YMuJNveSWeNqOA+thvI2ryUVwhNxmx7WdNGZUSCso8Q2iA/Ay5P?= =?us-ascii?Q?v7opG9gxCBhiYz1na3DJVEv8tzyLsU92Tb4RpnPpc76ZexOVK7fcYvAFUNgd?= =?us-ascii?Q?pzBX1quYIQHsV67k/GBY2vrJV76iRcZOODIKPoJ0M1mOi3oNqAC+bDkdC9HK?= =?us-ascii?Q?18BzvTWRzCUdAhy2vnY2k1b6y6qeNhF/D/rVtyBO/VsnMq5pz5o8snkHO8c5?= =?us-ascii?Q?uq8JvvLDATBJ+0PBnJnEBu7IK4B0YGjn?= X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2024 13:00:16.8870 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 215d81d7-4967-4ad0-6666-08dcbaceb6af X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000042A7.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7092 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 23.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/14/24. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=174b2b5a9a3d6892847cbe2901bb77c8cac69d89 Thanks. Xueming Li --- >From 174b2b5a9a3d6892847cbe2901bb77c8cac69d89 Mon Sep 17 00:00:00 2001 From: Zerun Fu Date: Mon, 24 Jun 2024 09:57:18 +0800 Subject: [PATCH] net/nfp: fix getting firmware version Cc: Xueming Li [ upstream commit b7adbb2efe98eccb60ea7a7cfc1cff6ae3c5fbc8 ] The original logic try to get the NSP resource every time the application call 'rte_eth_dev_fw_version_get()' interface, there are chances the NSP resource busy and fail to get it. And because the local string variables not initialized, there will be out of range problem when it fail to get the NSP resource. Fix this by initializing the local string variables and storing the firmware version string once we get it. Fixes: 128c8ad951bf ("net/nfp: support getting firmware version") Signed-off-by: Zerun Fu Reviewed-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_net_common.c | 26 ++++++++++++++++++-------- drivers/net/nfp/nfp_net_common.h | 6 ++++++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c index effb104af5..0491912bd3 100644 --- a/drivers/net/nfp/nfp_net_common.c +++ b/drivers/net/nfp/nfp_net_common.c @@ -189,9 +189,6 @@ nfp_net_notify_port_speed(struct nfp_net_hw *hw, nfp_net_link_speed_rte2nfp(link->link_speed)); } -/* The length of firmware version string */ -#define FW_VER_LEN 32 - /** * Reconfigure the firmware via the mailbox * @@ -2063,16 +2060,21 @@ nfp_net_firmware_version_get(struct rte_eth_dev *dev, size_t fw_size) { struct nfp_net_hw *hw; - char mip_name[FW_VER_LEN]; - char app_name[FW_VER_LEN]; - char nsp_version[FW_VER_LEN]; - char vnic_version[FW_VER_LEN]; + char app_name[FW_VER_LEN] = {0}; + char mip_name[FW_VER_LEN] = {0}; + char nsp_version[FW_VER_LEN] = {0}; + char vnic_version[FW_VER_LEN] = {0}; if (fw_size < FW_VER_LEN) return FW_VER_LEN; hw = nfp_net_get_hw(dev); + if (hw->fw_version[0] != 0) { + snprintf(fw_version, FW_VER_LEN, "%s", hw->fw_version); + return 0; + } + if ((dev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR) == 0) { snprintf(vnic_version, FW_VER_LEN, "%d.%d.%d.%d", hw->ver.extend, hw->ver.class, @@ -2085,8 +2087,16 @@ nfp_net_firmware_version_get(struct rte_eth_dev *dev, nfp_net_get_mip_name(hw, mip_name); nfp_net_get_app_name(hw, app_name); - snprintf(fw_version, FW_VER_LEN, "%s %s %s %s", + if (nsp_version[0] == 0 || mip_name[0] == 0) { + snprintf(fw_version, FW_VER_LEN, "%s %s %s %s", vnic_version, nsp_version, mip_name, app_name); + return 0; + } + + snprintf(hw->fw_version, FW_VER_LEN, "%s %s %s %s", + vnic_version, nsp_version, mip_name, app_name); + + snprintf(fw_version, FW_VER_LEN, "%s", hw->fw_version); return 0; } diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index 827aa2c0e2..41d59bfa99 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -38,6 +38,9 @@ #define NFP_BEAT_LENGTH 8 +/* The length of firmware version string */ +#define FW_VER_LEN 32 + /* * Each PF has corresponding word to beat: * Offset | Usage @@ -178,6 +181,9 @@ struct nfp_net_hw { struct nfp_net_tlv_caps tlv_caps; struct nfp_net_ipsec_data *ipsec_data; + + /** Used for firmware version */ + char fw_version[FW_VER_LEN]; }; static inline uint32_t -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-08-12 20:44:05.680993647 +0800 +++ 0099-net-nfp-fix-getting-firmware-version.patch 2024-08-12 20:44:02.385069351 +0800 @@ -1 +1 @@ -From b7adbb2efe98eccb60ea7a7cfc1cff6ae3c5fbc8 Mon Sep 17 00:00:00 2001 +From 174b2b5a9a3d6892847cbe2901bb77c8cac69d89 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit b7adbb2efe98eccb60ea7a7cfc1cff6ae3c5fbc8 ] @@ -16 +18,0 @@ -Cc: stable@dpdk.org @@ -28 +30 @@ -index 2260e7c66b..379335e210 100644 +index effb104af5..0491912bd3 100644 @@ -31 +33 @@ -@@ -193,9 +193,6 @@ nfp_net_notify_port_speed(struct nfp_net_hw *hw, +@@ -189,9 +189,6 @@ nfp_net_notify_port_speed(struct nfp_net_hw *hw, @@ -39 +41 @@ - * Reconfigure the firmware of VF configure + * Reconfigure the firmware via the mailbox @@ -41 +43 @@ -@@ -2250,11 +2247,11 @@ nfp_net_firmware_version_get(struct rte_eth_dev *dev, +@@ -2063,16 +2060,21 @@ nfp_net_firmware_version_get(struct rte_eth_dev *dev, @@ -49 +50,0 @@ - struct nfp_net_hw_priv *hw_priv; @@ -57 +58 @@ -@@ -2262,6 +2259,11 @@ nfp_net_firmware_version_get(struct rte_eth_dev *dev, + @@ -59 +59,0 @@ - hw_priv = dev->process_private; @@ -66 +66 @@ - if (!rte_eth_dev_is_repr(dev)) { + if ((dev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR) == 0) { @@ -69,3 +69,3 @@ -@@ -2274,8 +2276,16 @@ nfp_net_firmware_version_get(struct rte_eth_dev *dev, - nfp_net_get_mip_name(hw_priv, mip_name); - nfp_net_get_app_name(hw_priv, app_name); +@@ -2085,8 +2087,16 @@ nfp_net_firmware_version_get(struct rte_eth_dev *dev, + nfp_net_get_mip_name(hw, mip_name); + nfp_net_get_app_name(hw, app_name); @@ -88 +88 @@ -index 4bf7453512..bebb754ced 100644 +index 827aa2c0e2..41d59bfa99 100644 @@ -91,3 +91,3 @@ -@@ -50,6 +50,9 @@ - RTE_ETH_RSS_NONFRAG_IPV6_UDP | \ - RTE_ETH_RSS_NONFRAG_IPV6_SCTP) +@@ -38,6 +38,9 @@ + + #define NFP_BEAT_LENGTH 8 @@ -101 +101,2 @@ -@@ -255,6 +258,9 @@ struct nfp_net_hw { +@@ -178,6 +181,9 @@ struct nfp_net_hw { + struct nfp_net_tlv_caps tlv_caps; @@ -103,2 +104 @@ - /** Used for rte_flow of CoreNIC firmware */ - struct nfp_net_priv *priv; + struct nfp_net_ipsec_data *ipsec_data;