From: Jeremy Higdon Date: Sun, 1 May 2005 12:18:48 +0000 (-0700) Subject: [SCSI] qla1280.c - fix result for device Busy and Queue Full X-Git-Tag: v2.6.13-rc1~90^2~583^2~62^2^2~27^2~25 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d0e11fb20b08790c71f5336b493662f952641c9;p=linux-2.6 [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 Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c index 4ad2808149..653e589b7d 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 */