Commit c61b70c3 authored by Changpeng Liu's avatar Changpeng Liu Committed by Tomasz Zawadzki
Browse files

nvme/opal: rename spdk_opal_init_dev() and spdk_opal_close() with construct/destruct suffix



Since the OPAL here is just for NVMe device, so we don't need to use dev_handler as common
handler, just rename it to spdk_nvme_ctrlr.  And we don't exit the initialization if
OPAL construnction had a failure.  Also move the timeout initialization to construct().

Change-Id: I11f0aea961eaa3da0c6253eb03d0227f7e7e5f11
Signed-off-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1101


Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 01ddd112
Loading
Loading
Loading
Loading
+46 −46
Original line number Diff line number Diff line
@@ -973,7 +973,7 @@ opal_scan(struct dev *iter)
{
	while (getchar() != '\n');
	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -984,7 +984,7 @@ opal_scan(struct dev *iter)
			spdk_opal_cmd_scan(iter->opal_dev);
			opal_dump_info(spdk_opal_get_d0_features_info(iter->opal_dev));
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1002,7 +1002,7 @@ opal_init(struct dev *iter)
	int ch;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1015,14 +1015,14 @@ opal_init(struct dev *iter)
				ret = spdk_opal_cmd_take_ownership(iter->opal_dev, passwd_p);
				if (ret) {
					printf("Take ownership failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

				ret = spdk_opal_cmd_activate_locking_sp(iter->opal_dev, passwd_p);
				if (ret) {
					printf("Locking SP activate failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				printf("...\nOpal Init Success\n");
@@ -1030,7 +1030,7 @@ opal_init(struct dev *iter)
				printf("Input password invalid. Opal Init failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1060,7 +1060,7 @@ opal_setup_lockingrange(struct dev *iter)
	struct spdk_opal_locking_range_info *info;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1073,21 +1073,21 @@ opal_setup_lockingrange(struct dev *iter)
				printf("Specify locking range id:\n");
				if (!scanf("%d", &locking_range_id)) {
					printf("Invalid locking range id\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

				printf("range length:\n");
				if (!scanf("%" SCNu64, &range_length)) {
					printf("Invalid range length\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

				printf("range start:\n");
				if (!scanf("%" SCNu64, &range_start)) {
					printf("Invalid range start address\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				while (getchar() != '\n');
@@ -1096,7 +1096,7 @@ opal_setup_lockingrange(struct dev *iter)
									OPAL_ADMIN1, locking_range_id, range_start, range_length, passwd_p);
				if (ret) {
					printf("Setup locking range failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

@@ -1104,7 +1104,7 @@ opal_setup_lockingrange(struct dev *iter)
						passwd_p, OPAL_ADMIN1, locking_range_id);
				if (ret) {
					printf("Get locking range info failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				info = spdk_opal_get_locking_range_info(iter->opal_dev, locking_range_id);
@@ -1122,7 +1122,7 @@ opal_setup_lockingrange(struct dev *iter)
				printf("Input password invalid. Opal setup locking range failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1141,7 +1141,7 @@ opal_list_locking_ranges(struct dev *iter)
	struct spdk_opal_locking_range_info *info;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1154,7 +1154,7 @@ opal_list_locking_ranges(struct dev *iter)
				ret = spdk_opal_cmd_get_max_ranges(iter->opal_dev, passwd_p);
				if (ret) {
					printf("get max ranges failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

@@ -1164,7 +1164,7 @@ opal_list_locking_ranges(struct dev *iter)
							passwd_p, OPAL_ADMIN1, i);
					if (ret) {
						printf("Get locking range info failure: %d\n", ret);
						spdk_opal_close(iter->opal_dev);
						spdk_opal_dev_destruct(iter->opal_dev);
						return;
					}
					info = spdk_opal_get_locking_range_info(iter->opal_dev, i);
@@ -1188,7 +1188,7 @@ opal_list_locking_ranges(struct dev *iter)
				printf("Input password invalid. List locking ranges failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1207,7 +1207,7 @@ opal_new_user_enable(struct dev *iter)
	int ch;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1220,14 +1220,14 @@ opal_new_user_enable(struct dev *iter)
				printf("which user to enable: ");
				if (!scanf("%d", &user_id)) {
					printf("Invalid user id\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

				ret = spdk_opal_cmd_enable_user(iter->opal_dev, user_id, passwd_p);
				if (ret) {
					printf("Enable user failure error code: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				printf("Please set a new password for this user:");
@@ -1235,14 +1235,14 @@ opal_new_user_enable(struct dev *iter)
				user_pw_p = get_line(user_pw, MAX_PASSWORD_SIZE, stdin, true);
				if (user_pw_p == NULL) {
					printf("Input password invalid. Enable user failure\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

				ret = spdk_opal_cmd_set_new_passwd(iter->opal_dev, user_id, user_pw_p, passwd_p, true);
				if (ret) {
					printf("Set new password failure error code: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

@@ -1251,7 +1251,7 @@ opal_new_user_enable(struct dev *iter)
				printf("Input password invalid. Enable user failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1270,7 +1270,7 @@ opal_change_password(struct dev *iter)
	int ch;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1278,7 +1278,7 @@ opal_change_password(struct dev *iter)
			printf("user id: ");
			if (!scanf("%d", &user_id)) {
				printf("Invalid user id\n");
				spdk_opal_close(iter->opal_dev);
				spdk_opal_dev_destruct(iter->opal_dev);
				return;
			}
			printf("Password:");
@@ -1291,14 +1291,14 @@ opal_change_password(struct dev *iter)
				printf("\n");
				if (new_passwd_p == NULL) {
					printf("Input password invalid. Change password failure\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

				ret = spdk_opal_cmd_set_new_passwd(iter->opal_dev, user_id, new_passwd_p, old_passwd_p, false);
				if (ret) {
					printf("Set new password failure error code: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

@@ -1307,7 +1307,7 @@ opal_change_password(struct dev *iter)
				printf("Input password invalid. Change password failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1324,7 +1324,7 @@ opal_add_user_to_locking_range(struct dev *iter)
	int ch;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1337,14 +1337,14 @@ opal_add_user_to_locking_range(struct dev *iter)
				printf("Specify locking range id:\n");
				if (!scanf("%d", &locking_range_id)) {
					printf("Invalid locking range id\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

				printf("which user to enable:\n");
				if (!scanf("%d", &user_id)) {
					printf("Invalid user id\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				while (getchar() != '\n');
@@ -1357,7 +1357,7 @@ opal_add_user_to_locking_range(struct dev *iter)
						passwd_p);
				if (ret) {
					printf("Add user to locking range error: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

@@ -1366,7 +1366,7 @@ opal_add_user_to_locking_range(struct dev *iter)
				printf("Input password invalid. Add user to locking range failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1386,7 +1386,7 @@ opal_user_lock_unlock_range(struct dev *iter)
	enum spdk_opal_lock_state state_flag;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1394,7 +1394,7 @@ opal_user_lock_unlock_range(struct dev *iter)
			printf("User id: ");
			if (!scanf("%d", &user_id)) {
				printf("Invalid user id\n");
				spdk_opal_close(iter->opal_dev);
				spdk_opal_dev_destruct(iter->opal_dev);
				return;
			}

@@ -1406,7 +1406,7 @@ opal_user_lock_unlock_range(struct dev *iter)
				printf("Specify locking range id:\n");
				if (!scanf("%d", &locking_range_id)) {
					printf("Invalid locking range id\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}

@@ -1426,7 +1426,7 @@ opal_user_lock_unlock_range(struct dev *iter)
					break;
				default:
					printf("Invalid options\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				while (getchar() != '\n');
@@ -1435,7 +1435,7 @@ opal_user_lock_unlock_range(struct dev *iter)
								locking_range_id, passwd_p);
				if (ret) {
					printf("lock/unlock range failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				printf("...\n...\nLock/unlock range Success\n");
@@ -1443,7 +1443,7 @@ opal_user_lock_unlock_range(struct dev *iter)
				printf("Input password invalid. lock/unlock range failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1459,7 +1459,7 @@ opal_revert_tper(struct dev *iter)
	int ch;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1474,7 +1474,7 @@ opal_revert_tper(struct dev *iter)
				ret = spdk_opal_cmd_revert_tper(iter->opal_dev, passwd_p);
				if (ret) {
					printf("Revert TPer failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				printf("...\nRevert TPer Success\n");
@@ -1482,7 +1482,7 @@ opal_revert_tper(struct dev *iter)
				printf("Input password invalid. Revert TPer failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
@@ -1499,7 +1499,7 @@ opal_erase_locking_range(struct dev *iter)
	int locking_range_id;

	if (spdk_nvme_ctrlr_get_flags(iter->ctrlr) & SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		iter->opal_dev = spdk_opal_init_dev(iter->ctrlr);
		iter->opal_dev = spdk_opal_dev_construct(iter->ctrlr);
		if (iter->opal_dev == NULL) {
			return;
		}
@@ -1512,14 +1512,14 @@ opal_erase_locking_range(struct dev *iter)
				printf("\nSpecify locking range id:\n");
				if (!scanf("%d", &locking_range_id)) {
					printf("Invalid locking range id\n");
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				printf("\n...\n");
				ret = spdk_opal_cmd_erase_locking_range(iter->opal_dev, OPAL_ADMIN1, locking_range_id, passwd_p);
				if (ret) {
					printf("Erase locking range failure: %d\n", ret);
					spdk_opal_close(iter->opal_dev);
					spdk_opal_dev_destruct(iter->opal_dev);
					return;
				}
				printf("...\nErase locking range Success\n");
@@ -1527,7 +1527,7 @@ opal_erase_locking_range(struct dev *iter)
				printf("Input password invalid. Erase locking range failure\n");
			}
		}
		spdk_opal_close(iter->opal_dev);
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\nOpal Not Supported\n\n\n",
		       iter->pci_addr.domain, iter->pci_addr.bus, iter->pci_addr.dev, iter->pci_addr.func);
+2 −2
Original line number Diff line number Diff line
@@ -131,9 +131,9 @@ struct spdk_opal_dev;

typedef void (*spdk_opal_revert_cb)(struct spdk_opal_dev *dev, void *ctx, int rc);

struct spdk_opal_dev *spdk_opal_init_dev(void *dev_handler);
struct spdk_opal_dev *spdk_opal_dev_construct(struct spdk_nvme_ctrlr *ctrlr);
void spdk_opal_dev_destruct(struct spdk_opal_dev *dev);

void spdk_opal_close(struct spdk_opal_dev *dev);
struct spdk_opal_d0_features_info *spdk_opal_get_d0_features_info(struct spdk_opal_dev *dev);

bool spdk_opal_supported(struct spdk_opal_dev *dev);
+9 −9
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ opal_flush_response_buffer(struct spdk_opal_dev *dev)
	void *response = dev->resp;
	int ret = 0;

	ret = spdk_nvme_ctrlr_security_receive(dev->dev_handler, SPDK_SCSI_SECP_TCG, dev->comid,
	ret = spdk_nvme_ctrlr_security_receive(dev->ctrlr, SPDK_SCSI_SECP_TCG, dev->comid,
					       0, response, IO_BUFFER_LENGTH);
	if (ret) {
		SPDK_ERRLOG("Security Receive Error on dev = %p\n", dev);
@@ -75,7 +75,7 @@ opal_flush_response_buffer(struct spdk_opal_dev *dev)
static int
opal_send_cmd(struct spdk_opal_dev *dev)
{
	return spdk_nvme_ctrlr_security_send(dev->dev_handler, SPDK_SCSI_SECP_TCG, dev->comid,
	return spdk_nvme_ctrlr_security_send(dev->ctrlr, SPDK_SCSI_SECP_TCG, dev->comid,
					     0, dev->cmd, IO_BUFFER_LENGTH);
}

@@ -89,7 +89,7 @@ opal_recv_cmd(struct spdk_opal_dev *dev)
	uint64_t now;

	do {
		ret = spdk_nvme_ctrlr_security_receive(dev->dev_handler, SPDK_SCSI_SECP_TCG, dev->comid,
		ret = spdk_nvme_ctrlr_security_receive(dev->ctrlr, SPDK_SCSI_SECP_TCG, dev->comid,
						       0, dev->resp, IO_BUFFER_LENGTH);
		if (ret) {
			SPDK_ERRLOG("Security Receive Error on dev = %p\n", dev);
@@ -908,7 +908,6 @@ opal_setup_dev(struct spdk_opal_dev *dev)
	dev->tsn = 0;
	dev->hsn = 0;
	dev->prev_data = NULL;
	dev->timeout = SPDK_OPAL_TPER_TIMEOUT;
}

static int
@@ -949,7 +948,7 @@ opal_check_support(struct spdk_opal_dev *dev)
}

void
spdk_opal_close(struct spdk_opal_dev *dev)
spdk_opal_dev_destruct(struct spdk_opal_dev *dev)
{
	pthread_mutex_destroy(&dev->mutex_lock);
	if (dev->max_ranges > 0) {
@@ -1840,7 +1839,7 @@ end:
}

struct spdk_opal_dev *
spdk_opal_init_dev(void *dev_handler)
	spdk_opal_dev_construct(struct spdk_nvme_ctrlr *ctrlr)
{
	struct spdk_opal_dev *dev;

@@ -1850,7 +1849,8 @@ spdk_opal_init_dev(void *dev_handler)
		return NULL;
	}

	dev->dev_handler = dev_handler;
	dev->ctrlr = ctrlr;
	dev->timeout = SPDK_OPAL_TPER_TIMEOUT;

	if (opal_check_support(dev) != 0) {
		SPDK_INFOLOG(SPDK_LOG_OPAL, "Opal is not supported on this device\n");
@@ -1874,7 +1874,7 @@ spdk_opal_cmd_scan(struct spdk_opal_dev *dev)
	ret = opal_check_support(dev);
	if (ret) {
		SPDK_ERRLOG("check opal support failed: %d\n", ret);
		spdk_opal_close(dev);
		spdk_opal_dev_destruct(dev);
	}
	return ret;
}
@@ -2066,7 +2066,7 @@ spdk_opal_revert_poll(struct spdk_opal_dev *dev)

	assert(dev->revert_cb_fn);

	ret = spdk_nvme_ctrlr_security_receive(dev->dev_handler, SPDK_SCSI_SECP_TCG, dev->comid,
	ret = spdk_nvme_ctrlr_security_receive(dev->ctrlr, SPDK_SCSI_SECP_TCG, dev->comid,
					       0, dev->resp, IO_BUFFER_LENGTH);
	if (ret) {
		SPDK_ERRLOG("Security Receive Error on dev = %p\n", dev);
+1 −1
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ struct spdk_opal_header {

struct spdk_opal_dev {
	bool supported;
	void *dev_handler;
	struct spdk_nvme_ctrlr *ctrlr;

	uint16_t comid;
	uint32_t hsn;
+1 −2
Original line number Diff line number Diff line
@@ -1295,10 +1295,9 @@ create_ctrlr(struct spdk_nvme_ctrlr *ctrlr,

	if (spdk_nvme_ctrlr_get_flags(nvme_bdev_ctrlr->ctrlr) &
	    SPDK_NVME_CTRLR_SECURITY_SEND_RECV_SUPPORTED) {
		nvme_bdev_ctrlr->opal_dev = spdk_opal_init_dev(nvme_bdev_ctrlr->ctrlr);
		nvme_bdev_ctrlr->opal_dev = spdk_opal_dev_construct(nvme_bdev_ctrlr->ctrlr);
		if (nvme_bdev_ctrlr->opal_dev == NULL) {
			SPDK_ERRLOG("Failed to initialize Opal\n");
			return -ENOMEM;
		}
	}
	return 0;
Loading