mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 12:10:53 +07:00
[SCSI] qla4xxx: Complete the cmd if sense_len is zero
Complete the cmd if sense length is zero. For cases where sense data spans across multiple iocb's by FW, we need to hold on to the I/O (ha->status_srb != NULL) till we have processed them all and copied the sense data from internal buffer to scsi_cmd sense buffer. Signed-off-by: Prasanna Mumbai <prasanna.mumbai@qlogic.com> Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <jbottomley@parallels.com>
This commit is contained in:
parent
68d92ebf59
commit
6d78bd56be
@ -25,9 +25,14 @@ static void qla4xxx_copy_sense(struct scsi_qla_host *ha,
|
|||||||
|
|
||||||
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
sense_len = le16_to_cpu(sts_entry->senseDataByteCnt);
|
sense_len = le16_to_cpu(sts_entry->senseDataByteCnt);
|
||||||
if (sense_len == 0)
|
if (sense_len == 0) {
|
||||||
|
DEBUG2(ql4_printk(KERN_INFO, ha, "scsi%ld:%d:%d:%d: %s:"
|
||||||
|
" sense len 0\n", ha->host_no,
|
||||||
|
cmd->device->channel, cmd->device->id,
|
||||||
|
cmd->device->lun, __func__));
|
||||||
|
ha->status_srb = NULL;
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
/* Save total available sense length,
|
/* Save total available sense length,
|
||||||
* not to exceed cmd's sense buffer size */
|
* not to exceed cmd's sense buffer size */
|
||||||
sense_len = min_t(uint16_t, sense_len, SCSI_SENSE_BUFFERSIZE);
|
sense_len = min_t(uint16_t, sense_len, SCSI_SENSE_BUFFERSIZE);
|
||||||
|
Loading…
Reference in New Issue
Block a user