From patchwork Wed Feb 21 03:23:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bing Zhao X-Patchwork-Id: 136941 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2699443B5A; Wed, 21 Feb 2024 04:24:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C56A240691; Wed, 21 Feb 2024 04:23:56 +0100 (CET) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2042.outbound.protection.outlook.com [40.107.100.42]) by mails.dpdk.org (Postfix) with ESMTP id EC03D40648; Wed, 21 Feb 2024 04:23:54 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fBA1gVkhEvma3tvY/sQAjwh5tI16x6bEEYqk4DI9emE4LNFJzc21ZQ3ImIzTYqx64gWol6DidKCD92cN8l0WIQPA30WGxsFWQxFjs+Eh8ImLjpPA5ZEUNrZ7Mq5cl5Eo1Mg8ejd6KKcf1ptoAtbG8nPBYniOotz4KfFAWO0iGcj6F6v/qnWU9o6+9hDNNpmO8R01Ry/Ra4KpCQQqIKCwWw3qYpURSWu+3dHxk8ajCUZtS9ZBm3e8w6uLYk0CeIUq3/nYvjP1rplbJyfOvcO5snT/y9P3FSaXSK6W5W9ZL9vdUuWzp6uSPxWfZFchcbs8XPArqnMoN7+9Hwo0MrBr1Q== 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=KC4rXXJ2t7JyMw59T4XxpwGoR9lQVDr3nbq73rOS9JM=; b=ffDUiI9pa82kbBEbgdkIqvLUzVV/2hfep6oTaXjQdDUDKzFLVAycl0zP+IonUnJay0qAsONjmOuONogMy8y0fi0vRgnoZzFx1n3r8iWaeZHDehLUK9Pi/Fwmv4Z6qcK2D841sQ18Kl89QtMc0oo5gujCzlpH6c3dnW+bj4pd26ppls/4CiOXMuMeY88zwOVOWeLyDvAmw1raxrSeDFH4H4wU4cyciRlXfB/ZpElTi4anVvEmivX9FLJ6WozhoZb1Mu+SOszgUxyMS1NFRKdHrNSetJIt18kzdOoY0um9ZTONe+W8wdeOTwQe6an3URCNZm0eXs/qspiz4fFcVxO5aw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org 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=KC4rXXJ2t7JyMw59T4XxpwGoR9lQVDr3nbq73rOS9JM=; b=ollr+CdHzFuu+fVyd2Cgr26uM2u9G+2Fj3oiSTAYpi2hnQ0lldWu/CSIlJQ0vCEEhym/vY2Wungb8Ck6svsuTqZI9lTsvPABjcDVdQYNNPdGsZw8Z6fNxZzB2hRC9wU+IIckj7hS/xyg4h4Har8VGtXJLPU03mJA7suZrfXIOdyTzA6pvJYJ5uuJGuzadmNXYrfQFrb5NZ6QOnLKh+wBjTbzNylrgNo8bO+a07UsGgaBcJaGuGXbyUBskxmOaMx8oYh7b07k77iJxaPtBmEXm6q7D7ugzo0fM1gU0snnzBl+oE0PN6C4pBmnjgBi6V2XR2K/4etUJEAXf4vT+tBglw== Received: from BY3PR10CA0023.namprd10.prod.outlook.com (2603:10b6:a03:255::28) by PH8PR12MB6722.namprd12.prod.outlook.com (2603:10b6:510:1cd::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.19; Wed, 21 Feb 2024 03:23:52 +0000 Received: from SJ5PEPF000001D0.namprd05.prod.outlook.com (2603:10b6:a03:255:cafe::61) by BY3PR10CA0023.outlook.office365.com (2603:10b6:a03:255::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.40 via Frontend Transport; Wed, 21 Feb 2024 03:23:52 +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 SJ5PEPF000001D0.mail.protection.outlook.com (10.167.242.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.25 via Frontend Transport; Wed, 21 Feb 2024 03:23:51 +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.41; Tue, 20 Feb 2024 19:23:40 -0800 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.1258.12; Tue, 20 Feb 2024 19:23:36 -0800 From: Bing Zhao To: , , CC: , , , , , Subject: [PATCH] net/mlx5: prevent querying aged flows on uninit port Date: Wed, 21 Feb 2024 05:23:22 +0200 Message-ID: <20240221032322.297332-1-bingz@nvidia.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D0:EE_|PH8PR12MB6722:EE_ X-MS-Office365-Filtering-Correlation-Id: 793ffce0-28e9-40e2-d595-08dc328c86e6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: w9w94PjMAcGcr+qZDFq1xgbPGJB5pD1+PxM6Paff03XbBCbl1o4pN5yA4ZXVqnR1eAsrPAFo1s+qJZVEuAJ9mIxei/MKnZjUAFrC7uIak2yPbDoPLrE+a/8aSHidjrF33dTLpuP4L9QEbVANw457KnylQFbfNhvC3rzO2ksrvBpd7meidi57eRLMEq4OZvwrvgt3yF4k7ifdwoClnIWbAOHoH0zBiSAzI+yIFrZguQpsTLyzreUCPtR53aDRlcA3yRvKMT7/MBY2hvK6Iin2tI1DMsvGq68dfJz0kS8sPoZnqnqG/o4dJZkL43r+WifNKK1OUvLVRasK2cr37UDlp1p0bFPE2cpuHCMzJgucf8h1j6QdLDPKM+22BHHihY6H3mUIAvXaVkdN7kWlt3Nkn6055WfN6Mh9CfQnOJp2aUx6iUq9Or8it14xh2spaFbsw5ym3ti7pic/oRDpHxgO/8ObbRP4GW5ML7/sdrksYikQZSV8YS6YmO87Th8/s2T0OCbm8XfwvOpzG3aF60aRhFtl3oEyk8+kFwyj9f46DyO1XjBgexVBW/o+RDxvvwE0Nu+u7tD5rD65OD8z/IE4tr/0h+q1UIGgScz8a+TKgq+2tfPPkleOeMM2zbeqSICrmLAxsciVkZUCX4SdZjr9MkeYZwA2rQsWNXW0C3y+ghM= 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:(13230031)(36860700004)(46966006)(40470700004); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2024 03:23:51.7977 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 793ffce0-28e9-40e2-d595-08dc328c86e6 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: SJ5PEPF000001D0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6722 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 In HWS template API, the aging mechanism doesn't support shared host mode now. When the guest's counter is set to 0, the aging won't be initialized. The current implementation didn't prevent the user from querying the aged flows on the uninitialized port. The access of invalid pointers would cause a crash. With this commit, the flag of the per port aging initialization will be checked. This would help to get rid of the invalid accessing. Fixes: 04a4de756e14 ("net/mlx5: support flow age action with HWS") Cc: michaelba@nvidia.com Cc: stable@dpdk.org Signed-off-by: Bing Zhao Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_flow_hw.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index 3bb3a9a178..0e6d6e02dd 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -10937,6 +10937,10 @@ flow_hw_get_q_aged_flows(struct rte_eth_dev *dev, uint32_t queue_id, return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL, "empty context"); + if (!priv->hws_age_req) + return rte_flow_error_set(error, ENOENT, + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, + NULL, "No aging initialized"); if (priv->hws_strict_queue) { if (queue_id >= age_info->hw_q_age->nb_rings) return rte_flow_error_set(error, EINVAL,