summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla1280.c
diff options
context:
space:
mode:
authorJeremy Higdon <jeremy@sgi.com>2005-05-01 05:18:48 -0700
committerJames Bottomley <jejb@mulgrave.(none)>2005-05-20 12:53:43 -0500
commit7d0e11fb20b08790c71f5336b493662f952641c9 (patch)
treee453c5d312cd7778b7ce8e11a4920ef0b0226b8a /drivers/scsi/qla1280.c
parentd335cc38c75e28407455463444b912b09c92daec (diff)
[SCSI] qla1280.c - fix result for device Busy and Queue Full
I discovered that the qla1280 driver does not send the correct status to the midlayer when it gets Queue Full or Busy from a device. Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla1280.c')
-rw-r--r--drivers/scsi/qla1280.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index 4ad28081499..653e589b7d7 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -4038,11 +4038,10 @@ qla1280_status_entry(struct scsi_qla_host *ha, struct response *pkt,
scsi_status, handle);
}
- /* Target busy */
- if (scsi_status & SS_BUSY_CONDITION &&
- scsi_status != SS_RESERVE_CONFLICT) {
- CMD_RESULT(cmd) =
- DID_BUS_BUSY << 16 | (scsi_status & 0xff);
+ /* Target busy or queue full */
+ if ((scsi_status & 0xFF) == SAM_STAT_TASK_SET_FULL ||
+ (scsi_status & 0xFF) == SAM_STAT_BUSY) {
+ CMD_RESULT(cmd) = scsi_status & 0xff;
} else {
/* Save ISP completion status */