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

Revert "nvme/opal: deprecate spdk_opal_supported()"



This reverts commit 66998517.

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


Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent cb3e674c
Loading
Loading
Loading
Loading
+297 −275
Original line number Diff line number Diff line
@@ -978,9 +978,11 @@ opal_scan(struct dev *iter)
			return;
		}

		if (spdk_opal_supported(iter->opal_dev)) {
			printf("\n\nOpal Supported:\n");
			display_controller(iter, CONTROLLER_DISPLAY_SIMPLISTIC);
			opal_dump_info(spdk_opal_get_d0_features_info(iter->opal_dev));
		}
		spdk_opal_dev_destruct(iter->opal_dev);
	} else {
		printf("%04x:%02x:%02x.%02x: NVMe Security Support/Receive Not supported.\n",
@@ -1003,6 +1005,7 @@ opal_init(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("Please input the new password for ownership:");
			while ((ch = getchar()) != '\n' && ch != EOF);
			passwd_p = get_line(new_passwd, SPDK_OPAL_MAX_PASSWORD_SIZE, stdin, true);
@@ -1025,6 +1028,7 @@ opal_init(struct dev *iter)
			} else {
				printf("Input password invalid. Opal Init failure\n");
			}
		}
		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",
@@ -1059,6 +1063,7 @@ opal_setup_lockingrange(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("Please input the password for setting up locking range:");
			while ((ch = getchar()) != '\n' && ch != EOF);
			passwd_p = get_line(passwd, SPDK_OPAL_MAX_PASSWORD_SIZE, stdin, true);
@@ -1115,6 +1120,7 @@ opal_setup_lockingrange(struct dev *iter)
			} else {
				printf("Input password invalid. Opal setup locking range failure\n");
			}
		}
		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",
@@ -1138,6 +1144,7 @@ opal_list_locking_ranges(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("Please input password:");
			while ((ch = getchar()) != '\n' && ch != EOF);
			passwd_p = get_line(passwd, SPDK_OPAL_MAX_PASSWORD_SIZE, stdin, true);
@@ -1179,6 +1186,7 @@ opal_list_locking_ranges(struct dev *iter)
			} else {
				printf("Input password invalid. List locking ranges failure\n");
			}
		}
		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",
@@ -1202,6 +1210,7 @@ opal_new_user_enable(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("Please input admin password:");
			while ((ch = getchar()) != '\n' && ch != EOF);
			passwd_p = get_line(passwd, SPDK_OPAL_MAX_PASSWORD_SIZE, stdin, true);
@@ -1240,6 +1249,7 @@ opal_new_user_enable(struct dev *iter)
			} else {
				printf("Input password invalid. Enable user failure\n");
			}
		}
		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",
@@ -1263,6 +1273,7 @@ opal_change_password(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("user id: ");
			if (!scanf("%d", &user_id)) {
				printf("Invalid user id\n");
@@ -1294,6 +1305,7 @@ opal_change_password(struct dev *iter)
			} else {
				printf("Input password invalid. Change password failure\n");
			}
		}
		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",
@@ -1315,6 +1327,7 @@ opal_add_user_to_locking_range(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("Please input admin password:");
			while ((ch = getchar()) != '\n' && ch != EOF);
			passwd_p = get_line(passwd, SPDK_OPAL_MAX_PASSWORD_SIZE, stdin, true);
@@ -1336,9 +1349,11 @@ opal_add_user_to_locking_range(struct dev *iter)
				while (getchar() != '\n');

				ret = spdk_opal_cmd_add_user_to_locking_range(iter->opal_dev, user_id, locking_range_id,
					OPAL_READONLY, passwd_p);
						OPAL_READONLY,
						passwd_p);
				ret += spdk_opal_cmd_add_user_to_locking_range(iter->opal_dev, user_id, locking_range_id,
					OPAL_READWRITE, passwd_p);
						OPAL_READWRITE,
						passwd_p);
				if (ret) {
					printf("Add user to locking range error: %d\n", ret);
					spdk_opal_dev_destruct(iter->opal_dev);
@@ -1349,6 +1364,7 @@ opal_add_user_to_locking_range(struct dev *iter)
			} else {
				printf("Input password invalid. Add user to locking range failure\n");
			}
		}
		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",
@@ -1373,6 +1389,7 @@ opal_user_lock_unlock_range(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("User id: ");
			if (!scanf("%d", &user_id)) {
				printf("Invalid user id\n");
@@ -1424,6 +1441,7 @@ opal_user_lock_unlock_range(struct dev *iter)
			} else {
				printf("Input password invalid. lock/unlock range failure\n");
			}
		}
		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",
@@ -1444,6 +1462,7 @@ opal_revert_tper(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("Please be noted this operation will erase ALL DATA on this drive\n");
			printf("Please don't ternminate this excecution. Otherwise undefined error may occur\n");
			printf("Please input password for revert TPer:");
@@ -1461,6 +1480,7 @@ opal_revert_tper(struct dev *iter)
			} else {
				printf("Input password invalid. Revert TPer failure\n");
			}
		}
		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",
