]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
scsi: ufs: mcq: Fix error output and clean up ufshcd_mcq_abort()
authorChanwoo Lee <cw9316.lee@samsung.com>
Fri, 24 May 2024 01:59:04 +0000 (10:59 +0900)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 31 May 2024 00:40:48 +0000 (20:40 -0400)
An error unrelated to ufshcd_try_to_abort_task is being logged and can
cause confusion. Modify ufshcd_mcq_abort() to print the result of the abort
failure. For readability, return immediately instead of 'goto'.

Fixes: f1304d442077 ("scsi: ufs: mcq: Added ufshcd_mcq_abort()")
Signed-off-by: Chanwoo Lee <cw9316.lee@samsung.com>
Link: https://lore.kernel.org/r/20240524015904.1116005-1-cw9316.lee@samsung.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufs-mcq.c

index 005d63ab1f441c1aaf77513449f88267e025650c..8944548c30fa15a00f5abd7a097011b1ab64742e 100644 (file)
@@ -634,20 +634,20 @@ int ufshcd_mcq_abort(struct scsi_cmnd *cmd)
        struct ufshcd_lrb *lrbp = &hba->lrb[tag];
        struct ufs_hw_queue *hwq;
        unsigned long flags;
-       int err = FAILED;
+       int err;
 
        if (!ufshcd_cmd_inflight(lrbp->cmd)) {
                dev_err(hba->dev,
                        "%s: skip abort. cmd at tag %d already completed.\n",
                        __func__, tag);
-               goto out;
+               return FAILED;
        }
 
        /* Skip task abort in case previous aborts failed and report failure */
        if (lrbp->req_abort_skip) {
                dev_err(hba->dev, "%s: skip abort. tag %d failed earlier\n",
                        __func__, tag);
-               goto out;
+               return FAILED;
        }
 
        hwq = ufshcd_mcq_req_to_hwq(hba, scsi_cmd_to_rq(cmd));
@@ -659,7 +659,7 @@ int ufshcd_mcq_abort(struct scsi_cmnd *cmd)
                 */
                dev_err(hba->dev, "%s: cmd found in sq. hwq=%d, tag=%d\n",
                        __func__, hwq->id, tag);
-               goto out;
+               return FAILED;
        }
 
        /*
@@ -667,18 +667,17 @@ int ufshcd_mcq_abort(struct scsi_cmnd *cmd)
         * in the completion queue either. Query the device to see if
         * the command is being processed in the device.
         */
-       if (ufshcd_try_to_abort_task(hba, tag)) {
+       err = ufshcd_try_to_abort_task(hba, tag);
+       if (err) {
                dev_err(hba->dev, "%s: device abort failed %d\n", __func__, err);
                lrbp->req_abort_skip = true;
-               goto out;
+               return FAILED;
        }
 
-       err = SUCCESS;
        spin_lock_irqsave(&hwq->cq_lock, flags);
        if (ufshcd_cmd_inflight(lrbp->cmd))
                ufshcd_release_scsi_cmd(hba, lrbp);
        spin_unlock_irqrestore(&hwq->cq_lock, flags);
 
-out:
-       return err;
+       return SUCCESS;
 }