scsi: ufs: core: mcq: Fix ufshcd_mcq_sqe_search()
authorBart Van Assche <bvanassche@acm.org>
Wed, 10 Apr 2024 00:07:45 +0000 (17:07 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 25 Apr 2024 01:01:40 +0000 (21:01 -0400)
Fix the calculation of the utrd pointer. This patch addresses the following
Coverity complaint:

CID 1538170: (#1 of 1): Extra sizeof expression (SIZEOF_MISMATCH)
suspicious_pointer_arithmetic: Adding sq_head_slot * 32UL /* sizeof (struct
utp_transfer_req_desc) */ to pointer hwq->sqe_base_addr of type struct
utp_transfer_req_desc * is suspicious because adding an integral value to
this pointer automatically scales that value by the size, 32 bytes, of the
pointed-to type, struct utp_transfer_req_desc. Most likely, the
multiplication by sizeof (struct utp_transfer_req_desc) in this expression
is extraneous and should be eliminated.

Cc: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Cc: Stanley Chu <stanley.chu@mediatek.com>
Cc: Can Guo <quic_cang@quicinc.com>
Fixes: 8d7290348992 ("scsi: ufs: mcq: Add supporting functions for MCQ abort")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20240410000751.1047758-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufs-mcq.c

index 768bf87cd80d3fe288eeba826ba3db46b4591dd3..005d63ab1f441c1aaf77513449f88267e025650c 100644 (file)
@@ -601,8 +601,7 @@ static bool ufshcd_mcq_sqe_search(struct ufs_hba *hba,
        addr = le64_to_cpu(cmd_desc_base_addr) & CQE_UCD_BA;
 
        while (sq_head_slot != hwq->sq_tail_slot) {
-               utrd = hwq->sqe_base_addr +
-                               sq_head_slot * sizeof(struct utp_transfer_req_desc);
+               utrd = hwq->sqe_base_addr + sq_head_slot;
                match = le64_to_cpu(utrd->command_desc_base_addr) & CQE_UCD_BA;
                if (addr == match) {
                        ufshcd_mcq_nullify_sqe(utrd);