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 BE23A42D46 for ; Sun, 25 Jun 2023 08:40:14 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B448F40ED8; Sun, 25 Jun 2023 08:40:14 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2056.outbound.protection.outlook.com [40.107.92.56]) by mails.dpdk.org (Postfix) with ESMTP id 8042640A7F for ; Sun, 25 Jun 2023 08:40:13 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IfZQ/HH2cL6cgX4FBallG+Y9OgN9EUPPQuqUvvNKl7B4sG6Sn4AC3QjZAgf0uQJ/surTX/A0qrPpE3THGcXm2FfxIpggQO5On9BVgcwdPn/wUA6u9fxeThULJKfzlBSmXnavAIl7VHpd7dmjGEi8+lXFNyOAqMtCqKT4y6QCGYnr2MjPNVJVsXTUvqJkRZuRbgDsgfXpHke6VFrTnaYKksnGk9uwfl211o+zbwQYAtfX/7ezFfqemteHZzsb5GDJrnc2I0I4+m4YdHm/IkXTJlz6AelonEyjEWi4nrt4BCsKWu7PTEhEw7C5V9KgKFY2U+gVEGLiOqEhCGWLn9gtow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=NAN5Etl68wGAb1spxPw3GkCLPCR4c5eu+sx4xH9o9YM=; b=YeWA7yAOeCaaJUEWJwYCpVLOYSTFEgSPXUOocxToDX4VKRWeYrRlThpmIgLoORa/AUDyxmnRU80fPcXPOm+lGCZIsS+6W1co6OKBG0si5OCfel2Ek1ki85HRy/PQq/p/fkmBABTiHVrK/VGDSXrHjrNHuV96KcYT5xqx0ZWMoEUed6bZflWmiaCwSkrUjtrv3hfhxfGRy3/6kLBuHKeUr6ZG3eFLIr6xMJ5EXaiLKGYzRtnDQKDifZw+XJbUs7G+6vd7GatdVCL1y36m9DIcb9No77BJXNhKTSsnuZH1XGKudYMVt/g1LW1XB82WupTr4K1wYHwHsOulIi7s+Y0C/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=huawei.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 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=NAN5Etl68wGAb1spxPw3GkCLPCR4c5eu+sx4xH9o9YM=; b=n4DmyMq/gTN9V4Su8IXoJ6twJwX/T4EYFfb9hg3EymF5iTHyPa27qEOjimXocD7Ht6rxODsf/ozCnX1wMUY/FRYPfUK2O0tleKj8lpSAygUuGmysHzIybCZh23CH98XkM4hBmitq30t8nLTtyf8XKuTY4MjgZWMXk18uTEgmwp8o9D+gWMqXGk7Ba5yCPv6bktweXZBLF+HZmyVi9NEXDRkowo101E2x+uAenhHZfqomgjaEpU4DVJp1fOxMwinVBKi9Mo11B/UjGMMUwxBAm7fNDQo71uDmYHbFzjoc150UFuT4EL39Eu3oYLvRHf5Y1t+bvQkyG154FJrBeEttow== Received: from DS7PR03CA0209.namprd03.prod.outlook.com (2603:10b6:5:3b6::34) by CH3PR12MB9249.namprd12.prod.outlook.com (2603:10b6:610:1bc::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Sun, 25 Jun 2023 06:40:11 +0000 Received: from DM6NAM11FT071.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3b6:cafe::95) by DS7PR03CA0209.outlook.office365.com (2603:10b6:5:3b6::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.32 via Frontend Transport; Sun, 25 Jun 2023 06:40:11 +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 DM6NAM11FT071.mail.protection.outlook.com (10.13.173.48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.47 via Frontend Transport; Sun, 25 Jun 2023 06:40:10 +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.986.5; Sat, 24 Jun 2023 23:39:59 -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.986.37; Sat, 24 Jun 2023 23:39:58 -0700 From: Xueming Li To: Jie Hai CC: Dongdong Liu , dpdk stable Subject: patch 'net/hns3: fix FEC mode check' has been queued to stable release 22.11.3 Date: Sun, 25 Jun 2023 14:34:23 +0800 Message-ID: <20230625063544.11183-46-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230625063544.11183-1-xuemingl@nvidia.com> References: <20230625063544.11183-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: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT071:EE_|CH3PR12MB9249:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f98ca72-e7db-4c5b-12a5-08db75470634 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SSMXtynQuqbtnhAfOFY95kvRIJlEqbCX203ENyUCFlAtFSTNYQC665oRuKGECe8sCKbYZ6UZPKwKp33Yp9CmB//fYsrsHlmTV+eyfoeHFFwJd25viy8cWYDjohCwnk7Y3nJQKfYwIsuA41g/M4VLL3eHxbkhq6rygg73fY/kbmnCeYtWZRUQGWmzahD+ZNzTwmB50MvnJ0/4AEoMY4VG+C/Ie5BxCPIsbKNhBl8rfE/AerYmbg/fhAByLTy1/c34mqWvTjRPrRa0w79vdc7hx0BUuCZb3XfdV2zzofCsoen6RSId0A63PVYvEZjdPylYC/+oIrt0+Ou5PqdNLviQwiTvYLUq+PbH8lpCpKOfqv4QTHON1HYUT18fJkKEHVhnsV2zs5FDRYEUXPYHVFlU40GB30ACPKB/+oquH1cSJvBzs/eu7rodEYGjTWsjxJMPEL6Q6IkDi7KS9lKLWdZcbQ/wfqLafAvwdM+K57vJ4FQ1CuTtr6ISXCqfwLSshJMZBJcW/PbGGFw1oLL/jOCLsnLwcTjPAVodF2Ei3bagMbUbgBpsU2S/xNlm0oaY3LMIpa4cudQNsKMsiRih1M0g20nMb6QlrarPVdTNj6Y1gZefEWk2qkF9vLZQc8UCjwih+HYYCwUr2G4FNWoUdfioIJ1FguStDVuLGoZoju5xbajDPzAH+hbzwZF9FkJS17AHeiFH/02+VXe9A1Ju8WFTlG8LbBCaYlfkvddlKsl9tGOkeqNHBJUyq1yWUoUZa2veLLh4og4WPpAX2PfqGowkHA== 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:(13230028)(4636009)(346002)(376002)(396003)(136003)(39860400002)(451199021)(40470700004)(46966006)(36840700001)(36860700001)(82310400005)(47076005)(966005)(478600001)(7696005)(6666004)(54906003)(2616005)(426003)(83380400001)(336012)(53546011)(1076003)(26005)(6286002)(186003)(16526019)(2906002)(5660300002)(40460700003)(36756003)(70206006)(356005)(4326008)(7636003)(70586007)(82740400003)(55016003)(40480700001)(8936002)(8676002)(41300700001)(316002)(86362001)(6916009); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2023 06:40:10.8698 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f98ca72-e7db-4c5b-12a5-08db75470634 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: DM6NAM11FT071.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9249 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 22.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/27/23. 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=22.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=340cb03d7f29a6e71872e5754bb351f250cc97c3 Thanks. Xueming Li --- >From 340cb03d7f29a6e71872e5754bb351f250cc97c3 Mon Sep 17 00:00:00 2001 From: Jie Hai Date: Sat, 8 Apr 2023 10:27:34 +0800 Subject: [PATCH] net/hns3: fix FEC mode check Cc: Xueming Li [ upstream commit 0cf0f931267ae751c503dba929307bb2a6acbbfa ] The function is_fec_mode_one_bit_set() is used to check whether the binary of the mode from user only contains one '1'. But it uses the bytes number this mode variable occupied to calculate the count. So this patch uses __builtin_popcount() to replace it. This patch also extracts the code for verifying mode parameter into a function. Fixes: 9bf2ea8dbc65 ("net/hns3: support FEC") Signed-off-by: Jie Hai Signed-off-by: Dongdong Liu --- drivers/net/hns3/hns3_ethdev.c | 50 ++++++++++++++++------------------ 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c index f4728f4a41..dc518c5814 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c @@ -6171,52 +6171,50 @@ get_current_speed_fec_cap(struct hns3_hw *hw, struct rte_eth_fec_capa *fec_capa) return cur_capa; } -static bool -is_fec_mode_one_bit_set(uint32_t mode) -{ - int cnt = 0; - uint8_t i; - - for (i = 0; i < sizeof(mode); i++) - if (mode >> i & 0x1) - cnt++; - - return cnt == 1 ? true : false; -} - static int -hns3_fec_set(struct rte_eth_dev *dev, uint32_t mode) +hns3_fec_mode_valid(struct rte_eth_dev *dev, uint32_t mode) { #define FEC_CAPA_NUM 2 struct hns3_adapter *hns = dev->data->dev_private; struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(hns); - struct hns3_pf *pf = &hns->pf; struct rte_eth_fec_capa fec_capa[FEC_CAPA_NUM]; - uint32_t cur_capa; uint32_t num = FEC_CAPA_NUM; + uint32_t cur_capa; int ret; - ret = hns3_fec_get_capability(dev, fec_capa, num); - if (ret < 0) - return ret; - - /* HNS3 PMD only support one bit set mode, e.g. 0x1, 0x4 */ - if (!is_fec_mode_one_bit_set(mode)) { - hns3_err(hw, "FEC mode(0x%x) not supported in HNS3 PMD, " - "FEC mode should be only one bit set", mode); + if (__builtin_popcount(mode) != 1) { + hns3_err(hw, "FEC mode(0x%x) should be only one bit set", mode); return -EINVAL; } + ret = hns3_fec_get_capability(dev, fec_capa, num); + if (ret < 0) + return ret; /* * Check whether the configured mode is within the FEC capability. * If not, the configured mode will not be supported. */ cur_capa = get_current_speed_fec_cap(hw, fec_capa); - if (!(cur_capa & mode)) { - hns3_err(hw, "unsupported FEC mode = 0x%x", mode); + if ((cur_capa & mode) == 0) { + hns3_err(hw, "unsupported FEC mode(0x%x)", mode); return -EINVAL; } + return 0; +} + +static int +hns3_fec_set(struct rte_eth_dev *dev, uint32_t mode) +{ + struct hns3_adapter *hns = dev->data->dev_private; + struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(hns); + struct hns3_pf *pf = &hns->pf; + int ret; + + ret = hns3_fec_mode_valid(dev, mode); + if (ret != 0) + return ret; + rte_spinlock_lock(&hw->lock); ret = hns3_set_fec_hw(hw, mode); if (ret) { -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-06-25 14:31:59.723325400 +0800 +++ 0045-net-hns3-fix-FEC-mode-check.patch 2023-06-25 14:31:58.365773900 +0800 @@ -1 +1 @@ -From 0cf0f931267ae751c503dba929307bb2a6acbbfa Mon Sep 17 00:00:00 2001 +From 340cb03d7f29a6e71872e5754bb351f250cc97c3 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit 0cf0f931267ae751c503dba929307bb2a6acbbfa ] @@ -15 +17,0 @@ -Cc: stable@dpdk.org @@ -24 +26 @@ -index 94eadefb8e..4e8efa468d 100644 +index f4728f4a41..dc518c5814 100644 @@ -27 +29 @@ -@@ -6139,52 +6139,50 @@ get_current_speed_fec_cap(struct hns3_hw *hw, struct rte_eth_fec_capa *fec_capa) +@@ -6171,52 +6171,50 @@ get_current_speed_fec_cap(struct hns3_hw *hw, struct rte_eth_fec_capa *fec_capa)