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
next prev parent 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).