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 48232A00C3 for ; Mon, 28 Nov 2022 10:26:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 284474067C; Mon, 28 Nov 2022 10:26:19 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2044.outbound.protection.outlook.com [40.107.92.44]) by mails.dpdk.org (Postfix) with ESMTP id 1B97740156 for ; Mon, 28 Nov 2022 10:26:17 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ADmy7YVEwzn+BUTa2LYzUPxCU+PXzk3TCRwzj2r1PkPHUvOm/KVXSKhADypHrLBRAeVqwaoRgfRtRhhoLUV/0wCd/ornfIr2LAcFuDtfdefARrNYAaNpPh4+HoRTTSRr0XN/v95fpAV1Nqo1vtq8MOHg1FJzckbQhjTcP+ncUuvcVd+iVf//+aOP2QdypWjR25/GcNkqbsc3IKvMn1ivvFBaLFt7iDZ3nrRg7QflIukU7pWUoLSTanK1cTtfJqOB/HVahDznWcdux8sHosUdr92s3vTsbpUP3FBNFVxrcPWgDvNs29o8paXtFm3FFzHH3eORWZyjw5h6emFa9V9dLw== 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=RtTz1pkzHEQleIJn1Op2nrmtKGJNIWMhxA+cx2fLat0=; b=UbiYIVgmnNuOCCrM/NbcTPPU5X1E1fWezPZqU38zZNxrYUyzpe5+znlJ+77ej9VnphpsViO4qZa/Z3z/Hk/zfJ2QCr7XP41n9CnkCDCq0b0qns/q6DgvK6ESMJIRpvdbt3hRxZKp42NH0N/V+yB8wD8p0Llp9yPoM7Gsy7thZoOVuHAK/pACRE3TSqPojU1RHmQiQ0i84bXs0gep57N5SB2mfAWxXwJwmOO/bJj23t+HI0irAnyOY2pt9zC+4EXhsWSj30M/VEvsha2hQJunefUWw15vb9+pc/hfjQjzP9j+N6300K0VzuCWEZR5jT9jasNS2MVmFXByxwb3S3ybmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=redhat.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=RtTz1pkzHEQleIJn1Op2nrmtKGJNIWMhxA+cx2fLat0=; b=aw5E39FFToYILRCOTSaSOdNaWLZHnngvV5c19vn0Fnw+PM4aOdvwhpK8TZgpsp7SIbGti9wg0QJckwL+NVJeuUTKLkgrvp56bib7rSRSodkUMCSw+3QesrTLJl/42h0Zpaq/qhsd6rH14irHK4pTRJwLEDpJffTZQCLQEFfE4+8U2pIc8EkF9IQKDrXU/o8yKWHErCJuaMjjbjex/FMx1Lu0TaHPxR8+J93UB1OoZOHNf5ziQQuo0kdqjgP643Tge1YPnLC8H5/7YKbI0BT55Nc9M+ysiCfySM0M2/hWrukrrnPjJu6dirhisDSjYfGNbQ7LEb6t1704Bj75cFJ6pw== Received: from DM6PR01CA0018.prod.exchangelabs.com (2603:10b6:5:296::23) by BL1PR12MB5189.namprd12.prod.outlook.com (2603:10b6:208:308::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Mon, 28 Nov 2022 09:26:15 +0000 Received: from DM6NAM11FT036.eop-nam11.prod.protection.outlook.com (2603:10b6:5:296:cafe::87) by DM6PR01CA0018.outlook.office365.com (2603:10b6:5:296::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18 via Frontend Transport; Mon, 28 Nov 2022 09:26:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by DM6NAM11FT036.mail.protection.outlook.com (10.13.172.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.22 via Frontend Transport; Mon, 28 Nov 2022 09:26:15 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Mon, 28 Nov 2022 01:26:06 -0800 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.36; Mon, 28 Nov 2022 01:26:04 -0800 From: Shun Hao To: , , Matan Azrad , Jiawei Wang CC: , , Subject: [PATCH 21.11] net/mlx5: fix assert when creating meter policy Date: Mon, 28 Nov 2022 11:25:50 +0200 Message-ID: <20221128092551.3666404-1-shunh@nvidia.com> X-Mailer: git-send-email 2.20.0 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: DM6NAM11FT036:EE_|BL1PR12MB5189:EE_ X-MS-Office365-Filtering-Correlation-Id: d92bea09-5341-4839-2129-08dad1229929 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KRREZwlGyhiKns8Sa7/8EMADU7YwClaj7ObMIn66hUZPtAMmiu2OIyRibwvQoFwPEzJD8Nz2gVVN9Dv4wcuiX2WNS9Q7pqm7CC0UZjRG4T80IN6mWvzAZGScjbJFRJKP8p5SnBTQ/7ItJAFmxNQMvG2sk1Wx2NLjaSiwxX1YbKIehW4QBBmzjgZowH3KWCyU8eoyCknAak0ekl0ubLAxbKd653rRMc/+buj7IyHAxb4Sl+3DeDgNMiEpz5a3mWQxSePsdALmnMOrEhPBxCp0z1eTv+0EvPS5ed5aCIaHq/Fo5NCysvDx8bv79s9zKxni0SDT8i+IkdPDPIap4aFscCyayuVCUAeFnFrqEZmI0+NY5hb8xzk3SA9kcIF/a2vaTig7cELMfPrQB19awZa1hpS+MhIik2LLCd0FR9g2eZqkbd4ugdic8LgIwfueD+4tmwIjMJlCrQeDaJ89LhSDUAB553SE7AFYtKvITc04M0vqOPgZgZAlZ7fbdZnHhAKp/OE/lGEKIHeQsX2Mh0e0MWrTl+81ahTDNeq47y6DvLTKO2ZZw1qnliEDkZm4TbLb8PAd0zt6rJxU+A4lNREIf3MmwM4wn2Xw+8OgyOhP0UsuQs8mC095lcm/IqZni7rhWaWp7mx+ojBnWuOlxTIxQhZwJkkDwlWt4w0NKCsV9tCQYNuQS1cq2T9/y/TCftlOyqq+CVCeihYC9iJ4yAW4Eg== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(376002)(346002)(136003)(396003)(39860400002)(451199015)(40470700004)(36840700001)(46966006)(47076005)(426003)(83380400001)(336012)(40460700003)(110136005)(54906003)(107886003)(6666004)(7696005)(6286002)(36756003)(356005)(55016003)(86362001)(7636003)(40480700001)(36860700001)(82740400003)(82310400005)(16526019)(1076003)(2616005)(186003)(5660300002)(8936002)(478600001)(26005)(6636002)(8676002)(70586007)(70206006)(41300700001)(4326008)(316002)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2022 09:26:15.3643 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d92bea09-5341-4839-2129-08dad1229929 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.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT036.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5189 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 [ upstream commit afb98009a0a55970851ba51c14a22bb2623ba1d5 ] When creating meter policy rules, it's possible to use flow items translation to add src port match criteria. Currently the items translation process needs to get thread workspace to store vport metadata tag, but in policy creation, the thread workspace was not initialized so it will cause assert failure. This patch adds initialization of thread-local workspace when creating meter policy rules to avoid that assert. Fixes: e9de8f33ca89 ("net/mlx5: fix source port checking in sample flow rule") Signed-off-by: Shun Hao Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow.c | 6 ++---- drivers/net/mlx5/mlx5_flow.h | 3 ++- drivers/net/mlx5/mlx5_flow_dv.c | 10 ++++++++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 1418631bc3..6921e5a927 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -64,8 +64,6 @@ tunnel_flow_group_to_flow_table(struct rte_eth_dev *dev, uint32_t group, uint32_t *table, struct rte_flow_error *error); -static struct mlx5_flow_workspace *mlx5_flow_push_thread_workspace(void); -static void mlx5_flow_pop_thread_workspace(void); /** Device flow drivers. */ @@ -7148,7 +7146,7 @@ flow_alloc_thread_workspace(void) * * @return pointer to thread specific flow workspace data, NULL on error. */ -static struct mlx5_flow_workspace* +struct mlx5_flow_workspace* mlx5_flow_push_thread_workspace(void) { struct mlx5_flow_workspace *curr; @@ -7185,7 +7183,7 @@ mlx5_flow_push_thread_workspace(void) * * @return pointer to thread specific flow workspace data, NULL on error. */ -static void +void mlx5_flow_pop_thread_workspace(void) { struct mlx5_flow_workspace *data = mlx5_flow_get_thread_workspace(); diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h index 7b5fde4823..c2dc60670d 100644 --- a/drivers/net/mlx5/mlx5_flow.h +++ b/drivers/net/mlx5/mlx5_flow.h @@ -1300,7 +1300,8 @@ struct mlx5_flow_driver_ops { }; /* mlx5_flow.c */ - +struct mlx5_flow_workspace *mlx5_flow_push_thread_workspace(void); +void mlx5_flow_pop_thread_workspace(void); struct mlx5_flow_workspace *mlx5_flow_get_thread_workspace(void); __extension__ struct flow_grp_info { diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index d4df5f8bca..3775063110 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -16577,8 +16577,11 @@ flow_dv_create_policy_rules(struct rte_eth_dev *dev, struct mlx5_flow_meter_policy *mtr_policy) { int i; + int ret = 0; uint16_t sub_policy_num; + struct mlx5_flow_workspace *wks = mlx5_flow_push_thread_workspace(); + RTE_SET_USED(wks); for (i = 0; i < MLX5_MTR_DOMAIN_MAX; i++) { sub_policy_num = (mtr_policy->sub_policy_num >> (MLX5_MTR_SUB_POLICY_NUM_SHIFT * i)) & @@ -16590,10 +16593,13 @@ flow_dv_create_policy_rules(struct rte_eth_dev *dev, mtr_policy->sub_policys[i][0], i)) { DRV_LOG(ERR, "Failed to create policy action " "list per domain."); - return -1; + ret = -1; + goto exit; } } - return 0; +exit: + mlx5_flow_pop_thread_workspace(); + return ret; } static int -- 2.20.0