scsi: hisi_sas: Directly trigger SCSI error handling for completion errors

Abort failed commands in completion path. This avoids having to wait for
block layer timeouts and triggering the SCSI error handling thread.

Link: https://lore.kernel.org/r/1594627471-235395-2-git-send-email-john.garry@huawei.com
Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Luo Jiaxing 2020-07-13 16:04:30 +08:00 коммит произвёл Martin K. Petersen
Родитель 46426552e7
Коммит 05d91b557a
3 изменённых файлов: 9 добавлений и 3 удалений

Просмотреть файл

@ -1258,8 +1258,10 @@ static void slot_complete_v1_hw(struct hisi_hba *hisi_hba,
!(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK)) {
slot_err_v1_hw(hisi_hba, task, slot);
if (unlikely(slot->abort))
if (unlikely(slot->abort)) {
sas_task_abort(task);
return;
}
goto out;
}

Просмотреть файл

@ -2404,8 +2404,10 @@ static void slot_complete_v2_hw(struct hisi_hba *hisi_hba,
error_info[0], error_info[1],
error_info[2], error_info[3]);
if (unlikely(slot->abort))
if (unlikely(slot->abort)) {
sas_task_abort(task);
return;
}
goto out;
}

Просмотреть файл

@ -2235,8 +2235,10 @@ static void slot_complete_v3_hw(struct hisi_hba *hisi_hba,
dw0, dw1, complete_hdr->act, dw3,
error_info[0], error_info[1],
error_info[2], error_info[3]);
if (unlikely(slot->abort))
if (unlikely(slot->abort)) {
sas_task_abort(task);
return;
}
goto out;
}