forked from Minki/linux
scsi: qla2xxx: Fix incorrect reporting of task management failure
User experienced no task management error while target device is responding
with error. The RSP_CODE field in the status IOCB is in little endian.
Driver assumes it's big endian and it picked up erroneous data.
Convert the data back to big endian as is on the wire.
Link: https://lore.kernel.org/r/20220310092604.22950-2-njavali@marvell.com
Fixes: faef62d134
("[SCSI] qla2xxx: Fix Task Management command asynchronous handling")
Cc: stable@vger.kernel.org
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
8709c32309
commit
58ca5999e0
@ -2498,6 +2498,7 @@ qla24xx_tm_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, void *tsk)
|
||||
iocb->u.tmf.data = QLA_FUNCTION_FAILED;
|
||||
} else if ((le16_to_cpu(sts->scsi_status) &
|
||||
SS_RESPONSE_INFO_LEN_VALID)) {
|
||||
host_to_fcp_swap(sts->data, sizeof(sts->data));
|
||||
if (le32_to_cpu(sts->rsp_data_len) < 4) {
|
||||
ql_log(ql_log_warn, fcport->vha, 0x503b,
|
||||
"Async-%s error - hdl=%x not enough response(%d).\n",
|
||||
|
Loading…
Reference in New Issue
Block a user