By spec, the ufs sense data is 18 bytes long.

Signed-off-by: Avri Altman <[email protected]>
---
 drivers/scsi/ufs/ufs.h    |  4 ++--
 drivers/scsi/ufs/ufshcd.c | 17 +++++++----------
 2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h
index 8e4e526..dd65fea 100644
--- a/drivers/scsi/ufs/ufs.h
+++ b/drivers/scsi/ufs/ufs.h
@@ -46,7 +46,7 @@
 #define QUERY_DESC_HDR_SIZE       2
 #define QUERY_OSF_SIZE            (GENERAL_UPIU_REQUEST_SIZE - \
                                        (sizeof(struct utp_upiu_header)))
-#define RESPONSE_UPIU_SENSE_DATA_LENGTH        18
+#define UFS_SENSE_SIZE 18
 
 #define UPIU_HEADER_DWORD(byte3, byte2, byte1, byte0)\
                        cpu_to_be32((byte3 << 24) | (byte2 << 16) |\
@@ -458,7 +458,7 @@ struct utp_cmd_rsp {
        __be32 residual_transfer_count;
        __be32 reserved[4];
        __be16 sense_data_len;
-       u8 sense_data[RESPONSE_UPIU_SENSE_DATA_LENGTH];
+       u8 sense_data[UFS_SENSE_SIZE];
 };
 
 /**
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 003d489..303cefd 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -51,8 +51,6 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/ufs.h>
 
-#define UFSHCD_REQ_SENSE_SIZE  18
-
 #define UFSHCD_ENABLE_INTRS    (UTP_TRANSFER_REQ_COMPL |\
                                 UTP_TASK_REQ_COMPL |\
                                 UFSHCD_ERROR_MASK)
@@ -1890,11 +1888,10 @@ static inline void ufshcd_copy_sense_data(struct 
ufshcd_lrb *lrbp)
                int len_to_copy;
 
                len = be16_to_cpu(lrbp->ucd_rsp_ptr->sr.sense_data_len);
-               len_to_copy = min_t(int, RESPONSE_UPIU_SENSE_DATA_LENGTH, len);
+               len_to_copy = min_t(int, UFS_SENSE_SIZE, len);
 
-               memcpy(lrbp->sense_buffer,
-                       lrbp->ucd_rsp_ptr->sr.sense_data,
-                       min_t(int, len_to_copy, UFSHCD_REQ_SENSE_SIZE));
+               memcpy(lrbp->sense_buffer, lrbp->ucd_rsp_ptr->sr.sense_data,
+                      len_to_copy);
        }
 }
 
@@ -2456,7 +2453,7 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, 
struct scsi_cmnd *cmd)
 
        WARN_ON(lrbp->cmd);
        lrbp->cmd = cmd;
-       lrbp->sense_bufflen = UFSHCD_REQ_SENSE_SIZE;
+       lrbp->sense_bufflen = UFS_SENSE_SIZE;
        lrbp->sense_buffer = cmd->sense_buffer;
        lrbp->task_tag = tag;
        lrbp->lun = ufshcd_scsi_to_upiu_lun(cmd->device->lun);
@@ -7461,19 +7458,19 @@ static void ufshcd_hba_exit(struct ufs_hba *hba)
                                0,
                                0,
                                0,
-                               UFSHCD_REQ_SENSE_SIZE,
+                               UFS_SENSE_SIZE,
                                0};
        char *buffer;
        int ret;
 
-       buffer = kzalloc(UFSHCD_REQ_SENSE_SIZE, GFP_KERNEL);
+       buffer = kzalloc(UFS_SENSE_SIZE, GFP_KERNEL);
        if (!buffer) {
                ret = -ENOMEM;
                goto out;
        }
 
        ret = scsi_execute(sdp, cmd, DMA_FROM_DEVICE, buffer,
-                       UFSHCD_REQ_SENSE_SIZE, NULL, NULL,
+                       UFS_SENSE_SIZE, NULL, NULL,
                        msecs_to_jiffies(1000), 3, 0, RQF_PM, NULL);
        if (ret)
                pr_err("%s: failed with err %d\n", __func__, ret);
-- 
1.9.1

Reply via email to