From patchwork Sat May 9 08:28:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 219569 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4A7BC28CBC for ; Sat, 9 May 2020 08:29:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7452624957 for ; Sat, 9 May 2020 08:29:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="XtjwHyjn" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727932AbgEII3Z (ORCPT ); Sat, 9 May 2020 04:29:25 -0400 Received: from mail-eopbgr80077.outbound.protection.outlook.com ([40.107.8.77]:60182 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727785AbgEII3X (ORCPT ); Sat, 9 May 2020 04:29:23 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jTDp4bh4wAdFaQ/anX+WzZ9BdlwHV34yib+JAYD7uZCN+z0kfOr5XwqF9taiUzrUTbg3tfRm1Kgcq6CszMe4Eifn28U873ii5U/AxPIrDUSI0bT97bFVtT0rXOG2AKnhKBFK4pp6MgFNjzU/ywl5a7oLLcRS158o/7zumMFG/9fwkHp7IrnK7kW/bXrryH5sV5dysCX7uGv9ch/oEJDTN9YVlf1ycw9vq1/8R4v6NQGJOQ7cApwXIgfV2KAi0k0a+Cry732kywFVZHRbnBcK1QLsPmlmfjHvTiUfxzBGUks1A04UUYIw/XzXV1on5YK9JYjJ+SluUMoHHfR8iUt/UQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h3JnDGZ35CBj9Dj/BZAiHQM0KRR1LPfKU1KZPAw0IMg=; b=Yuqc7drgGn/aZfNUuF5xRtKFswjcOCcx8n2AiN/h4Hp9uP5D+CtQLVx8e4JMAFuWyY0ms0Yp688SRyzt3mrqTRYyfydcKEQ3cUfGRfjQlQugL2oECv84SJeC5hqx3DDkY8df78OklOgkWjlp7hN7/Q6A9mY3/u9Qvrd4QwYBnPKYpnHY+8j/Rm/H7VYN5DfRKmCpoQBWWrQl3gXf3kJEWWrrh9pjlg368f11R/7bqPUIwSWZSJSWcoezMo0zrm0bbIPl5JkPHC9FcFEzigS/TUXxWIPgZFbg1yevtWemp6/HdaYsrwOhUpcyomLJ9TIC3AgwHV/gK36BX5wvFLQpgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h3JnDGZ35CBj9Dj/BZAiHQM0KRR1LPfKU1KZPAw0IMg=; b=XtjwHyjnwdGM+XfvcbHcPtnCVp0DaW0l38AmmH83Ax3tUWSfDo5ISK2/7nGuOH+UYwnH4fACaicZZ5UnJLAN8Fdr4tfVXEcGtD8WVfCxvM3Kh9xGoz7Nny2i9RNkBB4DO3/gRbIq9ViApy0DOUjOlNF3i8992ZMOVG32/iggMQQ= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none; davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB4813.eurprd05.prod.outlook.com (2603:10a6:803:52::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Sat, 9 May 2020 08:29:17 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2979.033; Sat, 9 May 2020 08:29:17 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Maxim Mikityanskiy , Tariq Toukan , Saeed Mahameed Subject: [net-next 01/13] net/mlx5e: Return bool from TLS and IPSEC offloads Date: Sat, 9 May 2020 01:28:44 -0700 Message-Id: <20200509082856.97337-2-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200509082856.97337-1-saeedm@mellanox.com> References: <20200509082856.97337-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Sat, 9 May 2020 08:29:14 +0000 X-Mailer: git-send-email 2.25.4 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6bb287a1-9ea6-440e-8c59-08d7f3f30fec X-MS-TrafficTypeDiagnostic: VI1PR05MB4813:|VI1PR05MB4813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-Forefront-PRVS: 03982FDC1D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rVurbufS922wFGVv9G33XlesrX1zFo/naKnbyHdCgFq+Zga1dthfZFJjzRVT9OON7uNFz1GfP5M7/VYMsmnlxRqJ/xGfJNFNl++8ppr5N2cF1ftybpSddGGuQxPuOVG8NRO0yzyZj8ubBngBaxrS5Ny8P9YNlD1xLfzixX8OpK9C+UgrJK60LPiIZfyQxsp7oMnGjleQIGG8KUvud8EsdzI3We4LRmjfj+2rqj1biPhTzvA36xHIijZN5+vQE5yLgDOPlhOItp8NF18CmAKoq516+2ryAZgX9k0CInyVQJr4zwNaZZ0yR/Tc3XIz06k9H6ggo+VuFumytRCKD/ZV2YSHezCexNOSofAzzvDRjJWNyaLOJjWcgGrUiiWqRP1SkKni1plRFmLCKqaYmATpjC0mm9SwPJgfSnX4v7zLvtMAxMVAoz+s1hfTXtHQHQ6ujpeebAb52LssDPNU92xYn6Yyyn+UdNNTnPhy52bA+iE82eDJe5OAw/Frk8py2w8jGINFaEZlO72+UhvJi+oU5+KeNM8BjlBpRiDSY1HtyvirytG0PMgo3ehvDWF2f8QM X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(396003)(346002)(136003)(39860400002)(376002)(33430700001)(26005)(6506007)(2616005)(6666004)(4326008)(6512007)(30864003)(1076003)(6486002)(36756003)(8936002)(33440700001)(66556008)(66476007)(5660300002)(54906003)(956004)(8676002)(316002)(107886003)(66946007)(2906002)(16526019)(52116002)(86362001)(186003)(478600001)(54420400002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ApOGrV9aZQNV5nvd9XFagqS0/MZbqly9P/87FrDCvOPPNfXh3D+rx73SE97wkofpQyVd7GI8AIUJmyCybqI9bbzlANajCB0iIkyZKwUuGcyHrzepQcLPhpLWyCAxb6v4vSeCRSckvXoh/7meMbEhE2JyhmSKCiD/LG7fO88d95bcNdmturQJ/lW479sgdvM0YQ88Q2fra6eLoUteNhMVoxJTyYACj/XJmZ2Idvqv0pGIXUUQ19JKMkpvf/UWZV3AXmg95q/sPufd+fG1g7VizmAhtYll/IAQ0i+RzIEdejDe/LHPWc0f9rGRduyYF6TkzTEJkJUfUzruwXpdTtOeTpDCXhN9uOPj6gMicGM3afYhJKUtFIbkZveNvgExPvbyPnn1PaKcbwoIgiZqjEVl2UzsJeDCN6iI4WFfiPpZZI9MxtskuVs9fHIAM2OD8fbF97WZOPjUquacgsYhRu0QG5i1T/vleiA0l8FFTkWvM+U= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6bb287a1-9ea6-440e-8c59-08d7f3f30fec X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2020 08:29:16.9635 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: h5KZ0SRb67xgDNgEqMFp7KXRroTP75YBB74oVHAJmLsnutxl3v0m80USSnp/vRh3NLEFyKQBbBhiy7xaw1fsFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4813 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Maxim Mikityanskiy TLS and IPSEC offloads currently return struct sk_buff *, but the value is either NULL or the same skb that was passed as a parameter. Return bool instead to provide stronger guarantees to the calling code (it won't need to support handling a different SKB that could be potentially returned before this change) and to simplify restructuring this code in the following commits. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed --- .../mellanox/mlx5/core/en_accel/en_accel.h | 23 ++++----- .../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 12 ++--- .../mellanox/mlx5/core/en_accel/ipsec_rxtx.h | 6 +-- .../mellanox/mlx5/core/en_accel/ktls.h | 7 ++- .../mellanox/mlx5/core/en_accel/ktls_tx.c | 11 ++--- .../mellanox/mlx5/core/en_accel/tls_rxtx.c | 48 ++++++++----------- .../mellanox/mlx5/core/en_accel/tls_rxtx.h | 8 ++-- .../net/ethernet/mellanox/mlx5/core/en_tx.c | 3 +- 8 files changed, 50 insertions(+), 68 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h index a6f65d4b2f36..6249998444c0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h @@ -102,33 +102,30 @@ mlx5e_udp_gso_handle_tx_skb(struct sk_buff *skb) udp_hdr(skb)->len = htons(payload_len); } -static inline struct sk_buff * -mlx5e_accel_handle_tx(struct sk_buff *skb, - struct mlx5e_txqsq *sq, - struct net_device *dev, - struct mlx5e_tx_wqe **wqe, - u16 *pi) +static inline bool mlx5e_accel_handle_tx(struct sk_buff *skb, + struct mlx5e_txqsq *sq, + struct net_device *dev, + struct mlx5e_tx_wqe **wqe, + u16 *pi) { #ifdef CONFIG_MLX5_EN_TLS if (test_bit(MLX5E_SQ_STATE_TLS, &sq->state)) { - skb = mlx5e_tls_handle_tx_skb(dev, sq, skb, wqe, pi); - if (unlikely(!skb)) - return NULL; + if (unlikely(!mlx5e_tls_handle_tx_skb(dev, sq, skb, wqe, pi))) + return false; } #endif #ifdef CONFIG_MLX5_EN_IPSEC if (test_bit(MLX5E_SQ_STATE_IPSEC, &sq->state)) { - skb = mlx5e_ipsec_handle_tx_skb(dev, *wqe, skb); - if (unlikely(!skb)) - return NULL; + if (unlikely(!mlx5e_ipsec_handle_tx_skb(dev, *wqe, skb))) + return false; } #endif if (skb_is_gso(skb) && skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) mlx5e_udp_gso_handle_tx_skb(skb); - return skb; + return true; } #endif /* __MLX5E_EN_ACCEL_H__ */ diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c index 0dd17514caae..f60eb6a4b57c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c @@ -233,9 +233,9 @@ static void mlx5e_ipsec_set_metadata(struct sk_buff *skb, ntohs(mdata->content.tx.seq)); } -struct sk_buff *mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, - struct mlx5e_tx_wqe *wqe, - struct sk_buff *skb) +bool mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, + struct mlx5e_tx_wqe *wqe, + struct sk_buff *skb) { struct mlx5e_priv *priv = netdev_priv(netdev); struct xfrm_offload *xo = xfrm_offload(skb); @@ -245,7 +245,7 @@ struct sk_buff *mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, struct sec_path *sp; if (!xo) - return skb; + return true; sp = skb_sec_path(skb); if (unlikely(sp->len != 1)) { @@ -281,11 +281,11 @@ struct sk_buff *mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, sa_entry->set_iv_op(skb, x, xo); mlx5e_ipsec_set_metadata(skb, mdata, xo); - return skb; + return true; drop: kfree_skb(skb); - return NULL; + return false; } static inline struct xfrm_state * diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h index db84500b024f..64e948cc3dc5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h @@ -52,9 +52,9 @@ void mlx5e_ipsec_set_iv_esn(struct sk_buff *skb, struct xfrm_state *x, struct xfrm_offload *xo); void mlx5e_ipsec_set_iv(struct sk_buff *skb, struct xfrm_state *x, struct xfrm_offload *xo); -struct sk_buff *mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, - struct mlx5e_tx_wqe *wqe, - struct sk_buff *skb); +bool mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, + struct mlx5e_tx_wqe *wqe, + struct sk_buff *skb); #endif /* CONFIG_MLX5_EN_IPSEC */ diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h index 9daaec244385..742aca8782d6 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h @@ -95,10 +95,9 @@ mlx5e_get_ktls_tx_priv_ctx(struct tls_context *tls_ctx) void mlx5e_ktls_build_netdev(struct mlx5e_priv *priv); void mlx5e_ktls_tx_offload_set_pending(struct mlx5e_ktls_offload_context_tx *priv_tx); -struct sk_buff *mlx5e_ktls_handle_tx_skb(struct net_device *netdev, - struct mlx5e_txqsq *sq, - struct sk_buff *skb, - struct mlx5e_tx_wqe **wqe, u16 *pi); +bool mlx5e_ktls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, + struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, + u16 *pi); void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq, struct mlx5e_tx_wqe_info *wi, u32 *dma_fifo_cc); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index ba973937f0b5..8fcd14803558 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -413,10 +413,9 @@ mlx5e_ktls_tx_handle_ooo(struct mlx5e_ktls_offload_context_tx *priv_tx, return MLX5E_KTLS_SYNC_FAIL; } -struct sk_buff *mlx5e_ktls_handle_tx_skb(struct net_device *netdev, - struct mlx5e_txqsq *sq, - struct sk_buff *skb, - struct mlx5e_tx_wqe **wqe, u16 *pi) +bool mlx5e_ktls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, + struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, + u16 *pi) { struct mlx5e_ktls_offload_context_tx *priv_tx; struct mlx5e_sq_stats *stats = sq->stats; @@ -474,9 +473,9 @@ struct sk_buff *mlx5e_ktls_handle_tx_skb(struct net_device *netdev, stats->tls_encrypted_bytes += datalen; out: - return skb; + return true; err_out: dev_kfree_skb_any(skb); - return NULL; + return false; } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c index 1d7ddeb7a46b..e8f2c214a8de 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c @@ -184,12 +184,10 @@ static void mlx5e_tls_complete_sync_skb(struct sk_buff *skb, nskb->queue_mapping = skb->queue_mapping; } -static struct sk_buff * -mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, - struct mlx5e_txqsq *sq, struct sk_buff *skb, - struct mlx5e_tx_wqe **wqe, - u16 *pi, - struct mlx5e_tls *tls) +static bool mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, + struct mlx5e_txqsq *sq, struct sk_buff *skb, + struct mlx5e_tx_wqe **wqe, u16 *pi, + struct mlx5e_tls *tls) { u32 tcp_seq = ntohl(tcp_hdr(skb)->seq); struct sync_info info; @@ -217,7 +215,7 @@ mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, if (likely(payload <= -info.sync_len)) /* SKB payload doesn't require offload */ - return skb; + return true; atomic64_inc(&tls->sw_stats.tx_tls_drop_bypass_required); goto err_out; @@ -250,18 +248,16 @@ mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, mlx5e_sq_xmit(sq, nskb, *wqe, *pi, true); *pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); *wqe = MLX5E_TX_FETCH_WQE(sq, *pi); - return skb; + return true; err_out: dev_kfree_skb_any(skb); - return NULL; + return false; } -struct sk_buff *mlx5e_tls_handle_tx_skb(struct net_device *netdev, - struct mlx5e_txqsq *sq, - struct sk_buff *skb, - struct mlx5e_tx_wqe **wqe, - u16 *pi) +bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, + struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, + u16 *pi) { struct mlx5e_priv *priv = netdev_priv(netdev); struct mlx5e_tls_offload_context_tx *context; @@ -270,41 +266,35 @@ struct sk_buff *mlx5e_tls_handle_tx_skb(struct net_device *netdev, int datalen; u32 skb_seq; - if (MLX5_CAP_GEN(sq->channel->mdev, tls_tx)) { - skb = mlx5e_ktls_handle_tx_skb(netdev, sq, skb, wqe, pi); - goto out; - } + if (MLX5_CAP_GEN(sq->channel->mdev, tls_tx)) + return mlx5e_ktls_handle_tx_skb(netdev, sq, skb, wqe, pi); if (!skb->sk || !tls_is_sk_tx_device_offloaded(skb->sk)) - goto out; + return true; datalen = skb->len - (skb_transport_offset(skb) + tcp_hdrlen(skb)); if (!datalen) - goto out; + return true; tls_ctx = tls_get_ctx(skb->sk); if (unlikely(tls_ctx->netdev != netdev)) - goto out; + return true; skb_seq = ntohl(tcp_hdr(skb)->seq); context = mlx5e_get_tls_tx_context(tls_ctx); expected_seq = context->expected_seq; - if (unlikely(expected_seq != skb_seq)) { - skb = mlx5e_tls_handle_ooo(context, sq, skb, wqe, pi, priv->tls); - goto out; - } + if (unlikely(expected_seq != skb_seq)) + return mlx5e_tls_handle_ooo(context, sq, skb, wqe, pi, priv->tls); if (unlikely(mlx5e_tls_add_metadata(skb, context->swid))) { atomic64_inc(&priv->tls->sw_stats.tx_tls_drop_metadata); dev_kfree_skb_any(skb); - skb = NULL; - goto out; + return false; } context->expected_seq = skb_seq + datalen; -out: - return skb; + return true; } static int tls_update_resync_sn(struct net_device *netdev, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h index 90bc1f2384c8..890d452bf1ae 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h @@ -40,11 +40,9 @@ #include "en.h" #include "en/txrx.h" -struct sk_buff *mlx5e_tls_handle_tx_skb(struct net_device *netdev, - struct mlx5e_txqsq *sq, - struct sk_buff *skb, - struct mlx5e_tx_wqe **wqe, - u16 *pi); +bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, + struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, + u16 *pi); void mlx5e_tls_handle_rx_skb(struct net_device *netdev, struct sk_buff *skb, u32 *cqe_bcnt); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c index 583e1b201b75..7a6ed72ae00a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c @@ -394,8 +394,7 @@ netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev) wqe = MLX5E_TX_FETCH_WQE(sq, pi); /* might send skbs and update wqe and pi */ - skb = mlx5e_accel_handle_tx(skb, sq, dev, &wqe, &pi); - if (unlikely(!skb)) + if (unlikely(!mlx5e_accel_handle_tx(skb, sq, dev, &wqe, &pi))) return NETDEV_TX_OK; return mlx5e_sq_xmit(sq, skb, wqe, pi, netdev_xmit_more()); From patchwork Sat May 9 08:28:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 219568 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F9C8C28CBC for ; Sat, 9 May 2020 08:29:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6721820CC7 for ; Sat, 9 May 2020 08:29:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="CIb2pC9L" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727944AbgEII3b (ORCPT ); Sat, 9 May 2020 04:29:31 -0400 Received: from mail-eopbgr80077.outbound.protection.outlook.com ([40.107.8.77]:60182 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727785AbgEII3b (ORCPT ); Sat, 9 May 2020 04:29:31 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bDlgCFjQSbq6UplyZV8NrwtI4naTbqE2mlEjK9vyDSYZ1ZgFKsI74eSugtwbLRW2T50rCcx4RAaH2U8T5kuScmwqxd8XsJ/rscFKMiuHGI42HSIpEwihpZZ/STwRVZHnUTjavQRz+MeeyPN0ubCuIwH65NK6YgzhyY+nMAKgnQddMltqZ4/djUF6NAdm/oI8jRPjvDtGOq6rAiIb8WMWljLZdWJzrRspunjrOzQRXKnhAddb0KhXzn1Y7J24VAtLpfyMa8seuBJNYV2f4hAAQ/s9EfB3Vgbgxt9I+DzmB1XKZxt7L877VNGjpYODqGSAWAf0vi0KOaSKAT27DXtmPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pzRiGnMKhQCR2irlgHLRtpek1wIzg0cpMDOfVZ2KeeM=; b=RuxYRBfeCA9bppeMxZ3xSSzl+5p5a+RtldldNMr+BLldxq3qB4bbVJLx0AeNX8H+ds7Wl1nB17P1+rWjkDYD3pQ42JfGxr+yu0QTRMRRHKITMggDMSy3Osv551Q768YaOti8ukLWr24FF1fRreMXoOvKU+eBqkKt/VvzZgIONlZmS6fxw1HWcJT9mINvRcApd3SPceiJaFmFjO3oISWAXOh0WtCVPO5HiILr1LFnoDFf9ubiRoWSOIeem0UduuKyowUncItSUY2/Dj7IH3vTpxi47Lr4+4F/M3t7jN0IT0wYLUiYvgbnrLUla4Os1V0KsapjC/bZ5qVXZMTk4MBG0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pzRiGnMKhQCR2irlgHLRtpek1wIzg0cpMDOfVZ2KeeM=; b=CIb2pC9Lq/XrwGiNW5O1l1Sybr72P0yc5uzZXyE1XR2/M7Y7jdl1Hb64FrEP4OzgfR/Lmu8iTaujSvyJZl3Zoi4x2E01u+w8fG+vrSbhWIPXfqcmybyCj5qzlX1lQCIZ1moX6hi6Q5UtmlYGtVISc7N+1pHRO6QVTIVAnUp0488= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none; davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB4813.eurprd05.prod.outlook.com (2603:10a6:803:52::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Sat, 9 May 2020 08:29:21 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2979.033; Sat, 9 May 2020 08:29:21 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Maxim Mikityanskiy , Tariq Toukan , Saeed Mahameed Subject: [net-next 03/13] net/mlx5e: Return void from mlx5e_sq_xmit and mlx5i_sq_xmit Date: Sat, 9 May 2020 01:28:46 -0700 Message-Id: <20200509082856.97337-4-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200509082856.97337-1-saeedm@mellanox.com> References: <20200509082856.97337-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Sat, 9 May 2020 08:29:19 +0000 X-Mailer: git-send-email 2.25.4 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 47ab2841-0794-4146-2f3a-08d7f3f312b5 X-MS-TrafficTypeDiagnostic: VI1PR05MB4813:|VI1PR05MB4813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2331; X-Forefront-PRVS: 03982FDC1D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5q2AhjHTJ1gDMRNohWmoHotZeK0rF8PW0BeQreH0apzS2gqnegZ3m1QhmVTuXDK74eHFHV1CqvfXiuqVG9o9wx8n5zuFYyg5bjVp7QwylmZ4ErgZSySVu3eaTylwy6+km6vOR38PPzaWZ+2PI409jBkzepA6lHbYU0A4RvK9j8b+S1p+VVLJ4VxXV4DXvAspPdy+CNsb5xopha1NkpXPrJHYR44x7Aq4c4BkdAFBl68Meu/YBbAFfGWLoDYaKbvm7mYCIU3fnPxTV1doCk/mAaMzHpzea1gS1Wyd2sI15E4ofRIJkh84FKpvLb167pFGa50pytyTAXPdoRq7KSKsX9QzWUt0Ol9H7PNqPd82yQgN5EIFcUVlZrjXI//2HFwPy6mxXbp/9URjOax5Tryk6c/uGr0z5YOgalQ5xoNB8RiAn+nxUcAP4tPFS0Cre9oC9csCsIEo7EcjPTLS/nVyyusNgw3CmNvXEX59ICDE+r3Gldq/nI0m22S1JqNg7wSbQ82LRuEKsmo3G932NarkBSOblpb7JnCDUli7qdfeGxIC8pgQ7n06RBHhebq4AFRD X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(396003)(346002)(136003)(39860400002)(376002)(33430700001)(26005)(6506007)(2616005)(6666004)(4326008)(6512007)(1076003)(6486002)(36756003)(8936002)(33440700001)(66556008)(66476007)(5660300002)(54906003)(956004)(8676002)(316002)(107886003)(66946007)(2906002)(16526019)(52116002)(86362001)(186003)(478600001)(54420400002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ZYVMF047P+It9Wuq0otE9oKt9YdM3YlJu2iB0A6RwX6FZhTEiNM/jXm2pQTxE9iffsHsrX8ihVtbP9+OLzbPHxEzmxC4C+xM0+GjfvROt3qCGEuePRbapNToTMpQsB3/ZlDcARhSZzdttLfTQyIeAQxgmqTmn4/a1u62Mp6VRpp7fItR+HCOWIkwgdoFj7dXFjNmw/WJsDZtrHTuo3jR69uI9k6yeY0TOT0h5QPv0JBElpuGNw0GDI1yvXKj00mn6ZRy37+BooPvQfeuVguneAemCYtl84Mq9uuSAGp2llgELzAhrLpN4LTnvV2TJe4DCnBar9isrDcBTnG0V4YnL1uk5+bRDqsNqLVgBrr1go8n/RD6RVVTGnNMjxe8UyN7h3FXb3FAtM8JgczexQPFLklvwvYMkJzlOL79BV0vup9wfmm46Z2D8rCj/s9PJMOn+yN/h4Ei1mHVxBJjHueoKmlPF2aXOiFuSnDt+0bEJgM= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47ab2841-0794-4146-2f3a-08d7f3f312b5 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2020 08:29:21.4350 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: irTp/Qb9/yIijV90gC/1h6ivZ5ZFjDb5G00eSkim0RXIGrLdzZPR1VUPkf3vOKzel8Astt082UJew5DQJ44dFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4813 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Maxim Mikityanskiy mlx5e_sq_xmit and mlx5i_sq_xmit always return NETDEV_TX_OK. Drop the return value to simplify the code. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 ++-- .../net/ethernet/mellanox/mlx5/core/en_tx.c | 24 +++++++++---------- .../ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 4 +++- .../ethernet/mellanox/mlx5/core/ipoib/ipoib.h | 5 ++-- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index 0864b76ca2c0..da7fe6aafeed 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -919,8 +919,8 @@ void mlx5e_build_ptys2ethtool_map(void); u16 mlx5e_select_queue(struct net_device *dev, struct sk_buff *skb, struct net_device *sb_dev); netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev); -netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, - struct mlx5e_tx_wqe *wqe, u16 pi, bool xmit_more); +void mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, + struct mlx5e_tx_wqe *wqe, u16 pi, bool xmit_more); void mlx5e_trigger_irq(struct mlx5e_icosq *sq); void mlx5e_completion_event(struct mlx5_core_cq *mcq, struct mlx5_eqe *eqe); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c index 7a6ed72ae00a..bb6d3774eafb 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c @@ -265,8 +265,8 @@ mlx5e_txwqe_complete(struct mlx5e_txqsq *sq, struct sk_buff *skb, mlx5e_notify_hw(wq, sq->pc, sq->uar_map, cseg); } -netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, - struct mlx5e_tx_wqe *wqe, u16 pi, bool xmit_more) +void mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, + struct mlx5e_tx_wqe *wqe, u16 pi, bool xmit_more) { struct mlx5_wq_cyc *wq = &sq->wq; struct mlx5_wqe_ctrl_seg *cseg; @@ -373,13 +373,11 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, mlx5e_txwqe_complete(sq, skb, opcode, ds_cnt, num_wqebbs, num_bytes, num_dma, wi, cseg, xmit_more); - return NETDEV_TX_OK; + return; err_drop: stats->dropped++; dev_kfree_skb_any(skb); - - return NETDEV_TX_OK; } netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev) @@ -395,9 +393,12 @@ netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev) /* might send skbs and update wqe and pi */ if (unlikely(!mlx5e_accel_handle_tx(skb, sq, dev, &wqe, &pi))) - return NETDEV_TX_OK; + goto out; + + mlx5e_sq_xmit(sq, skb, wqe, pi, netdev_xmit_more()); - return mlx5e_sq_xmit(sq, skb, wqe, pi, netdev_xmit_more()); +out: + return NETDEV_TX_OK; } bool mlx5e_poll_tx_cq(struct mlx5e_cq *cq, int napi_budget) @@ -567,9 +568,8 @@ mlx5i_txwqe_build_datagram(struct mlx5_av *av, u32 dqpn, u32 dqkey, dseg->av.key.qkey.qkey = cpu_to_be32(dqkey); } -netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, - struct mlx5_av *av, u32 dqpn, u32 dqkey, - bool xmit_more) +void mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, + struct mlx5_av *av, u32 dqpn, u32 dqkey, bool xmit_more) { struct mlx5i_tx_wqe *wqe; @@ -647,12 +647,10 @@ netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, mlx5e_txwqe_complete(sq, skb, opcode, ds_cnt, num_wqebbs, num_bytes, num_dma, wi, cseg, xmit_more); - return NETDEV_TX_OK; + return; err_drop: stats->dropped++; dev_kfree_skb_any(skb); - - return NETDEV_TX_OK; } #endif diff --git a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c index 068578be00f1..035bd21e5d4e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c @@ -663,7 +663,9 @@ static int mlx5i_xmit(struct net_device *dev, struct sk_buff *skb, struct mlx5_ib_ah *mah = to_mah(address); struct mlx5i_priv *ipriv = epriv->ppriv; - return mlx5i_sq_xmit(sq, skb, &mah->av, dqpn, ipriv->qkey, netdev_xmit_more()); + mlx5i_sq_xmit(sq, skb, &mah->av, dqpn, ipriv->qkey, netdev_xmit_more()); + + return NETDEV_TX_OK; } static void mlx5i_set_pkey_index(struct net_device *netdev, int id) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h index 7844ab5d0ce7..c4aa47018c0e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h @@ -113,9 +113,8 @@ struct mlx5i_tx_wqe { #define MLX5I_SQ_FETCH_WQE(sq, pi) \ ((struct mlx5i_tx_wqe *)mlx5e_fetch_wqe(&(sq)->wq, pi, sizeof(struct mlx5i_tx_wqe))) -netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, - struct mlx5_av *av, u32 dqpn, u32 dqkey, - bool xmit_more); +void mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, + struct mlx5_av *av, u32 dqpn, u32 dqkey, bool xmit_more); void mlx5i_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe); void mlx5i_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats); From patchwork Sat May 9 08:28:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 219567 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E092C28CBC for ; Sat, 9 May 2020 08:29:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DCA0220CC7 for ; Sat, 9 May 2020 08:29:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="sqEwfRY0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727964AbgEII3h (ORCPT ); Sat, 9 May 2020 04:29:37 -0400 Received: from mail-eopbgr80077.outbound.protection.outlook.com ([40.107.8.77]:60182 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727785AbgEII3g (ORCPT ); Sat, 9 May 2020 04:29:36 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jNOdDdjr0VJeSkZffoLizaoxx8OdUuFdQPP8XlZRHPBAEGqZBIcWHJRFt14VIWRXjMVqx/1FcU0KoNgrkjOIzMQ58r+SJNTtNHbCkvOAhwarrn1o4LZmdQxn4FhKQ8QaZ0PeI1FVTLgOhd/5pCJxB40u8Ny3RWzEHKenG/TQDVx9H3zCV/RW+0X+2tQI1VIWPXGg4b8+WEUlWDgwuvTErE0ErCsc4iEEZCroWEeGnywhwW2WDxhXiJ5WGfpXF+NIssI2yZ2ZmoTuvoZQT0kCQSP1MTKpVRBeqanvf0T3g6CQNqLREjqqUZsz4hGOYKMLUklrfXkHp1fkWLEs4aHDpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cv8pltUq0M88SDmgDAlvHr01X6NqLInMu6fxXfBiPss=; b=Qk+pf+doaKjTJ/b7JwiniAqbAe2HTAZo5XEPek0E3f02KWftBYnSKd2UVYx6bkoUJK2eAjbfartLdSKHzhLlU1xXbOUXADkhePa85XgbcjZNrz45FNWQLC2HllMXp0G3Xu/qiYeO7KLJI7s0tJH/uElehB3QlQGsQ+ff8WEPRRqRotNe+WSNyf9oC7u51f5fPDr6OnXiuZphSTt6CvMVGLAup4+9jFzYoDO2g/gCRka1Sb3X2B2NGUGpq5k4tZ8SxchtoHbjzEI/8GZA/+BIBDtToKos0cKvL5VLJHHFh8oFQI4iCBdUEr+S+tHKZeLiEGk7vreRsKDH/wjlTaohEQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cv8pltUq0M88SDmgDAlvHr01X6NqLInMu6fxXfBiPss=; b=sqEwfRY0BbPd6C7nMQ0NQbZfYHMcKNyP3ZkQdwlK3sqmJVIFtYcJtjt/b8ZRiD2yAY+c3CckYlB3FQElEHZPIHwIL4GSLgGYNqPaQjuhhyg+6YZLg9aequJZAVUWQKgoRaLs6Nxc7UYNThCFgHvvTjZ6iKd8pzOuuUjMaUBQjt8= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none; davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB4813.eurprd05.prod.outlook.com (2603:10a6:803:52::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Sat, 9 May 2020 08:29:26 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2979.033; Sat, 9 May 2020 08:29:26 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Maxim Mikityanskiy , Tariq Toukan , Saeed Mahameed Subject: [net-next 05/13] net/mlx5e: Make TLS offload independent of wqe and pi Date: Sat, 9 May 2020 01:28:48 -0700 Message-Id: <20200509082856.97337-6-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200509082856.97337-1-saeedm@mellanox.com> References: <20200509082856.97337-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Sat, 9 May 2020 08:29:24 +0000 X-Mailer: git-send-email 2.25.4 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8e58734d-f189-458d-cb01-08d7f3f31566 X-MS-TrafficTypeDiagnostic: VI1PR05MB4813:|VI1PR05MB4813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:854; X-Forefront-PRVS: 03982FDC1D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FmZ2rcK/8E7LP7cwEwC8KE/QiMqfGjJlXSQTRgJcTt6NnZjbUaGrgXa+YZK5VcFU9GojA6QVuDC23uYITn4hqgH/RmLlq79VOWSTp+Yio0WsWOJwUKDeO6Kuf/OS69MXZFwfovJpfJ9WygICN0bj+l76Q2quOcjfzaScxCEAc/lqFsZ7Y+9eU24SkS2sLq1wuBNpuEmgnW1uLShlojnTzP31ed8cHTqNqQj2p3Fa+acj+VH00JIxqFQr5uy+xPzDnjJBxzg91u9zOjJoZYMqUM6ZVn7zwSaDyFpsz5+gUfIBiq1BeyQmjgmGA7HZJ1f92qSFTDkYXVJ4N+ujJSUSzJ9tr5uj5gmAQFpACaFHGceRBWUd9u+T3Jdd4QRhxfQo28XKoexWMn/a400zS1kR5W3kWco8QooDBq+02/RMmXyECHhRul9VWdWuaXChOX0NHtNF0M9TJPH4DTQ9ZCnsTb97SD530trB51BFFACx6tzri+/G29kuM9kdO9xzDRfF8koOWs+9HhSKJr+8wWeogbtRO1xZpK3+DSaEuiR0ZBeqe2Nq1ngX/RbJd1OlXM3e X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(396003)(346002)(136003)(39860400002)(376002)(33430700001)(26005)(6506007)(2616005)(6666004)(4326008)(6512007)(1076003)(6486002)(36756003)(8936002)(33440700001)(66556008)(66476007)(5660300002)(54906003)(956004)(8676002)(316002)(107886003)(66946007)(2906002)(16526019)(52116002)(86362001)(186003)(478600001)(54420400002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: QU2MgGISS28f6NQZG52JQa1OAaVC1i/eJ5SMz0qkPYP7iIcPao1Tw6phnAMBpUGJD3q68pst7FK3udfW1ollAoKW8UQtuCqvdL1AFYl81eEOb24m0/LoHTeYp+Hjr+tJb2lnfECYVW3fwe6fnxDTI/OT8/YC4Zu1RucUc3BND4tSshUu6dG40BKwEBM76wK3/uIQww2jzWMU1JS+goQQtLd8n+L2iDmnIrWXYvMOS4N3prQ3LfCIOGge5QhS/CUNvIIW9judrJ2hyyUUcSPbropMxmGSeNO9Jx6/iz4phgT1sTUKI1MZA6oScIfeiGykYjeKBn+KNMRqnMfVZJ9MbJHesquJ9iX9LQv0abns/vGZJBI+DiZY5zc4Qj4cCzBpKtyg72vQfXqaxtn/RaCxjWMtFE5erl2alACngzLDAqNF7BVbkYfwxzxCIuAwSxUakQHP2Kt3CySF8qQcIbBLkumSX3in1Qi4tdlkFIGkHBk= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e58734d-f189-458d-cb01-08d7f3f31566 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2020 08:29:25.9564 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Yh2EzJyO4ApjRLoXyU6iJsSq4oUiH91ifSzHYTY4hmkO0b2vXTXSi4rapdc8NZPoiMxEZUpeMmmPmfkcsitaHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4813 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Maxim Mikityanskiy TLS offload may write a 32-bit field (tisn) to the cseg of the WQE. To do that, it receives pi and wqe pointers. As TLS offload may also send additional WQEs, it has to update pi and wqe, and in many cases it even doesn't use pi calculated before and wqe zeroed before and does it itself. Also, mlx5e_sq_xmit has to copy the whole cseg if it goes to the mlx5e_fill_sq_frag_edge flow. This all is not efficient. It's more efficient to do the following: 1. Just return tisn from TLS offload and make the caller fill it in a more appropriate place. 2. Calculate pi and clear wqe after calling TLS offload. 3. If TLS offload has to send WQEs, calculate pi and clear wqe just before that. It's already done in all places anyway, so this commit allows to remove some redundant memsets and calls. Copying of cseg will be eliminated in one of the following commits, and all other stuff is done here. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed --- .../mellanox/mlx5/core/en_accel/en_accel.h | 10 +++++++++- .../ethernet/mellanox/mlx5/core/en_accel/ktls.h | 3 +-- .../mellanox/mlx5/core/en_accel/ktls_tx.c | 13 +++---------- .../mellanox/mlx5/core/en_accel/tls_rxtx.c | 17 +++++++++-------- .../mellanox/mlx5/core/en_accel/tls_rxtx.h | 3 +-- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h index c658c8556863..66bfab021d6b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h @@ -109,10 +109,18 @@ static inline bool mlx5e_accel_handle_tx(struct sk_buff *skb, u16 *pi) { #ifdef CONFIG_MLX5_EN_TLS + u32 tls_tisn = 0; + if (test_bit(MLX5E_SQ_STATE_TLS, &sq->state)) { - if (unlikely(!mlx5e_tls_handle_tx_skb(dev, sq, skb, wqe, pi))) + /* May send SKBs and WQEs. */ + if (unlikely(!mlx5e_tls_handle_tx_skb(dev, sq, skb, &tls_tisn))) return false; } + + *pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); + *wqe = MLX5E_TX_FETCH_WQE(sq, *pi); + + (*wqe)->ctrl.tisn = cpu_to_be32(tls_tisn << 8); #endif #ifdef CONFIG_MLX5_EN_IPSEC diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h index 81f8b7467569..7d9d9420f19d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h @@ -96,8 +96,7 @@ void mlx5e_ktls_build_netdev(struct mlx5e_priv *priv); void mlx5e_ktls_tx_offload_set_pending(struct mlx5e_ktls_offload_context_tx *priv_tx); bool mlx5e_ktls_handle_tx_skb(struct tls_context *tls_ctx, struct mlx5e_txqsq *sq, - struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, - u16 *pi, int datalen); + struct sk_buff *skb, u32 *tisn, int datalen); void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq, struct mlx5e_tx_wqe_info *wi, u32 *dma_fifo_cc); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index c61604f3722c..b49d7c1e49dc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -414,20 +414,16 @@ mlx5e_ktls_tx_handle_ooo(struct mlx5e_ktls_offload_context_tx *priv_tx, } bool mlx5e_ktls_handle_tx_skb(struct tls_context *tls_ctx, struct mlx5e_txqsq *sq, - struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, - u16 *pi, int datalen) + struct sk_buff *skb, u32 *tisn, int datalen) { struct mlx5e_ktls_offload_context_tx *priv_tx; struct mlx5e_sq_stats *stats = sq->stats; - struct mlx5_wqe_ctrl_seg *cseg; u32 seq; priv_tx = mlx5e_get_ktls_tx_priv_ctx(tls_ctx); if (unlikely(mlx5e_ktls_tx_offload_test_and_clear_pending(priv_tx))) { mlx5e_ktls_tx_post_param_wqes(sq, priv_tx, false, false); - *pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); - *wqe = MLX5E_TX_FETCH_WQE(sq, *pi); stats->tls_ctx++; } @@ -438,23 +434,20 @@ bool mlx5e_ktls_handle_tx_skb(struct tls_context *tls_ctx, struct mlx5e_txqsq *s switch (ret) { case MLX5E_KTLS_SYNC_DONE: - *pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); - *wqe = MLX5E_TX_FETCH_WQE(sq, *pi); break; case MLX5E_KTLS_SYNC_SKIP_NO_DATA: if (likely(!skb->decrypted)) goto out; WARN_ON_ONCE(1); /* fall-through */ - default: /* MLX5E_KTLS_SYNC_FAIL */ + case MLX5E_KTLS_SYNC_FAIL: goto err_out; } } priv_tx->expected_seq = seq + datalen; - cseg = &(*wqe)->ctrl; - cseg->tisn = cpu_to_be32(priv_tx->tisn << 8); + *tisn = priv_tx->tisn; stats->tls_encrypted_packets += skb_is_gso(skb) ? skb_shinfo(skb)->gso_segs : 1; stats->tls_encrypted_bytes += datalen; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c index 26c59cfbec9b..8e6b0b0ce2e4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c @@ -186,14 +186,15 @@ static void mlx5e_tls_complete_sync_skb(struct sk_buff *skb, static bool mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, struct mlx5e_txqsq *sq, struct sk_buff *skb, - struct mlx5e_tx_wqe **wqe, u16 *pi, struct mlx5e_tls *tls) { u32 tcp_seq = ntohl(tcp_hdr(skb)->seq); + struct mlx5e_tx_wqe *wqe; struct sync_info info; struct sk_buff *nskb; int linear_len = 0; int headln; + u16 pi; int i; sq->stats->tls_ooo++; @@ -245,9 +246,10 @@ static bool mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, sq->stats->tls_resync_bytes += nskb->len; mlx5e_tls_complete_sync_skb(skb, nskb, tcp_seq, headln, cpu_to_be64(info.rcd_sn)); - mlx5e_sq_xmit(sq, nskb, *wqe, *pi, true); - *pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); - *wqe = MLX5E_TX_FETCH_WQE(sq, *pi); + pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); + wqe = MLX5E_TX_FETCH_WQE(sq, pi); + mlx5e_sq_xmit(sq, nskb, wqe, pi, true); + return true; err_out: @@ -256,8 +258,7 @@ static bool mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, } bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, - struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, - u16 *pi) + struct sk_buff *skb, u32 *tisn) { struct mlx5e_priv *priv = netdev_priv(netdev); struct mlx5e_tls_offload_context_tx *context; @@ -278,14 +279,14 @@ bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, goto err_out; if (MLX5_CAP_GEN(sq->channel->mdev, tls_tx)) - return mlx5e_ktls_handle_tx_skb(tls_ctx, sq, skb, wqe, pi, datalen); + return mlx5e_ktls_handle_tx_skb(tls_ctx, sq, skb, tisn, datalen); skb_seq = ntohl(tcp_hdr(skb)->seq); context = mlx5e_get_tls_tx_context(tls_ctx); expected_seq = context->expected_seq; if (unlikely(expected_seq != skb_seq)) - return mlx5e_tls_handle_ooo(context, sq, skb, wqe, pi, priv->tls); + return mlx5e_tls_handle_ooo(context, sq, skb, priv->tls); if (unlikely(mlx5e_tls_add_metadata(skb, context->swid))) { atomic64_inc(&priv->tls->sw_stats.tx_tls_drop_metadata); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h index 890d452bf1ae..3630ed8b1206 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h @@ -41,8 +41,7 @@ #include "en/txrx.h" bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, - struct sk_buff *skb, struct mlx5e_tx_wqe **wqe, - u16 *pi); + struct sk_buff *skb, u32 *tisn); void mlx5e_tls_handle_rx_skb(struct net_device *netdev, struct sk_buff *skb, u32 *cqe_bcnt); From patchwork Sat May 9 08:28:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 219566 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 575DCC28CBC for ; Sat, 9 May 2020 08:29:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 27D3B20CC7 for ; Sat, 9 May 2020 08:29:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="VNgDOVU9" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727980AbgEII3o (ORCPT ); Sat, 9 May 2020 04:29:44 -0400 Received: from mail-eopbgr80054.outbound.protection.outlook.com ([40.107.8.54]:50670 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726214AbgEII3n (ORCPT ); Sat, 9 May 2020 04:29:43 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YxsTrAzzxrd8Dg4VUqCbx8lFnniTGWsXCu7wIIMzntr/1ImRBNVf+0GhLAOQQfGWGvkYQSQYrnxBdry5vFsKbqNxZhOUjvp3j5HXQ4cpWThr6NlzskorbCP5MaDynDJ3X3EAONV8h2PT0IBGi5q4rN1fBMwyVeNjWLh7kuU43EzDXjK4rToLfbwSBkIfz/Z1Co+HTrzEi960qCmkYDumEmQ96CIY9GF/mlxPUJ6nAQKZqvuj8Z4aoslqwnGTSL0ipphTY0MWwVc1VEA6yl5oiFd1v8sUr20m35Qq/gD8a4l8bk52cW2lmtb4+hgTZnjjc/Q67EaOjvQuAUmLE9PHHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o4KoJ608sbO1qeCJqHBHGOWj4Tk+EvcSKgJNuyAlKNM=; b=TUXA3DE50yjbvgiI2SNJs1CqN3y6nzNdDOtPLGSPU8N4wasg3rLVU2jCD+Bs9zSwslXWTswiB5zQeQSG9tr6LOJuNZe9PIhfdmBa9IS+0W2ZRARGyFOW3KEN+O6Wai6eIK+EjhFCFLabyh3pATfNxq1CgjW03moqZfp8B+hkhaXSKyfvtk34wMWnzsPFu+JqIkObiDX+ykMXTtsK9xU8STzymdSSq9ESGGrqpK2zpmBF+2UudNR87LQJbVV5AsZUvczkkj3V0p1vprlomawQtL2CHIrQk45TTjyilG+iMx5dRSg6SRdXf3hwzByhZ3ws5fETPK0hI/zLeFoonS1cMA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o4KoJ608sbO1qeCJqHBHGOWj4Tk+EvcSKgJNuyAlKNM=; b=VNgDOVU9PahxXAz8JzC9MB/VbIPLY0bPbIMYT3ROvVNwcU5TrYcCDwyxKA/xNGY3KFhs+WX4AqQBt7b1BDW3ZAYliLateZtWqQp0ducT1NwbIxB3cycbpQbXSUFmRlZqDt1kDG2Vpsc7DT5KYljcwhOVmOinKFkyYu26NO7M/Ms= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none; davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB4813.eurprd05.prod.outlook.com (2603:10a6:803:52::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Sat, 9 May 2020 08:29:30 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2979.033; Sat, 9 May 2020 08:29:30 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Maxim Mikityanskiy , Tariq Toukan , Saeed Mahameed Subject: [net-next 07/13] net/mlx5e: Split TX acceleration offloads into two phases Date: Sat, 9 May 2020 01:28:50 -0700 Message-Id: <20200509082856.97337-8-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200509082856.97337-1-saeedm@mellanox.com> References: <20200509082856.97337-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Sat, 9 May 2020 08:29:28 +0000 X-Mailer: git-send-email 2.25.4 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f5b2f500-9c76-4fdb-9be8-08d7f3f31809 X-MS-TrafficTypeDiagnostic: VI1PR05MB4813:|VI1PR05MB4813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-Forefront-PRVS: 03982FDC1D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1UWf/h1qDgky+ldEjz6ANwtlsPZBBcTNeEteTY0D3UxMHMY/eY3Ln+ttfFR1sv34ncW8ayZ5RHzJ1hoSCy/5TZ9eP2+ppbwoCiwsyqI0f9RdoKkBIw/w64fQ8zGfK5beIgvaIsfjA/USHE5yQYVJgMO43YB0Rc7rzfN09IkTfNngf8VKCAMZO5r/nQ3eb0szy0TYzK+26I4gUYV7dkEVt98s5jlrRmQ1993HvJEdsnPtRGn8mbLdleWvNH2azccRzH85ACLCiXleA5EHDCqIxAle2b2D5rD8qXR8LPUt9DAFmCAvmI5iEreOqLx4Dm59ij2tKbAO1R8c36i4BaBilswJNJmOS3TFYm6sM0/I6KWAJdGL4fGqEdGdbuiCa4+q65MZa4wyR8Iw5oHanTcLlVlyxiwup7iasqdf3/wCa/3rTkaqymJje+YPJGek/ePblcG6miyfrY75DCG/di3HevUhlvmzY9kmwTrpzQ8QkTxeF5e9iboeiyOhEbQuo4HVkjbcnNBdXhpLAw6LrM3nSLn10O+CLF3rPPC1xO/JbaIJF1IG+3KYf0I3E+TbSnHc X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(136003)(346002)(39860400002)(396003)(366004)(33430700001)(107886003)(66946007)(316002)(2906002)(16526019)(8676002)(956004)(54906003)(66476007)(5660300002)(186003)(478600001)(52116002)(86362001)(4326008)(6512007)(6506007)(2616005)(6666004)(26005)(33440700001)(66556008)(36756003)(30864003)(1076003)(6486002)(8936002)(54420400002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 7Mh+x+alUfyybw8WibrzV6OJBRn505aiIbRR/5oc+fql3LBCRL2UVUzaTE88FWL8356A3XT6aGYTfFgA8tKSaYamPujS8gbiyyJX1Gn3eDAtLtCt01SOqVHqF1vr3JBVLjDhkvW40cMlo15hNp+KpWIkyz8G3K12ECrogvLEExzdJcsNxDkjvQuA3Q5fP3zpHXCtsb7paxKEv8t4ZPtHTlyZBoPIrIv5MwBTgxfXAZmCCWpH+ty2vlKgMPtlEKTcPYXbMEn4Wjnw0EdaSqQikg4K+/Ub22e1oRO6JlZ7WMnBhM9MVWXhwIJOGeIioqh7vqYEaKU9UWH4/SkQEtmDjqJKT7SHTMz4Hq+YOHfExzE1TsHif2l74YKYgfE1lW7cGFT7cefcfPLups3Q8ypo9z9ElyosFZnqR+tZrmxG/gY/PhfiCQrV3TbxpipXRjraD5jB/DsKqmVmW1Qen0a79uRfPt1t5L97HNazoYwbzlo= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5b2f500-9c76-4fdb-9be8-08d7f3f31809 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2020 08:29:30.3858 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GiPeYwaUf/nvSR634eQ7nH1zyWqATyx3vB7p5Lvy94d9wKnbx136dUj3hAGs/m/M0/6oOTERslbkbim1muISpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4813 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Maxim Mikityanskiy After previous modifications, the offloads are no longer called one by one, the pi is calculated and the wqe is cleared on between of TLS and IPSEC offloads, which doesn't quite fit mlx5e_accel_handle_tx's purpose. This patch splits mlx5e_accel_handle_tx into two functions that correspond to two logical phases of running offloads: 1. Before fetching a WQE. Here runs the code that can post WQEs on its own, before the main WQE is fetched. It's the main part of TLS offload. 2. After fetching a WQE. Here runs the code that updates the WQE's fields, but can't post other WQEs any more. It's a minor part of TLS offload that sets the tisn field in the cseg, and eseg-based offloads (currently IPSEC, and later patches will move GENEVE and checksum offloads there, too). It allows to make mlx5e_xmit take care of all actions needed to transmit a packet in the right order, improve the structure of the code and reduce unnecessary operations. The structure will be further improved in the following patches (all eseg-based offloads will be moved to a single place, and reserving space for the main WQE will happen between phase 1 and phase 2 of offloads to eliminate unneeded data movements). Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed --- .../mellanox/mlx5/core/en_accel/en_accel.h | 33 ++++++++++++------- .../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 3 +- .../mellanox/mlx5/core/en_accel/ipsec_rxtx.h | 2 +- .../mellanox/mlx5/core/en_accel/ktls.h | 4 ++- .../mellanox/mlx5/core/en_accel/ktls_tx.c | 5 +-- .../mellanox/mlx5/core/en_accel/tls_rxtx.c | 10 ++++-- .../mellanox/mlx5/core/en_accel/tls_rxtx.h | 8 ++++- .../net/ethernet/mellanox/mlx5/core/en_tx.c | 10 ++++-- 8 files changed, 52 insertions(+), 23 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h index d286fb09955c..fac145dcf2ce 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h @@ -102,35 +102,44 @@ mlx5e_udp_gso_handle_tx_skb(struct sk_buff *skb) udp_hdr(skb)->len = htons(payload_len); } -static inline bool mlx5e_accel_handle_tx(struct sk_buff *skb, - struct mlx5e_txqsq *sq, - struct net_device *dev, - struct mlx5e_tx_wqe **wqe, - u16 *pi) -{ +struct mlx5e_accel_tx_state { #ifdef CONFIG_MLX5_EN_TLS - u32 tls_tisn = 0; + struct mlx5e_accel_tx_tls_state tls; #endif +}; +static inline bool mlx5e_accel_tx_begin(struct net_device *dev, + struct mlx5e_txqsq *sq, + struct sk_buff *skb, + struct mlx5e_accel_tx_state *state) +{ if (skb_is_gso(skb) && skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) mlx5e_udp_gso_handle_tx_skb(skb); #ifdef CONFIG_MLX5_EN_TLS if (test_bit(MLX5E_SQ_STATE_TLS, &sq->state)) { /* May send SKBs and WQEs. */ - if (unlikely(!mlx5e_tls_handle_tx_skb(dev, sq, skb, &tls_tisn))) + if (unlikely(!mlx5e_tls_handle_tx_skb(dev, sq, skb, &state->tls))) return false; } +#endif - *pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); - *wqe = MLX5E_TX_FETCH_WQE(sq, *pi); + return true; +} - (*wqe)->ctrl.tisn = cpu_to_be32(tls_tisn << 8); +static inline bool mlx5e_accel_tx_finish(struct mlx5e_priv *priv, + struct mlx5e_txqsq *sq, + struct sk_buff *skb, + struct mlx5e_tx_wqe *wqe, + struct mlx5e_accel_tx_state *state) +{ +#ifdef CONFIG_MLX5_EN_TLS + mlx5e_tls_handle_tx_wqe(sq, &wqe->ctrl, &state->tls); #endif #ifdef CONFIG_MLX5_EN_IPSEC if (test_bit(MLX5E_SQ_STATE_IPSEC, &sq->state)) { - if (unlikely(!mlx5e_ipsec_handle_tx_skb(dev, &(*wqe)->eth, skb))) + if (unlikely(!mlx5e_ipsec_handle_tx_skb(priv, &wqe->eth, skb))) return false; } #endif diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c index 0e1ac3e68c72..824b87ac8f9e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c @@ -233,11 +233,10 @@ static void mlx5e_ipsec_set_metadata(struct sk_buff *skb, ntohs(mdata->content.tx.seq)); } -bool mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, +bool mlx5e_ipsec_handle_tx_skb(struct mlx5e_priv *priv, struct mlx5_wqe_eth_seg *eseg, struct sk_buff *skb) { - struct mlx5e_priv *priv = netdev_priv(netdev); struct xfrm_offload *xo = xfrm_offload(skb); struct mlx5e_ipsec_metadata *mdata; struct mlx5e_ipsec_sa_entry *sa_entry; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h index bd6f32aee8d6..ba02643586a5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h @@ -52,7 +52,7 @@ void mlx5e_ipsec_set_iv_esn(struct sk_buff *skb, struct xfrm_state *x, struct xfrm_offload *xo); void mlx5e_ipsec_set_iv(struct sk_buff *skb, struct xfrm_state *x, struct xfrm_offload *xo); -bool mlx5e_ipsec_handle_tx_skb(struct net_device *netdev, +bool mlx5e_ipsec_handle_tx_skb(struct mlx5e_priv *priv, struct mlx5_wqe_eth_seg *eseg, struct sk_buff *skb); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h index 7d9d9420f19d..dabbc5f226ce 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h @@ -9,6 +9,7 @@ #ifdef CONFIG_MLX5_EN_TLS #include #include "accel/tls.h" +#include "en_accel/tls_rxtx.h" #define MLX5E_KTLS_STATIC_UMR_WQE_SZ \ (offsetof(struct mlx5e_umr_wqe, tls_static_params_ctx) + \ @@ -96,7 +97,8 @@ void mlx5e_ktls_build_netdev(struct mlx5e_priv *priv); void mlx5e_ktls_tx_offload_set_pending(struct mlx5e_ktls_offload_context_tx *priv_tx); bool mlx5e_ktls_handle_tx_skb(struct tls_context *tls_ctx, struct mlx5e_txqsq *sq, - struct sk_buff *skb, u32 *tisn, int datalen); + struct sk_buff *skb, int datalen, + struct mlx5e_accel_tx_tls_state *state); void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq, struct mlx5e_tx_wqe_info *wi, u32 *dma_fifo_cc); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index b49d7c1e49dc..352b0a3ef0ad 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -414,7 +414,8 @@ mlx5e_ktls_tx_handle_ooo(struct mlx5e_ktls_offload_context_tx *priv_tx, } bool mlx5e_ktls_handle_tx_skb(struct tls_context *tls_ctx, struct mlx5e_txqsq *sq, - struct sk_buff *skb, u32 *tisn, int datalen) + struct sk_buff *skb, int datalen, + struct mlx5e_accel_tx_tls_state *state) { struct mlx5e_ktls_offload_context_tx *priv_tx; struct mlx5e_sq_stats *stats = sq->stats; @@ -447,7 +448,7 @@ bool mlx5e_ktls_handle_tx_skb(struct tls_context *tls_ctx, struct mlx5e_txqsq *s priv_tx->expected_seq = seq + datalen; - *tisn = priv_tx->tisn; + state->tls_tisn = priv_tx->tisn; stats->tls_encrypted_packets += skb_is_gso(skb) ? skb_shinfo(skb)->gso_segs : 1; stats->tls_encrypted_bytes += datalen; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c index 8e6b0b0ce2e4..05454a843b28 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c @@ -258,7 +258,7 @@ static bool mlx5e_tls_handle_ooo(struct mlx5e_tls_offload_context_tx *context, } bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, - struct sk_buff *skb, u32 *tisn) + struct sk_buff *skb, struct mlx5e_accel_tx_tls_state *state) { struct mlx5e_priv *priv = netdev_priv(netdev); struct mlx5e_tls_offload_context_tx *context; @@ -279,7 +279,7 @@ bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, goto err_out; if (MLX5_CAP_GEN(sq->channel->mdev, tls_tx)) - return mlx5e_ktls_handle_tx_skb(tls_ctx, sq, skb, tisn, datalen); + return mlx5e_ktls_handle_tx_skb(tls_ctx, sq, skb, datalen, state); skb_seq = ntohl(tcp_hdr(skb)->seq); context = mlx5e_get_tls_tx_context(tls_ctx); @@ -302,6 +302,12 @@ bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, return false; } +void mlx5e_tls_handle_tx_wqe(struct mlx5e_txqsq *sq, struct mlx5_wqe_ctrl_seg *cseg, + struct mlx5e_accel_tx_tls_state *state) +{ + cseg->tisn = cpu_to_be32(state->tls_tisn << 8); +} + static int tls_update_resync_sn(struct net_device *netdev, struct sk_buff *skb, struct mlx5e_tls_metadata *mdata) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h index 3630ed8b1206..a50d0394df0a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h @@ -40,8 +40,14 @@ #include "en.h" #include "en/txrx.h" +struct mlx5e_accel_tx_tls_state { + u32 tls_tisn; +}; + bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq, - struct sk_buff *skb, u32 *tisn); + struct sk_buff *skb, struct mlx5e_accel_tx_tls_state *state); +void mlx5e_tls_handle_tx_wqe(struct mlx5e_txqsq *sq, struct mlx5_wqe_ctrl_seg *cseg, + struct mlx5e_accel_tx_tls_state *state); void mlx5e_tls_handle_rx_skb(struct net_device *netdev, struct sk_buff *skb, u32 *cqe_bcnt); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c index bb6d3774eafb..f79454746d0d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c @@ -383,16 +383,22 @@ void mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb, netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev) { struct mlx5e_priv *priv = netdev_priv(dev); + struct mlx5e_accel_tx_state accel = {}; struct mlx5e_tx_wqe *wqe; struct mlx5e_txqsq *sq; u16 pi; sq = priv->txq2sq[skb_get_queue_mapping(skb)]; + + /* May send SKBs and WQEs. */ + if (unlikely(!mlx5e_accel_tx_begin(dev, sq, skb, &accel))) + goto out; + pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); wqe = MLX5E_TX_FETCH_WQE(sq, pi); - /* might send skbs and update wqe and pi */ - if (unlikely(!mlx5e_accel_handle_tx(skb, sq, dev, &wqe, &pi))) + /* May update the WQE, but may not post other WQEs. */ + if (unlikely(!mlx5e_accel_tx_finish(priv, sq, skb, wqe, &accel))) goto out; mlx5e_sq_xmit(sq, skb, wqe, pi, netdev_xmit_more()); From patchwork Sat May 9 08:28:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 219565 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6BA36C47254 for ; Sat, 9 May 2020 08:29:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 435AE20CC7 for ; Sat, 9 May 2020 08:29:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="gVqHhJDo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727992AbgEII3r (ORCPT ); Sat, 9 May 2020 04:29:47 -0400 Received: from mail-eopbgr80054.outbound.protection.outlook.com ([40.107.8.54]:50670 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727829AbgEII3q (ORCPT ); Sat, 9 May 2020 04:29:46 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YqNV/b1g8RGFYYuoYx9QfMY5uetIigkoq/lUWvzJt5+xHius5YM9Qm4LqPOzSMOwVAOptQSw5NeKwhV/B2zvh6sIfJv3uWswAbpM78QRX9W5DMfWvAu+8boWmUtZ/hpaQZzgJNZ4iGoxcmftFGh6wj52n67S6YamoxOl5oSEv7jfzjc/MRrLwN/7Q7iW03ncJf70RvKeC+904zyB+f0rkMLJrDwOXOfk41WZtIVmPmG/N25vBaNTP5/ZMeLknm4wcPhQU5xjmhMJPxeT6I0r9l2K9Oo6XNwAgU7aBSuM34gMfEp4h/cORxpANyXh0H3aUemtxqPiP8u+nfQIeWDnzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=arWffuLIXU/57evNpKYZ3W3KYC5kc2C9w9WyXr/j4KM=; b=SwM9jGcGa7daF/Lp47iq0cvqr6Djoozz8NT7brnK4BIKcFTnabh4k3AB8MY6XW0GL8beMTccHtBYpfLb3t/Axs8P8G1zRKVOgAC6S26hF17cF/hRJiWjx3nsuIHMgbtdg49r8LJ+2lLw738FA3A/oXJulbO411Dwf5YxNl3Kxo1Oba2XLh6wytZZ6s22tS+FYjyytSdyN+n2pTPKsk4wViKJSmTTVXfCZg3uszNFYgBxnNbEbMjl3cOjjQVKu1K6PJxadPbZDfcDRMdmO70dcKV9iv65+wTAy0Py3+XRxP5T80pofQPF7N7a+Elvdbos8FWH2YlO2PEVnVvQbZOqSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=arWffuLIXU/57evNpKYZ3W3KYC5kc2C9w9WyXr/j4KM=; b=gVqHhJDoOb6lratCv9SiFfDByV2GaCZ4jXNljeLM999QKdRstsHhTiUYbJ0xsArfzlTkqc8cN8dS3jjpXEAgiNfzR5MKnDcqnBiWkFAzNNNwGTdq0ThB0ESwuqBszyBeKSvoaV6N3JAAGTHx9Vvmt3H9+C6ge5jHwg2ZpuiE0EM= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none; davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB4813.eurprd05.prod.outlook.com (2603:10a6:803:52::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Sat, 9 May 2020 08:29:34 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2979.033; Sat, 9 May 2020 08:29:34 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Tariq Toukan , Maxim Mikityanskiy , Saeed Mahameed Subject: [net-next 09/13] net/mlx5e: kTLS, Do not fill edge for the DUMP WQEs in TX flow Date: Sat, 9 May 2020 01:28:52 -0700 Message-Id: <20200509082856.97337-10-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200509082856.97337-1-saeedm@mellanox.com> References: <20200509082856.97337-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Sat, 9 May 2020 08:29:32 +0000 X-Mailer: git-send-email 2.25.4 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8f842eb0-c156-426e-ae0d-08d7f3f31aa9 X-MS-TrafficTypeDiagnostic: VI1PR05MB4813:|VI1PR05MB4813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2582; X-Forefront-PRVS: 03982FDC1D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7Ux9+VEzJNrsNeB/ofvSncZZ6z2FmYDNAoMkfgzMepqdJLv8vbcxqL6XXhdonf9VigXfsqOFo6UfxxzVKGwsvj3yxY9JtJHTq6QgQSTgcLtFywC62k77Rrj+VOl2TSpYE8CGnWHjNcvxd1+9efmUPQTi2hEnJaaYAzSMcVigEtD0HZx70zIEdQbjKuwlnQb7wDB3Ou1oPNIrxdPt4Ib04Gcf+rUw+KNRGTDmpH7I8NZxYIhFujGj9mf+EiuEBrATYIAPj7K60lOPH2m90BHe38c3cUQ8WLd1urVXMuCGt7UgZabfkdIQdDPNKjoYNpTZukG2md7ma7JuRWyKkwfEwHB1TRfQBJfrYT32K29RiEGDdqmpjjWJrBVPtt4G4fQJVqgf2d5fcttwCaAD8ISECFlOgbyf8ys7EDuxAPmL77/Um6qeP/Ej6KUj5CWDjRdMZQ/Rx2c7O8xfUsNF/8OTt60XcJOS47xVXAZW3xlhCJpPHo7pq7iWo9V/721yULpMZzlMiE04VrPkFZCkVWi8X3vNlDrbmuKgDPhpccF9w42dpev7wpBkZTPrRV8Rd0xg X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(136003)(346002)(39860400002)(396003)(366004)(33430700001)(107886003)(66946007)(316002)(2906002)(16526019)(8676002)(956004)(54906003)(66476007)(5660300002)(186003)(478600001)(52116002)(86362001)(4326008)(6512007)(6506007)(2616005)(6666004)(26005)(33440700001)(66556008)(36756003)(1076003)(6486002)(8936002)(54420400002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Wl/DTjYKtMAAPCtNPpX8SalN/jUUuJn51tPZuxM8HQ5sM+h9SBb1KHEr/RbQwVAoCK9JiH5nzRn9JxIdFISKoECrOS4MG2ScQqgihglDP19H2kOe33eERWqUUYO70GNvBAd8IzSIgCw5t2w3whyEHWit7mQPcW036XTkwyN/rEUUiJ2p+b5KztZaG1cMsWZc7bT1Rfbm4nml0noGZG8q4+5AI0BKDe0JjfmjeCg1RrXW5IsIhG/PPdTGiBn0LCLE6+pW4L42ZJBc6fEHBJp+y6NaJrujbSdw69MSdEqSP3SohhwSbSl3OM6kJtUcNeQLRxwS9BdcLVVakVmLPF2CG3p4n48+JTWZRnrIDNJk+U3R0J9VDypm6v76/qirgo7ensa89vTfaDPARBxR5CB4bE+3XFMRDWi12QNzUViRpj6Fd4j8NmxKPybs1HgSapdYrO75+G8+Cn/L1UgeFDfxlMjvv7irLrqc2JlPwuFBsHc= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f842eb0-c156-426e-ae0d-08d7f3f31aa9 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2020 08:29:34.8183 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DzIaLNmHcNvX+Q/0vEg2m/LZ7L8O9Ou91vcB+TGNhP0aicqRIWlAXd4PWO2vF+2FLsHRdPJ3xDWhKkXs7AWsbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4813 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Tariq Toukan Every single DUMP WQE resides in a single WQEBB. As the pi is calculated per each one separately, there is no real need for a contiguous room for them, allow them to populate different WQ fragments. This reduces WQ waste and improves its utilization. Signed-off-by: Tariq Toukan Reviewed-by: Maxim Mikityanskiy Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index efc271e24b03..1c9d0174676d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -272,6 +272,7 @@ tx_post_resync_dump(struct mlx5e_txqsq *sq, skb_frag_t *frag, u32 tisn, bool fir int fsz; u16 pi; + BUILD_BUG_ON(MLX5E_KTLS_DUMP_WQEBBS != 1); pi = mlx5_wq_cyc_ctr2ix(&sq->wq, sq->pc); wqe = MLX5E_TLS_FETCH_DUMP_WQE(sq, pi); @@ -340,7 +341,6 @@ mlx5e_ktls_tx_handle_ooo(struct mlx5e_ktls_offload_context_tx *priv_tx, struct mlx5e_sq_stats *stats = sq->stats; enum mlx5e_ktls_sync_retval ret; struct tx_sync_info info = {}; - u8 num_wqebbs; int i = 0; ret = tx_sync_info_get(priv_tx, seq, datalen, &info); @@ -369,9 +369,6 @@ mlx5e_ktls_tx_handle_ooo(struct mlx5e_ktls_offload_context_tx *priv_tx, return MLX5E_KTLS_SYNC_DONE; } - num_wqebbs = mlx5e_ktls_dumps_num_wqebbs(sq, info.nr_frags, info.sync_len); - mlx5e_txqsq_get_next_pi(sq, num_wqebbs); - for (; i < info.nr_frags; i++) { unsigned int orig_fsz, frag_offset = 0, n = 0; skb_frag_t *f = &info.frags[i]; From patchwork Sat May 9 08:28:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 219564 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF8ADC28CBC for ; Sat, 9 May 2020 08:29:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 963BE20CC7 for ; Sat, 9 May 2020 08:29:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="E87G/qXg" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728015AbgEII3x (ORCPT ); Sat, 9 May 2020 04:29:53 -0400 Received: from mail-db8eur05on2056.outbound.protection.outlook.com ([40.107.20.56]:9905 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727982AbgEII3u (ORCPT ); Sat, 9 May 2020 04:29:50 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CxEVWl4TmJD+yPwd9gw4x1aKo9xiCtMT4OOMm82F9PdJ8ZVx+DAfzKF/p1hQ4ov7qDlp93myqlLDXtEAFpjYheK/KAhDQgF0Ylj49c/xbW/J5uS1vtdga2uT8CjVZfXWo+FyPjdDxdySOIHMjP/kgRFXmjTvZF70UZomCxxmS4vgSils24g2bQaC8ts+otOm9AIXtxlhtcOt34CaM1JUc8xKkDcKBrS47qHVv3qHuw1XOwsHVg1jZHmFQsRUBwDQF0vSy4+IFoHPGpnPeg4Ys5g71KLpansPqoRe1bXXftdtPAeU0BOUtdxFaa4GfjfTMdPicHZTt/T8tNkhlFtvFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T0wSSjMBh5wClIVN3ATDOsoC0dTu/7czxzHmaGPdjqI=; b=EWruNoJThcI6ZyMKFbhcs+CeqMQchRD9yHy26AIQS7U8duSTrpesmABUP+kzes/jmmzkPaTciQlCHRPO/xchwvBBhKJVaaTFl5QHZ+Yvea76NboZNxoowq0J1+0muMNed71P/hq2Rx8CV+K56uS1f7x2mbP/M8Vohuzap/EYrYFQq8CyCP4i7vRv7nYKwJHnl9QcnrvUtb0V7OKu/LjB0Wss3KGaPXg2RQVk9iYQWROgWFfpvRf98vcwqWnp07AgQs6c8PI0vhwWOJS9RWGhU7XyXU6oEuSKcwgGeHKHi1vMvSvm4VGRv3AwofLPW1L6N03kWmNwdIidFuaS05lkIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T0wSSjMBh5wClIVN3ATDOsoC0dTu/7czxzHmaGPdjqI=; b=E87G/qXgO8B8R32Bd6/As/JCMUK6KWQuGrXjsXlW620TiwkbEuv10iVhgFraZpWX+IVNpxgpb2QY5aRMnpu3SZvY/IeWge2SiGTgCHieQM8ngT8R8nIPHfPpwvXdiG7L4DHu9/ArMevtFtebmPqJSWAiIFR/whwwGdMIbgxkAgA= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none; davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB4813.eurprd05.prod.outlook.com (2603:10a6:803:52::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Sat, 9 May 2020 08:29:39 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2979.033; Sat, 9 May 2020 08:29:39 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Tariq Toukan , Maxim Mikityanskiy , Saeed Mahameed Subject: [net-next 11/13] net/mlx5e: Use struct assignment for WQE info updates Date: Sat, 9 May 2020 01:28:54 -0700 Message-Id: <20200509082856.97337-12-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200509082856.97337-1-saeedm@mellanox.com> References: <20200509082856.97337-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Sat, 9 May 2020 08:29:37 +0000 X-Mailer: git-send-email 2.25.4 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 39c421c1-a92b-435d-adc0-08d7f3f31d97 X-MS-TrafficTypeDiagnostic: VI1PR05MB4813:|VI1PR05MB4813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-Forefront-PRVS: 03982FDC1D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gHHuHhFnm8yuO682ihnzmfR2LvNkErKCzoOdi0SYPoiCD9P6SZi0L042AZ7iJeWOYn3Jd+0nUUuDub7yiD0QOHQH4UCdeX24P0ZY4QQrUQl8jl6QC1MdIx+J1uTUIzd3opBQ883BzCPgqLBRtrRkih/hGVhku/MWYaVm/wSadje45qBz34oLwqiaRRzvfgpk1c3lwakUYRSW6OdUUOCkDIKxqZS43wXj+4MHhMQZAD6lJB5hH0E8i/H2OgA6wxuzk9KUd8E8o1+0IqU/xRQfsZSKeyCImvBLno7Xfcm1QyG56FNAb2GeT0mJO2qs+Up9DjGX0NcKAJoi/YKFbitSFOgLsedRCwKzUotUhe1zSi1jQhYD7gWt/MX8ST1xQqgFyNSWu/14IGgxwBzGyo+wcsCGtlvwMBdCHkbbDCBMztSAYjAGtLKa+eslJYjckudrpTPWscP/6mfER5dc464JDCd+0SLaHfiSdCdJ5B04ovz/IGgKuLMlcl06lIsIA5DWlmn74htWh1l/mPTeNJlRfoPXbHCfff2nrNuPCDE/km7irQlmUj9MLDmho7qpBTri X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(136003)(346002)(39860400002)(396003)(366004)(33430700001)(107886003)(66946007)(316002)(2906002)(16526019)(8676002)(956004)(54906003)(66476007)(5660300002)(186003)(478600001)(52116002)(86362001)(4326008)(6512007)(6506007)(2616005)(6666004)(26005)(33440700001)(66556008)(36756003)(1076003)(6486002)(8936002)(54420400002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: aJhKVjm2xMoZXRMiFrjHF8DP7nVKWIjyMGhRqNpC/LUWiL6Rx9m4nTsEQd24cEvTMQkH5dZJJyVVYUcXStRyWVHnyXqiwH+QJMFa6Al/23DNtSSaNNiwgycW9CxepZc2Zy57obe9YVGcJnetCTI8aqC1PvMNw/4R9MiwwXDsO4Je2VWP+5GVaA+5njrH8o3ujgkXZJe8pyPIGAYeFqSLcP3cPB//wQ9tOIgcwIELNEkowjqyse4hvkKwKo8dMeZBWL2PieL/Bmv9QgKBQgMPi7JT0P1BULYPorRyr3InHPnV8FQ2kaLTRvgf7nD6POBJ6Ju2+3CjhzpgLBXkhtBLsONgUNqclOEfxURsz3HgKAOz3ZAmWCaE1XVD0PdXJo5Dw8BXL6K/fjG+8JD8d8mwzDZI6d5fF+iM5ZQ0QOc5QB4ej9O0qAOMVkZALAEeegPec6U28saO8y7DNNfd7coUeWHBDytby7m/mk9KDeGV1fY= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39c421c1-a92b-435d-adc0-08d7f3f31d97 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2020 08:29:39.7025 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zSQvM2RrU6Mz8ZNZN5jbTZ2tZ7DohsEIsaMXPzdXnC6VOLwTPIl5S950kn0O9lNp7RTbSJVnTAvT2V/bOPVXKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4813 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Tariq Toukan Struct assignment looks more clean, and implies resetting the not assigned fields to zero, instead of holding values from older ring cycles. Signed-off-by: Tariq Toukan Reviewed-by: Maxim Mikityanskiy Signed-off-by: Saeed Mahameed --- .../mellanox/mlx5/core/en_accel/ktls_tx.c | 9 +++++---- .../net/ethernet/mellanox/mlx5/core/en_main.c | 16 ++++++++-------- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 9 ++++++--- .../net/ethernet/mellanox/mlx5/core/en_txrx.c | 7 +++++-- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index 1c9d0174676d..3cd78d9503c1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -108,10 +108,11 @@ static void tx_fill_wi(struct mlx5e_txqsq *sq, { struct mlx5e_tx_wqe_info *wi = &sq->db.wqe_info[pi]; - memset(wi, 0, sizeof(*wi)); - wi->num_wqebbs = num_wqebbs; - wi->num_bytes = num_bytes; - wi->resync_dump_frag_page = page; + *wi = (struct mlx5e_tx_wqe_info) { + .num_wqebbs = num_wqebbs, + .num_bytes = num_bytes, + .resync_dump_frag_page = page, + }; } void mlx5e_ktls_tx_offload_set_pending(struct mlx5e_ktls_offload_context_tx *priv_tx) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 048a4f8601a8..0a9dfc31de3e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -1364,13 +1364,12 @@ static void mlx5e_deactivate_txqsq(struct mlx5e_txqsq *sq) /* last doorbell out, godspeed .. */ if (mlx5e_wqc_has_room_for(wq, sq->cc, sq->pc, 1)) { u16 pi = mlx5_wq_cyc_ctr2ix(wq, sq->pc); - struct mlx5e_tx_wqe_info *wi; struct mlx5e_tx_wqe *nop; - wi = &sq->db.wqe_info[pi]; + sq->db.wqe_info[pi] = (struct mlx5e_tx_wqe_info) { + .num_wqebbs = 1, + }; - memset(wi, 0, sizeof(*wi)); - wi->num_wqebbs = 1; nop = mlx5e_post_nop(wq, sq->sqn, &sq->pc); mlx5e_notify_hw(wq, sq->pc, sq->uar_map, &nop->ctrl); } @@ -1482,20 +1481,21 @@ int mlx5e_open_xdpsq(struct mlx5e_channel *c, struct mlx5e_params *params, /* Pre initialize fixed WQE fields */ for (i = 0; i < mlx5_wq_cyc_get_size(&sq->wq); i++) { - struct mlx5e_xdp_wqe_info *wi = &sq->db.wqe_info[i]; struct mlx5e_tx_wqe *wqe = mlx5_wq_cyc_get_wqe(&sq->wq, i); struct mlx5_wqe_ctrl_seg *cseg = &wqe->ctrl; struct mlx5_wqe_eth_seg *eseg = &wqe->eth; struct mlx5_wqe_data_seg *dseg; + sq->db.wqe_info[i] = (struct mlx5e_xdp_wqe_info) { + .num_wqebbs = 1, + .num_pkts = 1, + }; + cseg->qpn_ds = cpu_to_be32((sq->sqn << 8) | ds_cnt); eseg->inline_hdr.sz = cpu_to_be16(inline_hdr_sz); dseg = (struct mlx5_wqe_data_seg *)cseg + (ds_cnt - 1); dseg->lkey = sq->mkey_be; - - wi->num_wqebbs = 1; - wi->num_pkts = 1; } } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c index d9a5a669b84d..8142b6e70857 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -505,9 +505,12 @@ static int mlx5e_alloc_rx_mpwqe(struct mlx5e_rq *rq, u16 ix) MLX5_OPCODE_UMR); umr_wqe->uctrl.xlt_offset = cpu_to_be16(xlt_offset); - sq->db.wqe_info[pi].opcode = MLX5_OPCODE_UMR; - sq->db.wqe_info[pi].num_wqebbs = MLX5E_UMR_WQEBBS; - sq->db.wqe_info[pi].umr.rq = rq; + sq->db.wqe_info[pi] = (struct mlx5e_icosq_wqe_info) { + .opcode = MLX5_OPCODE_UMR, + .num_wqebbs = MLX5E_UMR_WQEBBS, + .umr.rq = rq, + }; + sq->pc += MLX5E_UMR_WQEBBS; sq->doorbell_cseg = &umr_wqe->ctrl; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c index 869fd58a6775..73293f9c3f63 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c @@ -78,8 +78,11 @@ void mlx5e_trigger_irq(struct mlx5e_icosq *sq) struct mlx5e_tx_wqe *nopwqe; u16 pi = mlx5_wq_cyc_ctr2ix(wq, sq->pc); - sq->db.wqe_info[pi].opcode = MLX5_OPCODE_NOP; - sq->db.wqe_info[pi].num_wqebbs = 1; + sq->db.wqe_info[pi] = (struct mlx5e_icosq_wqe_info) { + .opcode = MLX5_OPCODE_NOP, + .num_wqebbs = 1, + }; + nopwqe = mlx5e_post_nop(wq, sq->sqn, &sq->pc); mlx5e_notify_hw(wq, sq->pc, sq->uar_map, &nopwqe->ctrl); } From patchwork Sat May 9 08:28:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 219563 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D375C28CBC for ; Sat, 9 May 2020 08:29:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 556A920CC7 for ; Sat, 9 May 2020 08:29:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="EuYlwLz/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728035AbgEII34 (ORCPT ); Sat, 9 May 2020 04:29:56 -0400 Received: from mail-db8eur05on2056.outbound.protection.outlook.com ([40.107.20.56]:9905 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726214AbgEII3y (ORCPT ); Sat, 9 May 2020 04:29:54 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kps1pjVXv4V4puTAE/czSv1lSqlrTjzeEyDjqRmkRGg0CRp2hoWpMZdtI/QctaeDK5oSE4Nbs7Y7x9lZ84XTfiTjK/IDRvNbPJYDSiFE5toQXanYUFdcmbXcYK5SEus9lkh7RkHTlx0eb0WByCemwkZWYAYlclLnLs0l7t4IrNmJAWox2kI66tHJN7cBccAVgYmijSc03lNF91OR6sqlxEsThhuiLt6fleh8sUSMCw/AM77UTE3JZXQh5kn/LQphQLjx6Q97XTyorSscttgl3sStidwhoFZd76CmR8P0nKOZjcnABFZCe78/qzhAaJa1jDAO8bDPNRscRd24l6aKPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PLNKoEfVIM14ZwhEku4mFjtKucAlYzMYpq02tiNNMkg=; b=hSDPqhq1P5m258UULcPM6AHtWAtZxWyXLmd5U4kFWOMZssHaVjce0QAUar+46ogD3sOeuEJK7hXORnLUBKviKD9KDMSlg49uKoyKGU72ZDJ0lbbUT0VXDykijPhLB2lrBX2iDfWyLTtzNBvepD1neaiARo78j4bTSWzLdO7dOhnjoYdPjWrOD6VTX1hikicrHnikEOih0a13crXMgKYU1eFkYm8paOA9M4lhJ5YJnU2GwyxI/1XzsMLnjr3WkjwwjtAXMxKFiFwiRmkiuORTXvJy5enXn1oZywI2194fimib4+8dvrksDsFHWh8I0hmi7xAbq+TQ9Yx3KzB/v6m3xg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PLNKoEfVIM14ZwhEku4mFjtKucAlYzMYpq02tiNNMkg=; b=EuYlwLz/Yib8GeqqecMWNHnI6a1zetUKZbPbr7U8RNrcb3HgGNLaSpmAb9M/rF6Y3rkdntBfTqx/zFn8vBRJrrjGaOEIxgX+k2WFsMQnKU8DSv67dv2eBGBrCO8Hp0cQWtAQmB6zX+Euwr7Cvcjte/NK1RBcxmYdRd29aPQZQ2I= Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none; davemloft.net; dmarc=none action=none header.from=mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) by VI1PR05MB4813.eurprd05.prod.outlook.com (2603:10a6:803:52::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.29; Sat, 9 May 2020 08:29:44 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::9d19:a564:b84e:7c19%7]) with mapi id 15.20.2979.033; Sat, 9 May 2020 08:29:44 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Tariq Toukan , Maxim Mikityanskiy , Saeed Mahameed Subject: [net-next 13/13] net/mlx5e: Enhance ICOSQ WQE info fields Date: Sat, 9 May 2020 01:28:56 -0700 Message-Id: <20200509082856.97337-14-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200509082856.97337-1-saeedm@mellanox.com> References: <20200509082856.97337-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR07CA0011.namprd07.prod.outlook.com (2603:10b6:a02:bc::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Sat, 9 May 2020 08:29:42 +0000 X-Mailer: git-send-email 2.25.4 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8624020b-71c8-448b-7e0a-08d7f3f32080 X-MS-TrafficTypeDiagnostic: VI1PR05MB4813:|VI1PR05MB4813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-Forefront-PRVS: 03982FDC1D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +zeDB+UZTZ5KJqdNjZO3Arb/ayVVJnybKjCZ4Z3NoYoU8ZJwqNW1ae6n2X1oUsfmZFjOXxUCMsDdlsigcYpv91Y+kBbx8UBl8STRVgwwhKguObzDGPBOi/6SjfM7ZpVrzfwppng/ygpNRWhe6fd7vl9JxYzn8+S/laLofOo7gJqNdG6NyvpUrx+9di4p1nhusQkgnu3ND7IwwQ0/ZkD7zpJXDyx+NMlEDQa7Wdp8WD7FioWKek++V6vQAD31MiU1HKya4h5VfDJWjxc0GlmM51Mmpzorym+x0vTu66xqFejvBh8V+82wV+x02I0OOR4G/75MOFIz198EheT8WUBEOcEowGOfT5NnzXEV0GbyrdI8cCvM5W4U+Pv30zo7V04XNbNr0lrugR4swfAm5GxoeWAUOub2MYOvBwjOjbtVWAHvV94PfpsXL+ED2KmLUxb9Kkxzo+Lpnd22zTrUfqT5BZRKsSVkPha0/fMXktwYPyis4C4yWr8SjwXepH9kPAA28tLcWJR4tmCe3Szbukqkqeh81NWM8N2QvT/DPGNuL2es9bbiHvsgpqMxaHhNr+Yt X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(136003)(346002)(39860400002)(396003)(366004)(33430700001)(107886003)(66946007)(316002)(2906002)(16526019)(8676002)(956004)(54906003)(66476007)(5660300002)(186003)(478600001)(52116002)(86362001)(4326008)(6512007)(6506007)(2616005)(6666004)(26005)(33440700001)(66556008)(36756003)(1076003)(6486002)(8936002)(54420400002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: oIE4JxTUJzvDmH+PeO17oZCPfPk0c2+cfCPX6oAPv7CU6w+KAHRsXkVZOJHxzcFKlc+ud3YksKGvj2PeDbCV/Y0pB9b+M3YnXO6+ApefLd7QNFHkFUsv+adfIOAatLCRtSa0kSjK88UprXbDe0MMxowMIFaJzbNnELYl0cqOLxm4xFlBmSdxEy4DC0j9mmGNvasDNoKPS33oCbb6vMxcWzcmaaOHN2xSeLV+cK0cGoCWPnufKRoq1jgm5nXQpupV2ENRV8h/iIIsdj0RluUfY36KsIGdSPsyfZ3h2kDrnzD/5wdvPwSTaAzQWOfZUbmHOiPXji3WDZun5djKP2ybimUKw97SiVw8FkABnBVWoKnUv7bgu+yxYozfNevcVr4UUKpmOyVFqMPRvst+lpijewHQcZqLExwyOZCjHW0PXy2DfWqhUwyqmCnQ0GeVMqKUV9QvuBbFcS0dEw21hXDDsiKjEYXHCrhhzqJxx3Wy7fY= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8624020b-71c8-448b-7e0a-08d7f3f32080 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2020 08:29:44.5707 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NQgsnCp3j74DLlm9o0URYYIlgMbAVXPjy0lsW28xEccat5K/gonCTTsPgQjHopBNJJeUQsxaqAHzyajekLZpWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4813 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Tariq Toukan The same WQE opcode might be used in different ICOSQ flows and WQE types. To have a better distinguishability, replace it with an enum that better indicates the WQE type and flow it is used for. Signed-off-by: Tariq Toukan Reviewed-by: Maxim Mikityanskiy Signed-off-by: Saeed Mahameed --- .../net/ethernet/mellanox/mlx5/core/en/txrx.h | 11 ++++++++--- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 17 ++++++++++------- .../net/ethernet/mellanox/mlx5/core/en_txrx.c | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h b/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h index 9e150d160cde..dce2bbbf9109 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h @@ -27,6 +27,11 @@ #define INL_HDR_START_SZ (sizeof(((struct mlx5_wqe_eth_seg *)NULL)->inline_hdr.start)) +enum mlx5e_icosq_wqe_type { + MLX5E_ICOSQ_WQE_NOP, + MLX5E_ICOSQ_WQE_UMR_RX, +}; + static inline bool mlx5e_wqc_has_room_for(struct mlx5_wq_cyc *wq, u16 cc, u16 pc, u16 n) { @@ -120,10 +125,10 @@ static inline u16 mlx5e_txqsq_get_next_pi(struct mlx5e_txqsq *sq, u16 size) } struct mlx5e_icosq_wqe_info { - u8 opcode; + u8 wqe_type; u8 num_wqebbs; - /* Auxiliary data for different opcodes. */ + /* Auxiliary data for different wqe types. */ union { struct { struct mlx5e_rq *rq; @@ -147,7 +152,7 @@ static inline u16 mlx5e_icosq_get_next_pi(struct mlx5e_icosq *sq, u16 size) /* Fill SQ frag edge with NOPs to avoid WQE wrapping two pages. */ for (; wi < edge_wi; wi++) { *wi = (struct mlx5e_icosq_wqe_info) { - .opcode = MLX5_OPCODE_NOP, + .wqe_type = MLX5E_ICOSQ_WQE_NOP, .num_wqebbs = 1, }; mlx5e_post_nop(wq, sq->sqn, &sq->pc); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c index 8142b6e70857..779600bebcca 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -506,7 +506,7 @@ static int mlx5e_alloc_rx_mpwqe(struct mlx5e_rq *rq, u16 ix) umr_wqe->uctrl.xlt_offset = cpu_to_be16(xlt_offset); sq->db.wqe_info[pi] = (struct mlx5e_icosq_wqe_info) { - .opcode = MLX5_OPCODE_UMR, + .wqe_type = MLX5E_ICOSQ_WQE_UMR_RX, .num_wqebbs = MLX5E_UMR_WQEBBS, .umr.rq = rq, }; @@ -619,15 +619,18 @@ int mlx5e_poll_ico_cq(struct mlx5e_cq *cq) break; } - if (likely(wi->opcode == MLX5_OPCODE_UMR)) + switch (wi->wqe_type) { + case MLX5E_ICOSQ_WQE_UMR_RX: wi->umr.rq->mpwqe.umr_completed++; - else if (unlikely(wi->opcode != MLX5_OPCODE_NOP)) + break; + case MLX5E_ICOSQ_WQE_NOP: + break; + default: netdev_WARN_ONCE(cq->channel->netdev, - "Bad OPCODE in ICOSQ WQE info: 0x%x\n", - wi->opcode); - + "Bad WQE type in ICOSQ WQE info: 0x%x\n", + wi->wqe_type); + } } while (!last_wqe); - } while ((++i < MLX5E_TX_CQ_POLL_BUDGET) && (cqe = mlx5_cqwq_get_cqe(&cq->wq))); sq->cc = sqcc; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c index 73293f9c3f63..8480278f2ee2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c @@ -79,7 +79,7 @@ void mlx5e_trigger_irq(struct mlx5e_icosq *sq) u16 pi = mlx5_wq_cyc_ctr2ix(wq, sq->pc); sq->db.wqe_info[pi] = (struct mlx5e_icosq_wqe_info) { - .opcode = MLX5_OPCODE_NOP, + .wqe_type = MLX5E_ICOSQ_WQE_NOP, .num_wqebbs = 1, };