|
@@ -183,10 +183,11 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport,
|
|
|
sp->name = "login";
|
|
|
sp->gen1 = fcport->rscn_gen;
|
|
|
sp->gen2 = fcport->login_gen;
|
|
|
- qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
|
|
|
lio = &sp->u.iocb_cmd;
|
|
|
lio->timeout = qla2x00_async_iocb_timeout;
|
|
|
+ qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
+
|
|
|
sp->done = qla2x00_async_login_sp_done;
|
|
|
lio->u.logio.flags |= SRB_LOGIN_COND_PLOGI;
|
|
|
|
|
@@ -245,10 +246,11 @@ qla2x00_async_logout(struct scsi_qla_host *vha, fc_port_t *fcport)
|
|
|
|
|
|
sp->type = SRB_LOGOUT_CMD;
|
|
|
sp->name = "logout";
|
|
|
- qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
|
|
|
lio = &sp->u.iocb_cmd;
|
|
|
lio->timeout = qla2x00_async_iocb_timeout;
|
|
|
+ qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
+
|
|
|
sp->done = qla2x00_async_logout_sp_done;
|
|
|
rval = qla2x00_start_sp(sp);
|
|
|
if (rval != QLA_SUCCESS)
|
|
@@ -307,10 +309,11 @@ qla2x00_async_prlo(struct scsi_qla_host *vha, fc_port_t *fcport)
|
|
|
|
|
|
sp->type = SRB_PRLO_CMD;
|
|
|
sp->name = "prlo";
|
|
|
- qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
|
|
|
lio = &sp->u.iocb_cmd;
|
|
|
lio->timeout = qla2x00_async_iocb_timeout;
|
|
|
+ qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
+
|
|
|
sp->done = qla2x00_async_prlo_sp_done;
|
|
|
rval = qla2x00_start_sp(sp);
|
|
|
if (rval != QLA_SUCCESS)
|
|
@@ -412,10 +415,11 @@ qla2x00_async_adisc(struct scsi_qla_host *vha, fc_port_t *fcport,
|
|
|
|
|
|
sp->type = SRB_ADISC_CMD;
|
|
|
sp->name = "adisc";
|
|
|
- qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
|
|
|
lio = &sp->u.iocb_cmd;
|
|
|
lio->timeout = qla2x00_async_iocb_timeout;
|
|
|
+ qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
+
|
|
|
sp->done = qla2x00_async_adisc_sp_done;
|
|
|
if (data[1] & QLA_LOGIO_LOGIN_RETRIED)
|
|
|
lio->u.logio.flags |= SRB_LOGIN_RETRIED;
|
|
@@ -745,6 +749,8 @@ int qla24xx_async_gnl(struct scsi_qla_host *vha, fc_port_t *fcport)
|
|
|
sp->gen1 = fcport->rscn_gen;
|
|
|
sp->gen2 = fcport->login_gen;
|
|
|
|
|
|
+ mbx = &sp->u.iocb_cmd;
|
|
|
+ mbx->timeout = qla2x00_async_iocb_timeout;
|
|
|
qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha)+2);
|
|
|
|
|
|
mb = sp->u.iocb_cmd.u.mbx.out_mb;
|
|
@@ -757,9 +763,6 @@ int qla24xx_async_gnl(struct scsi_qla_host *vha, fc_port_t *fcport)
|
|
|
mb[8] = vha->gnl.size;
|
|
|
mb[9] = vha->vp_idx;
|
|
|
|
|
|
- mbx = &sp->u.iocb_cmd;
|
|
|
- mbx->timeout = qla2x00_async_iocb_timeout;
|
|
|
-
|
|
|
sp->done = qla24xx_async_gnl_sp_done;
|
|
|
|
|
|
rval = qla2x00_start_sp(sp);
|
|
@@ -887,10 +890,11 @@ qla24xx_async_prli(struct scsi_qla_host *vha, fc_port_t *fcport)
|
|
|
|
|
|
sp->type = SRB_PRLI_CMD;
|
|
|
sp->name = "prli";
|
|
|
- qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
|
|
|
lio = &sp->u.iocb_cmd;
|
|
|
lio->timeout = qla2x00_async_iocb_timeout;
|
|
|
+ qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
+
|
|
|
sp->done = qla2x00_async_prli_sp_done;
|
|
|
lio->u.logio.flags = 0;
|
|
|
|
|
@@ -955,6 +959,9 @@ int qla24xx_async_gpdb(struct scsi_qla_host *vha, fc_port_t *fcport, u8 opt)
|
|
|
sp->name = "gpdb";
|
|
|
sp->gen1 = fcport->rscn_gen;
|
|
|
sp->gen2 = fcport->login_gen;
|
|
|
+
|
|
|
+ mbx = &sp->u.iocb_cmd;
|
|
|
+ mbx->timeout = qla2x00_async_iocb_timeout;
|
|
|
qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2);
|
|
|
|
|
|
pd = dma_pool_zalloc(ha->s_dma_pool, GFP_KERNEL, &pd_dma);
|
|
@@ -974,8 +981,6 @@ int qla24xx_async_gpdb(struct scsi_qla_host *vha, fc_port_t *fcport, u8 opt)
|
|
|
mb[9] = vha->vp_idx;
|
|
|
mb[10] = opt;
|
|
|
|
|
|
- mbx = &sp->u.iocb_cmd;
|
|
|
- mbx->timeout = qla2x00_async_iocb_timeout;
|
|
|
mbx->u.mbx.in = (void *)pd;
|
|
|
mbx->u.mbx.in_dma = pd_dma;
|
|
|
|
|
@@ -1490,13 +1495,15 @@ qla2x00_async_tm_cmd(fc_port_t *fcport, uint32_t flags, uint32_t lun,
|
|
|
tm_iocb = &sp->u.iocb_cmd;
|
|
|
sp->type = SRB_TM_CMD;
|
|
|
sp->name = "tmf";
|
|
|
+
|
|
|
+ tm_iocb->timeout = qla2x00_tmf_iocb_timeout;
|
|
|
+ init_completion(&tm_iocb->u.tmf.comp);
|
|
|
qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha));
|
|
|
+
|
|
|
tm_iocb->u.tmf.flags = flags;
|
|
|
tm_iocb->u.tmf.lun = lun;
|
|
|
tm_iocb->u.tmf.data = tag;
|
|
|
sp->done = qla2x00_tmf_sp_done;
|
|
|
- tm_iocb->timeout = qla2x00_tmf_iocb_timeout;
|
|
|
- init_completion(&tm_iocb->u.tmf.comp);
|
|
|
|
|
|
rval = qla2x00_start_sp(sp);
|
|
|
if (rval != QLA_SUCCESS)
|
|
@@ -1570,7 +1577,11 @@ qla24xx_async_abort_cmd(srb_t *cmd_sp)
|
|
|
abt_iocb = &sp->u.iocb_cmd;
|
|
|
sp->type = SRB_ABT_CMD;
|
|
|
sp->name = "abort";
|
|
|
+
|
|
|
+ abt_iocb->timeout = qla24xx_abort_iocb_timeout;
|
|
|
+ init_completion(&abt_iocb->u.abt.comp);
|
|
|
qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha));
|
|
|
+
|
|
|
abt_iocb->u.abt.cmd_hndl = cmd_sp->handle;
|
|
|
|
|
|
if (vha->flags.qpairs_available && cmd_sp->qpair)
|
|
@@ -1580,8 +1591,6 @@ qla24xx_async_abort_cmd(srb_t *cmd_sp)
|
|
|
abt_iocb->u.abt.req_que_no = cpu_to_le16(vha->req->id);
|
|
|
|
|
|
sp->done = qla24xx_abort_sp_done;
|
|
|
- abt_iocb->timeout = qla24xx_abort_iocb_timeout;
|
|
|
- init_completion(&abt_iocb->u.abt.comp);
|
|
|
|
|
|
rval = qla2x00_start_sp(sp);
|
|
|
if (rval != QLA_SUCCESS)
|