bdev/crypto: update rte_cryptodev usage for DPDK 22.11

Adjusts use of rte_crypto API after DPDK patch below:
(bdce2564dbf78e1fecc0db438b562ae19f0c057c)

For DPDK 22.11 and later, rte_cryptodev_sym_session_init()
is no longer used and only calling
rte_cryptodev_sym_session_create/free().

Change-Id: I89d8fa737fd6c199a4a5a810b85d6d5b79d5d27b
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15391
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
This commit is contained in:
Tomasz Zawadzki 2022-11-08 12:04:58 +01:00
parent 4f4bf8c482
commit 495055b054
2 changed files with 30 additions and 11 deletions

View File

@ -20,6 +20,7 @@
#include <rte_crypto.h>
#include <rte_cryptodev.h>
#include <rte_mbuf_dyn.h>
#include <rte_version.h>
/* Used to store IO context in mbuf */
static const struct rte_mbuf_dynfield rte_mbuf_dynfield_io_context = {
@ -1378,9 +1379,17 @@ _vdev_dev_get(struct vbdev_crypto *vbdev)
}
static void
_cryptodev_sym_session_free(void *session)
_cryptodev_sym_session_free(struct vbdev_crypto *vbdev, void *session)
{
#if RTE_VERSION >= RTE_VERSION_NUM(22, 11, 0, 0)
struct vbdev_dev *device = _vdev_dev_get(vbdev);
assert(device != NULL);
rte_cryptodev_sym_session_free(device->cdev_id, session);
#else
rte_cryptodev_sym_session_free(session);
#endif
}
static void *
@ -1388,7 +1397,6 @@ _cryptodev_sym_session_create(struct vbdev_crypto *vbdev, struct rte_crypto_sym_
{
void *session;
struct vbdev_dev *device;
int rc = 0;
device = _vdev_dev_get(vbdev);
if (!device) {
@ -1396,16 +1404,20 @@ _cryptodev_sym_session_create(struct vbdev_crypto *vbdev, struct rte_crypto_sym_
return NULL;
}
#if RTE_VERSION >= RTE_VERSION_NUM(22, 11, 0, 0)
session = rte_cryptodev_sym_session_create(device->cdev_id, xforms, g_session_mp);
#else
session = rte_cryptodev_sym_session_create(g_session_mp);
if (!session) {
return NULL;
}
rc = rte_cryptodev_sym_session_init(device->cdev_id, session, xforms, g_session_mp_priv);
if (rc < 0) {
_cryptodev_sym_session_free(session);
if (rte_cryptodev_sym_session_init(device->cdev_id, session, xforms, g_session_mp_priv) < 0) {
_cryptodev_sym_session_free(vbdev, session);
return NULL;
}
#endif
return session;
}
@ -1416,8 +1428,8 @@ _device_unregister_cb(void *io_device)
struct vbdev_crypto *crypto_bdev = io_device;
/* Done with this crypto_bdev. */
_cryptodev_sym_session_free(crypto_bdev->session_decrypt);
_cryptodev_sym_session_free(crypto_bdev->session_encrypt);
_cryptodev_sym_session_free(crypto_bdev, crypto_bdev->session_decrypt);
_cryptodev_sym_session_free(crypto_bdev, crypto_bdev->session_encrypt);
crypto_bdev->opts = NULL;
free(crypto_bdev->crypto_bdev.name);
free(crypto_bdev);
@ -2048,9 +2060,9 @@ vbdev_crypto_claim(const char *bdev_name)
/* Error cleanup paths. */
error_bdev_register:
_cryptodev_sym_session_free(vbdev->session_decrypt);
_cryptodev_sym_session_free(vbdev, vbdev->session_decrypt);
error_session_de_create:
_cryptodev_sym_session_free(vbdev->session_encrypt);
_cryptodev_sym_session_free(vbdev, vbdev->session_encrypt);
error_session_en_create:
spdk_bdev_module_release_bdev(vbdev->base_bdev);
error_claim:

View File

@ -260,14 +260,21 @@ DEFINE_STUB(rte_cryptodev_queue_pair_setup, int, (uint8_t dev_id, uint16_t queue
DEFINE_STUB(rte_cryptodev_start, int, (uint8_t dev_id), 0);
DEFINE_STUB_V(rte_cryptodev_stop, (uint8_t dev_id));
DEFINE_STUB(rte_cryptodev_close, int, (uint8_t dev_id), 0);
DEFINE_STUB(rte_vdev_init, int, (const char *name, const char *args), 0);
DEFINE_STUB(rte_vdev_uninit, int, (const char *name), 0);
#if RTE_VERSION >= RTE_VERSION_NUM(22, 11, 0, 0)
DEFINE_STUB(rte_cryptodev_sym_session_create, void *,
(uint8_t dev_id, struct rte_crypto_sym_xform *xforms, struct rte_mempool *mempool), (void *)1);
DEFINE_STUB(rte_cryptodev_sym_session_free, int, (uint8_t dev_id, void *sess), 0);
#else
DEFINE_STUB(rte_cryptodev_sym_session_create, struct rte_cryptodev_sym_session *,
(struct rte_mempool *mempool), (void *)1);
DEFINE_STUB(rte_cryptodev_sym_session_init, int, (uint8_t dev_id,
struct rte_cryptodev_sym_session *sess,
struct rte_crypto_sym_xform *xforms, struct rte_mempool *mempool), 0);
DEFINE_STUB(rte_vdev_init, int, (const char *name, const char *args), 0);
DEFINE_STUB(rte_cryptodev_sym_session_free, int, (struct rte_cryptodev_sym_session *sess), 0);
DEFINE_STUB(rte_vdev_uninit, int, (const char *name), 0);
#endif
struct rte_cryptodev *rte_cryptodevs;