diff options
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index fa21cd86e9e2..4a50b931ca6f 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
| @@ -1062,6 +1062,25 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
| 1062 | cp->device->id, cp->device->lun, cp, | 1062 | cp->device->id, cp->device->lun, cp, |
| 1063 | cp->serial_number)); | 1063 | cp->serial_number)); |
| 1064 | 1064 | ||
| 1065 | /* | ||
| 1066 | * In case of a Underrun condition, set both the lscsi | ||
| 1067 | * status and the completion status to appropriate | ||
| 1068 | * values. | ||
| 1069 | */ | ||
| 1070 | if (resid && | ||
| 1071 | ((unsigned)(cp->request_bufflen - resid) < | ||
| 1072 | cp->underflow)) { | ||
| 1073 | DEBUG2(qla_printk(KERN_INFO, ha, | ||
| 1074 | "scsi(%ld:%d:%d:%d): Mid-layer underflow " | ||
| 1075 | "detected (%x of %x bytes)...returning " | ||
| 1076 | "error status.\n", ha->host_no, | ||
| 1077 | cp->device->channel, cp->device->id, | ||
| 1078 | cp->device->lun, resid, | ||
| 1079 | cp->request_bufflen)); | ||
| 1080 | |||
| 1081 | cp->result = DID_ERROR << 16 | lscsi_status; | ||
| 1082 | } | ||
| 1083 | |||
| 1065 | if (sense_len) | 1084 | if (sense_len) |
| 1066 | DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, | 1085 | DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, |
| 1067 | CMD_ACTUAL_SNSLEN(cp))); | 1086 | CMD_ACTUAL_SNSLEN(cp))); |
