diff options
author | Jeremy Higdon <jeremy@sgi.com> | 2005-05-01 08:18:48 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-05-20 13:53:43 -0400 |
commit | 7d0e11fb20b08790c71f5336b493662f952641c9 (patch) | |
tree | e453c5d312cd7778b7ce8e11a4920ef0b0226b8a /drivers | |
parent | d335cc38c75e28407455463444b912b09c92daec (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')
-rw-r--r-- | drivers/scsi/qla1280.c | 9 |
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 */ |