@@ -1482,6 +1502,7 @@ opal_erase_locking_range(struct dev *iter)
		if (iter->opal_dev == NULL) {
			return;
		}
		if (spdk_opal_supported(iter->opal_dev)) {
			printf("Please be noted this operation will erase ALL DATA on this range\n");
			printf("Please input password for erase locking range:");
			while ((ch = getchar()) != '\n' && ch != EOF);
@@ -1505,6 +1526,7 @@ opal_erase_locking_range(struct dev *iter)
			} else {
				printf("Input password invalid. Erase locking range failure\n");
			}
		}
		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",
+2 −0
Original line number Diff line number Diff line
@@ -102,6 +102,8 @@ void spdk_opal_dev_destruct(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);

int spdk_opal_cmd_take_ownership(struct spdk_opal_dev *dev, char *new_passwd);

/**
+40 −11
Original line number Diff line number Diff line
@@ -834,6 +834,7 @@ opal_discovery0_end(struct spdk_opal_dev *dev, void *payload, uint32_t payload_s
		SPDK_INFOLOG(SPDK_LOG_OPAL, "Single User Mode Not Supported\n");
	}

	dev->supported = true;
	dev->comid = comid;
	return 0;
}
@@ -1765,7 +1766,9 @@ spdk_opal_cmd_take_ownership(struct spdk_opal_dev *dev, char *new_passwd)
	struct spdk_opal_key opal_key = {};
	struct opal_session *sess;

	assert(dev != NULL);
	if (!dev || dev->supported == false) {
		return -ENODEV;
	}

	sess = opal_alloc_session(dev);
	if (!sess) {
@@ -2037,7 +2040,9 @@ spdk_opal_cmd_revert_tper(struct spdk_opal_dev *dev, const char *passwd)
	struct opal_session *sess;
	struct spdk_opal_key opal_key = {};

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&opal_key, passwd);
	if (ret) {
@@ -2139,7 +2144,9 @@ spdk_opal_cmd_lock_unlock(struct spdk_opal_dev *dev, enum spdk_opal_user user,
	struct spdk_opal_key opal_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&opal_key, passwd);
	if (ret != 0) {
@@ -2181,7 +2188,9 @@ spdk_opal_cmd_setup_locking_range(struct spdk_opal_dev *dev, enum spdk_opal_user
	struct spdk_opal_key opal_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&opal_key, passwd);
	if (ret != 0) {
@@ -2222,7 +2231,9 @@ spdk_opal_cmd_get_max_ranges(struct spdk_opal_dev *dev, const char *passwd)
	struct spdk_opal_key opal_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	if (dev->max_ranges) {
		return dev->max_ranges;
@@ -2269,7 +2280,9 @@ spdk_opal_cmd_get_locking_range_info(struct spdk_opal_dev *dev, const char *pass
	struct spdk_opal_key opal_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&opal_key, passwd);
	if (ret != 0) {
@@ -2310,7 +2323,9 @@ spdk_opal_cmd_enable_user(struct spdk_opal_dev *dev, enum spdk_opal_user user_id
	struct spdk_opal_key opal_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&opal_key, passwd);
	if (ret != 0) {
@@ -2353,7 +2368,9 @@ spdk_opal_cmd_add_user_to_locking_range(struct spdk_opal_dev *dev, enum spdk_opa
	struct spdk_opal_key opal_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&opal_key, passwd);
	if (ret != 0) {
@@ -2396,7 +2413,9 @@ spdk_opal_cmd_set_new_passwd(struct spdk_opal_dev *dev, enum spdk_opal_user user
	struct spdk_opal_key new_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&old_key, old_passwd);
	if (ret != 0) {
@@ -2443,7 +2462,9 @@ spdk_opal_cmd_erase_locking_range(struct spdk_opal_dev *dev, enum spdk_opal_user
	struct spdk_opal_key opal_key = {};
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENODEV;
	}

	ret = opal_init_key(&opal_key, password);
	if (ret != 0) {
@@ -2485,7 +2506,9 @@ spdk_opal_cmd_secure_erase_locking_range(struct spdk_opal_dev *dev, enum spdk_op
	struct spdk_opal_key *active_key;
	int ret;

	assert(dev != NULL);
	if (dev->supported == false) {
		return -ENOTSUP;
	}

	ret = opal_init_key(&opal_key, password);
	if (ret != 0) {
@@ -2540,6 +2563,12 @@ spdk_opal_get_d0_features_info(struct spdk_opal_dev *dev)
	return &dev->feat_info;
}

bool
spdk_opal_supported(struct spdk_opal_dev *dev)
{
	return dev->supported;
}

struct spdk_opal_locking_range_info *
spdk_opal_get_locking_range_info(struct spdk_opal_dev *dev, enum spdk_opal_locking_range id)
{
+1 −0
Original line number Diff line number Diff line
@@ -259,6 +259,7 @@ struct opal_session {
};

struct spdk_opal_dev {
	bool supported;
	struct spdk_nvme_ctrlr *ctrlr;

	uint16_t comid;
+1 −1
Original line number Diff line number Diff line
@@ -916,7 +916,7 @@ bdev_nvme_dump_info_json(void *ctx, struct spdk_json_write_ctx *w)
	if (cdata->oacs.security) {
		spdk_json_write_named_object_begin(w, "security");

		spdk_json_write_named_bool(w, "opal", nvme_bdev_ctrlr->opal_dev ? true : false);
		spdk_json_write_named_bool(w, "opal", spdk_opal_supported(nvme_bdev_ctrlr->opal_dev));

		spdk_json_write_object_end(w);
	}
Loading