cryptodev: crypto PMD functions incorrectly inlined
PATCH 1/1 cryptodev: crypto PMD functions incorrectly inlined
rte_cryptodev_pmd_get_dev, rte_cryptodev_pmd_get_named_dev, rte_cryptodev_pmd_is_valid_dev were incorrectly marked as inline and therefore not useable from crypto PMDs when built as shared libraries as they accessed the global rte_cryptodev_globals device structure.
devices")
--- lib/librte_cryptodev/rte_cryptodev.c | 42 ++++++++++++++++++++++++ lib/librte_cryptodev/rte_cryptodev_pmd.h | 44 ++++---------------------- lib/librte_cryptodev/rte_cryptodev_version.map | 3 ++ 3 files changed, 51 insertions(+), 38 deletions(-)
lib/librte_cryptodev/rte_cryptodev.c +42 -0
@@ -255,6 +255,48 @@ rte_cryptodev_create_vdev(const char *name, const char *args)return rte_eal_vdev_init (name, args); } +struct rte_cryptodev * +rte_cryptodev_pmd_get_dev (uint8_t dev_id) +{ +return &rte_cryptodev_globals->devs[dev_id]; +} + +struct rte_cryptodev * +rte_cryptodev_pmd_get_named_dev (const char *name) +{ +struct rte_cryptodev *dev; +unsigned i; + +if (name ==NULL ) +return NULL ; + +for (i =0 ; i < rte_cryptodev_globals->max_devs; i++) { + dev = &rte_cryptodev_globals->devs[i]; + +if ((dev->attached ==RTE_CRYPTODEV_ATTACHED ) && + (strcmp (dev->data->name, name) ==0 )) +return dev; + } + +return NULL ; +} + +unsigned +rte_cryptodev_pmd_is_valid_dev (uint8_t dev_id) +{ +struct rte_cryptodev *dev =NULL ; + +if (dev_id >= rte_cryptodev_globals->nb_devs) +return 0 ; + + dev =rte_cryptodev_pmd_get_dev (dev_id); +if (dev->attached !=RTE_CRYPTODEV_ATTACHED ) +return 0 ; +else +return 1 ; +} + +int rte_cryptodev_get_dev_id (const char *name) {
lib/librte_cryptodev/rte_cryptodev_pmd.h +6 -38
62 lines not on this page · raw message
lib/librte_cryptodev/rte_cryptodev_version.map +3 -0
@@ -51,5 +51,8 @@ DPDK_17.02 { global: rte_cryptodev_pmd_create_dev_name; + rte_cryptodev_pmd_get_dev; + rte_cryptodev_pmd_get_named_dev; + rte_cryptodev_pmd_is_valid_dev; } DPDK_16.11;
Signature · 1 line
2.9.3
Quoted 160 lines
-----Original Message-----
From: dev [mailto:[email protected]] On Behalf Of Declan Doherty
Sent: Monday, January 23, 2017 12:19 PM
To: [email protected]
Cc: De Lara Guarch, Pablo <[email protected]>; [email protected]; Doherty, Declan <[email protected]>
Subject: [dpdk-dev] [PATCH] cryptodev: crypto PMD functions incorrectly inlined
rte_cryptodev_pmd_get_dev,rte_cryptodev_pmd_get_named_dev,rte_cryptodev_pmd_is_valid_devwere incorrectly marked as inline and therefore not useable from crypto PMDs when built as shared libraries as they accessed the globalrte_cryptodev_globalsdevice structure.Fixes d11b0f30 ("cryptodev: introduce API and framework for cryptodevices")
Signed-off-by Declan Doherty <[email protected]>--- lib/librte_cryptodev/rte_cryptodev.c | 42 ++++++++++++++++++++++++ lib/librte_cryptodev/rte_cryptodev_pmd.h | 44 ++++---------------------- lib/librte_cryptodev/rte_cryptodev_version.map | 3 ++ 3 files changed, 51 insertions(+), 38 deletions(-)lib/librte_cryptodev/rte_cryptodev.c +39
-0@@ -255,6 +255,48 @@ rte_cryptodev_create_vdev(const char *name, const char *args) return rte_eal_vdev_init(name, args); } +struct rte_cryptodev * +rte_cryptodev_pmd_get_dev (uint8_t dev_id) { +return &rte_cryptodev_globals->devs[dev_id]; +} + +struct rte_cryptodev * +rte_cryptodev_pmd_get_named_dev (const char *name) { +struct rte_cryptodev *dev; +unsigned i; + +if (name ==NULL ) +return NULL ; + +for (i =0 ; i < rte_cryptodev_globals->max_devs; i++) { + dev = &rte_cryptodev_globals->devs[i]; + +if ((dev->attached ==RTE_CRYPTODEV_ATTACHED ) && + (strcmp (dev->data->name, name) ==0 )) +return dev; + } + +return NULL ; +} + +unsigned +rte_cryptodev_pmd_is_valid_dev (uint8_t dev_id) { +struct rte_cryptodev *dev =NULL ; + +if (dev_id >= rte_cryptodev_globals->nb_devs) +return 0 ; + + dev =rte_cryptodev_pmd_get_dev (dev_id); +if (dev->attached !=RTE_CRYPTODEV_ATTACHED ) +return 0 ; +else +return 1 ; +} + +int rte_cryptodev_get_dev_id(const char *name) { diff --git
a/lib/librte_cryptodev/rte_cryptodev_pmd.hb/lib/librte_cryptodev/rte_cryptodev_pmd.h
index aabef41..b6dc32c 100644lib/librte_cryptodev/rte_cryptodev_pmd.h +6
-35@@ -160,11 +160,8 @@ extern struct rte_cryptodev_global*rte_cryptodev_globals; * @return * - The rte_cryptodev structure pointer for the given device ID. */ -static inline struct rte_cryptodev * -rte_cryptodev_pmd_get_dev(uint8_t dev_id) -{ -return &rte_cryptodev_globals->devs[dev_id]; -} +struct rte_cryptodev * +rte_cryptodev_pmd_get_dev (uint8_t dev_id);/** * Get the rte_cryptodev structure device pointer for the named device. @@ -174,25 +171,8 @@ rte_cryptodev_pmd_get_dev(uint8_t dev_id)* @return * - The rte_cryptodev structure pointer for the given device ID. */ -static inline struct rte_cryptodev * -rte_cryptodev_pmd_get_named_dev(const char *name) -{ -struct rte_cryptodev *dev; -unsigned i; - -if (name ==NULL ) -return NULL ; - -for (i =0 ; i < rte_cryptodev_globals->max_devs; i++) { - dev = &rte_cryptodev_globals->devs[i]; - -if ((dev->attached ==RTE_CRYPTODEV_ATTACHED ) && - (strcmp (dev->data->name, name) ==0 )) -return dev; - } - -return NULL ; -} +struct rte_cryptodev * +rte_cryptodev_pmd_get_named_dev (const char *name);/** * Validate if the crypto device index is valid attached crypto device. @@ -202,20 +182,8 @@ rte_cryptodev_pmd_get_named_dev(const char*name) * @return * - If the device index is valid (1) or not (0). */ -static inline unsigned -rte_cryptodev_pmd_is_valid_dev(uint8_t dev_id) -{ -struct rte_cryptodev *dev =NULL ; - -if (dev_id >= rte_cryptodev_globals->nb_devs) -return 0 ; - - dev =rte_cryptodev_pmd_get_dev (dev_id); -if (dev->attached !=RTE_CRYPTODEV_ATTACHED ) -return 0 ; -else -return 1 ; -} +unsigned +rte_cryptodev_pmd_is_valid_dev (uint8_t dev_id);/** * The pool of rte_cryptodev structures. lib/librte_cryptodev/rte_cryptodev_version.map +3
-1@@ -51,5 +51,8 @@ DPDK_17.02 { global: rte_cryptodev_pmd_create_dev_name; + rte_cryptodev_pmd_get_dev; + rte_cryptodev_pmd_get_named_dev; + rte_cryptodev_pmd_is_valid_dev; } DPDK_16.11; --
Quoted 1 line
2.9.3
De Lara Guarch, Pablo
AppliedQuoted 28 lines
-----Original Message-----
From: Zhang, Roy Fan
Sent: Monday, January 23, 2017 12:25 PM
To: Doherty, Declan; [email protected]
Cc: De Lara Guarch, Pablo; [email protected]; Doherty, Declan
Subject: RE: [dpdk-dev] [PATCH] cryptodev: crypto PMD functions incorrectly inlinedQuoted 18 lines
-----Original Message-----
From: dev [mailto:[email protected]] On Behalf Of Declan Doherty
Sent: Monday, January 23, 2017 12:19 PM
To: [email protected]
Cc: De Lara Guarch, Pablo <[email protected]>; [email protected]; Doherty, Declan <[email protected]>
Subject: [dpdk-dev] [PATCH] cryptodev: crypto PMD functions incorrectly inlined
rte_cryptodev_pmd_get_dev,rte_cryptodev_pmd_get_named_dev,rte_cryptodev_pmd_is_valid_devwere incorrectly marked as inline and therefore not useable from crypto PMDs when built as shared libraries as they accessed the globalrte_cryptodev_globalsdevice structure.Fixes d11b0f30 ("cryptodev: introduce API and framework for cryptodevices")
Signed-off-by Declan Doherty <[email protected]>
...
Quoted 1 line
Acked-by Fan Zhang <[email protected]>
Applied to dpdk-next-crypto.
Thanks,
Pablo