From 71327bfef8aac4a5e3c5938666d34a2eb2039f5f Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Fri, 3 Apr 2020 23:38:59 +0800 Subject: [PATCH] nvme/opal: move the command finalization to generic_pw_cmd() opal_cmd_finalize() is part of OPAL command construction, so move it to the common password construction function. Change-Id: I65ecf1c9181e622f344f7e9284058e2472accd31 Signed-off-by: Changpeng Liu Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1669 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto --- lib/nvme/nvme_opal.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/lib/nvme/nvme_opal.c b/lib/nvme/nvme_opal.c index 72745845b..e2d561ea2 100644 --- a/lib/nvme/nvme_opal.c +++ b/lib/nvme/nvme_opal.c @@ -1010,8 +1010,8 @@ opal_get_msid_cpin_pin(struct spdk_opal_dev *dev, struct opal_session *sess, } static int -opal_generic_pw_cmd(struct opal_session *sess, uint8_t *key, size_t key_len, uint8_t *cpin_uid, - struct spdk_opal_dev *dev) +opal_build_generic_pw_cmd(struct opal_session *sess, uint8_t *key, size_t key_len, + uint8_t *cpin_uid, struct spdk_opal_dev *dev) { int err = 0; @@ -1036,7 +1036,11 @@ opal_generic_pw_cmd(struct opal_session *sess, uint8_t *key, size_t key_len, uin SPDK_OPAL_ENDLIST, SPDK_OPAL_ENDNAME, SPDK_OPAL_ENDLIST); - return err; + if (err) { + return err; + } + + return opal_cmd_finalize(sess, sess->hsn, sess->tsn, true); } static int @@ -1665,17 +1669,12 @@ opal_new_user_passwd(struct spdk_opal_dev *dev, struct opal_session *sess, uid_cpin[7] = user; } - ret = opal_generic_pw_cmd(sess, opal_key->key, opal_key->key_len, uid_cpin, dev); + ret = opal_build_generic_pw_cmd(sess, opal_key->key, opal_key->key_len, uid_cpin, dev); if (ret != 0) { SPDK_ERRLOG("Error building set password command\n"); return ret; } - ret = opal_cmd_finalize(sess, sess->hsn, sess->tsn, true); - if (ret) { - return ret; - } - ret = opal_send_recv(dev, sess); if (ret) { return ret; @@ -1685,10 +1684,9 @@ opal_new_user_passwd(struct spdk_opal_dev *dev, struct opal_session *sess, } static int -opal_set_sid_cpin_pin(struct spdk_opal_dev *dev, struct opal_session *sess, void *data) +opal_set_sid_cpin_pin(struct spdk_opal_dev *dev, struct opal_session *sess, char *new_passwd) { uint8_t cpin_uid[OPAL_UID_LENGTH]; - const char *new_passwd = data; struct spdk_opal_key opal_key = {}; int ret; @@ -1699,14 +1697,10 @@ opal_set_sid_cpin_pin(struct spdk_opal_dev *dev, struct opal_session *sess, void memcpy(cpin_uid, spdk_opal_uid[UID_C_PIN_SID], OPAL_UID_LENGTH); - if (opal_generic_pw_cmd(sess, opal_key.key, opal_key.key_len, cpin_uid, dev)) { + if (opal_build_generic_pw_cmd(sess, opal_key.key, opal_key.key_len, cpin_uid, dev)) { SPDK_ERRLOG("Error building Set SID cpin\n"); return -ERANGE; } - ret = opal_cmd_finalize(sess, sess->hsn, sess->tsn, true); - if (ret) { - return ret; - } ret = opal_send_recv(dev, sess); if (ret) {