Message ID | 20240410000751.1047758-1-bvanassche@acm.org |
---|---|
State | New |
Headers | show |
Series | scsi/ufs: Fix ufshcd_mcq_sqe_search() | expand |
Bart, > Fix the calculation of the utrd pointer. This patch addresses the following > Coverity complaint: Applied to 6.10/scsi-staging, thanks!
On Tue, 09 Apr 2024 17:07:45 -0700, Bart Van Assche wrote: > 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. > > [...] Applied to 6.10/scsi-queue, thanks! [1/1] scsi/ufs: Fix ufshcd_mcq_sqe_search() https://git.kernel.org/mkp/scsi/c/3c5d0dce8ce0
diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c index 768bf87cd80d..005d63ab1f44 100644 --- a/drivers/ufs/core/ufs-mcq.c +++ b/drivers/ufs/core/ufs-mcq.c @@ -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);
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> --- drivers/ufs/core/ufs-mcq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)