Andrew Vasquez wrote: > From: Shyam Sundar <shyam.sundar@xxxxxxxxxx> > > Signed-off-by: Andrew Vasquez <andrew.vasquez@xxxxxxxxxx> > --- > 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 fa21cd8..4a50b93 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) > cp->device->id, cp->device->lun, cp, > cp->serial_number)); > > + /* > + * In case of a Underrun condition, set both the lscsi > + * status and the completion status to appropriate > + * values. > + */ > + if (resid && > + ((unsigned)(cp->request_bufflen - resid) < > + cp->underflow)) { > + DEBUG2(qla_printk(KERN_INFO, ha, > + "scsi(%ld:%d:%d:%d): Mid-layer underflow " > + "detected (%x of %x bytes)...returning " > + "error status.\n", ha->host_no, > + cp->device->channel, cp->device->id, > + cp->device->lun, resid, > + cp->request_bufflen)); > + > + cp->result = DID_ERROR << 16 | lscsi_status; > + } > + > if (sense_len) > DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, > CMD_ACTUAL_SNSLEN(cp))); NACK. Breaks data buffers accessors patch. (385d70b4e2659ae525a00e46a9f97146949cfc14) should be: diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index fa21cd8..4a50b93 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) cp->device->id, cp->device->lun, cp, cp->serial_number)); + /* + * In case of a Underrun condition, set both the lscsi + * status and the completion status to appropriate + * values. + */ + if (resid && + ((unsigned)(scsi_bufflen(cp) - resid) < + cp->underflow)) { + DEBUG2(qla_printk(KERN_INFO, ha, + "scsi(%ld:%d:%d:%d): Mid-layer underflow " + "detected (%x of %x bytes)...returning " + "error status.\n", ha->host_no, + cp->device->channel, cp->device->id, + cp->device->lun, resid, + scsi_bufflen(cp))); + + cp->result = DID_ERROR << 16 | lscsi_status; + } + if (sense_len) DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, CMD_ACTUAL_SNSLEN(cp))); - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html