aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index fc4bfa7f839c..a76efd99d007 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1187,7 +1187,12 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
1187 cp->serial_number, comp_status, 1187 cp->serial_number, comp_status,
1188 atomic_read(&fcport->state))); 1188 atomic_read(&fcport->state)));
1189 1189
1190 cp->result = DID_BUS_BUSY << 16; 1190 /*
1191 * We are going to have the fc class block the rport
1192 * while we try to recover so instruct the mid layer
1193 * to requeue until the class decides how to handle this.
1194 */
1195 cp->result = DID_TRANSPORT_DISRUPTED << 16;
1191 if (atomic_read(&fcport->state) == FCS_ONLINE) 1196 if (atomic_read(&fcport->state) == FCS_ONLINE)
1192 qla2x00_mark_device_lost(fcport->ha, fcport, 1, 1); 1197 qla2x00_mark_device_lost(fcport->ha, fcport, 1, 1);
1193 break; 1198 break;
@@ -1214,7 +1219,12 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
1214 break; 1219 break;
1215 1220
1216 case CS_TIMEOUT: 1221 case CS_TIMEOUT:
1217 cp->result = DID_BUS_BUSY << 16; 1222 /*
1223 * We are going to have the fc class block the rport
1224 * while we try to recover so instruct the mid layer
1225 * to requeue until the class decides how to handle this.
1226 */
1227 cp->result = DID_TRANSPORT_DISRUPTED << 16;
1218 1228
1219 if (IS_FWI2_CAPABLE(ha)) { 1229 if (IS_FWI2_CAPABLE(ha)) {
1220 DEBUG2(printk(KERN_INFO 1230 DEBUG2(printk(KERN_INFO