|
@@ -4736,7 +4736,6 @@ static int
|
|
|
qla2x00_restart_isp(scsi_qla_host_t *vha)
|
|
|
{
|
|
|
int status = 0;
|
|
|
- uint32_t wait_time;
|
|
|
struct qla_hw_data *ha = vha->hw;
|
|
|
struct req_que *req = ha->req_q_map[0];
|
|
|
struct rsp_que *rsp = ha->rsp_q_map[0];
|
|
@@ -4753,14 +4752,12 @@ qla2x00_restart_isp(scsi_qla_host_t *vha)
|
|
|
if (!status && !(status = qla2x00_init_rings(vha))) {
|
|
|
clear_bit(RESET_MARKER_NEEDED, &vha->dpc_flags);
|
|
|
ha->flags.chip_reset_done = 1;
|
|
|
+
|
|
|
/* Initialize the queues in use */
|
|
|
qla25xx_init_queues(ha);
|
|
|
|
|
|
status = qla2x00_fw_ready(vha);
|
|
|
if (!status) {
|
|
|
- ql_dbg(ql_dbg_taskm, vha, 0x8031,
|
|
|
- "Start configure loop status = %d.\n", status);
|
|
|
-
|
|
|
/* Issue a marker after FW becomes ready. */
|
|
|
qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL);
|
|
|
|
|
@@ -4775,24 +4772,12 @@ qla2x00_restart_isp(scsi_qla_host_t *vha)
|
|
|
qlt_24xx_process_atio_queue(vha);
|
|
|
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
|
|
|
|
|
- /* Wait at most MAX_TARGET RSCNs for a stable link. */
|
|
|
- wait_time = 256;
|
|
|
- do {
|
|
|
- clear_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
|
|
|
- qla2x00_configure_loop(vha);
|
|
|
- wait_time--;
|
|
|
- } while (!atomic_read(&vha->loop_down_timer) &&
|
|
|
- !(test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags))
|
|
|
- && wait_time && (test_bit(LOOP_RESYNC_NEEDED,
|
|
|
- &vha->dpc_flags)));
|
|
|
+ set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
|
|
|
}
|
|
|
|
|
|
/* if no cable then assume it's good */
|
|
|
if ((vha->device_flags & DFLG_NO_CABLE))
|
|
|
status = 0;
|
|
|
-
|
|
|
- ql_dbg(ql_dbg_taskm, vha, 0x8032,
|
|
|
- "Configure loop done, status = 0x%x.\n", status);
|
|
|
}
|
|
|
return (status);
|
|
|
}
|
|
@@ -6139,7 +6124,6 @@ int
|
|
|
qla82xx_restart_isp(scsi_qla_host_t *vha)
|
|
|
{
|
|
|
int status, rval;
|
|
|
- uint32_t wait_time;
|
|
|
struct qla_hw_data *ha = vha->hw;
|
|
|
struct req_que *req = ha->req_q_map[0];
|
|
|
struct rsp_que *rsp = ha->rsp_q_map[0];
|
|
@@ -6153,31 +6137,15 @@ qla82xx_restart_isp(scsi_qla_host_t *vha)
|
|
|
|
|
|
status = qla2x00_fw_ready(vha);
|
|
|
if (!status) {
|
|
|
- ql_log(ql_log_info, vha, 0x803c,
|
|
|
- "Start configure loop, status =%d.\n", status);
|
|
|
-
|
|
|
/* Issue a marker after FW becomes ready. */
|
|
|
qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL);
|
|
|
-
|
|
|
vha->flags.online = 1;
|
|
|
- /* Wait at most MAX_TARGET RSCNs for a stable link. */
|
|
|
- wait_time = 256;
|
|
|
- do {
|
|
|
- clear_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
|
|
|
- qla2x00_configure_loop(vha);
|
|
|
- wait_time--;
|
|
|
- } while (!atomic_read(&vha->loop_down_timer) &&
|
|
|
- !(test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags)) &&
|
|
|
- wait_time &&
|
|
|
- (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)));
|
|
|
+ set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
|
|
|
}
|
|
|
|
|
|
/* if no cable then assume it's good */
|
|
|
if ((vha->device_flags & DFLG_NO_CABLE))
|
|
|
status = 0;
|
|
|
-
|
|
|
- ql_log(ql_log_info, vha, 0x8000,
|
|
|
- "Configure loop done, status = 0x%x.\n", status);
|
|
|
}
|
|
|
|
|
|
if (!status) {
|
|
@@ -6191,8 +6159,6 @@ qla82xx_restart_isp(scsi_qla_host_t *vha)
|
|
|
vha->marker_needed = 1;
|
|
|
}
|
|
|
|
|
|
- vha->flags.online = 1;
|
|
|
-
|
|
|
ha->isp_ops->enable_intrs(ha);
|
|
|
|
|
|
ha->isp_abort_cnt = 0;
|