crypto/cnxk: fix condition check
[dpdk.git] / drivers / crypto / octeontx / otx_cryptodev_ops.c
index 9e8fd49..914b17d 100644 (file)
@@ -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: