From ce2f72a24eaa89ff08fd64742c9425f17f42345c Mon Sep 17 00:00:00 2001 From: Christian Ehrhardt Date: Thu, 4 Jul 2019 10:40:06 +0200 Subject: New upstream version 18.11.2 Change-Id: Ifc37f95b203b872a3f4b5b5b4755a3bb561aa515 Signed-off-by: Christian Ehrhardt --- drivers/crypto/caam_jr/caam_jr.c | 4 ++-- drivers/crypto/caam_jr/caam_jr_uio.c | 10 +++++++--- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 12 ++++++------ drivers/crypto/dpaa2_sec/hw/desc/pdcp.h | 4 +--- drivers/crypto/dpaa_sec/dpaa_sec.c | 2 +- drivers/crypto/kasumi/meson.build | 8 ++++---- drivers/crypto/meson.build | 2 +- drivers/crypto/openssl/rte_openssl_pmd.c | 12 +++++++++--- drivers/crypto/qat/qat_sym_session.c | 3 ++- drivers/crypto/snow3g/meson.build | 13 +++++++++++++ drivers/crypto/virtio/virtio_logs.h | 4 +++- drivers/crypto/virtio/virtio_rxtx.c | 4 ++-- drivers/crypto/zuc/meson.build | 8 ++++---- 13 files changed, 55 insertions(+), 31 deletions(-) create mode 100644 drivers/crypto/snow3g/meson.build (limited to 'drivers/crypto') diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c index 190053ee..efc69b6e 100644 --- a/drivers/crypto/caam_jr/caam_jr.c +++ b/drivers/crypto/caam_jr/caam_jr.c @@ -311,7 +311,7 @@ caam_jr_prep_cdb(struct caam_jr_session *ses) int32_t shared_desc_len = 0; struct sec_cdb *cdb; int err; -#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN +#if CAAM_BYTE_ORDER == CORE_BYTE_ORDER int swap = false; #else int swap = true; @@ -798,7 +798,7 @@ build_auth_only_sg(struct rte_crypto_op *op, struct caam_jr_session *ses) sg->len = cpu_to_caam32(ses->digest_length); length += ses->digest_length; } else { - length -= ses->digest_length; + sg->len -= ses->digest_length; } /* last element*/ diff --git a/drivers/crypto/caam_jr/caam_jr_uio.c b/drivers/crypto/caam_jr/caam_jr_uio.c index bf872a22..afd75c9a 100644 --- a/drivers/crypto/caam_jr/caam_jr_uio.c +++ b/drivers/crypto/caam_jr/caam_jr_uio.c @@ -362,8 +362,8 @@ free_job_ring(uint32_t uio_fd) job_ring->register_base_addr, (unsigned long)job_ring->map_size, strerror(errno)); } else - CAAM_JR_DEBUG(" JR UIO memory unmapped at %p", - job_ring->register_base_addr); + CAAM_JR_DEBUG("JR UIO memory is unmapped"); + job_ring->register_base_addr = NULL; } @@ -445,7 +445,11 @@ sec_configure(void) ret = file_read_first_line(SEC_UIO_DEVICE_SYS_ATTR_PATH, dir->d_name, "name", uio_name); CAAM_JR_INFO("sec device uio name: %s", uio_name); - SEC_ASSERT(ret == 0, -1, "file_read_first_line failed"); + if (ret != 0) { + CAAM_JR_ERR("file_read_first_line failed\n"); + closedir(d); + return -1; + } if (file_name_match_extract(uio_name, SEC_UIO_DEVICE_NAME, diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 34c14f77..a7973cc0 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -236,8 +236,8 @@ build_authenc_gcm_sg_fd(dpaa2_sec_session *sess, /* Configure Output SGE for Encap/Decap */ DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off + sym_op->aead.data.offset - - auth_only_len); + DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off + + RTE_ALIGN_CEIL(auth_only_len, 16) - auth_only_len); sge->length = mbuf->data_len - sym_op->aead.data.offset + auth_only_len; mbuf = mbuf->next; @@ -400,8 +400,8 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess, /* Configure Output SGE for Encap/Decap */ DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst)); - DPAA2_SET_FLE_OFFSET(sge, sym_op->aead.data.offset + - dst->data_off - auth_only_len); + DPAA2_SET_FLE_OFFSET(sge, dst->data_off + + RTE_ALIGN_CEIL(auth_only_len, 16) - auth_only_len); sge->length = sym_op->aead.data.length + auth_only_len; if (sess->dir == DIR_ENC) { @@ -2864,7 +2864,7 @@ dpaa2_sec_security_session_destroy(void *dev __rte_unused, rte_free(s->ctxt); rte_free(s->cipher_key.data); rte_free(s->auth_key.data); - memset(sess, 0, sizeof(dpaa2_sec_session)); + memset(s, 0, sizeof(dpaa2_sec_session)); set_sec_session_private_data(sess, NULL); rte_mempool_put(sess_mp, sess_priv); } @@ -2913,7 +2913,7 @@ dpaa2_sec_sym_session_clear(struct rte_cryptodev *dev, rte_free(s->ctxt); rte_free(s->cipher_key.data); rte_free(s->auth_key.data); - memset(sess, 0, sizeof(dpaa2_sec_session)); + memset(s, 0, sizeof(dpaa2_sec_session)); struct rte_mempool *sess_mp = rte_mempool_from_obj(sess_priv); set_sym_session_private_data(sess, index, NULL); rte_mempool_put(sess_mp, sess_priv); diff --git a/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h b/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h index 719ef605..fee84410 100644 --- a/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h +++ b/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h @@ -1,7 +1,5 @@ -/* +/* SPDX-License-Identifier: BSD-3-Clause or GPL-2.0+ * Copyright 2008-2013 Freescale Semiconductor, Inc. - * - * SPDX-License-Identifier: BSD-3-Clause or GPL-2.0+ */ #ifndef __DESC_PDCP_H__ diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c index 8958fd06..10201c58 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -2166,7 +2166,7 @@ dpaa_sec_security_session_destroy(void *dev __rte_unused, rte_free(s->cipher_key.data); rte_free(s->auth_key.data); - memset(sess, 0, sizeof(dpaa_sec_session)); + memset(s, 0, sizeof(dpaa_sec_session)); set_sec_session_private_data(sess, NULL); rte_mempool_put(sess_mp, sess_priv); } diff --git a/drivers/crypto/kasumi/meson.build b/drivers/crypto/kasumi/meson.build index a09b0e25..9a8956a0 100644 --- a/drivers/crypto/kasumi/meson.build +++ b/drivers/crypto/kasumi/meson.build @@ -1,12 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -lib = cc.find_library('libsso_kasumi', required: false) -if not lib.found() +lib = cc.find_library('sso_kasumi', required: false) +if not lib.found() or not cc.has_header('sso_kasumi.h') build = false -else - ext_deps += lib + subdir_done() endif +ext_deps += lib sources = files('rte_kasumi_pmd.c', 'rte_kasumi_pmd_ops.c') deps += ['bus_vdev'] diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build index bf1bd928..83e78860 100644 --- a/drivers/crypto/meson.build +++ b/drivers/crypto/meson.build @@ -3,7 +3,7 @@ drivers = ['aesni_gcm', 'aesni_mb', 'caam_jr', 'ccp', 'dpaa_sec', 'dpaa2_sec', 'kasumi', 'mvsam', 'null', 'octeontx', 'openssl', 'qat', 'scheduler', - 'virtio', 'zuc'] + 'snow3g', 'virtio', 'zuc'] std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps config_flag_fmt = 'RTE_LIBRTE_@0@_PMD' diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index 11ea0d19..5b27bb91 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -1799,6 +1799,9 @@ process_openssl_modinv_op(struct rte_crypto_op *cop, cop->status = RTE_CRYPTO_OP_STATUS_ERROR; } + BN_clear(res); + BN_clear(base); + return 0; } @@ -1820,17 +1823,20 @@ process_openssl_modexp_op(struct rte_crypto_op *cop, return -1; } - base = BN_bin2bn((const unsigned char *)op->modinv.base.data, - op->modinv.base.length, base); + base = BN_bin2bn((const unsigned char *)op->modex.base.data, + op->modex.base.length, base); if (BN_mod_exp(res, base, sess->u.e.exp, sess->u.e.mod, sess->u.e.ctx)) { - op->modinv.base.length = BN_bn2bin(res, op->modinv.base.data); + op->modex.base.length = BN_bn2bin(res, op->modex.base.data); cop->status = RTE_CRYPTO_OP_STATUS_SUCCESS; } else { cop->status = RTE_CRYPTO_OP_STATUS_ERROR; } + BN_clear(res); + BN_clear(base); + return 0; } diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 4d7ec01d..e147572e 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -242,7 +242,8 @@ qat_sym_session_configure_cipher(struct rte_cryptodev *dev, session->qat_mode = ICP_QAT_HW_CIPHER_ECB_MODE; break; case RTE_CRYPTO_CIPHER_NULL: - session->qat_mode = ICP_QAT_HW_CIPHER_ECB_MODE; + session->qat_cipher_alg = ICP_QAT_HW_CIPHER_ALGO_NULL; + session->qat_mode = ICP_QAT_HW_CIPHER_CTR_MODE; break; case RTE_CRYPTO_CIPHER_KASUMI_F8: if (qat_sym_validate_kasumi_key(cipher_xform->key.length, diff --git a/drivers/crypto/snow3g/meson.build b/drivers/crypto/snow3g/meson.build new file mode 100644 index 00000000..c566a5f6 --- /dev/null +++ b/drivers/crypto/snow3g/meson.build @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2019 Intel Corporation + +lib = cc.find_library('sso_snow3g', required: false) +if not lib.found() or not cc.has_header('sso_snow3g.h') + build = false + subdir_done() +endif + +allow_experimental_apis = true +ext_deps += lib +sources = files('rte_snow3g_pmd.c', 'rte_snow3g_pmd_ops.c') +deps += ['bus_vdev', 'cryptodev'] diff --git a/drivers/crypto/virtio/virtio_logs.h b/drivers/crypto/virtio/virtio_logs.h index 26a286cf..1ee38193 100644 --- a/drivers/crypto/virtio/virtio_logs.h +++ b/drivers/crypto/virtio/virtio_logs.h @@ -7,8 +7,10 @@ #include +extern int virtio_crypto_logtype_init; + #define PMD_INIT_LOG(level, fmt, args...) \ - rte_log(RTE_LOG_ ## level, RTE_LOGTYPE_PMD, \ + rte_log(RTE_LOG_ ## level, virtio_crypto_logtype_init, \ "PMD: %s(): " fmt "\n", __func__, ##args) #define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>") diff --git a/drivers/crypto/virtio/virtio_rxtx.c b/drivers/crypto/virtio/virtio_rxtx.c index e32a1ecd..e9a63cb5 100644 --- a/drivers/crypto/virtio/virtio_rxtx.c +++ b/drivers/crypto/virtio/virtio_rxtx.c @@ -203,8 +203,8 @@ virtqueue_crypto_sym_enqueue_xmit( uint16_t req_data_len = sizeof(struct virtio_crypto_op_data_req); uint32_t indirect_vring_addr_offset = req_data_len + sizeof(struct virtio_crypto_inhdr); - uint32_t indirect_iv_addr_offset = indirect_vring_addr_offset + - sizeof(struct vring_desc) * NUM_ENTRY_VIRTIO_CRYPTO_OP; + uint32_t indirect_iv_addr_offset = + offsetof(struct virtio_crypto_op_cookie, iv); struct rte_crypto_sym_op *sym_op = cop->sym; struct virtio_crypto_session *session = (struct virtio_crypto_session *)get_sym_session_private_data( diff --git a/drivers/crypto/zuc/meson.build b/drivers/crypto/zuc/meson.build index b8ca7107..2b48072c 100644 --- a/drivers/crypto/zuc/meson.build +++ b/drivers/crypto/zuc/meson.build @@ -1,12 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -lib = cc.find_library('libsso_zuc', required: false) -if not lib.found() +lib = cc.find_library('sso_zuc', required: false) +if not lib.found() or not cc.has_header('sso_zuc.h') build = false -else - ext_deps += lib + subdir_done() endif +ext_deps += lib sources = files('rte_zuc_pmd.c', 'rte_zuc_pmd_ops.c') deps += ['bus_vdev'] -- cgit 1.2.3-korg