summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJes Sorensen <jes@sgi.com>2007-01-05 12:05:37 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-01-06 09:33:18 -0600
commit3ef49a3b45c33b055002402f01e5da98cb773086 (patch)
tree21fd68dd4862002e3ef23460650af69bad9ab5d6 /drivers/scsi
parentd0a6b08ae08c2ab292f756bdae0e8b1242696d7f (diff)
[SCSI] qla1280: set residual correctly
Jeremy caught a bug in the qla1280 driver where it didn't set the residual value correctly. Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla1280.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index 16af5b79e58..1548d42a3b4 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -1341,7 +1341,7 @@ qla1280_return_status(struct response * sts, struct scsi_cmnd *cp)
int host_status = DID_ERROR;
uint16_t comp_status = le16_to_cpu(sts->comp_status);
uint16_t state_flags = le16_to_cpu(sts->state_flags);
- uint16_t residual_length = le32_to_cpu(sts->residual_length);
+ uint32_t residual_length = le32_to_cpu(sts->residual_length);
uint16_t scsi_status = le16_to_cpu(sts->scsi_status);
#if DEBUG_QLA1280_INTR
static char *reason[] = {
@@ -1413,8 +1413,10 @@ qla1280_return_status(struct response * sts, struct scsi_cmnd *cp)
"scsi: Underflow detected - retrying "
"command.\n");
host_status = DID_ERROR;
- } else
+ } else {
+ cp->resid = residual_length;
host_status = DID_OK;
+ }
break;
default: