cryptodev: rename ADD field
[dpdk.git] / drivers / crypto / openssl / rte_openssl_pmd.c
index d497a27..c7c520f 100644 (file)
@@ -458,7 +458,7 @@ openssl_set_session_aead_parameters(struct openssl_session *sess,
                return -EINVAL;
        }
 
-       sess->auth.aad_length = xform->aead.add_auth_data_length;
+       sess->auth.aad_length = xform->aead.aad_length;
        sess->auth.digest_length = xform->aead.digest_length;
 
        return 0;
@@ -558,27 +558,33 @@ get_session(struct openssl_qp *qp, struct rte_crypto_op *op)
 
        if (op->sess_type == RTE_CRYPTO_OP_WITH_SESSION) {
                /* get existing session */
-               if (likely(op->sym->session != NULL &&
-                               op->sym->session->driver_id ==
-                               cryptodev_driver_id))
+               if (likely(op->sym->session != NULL))
                        sess = (struct openssl_session *)
-                               op->sym->session->_private;
-       } else  {
+                                       get_session_private_data(
+                                       op->sym->session,
+                                       cryptodev_driver_id);
+       } else {
                /* provide internal session */
                void *_sess = NULL;
+               void *_sess_private_data = NULL;
 
-               if (!rte_mempool_get(qp->sess_mp, (void **)&_sess)) {
-                       sess = (struct openssl_session *)
-                               ((struct rte_cryptodev_sym_session *)_sess)
-                               ->_private;
-
-                       if (unlikely(openssl_set_session_parameters(
-                                       sess, op->sym->xform) != 0)) {
-                               rte_mempool_put(qp->sess_mp, _sess);
-                               sess = NULL;
-                       } else
-                               op->sym->session = _sess;
+               if (rte_mempool_get(qp->sess_mp, (void **)&_sess))
+                       return NULL;
+
+               if (rte_mempool_get(qp->sess_mp, (void **)&_sess_private_data))
+                       return NULL;
+
+               sess = (struct openssl_session *)_sess_private_data;
+
+               if (unlikely(openssl_set_session_parameters(sess,
+                               op->sym->xform) != 0)) {
+                       rte_mempool_put(qp->sess_mp, _sess);
+                       rte_mempool_put(qp->sess_mp, _sess_private_data);
+                       sess = NULL;
                }
+               op->sym->session = (struct rte_cryptodev_sym_session *)_sess;
+               set_session_private_data(op->sym->session, cryptodev_driver_id,
+                       _sess_private_data);
        }
 
        if (sess == NULL)
@@ -1320,6 +1326,9 @@ process_op(const struct openssl_qp *qp, struct rte_crypto_op *op,
        if (op->sess_type == RTE_CRYPTO_OP_SESSIONLESS) {
                openssl_reset_session(sess);
                memset(sess, 0, sizeof(struct openssl_session));
+               memset(op->sym->session, 0,
+                               rte_cryptodev_get_header_session_size());
+               rte_mempool_put(qp->sess_mp, sess);
                rte_mempool_put(qp->sess_mp, op->sym->session);
                op->sym->session = NULL;
        }