Lines Matching refs:lsop
767 struct nvmefc_ls_req_op *lsop; in nvme_fc_abort_lsops() local
773 list_for_each_entry(lsop, &rport->ls_req_list, lsreq_list) { in nvme_fc_abort_lsops()
774 if (!(lsop->flags & FCOP_FLAGS_TERMIO)) { in nvme_fc_abort_lsops()
775 lsop->flags |= FCOP_FLAGS_TERMIO; in nvme_fc_abort_lsops()
779 &lsop->ls_req); in nvme_fc_abort_lsops()
1037 __nvme_fc_finish_ls_req(struct nvmefc_ls_req_op *lsop) in __nvme_fc_finish_ls_req() argument
1039 struct nvme_fc_rport *rport = lsop->rport; in __nvme_fc_finish_ls_req()
1040 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_finish_ls_req()
1045 if (!lsop->req_queued) { in __nvme_fc_finish_ls_req()
1050 list_del(&lsop->lsreq_list); in __nvme_fc_finish_ls_req()
1052 lsop->req_queued = false; in __nvme_fc_finish_ls_req()
1065 struct nvmefc_ls_req_op *lsop, in __nvme_fc_send_ls_req() argument
1068 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_send_ls_req()
1079 lsop->rport = rport; in __nvme_fc_send_ls_req()
1080 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1081 INIT_LIST_HEAD(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1082 init_completion(&lsop->ls_done); in __nvme_fc_send_ls_req()
1095 list_add_tail(&lsop->lsreq_list, &rport->ls_req_list); in __nvme_fc_send_ls_req()
1097 lsop->req_queued = true; in __nvme_fc_send_ls_req()
1109 lsop->ls_error = ret; in __nvme_fc_send_ls_req()
1111 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1112 list_del(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1126 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_send_ls_req_done() local
1128 lsop->ls_error = status; in nvme_fc_send_ls_req_done()
1129 complete(&lsop->ls_done); in nvme_fc_send_ls_req_done()
1133 nvme_fc_send_ls_req(struct nvme_fc_rport *rport, struct nvmefc_ls_req_op *lsop) in nvme_fc_send_ls_req() argument
1135 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in nvme_fc_send_ls_req()
1139 ret = __nvme_fc_send_ls_req(rport, lsop, nvme_fc_send_ls_req_done); in nvme_fc_send_ls_req()
1148 wait_for_completion(&lsop->ls_done); in nvme_fc_send_ls_req()
1150 __nvme_fc_finish_ls_req(lsop); in nvme_fc_send_ls_req()
1152 ret = lsop->ls_error; in nvme_fc_send_ls_req()
1167 struct nvmefc_ls_req_op *lsop, in nvme_fc_send_ls_req_async() argument
1172 return __nvme_fc_send_ls_req(rport, lsop, done); in nvme_fc_send_ls_req_async()
1179 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_admin_queue() local
1186 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_admin_queue()
1189 if (!lsop) { in nvme_fc_connect_admin_queue()
1197 assoc_rqst = (struct fcnvme_ls_cr_assoc_rqst *)&lsop[1]; in nvme_fc_connect_admin_queue()
1199 lsreq = &lsop->ls_req; in nvme_fc_connect_admin_queue()
1225 lsop->queue = queue; in nvme_fc_connect_admin_queue()
1232 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_admin_queue()
1283 kfree(lsop); in nvme_fc_connect_admin_queue()
1296 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_queue() local
1302 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_queue()
1305 if (!lsop) { in nvme_fc_connect_queue()
1313 conn_rqst = (struct fcnvme_ls_cr_conn_rqst *)&lsop[1]; in nvme_fc_connect_queue()
1315 lsreq = &lsop->ls_req; in nvme_fc_connect_queue()
1340 lsop->queue = queue; in nvme_fc_connect_queue()
1347 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_queue()
1385 kfree(lsop); in nvme_fc_connect_queue()
1397 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_disconnect_assoc_done() local
1399 __nvme_fc_finish_ls_req(lsop); in nvme_fc_disconnect_assoc_done()
1403 kfree(lsop); in nvme_fc_disconnect_assoc_done()
1428 struct nvmefc_ls_req_op *lsop; in nvme_fc_xmt_disconnect_assoc() local
1432 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_xmt_disconnect_assoc()
1435 if (!lsop) { in nvme_fc_xmt_disconnect_assoc()
1443 discon_rqst = (struct fcnvme_ls_disconnect_assoc_rqst *)&lsop[1]; in nvme_fc_xmt_disconnect_assoc()
1445 lsreq = &lsop->ls_req; in nvme_fc_xmt_disconnect_assoc()
1454 ret = nvme_fc_send_ls_req_async(ctrl->rport, lsop, in nvme_fc_xmt_disconnect_assoc()
1457 kfree(lsop); in nvme_fc_xmt_disconnect_assoc()
1463 struct nvmefc_ls_rcv_op *lsop = lsrsp->nvme_fc_private; in nvme_fc_xmt_ls_rsp_done() local
1464 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp_done()
1469 list_del(&lsop->lsrcv_list); in nvme_fc_xmt_ls_rsp_done()
1472 fc_dma_sync_single_for_cpu(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1473 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_done()
1474 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1475 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_done()
1477 kfree(lsop); in nvme_fc_xmt_ls_rsp_done()
1483 nvme_fc_xmt_ls_rsp(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_xmt_ls_rsp() argument
1485 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp()
1487 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_xmt_ls_rsp()
1490 fc_dma_sync_single_for_device(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp()
1491 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp()
1494 lsop->lsrsp); in nvme_fc_xmt_ls_rsp()
1499 nvme_fc_xmt_ls_rsp_done(lsop->lsrsp); in nvme_fc_xmt_ls_rsp()
1506 struct nvmefc_ls_rcv_op *lsop) in nvme_fc_match_disconn_ls() argument
1509 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_match_disconn_ls()
1523 ctrl->rcv_disconn = lsop; in nvme_fc_match_disconn_ls()
1558 nvme_fc_ls_disconnect_assoc(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_ls_disconnect_assoc() argument
1560 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_ls_disconnect_assoc()
1562 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1564 &lsop->rspbuf->rsp_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1570 ret = nvmefc_vldt_lsreq_discon_assoc(lsop->rqstdatalen, rqst); in nvme_fc_ls_disconnect_assoc()
1573 ctrl = nvme_fc_match_disconn_ls(rport, lsop); in nvme_fc_ls_disconnect_assoc()
1582 lsop->lsrsp->rsplen = nvme_fc_format_rjt(acc, in nvme_fc_ls_disconnect_assoc()
1593 lsop->lsrsp->rsplen = sizeof(*acc); in nvme_fc_ls_disconnect_assoc()
1621 nvme_fc_handle_ls_rqst(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_handle_ls_rqst() argument
1623 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst()
1626 lsop->lsrsp->nvme_fc_private = lsop; in nvme_fc_handle_ls_rqst()
1627 lsop->lsrsp->rspbuf = lsop->rspbuf; in nvme_fc_handle_ls_rqst()
1628 lsop->lsrsp->rspdma = lsop->rspdma; in nvme_fc_handle_ls_rqst()
1629 lsop->lsrsp->done = nvme_fc_xmt_ls_rsp_done; in nvme_fc_handle_ls_rqst()
1631 lsop->lsrsp->rsplen = 0; in nvme_fc_handle_ls_rqst()
1640 ret = nvme_fc_ls_disconnect_assoc(lsop); in nvme_fc_handle_ls_rqst()
1643 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1644 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1649 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1650 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1654 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1655 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1669 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_handle_ls_rqst_work() local
1676 list_for_each_entry(lsop, &rport->ls_rcv_list, lsrcv_list) { in nvme_fc_handle_ls_rqst_work()
1677 if (lsop->handled) in nvme_fc_handle_ls_rqst_work()
1680 lsop->handled = true; in nvme_fc_handle_ls_rqst_work()
1683 sendrsp = nvme_fc_handle_ls_rqst(lsop); in nvme_fc_handle_ls_rqst_work()
1686 w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst_work()
1687 lsop->lsrsp->rsplen = nvme_fc_format_rjt( in nvme_fc_handle_ls_rqst_work()
1688 lsop->rspbuf, in nvme_fc_handle_ls_rqst_work()
1689 sizeof(*lsop->rspbuf), in nvme_fc_handle_ls_rqst_work()
1695 nvme_fc_xmt_ls_rsp(lsop); in nvme_fc_handle_ls_rqst_work()
1728 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_rcv_ls_req() local
1753 lsop = kzalloc(sizeof(*lsop) + in nvme_fc_rcv_ls_req()
1757 if (!lsop) { in nvme_fc_rcv_ls_req()
1765 lsop->rqstbuf = (union nvmefc_ls_requests *)&lsop[1]; in nvme_fc_rcv_ls_req()
1766 lsop->rspbuf = (union nvmefc_ls_responses *)&lsop->rqstbuf[1]; in nvme_fc_rcv_ls_req()
1768 lsop->rspdma = fc_dma_map_single(lport->dev, lsop->rspbuf, in nvme_fc_rcv_ls_req()
1769 sizeof(*lsop->rspbuf), in nvme_fc_rcv_ls_req()
1771 if (fc_dma_mapping_error(lport->dev, lsop->rspdma)) { in nvme_fc_rcv_ls_req()
1780 lsop->rport = rport; in nvme_fc_rcv_ls_req()
1781 lsop->lsrsp = lsrsp; in nvme_fc_rcv_ls_req()
1783 memcpy(lsop->rqstbuf, lsreqbuf, lsreqbuf_len); in nvme_fc_rcv_ls_req()
1784 lsop->rqstdatalen = lsreqbuf_len; in nvme_fc_rcv_ls_req()
1792 list_add_tail(&lsop->lsrcv_list, &rport->ls_rcv_list); in nvme_fc_rcv_ls_req()
1800 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_rcv_ls_req()
1801 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_rcv_ls_req()
1803 kfree(lsop); in nvme_fc_rcv_ls_req()