• Home
  • Raw
  • Download

Lines Matching refs:sp

22 qla2x00_get_cmd_direction(srb_t *sp)  in qla2x00_get_cmd_direction()  argument
25 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla2x00_get_cmd_direction()
26 struct scsi_qla_host *vha = sp->vha; in qla2x00_get_cmd_direction()
146 qla24xx_configure_prot_mode(srb_t *sp, uint16_t *fw_prot_opts) in qla24xx_configure_prot_mode() argument
148 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla24xx_configure_prot_mode()
191 void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, in qla2x00_build_scsi_iocbs_32() argument
201 cmd = GET_CMD_SP(sp); in qla2x00_build_scsi_iocbs_32()
212 vha = sp->vha; in qla2x00_build_scsi_iocbs_32()
213 cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp)); in qla2x00_build_scsi_iocbs_32()
247 void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt, in qla2x00_build_scsi_iocbs_64() argument
257 cmd = GET_CMD_SP(sp); in qla2x00_build_scsi_iocbs_64()
268 vha = sp->vha; in qla2x00_build_scsi_iocbs_64()
269 cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp)); in qla2x00_build_scsi_iocbs_64()
322 qla2x00_start_scsi(srb_t *sp) in qla2x00_start_scsi() argument
340 vha = sp->vha; in qla2x00_start_scsi()
343 cmd = GET_CMD_SP(sp); in qla2x00_start_scsi()
392 req->outstanding_cmds[handle] = sp; in qla2x00_start_scsi()
393 sp->handle = handle; in qla2x00_start_scsi()
405 SET_TARGET_ID(ha, cmd_pkt->target, sp->fcport->loop_id); in qla2x00_start_scsi()
414 ha->isp_ops->build_iocbs(sp, cmd_pkt, tot_dsds); in qla2x00_start_scsi()
428 sp->flags |= SRB_DMA_VALID; in qla2x00_start_scsi()
584 qla24xx_build_scsi_type_6_iocbs(srb_t *sp, struct cmd_type_6 *cmd_pkt, in qla24xx_build_scsi_type_6_iocbs() argument
598 cmd = GET_CMD_SP(sp); in qla24xx_build_scsi_type_6_iocbs()
609 vha = sp->vha; in qla24xx_build_scsi_type_6_iocbs()
624 ctx = sp->u.scmd.ct6_ctx; in qla24xx_build_scsi_type_6_iocbs()
698 qla24xx_build_scsi_iocbs(srb_t *sp, struct cmd_type_7 *cmd_pkt, in qla24xx_build_scsi_iocbs() argument
708 cmd = GET_CMD_SP(sp); in qla24xx_build_scsi_iocbs()
719 vha = sp->vha; in qla24xx_build_scsi_iocbs()
769 qla24xx_set_t10dif_tags(srb_t *sp, struct fw_dif_context *pkt, in qla24xx_set_t10dif_tags() argument
772 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla24xx_set_t10dif_tags()
783 if (!qla2x00_hba_err_chk_enabled(sp)) in qla24xx_set_t10dif_tags()
804 if (!qla2x00_hba_err_chk_enabled(sp)) in qla24xx_set_t10dif_tags()
832 if (!qla2x00_hba_err_chk_enabled(sp)) in qla24xx_set_t10dif_tags()
887 qla24xx_walk_and_build_sglist_no_difb(struct qla_hw_data *ha, srb_t *sp, in qla24xx_walk_and_build_sglist_no_difb() argument
905 if (sp) { in qla24xx_walk_and_build_sglist_no_difb()
906 cmd = GET_CMD_SP(sp); in qla24xx_walk_and_build_sglist_no_difb()
911 sgx.sp = sp; in qla24xx_walk_and_build_sglist_no_difb()
955 if (sp) { in qla24xx_walk_and_build_sglist_no_difb()
957 &sp->u.scmd.crc_ctx->dsd_list); in qla24xx_walk_and_build_sglist_no_difb()
959 sp->flags |= SRB_CRC_CTX_DSD_VALID; in qla24xx_walk_and_build_sglist_no_difb()
1001 qla24xx_walk_and_build_sglist(struct qla_hw_data *ha, srb_t *sp, in qla24xx_walk_and_build_sglist() argument
1014 if (sp) { in qla24xx_walk_and_build_sglist()
1015 cmd = GET_CMD_SP(sp); in qla24xx_walk_and_build_sglist()
1052 if (sp) { in qla24xx_walk_and_build_sglist()
1054 &sp->u.scmd.crc_ctx->dsd_list); in qla24xx_walk_and_build_sglist()
1056 sp->flags |= SRB_CRC_CTX_DSD_VALID; in qla24xx_walk_and_build_sglist()
1081 qla24xx_walk_and_build_prot_sglist(struct qla_hw_data *ha, srb_t *sp, in qla24xx_walk_and_build_prot_sglist() argument
1095 if (sp) { in qla24xx_walk_and_build_prot_sglist()
1096 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla24xx_walk_and_build_prot_sglist()
1099 vha = sp->vha; in qla24xx_walk_and_build_prot_sglist()
1100 difctx = sp->u.scmd.crc_ctx; in qla24xx_walk_and_build_prot_sglist()
1104 __func__, cmd, difctx, sp); in qla24xx_walk_and_build_prot_sglist()
1239 if (sp) in qla24xx_walk_and_build_prot_sglist()
1240 sp->flags |= SRB_DIF_BUNDL_DMA_VALID; in qla24xx_walk_and_build_prot_sglist()
1292 if (sp) { in qla24xx_walk_and_build_prot_sglist()
1295 sp->flags |= SRB_CRC_CTX_DSD_VALID; in qla24xx_walk_and_build_prot_sglist()
1350 if (sp) { in qla24xx_walk_and_build_prot_sglist()
1353 sp->flags |= SRB_CRC_CTX_DSD_VALID; in qla24xx_walk_and_build_prot_sglist()
1388 qla24xx_build_scsi_crc_2_iocbs(srb_t *sp, struct cmd_type_crc_2 *cmd_pkt, in qla24xx_build_scsi_crc_2_iocbs() argument
1407 cmd = GET_CMD_SP(sp); in qla24xx_build_scsi_crc_2_iocbs()
1412 vha = sp->vha; in qla24xx_build_scsi_crc_2_iocbs()
1422 cmd_pkt->vp_index = sp->vha->vp_idx; in qla24xx_build_scsi_crc_2_iocbs()
1440 crc_ctx_pkt = sp->u.scmd.crc_ctx = in qla24xx_build_scsi_crc_2_iocbs()
1448 sp->flags |= SRB_CRC_CTX_DMA_VALID; in qla24xx_build_scsi_crc_2_iocbs()
1455 qla24xx_set_t10dif_tags(sp, (struct fw_dif_context *) in qla24xx_build_scsi_crc_2_iocbs()
1497 switch (scsi_get_prot_op(GET_CMD_SP(sp))) { in qla24xx_build_scsi_crc_2_iocbs()
1514 if (!qla2x00_hba_err_chk_enabled(sp)) in qla24xx_build_scsi_crc_2_iocbs()
1518 if ((scsi_get_prot_type(GET_CMD_SP(sp)) == SCSI_PROT_DIF_TYPE1) in qla24xx_build_scsi_crc_2_iocbs()
1519 || (scsi_get_prot_type(GET_CMD_SP(sp)) == in qla24xx_build_scsi_crc_2_iocbs()
1522 else if (scsi_get_prot_type(GET_CMD_SP(sp)) == in qla24xx_build_scsi_crc_2_iocbs()
1561 if (qla24xx_walk_and_build_sglist_no_difb(ha, sp, in qla24xx_build_scsi_crc_2_iocbs()
1564 } else if (qla24xx_walk_and_build_sglist(ha, sp, cur_dsd, in qla24xx_build_scsi_crc_2_iocbs()
1572 if (qla24xx_walk_and_build_prot_sglist(ha, sp, cur_dsd, in qla24xx_build_scsi_crc_2_iocbs()
1591 qla24xx_start_scsi(srb_t *sp) in qla24xx_start_scsi() argument
1602 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla24xx_start_scsi()
1603 struct scsi_qla_host *vha = sp->vha; in qla24xx_start_scsi()
1652 req->outstanding_cmds[handle] = sp; in qla24xx_start_scsi()
1653 sp->handle = handle; in qla24xx_start_scsi()
1667 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_start_scsi()
1668 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_start_scsi()
1669 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_start_scsi()
1670 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_start_scsi()
1671 cmd_pkt->vp_index = sp->vha->vp_idx; in qla24xx_start_scsi()
1685 qla24xx_build_scsi_iocbs(sp, cmd_pkt, tot_dsds, req); in qla24xx_start_scsi()
1698 sp->flags |= SRB_DMA_VALID; in qla24xx_start_scsi()
1722 qla24xx_dif_start_scsi(srb_t *sp) in qla24xx_dif_start_scsi() argument
1735 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla24xx_dif_start_scsi()
1736 struct scsi_qla_host *vha = sp->vha; in qla24xx_dif_start_scsi()
1746 return qla24xx_start_scsi(sp); in qla24xx_dif_start_scsi()
1779 sp->flags |= SRB_DMA_VALID; in qla24xx_dif_start_scsi()
1789 sgx.sp = sp; in qla24xx_dif_start_scsi()
1803 if (qla24xx_configure_prot_mode(sp, &fw_prot_opts)) { in qla24xx_dif_start_scsi()
1809 sp->flags |= SRB_CRC_PROT_DMA_VALID; in qla24xx_dif_start_scsi()
1839 req->outstanding_cmds[handle] = sp; in qla24xx_dif_start_scsi()
1840 sp->handle = handle; in qla24xx_dif_start_scsi()
1852 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_dif_start_scsi()
1853 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_dif_start_scsi()
1854 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_dif_start_scsi()
1855 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_dif_start_scsi()
1864 if (qla24xx_build_scsi_crc_2_iocbs(sp, (struct cmd_type_crc_2 *) in qla24xx_dif_start_scsi()
1908 qla2xxx_start_scsi_mq(srb_t *sp) in qla2xxx_start_scsi_mq() argument
1919 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla2xxx_start_scsi_mq()
1920 struct scsi_qla_host *vha = sp->fcport->vha; in qla2xxx_start_scsi_mq()
1922 struct qla_qpair *qpair = sp->qpair; in qla2xxx_start_scsi_mq()
1972 req->outstanding_cmds[handle] = sp; in qla2xxx_start_scsi_mq()
1973 sp->handle = handle; in qla2xxx_start_scsi_mq()
1987 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla2xxx_start_scsi_mq()
1988 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla2xxx_start_scsi_mq()
1989 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla2xxx_start_scsi_mq()
1990 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla2xxx_start_scsi_mq()
1991 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; in qla2xxx_start_scsi_mq()
2005 qla24xx_build_scsi_iocbs(sp, cmd_pkt, tot_dsds, req); in qla2xxx_start_scsi_mq()
2018 sp->flags |= SRB_DMA_VALID; in qla2xxx_start_scsi_mq()
2043 qla2xxx_dif_start_scsi_mq(srb_t *sp) in qla2xxx_dif_start_scsi_mq() argument
2056 struct scsi_cmnd *cmd = GET_CMD_SP(sp); in qla2xxx_dif_start_scsi_mq()
2057 struct scsi_qla_host *vha = sp->fcport->vha; in qla2xxx_dif_start_scsi_mq()
2061 struct qla_qpair *qpair = sp->qpair; in qla2xxx_dif_start_scsi_mq()
2080 return qla2xxx_start_scsi_mq(sp); in qla2xxx_dif_start_scsi_mq()
2114 sp->flags |= SRB_DMA_VALID; in qla2xxx_dif_start_scsi_mq()
2124 sgx.sp = sp; in qla2xxx_dif_start_scsi_mq()
2138 if (qla24xx_configure_prot_mode(sp, &fw_prot_opts)) { in qla2xxx_dif_start_scsi_mq()
2144 sp->flags |= SRB_CRC_PROT_DMA_VALID; in qla2xxx_dif_start_scsi_mq()
2174 req->outstanding_cmds[handle] = sp; in qla2xxx_dif_start_scsi_mq()
2175 sp->handle = handle; in qla2xxx_dif_start_scsi_mq()
2187 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla2xxx_dif_start_scsi_mq()
2188 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla2xxx_dif_start_scsi_mq()
2189 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla2xxx_dif_start_scsi_mq()
2190 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla2xxx_dif_start_scsi_mq()
2199 if (qla24xx_build_scsi_crc_2_iocbs(sp, (struct cmd_type_crc_2 *) in qla2xxx_dif_start_scsi_mq()
2244 __qla2x00_alloc_iocbs(struct qla_qpair *qpair, srb_t *sp) in __qla2x00_alloc_iocbs() argument
2258 if (sp && (sp->type != SRB_SCSI_CMD)) { in __qla2x00_alloc_iocbs()
2260 req_cnt = sp->iocbs; in __qla2x00_alloc_iocbs()
2289 if (sp) { in __qla2x00_alloc_iocbs()
2299 req->outstanding_cmds[handle] = sp; in __qla2x00_alloc_iocbs()
2300 sp->handle = handle; in __qla2x00_alloc_iocbs()
2323 qla2x00_alloc_iocbs_ready(struct qla_qpair *qpair, srb_t *sp) in qla2x00_alloc_iocbs_ready() argument
2330 return __qla2x00_alloc_iocbs(qpair, sp); in qla2x00_alloc_iocbs_ready()
2334 qla2x00_alloc_iocbs(struct scsi_qla_host *vha, srb_t *sp) in qla2x00_alloc_iocbs() argument
2336 return __qla2x00_alloc_iocbs(vha->hw->base_qpair, sp); in qla2x00_alloc_iocbs()
2340 qla24xx_prli_iocb(srb_t *sp, struct logio_entry_24xx *logio) in qla24xx_prli_iocb() argument
2342 struct srb_iocb *lio = &sp->u.iocb_cmd; in qla24xx_prli_iocb()
2348 if (sp->vha->flags.nvme_first_burst) in qla24xx_prli_iocb()
2352 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_prli_iocb()
2353 logio->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_prli_iocb()
2354 logio->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_prli_iocb()
2355 logio->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_prli_iocb()
2356 logio->vp_index = sp->vha->vp_idx; in qla24xx_prli_iocb()
2360 qla24xx_login_iocb(srb_t *sp, struct logio_entry_24xx *logio) in qla24xx_login_iocb() argument
2362 struct srb_iocb *lio = &sp->u.iocb_cmd; in qla24xx_login_iocb()
2374 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_login_iocb()
2375 logio->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_login_iocb()
2376 logio->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_login_iocb()
2377 logio->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_login_iocb()
2378 logio->vp_index = sp->vha->vp_idx; in qla24xx_login_iocb()
2382 qla2x00_login_iocb(srb_t *sp, struct mbx_entry *mbx) in qla2x00_login_iocb() argument
2384 struct qla_hw_data *ha = sp->vha->hw; in qla2x00_login_iocb()
2385 struct srb_iocb *lio = &sp->u.iocb_cmd; in qla2x00_login_iocb()
2389 SET_TARGET_ID(ha, mbx->loop_id, sp->fcport->loop_id); in qla2x00_login_iocb()
2394 mbx->mb1 = cpu_to_le16(sp->fcport->loop_id); in qla2x00_login_iocb()
2397 mbx->mb1 = cpu_to_le16((sp->fcport->loop_id << 8) | opts); in qla2x00_login_iocb()
2399 mbx->mb2 = cpu_to_le16(sp->fcport->d_id.b.domain); in qla2x00_login_iocb()
2400 mbx->mb3 = cpu_to_le16(sp->fcport->d_id.b.area << 8 | in qla2x00_login_iocb()
2401 sp->fcport->d_id.b.al_pa); in qla2x00_login_iocb()
2402 mbx->mb9 = cpu_to_le16(sp->vha->vp_idx); in qla2x00_login_iocb()
2406 qla24xx_logout_iocb(srb_t *sp, struct logio_entry_24xx *logio) in qla24xx_logout_iocb() argument
2411 if (sp->fcport->explicit_logout) { in qla24xx_logout_iocb()
2416 if (!sp->fcport->keep_nport_handle) in qla24xx_logout_iocb()
2421 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_logout_iocb()
2422 logio->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_logout_iocb()
2423 logio->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_logout_iocb()
2424 logio->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_logout_iocb()
2425 logio->vp_index = sp->vha->vp_idx; in qla24xx_logout_iocb()
2429 qla2x00_logout_iocb(srb_t *sp, struct mbx_entry *mbx) in qla2x00_logout_iocb() argument
2431 struct qla_hw_data *ha = sp->vha->hw; in qla2x00_logout_iocb()
2434 SET_TARGET_ID(ha, mbx->loop_id, sp->fcport->loop_id); in qla2x00_logout_iocb()
2437 cpu_to_le16(sp->fcport->loop_id) : in qla2x00_logout_iocb()
2438 cpu_to_le16(sp->fcport->loop_id << 8); in qla2x00_logout_iocb()
2439 mbx->mb2 = cpu_to_le16(sp->fcport->d_id.b.domain); in qla2x00_logout_iocb()
2440 mbx->mb3 = cpu_to_le16(sp->fcport->d_id.b.area << 8 | in qla2x00_logout_iocb()
2441 sp->fcport->d_id.b.al_pa); in qla2x00_logout_iocb()
2442 mbx->mb9 = cpu_to_le16(sp->vha->vp_idx); in qla2x00_logout_iocb()
2447 qla24xx_adisc_iocb(srb_t *sp, struct logio_entry_24xx *logio) in qla24xx_adisc_iocb() argument
2451 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_adisc_iocb()
2452 logio->vp_index = sp->vha->vp_idx; in qla24xx_adisc_iocb()
2456 qla2x00_adisc_iocb(srb_t *sp, struct mbx_entry *mbx) in qla2x00_adisc_iocb() argument
2458 struct qla_hw_data *ha = sp->vha->hw; in qla2x00_adisc_iocb()
2461 SET_TARGET_ID(ha, mbx->loop_id, sp->fcport->loop_id); in qla2x00_adisc_iocb()
2464 mbx->mb1 = cpu_to_le16(sp->fcport->loop_id); in qla2x00_adisc_iocb()
2467 mbx->mb1 = cpu_to_le16((sp->fcport->loop_id << 8) | BIT_0); in qla2x00_adisc_iocb()
2473 mbx->mb9 = cpu_to_le16(sp->vha->vp_idx); in qla2x00_adisc_iocb()
2477 qla24xx_tm_iocb(srb_t *sp, struct tsk_mgmt_entry *tsk) in qla24xx_tm_iocb() argument
2481 struct fc_port *fcport = sp->fcport; in qla24xx_tm_iocb()
2484 struct srb_iocb *iocb = &sp->u.iocb_cmd; in qla24xx_tm_iocb()
2508 void qla2x00_init_timer(srb_t *sp, unsigned long tmo) in qla2x00_init_timer() argument
2510 timer_setup(&sp->u.iocb_cmd.timer, qla2x00_sp_timeout, 0); in qla2x00_init_timer()
2511 sp->u.iocb_cmd.timer.expires = jiffies + tmo * HZ; in qla2x00_init_timer()
2512 sp->free = qla2x00_sp_free; in qla2x00_init_timer()
2513 if (IS_QLAFX00(sp->vha->hw) && sp->type == SRB_FXIOCB_DCMD) in qla2x00_init_timer()
2514 init_completion(&sp->u.iocb_cmd.u.fxiocb.fxiocb_comp); in qla2x00_init_timer()
2515 sp->start_timer = 1; in qla2x00_init_timer()
2518 static void qla2x00_els_dcmd_sp_free(srb_t *sp) in qla2x00_els_dcmd_sp_free() argument
2520 struct srb_iocb *elsio = &sp->u.iocb_cmd; in qla2x00_els_dcmd_sp_free()
2522 kfree(sp->fcport); in qla2x00_els_dcmd_sp_free()
2525 dma_free_coherent(&sp->vha->hw->pdev->dev, DMA_POOL_SIZE, in qla2x00_els_dcmd_sp_free()
2530 qla2x00_rel_sp(sp); in qla2x00_els_dcmd_sp_free()
2536 srb_t *sp = data; in qla2x00_els_dcmd_iocb_timeout() local
2537 fc_port_t *fcport = sp->fcport; in qla2x00_els_dcmd_iocb_timeout()
2538 struct scsi_qla_host *vha = sp->vha; in qla2x00_els_dcmd_iocb_timeout()
2539 struct srb_iocb *lio = &sp->u.iocb_cmd; in qla2x00_els_dcmd_iocb_timeout()
2543 sp->name, sp->handle, fcport->d_id.b.domain, fcport->d_id.b.area, in qla2x00_els_dcmd_iocb_timeout()
2549 static void qla2x00_els_dcmd_sp_done(srb_t *sp, int res) in qla2x00_els_dcmd_sp_done() argument
2551 fc_port_t *fcport = sp->fcport; in qla2x00_els_dcmd_sp_done()
2552 struct srb_iocb *lio = &sp->u.iocb_cmd; in qla2x00_els_dcmd_sp_done()
2553 struct scsi_qla_host *vha = sp->vha; in qla2x00_els_dcmd_sp_done()
2557 sp->name, sp->handle, fcport->d_id.b.domain, in qla2x00_els_dcmd_sp_done()
2567 srb_t *sp; in qla24xx_els_dcmd_iocb() local
2581 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_els_dcmd_iocb()
2582 if (!sp) { in qla24xx_els_dcmd_iocb()
2589 elsio = &sp->u.iocb_cmd; in qla24xx_els_dcmd_iocb()
2598 sp->type = SRB_ELS_DCMD; in qla24xx_els_dcmd_iocb()
2599 sp->name = "ELS_DCMD"; in qla24xx_els_dcmd_iocb()
2600 sp->fcport = fcport; in qla24xx_els_dcmd_iocb()
2602 qla2x00_init_timer(sp, ELS_DCMD_TIMEOUT); in qla24xx_els_dcmd_iocb()
2603 init_completion(&sp->u.iocb_cmd.u.els_logo.comp); in qla24xx_els_dcmd_iocb()
2604 sp->done = qla2x00_els_dcmd_sp_done; in qla24xx_els_dcmd_iocb()
2605 sp->free = qla2x00_els_dcmd_sp_free; in qla24xx_els_dcmd_iocb()
2612 sp->free(sp); in qla24xx_els_dcmd_iocb()
2629 rval = qla2x00_start_sp(sp); in qla24xx_els_dcmd_iocb()
2631 sp->free(sp); in qla24xx_els_dcmd_iocb()
2637 sp->name, sp->handle, fcport->loop_id, fcport->d_id.b.domain, in qla24xx_els_dcmd_iocb()
2642 sp->free(sp); in qla24xx_els_dcmd_iocb()
2647 qla24xx_els_logo_iocb(srb_t *sp, struct els_entry_24xx *els_iocb) in qla24xx_els_logo_iocb() argument
2649 scsi_qla_host_t *vha = sp->vha; in qla24xx_els_logo_iocb()
2650 struct srb_iocb *elsio = &sp->u.iocb_cmd; in qla24xx_els_logo_iocb()
2656 els_iocb->handle = sp->handle; in qla24xx_els_logo_iocb()
2657 els_iocb->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_els_logo_iocb()
2664 els_iocb->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_els_logo_iocb()
2665 els_iocb->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_els_logo_iocb()
2666 els_iocb->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_els_logo_iocb()
2702 sp->vha->qla_stats.control_requests++; in qla24xx_els_logo_iocb()
2708 srb_t *sp = data; in qla2x00_els_dcmd2_iocb_timeout() local
2709 fc_port_t *fcport = sp->fcport; in qla2x00_els_dcmd2_iocb_timeout()
2710 struct scsi_qla_host *vha = sp->vha; in qla2x00_els_dcmd2_iocb_timeout()
2717 sp->name, sp->handle, fcport->port_name, fcport->d_id.b24); in qla2x00_els_dcmd2_iocb_timeout()
2721 res = ha->isp_ops->abort_command(sp); in qla2x00_els_dcmd2_iocb_timeout()
2727 sp->done(sp, QLA_FUNCTION_TIMEOUT); in qla2x00_els_dcmd2_iocb_timeout()
2745 static void qla2x00_els_dcmd2_sp_done(srb_t *sp, int res) in qla2x00_els_dcmd2_sp_done() argument
2747 fc_port_t *fcport = sp->fcport; in qla2x00_els_dcmd2_sp_done()
2748 struct srb_iocb *lio = &sp->u.iocb_cmd; in qla2x00_els_dcmd2_sp_done()
2749 struct scsi_qla_host *vha = sp->vha; in qla2x00_els_dcmd2_sp_done()
2755 sp->name, res, sp->handle, fcport->d_id.b24, fcport->port_name); in qla2x00_els_dcmd2_sp_done()
2758 del_timer(&sp->u.iocb_cmd.timer); in qla2x00_els_dcmd2_sp_done()
2760 if (sp->flags & SRB_WAKEUP_ON_COMP) in qla2x00_els_dcmd2_sp_done()
2769 ea.sp = sp; in qla2x00_els_dcmd2_sp_done()
2775 struct srb_iocb *elsio = &sp->u.iocb_cmd; in qla2x00_els_dcmd2_sp_done()
2778 sp->free(sp); in qla2x00_els_dcmd2_sp_done()
2781 e->u.iosb.sp = sp; in qla2x00_els_dcmd2_sp_done()
2790 srb_t *sp; in qla24xx_els_dcmd2_iocb() local
2797 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_els_dcmd2_iocb()
2798 if (!sp) { in qla24xx_els_dcmd2_iocb()
2804 elsio = &sp->u.iocb_cmd; in qla24xx_els_dcmd2_iocb()
2809 sp->type = SRB_ELS_DCMD; in qla24xx_els_dcmd2_iocb()
2810 sp->name = "ELS_DCMD"; in qla24xx_els_dcmd2_iocb()
2811 sp->fcport = fcport; in qla24xx_els_dcmd2_iocb()
2816 sp->flags = SRB_WAKEUP_ON_COMP; in qla24xx_els_dcmd2_iocb()
2818 qla2x00_init_timer(sp, ELS_DCMD_TIMEOUT + 2); in qla24xx_els_dcmd2_iocb()
2820 sp->done = qla2x00_els_dcmd2_sp_done; in qla24xx_els_dcmd2_iocb()
2857 rval = qla2x00_start_sp(sp); in qla24xx_els_dcmd2_iocb()
2863 sp->name, sp->handle, fcport->loop_id, in qla24xx_els_dcmd2_iocb()
2879 sp->free(sp); in qla24xx_els_dcmd2_iocb()
2885 qla24xx_els_iocb(srb_t *sp, struct els_entry_24xx *els_iocb) in qla24xx_els_iocb() argument
2887 struct bsg_job *bsg_job = sp->u.bsg_job; in qla24xx_els_iocb()
2894 els_iocb->handle = sp->handle; in qla24xx_els_iocb()
2895 els_iocb->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_els_iocb()
2897 els_iocb->vp_index = sp->vha->vp_idx; in qla24xx_els_iocb()
2902 sp->type == SRB_ELS_CMD_RPT ? in qla24xx_els_iocb()
2905 els_iocb->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_els_iocb()
2906 els_iocb->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_els_iocb()
2907 els_iocb->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_els_iocb()
2924 sp->vha->qla_stats.control_requests++; in qla24xx_els_iocb()
2928 qla2x00_ct_iocb(srb_t *sp, ms_iocb_entry_t *ct_iocb) in qla2x00_ct_iocb() argument
2935 scsi_qla_host_t *vha = sp->vha; in qla2x00_ct_iocb()
2937 struct bsg_job *bsg_job = sp->u.bsg_job; in qla2x00_ct_iocb()
2943 ct_iocb->handle1 = sp->handle; in qla2x00_ct_iocb()
2944 SET_TARGET_ID(ha, ct_iocb->loop_id, sp->fcport->loop_id); in qla2x00_ct_iocb()
2991 sp->vha->qla_stats.control_requests++; in qla2x00_ct_iocb()
2995 qla24xx_ct_iocb(srb_t *sp, struct ct_entry_24xx *ct_iocb) in qla24xx_ct_iocb() argument
3002 scsi_qla_host_t *vha = sp->vha; in qla24xx_ct_iocb()
3004 struct bsg_job *bsg_job = sp->u.bsg_job; in qla24xx_ct_iocb()
3011 ct_iocb->handle = sp->handle; in qla24xx_ct_iocb()
3013 ct_iocb->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_ct_iocb()
3014 ct_iocb->vp_index = sp->vha->vp_idx; in qla24xx_ct_iocb()
3077 qla82xx_start_scsi(srb_t *sp) in qla82xx_start_scsi() argument
3092 struct scsi_qla_host *vha = sp->vha; in qla82xx_start_scsi()
3099 cmd = GET_CMD_SP(sp); in qla82xx_start_scsi()
3194 ctx = sp->u.scmd.ct6_ctx = in qla82xx_start_scsi()
3242 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla82xx_start_scsi()
3243 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla82xx_start_scsi()
3244 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla82xx_start_scsi()
3245 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla82xx_start_scsi()
3246 cmd_pkt->vp_index = sp->vha->vp_idx; in qla82xx_start_scsi()
3249 if (qla24xx_build_scsi_type_6_iocbs(sp, cmd_pkt, tot_dsds)) in qla82xx_start_scsi()
3267 sp->fcport->fcp_prio << 3; in qla82xx_start_scsi()
3279 sp->flags |= SRB_FCP_CMND_DMA_VALID; in qla82xx_start_scsi()
3313 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla82xx_start_scsi()
3314 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla82xx_start_scsi()
3315 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla82xx_start_scsi()
3316 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla82xx_start_scsi()
3317 cmd_pkt->vp_index = sp->vha->vp_idx; in qla82xx_start_scsi()
3325 cmd_pkt->task |= sp->fcport->fcp_prio << 3; in qla82xx_start_scsi()
3334 qla24xx_build_scsi_iocbs(sp, cmd_pkt, tot_dsds, req); in qla82xx_start_scsi()
3346 req->outstanding_cmds[handle] = sp; in qla82xx_start_scsi()
3347 sp->handle = handle; in qla82xx_start_scsi()
3360 sp->flags |= SRB_DMA_VALID; in qla82xx_start_scsi()
3390 if (sp->u.scmd.crc_ctx) { in qla82xx_start_scsi()
3391 mempool_free(sp->u.scmd.crc_ctx, ha->ctx_mempool); in qla82xx_start_scsi()
3392 sp->u.scmd.crc_ctx = NULL; in qla82xx_start_scsi()
3400 qla24xx_abort_iocb(srb_t *sp, struct abort_entry_24xx *abt_iocb) in qla24xx_abort_iocb() argument
3402 struct srb_iocb *aio = &sp->u.iocb_cmd; in qla24xx_abort_iocb()
3403 scsi_qla_host_t *vha = sp->vha; in qla24xx_abort_iocb()
3404 struct req_que *req = sp->qpair->req; in qla24xx_abort_iocb()
3409 abt_iocb->handle = cpu_to_le32(MAKE_HANDLE(req->id, sp->handle)); in qla24xx_abort_iocb()
3410 if (sp->fcport) { in qla24xx_abort_iocb()
3411 abt_iocb->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_abort_iocb()
3412 abt_iocb->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_abort_iocb()
3413 abt_iocb->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_abort_iocb()
3414 abt_iocb->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_abort_iocb()
3426 qla2x00_mb_iocb(srb_t *sp, struct mbx_24xx_entry *mbx) in qla2x00_mb_iocb() argument
3431 mbx->handle = sp->handle; in qla2x00_mb_iocb()
3432 sz = min(ARRAY_SIZE(mbx->mb), ARRAY_SIZE(sp->u.iocb_cmd.u.mbx.out_mb)); in qla2x00_mb_iocb()
3435 mbx->mb[i] = cpu_to_le16(sp->u.iocb_cmd.u.mbx.out_mb[i]); in qla2x00_mb_iocb()
3439 qla2x00_ctpthru_cmd_iocb(srb_t *sp, struct ct_entry_24xx *ct_pkt) in qla2x00_ctpthru_cmd_iocb() argument
3441 sp->u.iocb_cmd.u.ctarg.iocb = ct_pkt; in qla2x00_ctpthru_cmd_iocb()
3442 qla24xx_prep_ms_iocb(sp->vha, &sp->u.iocb_cmd.u.ctarg); in qla2x00_ctpthru_cmd_iocb()
3443 ct_pkt->handle = sp->handle; in qla2x00_ctpthru_cmd_iocb()
3446 static void qla2x00_send_notify_ack_iocb(srb_t *sp, in qla2x00_send_notify_ack_iocb() argument
3449 struct imm_ntfy_from_isp *ntfy = sp->u.iocb_cmd.u.nack.ntfy; in qla2x00_send_notify_ack_iocb()
3455 nack->u.isp24.handle = sp->handle; in qla2x00_send_notify_ack_iocb()
3478 qla_nvme_ls(srb_t *sp, struct pt_ls4_request *cmd_pkt) in qla_nvme_ls() argument
3483 nvme = &sp->u.iocb_cmd; in qla_nvme_ls()
3489 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla_nvme_ls()
3490 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; in qla_nvme_ls()
3506 qla25xx_ctrlvp_iocb(srb_t *sp, struct vp_ctrl_entry_24xx *vce) in qla25xx_ctrlvp_iocb() argument
3511 vce->handle = sp->handle; in qla25xx_ctrlvp_iocb()
3513 vce->command = cpu_to_le16(sp->u.iocb_cmd.u.ctrlvp.cmd); in qla25xx_ctrlvp_iocb()
3520 map = (sp->u.iocb_cmd.u.ctrlvp.vp_index - 1) / 8; in qla25xx_ctrlvp_iocb()
3521 pos = (sp->u.iocb_cmd.u.ctrlvp.vp_index - 1) & 7; in qla25xx_ctrlvp_iocb()
3526 qla24xx_prlo_iocb(srb_t *sp, struct logio_entry_24xx *logio) in qla24xx_prlo_iocb() argument
3532 logio->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla24xx_prlo_iocb()
3533 logio->port_id[0] = sp->fcport->d_id.b.al_pa; in qla24xx_prlo_iocb()
3534 logio->port_id[1] = sp->fcport->d_id.b.area; in qla24xx_prlo_iocb()
3535 logio->port_id[2] = sp->fcport->d_id.b.domain; in qla24xx_prlo_iocb()
3536 logio->vp_index = sp->fcport->vha->vp_idx; in qla24xx_prlo_iocb()
3540 qla2x00_start_sp(srb_t *sp) in qla2x00_start_sp() argument
3543 scsi_qla_host_t *vha = sp->vha; in qla2x00_start_sp()
3545 struct qla_qpair *qp = sp->qpair; in qla2x00_start_sp()
3550 pkt = __qla2x00_alloc_iocbs(sp->qpair, sp); in qla2x00_start_sp()
3558 switch (sp->type) { in qla2x00_start_sp()
3561 qla24xx_login_iocb(sp, pkt) : in qla2x00_start_sp()
3562 qla2x00_login_iocb(sp, pkt); in qla2x00_start_sp()
3565 qla24xx_prli_iocb(sp, pkt); in qla2x00_start_sp()
3569 qla24xx_logout_iocb(sp, pkt) : in qla2x00_start_sp()
3570 qla2x00_logout_iocb(sp, pkt); in qla2x00_start_sp()
3574 qla24xx_els_iocb(sp, pkt); in qla2x00_start_sp()
3578 qla24xx_ct_iocb(sp, pkt) : in qla2x00_start_sp()
3579 qla2x00_ct_iocb(sp, pkt); in qla2x00_start_sp()
3583 qla24xx_adisc_iocb(sp, pkt) : in qla2x00_start_sp()
3584 qla2x00_adisc_iocb(sp, pkt); in qla2x00_start_sp()
3588 qlafx00_tm_iocb(sp, pkt) : in qla2x00_start_sp()
3589 qla24xx_tm_iocb(sp, pkt); in qla2x00_start_sp()
3593 qlafx00_fxdisc_iocb(sp, pkt); in qla2x00_start_sp()
3596 qla_nvme_ls(sp, pkt); in qla2x00_start_sp()
3600 qlafx00_abort_iocb(sp, pkt) : in qla2x00_start_sp()
3601 qla24xx_abort_iocb(sp, pkt); in qla2x00_start_sp()
3604 qla24xx_els_logo_iocb(sp, pkt); in qla2x00_start_sp()
3607 qla2x00_ctpthru_cmd_iocb(sp, pkt); in qla2x00_start_sp()
3610 qla2x00_mb_iocb(sp, pkt); in qla2x00_start_sp()
3615 qla2x00_send_notify_ack_iocb(sp, pkt); in qla2x00_start_sp()
3618 qla25xx_ctrlvp_iocb(sp, pkt); in qla2x00_start_sp()
3621 qla24xx_prlo_iocb(sp, pkt); in qla2x00_start_sp()
3627 if (sp->start_timer) in qla2x00_start_sp()
3628 add_timer(&sp->u.iocb_cmd.timer); in qla2x00_start_sp()
3638 qla25xx_build_bidir_iocb(srb_t *sp, struct scsi_qla_host *vha, in qla25xx_build_bidir_iocb() argument
3648 struct bsg_job *bsg_job = sp->u.bsg_job; in qla25xx_build_bidir_iocb()
3725 qla2x00_start_bidir(srb_t *sp, struct scsi_qla_host *vha, uint32_t tot_dsds) in qla2x00_start_bidir() argument
3793 qla25xx_build_bidir_iocb(sp, vha, cmd_pkt, tot_dsds); in qla2x00_start_bidir()
3797 req->outstanding_cmds[handle] = sp; in qla2x00_start_bidir()
3798 sp->handle = handle; in qla2x00_start_bidir()