]> git.droids-corp.org - dpdk.git/commitdiff
cryptodev: store device pointer in virtual devices
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Wed, 21 Jun 2017 06:28:18 +0000 (07:28 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Wed, 28 Jun 2017 17:59:22 +0000 (19:59 +0200)
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>
Acked-by: Declan Doherty <declan.doherty@intel.com>
12 files changed:
drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
drivers/crypto/armv8/rte_armv8_pmd.c
drivers/crypto/kasumi/rte_kasumi_pmd.c
drivers/crypto/null/null_crypto_pmd.c
drivers/crypto/openssl/rte_openssl_pmd.c
drivers/crypto/scheduler/scheduler_pmd.c
drivers/crypto/snow3g/rte_snow3g_pmd.c
drivers/crypto/zuc/rte_zuc_pmd.c
lib/librte_cryptodev/rte_cryptodev.c
lib/librte_cryptodev/rte_cryptodev.h
lib/librte_cryptodev/rte_cryptodev_pmd.h

index 101ef98bfebb68c6d7c08364b4d4f0bea0ba215f..246f71ef868a8c84dbabd8974387a3fbc84e72a4 100644 (file)
@@ -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;
index 45b25c9d59051a3a49636edb0fe34e78ad5f1126..be38c31222d970c80fb9195843e28822c8dd4c3d 100644 (file)
@@ -699,7 +699,8 @@ 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;
index 3d603a5ac3f4e92ede02c743ee033fc4768f1276..29905d66acbec1340b4db27b94e1f2d8721c2a10 100644 (file)
@@ -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;
index 9da9e89763b5235a6b4431a2e62c494bfeea1dd6..a95f5034da795486bbfac4394a30b1011f0893cc 100644 (file)
@@ -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;
index 023450a3119a9eb63a042580b640f583b06daedb..49da8d461a8be1db0c7951975563f58b0b3f120f 100644 (file)
@@ -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,7 +178,8 @@ 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;
@@ -235,7 +237,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 */
index f0c5ca3cd4c3ea1a33175351e348128cee20fbe3..13a51290ae0229346fecd8a46816a694ad3a5082 100644 (file)
@@ -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;
index 29b16c92029bc763cd2a615c9ac4d23beb42d7ab..50a196ce0ea8baec75e50ca06cd0c27af5bbb3cf 100644 (file)
@@ -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);
@@ -417,6 +419,7 @@ cryptodev_scheduler_probe(struct rte_vdev_device *vdev)
                        init_params.def_p.name);
 
        return cryptodev_scheduler_create(name,
+                                       vdev,
                                        &init_params);
 }
 
index 960956cab4f1143371d48972f0fd108185c8367c..f17c541962eec3e8162064e5227da0b5da8f68f1 100644 (file)
@@ -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;
index 1020544bfd18e2ddf02670075d18e950f0b27521..ab42d06925f0883c5774f0a5054c81b3a569bd57 100644 (file)
@@ -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;
index 81fd2bf1cc91c6a2ff2846b5f39924b99d8bcae0..2b2f0fe0dd34a4a2388602cf1e17564484407c1d 100644 (file)
@@ -651,7 +651,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;
 
@@ -673,6 +673,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));
 
index 88aeb873ed52ff8a37b1b9740a3346e800cc710d..f307b3ba7d9b537d6eaf0360825b8604b45100cb 100644 (file)
@@ -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 */
index 17ef37c70db263f880d7b60547cdbe6ecdd91dee..ec4ca971d99e7f90a5c4a13527924346ffa398e3 100644 (file)
@@ -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);
 
 
 /**