Commit 495055b0 authored by Tomasz Zawadzki's avatar Tomasz Zawadzki
Browse files

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: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15391


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
parent 4f4bf8c4
Loading
Loading
Loading
Loading
+21 −9
Original line number Diff line number Diff line
@@ -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:
+9 −2
Original line number Diff line number Diff line
@@ -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;