X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcrypto%2Focteontx%2Fotx_cryptodev_ops.c;h=914b17decfeb8da7497bdd3578d602bf42d80401;hb=85fc592a35d69bf6743158f6bef38b7fa40a5bc0;hp=9e8fd495cf3790d2a95343f0171b92a51a4d70ef;hpb=c9902a15bd005b6d4fe072cf7b60fe4ee679155f;p=dpdk.git diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c index 9e8fd495cf..914b17decf 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c @@ -335,8 +335,7 @@ sym_session_clear(int driver_id, struct rte_cryptodev_sym_session *sess) misc = priv; ctx = SESS_PRIV(misc); - if (ctx->auth_key != NULL) - rte_free(ctx->auth_key); + rte_free(ctx->auth_key); memset(priv, 0, cpt_get_session_size()); @@ -375,35 +374,24 @@ otx_cpt_asym_session_size_get(struct rte_cryptodev *dev __rte_unused) } static int -otx_cpt_asym_session_cfg(struct rte_cryptodev *dev, +otx_cpt_asym_session_cfg(struct rte_cryptodev *dev __rte_unused, struct rte_crypto_asym_xform *xform __rte_unused, - struct rte_cryptodev_asym_session *sess, - struct rte_mempool *pool) + struct rte_cryptodev_asym_session *sess) { - struct cpt_asym_sess_misc *priv; + struct cpt_asym_sess_misc *priv = (struct cpt_asym_sess_misc *) + sess->sess_private_data; int ret; CPT_PMD_INIT_FUNC_TRACE(); - if (rte_mempool_get(pool, (void **)&priv)) { - CPT_LOG_ERR("Could not allocate session private data"); - return -ENOMEM; - } - - memset(priv, 0, sizeof(struct cpt_asym_sess_misc)); - ret = cpt_fill_asym_session_parameters(priv, xform); if (ret) { CPT_LOG_ERR("Could not configure session parameters"); - - /* Return session to mempool */ - rte_mempool_put(pool, priv); return ret; } priv->cpt_inst_w7 = 0; - set_asym_session_private_data(sess, dev->driver_id, priv); return 0; } @@ -412,11 +400,10 @@ otx_cpt_asym_session_clear(struct rte_cryptodev *dev, struct rte_cryptodev_asym_session *sess) { struct cpt_asym_sess_misc *priv; - struct rte_mempool *sess_mp; CPT_PMD_INIT_FUNC_TRACE(); - priv = get_asym_session_private_data(sess, dev->driver_id); + priv = (struct cpt_asym_sess_misc *) sess->sess_private_data; if (priv == NULL) return; @@ -424,9 +411,6 @@ otx_cpt_asym_session_clear(struct rte_cryptodev *dev, /* Free resources allocated during session configure */ cpt_free_asym_session_parameters(priv); memset(priv, 0, otx_cpt_asym_session_size_get(dev)); - sess_mp = rte_mempool_from_obj(priv); - set_asym_session_private_data(sess, dev->driver_id, NULL); - rte_mempool_put(sess_mp, priv); } static __rte_always_inline void * __rte_hot @@ -471,8 +455,8 @@ otx_cpt_enq_single_asym(struct cpt_instance *instance, return NULL; } - sess = get_asym_session_private_data(asym_op->session, - otx_cryptodev_driver_id); + sess = (struct cpt_asym_sess_misc *) + asym_op->session->sess_private_data; /* Store phys_addr of the mdata to meta_buf */ params.meta_buf = rte_mempool_virt2iova(mdata); @@ -558,7 +542,7 @@ otx_cpt_enq_single_sym(struct cpt_instance *instance, &mdata, (void **)&prep_req); if (unlikely(ret)) { - CPT_LOG_DP_ERR("prep cryto req : op %p, cpt_op 0x%x " + CPT_LOG_DP_ERR("prep crypto req : op %p, cpt_op 0x%x " "ret 0x%x", op, (unsigned int)cpt_op, ret); return NULL; } @@ -700,24 +684,6 @@ submit_request_to_sso(struct ssows *ws, uintptr_t req, ssovf_store_pair(add_work, req, ws->grps[rsp_info->queue_id]); } -static inline union rte_event_crypto_metadata * -get_event_crypto_mdata(struct rte_crypto_op *op) -{ - union rte_event_crypto_metadata *ec_mdata; - - if (op->sess_type == RTE_CRYPTO_OP_WITH_SESSION) - ec_mdata = rte_cryptodev_sym_session_get_user_data( - op->sym->session); - else if (op->sess_type == RTE_CRYPTO_OP_SESSIONLESS && - op->private_data_offset) - ec_mdata = (union rte_event_crypto_metadata *) - ((uint8_t *)op + op->private_data_offset); - else - return NULL; - - return ec_mdata; -} - uint16_t __rte_hot otx_crypto_adapter_enqueue(void *port, struct rte_crypto_op *op) { @@ -728,7 +694,7 @@ otx_crypto_adapter_enqueue(void *port, struct rte_crypto_op *op) uint8_t op_type, cdev_id; uint16_t qp_id; - ec_mdata = get_event_crypto_mdata(op); + ec_mdata = rte_cryptodev_session_event_mdata_get(op); if (unlikely(ec_mdata == NULL)) { rte_errno = EINVAL; return 0; @@ -770,7 +736,7 @@ otx_cpt_asym_rsa_op(struct rte_crypto_op *cop, struct cpt_request_info *req, memcpy(rsa->cipher.data, req->rptr, rsa->cipher.length); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: - if (rsa->pad == RTE_CRYPTO_RSA_PADDING_NONE) + if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) rsa->message.length = rsa_ctx->n.length; else { /* Get length of decrypted output */ @@ -787,7 +753,7 @@ otx_cpt_asym_rsa_op(struct rte_crypto_op *cop, struct cpt_request_info *req, memcpy(rsa->sign.data, req->rptr, rsa->sign.length); break; case RTE_CRYPTO_ASYM_OP_VERIFY: - if (rsa->pad == RTE_CRYPTO_RSA_PADDING_NONE) + if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) rsa->sign.length = rsa_ctx->n.length; else { /* Get length of decrypted output */ @@ -852,8 +818,7 @@ otx_cpt_asym_post_process(struct rte_crypto_op *cop, struct rte_crypto_asym_op *op = cop->asym; struct cpt_asym_sess_misc *sess; - sess = get_asym_session_private_data(op->session, - otx_cryptodev_driver_id); + sess = (struct cpt_asym_sess_misc *) op->session->sess_private_data; switch (sess->xfrm_type) { case RTE_CRYPTO_ASYM_XFORM_RSA: