aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla1280.c
diff options
context:
space:
mode:
authorJeremy Higdon <jeremy@sgi.com>2005-05-01 08:18:48 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-05-20 13:53:43 -0400
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 4ad280814990..653e589b7d7f 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,
4038 scsi_status, handle); 4038 scsi_status, handle);
4039 } 4039 }
4040 4040
4041 /* Target busy */ 4041 /* Target busy or queue full */
4042 if (scsi_status & SS_BUSY_CONDITION && 4042 if ((scsi_status & 0xFF) == SAM_STAT_TASK_SET_FULL ||
4043 scsi_status != SS_RESERVE_CONFLICT) { 4043 (scsi_status & 0xFF) == SAM_STAT_BUSY) {
4044 CMD_RESULT(cmd) = 4044 CMD_RESULT(cmd) = scsi_status & 0xff;
4045 DID_BUS_BUSY << 16 | (scsi_status & 0xff);
4046 } else { 4045 } else {
4047 4046
4048 /* Save ISP completion status */ 4047 /* Save ISP completion status */