> -----Original Message-----
> From: Zhang, Roy Fan
> Sent: Thursday, February 28, 2019 11:36 AM
> To: dev@dpdk.org
> Cc: akhil.go...@nxp.com; Zhang, Roy Fan <roy.fan.zh...@intel.com>; De
> Lara Guarch, Pablo <pablo.de.lara.gua...@intel.com>; Trahe, Fiona
> <fiona.tr...@intel.com>; Luse, Paul E <paul.e.l...@intel.com>
> Subject: [PATCH v2 1/3] crypto/aesni_mb: enable out of place processing
>
> Add out-of-place processing, i.e. different source and destination m_bufs,
> plus related capability update, tests and documentation.
>
> Signed-off-by: Fiona Trahe <fiona.tr...@intel.com>
> Signed-off-by: Paul Luse <paul.e.l...@intel.com>
> Signed-off-by: Fan Zhang <roy.fan.zh...@intel.com>
> ---
> drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 98
> ++++++++++++++++++++++--------
> 1 file changed, 71 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> index 48d6ac002..9ff49b3fa 100644
> --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
> @@ -739,6 +739,56 @@ get_session(struct aesni_mb_qp *qp, struct
> rte_crypto_op *op)
> return sess;
> }
>
> +static inline uint64_t
> +auth_start_offset(struct rte_crypto_op *op, struct aesni_mb_session
> *session,
> + uint32_t oop)
> +{
> + struct rte_mbuf *m_src, *m_dst;
> + uint8_t *p_src, *p_dst;
> + uint64_t u_src, u_dst;
> + uint32_t cipher_end, auth_end;
> +
> + /* Only cipher then hash needs special calculation. */
> + if (!oop || session->chain_order != CIPHER_HASH)
> + return op->sym->auth.data.offset;
> +
> + m_src = op->sym->m_src;
> + m_dst = op->sym->m_dst;
> +
> + p_src = rte_pktmbuf_mtod(m_src, uint8_t *);
> + p_dst = rte_pktmbuf_mtod(m_dst, uint8_t *);
> + u_src = (uint64_t)p_src;
> + u_dst = (uint64_t)p_dst + op->sym->auth.data.offset;
Better to use (uintptr_t) instead of uint64_t.
...
> -
> - memcpy(odata, rte_pktmbuf_mtod(op->sym->m_src, void*),
> - rte_pktmbuf_data_len(op->sym->m_src));
> - } else {
> + if (!op->sym->m_dst || op->sym->m_dst == op->sym->m_src) {
Better to add parenthesis on the second part of this "or" condition.
Apart from this:
Acked-by: Pablo de Lara <pablo.de.lara.gua...@intel.com>