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 61E1845952; Tue, 10 Sep 2024 09:59:47 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D0057427B0; Tue, 10 Sep 2024 09:59:41 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2085.outbound.protection.outlook.com [40.107.244.85]) by mails.dpdk.org (Postfix) with ESMTP id 6DEFB427A0; Tue, 10 Sep 2024 09:59:39 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AdlqYbA//78kpjQh1Y9bIoZ8nZfJANYRMkEq3JOJvEhiRt6tvP193AXpmuPZE9lS9aW9Mu5WdCoXzhLVf9GuNlY4v76MDb4kstJH0I88Uw4QIQPNuYTTmG7E22qnn/yhvrsz7cc9/i9aMsqjx7a4oT6zoieUxKYz8vj9L+jnG+yucFPf5GeiwWMJYLqUnXe4N5skjsLCU2F6CKd0mSPqwHC1a8utz5gzUtx/eBpJ2NHVLPw+Q5xpOfmENu/b6qD+bXS0GFLYPwh2DyiqZlAw13TfunDWLpRfel7cE3apKaVQdoTq64huQFCX/hLMvwVJzW9lfDkazhVkPUc5teFdeQ== 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=8HRQ1IMUho6Mt5wwHmtvS27iYNcrlcDwigWygTNtOGw=; b=UJeKb1iXAhlF4AVmgX/OP4o6SdzhpFb2MmtSBiUbQfaPnsamHYecR/cZSZga0+UG4KpfcJJCKWF1/Yq9Wmx0Ip/Sf7eWcfEUhGyflkEixXvs15JEYDN6cOOBnzPL3JEsjwm32RQ7FWNQMThkTIIZ1SUjXHHNaACO2y1ffakp5vhAWB6Ev6Cpr2Oy00UV/LIPkccHT8TsSCWgH7FM5KXhVKA9oNQS4eXC5R9t4Mn8d4KoXcu6CcOpUmEi7hTKJ/Gmfs1DesAc2mhXAid4UqEIL9B45PVEb7c2WyKI65ZrPVS/dtbi8eWBlCOa3vihRgVqLQXJL9ThPU9uSNEnYQhkPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=monjalon.net 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=8HRQ1IMUho6Mt5wwHmtvS27iYNcrlcDwigWygTNtOGw=; b=aBYyBYtfWU8wTWIRuuQEo4Ed6jKf5cWkJYCaWR11trunb1Cpkb6Qe2vbLXwTFir9mK5S+xRyffI0MYM+E2B8GGqBNFzvrf+CakqA8/wwonJ1AM2ldHkLZhCnuWesUh5XftnFsUS1b8C9LhmSfX4kfVOg3nRMXqhg9jDHVm22gj1ef7o5T2Lyj1Tw4iL7EkIjjU/JNiD2AZhix9CQ66lxiLVxOIOpPtJOuVCpAvtKaRy3+GPU6CBoxL0B4P3msSKS5vsApueKkOyGMpr0hl0OotXz9Jvjmo61nUxjsQEjslDTS6i0ekEQH7y/0Rpf2ddLj3nPgPNEUfxtiwRcRCIYvA== Received: from MN2PR06CA0020.namprd06.prod.outlook.com (2603:10b6:208:23d::25) by MN0PR12MB5809.namprd12.prod.outlook.com (2603:10b6:208:375::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.24; Tue, 10 Sep 2024 07:59:32 +0000 Received: from BL02EPF0001A0F9.namprd03.prod.outlook.com (2603:10b6:208:23d:cafe::d9) by MN2PR06CA0020.outlook.office365.com (2603:10b6:208:23d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.24 via Frontend Transport; Tue, 10 Sep 2024 07:59:32 +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 BL02EPF0001A0F9.mail.protection.outlook.com (10.167.242.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.13 via Frontend Transport; Tue, 10 Sep 2024 07:59:31 +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; Tue, 10 Sep 2024 00:59:18 -0700 Received: from nvidia.com (10.126.231.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; Tue, 10 Sep 2024 00:59:15 -0700 From: Gavin Li To: , , , , Dariusz Sosnowski , Bing Zhao , Suanming Mou , Alexander Kozyrev CC: , , "Minggang Li (Gavin)" , Subject: [PATCH V1 1/3] net/mlx5: set rte errno if malloc failed Date: Tue, 10 Sep 2024 10:58:51 +0300 Message-ID: <20240910075853.292823-2-gavinl@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240910075853.292823-1-gavinl@nvidia.com> References: <20240906102151.171965-4-gavinl@nvidia.com> <20240910075853.292823-1-gavinl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.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: BL02EPF0001A0F9:EE_|MN0PR12MB5809:EE_ X-MS-Office365-Filtering-Correlation-Id: f89493e0-ee2b-4167-966d-08dcd16e8110 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?FFCauLyCUGrTqH23hce/+i77O4feyb9LgUi73HjBsHMGapJU2PwAKTuyp4Lm?= =?us-ascii?Q?4OO7VHLEx1kxGwzuUlSKWH5xsA7s7ZNL5g5bdGdLNmV0wjkln74YDOyEWnc7?= =?us-ascii?Q?eyGeAV2PXkdBZFcW8tz/aWZCMhHhsRUQwPgMTnDzTkRy5RtUsRnS7DahCngN?= =?us-ascii?Q?fGDy50yqT7wLVI6kL2PnTCPNOPHRjFpA0mktqVl67hhnzdWe8krO24+fxteb?= =?us-ascii?Q?Gb+nHXHBBX7SaAS6RCwClY1h5p+ndpAJ8oQJcMwI1TkbXsMMRKH2dMX6aRAL?= =?us-ascii?Q?SrdSegPbfZk15RNUoz53VO1wxSIUJJ/mNgS5TCyvHcS7T+JAS2XIPWG6e2xn?= =?us-ascii?Q?yeJxKLTAVlKTzK0EyKgVOtcxbbf1WAQlaBAYk+iApMoEH7hNg2BszDlMWqnl?= =?us-ascii?Q?iO8fzgkQeuqgxp2NxDGST90kXS0hB5AbL2mqphsd2HhkuMdvWBJt7+BCK8AG?= =?us-ascii?Q?iFtsUAgNdhwTa755MaD1BCuhVmVAoXPYPARI1PZhokX7jKejkzr0CReoX03O?= =?us-ascii?Q?6TxXw2Ft+/fdGTfGa8UMZetyJBv2K52JOPZnyi8WEiNnDHoF/4s7hxd8pnpT?= =?us-ascii?Q?qF9QNlcQIOE6Si6by3Q4rVaW8D2rn0JhmqFXYpPLOR1qYsLRc327nEWjtRbm?= =?us-ascii?Q?XCctgWQ/mMQkJveCPceIEMnv3lWZHpY7j8raHHLsAvSZYvyRdi9H/kAFUiXL?= =?us-ascii?Q?D7U7G306tC68FyQhJQMbYvoJ2AX50RIYuOR+JjnDl3mR4vlPI/3xwERWRtvy?= =?us-ascii?Q?LWR2BxmcKh9I+U/Q/SOkae1PU4fwIcEsK+OJI+xNVOUE6IeB+d0taB9pYTMR?= =?us-ascii?Q?kMARTeMAlaFBdvQEX3+mvbVvc4DNoRbGDsz+XpFcWaCg73dx+g8tPIG+Ilok?= =?us-ascii?Q?mnh/3h2y51e851Zh1tiSx8dc0VRDPSrqmXVao8nxiF1Yj85fUqCktMSF5ldk?= =?us-ascii?Q?OFGIkDtcLBQqRG4MkOlwc0wz2x1nBA5EZ0+EsYwPrHbBz4NuOAYHI6JPLLnG?= =?us-ascii?Q?YSEhNVCoHd1h6/oVgxtdyjgGxxfT4/KtKhU5YxNYk6qoWtlTuRtkt64t9+B8?= =?us-ascii?Q?LABz85HadK6RGvb4gSNro83shP8z1Y7aOyKKBygM2oW/BPEf9wTDG8Lnnw1y?= =?us-ascii?Q?RT1XnX1++lc6re1Z68tmHtePOH2Fp6fTWkdGpNugGE+GY9nfKf3HewP7l2+b?= =?us-ascii?Q?AE408SDtGQAe5m0uYLPM2UJTpMf8673mprKvh4vJha7k86eQmlkmsfo5YGJ2?= =?us-ascii?Q?a2XJtLDs0srjviDx7vfCahLGFyYka661kE5hnij4g4pcp7p2BOQ9Oq3UdDmU?= =?us-ascii?Q?0kxtv3Yr0Xx9aG0TNAWSwUVE6PTeTlEQw3JUSTa1AEVvrraS5xHiIcUjQ9f6?= =?us-ascii?Q?AV/SSj/IBW7bZpw98wuOOqEzhP+0+x+H/l7AEpT44qJQdYF9Qff0bAkGo6TJ?= =?us-ascii?Q?H/YTyxBlMylEbQp5s7RG+c4q6O97fXQs?= 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)(82310400026)(376014)(1800799024)(36860700013); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2024 07:59:31.9692 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f89493e0-ee2b-4167-966d-08dcd16e8110 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: BL02EPF0001A0F9.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5809 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: "Minggang Li (Gavin)" rte_errno should be set if anything wrong happened in under layer so that user can figure out what's going on. There were some cases that did not set it when ipool allocation failed. To fix the issue, set rte_errno to ENOMEM if mlx5_ipool_malloc failed to allocate ID. Fixes: c40c061a02 ("net/mlx5: add basic flow queue operation") Fixes: 48fbb0e93d ("net/mlx5: support flow meter mark indirect action with HWS") cc: stable@dpdk.org Signed-off-by: Gavin Li Acked-by: Bing Zhao --- drivers/net/mlx5/mlx5_flow_hw.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index 50888944a5..509de2a6a4 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -1897,7 +1897,7 @@ flow_hw_meter_mark_alloc(struct rte_eth_dev *dev, uint32_t queue, const struct rte_flow_action_meter_mark *meter_mark = action->conf; struct mlx5_aso_mtr *aso_mtr; struct mlx5_flow_meter_info *fm; - uint32_t mtr_id; + uint32_t mtr_id = 0; uintptr_t handle = (uintptr_t)MLX5_INDIRECT_ACTION_TYPE_METER_MARK << MLX5_INDIRECT_ACTION_TYPE_OFFSET; @@ -1909,8 +1909,15 @@ flow_hw_meter_mark_alloc(struct rte_eth_dev *dev, uint32_t queue, if (meter_mark->profile == NULL) return NULL; aso_mtr = mlx5_ipool_malloc(pool->idx_pool, &mtr_id); - if (!aso_mtr) + if (!aso_mtr) { + rte_flow_error_set(error, ENOMEM, + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, + NULL, + "failed to allocate aso meter entry"); + if (mtr_id) + mlx5_ipool_free(pool->idx_pool, mtr_id); return NULL; + } /* Fill the flow meter parameters. */ aso_mtr->type = ASO_METER_INDIRECT; fm = &aso_mtr->fm; @@ -3918,8 +3925,10 @@ flow_hw_async_flow_create(struct rte_eth_dev *dev, return NULL; } flow = mlx5_ipool_malloc(table->flow, &flow_idx); - if (!flow) + if (!flow) { + rte_errno = ENOMEM; goto error; + } rule_acts = flow_hw_get_dr_action_buffer(priv, table, action_template_index, queue); /* * Set the table here in order to know the destination table @@ -3930,8 +3939,10 @@ flow_hw_async_flow_create(struct rte_eth_dev *dev, flow->idx = flow_idx; if (table->resource) { mlx5_ipool_malloc(table->resource, &res_idx); - if (!res_idx) + if (!res_idx) { + rte_errno = ENOMEM; goto error; + } flow->res_idx = res_idx; } else { flow->res_idx = flow_idx; @@ -4062,8 +4073,10 @@ flow_hw_async_flow_create_by_index(struct rte_eth_dev *dev, return NULL; } flow = mlx5_ipool_malloc(table->flow, &flow_idx); - if (!flow) + if (!flow) { + rte_errno = ENOMEM; goto error; + } rule_acts = flow_hw_get_dr_action_buffer(priv, table, action_template_index, queue); /* * Set the table here in order to know the destination table @@ -4074,8 +4087,10 @@ flow_hw_async_flow_create_by_index(struct rte_eth_dev *dev, flow->idx = flow_idx; if (table->resource) { mlx5_ipool_malloc(table->resource, &res_idx); - if (!res_idx) + if (!res_idx) { + rte_errno = ENOMEM; goto error; + } flow->res_idx = res_idx; } else { flow->res_idx = flow_idx; @@ -4210,8 +4225,10 @@ flow_hw_async_flow_update(struct rte_eth_dev *dev, nf->idx = of->idx; if (table->resource) { mlx5_ipool_malloc(table->resource, &res_idx); - if (!res_idx) + if (!res_idx) { + rte_errno = ENOMEM; goto error; + } nf->res_idx = res_idx; } else { nf->res_idx = of->res_idx; -- 2.34.1