From patchwork Mon Apr 15 15:04:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kovacevic, Marko" X-Patchwork-Id: 52797 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3CA981B20B; Mon, 15 Apr 2019 17:04:56 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 9192B1B1FF for ; Mon, 15 Apr 2019 17:04:54 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Apr 2019 08:04:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,354,1549958400"; d="scan'208";a="140836565" Received: from silpixa00399502.ir.intel.com (HELO silpixa00399502.ger.corp.intel.com) ([10.237.222.111]) by fmsmga008.fm.intel.com with ESMTP; 15 Apr 2019 08:04:51 -0700 From: Marko Kovacevic To: dev@dpdk.org Cc: john.mcnamara@intel.com, xinfengx.zhao@intel.com, akhil.goyal@nxp.com, Marko Kovacevic , damianx.nowak@intel.com Date: Mon, 15 Apr 2019 16:04:47 +0100 Message-Id: <20190415150449.44799-1-marko.kovacevic@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190411141656.27720-1-marko.kovacevic@intel.com> References: <20190411141656.27720-1-marko.kovacevic@intel.com> Subject: [dpdk-dev] [PATCH v2 1/3] examples/fips: fix hmac test failure 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" Application was failing as the HMAC and Plain SHA fips request files are similar in a way that they both have SHA- in the top section to determine the hash algo and hash sizes. And HMAC having the algo in the second line but the Plain SHA in the third meant that when the HMAC files was used once it parsed the third line Plain SHA was set as the algo and not HMAC. USER1: Failed to get capability for cdev 0 USER1: Error -22: test block [L=20 SHAAlg=SHA_2] USER1: Error -22: Failed test /root/FIPS/HMAC/req/HMAC.req Fixes: f4797bae0050 ("examples/fips_validation: support plain SHA") Cc: damianx.nowak@intel.com Signed-off-by: Marko Kovacevic --- v2: Fixed checkpatch warning --- examples/fips_validation/fips_validation.c | 80 +++++++++++++++++------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/examples/fips_validation/fips_validation.c b/examples/fips_validation/fips_validation.c index 2f8314fcc..8d43b267e 100644 --- a/examples/fips_validation/fips_validation.c +++ b/examples/fips_validation/fips_validation.c @@ -98,6 +98,7 @@ fips_test_parse_header(void) uint32_t i; char *tmp; int ret; + int algo_parsed = 0; time_t t = time(NULL); struct tm *tm_now = localtime(&t); @@ -106,41 +107,50 @@ fips_test_parse_header(void) return ret; for (i = 0; i < info.nb_vec_lines; i++) { - if (strstr(info.vec[i], "AESVS")) { - info.algo = FIPS_TEST_ALGO_AES; - ret = parse_test_aes_init(); - if (ret < 0) - return ret; - } else if (strstr(info.vec[i], "GCM")) { - info.algo = FIPS_TEST_ALGO_AES_GCM; - ret = parse_test_gcm_init(); - if (ret < 0) - return ret; - } else if (strstr(info.vec[i], "CMAC")) { - info.algo = FIPS_TEST_ALGO_AES_CMAC; - ret = parse_test_cmac_init(); - if (ret < 0) - return 0; - } else if (strstr(info.vec[i], "CCM")) { - info.algo = FIPS_TEST_ALGO_AES_CCM; - ret = parse_test_ccm_init(); - if (ret < 0) - return 0; - } else if (strstr(info.vec[i], "HMAC")) { - info.algo = FIPS_TEST_ALGO_HMAC; - ret = parse_test_hmac_init(); - if (ret < 0) - return ret; - } else if (strstr(info.vec[i], "TDES")) { - info.algo = FIPS_TEST_ALGO_TDES; - ret = parse_test_tdes_init(); - if (ret < 0) - return 0; - } else if (strstr(info.vec[i], "SHA-")) { - info.algo = FIPS_TEST_ALGO_SHA; - ret = parse_test_sha_init(); - if (ret < 0) - return ret; + if (!algo_parsed) { + if (strstr(info.vec[i], "AESVS")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES; + ret = parse_test_aes_init(); + if (ret < 0) + return ret; + } else if (strstr(info.vec[i], "GCM")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES_GCM; + ret = parse_test_gcm_init(); + if (ret < 0) + return ret; + } else if (strstr(info.vec[i], "CMAC")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES_CMAC; + ret = parse_test_cmac_init(); + if (ret < 0) + return 0; + } else if (strstr(info.vec[i], "CCM")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES_CCM; + ret = parse_test_ccm_init(); + if (ret < 0) + return 0; + } else if (strstr(info.vec[i], "HMAC")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_HMAC; + ret = parse_test_hmac_init(); + if (ret < 0) + return ret; + } else if (strstr(info.vec[i], "TDES")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_TDES; + ret = parse_test_tdes_init(); + if (ret < 0) + return 0; + } else if (strstr(info.vec[i], "SHA-")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_SHA; + ret = parse_test_sha_init(); + if (ret < 0) + return ret; + } } tmp = strstr(info.vec[i], "# Config info for "); From patchwork Mon Apr 15 15:04:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kovacevic, Marko" X-Patchwork-Id: 52798 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 493E41B21A; Mon, 15 Apr 2019 17:05:00 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 5F55A1B1FF; Mon, 15 Apr 2019 17:04:55 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Apr 2019 08:04:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,354,1549958400"; d="scan'208";a="140836575" Received: from silpixa00399502.ir.intel.com (HELO silpixa00399502.ger.corp.intel.com) ([10.237.222.111]) by fmsmga008.fm.intel.com with ESMTP; 15 Apr 2019 08:04:53 -0700 From: Marko Kovacevic To: dev@dpdk.org Cc: john.mcnamara@intel.com, xinfengx.zhao@intel.com, akhil.goyal@nxp.com, Marko Kovacevic , stable@dpdk.org Date: Mon, 15 Apr 2019 16:04:48 +0100 Message-Id: <20190415150449.44799-2-marko.kovacevic@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190415150449.44799-1-marko.kovacevic@intel.com> References: <20190411141656.27720-1-marko.kovacevic@intel.com> <20190415150449.44799-1-marko.kovacevic@intel.com> Subject: [dpdk-dev] [PATCH v2 2/3] examples/fips_validation: fix cmac test failure 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" As a result of the cmac test running the test where PT len is 65536 it should give a result back to the user USER1: Error -1: Prepare op USER1: PT len 65536 as this MSG len is not supported. Issue was that the application was not freeing the op properly after a while causing the app to fail. CRYPTODEV: rte_cryptodev_sym_session_create() line 1340: couldn't get object from session mempool USER1: Error -12: test block USER1: Error -12: Failed test CMAC/req/CMAC.req Fixes: cd255ccf5764 ("examples/fips_validation: support AES parsing") Cc: marko.kovacevic@intel.com Cc: stable@dpdk.org Signed-off-by: Marko Kovacevic --- examples/fips_validation/main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c index 5e3d5baa8..aef45055e 100644 --- a/examples/fips_validation/main.c +++ b/examples/fips_validation/main.c @@ -949,19 +949,20 @@ fips_run_test(void) if (ret < 0) { RTE_LOG(ERR, USER1, "Error %i: Init session\n", ret); - return ret; + goto exit; } ret = test_ops.prepare_op(); if (ret < 0) { RTE_LOG(ERR, USER1, "Error %i: Prepare op\n", ret); - return ret; + goto exit; } if (rte_cryptodev_enqueue_burst(env.dev_id, 0, &env.op, 1) < 1) { RTE_LOG(ERR, USER1, "Error: Failed enqueue\n"); - return ret; + ret = -1; + goto exit; } do { @@ -973,6 +974,7 @@ fips_run_test(void) vec.status = env.op->status; +exit: rte_cryptodev_sym_session_clear(env.dev_id, env.sess); rte_cryptodev_sym_session_free(env.sess); env.sess = NULL; From patchwork Mon Apr 15 15:04:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kovacevic, Marko" X-Patchwork-Id: 52799 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1B2731B2AF; Mon, 15 Apr 2019 17:05:05 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 538301B212; Mon, 15 Apr 2019 17:04:57 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Apr 2019 08:04:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,354,1549958400"; d="scan'208";a="140836583" Received: from silpixa00399502.ir.intel.com (HELO silpixa00399502.ger.corp.intel.com) ([10.237.222.111]) by fmsmga008.fm.intel.com with ESMTP; 15 Apr 2019 08:04:54 -0700 From: Marko Kovacevic To: dev@dpdk.org Cc: john.mcnamara@intel.com, xinfengx.zhao@intel.com, akhil.goyal@nxp.com, Marko Kovacevic , roy.fan.zhang@intel.com, stable@dpdk.org Date: Mon, 15 Apr 2019 16:04:49 +0100 Message-Id: <20190415150449.44799-3-marko.kovacevic@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190415150449.44799-1-marko.kovacevic@intel.com> References: <20190411141656.27720-1-marko.kovacevic@intel.com> <20190415150449.44799-1-marko.kovacevic@intel.com> Subject: [dpdk-dev] [PATCH v2 3/3] cryptodev: fix uninitialized session clear 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" added check to see if a session for a device has been initialised if it has return 0. Fixes: 5d6c73dd5938 ("cryptodev: add reference count to session private data") Cc: roy.fan.zhang@intel.com Cc: stable@dpdk.org Signed-off-by: Marko Kovacevic Acked-by: Fiona Trahe --- lib/librte_cryptodev/rte_cryptodev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c index 2675e1ef7..00c2cf432 100644 --- a/lib/librte_cryptodev/rte_cryptodev.c +++ b/lib/librte_cryptodev/rte_cryptodev.c @@ -1386,6 +1386,8 @@ rte_cryptodev_sym_session_clear(uint8_t dev_id, return -EINVAL; driver_id = dev->driver_id; + if (sess->sess_data[driver_id].refcnt == 0) + return 0; if (--sess->sess_data[driver_id].refcnt != 0) return -EBUSY;