Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f28ede9 authored by John Garry's avatar John Garry Committed by Martin K. Petersen
Browse files

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: default avatarJohn Garry <john.garry@huawei.com>
Tested-by: default avatarRicardo Salveti <ricardo.salveti@linaro.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 0f92db53
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -1293,13 +1293,10 @@ static int slot_complete_v1_hw(struct hisi_hba *hisi_hba,
		goto out;
	}

	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))
			ts->stat = SAS_DATA_OVERRUN;
		else
			slot_err_v1_hw(hisi_hba, task, slot);
	if (cmplt_hdr_data & CMPLT_HDR_ERR_RCRD_XFRD_MSK &&
		!(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK)) {

		slot_err_v1_hw(hisi_hba, task, slot);
		goto out;
	}