From patchwork Sat Jul 8 01:57:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 129390 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E6D2942DFC; Sat, 8 Jul 2023 03:57:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C5E6842D20; Sat, 8 Jul 2023 03:57:28 +0200 (CEST) Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) by mails.dpdk.org (Postfix) with ESMTP id D0C79427F5 for ; Sat, 8 Jul 2023 03:57:25 +0200 (CEST) Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-2632336f75fso1765606a91.3 for ; Fri, 07 Jul 2023 18:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20221208.gappssmtp.com; s=20221208; t=1688781445; x=1691373445; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AlLKomwYSQSLF+t+bBhNWFBQ+maS7GUN7rYNCJ7Iq7I=; b=oiskkT0VOJhG1oEzMrq5c4noMKDOpbUeBEybjH4/z2LKHHQUvJ/+5LnNBS9ihdglP4 3+8pXL/LVUCNORA/nslY22/r74vP9OJT6BslArjq+gsw0CljaXHlKIpuEvdfoBd+qxZB WuF46tqt1EPL6dm+njv1UgLMOWWKekFjjXB6fqE6PRJjHjeYXj3xsyJgUU1rLdEC+rNW 08NgCfDhAu7YY9l6f1Hd4RbLAjl42Xyp4lX4pL0ESKSdmqDUBwRHC0P57D/zn17N127k uNfEGLN76aYBRbJrACJ8MovOjhFvQTi1+zyRC7xIeyzHKTpN4J2z+GVfxAASmA5sx3iq yEtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688781445; x=1691373445; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AlLKomwYSQSLF+t+bBhNWFBQ+maS7GUN7rYNCJ7Iq7I=; b=mHvHgVgr9RouzdoYKy4ZfXixIi4UIMn8fRRXeHssCoQw0WISucaI+k0ncoxmoQjmR/ xJkB5gUJlwt88VBXJrd54G/LgGjW6kAD/ffUGPiDeWqJ8DrOGi/Y347rlDq+naOo3jwR X0Mdxz7fpKSfC0PpC99sgzLZUl/NNMETL7Ztu+4tBtRkOsFTQAXPGjCD9NbkEUuqJo0U oQ3T+4mnorxdI40DLWt7XZ1ambY9JdAEyFafegYiDoY9i4htsj9LryCNM8sp+1L1Z4sk Z1VeWG8q28b/I7HTmIIQslqvuT7IeU4t0qP3nMosWnmWknezUKY0bnfiN8XYSObn34na b5rQ== X-Gm-Message-State: ABy/qLZ2hDoGz4PZ9C7da2ZfDohYUwFsxilonN0xhpWu4A0rbDR1lzIW 3XwhJSpk1KEawENRDGzTGMXU5jB6zA55TChEXtBoZXBm X-Google-Smtp-Source: APBJJlHlPHnVbxwbTiAUj0T2jvJxxNHSzX0ZxGqMWFfTHWrs5kh5oXPeJUDeP4JXzn1W2/Mmnht3eA== X-Received: by 2002:a17:90b:34e:b0:262:ffc4:be7 with SMTP id fh14-20020a17090b034e00b00262ffc40be7mr6462874pjb.37.1688781444682; Fri, 07 Jul 2023 18:57:24 -0700 (PDT) Received: from hermes.local (204-195-120-218.wavecable.com. [204.195.120.218]) by smtp.gmail.com with ESMTPSA id 24-20020a17090a035800b00263f5ac814esm2260269pjf.38.2023.07.07.18.57.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 18:57:24 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Gagandeep Singh , Hemant Agrawal , Ankur Dwivedi , Anoob Joseph , Tejasree Kondoj , Kai Ji , Pablo de Lara Subject: [PATCH v5 04/11] drivers/crypto: use rte_pktmbuf_mtod_offset Date: Fri, 7 Jul 2023 18:57:11 -0700 Message-Id: <20230708015718.75565-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230708015718.75565-1-stephen@networkplumber.org> References: <20230505174813.133894-1-stephen@networkplumber.org> <20230708015718.75565-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Replace explicit packet offset computations with rte_pktmbuf_mtod_offset(). Signed-off-by: Stephen Hemminger Acked-by: Anoob Joseph Acked-by: Hemant Agrawal --- drivers/crypto/caam_jr/caam_jr.c | 8 ++++---- drivers/crypto/cnxk/cn9k_cryptodev_ops.c | 2 +- drivers/crypto/cnxk/cnxk_se.h | 5 ++--- drivers/crypto/ipsec_mb/pmd_kasumi.c | 19 +++++++++++-------- drivers/crypto/ipsec_mb/pmd_snow3g.c | 4 ++-- drivers/crypto/ipsec_mb/pmd_zuc.c | 18 ++++++++++-------- drivers/crypto/qat/dev/qat_crypto_pmd_gens.h | 9 +++++---- drivers/crypto/qat/qat_sym.h | 9 +++++---- 8 files changed, 40 insertions(+), 34 deletions(-) diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c index b55258689b49..9c96fd21a48d 100644 --- a/drivers/crypto/caam_jr/caam_jr.c +++ b/drivers/crypto/caam_jr/caam_jr.c @@ -631,15 +631,15 @@ hw_poll_job_ring(struct sec_job_ring_t *job_ring, if (ctx->op->sym->m_dst) { /*TODO check for ip header or other*/ - ip4_hdr = (struct ip *) - rte_pktmbuf_mtod(ctx->op->sym->m_dst, char*); + ip4_hdr = rte_pktmbuf_mtod(ctx->op->sym->m_dst, + struct ip *); ctx->op->sym->m_dst->pkt_len = rte_be_to_cpu_16(ip4_hdr->ip_len); ctx->op->sym->m_dst->data_len = rte_be_to_cpu_16(ip4_hdr->ip_len); } else { - ip4_hdr = (struct ip *) - rte_pktmbuf_mtod(ctx->op->sym->m_src, char*); + ip4_hdr = rte_pktmbuf_mtod(ctx->op->sym->m_src, + struct ip *); ctx->op->sym->m_src->pkt_len = rte_be_to_cpu_16(ip4_hdr->ip_len); ctx->op->sym->m_src->data_len = diff --git a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c index 34d40b07d4c6..8b91d11b79cc 100644 --- a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c +++ b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c @@ -520,7 +520,7 @@ cn9k_cpt_sec_post_process(struct rte_crypto_op *cop, if (infl_req->op_flags & CPT_OP_FLAGS_IPSEC_DIR_INBOUND) { - hdr = (struct roc_ie_on_inb_hdr *)rte_pktmbuf_mtod(m, char *); + hdr = rte_pktmbuf_mtod(m, struct roc_ie_on_inb_hdr *); if (likely(m->next == NULL)) { ip = PLT_PTR_ADD(hdr, ROC_IE_ON_INB_RPTR_HDR); diff --git a/drivers/crypto/cnxk/cnxk_se.h b/drivers/crypto/cnxk/cnxk_se.h index 75c1dce231bf..1392af5833d1 100644 --- a/drivers/crypto/cnxk/cnxk_se.h +++ b/drivers/crypto/cnxk/cnxk_se.h @@ -2724,7 +2724,7 @@ fill_fc_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess, m = cpt_m_dst_get(cpt_op, m_src, m_dst); /* Digest immediately following data is best case */ - if (unlikely(rte_pktmbuf_mtod(m, uint8_t *) + mc_hash_off != + if (unlikely(rte_pktmbuf_mtod_offset(m, uint8_t *, mc_hash_off) != (uint8_t *)sym_op->aead.digest.data)) { flags |= ROC_SE_VALID_MAC_BUF; fc_params.mac_buf.size = sess->mac_len; @@ -2759,8 +2759,7 @@ fill_fc_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess, /* hmac immediately following data is best case */ if (!(op_minor & ROC_SE_FC_MINOR_OP_HMAC_FIRST) && - (unlikely(rte_pktmbuf_mtod(m, uint8_t *) + - mc_hash_off != + (unlikely(rte_pktmbuf_mtod_offset(m, uint8_t *, mc_hash_off) != (uint8_t *)sym_op->auth.digest.data))) { flags |= ROC_SE_VALID_MAC_BUF; fc_params.mac_buf.size = sess->mac_len; diff --git a/drivers/crypto/ipsec_mb/pmd_kasumi.c b/drivers/crypto/ipsec_mb/pmd_kasumi.c index 5db9c523cd9a..70536ec3dc2a 100644 --- a/drivers/crypto/ipsec_mb/pmd_kasumi.c +++ b/drivers/crypto/ipsec_mb/pmd_kasumi.c @@ -83,13 +83,16 @@ process_kasumi_cipher_op(struct ipsec_mb_qp *qp, struct rte_crypto_op **ops, uint32_t num_bytes[num_ops]; for (i = 0; i < num_ops; i++) { - src[i] = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) - + (ops[i]->sym->cipher.data.offset >> 3); + src[i] = rte_pktmbuf_mtod_offset(ops[i]->sym->m_src, + uint8_t *, + (ops[i]->sym->cipher.data.offset >> 3)); dst[i] = ops[i]->sym->m_dst - ? rte_pktmbuf_mtod(ops[i]->sym->m_dst, uint8_t *) - + (ops[i]->sym->cipher.data.offset >> 3) - : rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) - + (ops[i]->sym->cipher.data.offset >> 3); + ? rte_pktmbuf_mtod_offset(ops[i]->sym->m_dst, + uint8_t *, + (ops[i]->sym->cipher.data.offset >> 3)) + : rte_pktmbuf_mtod_offset(ops[i]->sym->m_src, + uint8_t *, + (ops[i]->sym->cipher.data.offset >> 3)); iv_ptr = rte_crypto_op_ctod_offset(ops[i], uint8_t *, session->cipher_iv_offset); iv[i] = *((uint64_t *)(iv_ptr)); @@ -155,8 +158,8 @@ process_kasumi_hash_op(struct ipsec_mb_qp *qp, struct rte_crypto_op **ops, length_in_bits = ops[i]->sym->auth.data.length; - src = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) - + (ops[i]->sym->auth.data.offset >> 3); + src = rte_pktmbuf_mtod_offset(ops[i]->sym->m_src, uint8_t *, + (ops[i]->sym->auth.data.offset >> 3)); /* Direction from next bit after end of message */ num_bytes = length_in_bits >> 3; diff --git a/drivers/crypto/ipsec_mb/pmd_snow3g.c b/drivers/crypto/ipsec_mb/pmd_snow3g.c index e64df1a462e3..a96779f05942 100644 --- a/drivers/crypto/ipsec_mb/pmd_snow3g.c +++ b/drivers/crypto/ipsec_mb/pmd_snow3g.c @@ -248,8 +248,8 @@ process_snow3g_hash_op(struct ipsec_mb_qp *qp, struct rte_crypto_op **ops, length_in_bits = ops[i]->sym->auth.data.length; - src = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) + - (ops[i]->sym->auth.data.offset >> 3); + src = rte_pktmbuf_mtod_offset(ops[i]->sym->m_src, uint8_t *, + (ops[i]->sym->auth.data.offset >> 3)); iv = rte_crypto_op_ctod_offset(ops[i], uint8_t *, session->auth_iv_offset); diff --git a/drivers/crypto/ipsec_mb/pmd_zuc.c b/drivers/crypto/ipsec_mb/pmd_zuc.c index 92fd9d180894..44781be1d107 100644 --- a/drivers/crypto/ipsec_mb/pmd_zuc.c +++ b/drivers/crypto/ipsec_mb/pmd_zuc.c @@ -107,13 +107,14 @@ process_zuc_cipher_op(struct ipsec_mb_qp *qp, struct rte_crypto_op **ops, } #endif - src[i] = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) + - (ops[i]->sym->cipher.data.offset >> 3); + src[i] = rte_pktmbuf_mtod_offset(ops[i]->sym->m_src, + uint8_t *, + (ops[i]->sym->cipher.data.offset >> 3)); dst[i] = ops[i]->sym->m_dst ? - rte_pktmbuf_mtod(ops[i]->sym->m_dst, uint8_t *) + - (ops[i]->sym->cipher.data.offset >> 3) : - rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) + - (ops[i]->sym->cipher.data.offset >> 3); + rte_pktmbuf_mtod_offset(ops[i]->sym->m_dst, uint8_t *, + (ops[i]->sym->cipher.data.offset >> 3)) : + rte_pktmbuf_mtod_offset(ops[i]->sym->m_src, uint8_t *, + (ops[i]->sym->cipher.data.offset >> 3)); iv[i] = rte_crypto_op_ctod_offset(ops[i], uint8_t *, sess->cipher_iv_offset); num_bytes[i] = ops[i]->sym->cipher.data.length >> 3; @@ -159,8 +160,9 @@ process_zuc_hash_op(struct ipsec_mb_qp *qp, struct rte_crypto_op **ops, length_in_bits[i] = ops[i]->sym->auth.data.length; - src[i] = rte_pktmbuf_mtod(ops[i]->sym->m_src, uint8_t *) + - (ops[i]->sym->auth.data.offset >> 3); + src[i] = rte_pktmbuf_mtod_offset(ops[i]->sym->m_src, + uint8_t *, + (ops[i]->sym->auth.data.offset >> 3)); iv[i] = rte_crypto_op_ctod_offset(ops[i], uint8_t *, sess->auth_iv_offset); diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h index 1bafeb4a53e8..3e0dfea94c87 100644 --- a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h +++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h @@ -56,14 +56,15 @@ qat_bpicipher_preprocess(struct qat_sym_session *ctx, uint8_t *last_block, *dst, *iv; uint32_t last_block_offset = sym_op->cipher.data.offset + sym_op->cipher.data.length - last_block_len; - last_block = (uint8_t *) rte_pktmbuf_mtod_offset(sym_op->m_src, - uint8_t *, last_block_offset); + last_block = rte_pktmbuf_mtod_offset(sym_op->m_src, uint8_t *, + last_block_offset); if (unlikely((sym_op->m_dst != NULL) && (sym_op->m_dst != sym_op->m_src))) /* out-of-place operation (OOP) */ - dst = (uint8_t *) rte_pktmbuf_mtod_offset(sym_op->m_dst, - uint8_t *, last_block_offset); + dst = rte_pktmbuf_mtod_offset(sym_op->m_dst, + uint8_t *, + last_block_offset); else dst = last_block; diff --git a/drivers/crypto/qat/qat_sym.h b/drivers/crypto/qat/qat_sym.h index 193281cd9135..d7ceb13b29cd 100644 --- a/drivers/crypto/qat/qat_sym.h +++ b/drivers/crypto/qat/qat_sym.h @@ -192,13 +192,14 @@ qat_bpicipher_postprocess(struct qat_sym_session *ctx, last_block_offset = sym_op->cipher.data.offset + sym_op->cipher.data.length - last_block_len; - last_block = (uint8_t *) rte_pktmbuf_mtod_offset(sym_op->m_src, - uint8_t *, last_block_offset); + last_block = rte_pktmbuf_mtod_offset(sym_op->m_src, uint8_t *, + last_block_offset); if (unlikely(sym_op->m_dst != NULL)) /* out-of-place operation (OOP) */ - dst = (uint8_t *) rte_pktmbuf_mtod_offset(sym_op->m_dst, - uint8_t *, last_block_offset); + dst = rte_pktmbuf_mtod_offset(sym_op->m_dst, + uint8_t *, + last_block_offset); else dst = last_block;