hisi_sas: fix v1 hw check for slot error
Completion header bit CMPLT_HDR_RSPNS_XFRD flags whether the response
frame is received into host memory, and not whether the response frame
has an error. As such, change the decision on whether a slot has an
error. Also redundant check on CMPLT_HDR_CMD_CMPLT_MSK is removed.
Fixes: 27a3f229
("hisi_sas: Add cq interrupt handler")
Signed-off-by: John Garry <john.garry@huawei.com>
Tested-by: Ricardo Salveti <ricardo.salveti@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
0f92db53c1
Коммит
0f28ede906
|
@ -1293,13 +1293,10 @@ static int slot_complete_v1_hw(struct hisi_hba *hisi_hba,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cmplt_hdr_data & CMPLT_HDR_ERR_RCRD_XFRD_MSK) {
|
if (cmplt_hdr_data & CMPLT_HDR_ERR_RCRD_XFRD_MSK &&
|
||||||
if (!(cmplt_hdr_data & CMPLT_HDR_CMD_CMPLT_MSK) ||
|
!(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK)) {
|
||||||
!(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK))
|
|
||||||
ts->stat = SAS_DATA_OVERRUN;
|
|
||||||
else
|
|
||||||
slot_err_v1_hw(hisi_hba, task, slot);
|
|
||||||
|
|
||||||
|
slot_err_v1_hw(hisi_hba, task, slot);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче