X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcrypto%2Fopenssl%2Frte_openssl_pmd_ops.c;h=cbfb8149f93faedc05f16d78f720748fd20becd7;hb=e6cdc54cc0ef;hp=c2b029ec26df7c532c4c8dc541d584b6ee5d6b49;hpb=c3d22a6522fa5801c906d2233c91d201c1af8fd1;p=dpdk.git diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index c2b029ec26..cbfb8149f9 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -8,7 +8,7 @@ #include #include -#include "rte_openssl_pmd_private.h" +#include "openssl_pmd_private.h" #include "compat.h" @@ -657,6 +657,11 @@ static int openssl_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id) { if (dev->data->queue_pairs[qp_id] != NULL) { + struct openssl_qp *qp = dev->data->queue_pairs[qp_id]; + + if (qp->processed_ops) + rte_ring_free(qp->processed_ops); + rte_free(dev->data->queue_pairs[qp_id]); dev->data->queue_pairs[qp_id] = NULL; } @@ -710,7 +715,7 @@ openssl_pmd_qp_create_processed_ops_ring(struct openssl_qp *qp, static int openssl_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id, const struct rte_cryptodev_qp_conf *qp_conf, - int socket_id, struct rte_mempool *session_pool) + int socket_id) { struct openssl_qp *qp = NULL; @@ -735,7 +740,8 @@ openssl_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id, if (qp->processed_ops == NULL) goto qp_setup_cleanup; - qp->sess_mp = session_pool; + qp->sess_mp = qp_conf->mp_session; + qp->sess_mp_priv = qp_conf->mp_session_private; memset(&qp->stats, 0, sizeof(qp->stats)); @@ -906,22 +912,14 @@ static int openssl_set_asym_session_parameters( asym_session->xfrm_type = RTE_CRYPTO_ASYM_XFORM_RSA; break; err_rsa: - if (n) - BN_free(n); - if (e) - BN_free(e); - if (d) - BN_free(d); - if (p) - BN_free(p); - if (q) - BN_free(q); - if (dmp1) - BN_free(dmp1); - if (dmq1) - BN_free(dmq1); - if (iqmp) - BN_free(iqmp); + BN_clear_free(n); + BN_clear_free(e); + BN_clear_free(d); + BN_clear_free(p); + BN_clear_free(q); + BN_clear_free(dmp1); + BN_clear_free(dmq1); + BN_clear_free(iqmp); return -1; } @@ -1043,10 +1041,8 @@ err_rsa: err_dh: OPENSSL_LOG(ERR, " failed to set dh params\n"); - if (p) - BN_free(p); - if (g) - BN_free(g); + BN_free(p); + BN_free(g); return -1; } case RTE_CRYPTO_ASYM_XFORM_DSA: @@ -1112,16 +1108,11 @@ err_dh: break; err_dsa: - if (p) - BN_free(p); - if (q) - BN_free(q); - if (g) - BN_free(g); - if (priv_key) - BN_free(priv_key); - if (pub_key) - BN_free(pub_key); + BN_free(p); + BN_free(q); + BN_free(g); + BN_free(priv_key); + BN_free(pub_key); return -1; } default: