CC'ing stable repo.
> -----Original Message-----
> From: Kusztal, ArkadiuszX
> Sent: Wednesday, March 29, 2017 11:32 AM
> To: dev@dpdk.org
> Cc: Trahe, Fiona; De Lara Guarch, Pablo; Griffin, John; Jain, Deepak K;
> Kusztal, ArkadiuszX
> Subject: [PATCH] crypto/qat: fix segmentation fault in session create
>
> This patch fixes segementation fault that may occur in case
> of wrong parameters being provided to the cryptographic
> session. Unused fields which would cause null dereference
> are removed.
>
> Fixes: 1703e94ac5ce ("qat: add driver for QuickAssist devices")
>
> This patchset depends on the following patches/patchsets:
>
> "crypto/qat: adding docsisbpi mode support"
> (http://dpdk.org/dev/patchwork/patch/21121/)
>
> Signed-off-by: Arek Kusztal <arkadiuszx.kusz...@intel.com>
> ---
> drivers/crypto/qat/qat_crypto.c | 13 ++-----------
> drivers/crypto/qat/qat_crypto.h | 3 ---
> 2 files changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/crypto/qat/qat_crypto.c
> b/drivers/crypto/qat/qat_crypto.c
> index b851926..9310211 100644
> --- a/drivers/crypto/qat/qat_crypto.c
> +++ b/drivers/crypto/qat/qat_crypto.c
> @@ -739,11 +739,9 @@ qat_get_cipher_xform(struct
> rte_crypto_sym_xform *xform)
> return NULL;
> }
> void *
> -qat_crypto_sym_configure_session_cipher(struct rte_cryptodev *dev,
> +qat_crypto_sym_configure_session_cipher(struct rte_cryptodev *dev
> __rte_unused,
> struct rte_crypto_sym_xform *xform, void
> *session_private)
> {
> - struct qat_pmd_private *internals = dev->data->dev_private;
> -
> struct qat_session *session = session_private;
>
> struct rte_crypto_cipher_xform *cipher_xform = NULL;
> @@ -884,7 +882,6 @@ qat_crypto_sym_configure_session_cipher(struct
> rte_cryptodev *dev,
> bpi_cipher_ctx_free(session->bpi_ctx);
> session->bpi_ctx = NULL;
> }
> - rte_mempool_put(internals->sess_mp, session);
> return NULL;
> }
>
> @@ -893,8 +890,6 @@ void *
> qat_crypto_sym_configure_session(struct rte_cryptodev *dev,
> struct rte_crypto_sym_xform *xform, void
> *session_private)
> {
> - struct qat_pmd_private *internals = dev->data->dev_private;
> -
> struct qat_session *session = session_private;
>
> int qat_cmd_id;
> @@ -943,17 +938,15 @@ qat_crypto_sym_configure_session(struct
> rte_cryptodev *dev,
> return session;
>
> error_out:
> - rte_mempool_put(internals->sess_mp, session);
> return NULL;
> }
>
> struct qat_session *
> -qat_crypto_sym_configure_session_auth(struct rte_cryptodev *dev,
> +qat_crypto_sym_configure_session_auth(struct rte_cryptodev *dev
> __rte_unused,
> struct rte_crypto_sym_xform *xform,
> struct qat_session *session_private)
> {
>
> - struct qat_pmd_private *internals = dev->data->dev_private;
> struct qat_session *session = session_private;
> struct rte_crypto_auth_xform *auth_xform = NULL;
> struct rte_crypto_cipher_xform *cipher_xform = NULL;
> @@ -1038,8 +1031,6 @@ qat_crypto_sym_configure_session_auth(struct
> rte_cryptodev *dev,
> return session;
>
> error_out:
> - if (internals->sess_mp != NULL)
> - rte_mempool_put(internals->sess_mp, session);
> return NULL;
> }
>
> diff --git a/drivers/crypto/qat/qat_crypto.h
> b/drivers/crypto/qat/qat_crypto.h
> index 78bb2bc..67fa0e1 100644
> --- a/drivers/crypto/qat/qat_crypto.h
> +++ b/drivers/crypto/qat/qat_crypto.h
> @@ -76,9 +76,6 @@ struct qat_qp {
>
> /** private data structure for each QAT device */
> struct qat_pmd_private {
> - char sess_mp_name[RTE_MEMPOOL_NAMESIZE];
> - struct rte_mempool *sess_mp;
> -
> unsigned max_nb_queue_pairs;
> /**< Max number of queue pairs supported by device */
> unsigned max_nb_sessions;
> --
> 2.7.4