summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Le Moal <damien.lemoal@opensource.wdc.com>2022-02-20 04:18:03 +0100
committerMartin K. Petersen <martin.petersen@oracle.com>2022-02-23 03:31:20 +0100
commit0c4ad6c3d3b89bdcc112e028fe52ca6ce122b90b (patch)
tree657df50c18db56ff4bfeb342ce4ba856e760eee3
parentscsi: libsas: Simplify sas_ata_qc_issue() detection of NCQ commands (diff)
downloadlinux-0c4ad6c3d3b89bdcc112e028fe52ca6ce122b90b.tar.xz
linux-0c4ad6c3d3b89bdcc112e028fe52ca6ce122b90b.zip
scsi: pm8001: Cleanup pm8001_exec_internal_task_abort()
Replace the goto statement in the for loop with "break" and remove the ex_err label. Also fix long lines, identation and blank lines to make the code more readable. Link: https://lore.kernel.org/r/20220220031810.738362-25-damien.lemoal@opensource.wdc.com Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/pm8001/pm8001_sas.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/drivers/scsi/pm8001/pm8001_sas.c b/drivers/scsi/pm8001/pm8001_sas.c
index c26f37c88cac..b41f3aa6ce3e 100644
--- a/drivers/scsi/pm8001/pm8001_sas.c
+++ b/drivers/scsi/pm8001/pm8001_sas.c
@@ -724,50 +724,54 @@ pm8001_exec_internal_task_abort(struct pm8001_hba_info *pm8001_ha,
task->task_proto = dev->tproto;
task->task_done = pm8001_task_done;
task->slow_task->timer.function = pm8001_tmf_timedout;
- task->slow_task->timer.expires = jiffies + PM8001_TASK_TIMEOUT * HZ;
+ task->slow_task->timer.expires =
+ jiffies + PM8001_TASK_TIMEOUT * HZ;
add_timer(&task->slow_task->timer);
res = pm8001_tag_alloc(pm8001_ha, &ccb_tag);
if (res)
- goto ex_err;
+ break;
+
ccb = &pm8001_ha->ccb_info[ccb_tag];
ccb->device = pm8001_dev;
ccb->ccb_tag = ccb_tag;
ccb->task = task;
ccb->n_elem = 0;
- res = PM8001_CHIP_DISP->task_abort(pm8001_ha,
- pm8001_dev, flag, task_tag, ccb_tag);
+ res = PM8001_CHIP_DISP->task_abort(pm8001_ha, pm8001_dev, flag,
+ task_tag, ccb_tag);
if (res) {
del_timer(&task->slow_task->timer);
- pm8001_dbg(pm8001_ha, FAIL, "Executing internal task failed\n");
+ pm8001_dbg(pm8001_ha, FAIL,
+ "Executing internal task failed\n");
pm8001_tag_free(pm8001_ha, ccb_tag);
- goto ex_err;
+ break;
}
+
wait_for_completion(&task->slow_task->completion);
res = TMF_RESP_FUNC_FAILED;
+
/* Even TMF timed out, return direct. */
if (task->task_state_flags & SAS_TASK_STATE_ABORTED) {
pm8001_dbg(pm8001_ha, FAIL, "TMF task timeout.\n");
- goto ex_err;
+ break;
}
if (task->task_status.resp == SAS_TASK_COMPLETE &&
task->task_status.stat == SAS_SAM_STAT_GOOD) {
res = TMF_RESP_FUNC_COMPLETE;
break;
-
- } else {
- pm8001_dbg(pm8001_ha, EH,
- " Task to dev %016llx response: 0x%x status 0x%x\n",
- SAS_ADDR(dev->sas_addr),
- task->task_status.resp,
- task->task_status.stat);
- sas_free_task(task);
- task = NULL;
}
+
+ pm8001_dbg(pm8001_ha, EH,
+ " Task to dev %016llx response: 0x%x status 0x%x\n",
+ SAS_ADDR(dev->sas_addr),
+ task->task_status.resp,
+ task->task_status.stat);
+ sas_free_task(task);
+ task = NULL;
}
-ex_err:
+
BUG_ON(retry == 3 && task != NULL);
sas_free_task(task);
return res;