Commit 721f606d authored by Tomasz Zawadzki's avatar Tomasz Zawadzki Committed by Jim Harris
Browse files

bdev/crypto: separate out search for vbdev_dev



This patch is first in series that updates bdev crypto
to support DPDK 22.11. See changelog entry from DPDK:
* cryptodev: The structure ``rte_cryptodev_sym_session`` was made internal.
  The API ``rte_cryptodev_sym_session_init`` and
``rte_cryptodev_sym_session_clear``
  were removed and user would only need to call
``rte_cryptodev_sym_session_create``
  and ``rte_cryptodev_sym_session_free`` to create/destroy sessions.
  The API ``rte_cryptodev_sym_session_create`` was updated to take a single
mempool
  with element size big enough to hold session data and session private
data.

So this patch abstracts out lookup for vbdev_dev as it will be used from
multiple places later in the series.

Change-Id: Ibd9ca3456b297c84f8cec162fae27f4ef064cd42
Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15431


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent ec3ac8b8
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -1364,6 +1364,19 @@ vbdev_crypto_io_type_supported(void *ctx, enum spdk_bdev_io_type io_type)
	}
}

static struct vbdev_dev *
_vdev_dev_get(struct vbdev_crypto *vbdev)
{
	struct vbdev_dev *device;

	TAILQ_FOREACH(device, &g_vbdev_devs, link) {
		if (strcmp(device->cdev_info.driver_name, vbdev->opts->drv_name) == 0) {
			return device;
		}
	}
	return NULL;
}

/* Callback for unregistering the IO device. */
static void
_device_unregister_cb(void *io_device)
@@ -1849,7 +1862,6 @@ vbdev_crypto_claim(const char *bdev_name)
	struct vbdev_crypto *vbdev;
	struct vbdev_dev *device;
	struct spdk_bdev *bdev;
	bool found = false;
	uint8_t key_size;
	int rc = 0;

@@ -1956,13 +1968,8 @@ vbdev_crypto_claim(const char *bdev_name)
		}

		/* To init the session we have to get the cryptoDev device ID for this vbdev */
		TAILQ_FOREACH(device, &g_vbdev_devs, link) {
			if (strcmp(device->cdev_info.driver_name, vbdev->opts->drv_name) == 0) {
				found = true;
				break;
			}
		}
		if (found == false) {
		device = _vdev_dev_get(vbdev);
		if (!device) {
			SPDK_ERRLOG("Failed to match crypto device driver to crypto vbdev.\n");
			rc = -EINVAL;
			goto error_cant_find_devid;