Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24517815 authored by Can Guo's avatar Can Guo
Browse files

scsi: ufs: fix an error in getting UFS spec version



The UFS spec version should be read out from the buffer which stores device
descriptor before the buffer is cleared and used for reading other
descriptors. Otherwise we will get wrong values.

Change-Id: I56e665c010ceaf0916313a74926ce442874f824f
Signed-off-by: default avatarCan Guo <cang@codeaurora.org>
parent 6fa1fd50
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -8308,6 +8308,9 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
	dev_desc->wmanufacturerid = desc_buf[DEVICE_DESC_PARAM_MANF_ID] << 8 |
				     desc_buf[DEVICE_DESC_PARAM_MANF_ID + 1];

	dev_desc->wspecversion = desc_buf[DEVICE_DESC_PARAM_SPEC_VER] << 8 |
				  desc_buf[DEVICE_DESC_PARAM_SPEC_VER + 1];

	model_index = desc_buf[DEVICE_DESC_PARAM_PRDCT_NAME];

	/* Zero-pad entire buffer for string termination. */
@@ -8329,9 +8332,6 @@ static int ufs_get_device_desc(struct ufs_hba *hba,
	/* Null terminate the model string */
	dev_desc->model[MAX_MODEL_LEN] = '\0';

	dev_desc->wspecversion = desc_buf[DEVICE_DESC_PARAM_SPEC_VER] << 8 |
				  desc_buf[DEVICE_DESC_PARAM_SPEC_VER + 1];

out:
	kfree(desc_buf);
	return err;