Commit 6fcdda80 authored by John Garry's avatar John Garry Committed by Martin K. Petersen
Browse files

scsi: hisi_sas: remove task free'ing for timeouts



When a TMF or internal abort times-out, do not free slot. We expect this
to be done upon later escalated error handling.

Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 54c9dd2d
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -743,14 +743,6 @@ static int hisi_sas_exec_internal_tmf_task(struct domain_device *device,
		if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) {
			if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
				dev_err(dev, "abort tmf: TMF task timeout\n");
				if (task->lldd_task) {
					struct hisi_sas_slot *slot =
						task->lldd_task;

					hisi_sas_slot_task_free(hisi_hba,
								task, slot);
				}

				goto ex_err;
			}
		}
@@ -1248,15 +1240,10 @@ hisi_sas_internal_task_abort(struct hisi_hba *hisi_hba,
		goto exit;
	}

	/* TMF timed out, return direct. */
	/* Internal abort timed out */
	if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) {
		if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
			dev_err(dev, "internal task abort: timeout.\n");
			if (task->lldd_task) {
				struct hisi_sas_slot *slot = task->lldd_task;

				hisi_sas_slot_task_free(hisi_hba, task, slot);
			}
		}
	}