DPDK patches and discussions
 help / color / mirror / Atom feed
From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
To: declan.doherty@intel.com, thomas@monjalon.net
Cc: dev@dpdk.org, Pablo de Lara <pablo.de.lara.guarch@intel.com>
Subject: [dpdk-dev] [PATCH 01/12] cryptodev: store device pointer in virtual devices
Date: Wed, 24 May 2017 16:27:03 +0100	[thread overview]
Message-ID: <1495639634-74846-2-git-send-email-pablo.de.lara.guarch@intel.com> (raw)
In-Reply-To: <1495639634-74846-1-git-send-email-pablo.de.lara.guarch@intel.com>

Only non virtual devices were storing the pointer to
rte_device structure in rte_cryptodev, which will be needed
to retrieve the driver name for any device.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 drivers/crypto/aesni_gcm/aesni_gcm_pmd.c   | 3 ++-
 drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 4 +++-
 drivers/crypto/armv8/rte_armv8_pmd.c       | 3 ++-
 drivers/crypto/kasumi/rte_kasumi_pmd.c     | 3 ++-
 drivers/crypto/null/null_crypto_pmd.c      | 7 +++++--
 drivers/crypto/openssl/rte_openssl_pmd.c   | 3 ++-
 drivers/crypto/scheduler/scheduler_pmd.c   | 7 +++++--
 drivers/crypto/snow3g/rte_snow3g_pmd.c     | 3 ++-
 drivers/crypto/zuc/rte_zuc_pmd.c           | 3 ++-
 lib/librte_cryptodev/rte_cryptodev.c       | 4 +++-
 lib/librte_cryptodev/rte_cryptodev.h       | 1 +
 lib/librte_cryptodev/rte_cryptodev_pmd.h   | 3 ++-
 12 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
index 101ef98..246f71e 100644
--- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
+++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
@@ -450,7 +450,8 @@ aesni_gcm_create(const char *name,
 	}
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
-			sizeof(struct aesni_gcm_private), init_params->socket_id);
+			sizeof(struct aesni_gcm_private), init_params->socket_id,
+			vdev);
 	if (dev == NULL) {
 		GCM_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
index 45b25c9..49d3f32 100644
--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
@@ -699,12 +699,14 @@ cryptodev_aesni_mb_create(const char *name,
 	}
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
-			sizeof(struct aesni_mb_private), init_params->socket_id);
+			sizeof(struct aesni_mb_private), init_params->socket_id,
+			vdev);
 	if (dev == NULL) {
 		MB_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
 	}
 
+	dev->device = &vdev->device;
 	dev->dev_type = RTE_CRYPTODEV_AESNI_MB_PMD;
 	dev->dev_ops = rte_aesni_mb_pmd_ops;
 
diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c
index 3d603a5..29905d6 100644
--- a/drivers/crypto/armv8/rte_armv8_pmd.c
+++ b/drivers/crypto/armv8/rte_armv8_pmd.c
@@ -808,7 +808,8 @@ cryptodev_armv8_crypto_create(const char *name,
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
 				sizeof(struct armv8_crypto_private),
-				init_params->socket_id);
+				init_params->socket_id,
+				vdev);
 	if (dev == NULL) {
 		ARMV8_CRYPTO_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
diff --git a/drivers/crypto/kasumi/rte_kasumi_pmd.c b/drivers/crypto/kasumi/rte_kasumi_pmd.c
index 9da9e89..a95f503 100644
--- a/drivers/crypto/kasumi/rte_kasumi_pmd.c
+++ b/drivers/crypto/kasumi/rte_kasumi_pmd.c
@@ -574,7 +574,8 @@ cryptodev_kasumi_create(const char *name,
 	}
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
-			sizeof(struct kasumi_private), init_params->socket_id);
+			sizeof(struct kasumi_private), init_params->socket_id,
+			vdev);
 	if (dev == NULL) {
 		KASUMI_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
diff --git a/drivers/crypto/null/null_crypto_pmd.c b/drivers/crypto/null/null_crypto_pmd.c
index 023450a..8124eba 100644
--- a/drivers/crypto/null/null_crypto_pmd.c
+++ b/drivers/crypto/null/null_crypto_pmd.c
@@ -166,6 +166,7 @@ static int cryptodev_null_remove(const char *name);
 /** Create crypto device */
 static int
 cryptodev_null_create(const char *name,
+		struct rte_vdev_device *vdev,
 		struct rte_crypto_vdev_init_params *init_params)
 {
 	struct rte_cryptodev *dev;
@@ -177,12 +178,14 @@ cryptodev_null_create(const char *name,
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
 			sizeof(struct null_crypto_private),
-			init_params->socket_id);
+			init_params->socket_id,
+			vdev);
 	if (dev == NULL) {
 		NULL_CRYPTO_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
 	}
 
+	dev->device = &vdev->device;
 	dev->dev_type = RTE_CRYPTODEV_NULL_PMD;
 	dev->dev_ops = null_crypto_pmd_ops;
 
@@ -235,7 +238,7 @@ cryptodev_null_probe(struct rte_vdev_device *dev)
 	RTE_LOG(INFO, PMD, "  Max number of sessions = %d\n",
 			init_params.max_nb_sessions);
 
-	return cryptodev_null_create(name, &init_params);
+	return cryptodev_null_create(name, dev, &init_params);
 }
 
 /** Uninitialise null crypto device */
diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index f0c5ca3..13a5129 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1277,7 +1277,8 @@ cryptodev_openssl_create(const char *name,
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
 			sizeof(struct openssl_private),
-			init_params->socket_id);
+			init_params->socket_id,
+			vdev);
 	if (dev == NULL) {
 		OPENSSL_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
diff --git a/drivers/crypto/scheduler/scheduler_pmd.c b/drivers/crypto/scheduler/scheduler_pmd.c
index 0b63c20..acec102 100644
--- a/drivers/crypto/scheduler/scheduler_pmd.c
+++ b/drivers/crypto/scheduler/scheduler_pmd.c
@@ -89,7 +89,8 @@ const struct scheduler_parse_map scheduler_ordering_map[] = {
 
 static int
 cryptodev_scheduler_create(const char *name,
-	struct scheduler_init_params *init_params)
+		struct rte_vdev_device *vdev,
+		struct scheduler_init_params *init_params)
 {
 	struct rte_cryptodev *dev;
 	struct scheduler_ctx *sched_ctx;
@@ -103,7 +104,8 @@ cryptodev_scheduler_create(const char *name,
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->def_p.name,
 			sizeof(struct scheduler_ctx),
-			init_params->def_p.socket_id);
+			init_params->def_p.socket_id,
+			vdev);
 	if (dev == NULL) {
 		CS_LOG_ERR("driver %s: failed to create cryptodev vdev",
 			name);
@@ -439,6 +441,7 @@ cryptodev_scheduler_probe(struct rte_vdev_device *vdev)
 			init_params.def_p.name);
 
 	return cryptodev_scheduler_create(name,
+					vdev,
 					&init_params);
 }
 
diff --git a/drivers/crypto/snow3g/rte_snow3g_pmd.c b/drivers/crypto/snow3g/rte_snow3g_pmd.c
index 960956c..f17c541 100644
--- a/drivers/crypto/snow3g/rte_snow3g_pmd.c
+++ b/drivers/crypto/snow3g/rte_snow3g_pmd.c
@@ -563,7 +563,8 @@ cryptodev_snow3g_create(const char *name,
 	}
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
-			sizeof(struct snow3g_private), init_params->socket_id);
+			sizeof(struct snow3g_private), init_params->socket_id,
+			vdev);
 	if (dev == NULL) {
 		SNOW3G_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c
index 1020544..ab42d06 100644
--- a/drivers/crypto/zuc/rte_zuc_pmd.c
+++ b/drivers/crypto/zuc/rte_zuc_pmd.c
@@ -463,7 +463,8 @@ cryptodev_zuc_create(const char *name,
 	}
 
 	dev = rte_cryptodev_pmd_virtual_dev_init(init_params->name,
-			sizeof(struct zuc_private), init_params->socket_id);
+			sizeof(struct zuc_private), init_params->socket_id,
+			vdev);
 	if (dev == NULL) {
 		ZUC_LOG_ERR("failed to create cryptodev vdev");
 		goto init_error;
diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c
index b65cd9c..edd683c 100644
--- a/lib/librte_cryptodev/rte_cryptodev.c
+++ b/lib/librte_cryptodev/rte_cryptodev.c
@@ -673,7 +673,7 @@ rte_cryptodev_pmd_release_device(struct rte_cryptodev *cryptodev)
 
 struct rte_cryptodev *
 rte_cryptodev_pmd_virtual_dev_init(const char *name, size_t dev_private_size,
-		int socket_id)
+		int socket_id, struct rte_vdev_device *vdev)
 {
 	struct rte_cryptodev *cryptodev;
 
@@ -695,6 +695,8 @@ rte_cryptodev_pmd_virtual_dev_init(const char *name, size_t dev_private_size,
 					" data");
 	}
 
