From patchwork Wed Mar 29 10:31:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 22692 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 7D7AAD412; Wed, 29 Mar 2017 13:25:02 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id ECA48D324 for ; Wed, 29 Mar 2017 12:31:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490783510; x=1522319510; h=from:to:cc:subject:date:message-id; bh=IisX5ZYC75Mc7mYHNANS2F5YKiJ1zvMAHUfud1sgzxg=; b=vcxlrwLGOuC/9qocN7tZKe0jPZuHNjEm6buu6NhP9PgpvgZuGUaK05/a lfwnKnA3MS5ULMuRnkI80+wzJNNfqA==; Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Mar 2017 03:31:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,240,1486454400"; d="scan'208";a="81834407" Received: from sivswdev03.ir.intel.com (HELO localhost.localdomain) ([10.237.217.157]) by fmsmga005.fm.intel.com with ESMTP; 29 Mar 2017 03:31:47 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: fiona.trahe@intel.com, pablo.de.lara.guarch@intel.com, john.griffin@intel.com, deepak.k.jain@intel.com, Arek Kusztal Date: Wed, 29 Mar 2017 11:31:46 +0100 Message-Id: <1490783506-18451-1-git-send-email-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 1.7.0.7 Subject: [dpdk-dev] [PATCH] crypto/qat: fix segmentation fault in session create X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Acked-by: Fiona Trahe --- 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;