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 BA0CA438CF for ; Mon, 15 Jan 2024 13:13:50 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AB21C4067B; Mon, 15 Jan 2024 13:13:50 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2045.outbound.protection.outlook.com [40.107.223.45]) by mails.dpdk.org (Postfix) with ESMTP id 51C2F402C9; Mon, 15 Jan 2024 13:13:48 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jT8LF8e6REOtP5g5p4+mw8sNCXBUrCJMKGXxS6zHya6o247aTXjbdlLlJX09Bg1LZdvTWY/pmqThMfb8MHdBIKQGmex8z7h1Ky5xY0B8tB6kQHX98Y4NVBGbF/rbgV3C9vKaN1RVMzXJ1bxg7ZiEnc6JHUXWPQ3wPXXEIoGGYe2JEgn9EmgYU1jePxoKlxGLp2qgN0AGa6lGB6QOMOZtEcnNZ480e5/SsFq6JkRQB5+kgO9ZtDD+2sRC1sVvVq/i7Z2lps3y1uO9TmHHf5R5ZBOsLgTKBpheDjh+nkjOSIM9M0Ctjb7VS++gay5PpTKeigSwFxrflqIuhvvWXZ+GWw== 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=KnkRsI7SRYjfUgZDKgjawpf1FgzoascK1wZmihkmGcc=; b=PI9NlXlyPCxKJfytPm2jHj/nGdEpTfiwDrHtCyqXNkBsIeeFSx41FB4EeY5jENRJPh0oc4kerMf9O8ABe2Hf03nxeuVRw9zn+wqlfynFjF1aMGW5FtNc/Jwv0Dt5ELC7vUYb4h55Nk0eA2qhAY0P1WJXRKy72AHIRAE15uz7wqwgNi1BzpedMZ5k30S+d/Tcj57vJJRuH0NeyfT7Jh46cOFn7/nQafzDuu0rtR/3WAnFQVzOSMux8KAGJGStsZhR6zSOWevfp2Oywn434kn7g3+7kB+ktpFBaldt9fFSPgWNjYK8WEa4qJa9cWgUOKugfXLKs2d6RvqysDji5DQwtw== 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=KnkRsI7SRYjfUgZDKgjawpf1FgzoascK1wZmihkmGcc=; b=DBFztbX9lJIptEvwFGlvHub52IWFoXQQgcBb3LUoz+rOAN/6xwegOsfvBuG0JcYaaQbYl0k/vNbXuYzda1etgp0YhQKQixIua2y/PfmWdDaJ94KUtQL7KLFW4yCQD4gQoyjZOnwdh0CMRMiFZkDOnyCdJ7b1x7GNc2C9SjexDvpL+jntvjpkEdlT7p/Wy7tvvJMjrw5yy2wTs1PD7x1IyaKDC2extYPaDQXDpqONQRm53x7cIx/0lHMpjnA4TeANYTX4aXviEWscWFuIrmp8mlqgDqOOCiEPlXunwWAQecvdOnycpZV5jtsSDikm+wq+SzPHy/POQcflobRivPw1zA== Received: from DS7PR03CA0048.namprd03.prod.outlook.com (2603:10b6:5:3b5::23) by IA1PR12MB6435.namprd12.prod.outlook.com (2603:10b6:208:3ad::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.17; Mon, 15 Jan 2024 12:13:44 +0000 Received: from DS3PEPF000099D4.namprd04.prod.outlook.com (2603:10b6:5:3b5:cafe::2b) by DS7PR03CA0048.outlook.office365.com (2603:10b6:5:3b5::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.26 via Frontend Transport; Mon, 15 Jan 2024 12:13:44 +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 DS3PEPF000099D4.mail.protection.outlook.com (10.167.17.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.16 via Frontend Transport; Mon, 15 Jan 2024 12:13:44 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Mon, 15 Jan 2024 04:13:34 -0800 Received: from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 15 Jan 2024 04:13:33 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41 via Frontend Transport; Mon, 15 Jan 2024 04:13:31 -0800 From: Michael Baum To: CC: Matan Azrad , Dariusz Sosnowski , Raslan Darawsheh , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , , Subject: [PATCH] net/mlx5: fix GENEVE TLV option management Date: Mon, 15 Jan 2024 14:13:26 +0200 Message-ID: <20240115121326.3994845-1-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF000099D4:EE_|IA1PR12MB6435:EE_ X-MS-Office365-Filtering-Correlation-Id: c58de1b7-6af5-4e39-e371-08dc15c36b97 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SjnHzSXe1XnYihAJHH+C9jsVIU1nWDI5JwTr5wvjw4PSwDD64ZTyc6ixRIHUMSsClZdvsxAYYXvobajmrljCBYUltx7IRUqpoVK3EZVudoL71igYbobarPdeUwyBgd/TvJWDM6nqDtnP9f8u8WyVs2NnfNz6vuHG8RKhlKfcPxcDyTmgkN7rTkxhnFjexiiDKyFGwrtOngLmrGKQh+GXOgyp7xcAz13ACBFS5zWhvmvQiN2QOJdbFBugHE2J7YgsD5M+5TBTAUGNrcZga16uSsIXYksdps7oqW/nbbU4QP2nCsMgNYImYBZZf/I6lps25FVVLOkyxV+eJuW7ogwxQyxdEWHudEn0WWesboHN8HWP/BzmfWOKH4T9mOjdXVx4FRdaQv/1aLN/PiMAxa/4iD4M5we0NRU51nvlpZzutHSF3TyR66ExW0EESHfFrp28dEMp356xm9gTcuDM6Fa1+z7SuijTeWLpVuB5GkXpqNyTPSXLTFZWALGD/nmOAG2gmomh/HqfIBJLaaTBkQHgS0KcSIjcjF+mC+6maYampfgC0rk4ttZBEsHpV/z4VBy3O0CuvipAAmgjz7Q35plknskspqP+skTA2HSEWh15YA7U7BSZEi1UEc/Nb3s1h/oG4R9l1g/FM0GjhCHQbxxPXwOcis5UEOtiX+SNEIwYfXKA5xTp9T5/ZaWccCKR3doTGfZnrrqLmglqm+rKVkjyC/WHg0jUNeS+FBoBtiK5XYUNR3XHLCqnJQCZh9Wpob9Z 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)(4636009)(396003)(376002)(346002)(136003)(39860400002)(230922051799003)(1800799012)(82310400011)(64100799003)(451199024)(186009)(46966006)(40470700004)(36840700001)(55016003)(40480700001)(40460700003)(6286002)(4326008)(450100002)(70586007)(5660300002)(336012)(6916009)(478600001)(70206006)(7696005)(6666004)(8676002)(1076003)(8936002)(426003)(82740400003)(83380400001)(2616005)(26005)(36860700001)(316002)(356005)(7636003)(54906003)(36756003)(41300700001)(86362001)(47076005)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2024 12:13:44.6283 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c58de1b7-6af5-4e39-e371-08dc15c36b97 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: DS3PEPF000099D4.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6435 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 In SW steering, the GENEVE TLV option matching flows must be created using a translation function. This function checks whether this option has already created a DevX object for the matching and either creates the objects or updates the reference counter. After translation, a flag in flow structure is turned on indicating the destroy function to release this DevX object. When the flow rule has meter, the rule may be split, and call translate function more than once per flow causing object reference counter to increase each time without updating the flow flag accordingly. This patch uses this flag as a reference counter which is increased every translation and indicates the destroy function how many destroy DevX to do. Fixes: f15f0c3806d0 ("net/mlx5: create GENEVE TLV option management") Fixes: e440d6cf589e ("net/mlx5: add GENEVE TLV option flow translation") Cc: shirik@nvidia.com Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow_dv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 97f55003c3..7cc1729145 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -14318,7 +14318,7 @@ flow_dv_translate_items_sws(struct rte_eth_dev *dev, * Avoid be overwritten by other sub mlx5_flows. */ if (wks.geneve_tlv_option) - dev_flow->flow->geneve_tlv_option = wks.geneve_tlv_option; + dev_flow->flow->geneve_tlv_option += wks.geneve_tlv_option; return 0; } @@ -15922,9 +15922,9 @@ flow_dv_destroy(struct rte_eth_dev *dev, struct rte_flow *flow) flow_dv_aso_ct_release(dev, flow->ct, NULL); else if (flow->age) flow_dv_aso_age_release(dev, flow->age); - if (flow->geneve_tlv_option) { + while (flow->geneve_tlv_option) { flow_dev_geneve_tlv_option_resource_release(priv->sh); - flow->geneve_tlv_option = 0; + flow->geneve_tlv_option--; } while (flow->dev_handles) { uint32_t tmp_idx = flow->dev_handles; -- 2.25.1