Skip to content

Commit 4aee576

Browse files
Giridhar MalavaliJames Bottomley
authored andcommitted
[SCSI] qla2xxx: Proper completion to scsi-ml for scsi status task_set_full and busy.
In case of firmmware detected under-run condition and scsi status of task_set_full or busy_condition, return that to the mid layer for proper error handling instead of DID_ERROR (which causes error handler activation and a full retry). Signed-off-by: Giridhar Malavali <[email protected]> Signed-off-by: Chad Dupuis <[email protected]> Signed-off-by: James Bottomley <[email protected]>
1 parent a49393f commit 4aee576

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

drivers/scsi/qla2xxx/qla_dbg.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* | Mailbox commands | 0x113e | 0x112c-0x112e |
1616
* | | | 0x113a |
1717
* | Device Discovery | 0x2086 | 0x2020-0x2022 |
18-
* | Queue Command and IO tracing | 0x302f | 0x3006,0x3008 |
18+
* | Queue Command and IO tracing | 0x3030 | 0x3006,0x3008 |
1919
* | | | 0x302d-0x302e |
2020
* | DPC Thread | 0x401c | |
2121
* | Async Events | 0x505d | 0x502b-0x502f |

drivers/scsi/qla2xxx/qla_isr.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,13 +1715,24 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
17151715
res = DID_ERROR << 16;
17161716
break;
17171717
}
1718-
} else {
1718+
} else if (lscsi_status != SAM_STAT_TASK_SET_FULL &&
1719+
lscsi_status != SAM_STAT_BUSY) {
1720+
/*
1721+
* scsi status of task set and busy are considered to be
1722+
* task not completed.
1723+
*/
1724+
17191725
ql_dbg(ql_dbg_io, fcport->vha, 0x301f,
17201726
"Dropped frame(s) detected (0x%x "
1721-
"of 0x%x bytes).\n", resid, scsi_bufflen(cp));
1727+
"of 0x%x bytes).\n", resid,
1728+
scsi_bufflen(cp));
17221729

17231730
res = DID_ERROR << 16 | lscsi_status;
17241731
goto check_scsi_status;
1732+
} else {
1733+
ql_dbg(ql_dbg_io, fcport->vha, 0x3030,
1734+
"scsi_status: 0x%x, lscsi_status: 0x%x\n",
1735+
scsi_status, lscsi_status);
17251736
}
17261737

17271738
res = DID_OK << 16 | lscsi_status;

0 commit comments

Comments
 (0)