Lines Matching refs:lport

139 	struct nvme_fc_lport		*lport;  member
156 struct nvme_fc_lport *lport; member
246 struct nvme_fc_lport *lport = in nvme_fc_free_lport() local
250 WARN_ON(lport->localport.port_state != FC_OBJSTATE_DELETED); in nvme_fc_free_lport()
251 WARN_ON(!list_empty(&lport->endp_list)); in nvme_fc_free_lport()
255 list_del(&lport->port_list); in nvme_fc_free_lport()
260 ida_simple_remove(&nvme_fc_local_port_cnt, lport->localport.port_num); in nvme_fc_free_lport()
261 ida_destroy(&lport->endp_cnt); in nvme_fc_free_lport()
263 put_device(lport->dev); in nvme_fc_free_lport()
265 kfree(lport); in nvme_fc_free_lport()
269 nvme_fc_lport_put(struct nvme_fc_lport *lport) in nvme_fc_lport_put() argument
271 kref_put(&lport->ref, nvme_fc_free_lport); in nvme_fc_lport_put()
275 nvme_fc_lport_get(struct nvme_fc_lport *lport) in nvme_fc_lport_get() argument
277 return kref_get_unless_zero(&lport->ref); in nvme_fc_lport_get()
286 struct nvme_fc_lport *lport; in nvme_fc_attach_to_unreg_lport() local
291 list_for_each_entry(lport, &nvme_fc_lport_list, port_list) { in nvme_fc_attach_to_unreg_lport()
292 if (lport->localport.node_name != pinfo->node_name || in nvme_fc_attach_to_unreg_lport()
293 lport->localport.port_name != pinfo->port_name) in nvme_fc_attach_to_unreg_lport()
296 if (lport->dev != dev) { in nvme_fc_attach_to_unreg_lport()
297 lport = ERR_PTR(-EXDEV); in nvme_fc_attach_to_unreg_lport()
301 if (lport->localport.port_state != FC_OBJSTATE_DELETED) { in nvme_fc_attach_to_unreg_lport()
302 lport = ERR_PTR(-EEXIST); in nvme_fc_attach_to_unreg_lport()
306 if (!nvme_fc_lport_get(lport)) { in nvme_fc_attach_to_unreg_lport()
311 lport = NULL; in nvme_fc_attach_to_unreg_lport()
317 lport->ops = ops; in nvme_fc_attach_to_unreg_lport()
318 lport->localport.port_role = pinfo->port_role; in nvme_fc_attach_to_unreg_lport()
319 lport->localport.port_id = pinfo->port_id; in nvme_fc_attach_to_unreg_lport()
320 lport->localport.port_state = FC_OBJSTATE_ONLINE; in nvme_fc_attach_to_unreg_lport()
324 return lport; in nvme_fc_attach_to_unreg_lport()
327 lport = NULL; in nvme_fc_attach_to_unreg_lport()
332 return lport; in nvme_fc_attach_to_unreg_lport()
463 struct nvme_fc_lport *lport = localport_to_lport(portptr); in nvme_fc_unregister_localport() local
479 if (atomic_read(&lport->act_rport_cnt) == 0) in nvme_fc_unregister_localport()
480 lport->ops->localport_delete(&lport->localport); in nvme_fc_unregister_localport()
482 nvme_fc_lport_put(lport); in nvme_fc_unregister_localport()
499 nvme_fc_signal_discovery_scan(struct nvme_fc_lport *lport, in nvme_fc_signal_discovery_scan() argument
511 lport->localport.node_name, lport->localport.port_name); in nvme_fc_signal_discovery_scan()
523 struct nvme_fc_lport *lport = in nvme_fc_free_rport() local
536 ida_simple_remove(&lport->endp_cnt, rport->remoteport.port_num); in nvme_fc_free_rport()
540 nvme_fc_lport_put(lport); in nvme_fc_free_rport()
587 nvme_fc_attach_to_suspended_rport(struct nvme_fc_lport *lport, in nvme_fc_attach_to_suspended_rport() argument
596 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_attach_to_suspended_rport()
674 struct nvme_fc_lport *lport = localport_to_lport(localport); in nvme_fc_register_remoteport() local
679 if (!nvme_fc_lport_get(lport)) { in nvme_fc_register_remoteport()
689 newrec = nvme_fc_attach_to_suspended_rport(lport, pinfo); in nvme_fc_register_remoteport()
698 nvme_fc_lport_put(lport); in nvme_fc_register_remoteport()
700 nvme_fc_signal_discovery_scan(lport, newrec); in nvme_fc_register_remoteport()
707 newrec = kmalloc((sizeof(*newrec) + lport->ops->remote_priv_sz), in nvme_fc_register_remoteport()
714 idx = ida_simple_get(&lport->endp_cnt, 0, 0, GFP_KERNEL); in nvme_fc_register_remoteport()
727 newrec->remoteport.localport = &lport->localport; in nvme_fc_register_remoteport()
729 newrec->dev = lport->dev; in nvme_fc_register_remoteport()
730 newrec->lport = lport; in nvme_fc_register_remoteport()
731 if (lport->ops->remote_priv_sz) in nvme_fc_register_remoteport()
745 list_add_tail(&newrec->endp_list, &lport->endp_list); in nvme_fc_register_remoteport()
748 nvme_fc_signal_discovery_scan(lport, newrec); in nvme_fc_register_remoteport()
756 nvme_fc_lport_put(lport); in nvme_fc_register_remoteport()
776 rport->lport->ops->ls_abort(&rport->lport->localport, in nvme_fc_abort_lsops()
886 rport->lport->ops->remoteport_delete(portptr); in nvme_fc_unregister_remoteport()
912 nvme_fc_signal_discovery_scan(rport->lport, rport); in nvme_fc_rescan_remoteport()
1100 ret = rport->lport->ops->ls_req(&rport->lport->localport, in __nvme_fc_send_ls_req()
1187 ctrl->lport->ops->lsrqst_priv_sz), GFP_KERNEL); in nvme_fc_connect_admin_queue()
1199 if (ctrl->lport->ops->lsrqst_priv_sz) in nvme_fc_connect_admin_queue()
1303 ctrl->lport->ops->lsrqst_priv_sz), GFP_KERNEL); in nvme_fc_connect_queue()
1315 if (ctrl->lport->ops->lsrqst_priv_sz) in nvme_fc_connect_queue()
1433 ctrl->lport->ops->lsrqst_priv_sz), GFP_KERNEL); in nvme_fc_xmt_disconnect_assoc()
1445 if (ctrl->lport->ops->lsrqst_priv_sz) in nvme_fc_xmt_disconnect_assoc()
1464 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_xmt_ls_rsp_done() local
1471 fc_dma_sync_single_for_cpu(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1473 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1485 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_xmt_ls_rsp() local
1489 fc_dma_sync_single_for_device(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp()
1492 ret = lport->ops->xmt_ls_rsp(&lport->localport, &rport->remoteport, in nvme_fc_xmt_ls_rsp()
1495 dev_warn(lport->dev, in nvme_fc_xmt_ls_rsp()
1536 dev_info(rport->lport->dev, in nvme_fc_match_disconn_ls()
1578 dev_info(rport->lport->dev, in nvme_fc_ls_disconnect_assoc()
1725 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_rcv_ls_req() local
1734 if (!lport->ops->xmt_ls_rsp) { in nvme_fc_rcv_ls_req()
1735 dev_info(lport->dev, in nvme_fc_rcv_ls_req()
1744 dev_info(lport->dev, in nvme_fc_rcv_ls_req()
1757 dev_info(lport->dev, in nvme_fc_rcv_ls_req()
1767 lsop->rspdma = fc_dma_map_single(lport->dev, lsop->rspbuf, in nvme_fc_rcv_ls_req()
1770 if (fc_dma_mapping_error(lport->dev, lsop->rspdma)) { in nvme_fc_rcv_ls_req()
1771 dev_info(lport->dev, in nvme_fc_rcv_ls_req()
1799 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_rcv_ls_req()
1816 fc_dma_unmap_single(ctrl->lport->dev, op->fcp_req.rspdma, in __nvme_fc_exit_request()
1818 fc_dma_unmap_single(ctrl->lport->dev, op->fcp_req.cmddma, in __nvme_fc_exit_request()
1852 ctrl->lport->ops->fcp_abort(&ctrl->lport->localport, in __nvme_fc_abort_op()
1945 fc_dma_sync_single_for_cpu(ctrl->lport->dev, op->fcp_req.rspdma, in nvme_fc_fcpio_done()
2082 op->fcp_req.cmddma = fc_dma_map_single(ctrl->lport->dev, in __nvme_fc_init_request()
2084 if (fc_dma_mapping_error(ctrl->lport->dev, op->fcp_req.cmddma)) { in __nvme_fc_init_request()
2091 op->fcp_req.rspdma = fc_dma_map_single(ctrl->lport->dev, in __nvme_fc_init_request()
2094 if (fc_dma_mapping_error(ctrl->lport->dev, op->fcp_req.rspdma)) { in __nvme_fc_init_request()
2135 if (ctrl->lport->ops->fcprqst_priv_sz) { in nvme_fc_init_aen_ops()
2136 private = kzalloc(ctrl->lport->ops->fcprqst_priv_sz, in nvme_fc_init_aen_ops()
2269 if (ctrl->lport->ops->delete_queue) in __nvme_fc_delete_hw_queue()
2270 ctrl->lport->ops->delete_queue(&ctrl->lport->localport, qidx, in __nvme_fc_delete_hw_queue()
2291 if (ctrl->lport->ops->create_queue) in __nvme_fc_create_hw_queue()
2292 ret = ctrl->lport->ops->create_queue(&ctrl->lport->localport, in __nvme_fc_create_hw_queue()
2572 freq->sg_cnt = fc_dma_map_sg(ctrl->lport->dev, freq->sg_table.sgl, in nvme_fc_map_data()
2595 fc_dma_unmap_sg(ctrl->lport->dev, freq->sg_table.sgl, op->nents, in nvme_fc_unmap_data()
2696 fc_dma_sync_single_for_device(ctrl->lport->dev, op->fcp_req.cmddma, in nvme_fc_start_fcp_op()
2705 ret = ctrl->lport->ops->fcp_io(&ctrl->lport->localport, in nvme_fc_start_fcp_op()
2838 ctrl->lport->ops->max_hw_queues); in nvme_fc_create_io_queues()
2860 ctrl->lport->ops->fcprqst_priv_sz); in nvme_fc_create_io_queues()
2912 ctrl->lport->ops->max_hw_queues); in nvme_fc_recreate_io_queues()
2961 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_rport_active_on_lport() local
2963 atomic_inc(&lport->act_rport_cnt); in nvme_fc_rport_active_on_lport()
2969 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_rport_inactive_on_lport() local
2972 cnt = atomic_dec_return(&lport->act_rport_cnt); in nvme_fc_rport_inactive_on_lport()
2973 if (cnt == 0 && lport->localport.port_state == FC_OBJSTATE_DELETED) in nvme_fc_rport_inactive_on_lport()
2974 lport->ops->localport_delete(&lport->localport); in nvme_fc_rport_inactive_on_lport()
2997 struct nvme_fc_lport *lport = rport->lport; in nvme_fc_ctlr_inactive_on_rport() local
3005 lport->ops->remoteport_delete(&rport->remoteport); in nvme_fc_ctlr_inactive_on_rport()
3036 ctrl->cnum, ctrl->lport->localport.port_name, in nvme_fc_create_association()
3072 ctrl->ctrl.max_segments = ctrl->lport->ops->max_sgl_segments; in nvme_fc_create_association()
3390 struct nvme_fc_lport *lport, struct nvme_fc_rport *rport) in nvme_fc_init_ctrl() argument
3435 if (lport->dev) in nvme_fc_init_ctrl()
3436 ctrl->ctrl.numa_node = dev_to_node(lport->dev); in nvme_fc_init_ctrl()
3440 ctrl->lport = lport; in nvme_fc_init_ctrl()
3442 ctrl->dev = lport->dev; in nvme_fc_init_ctrl()
3457 lport->ops->max_hw_queues); in nvme_fc_init_ctrl()
3479 ctrl->lport->ops->fcprqst_priv_sz); in nvme_fc_init_ctrl()
3652 struct nvme_fc_lport *lport; in nvme_fc_create_ctrl() local
3670 list_for_each_entry(lport, &nvme_fc_lport_list, port_list) { in nvme_fc_create_ctrl()
3671 if (lport->localport.node_name != laddr.nn || in nvme_fc_create_ctrl()
3672 lport->localport.port_name != laddr.pn || in nvme_fc_create_ctrl()
3673 lport->localport.port_state != FC_OBJSTATE_ONLINE) in nvme_fc_create_ctrl()
3676 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_create_ctrl()
3688 ctrl = nvme_fc_init_ctrl(dev, opts, lport, rport); in nvme_fc_create_ctrl()
3718 struct nvme_fc_lport *lport; in nvme_fc_nvme_discovery_store() local
3724 list_for_each_entry(lport, &nvme_fc_lport_list, port_list) { in nvme_fc_nvme_discovery_store()
3725 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_nvme_discovery_store()
3726 if (!nvme_fc_lport_get(lport)) in nvme_fc_nvme_discovery_store()
3738 nvme_fc_lport_put(lport); in nvme_fc_nvme_discovery_store()
3760 lport = rport->lport; in nvme_fc_nvme_discovery_store()
3762 nvme_fc_signal_discovery_scan(lport, rport); in nvme_fc_nvme_discovery_store()
3764 nvme_fc_lport_put(lport); in nvme_fc_nvme_discovery_store()
3867 struct nvme_fc_lport *lport; in nvme_fc_cleanup_for_unload() local
3870 list_for_each_entry(lport, &nvme_fc_lport_list, port_list) { in nvme_fc_cleanup_for_unload()
3871 list_for_each_entry(rport, &lport->endp_list, endp_list) { in nvme_fc_cleanup_for_unload()