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

Commit e0a7445a authored by Gilad Broner's avatar Gilad Broner Committed by Subhash Jadavani
Browse files

scsi: ufs: set REQUEST_SENSE command size to 18 bytes



According to UFS device specification REQUEST_SENSE command can
only report back up to 18 bytes of data.

Change-Id: I1121b016ddabfa0e7182a1b6c9b30c27061694d2
Signed-off-by: default avatarGilad Broner <gbroner@codeaurora.org>
parent c891d2c4
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -106,6 +106,8 @@

#endif

#define UFSHCD_REQ_SENSE_SIZE	18

#define UFSHCD_ENABLE_INTRS	(UTP_TRANSFER_REQ_COMPL |\
				 UTP_TASK_REQ_COMPL |\
				 UFSHCD_ERROR_MASK)
@@ -932,19 +934,19 @@ ufshcd_send_request_sense(struct ufs_hba *hba, struct scsi_device *sdp)
				0,
				0,
				0,
				SCSI_SENSE_BUFFERSIZE,
				UFSHCD_REQ_SENSE_SIZE,
				0};
	char *buffer;
	int ret;

	buffer = kzalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL);
	buffer = kzalloc(UFSHCD_REQ_SENSE_SIZE, GFP_KERNEL);
	if (!buffer) {
		ret = -ENOMEM;
		goto out;
	}

	ret = scsi_execute_req_flags(sdp, cmd, DMA_FROM_DEVICE, buffer,
				SCSI_SENSE_BUFFERSIZE, NULL,
				UFSHCD_REQ_SENSE_SIZE, NULL,
				msecs_to_jiffies(1000), 3, NULL, REQ_PM);
	if (ret)
		pr_err("%s: failed with err %d\n", __func__, ret);
@@ -1861,7 +1863,7 @@ static inline void ufshcd_copy_sense_data(struct ufshcd_lrb *lrbp)

		memcpy(lrbp->sense_buffer,
			lrbp->ucd_rsp_ptr->sr.sense_data,
			min_t(int, len_to_copy, SCSI_SENSE_BUFFERSIZE));
			min_t(int, len_to_copy, UFSHCD_REQ_SENSE_SIZE));
	}
}

@@ -2413,7 +2415,7 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)

	WARN_ON(lrbp->cmd);
	lrbp->cmd = cmd;
	lrbp->sense_bufflen = SCSI_SENSE_BUFFERSIZE;
	lrbp->sense_bufflen = UFSHCD_REQ_SENSE_SIZE;
	lrbp->sense_buffer = cmd->sense_buffer;
	lrbp->task_tag = tag;
	lrbp->lun = ufshcd_scsi_to_upiu_lun(cmd->device->lun);