+	cryptodev->device = &vdev->device;
+
 	/* initialise user call-back tail queue */
 	TAILQ_INIT(&(cryptodev->link_intr_cbs));
 
diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h
index 88aeb87..f307b3b 100644
--- a/lib/librte_cryptodev/rte_cryptodev.h
+++ b/lib/librte_cryptodev/rte_cryptodev.h
@@ -49,6 +49,7 @@ extern "C" {
 #include "rte_crypto.h"
 #include "rte_dev.h"
 #include <rte_common.h>
+#include <rte_vdev.h>
 
 #define CRYPTODEV_NAME_NULL_PMD		crypto_null
 /**< Null crypto PMD device name */
diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h b/lib/librte_cryptodev/rte_cryptodev_pmd.h
index 17ef37c..ec4ca97 100644
--- a/lib/librte_cryptodev/rte_cryptodev_pmd.h
+++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h
@@ -462,6 +462,7 @@ rte_cryptodev_pmd_allocate(const char *name, int socket_id);
  * @param	name			PMD type name
  * @param	dev_private_size	Size of crypto PMDs private data
  * @param	socket_id		Socket to allocate resources on.
+ * @param	vdev			Pointer to virtual device structure.
  *
  * @return
  *   - Cryptodev pointer if device is successfully created.
@@ -469,7 +470,7 @@ rte_cryptodev_pmd_allocate(const char *name, int socket_id);
  */
 struct rte_cryptodev *
 rte_cryptodev_pmd_virtual_dev_init(const char *name, size_t dev_private_size,
-		int socket_id);
+		int socket_id, struct rte_vdev_device *vdev);
 
 
 /**
-- 
2.7.4

  reply	other threads:[~2017-05-24 15:27 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-24 15:27 [dpdk-dev] [PATCH 00/12] Remove cryptodev driver Pablo de Lara
2017-05-24 15:27 ` Pablo de Lara [this message]
2017-06-20 14:34   ` [dpdk-dev] [PATCH 01/12] cryptodev: store device pointer in virtual devices Declan Doherty
2017-06-20 17:29     ` De Lara Guarch, Pablo
2017-05-24 15:27 ` [dpdk-dev] [PATCH 02/12] cryptodev: set driver name for all devices Pablo de Lara
2017-06-20 14:34   ` Declan Doherty
2017-05-24 15:27 ` [dpdk-dev] [PATCH 03/12] cryptodev: rename device retrieval argument Pablo de Lara
2017-06-20 14:35   ` Declan Doherty
2017-06-20 17:28     ` De Lara Guarch, Pablo
2017-05-24 15:27 ` [dpdk-dev] [PATCH 04/12] cryptodev: simplify device list retrieval logic Pablo de Lara
2017-06-20 14:35   ` Declan Doherty
2017-06-20 17:29     ` De Lara Guarch, Pablo
2017-05-24 15:27 ` [dpdk-dev] [PATCH 05/12] cryptodev: only set PCI info when device is PCI Pablo de Lara
2017-06-20 14:36   ` Declan Doherty
2017-05-24 15:27 ` [dpdk-dev] [PATCH 06/12] cryptodev: move vdev functions to a separate file Pablo de Lara
2017-06-20 14:36   ` Declan Doherty
2017-06-20 21:46     ` De Lara Guarch, Pablo
2017-05-24 15:27 ` [dpdk-dev] [PATCH 07/12] cryptodev: release device if PCI device probing fails Pablo de Lara
2017-06-20 14:36   ` Declan Doherty
2017-05-24 15:27 ` [dpdk-dev] [PATCH 08/12] cryptodev: add PCI driver helpers Pablo de Lara
2017-06-20 14:37   ` Declan Doherty
2017-05-24 15:27 ` [dpdk-dev] [PATCH 09/12] crypto/qat: do not use cryptodev driver Pablo de Lara
2017-06-20 14:37   ` Declan Doherty
2017-05-24 15:27 ` [dpdk-dev] [PATCH 10/12] crypto/dpaa2_sec: " Pablo de Lara
2017-05-24 15:27 ` [dpdk-dev] [PATCH 11/12] cryptodev: remove unused PCI probe/remove Pablo de Lara
2017-06-20 14:37   ` Declan Doherty
2017-05-24 15:27 ` [dpdk-dev] [PATCH 12/12] cryptodev: remove unused cryptodev driver Pablo de Lara
2017-06-20 14:37   ` Declan Doherty
2017-06-07 22:54 ` [dpdk-dev] [PATCH 00/12] Remove " Gaëtan Rivet
2017-06-08 15:58   ` De Lara Guarch, Pablo
2017-06-09  9:58     ` Gaëtan Rivet
2017-06-09 10:01       ` De Lara Guarch, Pablo
2017-06-09 10:29         ` De Lara Guarch, Pablo
2017-06-21  6:28 ` [dpdk-dev] [PATCH v2 00/12] Remove cryptodev driver structure Pablo de Lara
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 01/12] cryptodev: store device pointer in virtual devices Pablo de Lara
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 02/12] cryptodev: set driver name for all devices Pablo de Lara
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 03/12] cryptodev: rename device retrieval argument Pablo de Lara
2017-06-23 12:54     ` Declan Doherty
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 04/12] cryptodev: simplify device list retrieval logic Pablo de Lara
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 05/12] cryptodev: only set PCI info when device is PCI Pablo de Lara
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 06/12] cryptodev: move vdev functions to a separate file Pablo de Lara
2017-06-23 12:52     ` Declan Doherty
2017-06-26 23:30       ` Thomas Monjalon
2017-06-27  9:51         ` De Lara Guarch, Pablo
2017-06-27 14:28           ` Thomas Monjalon
2017-06-27 15:11             ` Ferruh Yigit
2017-06-27 16:09               ` Thomas Monjalon
2017-06-27 17:11                 ` De Lara Guarch, Pablo
2017-06-27 22:22                   ` De Lara Guarch, Pablo
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 07/12] cryptodev: release device if PCI device probing fails Pablo de Lara
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 08/12] cryptodev: add PCI driver helpers Pablo de Lara
2017-06-29 21:21     ` Thomas Monjalon
2017-06-21  6:28   ` [dpdk-dev] [PATCH v2 09/12] crypto/qat: do not use cryptodev driver Pablo de Lara
2017-06-23 15:18   ` [dpdk-dev] [PATCH v2 00/12] Remove cryptodev driver structure De Lara Guarch, Pablo
2017-06-21  6:30 ` [dpdk-dev] [PATCH v2 10/12] crypto/dpaa2_sec: do not use cryptodev driver Pablo de Lara
2017-06-21  6:30 ` [dpdk-dev] [PATCH v2 11/12] cryptodev: remove unused PCI probe/remove Pablo de Lara
2017-06-21  6:30 ` [dpdk-dev] [PATCH v2 12/12] cryptodev: remove unused cryptodev driver Pablo de Lara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1495639634-74846-2-git-send-email-pablo.de.lara.guarch@intel.com \
    --to=pablo.de.lara.guarch@intel.com \
    --cc=declan.doherty@intel.com \
    --cc=dev@dpdk.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).