Commit 64df4bf6 authored by Changpeng Liu's avatar Changpeng Liu
Browse files

nvme/opal: don't check locking range length



The locking range variable has fixed 8 bytes of length, so we don't
need to check the length again in the build function.

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


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent 82614a4d
Loading
Loading
Loading
Loading
+8 −29
Original line number Diff line number Diff line
@@ -684,25 +684,19 @@ opal_init_key(struct spdk_opal_key *opal_key, const char *passwd,
	return 0;
}

static int
opal_build_locking_range(uint8_t *buffer, size_t length, uint8_t locking_range)
static void
opal_build_locking_range(uint8_t *buffer, uint8_t locking_range)
{
	if (length < OPAL_UID_LENGTH) {
		SPDK_ERRLOG("Can't build locking range. Buffer overflow\n");
		return -ERANGE;
	}

	memcpy(buffer, spdk_opal_uid[UID_LOCKINGRANGE_GLOBAL], OPAL_UID_LENGTH);

	/* global */
	if (locking_range == 0) {
		return 0;
		return;
	}

	/* non-global */
	buffer[5] = LOCKING_RANGE_NON_GLOBAL;
	buffer[7] = locking_range;
	return 0;
}

static void
@@ -1211,10 +1205,7 @@ opal_lock_unlock_range(struct spdk_opal_dev *dev, struct opal_session *sess,
	opal_clear_cmd(sess);
	opal_set_comid(sess, dev->comid);

	if (opal_build_locking_range(uid_locking_range, sizeof(uid_locking_range),
				     locking_session->session.opal_key.locking_range) < 0) {
		return -ERANGE;
	}
	opal_build_locking_range(uid_locking_range, locking_session->session.opal_key.locking_range);

	switch (locking_session->l_state) {
	case OPAL_READONLY:
@@ -1318,10 +1309,7 @@ opal_setup_locking_range(struct spdk_opal_dev *dev, struct opal_session *sess,
	opal_set_comid(sess, dev->comid);

	locking_range_id = setup_session->session.opal_key.locking_range;
	err = opal_build_locking_range(uid_locking_range, OPAL_UID_LENGTH, locking_range_id);
	if (err) {
		return err;
	}
	opal_build_locking_range(uid_locking_range, locking_range_id);

	if (locking_range_id == 0) {
		err = opal_generic_locking_range_enable_disable(dev, sess, uid_locking_range,
@@ -1452,10 +1440,7 @@ opal_get_locking_range_info(struct spdk_opal_dev *dev,
	uint8_t uid_locking_range[OPAL_UID_LENGTH];
	struct spdk_opal_locking_range_info *info;

	err = opal_build_locking_range(uid_locking_range, OPAL_UID_LENGTH, locking_range_id);
	if (err) {
		return err;
	}
	opal_build_locking_range(uid_locking_range, locking_range_id);

	assert(locking_range_id < SPDK_OPAL_MAX_LOCKING_RANGE);
	info = &dev->locking_ranges[locking_range_id];
@@ -1835,10 +1820,7 @@ opal_get_active_key(struct spdk_opal_dev *dev, struct opal_session *sess,
	opal_set_comid(sess, dev->comid);

	locking_range_id = session->opal_key.locking_range;
	err = opal_build_locking_range(uid_locking_range, OPAL_UID_LENGTH, locking_range_id);
	if (err) {
		return err;
	}
	opal_build_locking_range(uid_locking_range, locking_range_id);

	opal_add_token_u8(&err, sess, SPDK_OPAL_CALL);
	opal_add_token_bytestring(&err, sess, uid_locking_range, OPAL_UID_LENGTH);
@@ -1878,10 +1860,7 @@ opal_erase_locking_range(struct spdk_opal_dev *dev, struct opal_session *sess,
	opal_set_comid(sess, dev->comid);

	locking_range_id = session->opal_key.locking_range;
	err = opal_build_locking_range(uid_locking_range, OPAL_UID_LENGTH, locking_range_id);
	if (err) {
		return err;
	}
	opal_build_locking_range(uid_locking_range, locking_range_id);

	opal_add_token_u8(&err, sess, SPDK_OPAL_CALL);
	opal_add_token_bytestring(&err, sess, uid_locking_range, OPAL_UID_LENGTH);