Lines Matching refs:sp

24 	struct srb *sp;  member
167 struct srb *sp = container_of(kref, struct srb, cmd_kref); in qla_nvme_release_fcp_cmd_kref() local
168 struct nvme_private *priv = (struct nvme_private *)sp->priv; in qla_nvme_release_fcp_cmd_kref()
176 nvme = &sp->u.iocb_cmd; in qla_nvme_release_fcp_cmd_kref()
180 priv->sp = NULL; in qla_nvme_release_fcp_cmd_kref()
181 sp->priv = NULL; in qla_nvme_release_fcp_cmd_kref()
194 qla2xxx_rel_qpair_sp(sp->qpair, sp); in qla_nvme_release_fcp_cmd_kref()
199 struct srb *sp = container_of(kref, struct srb, cmd_kref); in qla_nvme_release_ls_cmd_kref() local
200 struct nvme_private *priv = (struct nvme_private *)sp->priv; in qla_nvme_release_ls_cmd_kref()
208 priv->sp = NULL; in qla_nvme_release_ls_cmd_kref()
209 sp->priv = NULL; in qla_nvme_release_ls_cmd_kref()
216 qla2x00_rel_sp(sp); in qla_nvme_release_ls_cmd_kref()
224 kref_put(&priv->sp->cmd_kref, qla_nvme_release_ls_cmd_kref); in qla_nvme_ls_complete()
227 static void qla_nvme_sp_ls_done(srb_t *sp, int res) in qla_nvme_sp_ls_done() argument
229 struct nvme_private *priv = sp->priv; in qla_nvme_sp_ls_done()
231 if (WARN_ON_ONCE(kref_read(&sp->cmd_kref) == 0)) in qla_nvme_sp_ls_done()
244 struct srb *sp = container_of(kref, struct srb, cmd_kref); in qla_nvme_release_lsrsp_cmd_kref() local
245 struct qla_nvme_unsol_ctx *uctx = sp->priv; in qla_nvme_release_lsrsp_cmd_kref()
250 qla2x00_rel_sp(sp); in qla_nvme_release_lsrsp_cmd_kref()
255 uctx->sp = NULL; in qla_nvme_release_lsrsp_cmd_kref()
256 sp->priv = NULL; in qla_nvme_release_lsrsp_cmd_kref()
265 qla2x00_rel_sp(sp); in qla_nvme_release_lsrsp_cmd_kref()
273 kref_put(&uctx->sp->cmd_kref, qla_nvme_release_lsrsp_cmd_kref); in qla_nvme_lsrsp_complete()
276 static void qla_nvme_sp_lsrsp_done(srb_t *sp, int res) in qla_nvme_sp_lsrsp_done() argument
278 struct qla_nvme_unsol_ctx *uctx = sp->priv; in qla_nvme_sp_lsrsp_done()
280 if (WARN_ON_ONCE(kref_read(&sp->cmd_kref) == 0)) in qla_nvme_sp_lsrsp_done()
292 static void qla_nvme_sp_done(srb_t *sp, int res) in qla_nvme_sp_done() argument
294 struct nvme_private *priv = sp->priv; in qla_nvme_sp_done()
297 kref_put(&sp->cmd_kref, qla_nvme_release_fcp_cmd_kref); in qla_nvme_sp_done()
306 srb_t *sp = priv->sp; in qla_nvme_abort_work() local
307 fc_port_t *fcport = sp->fcport; in qla_nvme_abort_work()
315 __func__, sp, sp->handle, fcport, sp->u.iocb_cmd.u.nvme.desc, fcport->deleted); in qla_nvme_abort_work()
321 ql_log(ql_log_info, sp->fcport->vha, 0xffff, in qla_nvme_abort_work()
323 __func__, sp, sp->type); in qla_nvme_abort_work()
324 sp->done(sp, 0); in qla_nvme_abort_work()
333 QLA_ABTS_WAIT_ENABLED(sp); in qla_nvme_abort_work()
334 handle = sp->handle; in qla_nvme_abort_work()
336 rval = ha->isp_ops->abort_command(sp); in qla_nvme_abort_work()
341 sp, handle, fcport, rval); in qla_nvme_abort_work()
360 kref_put(&sp->cmd_kref, sp->put_fn); in qla_nvme_abort_work()
375 srb_t *sp; in qla_nvme_xmt_ls_rsp() local
386 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla_nvme_xmt_ls_rsp()
387 if (!sp) in qla_nvme_xmt_ls_rsp()
390 sp->type = SRB_NVME_LS; in qla_nvme_xmt_ls_rsp()
391 sp->name = "nvme_ls"; in qla_nvme_xmt_ls_rsp()
392 sp->done = qla_nvme_sp_lsrsp_done; in qla_nvme_xmt_ls_rsp()
393 sp->put_fn = qla_nvme_release_lsrsp_cmd_kref; in qla_nvme_xmt_ls_rsp()
394 sp->priv = (void *)uctx; in qla_nvme_xmt_ls_rsp()
395 sp->unsol_rsp = 1; in qla_nvme_xmt_ls_rsp()
396 uctx->sp = sp; in qla_nvme_xmt_ls_rsp()
398 nvme = &sp->u.iocb_cmd; in qla_nvme_xmt_ls_rsp()
419 rval = qla2x00_start_sp(sp); in qla_nvme_xmt_ls_rsp()
434 qla2x00_rel_sp(sp); in qla_nvme_xmt_ls_rsp()
456 if (!priv->sp) { in qla_nvme_ls_abort()
461 if (!kref_get_unless_zero(&priv->sp->cmd_kref)) { in qla_nvme_ls_abort()
481 srb_t *sp; in qla_nvme_ls_req() local
493 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla_nvme_ls_req()
494 if (!sp) in qla_nvme_ls_req()
497 sp->type = SRB_NVME_LS; in qla_nvme_ls_req()
498 sp->name = "nvme_ls"; in qla_nvme_ls_req()
499 sp->done = qla_nvme_sp_ls_done; in qla_nvme_ls_req()
500 sp->put_fn = qla_nvme_release_ls_cmd_kref; in qla_nvme_ls_req()
501 sp->priv = priv; in qla_nvme_ls_req()
502 priv->sp = sp; in qla_nvme_ls_req()
503 kref_init(&sp->cmd_kref); in qla_nvme_ls_req()
505 nvme = &sp->u.iocb_cmd; in qla_nvme_ls_req()
518 rval = qla2x00_start_sp(sp); in qla_nvme_ls_req()
522 sp->priv = NULL; in qla_nvme_ls_req()
523 priv->sp = NULL; in qla_nvme_ls_req()
524 qla2x00_rel_sp(sp); in qla_nvme_ls_req()
539 if (!priv->sp) { in qla_nvme_fcp_abort()
543 if (!kref_get_unless_zero(&priv->sp->cmd_kref)) { in qla_nvme_fcp_abort()
553 static inline int qla2x00_start_nvme_mq(srb_t *sp) in qla2x00_start_nvme_mq() argument
566 struct scsi_qla_host *vha = sp->fcport->vha; in qla2x00_start_nvme_mq()
568 struct qla_qpair *qpair = sp->qpair; in qla2x00_start_nvme_mq()
569 struct srb_iocb *nvme = &sp->u.iocb_cmd; in qla2x00_start_nvme_mq()
590 sp->iores.res_type = RESOURCE_IOCB | RESOURCE_EXCH; in qla2x00_start_nvme_mq()
591 sp->iores.exch_cnt = 1; in qla2x00_start_nvme_mq()
592 sp->iores.iocb_cnt = req_cnt; in qla2x00_start_nvme_mq()
593 if (qla_get_fw_resources(sp->qpair, &sp->iores)) { in qla2x00_start_nvme_mq()
629 req->outstanding_cmds[handle] = sp; in qla2x00_start_nvme_mq()
630 sp->handle = handle; in qla2x00_start_nvme_mq()
653 (sp->fcport->nvme_prli_service_param & in qla2x00_start_nvme_mq()
656 sp->fcport->nvme_first_burst_size) || in qla2x00_start_nvme_mq()
657 (sp->fcport->nvme_first_burst_size == 0)) in qla2x00_start_nvme_mq()
667 if (sp->fcport->edif.enable && fd->io_dir != 0) in qla2x00_start_nvme_mq()
677 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla2x00_start_nvme_mq()
678 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla2x00_start_nvme_mq()
679 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla2x00_start_nvme_mq()
680 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla2x00_start_nvme_mq()
681 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; in qla2x00_start_nvme_mq()
745 sp->qpair->cmd_cnt++; in qla2x00_start_nvme_mq()
756 qla_put_fw_resources(sp->qpair, &sp->iores); in qla2x00_start_nvme_mq()
772 srb_t *sp; in qla_nvme_post_cmd() local
809 sp = qla2xxx_get_qpair_sp(vha, qpair, fcport, GFP_ATOMIC); in qla_nvme_post_cmd()
810 if (!sp) in qla_nvme_post_cmd()
813 kref_init(&sp->cmd_kref); in qla_nvme_post_cmd()
815 sp->priv = priv; in qla_nvme_post_cmd()
816 priv->sp = sp; in qla_nvme_post_cmd()
817 sp->type = SRB_NVME_CMD; in qla_nvme_post_cmd()
818 sp->name = "nvme_cmd"; in qla_nvme_post_cmd()
819 sp->done = qla_nvme_sp_done; in qla_nvme_post_cmd()
820 sp->put_fn = qla_nvme_release_fcp_cmd_kref; in qla_nvme_post_cmd()
821 sp->qpair = qpair; in qla_nvme_post_cmd()
822 sp->vha = vha; in qla_nvme_post_cmd()
823 sp->cmd_sp = sp; in qla_nvme_post_cmd()
824 nvme = &sp->u.iocb_cmd; in qla_nvme_post_cmd()
827 rval = qla2x00_start_nvme_mq(sp); in qla_nvme_post_cmd()
831 sp->priv = NULL; in qla_nvme_post_cmd()
832 priv->sp = NULL; in qla_nvme_post_cmd()
833 qla2xxx_rel_qpair_sp(sp->qpair, sp); in qla_nvme_post_cmd()