From nobody Tue Dec 16 21:27:06 2025 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011019.outbound.protection.outlook.com [52.101.52.19]) (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 DA9182D0626; Sun, 26 Oct 2025 20:03:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761509038; cv=fail; b=fNoKvsjGXQz2ICVDoC4lILgmnv2I3CR2SKuc9LLtpDuyumO4N2T0MozCQl/TsKUL/PVVOKwqHSgslVU8X/TAu1vm91nl73vtrOFRzdLA2PZh2PjljoOusLM2O0oa63wti0ebYy6owGd1hpRhVFLJ4qXhYxmIPqIovgPb13Ilb9Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761509038; c=relaxed/simple; bh=bgyhDeCm0IZCNaEahCwsNr5cK/nu4hu6C5E8SdNvhBw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=haFy5ozEQwxWjRPdWZzijFzV9TjFaJffPkSD/Y9z/8kLW+lAm4O+FNRX2Rraw6GNqTRMNPdsJrHtlfIJt/djq9Q8x2W/MAZGKCl3g2g2gcSJAi/pWXmgB4jIdSj/dfVJP8OwCl6Jhe9me/BAzFqE6bMhDToTZ1RuLiXWhx2pNPQ= 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=XVxkZpVl; arc=fail smtp.client-ip=52.101.52.19 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="XVxkZpVl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AtuUvJUsPP3OkxQ6wtDUUrsvGmW1IUJZHNnuQwa5I6tBRL5QG+MdyMPHL1s4GSo9/70h+P0r3MZl5pO5oC2N2FW5UEGnCjQnzTfA6Vr8FWuRX/EtHcHaQMJeetnTu+MJ19X+LrSNVh6fJghqsJNDgEo8OCyIcthXhjEvPnewvyIweLL6uaTrW1+TgG/OLXF5iA/XZd8i4br/+eTlb5rkzJgXyv5CB0/DJKt8Q2OPlTLuGslmiUiYDL1wK2uKUHg5kVIkgUaqf9iYGYRI+9eJi3EDb+59mse4nnCNhvrhH3eMckpz6wP3EqijQaslApY4ZUzwLJW5arNjvs2cRq7CDw== 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=F0GLR7Ff0VvFBfBbYIKxCBiWfHR9d8BE8RkAY+3yLxc=; b=b32bZ6NCSX3GDpOv9O0j4YOjNVLyDjXHbVxGorhpOCqkclXeCGq5S1vE3QpAUQ8f8GKTEWNXRq3a8J2w/7sEE9iP/0i7DuP888+QuOGypvcMmJhHi30uHOl3o17Ur6uLx7/SIH6C5zmSYtYGgeSEOfxWTNFDWJi2b00DF6Y9GnFhaW3KuSi/3WDV4ELIw/4jSfofruG14ZRFExIYUXXO+DfGPptglwgKAYzRRuaZNqc4FVC7OQMljGGp28CCU7C3Oot8Gbt3fpp/rJro2nmAHSPX/rtmGwZH4jp3LX/vS4TJcvzjMCVPUQ44O0iNN0PsPqg1xwWXq4opUOMN1TO8kQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=queasysnail.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=F0GLR7Ff0VvFBfBbYIKxCBiWfHR9d8BE8RkAY+3yLxc=; b=XVxkZpVl9lAFbSykP8vzdqtditztEEVIYSC+xK9JpLjOr8tY2PyLS+UZ/dYdwMfu9MF39XYfTdqT3Q5qROhWdx7QKCbYVrJqttjMUWUJj41GouQsL3qrKHiSs/bXYuIm+ZkJ9zR69PHRiKnXrAwlOq+2MpKIik1MrhzTV8607thBOF3yA8DhykyzXliZviLc/X/F03sEKvNI9En15MNuOaViSlWwrG7hOq+Gwomyy516AbsO4csPAFhJJtXVsE0qjVGeIWdjd8Ll0DfNyKTCydBvTZgEbxV0KRLOwOuXgzWebklHjC5mIIPawcA5vflkJtRuPReYMOy33Px4iMdFvQ== Received: from SA9P221CA0010.NAMP221.PROD.OUTLOOK.COM (2603:10b6:806:25::15) by DS5PPFD22966BE3.namprd12.prod.outlook.com (2603:10b6:f:fc00::662) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.17; Sun, 26 Oct 2025 20:03:51 +0000 Received: from SN1PEPF000252A0.namprd05.prod.outlook.com (2603:10b6:806:25:cafe::ff) by SA9P221CA0010.outlook.office365.com (2603:10b6:806:25::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9253.18 via Frontend Transport; Sun, 26 Oct 2025 20:03:51 +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 SN1PEPF000252A0.mail.protection.outlook.com (10.167.242.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.10 via Frontend Transport; Sun, 26 Oct 2025 20:03:51 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 26 Oct 2025 13:03:43 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Sun, 26 Oct 2025 13:03:42 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Sun, 26 Oct 2025 13:03:39 -0700 From: Tariq Toukan To: Sabrina Dubroca , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Andrew Lunn" , "David S. Miller" CC: Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "John Fastabend" , , , , Gal Pressman , Shahar Shitrit Subject: [PATCH net V3 1/3] net: tls: Change async resync helpers argument Date: Sun, 26 Oct 2025 22:03:01 +0200 Message-ID: <1761508983-937977-2-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1761508983-937977-1-git-send-email-tariqt@nvidia.com> References: <1761508983-937977-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000252A0:EE_|DS5PPFD22966BE3:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c7041a2-c72a-44e3-b563-08de14cac8a8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5BrTpj+qkV2xkhCskZnHcVVJH2NKlXsKG5lTCGM1dTtBtQZgZGWxaaDWhFle?= =?us-ascii?Q?2SCYrJ9h2HW8vS5+cWoSHuSA7+wS8333aBP+AwwcfaGHN0BXgpbYUx1BDkAF?= =?us-ascii?Q?I0FnWYRGqWefEesqL0LgZX3wykWg8wc2PGptVUmlSt1umGH6+yHced1EH5gN?= =?us-ascii?Q?6yPIFzDWZJ5bRXc92VyZh+a3vBX3/2z50+3JVRYi7M4h3OXi3ARGxDq4pI8e?= =?us-ascii?Q?XjKb6UzFy135pODFArElsVS1C4LrLTaeoNHrUESN4PR32gy3Pv3bIprvd8f3?= =?us-ascii?Q?xtD3N9w+TIxU70QXODXZwuXkBmOoWNO1XNH8EhKH9BTZ/9lAxRknUihF6vUj?= =?us-ascii?Q?liNKR9N2HMqZLTdzSr78+kY1oNuXPEE2Q3KUTWc3L92N+DRS0DlC9NzD03Vd?= =?us-ascii?Q?6zJjh/Re/vT5tVAR6muQo8gxaLYUa0LWGXnEmXKIg2gaAForJL2QH06ey5f2?= =?us-ascii?Q?UIhNWyjiSjox2YHQ7AWXAnC9dPK+6F8wCcRo7U4qivKuSRdA6lmveSzHxFxN?= =?us-ascii?Q?0N2UTE3EBTdIbh1s8nBa9IFMNM4mzkw1i1mDKLrYtjTd3aIDJexrqC0unF1J?= =?us-ascii?Q?DD6mq5j+cJtAYERgQA7MkRLTMLXXSxdbmmfhmNWv+v+LQFNQldw8kdHKUF4d?= =?us-ascii?Q?hY6Y3D6njQ0CWrFUEddK2qFlEjrqin4QbpdG7WMPD2riluUa185qFrNTDNrY?= =?us-ascii?Q?wb8i5k3cSd2puMsSvo/u0zhxrWQ3bn2PhxA0elXWH9vS4BnfyYhZwczmK2eh?= =?us-ascii?Q?nfm2sCLBe/I+/bqRZlvbglWMYENw0Lgzj5d0aER/tOwIZFRcEpcKBqm9QfP6?= =?us-ascii?Q?ZQ0ZGyl+kwTdczVa9NL7O1R3PuZFTdLMv/F9L7J9xUzZzlpRsQUcyw1SLLgO?= =?us-ascii?Q?sibfJ7BWD+rXNUsFCGOi9p2lz+7u1kfl9g0ov/T1AJEECguJn9BdyEz1WK4T?= =?us-ascii?Q?qx/ruwxDGbM9G2CZTORBM/Qh1+jbX3NZlg8Z+W4CMy/KvUo5UzGE6ICgqrcE?= =?us-ascii?Q?z6sIPgVFrB0n4X3ZH7KHn+9tdUPzmttn5V4Ez1oY55+TXY3vlYNSbRE3hda6?= =?us-ascii?Q?3np31F55ZAtGNz10HlsKJq3yFo8w9CyV978Z7MB1Niw0a4tnTHbF9Dg/zH/g?= =?us-ascii?Q?K4ePCalGgrAsbJHAwtPmwK4wcp5XPTZYKNZ3HvViOagMjN9tofm2ZRL2iQqK?= =?us-ascii?Q?yXaarzLhLMYS+tRs/ZohyCDiThdq1bZkj1lbD3hrar6TEv80qZhECsF2ONck?= =?us-ascii?Q?JWw3K2V5hnnYA3RJW6zlFuuIhpymiXrriGYmXDSZMOO6yMOIOwtfX8lvEQHy?= =?us-ascii?Q?JE8G+lKZBH1UfqZyVzi0KwxCRq/unnFwceWNTJ74cdBuGXIqtNU5xxqk/kal?= =?us-ascii?Q?P19Asv/ZuUU4otGAG96eVXGGJmfBQh6EzlrXrw6zUno4S0hP04cYVPbYgpsn?= =?us-ascii?Q?jFGa/7+h7oAMhtGBkDzJnBggPDOyIajzR9gpsfoxKSI5/rznTezgXGB9+kCy?= =?us-ascii?Q?ApMvp/UquRr3t8i4u7ZdRJIbCKD2jIGQBQmSCb1622bZqA6VVe5Dh1j9eH7/?= =?us-ascii?Q?DGqNAyjEzUJC5QqMVDE=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2025 20:03:51.4547 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8c7041a2-c72a-44e3-b563-08de14cac8a8 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: SN1PEPF000252A0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFD22966BE3 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shahar Shitrit Update tls_offload_rx_resync_async_request_start() and tls_offload_rx_resync_async_request_end() to get a struct tls_offload_resync_async parameter directly, rather than extracting it from struct sock. This change aligns the function signatures with the upcoming tls_offload_rx_resync_async_request_cancel() helper, which will be introduced in a subsequent patch. Signed-off-by: Shahar Shitrit Reviewed-by: Sabrina Dubroca Signed-off-by: Tariq Toukan --- .../mellanox/mlx5/core/en_accel/ktls_rx.c | 9 ++++++-- include/net/tls.h | 21 +++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c b/d= rivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c index d7a11ff9bbdb..5fbc92269585 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c @@ -425,12 +425,14 @@ void mlx5e_ktls_handle_get_psv_completion(struct mlx5= e_icosq_wqe_info *wi, { struct mlx5e_ktls_rx_resync_buf *buf =3D wi->tls_get_params.buf; struct mlx5e_ktls_offload_context_rx *priv_rx; + struct tls_offload_context_rx *rx_ctx; u8 tracker_state, auth_state, *ctx; struct device *dev; u32 hw_seq; =20 priv_rx =3D buf->priv_rx; dev =3D mlx5_core_dma_dev(sq->channel->mdev); + rx_ctx =3D tls_offload_ctx_rx(tls_get_ctx(priv_rx->sk)); if (unlikely(test_bit(MLX5E_PRIV_RX_FLAG_DELETING, priv_rx->flags))) goto out; =20 @@ -447,7 +449,8 @@ void mlx5e_ktls_handle_get_psv_completion(struct mlx5e_= icosq_wqe_info *wi, } =20 hw_seq =3D MLX5_GET(tls_progress_params, ctx, hw_resync_tcp_sn); - tls_offload_rx_resync_async_request_end(priv_rx->sk, cpu_to_be32(hw_seq)); + tls_offload_rx_resync_async_request_end(rx_ctx->resync_async, + cpu_to_be32(hw_seq)); priv_rx->rq_stats->tls_resync_req_end++; out: mlx5e_ktls_priv_rx_put(priv_rx); @@ -482,6 +485,7 @@ static bool resync_queue_get_psv(struct sock *sk) static void resync_update_sn(struct mlx5e_rq *rq, struct sk_buff *skb) { struct ethhdr *eth =3D (struct ethhdr *)(skb->data); + struct tls_offload_resync_async *resync_async; struct net_device *netdev =3D rq->netdev; struct net *net =3D dev_net(netdev); struct sock *sk =3D NULL; @@ -527,7 +531,8 @@ static void resync_update_sn(struct mlx5e_rq *rq, struc= t sk_buff *skb) =20 seq =3D th->seq; datalen =3D skb->len - depth; - tls_offload_rx_resync_async_request_start(sk, seq, datalen); + resync_async =3D tls_offload_ctx_rx(tls_get_ctx(sk))->resync_async; + tls_offload_rx_resync_async_request_start(resync_async, seq, datalen); rq->stats->tls_resync_req_start++; =20 unref: diff --git a/include/net/tls.h b/include/net/tls.h index 857340338b69..b90f3b675c3c 100644 --- a/include/net/tls.h +++ b/include/net/tls.h @@ -451,25 +451,20 @@ static inline void tls_offload_rx_resync_request(stru= ct sock *sk, __be32 seq) =20 /* Log all TLS record header TCP sequences in [seq, seq+len] */ static inline void -tls_offload_rx_resync_async_request_start(struct sock *sk, __be32 seq, u16= len) +tls_offload_rx_resync_async_request_start(struct tls_offload_resync_async = *resync_async, + __be32 seq, u16 len) { - struct tls_context *tls_ctx =3D tls_get_ctx(sk); - struct tls_offload_context_rx *rx_ctx =3D tls_offload_ctx_rx(tls_ctx); - - atomic64_set(&rx_ctx->resync_async->req, ((u64)ntohl(seq) << 32) | + atomic64_set(&resync_async->req, ((u64)ntohl(seq) << 32) | ((u64)len << 16) | RESYNC_REQ | RESYNC_REQ_ASYNC); - rx_ctx->resync_async->loglen =3D 0; - rx_ctx->resync_async->rcd_delta =3D 0; + resync_async->loglen =3D 0; + resync_async->rcd_delta =3D 0; } =20 static inline void -tls_offload_rx_resync_async_request_end(struct sock *sk, __be32 seq) +tls_offload_rx_resync_async_request_end(struct tls_offload_resync_async *r= esync_async, + __be32 seq) { - struct tls_context *tls_ctx =3D tls_get_ctx(sk); - struct tls_offload_context_rx *rx_ctx =3D tls_offload_ctx_rx(tls_ctx); - - atomic64_set(&rx_ctx->resync_async->req, - ((u64)ntohl(seq) << 32) | RESYNC_REQ); + atomic64_set(&resync_async->req, ((u64)ntohl(seq) << 32) | RESYNC_REQ); } =20 static inline void --=20 2.31.1 From nobody Tue Dec 16 21:27:06 2025 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011051.outbound.protection.outlook.com [40.107.208.51]) (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 AD2A72FF140; Sun, 26 Oct 2025 20:04:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761509043; cv=fail; b=Wt0XRYHy47q/KoM9OAyXuvxVjAcic3KFrPUBKDzM848onRdGxY1GXnIgurZ+qiggo8SmFXAvHGe37aIzzAdMyEFI+0tSGUnfzDVZfmuI+cAi5pknud5HEjLK/0AJFDo7bC16XZig1BPSiO6JSecjc4+T9z2PaF4vrEAiw8368xY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761509043; c=relaxed/simple; bh=0XQmqLSnZtondQBKr6dIoOmJfq/h93B8mGI4T/LdpLI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IIELbs0pStgtTp5GBSftPwgUfASuxzztFCv689emQmqzhqtRNrcJgwEjIqBKLbzs/c/fYxZaF+SVq8mEBje8lKOotuQfKB3RERhbFpzYef4t6jdqf6WLt7eakikDWYz6p8sicGjJ+deZJNVDvb/zcgGnm6Juwc0c5GHNSu6om/A= 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=ViIKQeFz; arc=fail smtp.client-ip=40.107.208.51 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="ViIKQeFz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o1fPlZvTtZDafiai4rPGQFtuJfH8SWqteoZ3bl7m5dUeeazNFI54EiKKIT8H7nS1DTws4gCgbB/7ATlBOg3emFcCOl/kcFyTppgxjDxEb2u9dq6e8FAlaCQjIlzxP4/ypCNGHgvhUOfiAion1EfFi6+6gCxd0oIzxzKT/MavgIH2VoVp2a2DDyhcUU63UbMKx2IZqim8knBamk7Qben1Bs2cgwG7XdepChOMp+lrYhDGz1ZRgNNHO6btbnEIvqwbOLKto9HqZdwuT3aya87pOxtGmVa4qAiRSsGWfQ9VDtcDVLByCqH70YdTrHLEow2UgTQ/nanoEYhDmAwjcEPtVg== 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=LfNDU2CHKIYQYdrRasmn8MGl4GS6/vQdi0twJYXCm+Y=; b=usRA4i/kvSll9OzRdkF+BPPfR8fiarfuz9pfx7RwtVHUAaN0rD0zl1wK3cA8Bz7h/5UjMwnZftV9pacxqOurbFtWbi0QBG+u93peUREfL5gFpbmwhikEJtA+IXXCGqaNLSNuouS5kRi7c6ZOvorMX6uVUl1zRYMIUO6xeiJJgrb6kx03LZh2Thkr/dxbglPw+tYoWN2dvF0oWdmJ9oA6NtlSNTmCp5RN/QFCoSOcTxo3udo4loCNkoDrDNhrQgilmEuJkHRvFnHhRWH+VPQvq9FJ3ArV7EC52KyVW2LBvx83zU3HCwirgvPj0ZjpINU+fBaj75Se5yDvGoUlFNNtLg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=queasysnail.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=LfNDU2CHKIYQYdrRasmn8MGl4GS6/vQdi0twJYXCm+Y=; b=ViIKQeFzP+aSjzOVr/NeJyTi0ZUgtP9YBG9f8+cVF5WAMp9b19gXyo4JtWMW05Uf+PCiwqaYqDOJVPOIyLbiye/amgTkTCLABs0WZ7hYR0LudGsHY3sfBKoUGdf+uZ8rJ8I8nHxrZCXI6SdZ9rZHHU1cdIiuvXuFj893S7vcrv39bFHoaOgYTcNw4vM8M6O9zTovQ2uBq+IWDriQQ3SVNUugEM63Y9Ppw+ksm7bS0uoY0uwUYwbPqERTM6YaYMuAHD0USYSEdcwFlQ3xiBXIhUg3NCBlzlX+hIlpriWT3reLZDXly3AbOH+CKVp4mSoec0c6gaU+quMDCSX+vh9dwA== Received: from SA9P221CA0018.NAMP221.PROD.OUTLOOK.COM (2603:10b6:806:25::23) by DM4PR12MB8560.namprd12.prod.outlook.com (2603:10b6:8:189::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.17; Sun, 26 Oct 2025 20:03:58 +0000 Received: from SN1PEPF000252A0.namprd05.prod.outlook.com (2603:10b6:806:25:cafe::c4) by SA9P221CA0018.outlook.office365.com (2603:10b6:806:25::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9253.13 via Frontend Transport; Sun, 26 Oct 2025 20:03:58 +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 SN1PEPF000252A0.mail.protection.outlook.com (10.167.242.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.10 via Frontend Transport; Sun, 26 Oct 2025 20:03:58 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 26 Oct 2025 13:03:47 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) 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.2562.20; Sun, 26 Oct 2025 13:03:47 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Sun, 26 Oct 2025 13:03:43 -0700 From: Tariq Toukan To: Sabrina Dubroca , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Andrew Lunn" , "David S. Miller" CC: Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "John Fastabend" , , , , Gal Pressman , Shahar Shitrit Subject: [PATCH net V3 2/3] net: tls: Cancel RX async resync request on rcd_delta overflow Date: Sun, 26 Oct 2025 22:03:02 +0200 Message-ID: <1761508983-937977-3-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1761508983-937977-1-git-send-email-tariqt@nvidia.com> References: <1761508983-937977-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000252A0:EE_|DM4PR12MB8560:EE_ X-MS-Office365-Filtering-Correlation-Id: 27646fd4-5566-4d64-f438-08de14caccd3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|7416014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MgbJS6+dT/tTR7CPCFhezRK73Fp+QCKcmaDC80KXfL2a8MXwx311FakeBg7V?= =?us-ascii?Q?P4Vjx8Z2anWt7UxDThLrZpgrjg5KpWQFmezlmF+XFhpbmfBDAasH/HQbd2Mp?= =?us-ascii?Q?vvM4X/DeLxUtzFjVL8l99UCu94F6rpwNwdDNOvZeyJI/lkz1KKmiT0LglDXl?= =?us-ascii?Q?tEsg0jvm5xO2Z6IrKVQH5hYDHloIR36iEF5WnSXXa91eca/pnGvazsvx1C+1?= =?us-ascii?Q?86kwJrsp7UP99MVi0vMTQqDU8DT9TVtCxxo14eGkf7V96o/nL1PMbNZKzgL4?= =?us-ascii?Q?GpTbEHgbkTvLQfELnoZ04wC+2X9erQCwmk5pBcovJ8hZdv3zsSjWcweoz38b?= =?us-ascii?Q?biG+6w/MkJYCohAGW1i5h5/xw8JtHP+dAo29ExPKQP46vsVqMUP2Ew6kXDNU?= =?us-ascii?Q?bSXAtn7KPgHiSdRRLLOZk8OS3nDahSv76YmqjpC3v6rp9GPfPphBYiaHaV0Q?= =?us-ascii?Q?qZcC5Wy473Ea3UkKST//YzkoTvwZCNNAzeYBIHm7Z6FVAZ37XO/feiJ/Ugfr?= =?us-ascii?Q?eeWBXvOSCby6scJ8jTR7ZSo01CGxISEBimZCZ7oKG1tUCyTI80RY5O9wmX9H?= =?us-ascii?Q?sUzPfK2Vwx2jgMIqE4XpkLHDQXAENJYlUwP9hFHMlCOLPBPuP9KSmLdGI6OO?= =?us-ascii?Q?QlrNJRdyw3TXNjkFTDsIjwyDBQHIsKlKMIHLURvwZDlISMCGsVtcvdGpqt9v?= =?us-ascii?Q?J7isPGesBKKolofdwpNGYFWIdTbhsPZ0PNW7dpCH2xA3Dm47b4n8P7iX4a5g?= =?us-ascii?Q?lB7Js9ICOiRXtfA42aGa2OdO+5lmHNUESbCyGEfZXjT8TAGou/7uCTp7N08f?= =?us-ascii?Q?Plj8x8tNShf/bxkOZswyKg0FYLRLvAkacy9zWs2GmEwwUJVsJKrUugY3V2PH?= =?us-ascii?Q?hpCQX3JgpWN0Wvs2BWnIuFRrVMK8Wacjs9lrPnpXGVbniXxxo0tU06rvly/P?= =?us-ascii?Q?np2JYNlXgIz6GisO0eEaGmkYlLWkleoc5vnCReg4D1PgmqdMzznB7xt1Y1DM?= =?us-ascii?Q?Lq8aVFtGt8c2b6SvqTiuDw+aGZQJzGBNIivI7zXYf2D0T7fMRi6y6FmKOk8y?= =?us-ascii?Q?ywdzfKZ1t+8XWKeIMNS9HFaaxvHxMkze43XnS/1doYCUrXW5t25IMmsyJHrl?= =?us-ascii?Q?9O6dWH7tKJo5Q0QwmRNhWNESeGCeZ1NvQ9j00wZyh9qQ0970OTRxmCDFykIg?= =?us-ascii?Q?AiNmxAoBq1ECsybIQpbe4QInZJdV+migpALP/dUlDpblx85zv+9R+lZIIls1?= =?us-ascii?Q?f/kyZ/O7yuHirenEKze9yijorxtwCvZrL144Qb+EgZq4ZaLrj0s16QHt7GXM?= =?us-ascii?Q?27kkVqXM06GvD8hmJvmTzdNKH+ixMW9Gltt0WjRw+Exfit+7MnljkhinY34R?= =?us-ascii?Q?eiQ+uMvigIzwgq3vkkAHnT8HizxQL4IeSfN84LOQKnQoVOE+VwpAp869JaIa?= =?us-ascii?Q?b6XphhVVyvGZjWqVO5oXUPaAuzc0g2a9zBY7M/Xmb+Mrqk3QXtMejPKRdV04?= =?us-ascii?Q?4EjGxiFJPiR2BYUCPo0cnQWGsl/sG4gSJOuKOsa6sJ+Yh7vWoBvxd8QBkV26?= =?us-ascii?Q?T+L7/hh8aXAlSTS/MUY=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2025 20:03:58.4102 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 27646fd4-5566-4d64-f438-08de14caccd3 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: SN1PEPF000252A0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8560 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shahar Shitrit When a netdev issues a RX async resync request for a TLS connection, the TLS module handles it by logging record headers and attempting to match them to the tcp_sn provided by the device. If a match is found, the TLS module approves the tcp_sn for resynchronization. While waiting for a device response, the TLS module also increments rcd_delta each time a new TLS record is received, tracking the distance from the original resync request. However, if the device response is delayed or fails (e.g due to unstable connection and device getting out of tracking, hardware errors, resource exhaustion etc.), the TLS module keeps logging and incrementing, which can lead to a WARN() when rcd_delta exceeds the threshold. To address this, introduce tls_offload_rx_resync_async_request_cancel() to explicitly cancel resync requests when a device response failure is detected. Call this helper also as a final safeguard when rcd_delta crosses its threshold, as reaching this point implies that earlier cancellation did not occur. Signed-off-by: Shahar Shitrit Reviewed-by: Sabrina Dubroca Signed-off-by: Tariq Toukan --- include/net/tls.h | 6 ++++++ net/tls/tls_device.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/net/tls.h b/include/net/tls.h index b90f3b675c3c..c7bcdb3afad7 100644 --- a/include/net/tls.h +++ b/include/net/tls.h @@ -467,6 +467,12 @@ tls_offload_rx_resync_async_request_end(struct tls_off= load_resync_async *resync_ atomic64_set(&resync_async->req, ((u64)ntohl(seq) << 32) | RESYNC_REQ); } =20 +static inline void +tls_offload_rx_resync_async_request_cancel(struct tls_offload_resync_async= *resync_async) +{ + atomic64_set(&resync_async->req, 0); +} + static inline void tls_offload_rx_resync_set_type(struct sock *sk, enum tls_offload_sync_type= type) { diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index a64ae15b1a60..71734411ff4c 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c @@ -723,8 +723,10 @@ tls_device_rx_resync_async(struct tls_offload_resync_a= sync *resync_async, /* shouldn't get to wraparound: * too long in async stage, something bad happened */ - if (WARN_ON_ONCE(resync_async->rcd_delta =3D=3D USHRT_MAX)) + if (WARN_ON_ONCE(resync_async->rcd_delta =3D=3D USHRT_MAX)) { + tls_offload_rx_resync_async_request_cancel(resync_async); return false; + } =20 /* asynchronous stage: log all headers seq such that * req_seq <=3D seq <=3D end_seq, and wait for real resync request --=20 2.31.1 From nobody Tue Dec 16 21:27:06 2025 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012048.outbound.protection.outlook.com [52.101.43.48]) (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 6867C2FF656; Sun, 26 Oct 2025 20:04:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761509049; cv=fail; b=i3VtiinM9ENo/u2jC7ZLahoN1ETHgItNedlhBW0mDemldGC2SZATudpa/J8Uigc64TUPDqcwPebJZpHXSLU4dV3RBAxGNXG2hj6+5GqyZOaMkqZWuOmHEE2LKLf/bveIR13qzISyawHuTXgTb631s3JfxXuwSryqMH5sTFVg1O4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761509049; c=relaxed/simple; bh=xURtjsrn7Y0p50rLD5Ga2Ou1SjytBARhXBlEueISxvg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jaiPIW4rfJDY8W3n9l8dTZe5eS4hf6xWMbmGzYLmlJ7N1NQxeRXyQisCHq8+fIvqipVwaNAClUKsqhVkU9poVLN7l+0P8UyNo81neeyzKZhcnj5Zj8cyZS2XowF4aai9ICdV38r5ktWYu9+CVV/GqJXZfVR346lo+mMvz/Gz4mA= 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=lj/UuXJ5; arc=fail smtp.client-ip=52.101.43.48 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="lj/UuXJ5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y4HuAgITLGPWc5EubWW3E4/BBW8EW+3dIj3Sw4G2VTcrRNatsLH5ARrRoK+7mp8CNeC3d/74xxMg3lnpa+Z10eEnhW7Q1kdm4gPdpCeaFJqQ3VsvXXBgqodYJdSohBFdB4ZS/EKP7VQ9jbWC7sMWhsJ6DKoxkwwaUEHe1rZH2QLmOMVb+glcFpnS2U1P/XW0Zq/FIbu3EDRBO0lVFCZ3dbI/RQV4viUGqvA1kxjoFzbTxOhtTRw/yB/9c3/DNGIcz3KCNNF3pFxnq6Db70K7sl7Va+/Vgh4sI5v58P/sUrDtME0ehlzGg0E3j2KmstP/RaVtxQ6zQp6ULhVt5ufkvw== 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=pXydeuNRtO4JClnHUQXd9Uh5NpOb8Qbi+IE+yEOi1wg=; b=tCAJzuJ6MO+KrAul0JHjG9bpbk7pPc1ZOzv9Ed0z19jpDCJAwVDHymghRG4xstNhVLY+2YWv5qW/ctwDsYlOYgUNxE3ZB/Ze3k3JZ0SvBDClc8HiF4XMY4uTgTeCSVwN6YBk4Xwq5yafEDjkXBFQwV6tsOFqRn4WRlOkFOq+mVoB/SvzLg0mR8oAefmRhbIT8dm0PDfLFHiVmPkzqMhr9qmgERSn1WvHfa9kj6yzAJ4YdXzB6m7Sk3jGgUg7EJyeBov7cvfJacF+AbTc1p09vS/GP5EyKgP91uI6VfA/bDPTOeAUQp51k3i3Fqrae7lwzYe22VrWXAe67BwW2hy3Kg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=queasysnail.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=pXydeuNRtO4JClnHUQXd9Uh5NpOb8Qbi+IE+yEOi1wg=; b=lj/UuXJ5sLSG6p4ODRFUSiybAOhp7oH2LBgyr0ZA7v+zA3pbjcRaXm+UEqgs6WXNDSd8jq741M4b/mO7sRrJxBssXBVwF9ulgfVTFwnF3KU2pc5M2JsIJkz2GeeJRmAqM+V/dYntfe+YTo/edJtSgGOwg40QRUrbp2TLjGR1hkJbDT/Bw3fujQCRB+vLBO5H13jrHjocnuOQMVenc4KSJbQIvXZOCL8QSgNHX9zzElbVOdNgwk1OjkdPgkFNrf8jA1wY1GYUPe36mzHWc+01PkOXemshxzqiqvY7gFa7GzRDnb04BSIbbsJPCkrg0zyXgqkvmYPFla9jHlRjjU4DqA== Received: from SA1P222CA0028.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::30) by DS4PR12MB9820.namprd12.prod.outlook.com (2603:10b6:8:2a7::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.17; Sun, 26 Oct 2025 20:04:01 +0000 Received: from SN1PEPF000252A1.namprd05.prod.outlook.com (2603:10b6:806:22c:cafe::1c) by SA1P222CA0028.outlook.office365.com (2603:10b6:806:22c::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9253.18 via Frontend Transport; Sun, 26 Oct 2025 20:04:01 +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 SN1PEPF000252A1.mail.protection.outlook.com (10.167.242.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.10 via Frontend Transport; Sun, 26 Oct 2025 20:04:01 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 26 Oct 2025 13:03:52 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) 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.2562.20; Sun, 26 Oct 2025 13:03:51 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Sun, 26 Oct 2025 13:03:47 -0700 From: Tariq Toukan To: Sabrina Dubroca , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Andrew Lunn" , "David S. Miller" CC: Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , "John Fastabend" , , , , Gal Pressman , Shahar Shitrit Subject: [PATCH net V3 3/3] net/mlx5e: kTLS, Cancel RX async resync request in error flows Date: Sun, 26 Oct 2025 22:03:03 +0200 Message-ID: <1761508983-937977-4-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1761508983-937977-1-git-send-email-tariqt@nvidia.com> References: <1761508983-937977-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000252A1:EE_|DS4PR12MB9820:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ec8724f-1a2e-431c-d666-08de14cace8e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pTdVR9Dmcf3FalEakUTmuHVVt7fN14dlVkxcNyA0Z1CL85eBJywgr1vpHqo+?= =?us-ascii?Q?tNaa4cU+6Ks0Sle/Akzxfgakl7faGJSdFMxm3M92VBw7JBOxGlNHTH+gT3rH?= =?us-ascii?Q?GmIYu9JFAxdT0ic00FG/LorOcBMOLUmrqv1LI59g42/zd9BugvFYNelxAo6K?= =?us-ascii?Q?HOdcf+HWiyQMRXUJN9k4uVrLxRub/0f62N7Yacn1FOJ6FfMyiGLZXaxRokSx?= =?us-ascii?Q?kRf3BK88OmdDDAm7GAf6fMoIRU5HFRBbddTu7uedafAITv7PZ86JcHaxQHfJ?= =?us-ascii?Q?wAe5tJS2MNby90whGn7dDoai44Jkaufw+K+FubNdYnUcrF2TyJZHAuuvS7HC?= =?us-ascii?Q?xLXDwOVL7ntvGWuffy+22ZkvEDet1468rpKxY/j4/9ARhV4uMkFSJZnsfsE/?= =?us-ascii?Q?lmVci/lpSFbuCKV1rWfP8tGoJo/KFwFF/WDi3pxS8gpFly6NddRh4W8nV22y?= =?us-ascii?Q?lBrTpSS/kTXLnYrgLWntUiWxcNc2jNZJr9oyrzC9RHpd5EFmaDGXiJ2rBfBd?= =?us-ascii?Q?h6nwb0/m6gBn6owGUZ4eG69BRgBJ8lLWTQKUstudIEFiJL9BwfX0xUMI9DdG?= =?us-ascii?Q?F6Pk4LYt2kieeEVVlEJ8qZjAXNU4JxIpSXGg854wbVfl3zwMOAFlmb2gFQiH?= =?us-ascii?Q?HYc2lcPgD59TTMFivWkcUu0I9kvHbwKSH6IKf6HKOWPcuVTrLB7VNRb0xLwx?= =?us-ascii?Q?G1YN/mfIyt4LNzk29M69yKLputzb2fFxiebIpgo499X9u0IhzvvqePoVPTLI?= =?us-ascii?Q?dnR+IOmhwYlcItW4NXm/UJtVFaRjSzuL3wg3cVZTa1MPelQGjrnK2Bi0qVtn?= =?us-ascii?Q?lJ0vP624Z8ikbosOXwr/tR41sBJcFTfoZK0vT6oCgdcvVvJwf4xso3g5Zn8S?= =?us-ascii?Q?sPNrwKONsg8PevT3I7+kqvpLa8Qw+gyuCyogfs/IZukYWKENxIa6mundcwXL?= =?us-ascii?Q?Gi6gGfFLbiIYBxR3m1hu/xubg81PJTsegDFaDOSDelG9M4qjMu+0QYW5jd0H?= =?us-ascii?Q?9RuJF/u3Cu4EPGl1azNvx+9Xsed5e801wcqUcvvvX5HaAB6ItUrwOxeLCLwp?= =?us-ascii?Q?mQHz+Gf0EH//5own0hLNf3k0ylgHERyLRa8HUQTj+bzIRHRwGXWhl/hGXllX?= =?us-ascii?Q?iEkluAGlGCAJqZBARHieVenUDt+bzqnXMqloHq1WwwEsKkOSPyr9PSh7f8ob?= =?us-ascii?Q?s7U63vHfWaV0cHn2dUXmrt8Ufld0bDBBxMHojghRRA//udKq1D33CF399hoM?= =?us-ascii?Q?fS7FAKwPKQ0XYRJg/EFherRMeO9nwp3pC1fUnEXhCcLo03hJWzheW3FrKMgu?= =?us-ascii?Q?AHMacPacTRylkpqRQd7oeY1sD3Bo25fVJ0vevKz+h8anTqc6xYM1N+UCZ0Cz?= =?us-ascii?Q?8ChaiWXVs2xjqy+R/r4fq7MH2IhwoR5UWPtvmO0mqFi/PPWrLDE6NTgYFlGg?= =?us-ascii?Q?utvmB8Zbggcte2J3yc+J7lFSNX7HlvTDNFk2s5kAn4nWcTkKXaA1ubR8EzvN?= =?us-ascii?Q?NThsOtGQWrvLPWdOAn7lMMlS/UrM/5wgjZ/A8fKBcJ8/Uzz60a/hQjRaJU5r?= =?us-ascii?Q?q83/AxfBqGwcszPXMTI=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2025 20:04:01.3242 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4ec8724f-1a2e-431c-d666-08de14cace8e 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: SN1PEPF000252A1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9820 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Shahar Shitrit When device loses track of TLS records, it attempts to resync by monitoring records and requests an asynchronous resynchronization from software for this TLS connection. The TLS module handles such device RX resync requests by logging record headers and comparing them with the record tcp_sn when provided by the device. It also increments rcd_delta to track how far the current record tcp_sn is from the tcp_sn of the original resync request. If the device later responds with a matching tcp_sn, the TLS module approves the tcp_sn for resync. However, the device response may be delayed or never arrive, particularly due to traffic-related issues such as packet drops or reordering. In such cases, the TLS module remains unaware that resync will not complete, and continues performing unnecessary work by logging headers and incrementing rcd_delta, which can eventually exceed the threshold and trigger a WARN(). For example, this was observed when the device got out of tracking, causing mlx5e_ktls_handle_get_psv_completion() to fail and ultimately leading to the rcd_delta warning. To address this, call tls_offload_rx_resync_async_request_cancel() to cancel the resync request and stop resync tracking in such error cases. Also, increment the tls_resync_req_skip counter to track these cancellations. Fixes: 0419d8c9d8f8 ("net/mlx5e: kTLS, Add kTLS RX resync support") Signed-off-by: Shahar Shitrit Signed-off-by: Tariq Toukan --- .../mellanox/mlx5/core/en_accel/ktls_rx.c | 34 ++++++++++++++++--- .../mellanox/mlx5/core/en_accel/ktls_txrx.h | 4 +++ .../net/ethernet/mellanox/mlx5/core/en_rx.c | 4 +++ 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c b/d= rivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c index 5fbc92269585..da2d1eb52c13 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c @@ -320,7 +320,6 @@ resync_post_get_progress_params(struct mlx5e_icosq *sq, err_free: kfree(buf); err_out: - priv_rx->rq_stats->tls_resync_req_skip++; return err; } =20 @@ -339,14 +338,19 @@ static void resync_handle_work(struct work_struct *wo= rk) =20 if (unlikely(test_bit(MLX5E_PRIV_RX_FLAG_DELETING, priv_rx->flags))) { mlx5e_ktls_priv_rx_put(priv_rx); + priv_rx->rq_stats->tls_resync_req_skip++; + tls_offload_rx_resync_async_request_cancel(&resync->core); return; } =20 c =3D resync->priv->channels.c[priv_rx->rxq]; sq =3D &c->async_icosq; =20 - if (resync_post_get_progress_params(sq, priv_rx)) + if (resync_post_get_progress_params(sq, priv_rx)) { + priv_rx->rq_stats->tls_resync_req_skip++; + tls_offload_rx_resync_async_request_cancel(&resync->core); mlx5e_ktls_priv_rx_put(priv_rx); + } } =20 static void resync_init(struct mlx5e_ktls_rx_resync_ctx *resync, @@ -425,6 +429,7 @@ void mlx5e_ktls_handle_get_psv_completion(struct mlx5e_= icosq_wqe_info *wi, { struct mlx5e_ktls_rx_resync_buf *buf =3D wi->tls_get_params.buf; struct mlx5e_ktls_offload_context_rx *priv_rx; + struct tls_offload_resync_async *async_resync; struct tls_offload_context_rx *rx_ctx; u8 tracker_state, auth_state, *ctx; struct device *dev; @@ -433,8 +438,12 @@ void mlx5e_ktls_handle_get_psv_completion(struct mlx5e= _icosq_wqe_info *wi, priv_rx =3D buf->priv_rx; dev =3D mlx5_core_dma_dev(sq->channel->mdev); rx_ctx =3D tls_offload_ctx_rx(tls_get_ctx(priv_rx->sk)); - if (unlikely(test_bit(MLX5E_PRIV_RX_FLAG_DELETING, priv_rx->flags))) + async_resync =3D rx_ctx->resync_async; + if (unlikely(test_bit(MLX5E_PRIV_RX_FLAG_DELETING, priv_rx->flags))) { + priv_rx->rq_stats->tls_resync_req_skip++; + tls_offload_rx_resync_async_request_cancel(async_resync); goto out; + } =20 dma_sync_single_for_cpu(dev, buf->dma_addr, PROGRESS_PARAMS_PADDED_SIZE, DMA_FROM_DEVICE); @@ -445,11 +454,12 @@ void mlx5e_ktls_handle_get_psv_completion(struct mlx5= e_icosq_wqe_info *wi, if (tracker_state !=3D MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_TRA= CKING || auth_state !=3D MLX5E_TLS_PROGRESS_PARAMS_AUTH_STATE_NO_OFFLOAD) { priv_rx->rq_stats->tls_resync_req_skip++; + tls_offload_rx_resync_async_request_cancel(async_resync); goto out; } =20 hw_seq =3D MLX5_GET(tls_progress_params, ctx, hw_resync_tcp_sn); - tls_offload_rx_resync_async_request_end(rx_ctx->resync_async, + tls_offload_rx_resync_async_request_end(async_resync, cpu_to_be32(hw_seq)); priv_rx->rq_stats->tls_resync_req_end++; out: @@ -475,8 +485,10 @@ static bool resync_queue_get_psv(struct sock *sk) =20 resync =3D &priv_rx->resync; mlx5e_ktls_priv_rx_get(priv_rx); - if (unlikely(!queue_work(resync->priv->tls->rx_wq, &resync->work))) + if (unlikely(!queue_work(resync->priv->tls->rx_wq, &resync->work))) { mlx5e_ktls_priv_rx_put(priv_rx); + return false; + } =20 return true; } @@ -561,6 +573,18 @@ void mlx5e_ktls_rx_resync(struct net_device *netdev, s= truct sock *sk, resync_handle_seq_match(priv_rx, c); } =20 +void +mlx5e_ktls_rx_resync_async_request_cancel(struct mlx5e_icosq_wqe_info *wi) +{ + struct mlx5e_ktls_offload_context_rx *priv_rx; + struct mlx5e_ktls_rx_resync_buf *buf; + + buf =3D wi->tls_get_params.buf; + priv_rx =3D buf->priv_rx; + priv_rx->rq_stats->tls_resync_req_skip++; + tls_offload_rx_resync_async_request_cancel(&priv_rx->resync.core); +} + /* End of resync section */ =20 void mlx5e_ktls_handle_rx_skb(struct mlx5e_rq *rq, struct sk_buff *skb, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h b= /drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h index f87b65c560ea..cb08799769ee 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h @@ -29,6 +29,10 @@ void mlx5e_ktls_handle_get_psv_completion(struct mlx5e_i= cosq_wqe_info *wi, void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq, struct mlx5e_tx_wqe_info *wi, u32 *dma_fifo_cc); + +void +mlx5e_ktls_rx_resync_async_request_cancel(struct mlx5e_icosq_wqe_info *wi); + static inline bool mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq, struct mlx5e_tx_wqe_info *wi, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/= ethernet/mellanox/mlx5/core/en_rx.c index 1c79adc51a04..26621a2972ec 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -1036,6 +1036,10 @@ int mlx5e_poll_ico_cq(struct mlx5e_cq *cq) netdev_WARN_ONCE(cq->netdev, "Bad OP in ICOSQ CQE: 0x%x\n", get_cqe_opcode(cqe)); +#ifdef CONFIG_MLX5_EN_TLS + if (wi->wqe_type =3D=3D MLX5E_ICOSQ_WQE_GET_PSV_TLS) + mlx5e_ktls_rx_resync_async_request_cancel(wi); +#endif mlx5e_dump_error_cqe(&sq->cq, sq->sqn, (struct mlx5_err_cqe *)cqe); mlx5_wq_cyc_wqe_dump(&sq->wq, ci, wi->num_wqebbs); --=20 2.31.1