From patchwork Mon Mar 10 22:01:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010768 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2055.outbound.protection.outlook.com [40.107.220.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 015801D8DF6; Mon, 10 Mar 2025 22:02:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644178; cv=fail; b=daiOE6ImoF/QdVoAgZRBRVbY0T0rjw92uPorV2024KBxccUQFvYjavWmqEfKwcCYbckZFFtfvwiBXxUPHMnfLQdQ/gbHqRATEsT+XyZcW19UY6iC5A2B1DeWf9YBFlBNo8EeCQm8mCcdNVT4v4XfmK1/fwjQmLNKdAptTKwe5yY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644178; c=relaxed/simple; bh=KLSrgqVeZjrI+NomjMZVc/fkSJs4FnvIJZl27OMCVpU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UyedF6P78rjWgKxZgurkZi0ypEDRCfo8k2WFsyu+S1ih2PWNbwumzdn1B87cTtrPV44k8X2OC4NMr3DZoS8zF5CWwXoNmAfO1M7atgxR1vqej5Izh3KzKJqyXTtIojj0ehC6N8sq6y7EbNkvs8l1/0DECiSSteilGmfKCn5aNos= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=lVe8wg2h; arc=fail smtp.client-ip=40.107.220.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="lVe8wg2h" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r8hStYzUshO5J6DBgcxHi0XFsKCZCQxGeC89LjSX1dX/3G8SijjREPIep1uWfL2y0sAvD2ALJqt1fU1glh/LiuYEREqjx/e0XAZYm65KbASTWiiNhwe7KMYLTPpQ5KuJybsVhIoKC8ltP3eH0ZyZ2uvhFQDuHvXFm7n4dT0ALJYqNSwQTm0EWMoF5LBHpOOhkbvix8p943BtIo8gY0Hfqx8HlKt+1sxUlrAeeku2oiY4NBr5OMeSRCjEidfKBYzeTaqp+ycT6g9+knPiF+VlQcpXe/d89MtXktEWWHWFJaMEFOV+wyg6NL0J384bZnAyOXFHQOOMIC6PJn4o+zNF4g== 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=ALVgO+iOnpJPrqfdCDx+znnp0MLftOF5M7dv/Cphv7s=; b=i5zfHyfvvcYYA7uWPDtvKAr/IIqiMoKB2iuJpec2+7nlkVrZXeYKnZapiyKpMX0gYKGrEFZnkFBlRBHiRxRT5r0cDe3FSS2jgmzHMDZMbgRjD68M/8lbT5QzZ69LYYYsJoff0jPQ0AL+h1HfIpqRYcFbZHnahWeqg7NX2H2Wr2e5M6Sz4NfbT0+fJurL7GMGJjQeOFABMvLzvuOBH6W1SbZl7ZwB6yQsmU1DmTNRjEtLabJVWy3V6+KEUwXTRmzmx4jyhFv3iDH5zkrZaFXQ4z9k07JTLKjXJTlcKRCiEhuqH1JcEas4hCjYO/++ixOxSY8XUF+4tlHWg5DdLTjN3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=davemloft.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=ALVgO+iOnpJPrqfdCDx+znnp0MLftOF5M7dv/Cphv7s=; b=lVe8wg2h45DV4BiNwGIWWoaUl8XuKbMb5AyxzASBpkvZqX65pwNhivmxobqwNGv0VwUqux1AVoo+dW1a1G9ZxyKfxhd2Xoi0rXF2eR3mL3mgqMkYsx2EQdeVnUfIbHznv1Ii32ri/tVd4bI5lZgcckVmhnUFQl4cAhKO1Ts0JspxWcvkmpx8HSa3/I7zSKtpmLt916PPQJEc6gTaj13cQM203ehJpEIYEt9KkAVQkvMnu3P9+vtKZGfpswmpAgnTH9vxTveiDJW7CB0IOoCQw0Yx9wdBiGqvuRZTDGHuC/gGBwONUq/oGmKuA58hQOzJd/vFMeqtI5X8G0uf0GCo0g== Received: from SA0PR11CA0099.namprd11.prod.outlook.com (2603:10b6:806:d1::14) by DM3PR12MB9351.namprd12.prod.outlook.com (2603:10b6:8:1ac::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 22:02:51 +0000 Received: from SA2PEPF00003AE9.namprd02.prod.outlook.com (2603:10b6:806:d1:cafe::64) by SA0PR11CA0099.outlook.office365.com (2603:10b6:806:d1::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 22:02:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) 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.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SA2PEPF00003AE9.mail.protection.outlook.com (10.167.248.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 22:02:50 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 10 Mar 2025 15:02:45 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 10 Mar 2025 15:02:45 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 10 Mar 2025 15:02:41 -0700 From: Tariq Toukan To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn CC: Gal Pressman , Mark Bloch , "Moshe Shemesh" , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , , , , Yevgeny Kliteynik Subject: [PATCH net 1/6] net/mlx5: DR, use the right action structs for STEv3 Date: Tue, 11 Mar 2025 00:01:39 +0200 Message-ID: <1741644104-97767-2-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> References: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE9:EE_|DM3PR12MB9351:EE_ X-MS-Office365-Filtering-Correlation-Id: 2cc9a558-930a-4938-990b-08dd601f4cc8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: QBlR2BKYknq/cx1ctVBOFy3EhI5Bmaaeu7Aap0XUm3eW4NxwrWsTuNshSZ3vHClfEwFZglaoGI8fmpgO0m+38V8evaMeH3jq4D3aWKwzsJutiywCVk4fioARautpRnzmVyLQRzaeeq5ohmrBJCcbyU/bh33Y7ALmg0G7BjO5MDLMaWdestBc/DDi4tYP+0fXiSPd+Q/lZy0ZxQlO4gVLNEY2PMQFJ/dzwLQaUukaNAl7ofckJxqirRCTFHO6FfbvmId8u6LZHQGfMQoYKvVXp7YeJ6UEN1thtd1Z3K6ftD9NdzYm9cFjlT33vjvm/LZa3Frz0ZYvVAVc762mAgNacEMfgU2eabXfQABty4hacaolEfCSeOGpCf7WilzSON9xFthvE/pQol2kSYLTyvKt7Jzcs54jd3aSlyJKEU1Egsq4rduHgFTUtIWBD1akAZv9NYvRZh0O+eJ5fitFxRZAJmlL9scl9qJ761KvbROhMlCdropDW3xC2Y6++ZUYVJkm6wVUnPAwzDWspDEy3JAL/ePXf9WMgwS49iMRs3HQPN+4afZ15IpMqskldc7EfIf3DIJpIpqzFxsCaf2JHgeFnPvPoyf4hX93bcnQKLt3DBVFmaUvUTk0a5GZcBwhw6MC9DdIgup04nKXckDtQenCoYghO3mgCaqVaLlLtOdhnGE8mFIKmoI6IEaX51JVnAeN19INjlYsm7uqgoyE8R2LGjww3UfmM65x8+kR7Cs1S91mqz4HUsMLIK09A98tXYe8vShYAvn30xY9DAb3FZPY1WrWI4yiPfwj5zl7Zgd9aq0L/gxXonw/BJsYkomspM5Mv+A8AqDLxgT2MMcYRbrNZl2glt+TjVskblCKh+vGP8CaSHEgvEowhF+CM0ufRb/8uFfroPsVpkPhJlpAxZND4QfcmENkUf4mZa8EpSEESeSLL2epuP1f1v7+dKL8E+bpO3MRyaykrPrI/aIYBvARyUaHGnGeTT+obpnmupNOGZbYVYsl1svvXaYVNfQYBe4AJT1/WDHdso+iXpCuvkgzBZ576TDZcBYFrWzupqaEEu3jtkTa9IxRYjtSB+XXp6E3FVeja+5REfkDgRq/TxdyePph6o+vfB2yaq8jxVl9B5sZ7VX4wl8ZiSGYe2knPMv4YDQNrCO4VS9LCB5rWofOwo6owEAcWr0ajR6xWzAK1kUUaVnpLH0VZULAAJRaSORF6G2HGXB3VkP3DQQo14sNfE04DxZ5v1Z1dTdjuoSrvnDq+sX6MO9VJFgcOJCEWAhCgMtd9z1WnkXNEAEexF5x81mTittf66uWZLUfQ/D9gvkjgYTrjlr5dTMIvA0FdXDwSQACNh0hi1+86qkpoUxh24W0MvXpaRx7l4gkE1dwSSEsmbXWVDKeNdfgOxXegOCAm9LXyz8geaG9Eyub6GXM9JHtABT7OSqwbFnodqKJcmTpahVtin1QnLayLXLSa8Qg4HlR3Ab5WbLEOEbCeR+DVQdgYZq4+PCmK0eK9kzVOD0= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 22:02:50.4008 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2cc9a558-930a-4938-990b-08dd601f4cc8 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AE9.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9351 From: Yevgeny Kliteynik Some actions in ConnectX-8 (STEv3) have different structure, and they are handled separately in ste_ctx_v3. This separate handling was missing two actions: INSERT_HDR and REMOVE_HDR, which broke SWS for Linux Bridge. This patch resolves the issue by introducing dedicated callbacks for the insert and remove header functions, with version-specific implementations for each STE variant. Fixes: 4d617b57574f ("net/mlx5: DR, add support for ConnectX-8 steering") Signed-off-by: Yevgeny Kliteynik Reviewed-by: Itamar Gozlan Reviewed-by: Mark Bloch Signed-off-by: Tariq Toukan --- .../mellanox/mlx5/core/steering/sws/dr_ste.h | 4 ++ .../mlx5/core/steering/sws/dr_ste_v1.c | 52 ++++++++++--------- .../mlx5/core/steering/sws/dr_ste_v1.h | 4 ++ .../mlx5/core/steering/sws/dr_ste_v2.c | 2 + .../mlx5/core/steering/sws/dr_ste_v3.c | 42 +++++++++++++++ 5 files changed, 79 insertions(+), 25 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste.h b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste.h index 5f409dc30aca..3d5afc832fa5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste.h @@ -210,6 +210,10 @@ struct mlx5dr_ste_ctx { void (*set_encap_l3)(u8 *hw_ste_p, u8 *frst_s_action, u8 *scnd_d_action, u32 reformat_id, int size); + void (*set_insert_hdr)(u8 *hw_ste_p, u8 *d_action, u32 reformat_id, + u8 anchor, u8 offset, int size); + void (*set_remove_hdr)(u8 *hw_ste_p, u8 *s_action, u8 anchor, + u8 offset, int size); /* Send */ void (*prepare_for_postsend)(u8 *hw_ste_p, u32 ste_size); }; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.c index 7f83d77c43ef..6447efbae00d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.c @@ -266,10 +266,10 @@ void dr_ste_v1_set_encap(u8 *hw_ste_p, u8 *d_action, u32 reformat_id, int size) dr_ste_v1_set_reparse(hw_ste_p); } -static void dr_ste_v1_set_insert_hdr(u8 *hw_ste_p, u8 *d_action, - u32 reformat_id, - u8 anchor, u8 offset, - int size) +void dr_ste_v1_set_insert_hdr(u8 *hw_ste_p, u8 *d_action, + u32 reformat_id, + u8 anchor, u8 offset, + int size) { MLX5_SET(ste_double_action_insert_with_ptr_v1, d_action, action_id, DR_STE_V1_ACTION_ID_INSERT_POINTER); @@ -286,9 +286,9 @@ static void dr_ste_v1_set_insert_hdr(u8 *hw_ste_p, u8 *d_action, dr_ste_v1_set_reparse(hw_ste_p); } -static void dr_ste_v1_set_remove_hdr(u8 *hw_ste_p, u8 *s_action, - u8 anchor, u8 offset, - int size) +void dr_ste_v1_set_remove_hdr(u8 *hw_ste_p, u8 *s_action, + u8 anchor, u8 offset, + int size) { MLX5_SET(ste_single_action_remove_header_size_v1, s_action, action_id, DR_STE_V1_ACTION_ID_REMOVE_BY_SIZE); @@ -584,11 +584,11 @@ void dr_ste_v1_set_actions_tx(struct mlx5dr_ste_ctx *ste_ctx, action = MLX5_ADDR_OF(ste_mask_and_match_v1, last_ste, action); action_sz = DR_STE_ACTION_TRIPLE_SZ; } - dr_ste_v1_set_insert_hdr(last_ste, action, - attr->reformat.id, - attr->reformat.param_0, - attr->reformat.param_1, - attr->reformat.size); + ste_ctx->set_insert_hdr(last_ste, action, + attr->reformat.id, + attr->reformat.param_0, + attr->reformat.param_1, + attr->reformat.size); action_sz -= DR_STE_ACTION_DOUBLE_SZ; action += DR_STE_ACTION_DOUBLE_SZ; } else if (action_type_set[DR_ACTION_TYP_REMOVE_HDR]) { @@ -597,10 +597,10 @@ void dr_ste_v1_set_actions_tx(struct mlx5dr_ste_ctx *ste_ctx, action = MLX5_ADDR_OF(ste_mask_and_match_v1, last_ste, action); action_sz = DR_STE_ACTION_TRIPLE_SZ; } - dr_ste_v1_set_remove_hdr(last_ste, action, - attr->reformat.param_0, - attr->reformat.param_1, - attr->reformat.size); + ste_ctx->set_remove_hdr(last_ste, action, + attr->reformat.param_0, + attr->reformat.param_1, + attr->reformat.size); action_sz -= DR_STE_ACTION_SINGLE_SZ; action += DR_STE_ACTION_SINGLE_SZ; } @@ -792,11 +792,11 @@ void dr_ste_v1_set_actions_rx(struct mlx5dr_ste_ctx *ste_ctx, action = MLX5_ADDR_OF(ste_mask_and_match_v1, last_ste, action); action_sz = DR_STE_ACTION_TRIPLE_SZ; } - dr_ste_v1_set_insert_hdr(last_ste, action, - attr->reformat.id, - attr->reformat.param_0, - attr->reformat.param_1, - attr->reformat.size); + ste_ctx->set_insert_hdr(last_ste, action, + attr->reformat.id, + attr->reformat.param_0, + attr->reformat.param_1, + attr->reformat.size); action_sz -= DR_STE_ACTION_DOUBLE_SZ; action += DR_STE_ACTION_DOUBLE_SZ; allow_modify_hdr = false; @@ -808,10 +808,10 @@ void dr_ste_v1_set_actions_rx(struct mlx5dr_ste_ctx *ste_ctx, allow_modify_hdr = true; allow_ctr = true; } - dr_ste_v1_set_remove_hdr(last_ste, action, - attr->reformat.param_0, - attr->reformat.param_1, - attr->reformat.size); + ste_ctx->set_remove_hdr(last_ste, action, + attr->reformat.param_0, + attr->reformat.param_1, + attr->reformat.size); action_sz -= DR_STE_ACTION_SINGLE_SZ; action += DR_STE_ACTION_SINGLE_SZ; } @@ -2200,6 +2200,8 @@ static struct mlx5dr_ste_ctx ste_ctx_v1 = { .set_pop_vlan = &dr_ste_v1_set_pop_vlan, .set_rx_decap = &dr_ste_v1_set_rx_decap, .set_encap_l3 = &dr_ste_v1_set_encap_l3, + .set_insert_hdr = &dr_ste_v1_set_insert_hdr, + .set_remove_hdr = &dr_ste_v1_set_remove_hdr, /* Send */ .prepare_for_postsend = &dr_ste_v1_prepare_for_postsend, }; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.h b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.h index a8d9e308d339..591c20c95a6a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v1.h @@ -156,6 +156,10 @@ void dr_ste_v1_set_pop_vlan(u8 *hw_ste_p, u8 *s_action, u8 vlans_num); void dr_ste_v1_set_encap_l3(u8 *hw_ste_p, u8 *frst_s_action, u8 *scnd_d_action, u32 reformat_id, int size); void dr_ste_v1_set_rx_decap(u8 *hw_ste_p, u8 *s_action); +void dr_ste_v1_set_insert_hdr(u8 *hw_ste_p, u8 *d_action, u32 reformat_id, + u8 anchor, u8 offset, int size); +void dr_ste_v1_set_remove_hdr(u8 *hw_ste_p, u8 *s_action, u8 anchor, + u8 offset, int size); void dr_ste_v1_set_actions_tx(struct mlx5dr_ste_ctx *ste_ctx, struct mlx5dr_domain *dmn, u8 *action_type_set, u32 actions_caps, u8 *last_ste, struct mlx5dr_ste_actions_attr *attr, u32 *added_stes); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v2.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v2.c index 0882dba0f64b..d0ebaf820d42 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v2.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v2.c @@ -69,6 +69,8 @@ static struct mlx5dr_ste_ctx ste_ctx_v2 = { .set_pop_vlan = &dr_ste_v1_set_pop_vlan, .set_rx_decap = &dr_ste_v1_set_rx_decap, .set_encap_l3 = &dr_ste_v1_set_encap_l3, + .set_insert_hdr = &dr_ste_v1_set_insert_hdr, + .set_remove_hdr = &dr_ste_v1_set_remove_hdr, /* Send */ .prepare_for_postsend = &dr_ste_v1_prepare_for_postsend, }; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v3.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v3.c index cc60ce1d274e..e468a9ae44e8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v3.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v3.c @@ -79,6 +79,46 @@ static void dr_ste_v3_set_rx_decap(u8 *hw_ste_p, u8 *s_action) dr_ste_v1_set_reparse(hw_ste_p); } +static void dr_ste_v3_set_insert_hdr(u8 *hw_ste_p, u8 *d_action, + u32 reformat_id, u8 anchor, + u8 offset, int size) +{ + MLX5_SET(ste_double_action_insert_with_ptr_v3, d_action, + action_id, DR_STE_V1_ACTION_ID_INSERT_POINTER); + MLX5_SET(ste_double_action_insert_with_ptr_v3, d_action, + start_anchor, anchor); + + /* The hardware expects here size and offset in words (2 byte) */ + MLX5_SET(ste_double_action_insert_with_ptr_v3, d_action, + size, size / 2); + MLX5_SET(ste_double_action_insert_with_ptr_v3, d_action, + start_offset, offset / 2); + + MLX5_SET(ste_double_action_insert_with_ptr_v3, d_action, + pointer, reformat_id); + MLX5_SET(ste_double_action_insert_with_ptr_v3, d_action, + attributes, DR_STE_V1_ACTION_INSERT_PTR_ATTR_NONE); + + dr_ste_v1_set_reparse(hw_ste_p); +} + +static void dr_ste_v3_set_remove_hdr(u8 *hw_ste_p, u8 *s_action, + u8 anchor, u8 offset, int size) +{ + MLX5_SET(ste_single_action_remove_header_size_v3, s_action, + action_id, DR_STE_V1_ACTION_ID_REMOVE_BY_SIZE); + MLX5_SET(ste_single_action_remove_header_size_v3, s_action, + start_anchor, anchor); + + /* The hardware expects here size and offset in words (2 byte) */ + MLX5_SET(ste_single_action_remove_header_size_v3, s_action, + remove_size, size / 2); + MLX5_SET(ste_single_action_remove_header_size_v3, s_action, + start_offset, offset / 2); + + dr_ste_v1_set_reparse(hw_ste_p); +} + static int dr_ste_v3_set_action_decap_l3_list(void *data, u32 data_sz, u8 *hw_action, u32 hw_action_sz, @@ -211,6 +251,8 @@ static struct mlx5dr_ste_ctx ste_ctx_v3 = { .set_pop_vlan = &dr_ste_v3_set_pop_vlan, .set_rx_decap = &dr_ste_v3_set_rx_decap, .set_encap_l3 = &dr_ste_v3_set_encap_l3, + .set_insert_hdr = &dr_ste_v3_set_insert_hdr, + .set_remove_hdr = &dr_ste_v3_set_remove_hdr, /* Send */ .prepare_for_postsend = &dr_ste_v1_prepare_for_postsend, }; From patchwork Mon Mar 10 22:01:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010770 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2044.outbound.protection.outlook.com [40.107.220.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 026B31E5B62; Mon, 10 Mar 2025 22:02:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644181; cv=fail; b=c2TdQxL83IWaQiaQQHGm7CmnC5SNy+KyAkyV+swUkOgnj+FHOBL9BA/43IPvkrANHLrIVFqs2IkNRbZDyzdkD+54g+5pHeM5LvojSKsLalMdiC4CGnyRgiLluBK9+FQOjXhJhRxN8M5buPgU5dH5XyW9BCzXw3ToVl0J3wiShE4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644181; c=relaxed/simple; bh=26eUROg4aW8Cz5bjQL5gl4cAYHqL9VICCJ+fnHM628M=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cBfEUD2yLZTE6PryVQ5e+H71vIRzqIaYiztzn9bway4+CIAH+3UJ8tkkXjvIAkyeMC/S9OLTx4PjQqpAS+oCElJRZax4/3Vu4qfqzRn0Mxg2qetuubn93aA/UZZrM/QSeuHKUPjbgtT16xB/6r01CrFw0Phj3zbE96ZI7j1KC/E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=FC28WVsa; arc=fail smtp.client-ip=40.107.220.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="FC28WVsa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pIKK11b1so2stvzewhvDejCNXTIpbxw0vyB0F+hxCPL+Y7bOCPqEEdafx1x9K4j9Ukf3uhlgh3vLciWzQe/dEmJruyOqcBX+SfrykwYgW6KR3mOpYXTxXVDVGF2M3GZl0RpvbXdw01PbgMK/X1orkIvqhMOT+zpVDjcIAOmg8AwNOPW96U2+//RPQ6QcL6gEESkp/U+El+e5qWI23NeFqooCbRJ8wl4wIPVps63DHsS7SY4lXQcTxgHyTHEOQg4kEM22RM8vHk6DHkjplwhcdfVtatHBTl6FL+IimdGAPkt3u8mLJDdlbEIaoSwGFJhuIRTPLrxrRufUqYFQPmO2YQ== 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=aoTN48Px4IkZxWCF61gk+zmpIPcXLa9R0FiiFeKp1m8=; b=mRgZHrIyQK3zPxaqpDN1Luw/s6IY+Le4bOyrJevrhEYJAlUp5BMDdjc5fyYU28N0HXdCejNixbyZ1Wzp1fTqdX8EEpVTMulEWwyfv5b/lB2FcOQ4ObX/FXzz0UOAWmXGnRRhZqIDeYSE8wCugORKRtvXssiLE78VjfIQ1fFQhGzamWGA2EzsteJ6W/DLuz+YUGEC8K9EEns3NOdyzzcxum+3uGZPBmZwGq8fsEj61rvwFLconY7SWZl0hCI0zIdXow8qhB9h3ZFNrIDZ+PMxJn/PLIQXF593UbmFCiE4K3Jh+w8bAGf7ceMSFDgc7+J5edr60C4MyJnXkHRMMIA55A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=davemloft.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=aoTN48Px4IkZxWCF61gk+zmpIPcXLa9R0FiiFeKp1m8=; b=FC28WVsaQ60wtb9/llFHyrt3rvq7tb/oHYLCnQkt3KsO2JSCom1Zd06hte8PtJxlBHKky4j+6wfX6WFd0jCceuXpkNFd5rv9WAYBqmk+EbOziXJdoUswh1QtWmYCTCfMEkxrNR7OLbK3WW1/L1RmaXgAHDqnk0z1/te+1ffB01p7yXJ+Kcweabgg/79s6y5eYagdd3j8VbIqjwt1v7KCN7R4z+LQ6KEsda+QRULJpww/JpB+GrL1lxaVPQ7R2LIIrczWWg1YD6YoNzSVvmJhcV24FgHFbK/G1GPrM4wUE0L8PRDcSI9uY4KJnUDI3XDIXDmeh5r/dqxc416Q3YX7rw== Received: from SA0PR11CA0201.namprd11.prod.outlook.com (2603:10b6:806:1bc::26) by MW4PR12MB6875.namprd12.prod.outlook.com (2603:10b6:303:209::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.29; Mon, 10 Mar 2025 22:02:57 +0000 Received: from SN1PEPF00026369.namprd02.prod.outlook.com (2603:10b6:806:1bc:cafe::9b) by SA0PR11CA0201.outlook.office365.com (2603:10b6:806:1bc::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 22:02:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SN1PEPF00026369.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 22:02:56 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 10 Mar 2025 15:02:49 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 10 Mar 2025 15:02:48 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 10 Mar 2025 15:02:45 -0700 From: Tariq Toukan To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn CC: Gal Pressman , Mark Bloch , "Moshe Shemesh" , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , , , , Vlad Dogaru Subject: [PATCH net 2/6] net/mlx5: HWS, Rightsize bwc matcher priority Date: Tue, 11 Mar 2025 00:01:40 +0200 Message-ID: <1741644104-97767-3-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> References: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF00026369:EE_|MW4PR12MB6875:EE_ X-MS-Office365-Filtering-Correlation-Id: e97da4ee-9137-4593-1c07-08dd601f502c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: usCLOtPs508vh/GEcjusjOsniFOIxqMf/l522+LR16jlfgA4WIaunkcP7GUwuEIa+4FeNCn0Ddm2q7oT3LwKKp3Nu9u/Td6Sycuh2X21AKLzOhgrtoJVM6r9jbErwj4k2HBqUniXNoRacj8uCQ+e3fVr3pfqu237zf4sm/IBUIkjVgaycuA/gP+bmbxWPQ6MCfWzIDg1vsA71a8N2Hcxl9bbdzmWL2UqcGs24S6G5HVZg9SUddmOvg3kPw3ViiuGBt9kB/COE2zvJmdMeODemHdZ1W1W2wGeEJBqAhuHvGTMQZS2UPYRiBGrfh9/cYDYwNr2OS1UxTgoX5jR+z7yfsvhMlS9McWHqp750d6ORGAwnRa79XTN5qOXEmx4etR2HwlGVftg//cTfDvm/l8idawH7DfZe8llzzK59EDwXT6bs67bJ+TQuiaL46F2FeG+BU34KMDDz+fDq/F+/O9BJ5BdRd/LGc5Nh6LBqjXw5MaxV2MV7EtZsDVI4UKhjqICVqWsxUOLPMnWP3GUDZn+CxKP6HLiHb6thAZiuew8IVQjtb2bQYEa/OiY/bGQLoVC2gQtWKAVFcY7/aASgQDQch3vd13+3soDRng2QfnbBL1j3dQF7A81Mjy1Tb76mpmRMl7j9QbD/LQxViFwZvSOOwvByGHiIGNSGhskshDlQO6xfTYmeYlmp1efBvf+ksB3NufQlsyErLCdDyPhcpI/ruLaR7g9CYhz1bPDfEz1N6Db0Gho96KHRjKjnM0crvD82PM6Lumv9aglAaFwQPE3InHE/h5hckdCQe2gw2PjeLsQIWuSQChLhCMRBhXtFzNeR8PR45Zq0+hfBRV2gs6HRPex+eaM8/sA96FBVjv3e2bISbxQ8tpbPDrIp8rmSXDf38b1S+2DHiUQ+EdscbSpJ9miBCnEr710YmZkO2oWosM98sYaiSp7uCvX7+hhsmNFWUYctdfgG1nqM7GeokdIQA/2DVRJ9ZehRoqOlOdXuL4rCuwlgCzkY5ySc5M2GvJXX+iUT803R9TtirlFCTCQTAFmpkx2J5+CKAG/GlJ53omn4uwordul6hauRLP6t7LMH149PvQiMQGetv9N39GRmSG5JuhnHmoMOJLKMPFdhDpyjWYJQEy1ecd6cXVRFgZIYRx7XQC3XmjPXceOxC2Xvyz7pvAVsH4en+XMI6pE+PZtauILrjJNZQy+DVfFoW9RHC1uw35yWnu9PGmQ6jzJE0NKn5/BV4tqyEBucR+hN0Co1rZU67xAk38SXGwraKrZ5QIRbYAml9j//eix7UTwjPL0OaWUfSgPiCYQO3lVwwmwA6SjfPOjDo9sgUalc+1LEOOESe0Rw1uDXFbX4f7ulfVjDys3pAbRjSuzIhkeUbogNoYuk+dalsIx9X9yriCEOW0q5WZLzlW16kP70MBFAjUv7414hmhtsXMKSMGs1KQMF+6n8g9RRlMLu5TUiSABbCaDrNW8MrWIq8oIKYo/MWxA0HtpOI4gEVRsI39b744= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 22:02:56.0392 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e97da4ee-9137-4593-1c07-08dd601f502c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF00026369.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6875 From: Vlad Dogaru The bwc layer was clamping the matcher priority from 32 bits to 16 bits. This didn't show up until a matcher was resized, since the initial native matcher was created using the correct 32 bit value. The fix also reorders fields to avoid some padding. Fixes: 2111bb970c78 ("net/mlx5: HWS, added backward-compatible API handling") Signed-off-by: Vlad Dogaru Reviewed-by: Yevgeny Kliteynik Reviewed-by: Mark Bloch Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.h b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.h index f9f569131dde..47f7ed141553 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.h @@ -24,8 +24,8 @@ struct mlx5hws_bwc_matcher { struct mlx5hws_matcher *matcher; struct mlx5hws_match_template *mt; struct mlx5hws_action_template *at[MLX5HWS_BWC_MATCHER_ATTACH_AT_NUM]; + u32 priority; u8 num_of_at; - u16 priority; u8 size_log; atomic_t num_of_rules; struct list_head *rules; From patchwork Mon Mar 10 22:01:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010771 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2074.outbound.protection.outlook.com [40.107.101.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E9DAE1E51EA; Mon, 10 Mar 2025 22:03:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.101.74 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644188; cv=fail; b=jWHxyTzGXiNaNKPiYCwDGPfuriFB7CvfAp47+wFevmMSLMbHhaW1uNs0Bh3htW22f1x8VyRBBEvW4hCR9FtAuhh7Tze13mU3vgOy8g+pxa+z+E7R/U7pXFiYYuhwhth9JC/Xj84r9TeACCHtcTkVLiV9cyqnOzUFoH5IKKTuXMQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644188; c=relaxed/simple; bh=46tCwXHKjzLlL0mhe7rEVLuHXyX9HcJmq3emUvA/7UY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MBKbVVOvJXHv0wXo7glg+n/g7iqfkOQ+4vFjWidas+kv08lh+4Suox6k4vSUvZ7O08rUOzWZZsyS8PFSaGq+cV6K646ia0GjnDoWV+kJRdunfsxLWkLw3iqm+acRLPDuTTDE98N9mvPJY8F3dplXFOTKfjOWX9+necXA3Zyrfg8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=GPtNFtNB; arc=fail smtp.client-ip=40.107.101.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="GPtNFtNB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vXSDJhLH4E9RTJZZbX7TINjsBL74iwf2zUbvQ4l4RgjU9wHgGOUKmHM/mRTZNCaftuRnwI/ray1Qx/K1mwNhKSEoyUSNUbMCZrWDqEvOiUcjhql9Egy9aDdaA6B6w9+r+xFm241iPSnnj7tyngU7YgIxZJb6FyJNHzh9w1cx1yYWuYAaxhd1kqoDl2akavKDDCJVO5oYkD4o276A/Y2mPwBXiaOoFLHcUDNiQQ6Q0MgDJfM2DzAVIQUsqjsPmD9flI2s2c1V976V4i1EoJEJMXv3N8goXtw7aQooN8uOnoZcf7zFLEUeUIZEDZYuYqJc148hxTGaJqR4EoOCfw5NHQ== 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=/U2PcmCUSil6wwKlIZaqnrzNamPaFzZ3jjiVAdw79LQ=; b=XMwi7OCCZPiZU/54AIq3R0fAObMSE9oa0I+zMkkyNy/Q5kEx9W2jraX4T/4ODC/tzzJArpoIE1xXkom73CADCPLGef9l3FPWeEAglpxL6KYuUFEx9EY/wYYMiAkCO/2GeeYxig5UTW6WRJatWsO25rKiqcPfAhzSo2EsbZiJp9u0uX/mBPdFO3uODx77PRYOBYo8BCZ+LAAs4eIx5u/qL6/5G3ahM792PMDZqQ4RogFhvQmJti2oKPxRHCpmKFFtfi8X+EhzraQjnZxxaqPb1rqpFuhKvVX29JPQFKCIEpTYpJasfEoS5OeF6sNs649OmJqc4DG6D3mN/MS0OdfFlQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=davemloft.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=/U2PcmCUSil6wwKlIZaqnrzNamPaFzZ3jjiVAdw79LQ=; b=GPtNFtNBvAqBcwKGlJnt2GTFDZrMuYgj9YNpZZnKLIUEqnsRAJfdxtDMFv3LTSDHXU1cKY1kS+n5EhZcL3FZugCROvLgSAjFsWAAWoZEFw21Vbs1vzCrtOxl8z/8nBFYYyRIrn3RR6GhbgUZZ+LNC0RNo1JACDQ79/4JWiSi6p7sJDi64od6sixJwLX2nlLgWsCXgOPIGJdVEFVIspHE/uz8cU4tMlbsT3R3lCBYlt81bMKuUwWRFKp6Uj9djx9RyM3hMM/oGHniObd/MHrhYlA+FwNi4HZBHyb57mys4y/dN7CVaLg9HpdEkLnA69+SE7ClCDP84a9WajP8TtoGvQ== Received: from SA1PR02CA0011.namprd02.prod.outlook.com (2603:10b6:806:2cf::28) by CH2PR12MB4280.namprd12.prod.outlook.com (2603:10b6:610:ac::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 22:03:01 +0000 Received: from SN1PEPF0002636B.namprd02.prod.outlook.com (2603:10b6:806:2cf:cafe::2) by SA1PR02CA0011.outlook.office365.com (2603:10b6:806:2cf::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 22:03:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SN1PEPF0002636B.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 22:03:00 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 10 Mar 2025 15:02:53 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 10 Mar 2025 15:02:52 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 10 Mar 2025 15:02:49 -0700 From: Tariq Toukan To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn CC: Gal Pressman , Mark Bloch , "Moshe Shemesh" , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , , , , Shay Drory Subject: [PATCH net 3/6] net/mlx5: Fix incorrect IRQ pool usage when releasing IRQs Date: Tue, 11 Mar 2025 00:01:41 +0200 Message-ID: <1741644104-97767-4-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> References: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002636B:EE_|CH2PR12MB4280:EE_ X-MS-Office365-Filtering-Correlation-Id: 01bb048f-1187-4500-d877-08dd601f52e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: x4X/Dw3t1t4LX8Cdt6Avd8joFSq1Ekb4uz8nI4co5ATv0iy02pG8dA5BDdHJ04OuwaKrBK51qlkeCtnmGs4mYmizH6YRTouAmjacJh3TdDVO0BhiBI85JOnvsIB1iVNFJiqSk0R7ifaXZcd67HUyeEXGwlvljsr4XNc4zpJKzZoKZWQz5v7oPxZ40WKRfEmguDH+QZ7d33X2uy28X5nm9lUrgVjYtv71xRFKLOkYnJx95dFzNVTLNMdABSQ8LRCAK4rkCsz9xRIBTm82m7L1at36F9OsT2hOYPXtMii91EnjeBkQrZ/cmTrHq6omZlTOZoqUD1aJP3HLt1dT1zRoanra3qIyNdPOZ8UsAwBexnhBVeJJbLQvwBLhFSNB/5nr7OpPKDaee04uUCgNybeD4YRvWbMhsTpGK5P+9x9/bLQ1g/UeqNw5HyVpTtIFqg/PfKeLdP9BsjAjYCjTyIp7Pjb+zD4wGTN6c0FzR/o9AeF4CukwXG1kNP/G/E/y7cUHAuYqc0hZdvjfHjedh1eYH1mTqPAXHVvOUoYHnKowWTvZNQg5+yWiRGylC7KJ+NwjJ75toqMvo6C7Zesmof1ILVSoAoFG8ShgO3LRfR9K8f+yxpIWJdw41+rUlqGP0sEaE6y/1yenb5TIklzIfkUgM1HUhT7ObE2H06qwOqFU6G9ycnclVl187ro3p9go9B1X4rNN/N2sFEfqmu+NUufH70HfKpLUzwIXMHDsyp/W2rbXEERxJE0eHoevC6ISmo4FFOAzYluZyIrSIvRDQfVnXrBqT1Xf8WB0JXLswB3B/qwjK2ZEOTYjQ4NuXh8don4fsKKhpuqcOVrs8V+en30bY4Ekn1Laww3MJoq/cqTC3NIkbmqJbEmhL2Eue5xj6NMMWYt8U6IfKo9RnxRODsZnjPJw+OxNi+ZzOEnXXJGUUOyz+SINPQq6gaONnGQtJwTyxZWq/aMCYsdQyuPFS8Z3PVNQ2oaLXeQng5A9mPRIPTlzAiAZWPnl9QOQcJLeZuRLrrlODhGFoV8hNzyBcV2O3bJwLa7mCg53/3zrvS/adqqX5mxil//huLyDIdYxgStJkon4iKJXv4rtVGjogB3yf4egigvNZJqLXG5vbx/st90RsFEITsPERMgwO+dmQXVdypPzCHGb8znAw5jp14lOWJsPrBP7fn0QZ0Xbh1C1iqB2Qp6qlbL0WRzHcJLt7lGeCE8qQat37KNLfFqpC8uEN4gFzyykSd4QklF+cI6AnA2rlgnAKptaTwqjAcQjG7Z+m2bx+g9rWgwPH+Mga/0rFxdwh1BKyijfd9CJO6KRAJjJHqn05lQiiZ1zKcJSC3XMSSJOVimtcT+M3II5LE1UN4JOUfZG5QhjoLgq5UUJ0lDUsR01fu10EDM4K2efjMTiM6lBE3W0cyllzkQVc639Uf04j+EsWq1w5BdU4heZHEVQjCJYWqIdZX+jSVDkk0l+dPcTpUJaSaZrUFs9L56BR6L4Vn9H0QOEvhShL70rPYI= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 22:03:00.6054 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 01bb048f-1187-4500-d877-08dd601f52e4 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002636B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4280 From: Shay Drory mlx5_irq_pool_get() is a getter for completion IRQ pool only. However, after the cited commit, mlx5_irq_pool_get() is called during ctrl IRQ release flow to retrieve the pool, resulting in the use of an incorrect IRQ pool. Hence, use the newly introduced mlx5_irq_get_pool() getter to retrieve the correct IRQ pool based on the IRQ itself. While at it, rename mlx5_irq_pool_get() to mlx5_irq_table_get_comp_irq_pool() which accurately reflects its purpose and improves code readability. Fixes: 0477d5168bbb ("net/mlx5: Expose SFs IRQs") Signed-off-by: Shay Drory Reviewed-by: Maher Sanalla Signed-off-by: Tariq Toukan Reviewed-by: Michal Swiatkowski --- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 2 +- .../net/ethernet/mellanox/mlx5/core/irq_affinity.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h | 4 +++- drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 13 ++++++++++--- drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h | 2 +- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c index 2b229b6226c6..dfb079e59d85 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c @@ -871,8 +871,8 @@ static void comp_irq_release_sf(struct mlx5_core_dev *dev, u16 vecidx) static int comp_irq_request_sf(struct mlx5_core_dev *dev, u16 vecidx) { + struct mlx5_irq_pool *pool = mlx5_irq_table_get_comp_irq_pool(dev); struct mlx5_eq_table *table = dev->priv.eq_table; - struct mlx5_irq_pool *pool = mlx5_irq_pool_get(dev); struct irq_affinity_desc af_desc = {}; struct mlx5_irq *irq; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c b/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c index 1477db7f5307..2691d88cdee1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c @@ -175,7 +175,7 @@ mlx5_irq_affinity_request(struct mlx5_core_dev *dev, struct mlx5_irq_pool *pool, void mlx5_irq_affinity_irq_release(struct mlx5_core_dev *dev, struct mlx5_irq *irq) { - struct mlx5_irq_pool *pool = mlx5_irq_pool_get(dev); + struct mlx5_irq_pool *pool = mlx5_irq_get_pool(irq); int cpu; cpu = cpumask_first(mlx5_irq_get_affinity_mask(irq)); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h index 0881e961d8b1..586688da9940 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h @@ -10,12 +10,15 @@ struct mlx5_irq; struct cpu_rmap; +struct mlx5_irq_pool; int mlx5_irq_table_init(struct mlx5_core_dev *dev); void mlx5_irq_table_cleanup(struct mlx5_core_dev *dev); int mlx5_irq_table_create(struct mlx5_core_dev *dev); void mlx5_irq_table_destroy(struct mlx5_core_dev *dev); void mlx5_irq_table_free_irqs(struct mlx5_core_dev *dev); +struct mlx5_irq_pool * +mlx5_irq_table_get_comp_irq_pool(struct mlx5_core_dev *dev); int mlx5_irq_table_get_num_comp(struct mlx5_irq_table *table); int mlx5_irq_table_get_sfs_vec(struct mlx5_irq_table *table); struct mlx5_irq_table *mlx5_irq_table_get(struct mlx5_core_dev *dev); @@ -38,7 +41,6 @@ struct cpumask *mlx5_irq_get_affinity_mask(struct mlx5_irq *irq); int mlx5_irq_get_index(struct mlx5_irq *irq); int mlx5_irq_get_irq(const struct mlx5_irq *irq); -struct mlx5_irq_pool; #ifdef CONFIG_MLX5_SF struct mlx5_irq *mlx5_irq_affinity_irq_request_auto(struct mlx5_core_dev *dev, struct cpumask *used_cpus, u16 vecidx); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c index d9362eabc6a1..2c5f850c31f6 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c @@ -378,6 +378,11 @@ int mlx5_irq_get_index(struct mlx5_irq *irq) return irq->map.index; } +struct mlx5_irq_pool *mlx5_irq_get_pool(struct mlx5_irq *irq) +{ + return irq->pool; +} + /* irq_pool API */ /* requesting an irq from a given pool according to given index */ @@ -405,18 +410,20 @@ static struct mlx5_irq_pool *sf_ctrl_irq_pool_get(struct mlx5_irq_table *irq_tab return irq_table->sf_ctrl_pool; } -static struct mlx5_irq_pool *sf_irq_pool_get(struct mlx5_irq_table *irq_table) +static struct mlx5_irq_pool * +sf_comp_irq_pool_get(struct mlx5_irq_table *irq_table) { return irq_table->sf_comp_pool; } -struct mlx5_irq_pool *mlx5_irq_pool_get(struct mlx5_core_dev *dev) +struct mlx5_irq_pool * +mlx5_irq_table_get_comp_irq_pool(struct mlx5_core_dev *dev) { struct mlx5_irq_table *irq_table = mlx5_irq_table_get(dev); struct mlx5_irq_pool *pool = NULL; if (mlx5_core_is_sf(dev)) - pool = sf_irq_pool_get(irq_table); + pool = sf_comp_irq_pool_get(irq_table); /* In some configs, there won't be a pool of SFs IRQs. Hence, returning * the PF IRQs pool in case the SF pool doesn't exist. diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h index c4d377f8df30..cc064425fe16 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h @@ -28,7 +28,6 @@ struct mlx5_irq_pool { struct mlx5_core_dev *dev; }; -struct mlx5_irq_pool *mlx5_irq_pool_get(struct mlx5_core_dev *dev); static inline bool mlx5_irq_pool_is_sf_pool(struct mlx5_irq_pool *pool) { return !strncmp("mlx5_sf", pool->name, strlen("mlx5_sf")); @@ -40,5 +39,6 @@ struct mlx5_irq *mlx5_irq_alloc(struct mlx5_irq_pool *pool, int i, int mlx5_irq_get_locked(struct mlx5_irq *irq); int mlx5_irq_read_locked(struct mlx5_irq *irq); int mlx5_irq_put(struct mlx5_irq *irq); +struct mlx5_irq_pool *mlx5_irq_get_pool(struct mlx5_irq *irq); #endif /* __PCI_IRQ_H__ */ From patchwork Mon Mar 10 22:01:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010772 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2059.outbound.protection.outlook.com [40.107.96.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E394F1E105E; Mon, 10 Mar 2025 22:03:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644190; cv=fail; b=JEMwNmYp5aIOKqkw1xc2/Y+cRQq4MIP1+F8ehadqsSa2K3ZYwpEN7k3Rn7OwzJlnhxs3CxzM7AbQbnksveoFyhO38pwm8mJT4/jCoI8jnSeZJhNNwLms5Gce3jJEy3krFi/+PuUPfEGKMApaXJ3fv1V+idVj/mXpccP89vwLF4o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644190; c=relaxed/simple; bh=K5LVgPzd6eQmQHskwmblvyB+oMlmNs3H47gl7q3ugCc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Wh8hAhe1tv81nuDsMH0kt/SJXppynZ8Qg+ev6MhKWBIZCcVIJRRl3bxgycR/2TOpy4DFNtxHSyOwLUN7ggZsvUnVIYd6YJgvZchcd11K55qJCInvKw2JVUspsbDapGTCmFeAkqlT7foc8Li2sDDjyMeFRC8OWZkqzGKuPFhdejc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=i9zpAQKp; arc=fail smtp.client-ip=40.107.96.59 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="i9zpAQKp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nCs4jgrGoznyApuRQhty6OBhMHKOaRzjkx1GEVEwhJD/g/WTSSbSKi2/a7FxgZSYhB+p/0SJ9471XdU7Aaf1h1GEjXZ9UYFKphIsuflnzSuXNCPmVPowFzBrYbA04rkWzpFlKwXeyFZ5PVLz1rmlgdYAg75OEUnntRadOtVGQRX10evxVyiEsg6ek5eFDjzEYqZoAj24w+Pndq35KimsoVeqavihfLZjtd3zQ2+zbTmXIQlCXHoD4AQxjkytdZpFNkToaQxCFjh9e+p4vquxWmB1AXiJTl/9qGErIc2Op5dwXVQtVkrLRhof2uZ7Jy52Vgj/ibu431sVVH3kac8xNQ== 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=DtMBpzXZhNol+NGk6eCYKyconLZsMeGmJvOP1rFZ1cU=; b=qXKG1l9Qyt/hOPXj2gyzlcRhlSgaL4Wv6EXOEmv70IyaVtmgA2YIUN/QrtsA9iAUECxCUnEy53SbBTV6ud/qGE+FFue/kmgQW9vFKbp4JAAhNAPttsfBHG5OqSBfe6wmihvmq1EQ+5Xqf5Tchy9twxqxyZHPClZczkJhH5f2mEmaF/ulQ6AK60rDg2PzNXkuk0GkYkMd+0Mj3Kk670YNmZRzePHa27rQ4IaGSqLIcE3ML013t3NL2S89Y80yiesdbWtEBS8dMlTjNkDtMX/WyUUuBs7JTAlZhMkJnjA4Uqww6xKBclvBNZJRgaYUJ113ASOAqHm6jGhEW0izUAejYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=davemloft.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=DtMBpzXZhNol+NGk6eCYKyconLZsMeGmJvOP1rFZ1cU=; b=i9zpAQKptPdqo+URXmOaCbtKnpLbGRzFRDdERsrpdLPDFK2i4/G4RXcDO5ZDq3mvxsUxDWNeStARstq14VovGBfxLt1zHGPTP+4WBLRRn+DjeJrLzjvg+u+0+NoeO8vosbdQDosSygXLG+QFXk1YmcKEvlB4CQ8M/swhT7wzwtCVMUYqnsLdXxsSRlj+VJ/k4qwt6OrtqzZhgAI7C8zd8d1kwwUvQ0usJ8DR7NbkpmPtgNw8jsw7mbI5XLlXs2opM+D/qMpKQGTK4JoUq/KYDXF7nmI5S+f4i6Irv0Fi/MxkMsg4vxl1LXHXWz9r59XKphKUDvdPhlC0H1vU8yiS8A== Received: from SA1PR02CA0003.namprd02.prod.outlook.com (2603:10b6:806:2cf::9) by IA1PR12MB6234.namprd12.prod.outlook.com (2603:10b6:208:3e6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 22:03:03 +0000 Received: from SN1PEPF0002636B.namprd02.prod.outlook.com (2603:10b6:806:2cf:cafe::7c) by SA1PR02CA0003.outlook.office365.com (2603:10b6:806:2cf::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 22:03:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SN1PEPF0002636B.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 22:03:02 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 10 Mar 2025 15:02:56 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 10 Mar 2025 15:02:56 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 10 Mar 2025 15:02:53 -0700 From: Tariq Toukan To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn CC: Gal Pressman , Mark Bloch , "Moshe Shemesh" , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , , , , Shay Drory Subject: [PATCH net 4/6] net/mlx5: Lag, Check shared fdb before creating MultiPort E-Switch Date: Tue, 11 Mar 2025 00:01:42 +0200 Message-ID: <1741644104-97767-5-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> References: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002636B:EE_|IA1PR12MB6234:EE_ X-MS-Office365-Filtering-Correlation-Id: b7e83fc7-6465-46a8-f015-08dd601f5440 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: 6gSXpu7oKf+jz/oN/+k/NU5fQpu6Y4ZGA0WOVtYyTInAUsis8hwB9hQUbnFTpObaHN8/APW4LnrFduTr015vQsMs3+ixKLKK5mdI+k/Bz4uSEkZvSweuinKkOKRfjanoP9CwPfnijpUjaZr6zWu/e+e7kp2RxflV+X41zGdWsVq0uv8v5T64WwZfbeBSTgOH2yOIqtSixBrkZRiKlI5y1B/X/3KAS8UeTyh2HqK5NEsHGjUvdanmEx7G+UnrSsJbjlHT+lldVnFAaoqm6OLXmj5s6XIT338ITvi5iDdX1uVV3iBvl05xAgauzikNLKerapQeCphBkIEUFHhPp5H0mpZlMiwpJtj9IrW9M509/RfdAu1KftGcwoQ347mXsoN0cXWR0weSAWUDIoRr60hg1S5TerksguzO+hfW500PEZjYeuc3R8Pm0nVBX1xFN6eIa9/1PFoBa7Sb1vEClulk47x+EpkqmDy3oIWsVZk5PihHvTgglHcKvIIYQt7kbyEug+c7dXlfj7vyUv8EPsduO+Oppcyb2flbzDcaHF5nRmAZ6O8rLLAtxJ+SnJHilsNNxQRBmgVlKykHtoCuGpb+zAcyQYMkLuHXl2E8JfCUphS9LVzQ/eU6JcKUn0eMX5EYKNPMVvge+XZQrqEGCHZw114sv4yq7op7lcJQm636akVD4Ry46FOBZCU6xXNSr059vidQoeDLq5lMkyVbEUNTZoFavu7MFfnw2egXBEdoyyVzI6odt55V6Sna6Ohwokovb2WG8oXM0UFhHA0vpSahT7t7sOqQ6Ak9gObMsaUP2voXMIfvB35jZEE+l01HZpY7hAFHWMd4QZUWhQnCuQnmpID/YPhPM6HuZOJMJs17LMD9qrRw7wQ0/nk36ksn0xuz8L64R7gkHdwh8UqG8GGONZSRsgsCDzoeOXG8cjbWsVvH5+dhOInOBlBl6IaE+OK1Vq/UZIFMyzhEPFg065gDGpoFCRLKVOiPxUTiCqa7tXoSX0XogXTBc4014zW+pP4XG77kxxCx1idxXS2BjGGfxSUOWZyGiDJArPS9j3ta0w/IC0KaOflDrSFUEUhzo3d+gYcCNqII/cVishpKavnEHoBz+Gb6zW+1kvs8humDWYxYr4Ju8B2vXN6UH0yWQIeQTAz9Qls35HC9nGzfOr4zQskJSgI67G7AwbP9MrDT3lefiwmcLzmt759Omvzgdsq/2fI+3tWARtd28dvFOblogzULg/AvQUa0jwK/r5/7tX7M2Ib9R56HQ74/Z0aQ/vZyYRi/nmhxsV34/n2QQE5ioHcK3NSpyRSbHVg3pT5+h3zOCozCHsr5oGAs218eZKOniGDI/nJ7W5FQZEko+x2APb1MWndLAOKjU/+KOjX1j4188GPCKRTNawzOZY5k2LPkNuam3QwSFn6P8SkufI5yqhyYbt0hh/mYXxqeiV2h7usp0E0XYFj3smfhFFZpOqg5y/NelpUlXaC7VeXXe83z40bB+8enSb76IQZFEoAzr30= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 22:03:02.9335 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b7e83fc7-6465-46a8-f015-08dd601f5440 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002636B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6234 From: Shay Drory Currently, MultiPort E-Switch is requesting to create a LAG with shared FDB without checking the LAG is supporting shared FDB. Add the check. Fixes: a32327a3a02c ("net/mlx5: Lag, Control MultiPort E-Switch single FDB mode") Signed-off-by: Shay Drory Reviewed-by: Mark Bloch Signed-off-by: Tariq Toukan Reviewed-by: Michal Swiatkowski --- drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 4 ++-- drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c index cea5aa314f6c..ed2ba272946b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c @@ -951,7 +951,7 @@ void mlx5_disable_lag(struct mlx5_lag *ldev) mlx5_eswitch_reload_ib_reps(ldev->pf[i].dev->priv.eswitch); } -static bool mlx5_shared_fdb_supported(struct mlx5_lag *ldev) +bool mlx5_lag_shared_fdb_supported(struct mlx5_lag *ldev) { int idx = mlx5_lag_get_dev_index_by_seq(ldev, MLX5_LAG_P1); struct mlx5_core_dev *dev; @@ -1038,7 +1038,7 @@ static void mlx5_do_bond(struct mlx5_lag *ldev) } if (do_bond && !__mlx5_lag_is_active(ldev)) { - bool shared_fdb = mlx5_shared_fdb_supported(ldev); + bool shared_fdb = mlx5_lag_shared_fdb_supported(ldev); roce_lag = mlx5_lag_is_roce_lag(ldev); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h index 01cf72366947..c2f256bb2bc2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h @@ -92,6 +92,7 @@ mlx5_lag_is_ready(struct mlx5_lag *ldev) return test_bit(MLX5_LAG_FLAG_NDEVS_READY, &ldev->state_flags); } +bool mlx5_lag_shared_fdb_supported(struct mlx5_lag *ldev); bool mlx5_lag_check_prereq(struct mlx5_lag *ldev); void mlx5_modify_lag(struct mlx5_lag *ldev, struct lag_tracker *tracker); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c index ffac0bd6c895..1770297a112e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c @@ -83,7 +83,8 @@ static int enable_mpesw(struct mlx5_lag *ldev) if (mlx5_eswitch_mode(dev0) != MLX5_ESWITCH_OFFLOADS || !MLX5_CAP_PORT_SELECTION(dev0, port_select_flow_table) || !MLX5_CAP_GEN(dev0, create_lag_when_not_master_up) || - !mlx5_lag_check_prereq(ldev)) + !mlx5_lag_check_prereq(ldev) || + !mlx5_lag_shared_fdb_supported(ldev)) return -EOPNOTSUPP; err = mlx5_mpesw_metadata_set(ldev); From patchwork Mon Mar 10 22:01:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010773 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2053.outbound.protection.outlook.com [40.107.94.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 046B22206AE; Mon, 10 Mar 2025 22:03:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644195; cv=fail; b=c/kikeFKjIatvzusa+eoaLnQWsoVyZ0Ww+uBmCFQHy/I+z0fgd04aar1DYa134+nqlxom+Fw8pVDwX+Bi4pl1aibJ5p0aaNpej1yuYSn8CNoYsVR4kwuNTQT8IU76t52KYbatmXL6XsOUzgQFdOqw+eIpba87ynku5mOeVmb3oU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644195; c=relaxed/simple; bh=adcwiVaAQ+kXOJqSv69evt6wAWVgKuLRtLYYXuLAr7k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hQWqfLNDsgbk8dm30zlDpqGyo80wLjO82kp7ZWV5OsOBvVEACd2xNh3a6Vw6+Lvz9Ffe4zdHp48VbumcuI467snC60G1lVyJ+i8TM1f7gPuFnAQ7GLrDjb7y92UalM6qZ+Bn9sZoDPY3HtyFy+QMUzqow0VSyal9OeHwcxE7oR4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=WHIHnIK8; arc=fail smtp.client-ip=40.107.94.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="WHIHnIK8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RI6yi5zJIBEomeBqPPHBnd/4DMlzC5R8QRueffbKx3Sc47nIvXuGyHH5UkUqZoUyV6ZfCGkgEGEF0OIiLVVGlrgKdKi5cZD9wbUQVeuoJzm+BcdoTCGrWUlyBNt55JkBpCJw2uWtiRqRMet0oRlNsehbisZE52umTN5Ky29FrHcQVkrNsfeMxwrO5SvSdNrOon1zYhmOf57mD7EYVPiIORfr4clb0STa8EQygC3tJKfq8QkTaOWQjrXyJiplJpoS6c4ftF7Yal8VV6Au0HPnvV3jY1ddUlV3cxE74RQUIQg9sbyAvJONcxxb/qaQ7DgP2d48rl3ZFBUEL57gJ8ayLQ== 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=0RuANXfBsmt2ynahjkNpdAOfVzRT5ANFyYFx/dk2iXM=; b=se5c7awidzwUp8qeb9JbGi7lw9HKoDC2eg2xI7kjVWMdpQcehGffwkgrg+xfHcurfsLkl9AqYrNrpX8xk2rS+ywP1LsQPS2YCB7an6vik4ZhXSefyb5LAKINMM3UcVeCjeMdXlxScr2N/hKYh7IRxpDI0s9P79O5L1CG/RhNA//5A1SY3ZxIXBMRi9mayQqjxezIbg9A138lhnby6OyrqJdwL2mcdSvip9T7H3OttL/JR2HZSVPNHXYHP9LqtMThQ7t2wd2Fei3HC0Kn8QKryd5VhLECB2jGXOjxQntMsA7W0fMXfF5Z8fQKo+3nCOsOupWqj/7huCD3dOnA8lFZPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=davemloft.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=0RuANXfBsmt2ynahjkNpdAOfVzRT5ANFyYFx/dk2iXM=; b=WHIHnIK8IuJh9Y0vLFAvsm8ydttbkA9PYgRvDQ6pm6wijC8JuoLfVEy6fdb2HDd4nN989+eiJXGdNgiVeOMmt0x/W/x2PAWH5JTC0OBa1bjrSryZxmwthsFUFDU3jp83724D8vjpNXOXyCY0GNokqzkb5Te/iV5rApECK5cBc2qS0E40sJwDvCyeu+x9cnG5aggs88VyEl/ahYPtW0urcpx9Z3mEfkY6Vjdwj9Vi2HDLQ2pBP6dOhNO3iDETswHTt8if7YQ2v5m0rYpZ4T+VIdV4yjVnsQ974RKLH3HG6ELu0Mo7p+uiCyF4TtOTNCOd6XFbo5Ck7IZ8vEG8kvs+9Q== Received: from SA9PR10CA0006.namprd10.prod.outlook.com (2603:10b6:806:a7::11) by SA1PR12MB6969.namprd12.prod.outlook.com (2603:10b6:806:24c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 22:03:08 +0000 Received: from SA2PEPF00003AE7.namprd02.prod.outlook.com (2603:10b6:806:a7:cafe::61) by SA9PR10CA0006.outlook.office365.com (2603:10b6:806:a7::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 22:03:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) 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.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SA2PEPF00003AE7.mail.protection.outlook.com (10.167.248.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 22:03:08 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 10 Mar 2025 15:03:00 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 10 Mar 2025 15:03:00 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 10 Mar 2025 15:02:56 -0700 From: Tariq Toukan To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn CC: Gal Pressman , Mark Bloch , "Moshe Shemesh" , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , , , , Jianbo Liu Subject: [PATCH net 5/6] net/mlx5: Bridge, fix the crash caused by LAG state check Date: Tue, 11 Mar 2025 00:01:43 +0200 Message-ID: <1741644104-97767-6-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> References: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE7:EE_|SA1PR12MB6969:EE_ X-MS-Office365-Filtering-Correlation-Id: f1bf5af2-4fe9-4eee-58ae-08dd601f5747 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: aMe5mJF9W8BzfnJ1CPOBEPvGkN1dxGO8frGo7u1CSRE0zew61eX9+DwFkOpCmFWUI7DgLEPIfBQNBPhRC7H3MwV1GusNoR7Xr5Hfv2SEqlfDj+YLRxAxUvxuKhoe5lg8CXWLsQurVGKHVUy9jZWGXS+KnfqWqDXN2AZgluhuYpMLSHidYdy3hIAKZNRTSxh0CbAmIol5Q7gwZJaLCIsgn1SVUoK9LHbh3/lVVN9wqmRO4BUCikwLOQoiFcAAMbXdEy/hb9CtLyAoaC4Z/8gKV7o75Ec/dfSh+kBkblxa0SYcYztMHLSnLGu+9GOWvWHo0ktMYLwku8V+VycCmO21jqWnvmqdrcyw2gfLYeIE/SCQLuavjjUbJAHR/xizrz3nKMVfY4W2//o+WTMIm3sTJwIqG1EyKvQm91maBbEdZK0msC50a9vyEwuXSQemDAKbFFsGOTrdZkohJaHMgkhs6c2BLrn0AKSUa1K8iNOgpjavu2g9kBZIrMFPuqvOHj0xCwnbV3cq6vbBzv/72rzLnC/epTN0eWZ6g8cyi4Zz3Lnk2keRYpt0uNtYFwKzdgTMgq5AadpF6/XKT/DVfGxskA6L9bqkKq1vHeUv7w7qM3PCo0t0yEkCaEeMyUBhwZzOQkUjqGdw/EwcRRo6DiN2zfGW1CpsTW1MIfNc/SuQPMqReB1rQk7N6UpeBvmBoNNHGl1YGwP3g1W2FJ3mZH+u8N6dmI0vBTi4E3C1kepsRZBmVygBPp+YOqVeuj+PCaEmAa7VzrzG3ItfbC6pAMiSjp7joHZJFEV+knjhejk2/JCDaYGmMQIaCG3antc3N5LFvWXFHmfDs47yl3iyWaa8OyQuaRe1mQyZW6eZpN9rIx4yR7dlTJZ+PKE0ewTVZpf2l14lzZ234KGUoemFVJWaIA9dq1iGlaOoEZnav9K/pRhxLP8G3DBmTcUgQ6uUW2RMl/RKK1WLd+8Jhno0toNboZ1qYXslOnfv18FhSLtf2egjQqJz8pVoG8UbLMykq8u9cnKEhMqGkR/hHCOEj+oUBE2oglkDELhFARONhE1RaPn3DhoO3PKci8aH3XW3KY+1gmFKxRM3KfpUHaXvMtQwF0yg6BzunfP1diBx4GdQ2I1RBKF3NmMsHbcifxO2LSb8Ujm0zLkcNM4kg/V87Tz7ZzAODk/9/VwytSFxh3l5Qg0R3L8bAkgb2j65mtJIsjyGg83WrgePIm0AT3y1eEmycoCS9VMy9DDc7qrioLHlZw0uhboyznBvoC+4GfL+q3CGNNkBcjhX9ARt0+Yl8P53/LVAjOAAO5JL+fNz5IQkqX7IT0rehj8SBIkDEmyfmmBuBIerQFH15zRShQ0JiCPvXd1Op59fTTpQrH9XOu05whSI92TLJhKO+875cVosKBTbrTZJVb0ElFkpcKWT7YqfG/RLSEAEW4KkmZ+y08IyeOygX6btvqNq0CLXRndGq7Wy3AGPyLD6ClMctPkrJW608NxqJDr8NfStKadBzWgsT0k= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 22:03:08.0087 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f1bf5af2-4fe9-4eee-58ae-08dd601f5747 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AE7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6969 From: Jianbo Liu When removing LAG device from bridge, NETDEV_CHANGEUPPER event is triggered. Driver finds the lower devices (PFs) to flush all the offloaded entries. And mlx5_lag_is_shared_fdb is checked, it returns false if one of PF is unloaded. In such case, mlx5_esw_bridge_lag_rep_get() and its caller return NULL, instead of the alive PF, and the flush is skipped. Besides, the bridge fdb entry's lastuse is updated in mlx5 bridge event handler. But this SWITCHDEV_FDB_ADD_TO_BRIDGE event can be ignored in this case because the upper interface for bond is deleted, and the entry will never be aged because lastuse is never updated. To make things worse, as the entry is alive, mlx5 bridge workqueue keeps sending that event, which is then handled by kernel bridge notifier. It causes the following crash when accessing the passed bond netdev which is already destroyed. To fix this issue, remove such checks. LAG state is already checked in commit 15f8f168952f ("net/mlx5: Bridge, verify LAG state when adding bond to bridge"), driver still need to skip offload if LAG becomes invalid state after initialization. Oops: stack segment: 0000 [#1] SMP CPU: 3 UID: 0 PID: 23695 Comm: kworker/u40:3 Tainted: G OE 6.11.0_mlnx #1 Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 Workqueue: mlx5_bridge_wq mlx5_esw_bridge_update_work [mlx5_core] RIP: 0010:br_switchdev_event+0x2c/0x110 [bridge] Code: 44 00 00 48 8b 02 48 f7 00 00 02 00 00 74 69 41 54 55 53 48 83 ec 08 48 8b a8 08 01 00 00 48 85 ed 74 4a 48 83 fe 02 48 89 d3 <4c> 8b 65 00 74 23 76 49 48 83 fe 05 74 7e 48 83 fe 06 75 2f 0f b7 RSP: 0018:ffffc900092cfda0 EFLAGS: 00010297 RAX: ffff888123bfe000 RBX: ffffc900092cfe08 RCX: 00000000ffffffff RDX: ffffc900092cfe08 RSI: 0000000000000001 RDI: ffffffffa0c585f0 RBP: 6669746f6e690a30 R08: 0000000000000000 R09: ffff888123ae92c8 R10: 0000000000000000 R11: fefefefefefefeff R12: ffff888123ae9c60 R13: 0000000000000001 R14: ffffc900092cfe08 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff88852c980000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f15914c8734 CR3: 0000000002830005 CR4: 0000000000770ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace: ? __die_body+0x1a/0x60 ? die+0x38/0x60 ? do_trap+0x10b/0x120 ? do_error_trap+0x64/0xa0 ? exc_stack_segment+0x33/0x50 ? asm_exc_stack_segment+0x22/0x30 ? br_switchdev_event+0x2c/0x110 [bridge] ? sched_balance_newidle.isra.149+0x248/0x390 notifier_call_chain+0x4b/0xa0 atomic_notifier_call_chain+0x16/0x20 mlx5_esw_bridge_update+0xec/0x170 [mlx5_core] mlx5_esw_bridge_update_work+0x19/0x40 [mlx5_core] process_scheduled_works+0x81/0x390 worker_thread+0x106/0x250 ? bh_worker+0x110/0x110 kthread+0xb7/0xe0 ? kthread_park+0x80/0x80 ret_from_fork+0x2d/0x50 ? kthread_park+0x80/0x80 ret_from_fork_asm+0x11/0x20 Fixes: ff9b7521468b ("net/mlx5: Bridge, support LAG") Signed-off-by: Jianbo Liu Reviewed-by: Vlad Buslov Signed-off-by: Tariq Toukan Reviewed-by: Michal Swiatkowski --- .../net/ethernet/mellanox/mlx5/core/en/rep/bridge.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c index 5d128c5b4529..0f5d7ea8956f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c @@ -48,15 +48,10 @@ mlx5_esw_bridge_lag_rep_get(struct net_device *dev, struct mlx5_eswitch *esw) struct list_head *iter; netdev_for_each_lower_dev(dev, lower, iter) { - struct mlx5_core_dev *mdev; - struct mlx5e_priv *priv; - if (!mlx5e_eswitch_rep(lower)) continue; - priv = netdev_priv(lower); - mdev = priv->mdev; - if (mlx5_lag_is_shared_fdb(mdev) && mlx5_esw_bridge_dev_same_esw(lower, esw)) + if (mlx5_esw_bridge_dev_same_esw(lower, esw)) return lower; } @@ -125,7 +120,7 @@ static bool mlx5_esw_bridge_is_local(struct net_device *dev, struct net_device * priv = netdev_priv(rep); mdev = priv->mdev; if (netif_is_lag_master(dev)) - return mlx5_lag_is_shared_fdb(mdev) && mlx5_lag_is_master(mdev); + return mlx5_lag_is_master(mdev); return true; } @@ -455,6 +450,9 @@ static int mlx5_esw_bridge_switchdev_event(struct notifier_block *nb, if (!rep) return NOTIFY_DONE; + if (netif_is_lag_master(dev) && !mlx5_lag_is_shared_fdb(esw->dev)) + return NOTIFY_DONE; + switch (event) { case SWITCHDEV_FDB_ADD_TO_BRIDGE: fdb_info = container_of(info, From patchwork Mon Mar 10 22:01:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010774 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2052.outbound.protection.outlook.com [40.107.92.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 195051F874E; Mon, 10 Mar 2025 22:03:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644204; cv=fail; b=qvYF2t46awNIn6C0qK/kpgoTz1IgvUxZUKqnwfCuhj5niW61AZuIxtbJv5AdEyIp7vLOIaJxSAIgDDRJc/KGHt/o2Umb7oQunMNoGXsj77LqAWadts69OB/u3R/3zQq+igQqh1mpv9b/K/SCZbrDI1eUNMXt7+g1aPiPY0Zyu5w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741644204; c=relaxed/simple; bh=ntXEEPieNkn9nt0rkJNtI2Ido/KPswTzXd14etU9I4s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TxkxVURKgxyM+S+31q9RXPp5tQg/CTw1mYK7wppIh4IeQbCexdbgOFDMctvOSsrViJAkp2ssDS04gnhfRVy7dFTTZMn2f66VDU9+ir7yjk3/U7JerjhZEfkiRO7GnO935csVkjDIYLBq67VcrRQWuU7Y3xYyOIM0w3yRhdoQOcQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=VxIHvyR4; arc=fail smtp.client-ip=40.107.92.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="VxIHvyR4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EpVb801S6r+X6C8bJMzCQZSVVn0puR+BkzysT3+VWN2nM8XmcTe/56DkvsTaEpVw+ISzxuhvQYW36Lsmc7ii7FctUBC9p9zQvnjmEY4T/lPNZIoPSpWJrIBWJ4KpHYVpORlQgJ7St6GL7qlQB/PRtDoYFRe5aG6EOyT2jJW62Wq0vhWB31BHjg/3+v9YtaD4ylC5gd77wUygSyaYREaNr5OWxt49WbreumNtlc3I2xyzpU2Oj3GNiAIP2/Vq/RBn8ueuligztCis0DRJKcqXV1kcmquGEL8ql3aND6n9bbHMuqJ6TVyuq3DgmsKdAP4f7cL1GcEWMybZ5lFr4EvXYQ== 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=4VrVXyny0I9yZeHk2axmchY7t7XUAsBWVKtxxGgFksY=; b=np7l8DCMmn3xivrQEmH1d38Vc4B54uA3N2fpfZl52I0EwRdWPWg3mMPoqdg03IX1PTORNXVrDoM24LM9EU8LrNJjntmqrzd4CUVJbtVREEHJyQO462r/ydEQ1B7YYXQGI5Fcr6Z2tTxt5xU9/PHPmFSurxiC3Y5z5696iKCpwiB6CzeTKohTL5YdQFNg9pj2G3MUCWY7afK8XwxxtOwMf5ZyPRe27bysdK3eAFA/n9heVbsQnsP8WgzD3nKAWxJhmFwQZvPbVOYH45TzVenxrgr9Do15AILrvq9xAxCB9ivx8odHQwlEZb1NjueUkgteNUlseMQzyYmcfPnt1r0hIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=davemloft.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=4VrVXyny0I9yZeHk2axmchY7t7XUAsBWVKtxxGgFksY=; b=VxIHvyR46DvOeznHKe4ub6CusM2GWPCoWg/O+dWFJhHMtjo7Nkl4CTHBIVWEeSAP4UqhDrTdq1Q8X+b4I1tmUTpeCfhjKM0u/owN58Du2iDJ+FNhzGEto7WnaXdBB/sBOwJiczycK4wiOPEeMKbt6ppGaCJNop0RydlK8N1B+hsLCg32EDVJvtci6bU4dnxVrV+6211qblBmpYcMDkQOgvps2IGF3c9uJH6nfyvjganI6cNflfic+gtjWFC+BXISq6jL7Z7X1sdg79wEbBa5IzKS2owbjQsvDCbLvv2tetherW8dN8WQryrnDlxNgaEmPkUoi6W06VH8Ke4Z4VHyXw== Received: from SN6PR01CA0003.prod.exchangelabs.com (2603:10b6:805:b6::16) by CYXPR12MB9279.namprd12.prod.outlook.com (2603:10b6:930:d5::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 22:03:13 +0000 Received: from SA2PEPF00003AE6.namprd02.prod.outlook.com (2603:10b6:805:b6:cafe::14) by SN6PR01CA0003.outlook.office365.com (2603:10b6:805:b6::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 22:03:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) 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.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SA2PEPF00003AE6.mail.protection.outlook.com (10.167.248.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 22:03:13 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 10 Mar 2025 15:03:04 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 10 Mar 2025 15:03:04 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 10 Mar 2025 15:03:00 -0700 From: Tariq Toukan To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn CC: Gal Pressman , Mark Bloch , "Moshe Shemesh" , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , , , , Carolina Jubran Subject: [PATCH net 6/6] net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices Date: Tue, 11 Mar 2025 00:01:44 +0200 Message-ID: <1741644104-97767-7-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> References: <1741644104-97767-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE6:EE_|CYXPR12MB9279:EE_ X-MS-Office365-Filtering-Correlation-Id: 3c4413c0-3f40-495e-d76e-08dd601f5a4c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: HtnrNqUEYuivalbcmUakCz6KxYFa49ES6SKfE1xxXQVjQwPVPvbg/s5UkZQiw6IcHj0LNnmnWgnwvt+MsxNwBrqLWRFztysNgEH3Hs/0ImkRHA2BEdhK0VP+aD3IanAoG2Cpi/oFEUM6T50wTMRkCeWWQYevLDKrQaOjsIRLwbIMr8UKa82y1lQgIywqmWyjawoiNrq/bYfKPak+S15UVE3ZMrlyeNn48H4O0Ff6ZEbuDWSBhMFhmtwcRRe8KliJKYb6AYZuZovLcjx69ckay378vxEZ/6+cmFiGTjfSFWwwIkJwU+muzN7nEUm+tm1GN0WToGMIkHlyjkszPWxO0cXu9X81tdMw9TfeCDBNoWMmZZ8SRowbPfJJwCoEhs2krfVhnE374Jq4u0ig82i8mAU+m5jRPjkzAJi523/U69lbC9rLVgLb52wydybtIXFDrXfaVx+1QHPwiD1byNSW07B3pkAFHQJZ1/JTd0Qk2H8fTdYAn9EkzDD6ImlaD0+5crpgdryoZH4s06CpdRPMJ7TgVTnyY5HnMhhbliinEE5iBAwD8ST4XMNzjHBXiNJrVqAOKCBLemIlS+Nu2uNFGPfZINV5t49UDSb44oHKBJUjsbwHXK2m0VwLX3JyDbdu9P2SXBH5LQLFMKes6jbHEPttVE8CqXmCyAj/qRhNEeXX1Z+wRDbvJiRKCh6RjeRpNjM8VA2fgciv83eoHkVguEe/kaVFHy/g0ON18qFDaZFSieUL78eTJv2AWvlAhwUnKxhHSn9yLCWwX7JdrCyRqBBW0RMUWcvntxRpjDEp92QbCllUYMa1J3fue46DKK5f3dRSmbG+RwKaxc5l90n0OdKsPE1EpQUDm/G4mi3R5U08pv4r18SjRln2eHnR2n2APX98yGWAXUm/4mq8U7UPwCMPDOv/01poIgooEALeUcP9ZOg2oAtiZIR3lXhLu/b03Fi4mGRVtiqW3oIdjR0vKVQNLXlIfHC4QPBv96RRx5FCLb9Ew6ie4PyXbwueA4XFS03ealItSPlqjZRKnrNZGFxsn3NORK3OOE+qEWJXEnC6Ccc2USVngKqPcgina7Z7bFaL3WD7CX2giG/KXqZFme8EP0Ca++gRmR7cpIeiI0fdG6Wtm9MINwMMrfLSq7+bE6uif7Up2Z3slzgEy8FSaEmP5cm0IJTIyJDAC7LGvGv6lFwajq/s5TBIeCFwKn2gKCmKZLjQUUqvvIczlwkDCoYScmMwFKgE6+ne+20mxlgjKZFkw1X8SOTIdrOpyi/xsMqC9FUnhTpT9MSixm8iii9ZtA4WjetUGIHOuIXXc0Hq4QCG+TgGSTNUJBZ1BDQpQdya6mRgqtyESkiYqM2uhuWiusMByx5ff4Jkcdnx+ShTZIYcKO7OP3XDxdcX32TZHrL6ijWQfo8MZYSPCoXrVP33DzhT3gJUUBifOdKdhP0Kxl97RbNioVgZ2OxceZtjs69FV3izd95EliHPw3pzdu5LdMgH4N17JzJSZSY7AxU= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 22:03:13.0622 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3c4413c0-3f40-495e-d76e-08dd601f5a4c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AE6.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9279 From: Carolina Jubran mlx5_eswitch_get_vepa returns -EPERM if the device lacks eswitch_manager capability, blocking mlx5e_bridge_getlink from retrieving VEPA mode. Since mlx5e_bridge_getlink implements ndo_bridge_getlink, returning -EPERM causes bridge link show to fail instead of skipping devices without this capability. To avoid this, return -EOPNOTSUPP from mlx5e_bridge_getlink when mlx5_eswitch_get_vepa fails, ensuring the command continues processing other devices while ignoring those without the necessary capability. Fixes: 4b89251de024 ("net/mlx5: Support ndo bridge_setlink and getlink") Signed-off-by: Carolina Jubran Reviewed-by: Jianbo Liu Signed-off-by: Tariq Toukan Reviewed-by: Michal Swiatkowski --- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index a814b63ed97e..8fcaee381b0e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -5132,11 +5132,9 @@ static int mlx5e_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, struct mlx5e_priv *priv = netdev_priv(dev); struct mlx5_core_dev *mdev = priv->mdev; u8 mode, setting; - int err; - err = mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting); - if (err) - return err; + if (mlx5_eswitch_get_vepa(mdev->priv.eswitch, &setting)) + return -EOPNOTSUPP; mode = setting ? BRIDGE_MODE_VEPA : BRIDGE_MODE_VEB; return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode,