• Home
  • Raw
  • Download

Lines Matching refs:sp

125 	struct srb *sp = container_of(kref, struct srb, cmd_kref);  in qla_nvme_release_fcp_cmd_kref()  local
126 struct nvme_private *priv = (struct nvme_private *)sp->priv; in qla_nvme_release_fcp_cmd_kref()
134 nvme = &sp->u.iocb_cmd; in qla_nvme_release_fcp_cmd_kref()
138 priv->sp = NULL; in qla_nvme_release_fcp_cmd_kref()
139 sp->priv = NULL; in qla_nvme_release_fcp_cmd_kref()
151 qla2xxx_rel_qpair_sp(sp->qpair, sp); in qla_nvme_release_fcp_cmd_kref()
156 struct srb *sp = container_of(kref, struct srb, cmd_kref); in qla_nvme_release_ls_cmd_kref() local
157 struct nvme_private *priv = (struct nvme_private *)sp->priv; in qla_nvme_release_ls_cmd_kref()
165 priv->sp = NULL; in qla_nvme_release_ls_cmd_kref()
166 sp->priv = NULL; in qla_nvme_release_ls_cmd_kref()
172 qla2x00_rel_sp(sp); in qla_nvme_release_ls_cmd_kref()
180 kref_put(&priv->sp->cmd_kref, qla_nvme_release_ls_cmd_kref); in qla_nvme_ls_complete()
183 static void qla_nvme_sp_ls_done(srb_t *sp, int res) in qla_nvme_sp_ls_done() argument
185 struct nvme_private *priv = sp->priv; in qla_nvme_sp_ls_done()
187 if (WARN_ON_ONCE(kref_read(&sp->cmd_kref) == 0)) in qla_nvme_sp_ls_done()
199 static void qla_nvme_sp_done(srb_t *sp, int res) in qla_nvme_sp_done() argument
201 struct nvme_private *priv = sp->priv; in qla_nvme_sp_done()
204 kref_put(&sp->cmd_kref, qla_nvme_release_fcp_cmd_kref); in qla_nvme_sp_done()
213 srb_t *sp = priv->sp; in qla_nvme_abort_work() local
214 fc_port_t *fcport = sp->fcport; in qla_nvme_abort_work()
220 __func__, sp, sp->handle, fcport, fcport->deleted); in qla_nvme_abort_work()
226 ql_log(ql_log_info, sp->fcport->vha, 0xffff, in qla_nvme_abort_work()
228 __func__, sp, sp->type); in qla_nvme_abort_work()
229 sp->done(sp, 0); in qla_nvme_abort_work()
233 rval = ha->isp_ops->abort_command(sp); in qla_nvme_abort_work()
238 sp, sp->handle, fcport, rval); in qla_nvme_abort_work()
242 kref_put(&sp->cmd_kref, sp->put_fn); in qla_nvme_abort_work()
252 if (!priv->sp) { in qla_nvme_ls_abort()
257 if (!kref_get_unless_zero(&priv->sp->cmd_kref)) { in qla_nvme_ls_abort()
277 srb_t *sp; in qla_nvme_ls_req() local
290 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla_nvme_ls_req()
291 if (!sp) in qla_nvme_ls_req()
294 sp->type = SRB_NVME_LS; in qla_nvme_ls_req()
295 sp->name = "nvme_ls"; in qla_nvme_ls_req()
296 sp->done = qla_nvme_sp_ls_done; in qla_nvme_ls_req()
297 sp->put_fn = qla_nvme_release_ls_cmd_kref; in qla_nvme_ls_req()
298 sp->priv = (void *)priv; in qla_nvme_ls_req()
299 priv->sp = sp; in qla_nvme_ls_req()
300 kref_init(&sp->cmd_kref); in qla_nvme_ls_req()
302 nvme = &sp->u.iocb_cmd; in qla_nvme_ls_req()
316 rval = qla2x00_start_sp(sp); in qla_nvme_ls_req()
320 wake_up(&sp->nvme_ls_waitq); in qla_nvme_ls_req()
321 sp->priv = NULL; in qla_nvme_ls_req()
322 priv->sp = NULL; in qla_nvme_ls_req()
323 qla2x00_rel_sp(sp); in qla_nvme_ls_req()
338 if (!priv->sp) { in qla_nvme_fcp_abort()
342 if (!kref_get_unless_zero(&priv->sp->cmd_kref)) { in qla_nvme_fcp_abort()
352 static inline int qla2x00_start_nvme_mq(srb_t *sp) in qla2x00_start_nvme_mq() argument
364 struct scsi_qla_host *vha = sp->fcport->vha; in qla2x00_start_nvme_mq()
366 struct qla_qpair *qpair = sp->qpair; in qla2x00_start_nvme_mq()
367 struct srb_iocb *nvme = &sp->u.iocb_cmd; in qla2x00_start_nvme_mq()
411 req->outstanding_cmds[handle] = sp; in qla2x00_start_nvme_mq()
412 sp->handle = handle; in qla2x00_start_nvme_mq()
435 (sp->fcport->nvme_prli_service_param & in qla2x00_start_nvme_mq()
438 sp->fcport->nvme_first_burst_size) || in qla2x00_start_nvme_mq()
439 (sp->fcport->nvme_first_burst_size == 0)) in qla2x00_start_nvme_mq()
450 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id); in qla2x00_start_nvme_mq()
451 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa; in qla2x00_start_nvme_mq()
452 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area; in qla2x00_start_nvme_mq()
453 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain; in qla2x00_start_nvme_mq()
454 cmd_pkt->vp_index = sp->fcport->vha->vp_idx; in qla2x00_start_nvme_mq()
533 srb_t *sp; in qla_nvme_post_cmd() local
556 sp = qla2xxx_get_qpair_sp(vha, qpair, fcport, GFP_ATOMIC); in qla_nvme_post_cmd()
557 if (!sp) in qla_nvme_post_cmd()
560 init_waitqueue_head(&sp->nvme_ls_waitq); in qla_nvme_post_cmd()
561 kref_init(&sp->cmd_kref); in qla_nvme_post_cmd()
563 sp->priv = (void *)priv; in qla_nvme_post_cmd()
564 priv->sp = sp; in qla_nvme_post_cmd()
565 sp->type = SRB_NVME_CMD; in qla_nvme_post_cmd()
566 sp->name = "nvme_cmd"; in qla_nvme_post_cmd()
567 sp->done = qla_nvme_sp_done; in qla_nvme_post_cmd()
568 sp->put_fn = qla_nvme_release_fcp_cmd_kref; in qla_nvme_post_cmd()
569 sp->qpair = qpair; in qla_nvme_post_cmd()
570 sp->vha = vha; in qla_nvme_post_cmd()
571 nvme = &sp->u.iocb_cmd; in qla_nvme_post_cmd()
574 rval = qla2x00_start_nvme_mq(sp); in qla_nvme_post_cmd()
578 wake_up(&sp->nvme_ls_waitq); in qla_nvme_post_cmd()
579 sp->priv = NULL; in qla_nvme_post_cmd()
580 priv->sp = NULL; in qla_nvme_post_cmd()
581 qla2xxx_rel_qpair_sp(sp->qpair, sp); in qla_nvme_post_cmd()