Lines Matching refs:lsop

761 	struct nvmefc_ls_req_op *lsop;  in nvme_fc_abort_lsops()  local
767 list_for_each_entry(lsop, &rport->ls_req_list, lsreq_list) { in nvme_fc_abort_lsops()
768 if (!(lsop->flags & FCOP_FLAGS_TERMIO)) { in nvme_fc_abort_lsops()
769 lsop->flags |= FCOP_FLAGS_TERMIO; in nvme_fc_abort_lsops()
773 &lsop->ls_req); in nvme_fc_abort_lsops()
1031 __nvme_fc_finish_ls_req(struct nvmefc_ls_req_op *lsop) in __nvme_fc_finish_ls_req() argument
1033 struct nvme_fc_rport *rport = lsop->rport; in __nvme_fc_finish_ls_req()
1034 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_finish_ls_req()
1039 if (!lsop->req_queued) { in __nvme_fc_finish_ls_req()
1044 list_del(&lsop->lsreq_list); in __nvme_fc_finish_ls_req()
1046 lsop->req_queued = false; in __nvme_fc_finish_ls_req()
1059 struct nvmefc_ls_req_op *lsop, in __nvme_fc_send_ls_req() argument
1062 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_send_ls_req()
1073 lsop->rport = rport; in __nvme_fc_send_ls_req()
1074 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1075 INIT_LIST_HEAD(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1076 init_completion(&lsop->ls_done); in __nvme_fc_send_ls_req()
1089 list_add_tail(&lsop->lsreq_list, &rport->ls_req_list); in __nvme_fc_send_ls_req()
1091 lsop->req_queued = true; in __nvme_fc_send_ls_req()
1103 lsop->ls_error = ret; in __nvme_fc_send_ls_req()
1105 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1106 list_del(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1120 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_send_ls_req_done() local
1122 lsop->ls_error = status; in nvme_fc_send_ls_req_done()
1123 complete(&lsop->ls_done); in nvme_fc_send_ls_req_done()
1127 nvme_fc_send_ls_req(struct nvme_fc_rport *rport, struct nvmefc_ls_req_op *lsop) in nvme_fc_send_ls_req() argument
1129 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in nvme_fc_send_ls_req()
1133 ret = __nvme_fc_send_ls_req(rport, lsop, nvme_fc_send_ls_req_done); in nvme_fc_send_ls_req()
1142 wait_for_completion(&lsop->ls_done); in nvme_fc_send_ls_req()
1144 __nvme_fc_finish_ls_req(lsop); in nvme_fc_send_ls_req()
1146 ret = lsop->ls_error; in nvme_fc_send_ls_req()
1161 struct nvmefc_ls_req_op *lsop, in nvme_fc_send_ls_req_async() argument
1166 return __nvme_fc_send_ls_req(rport, lsop, done); in nvme_fc_send_ls_req_async()
1173 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_admin_queue() local
1180 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_admin_queue()
1183 if (!lsop) { in nvme_fc_connect_admin_queue()
1191 assoc_rqst = (struct fcnvme_ls_cr_assoc_rqst *)&lsop[1]; in nvme_fc_connect_admin_queue()
1193 lsreq = &lsop->ls_req; in nvme_fc_connect_admin_queue()
1219 lsop->queue = queue; in nvme_fc_connect_admin_queue()
1226 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_admin_queue()
1277 kfree(lsop); in nvme_fc_connect_admin_queue()
1290 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_queue() local
1296 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_queue()
1299 if (!lsop) { in nvme_fc_connect_queue()
1307 conn_rqst = (struct fcnvme_ls_cr_conn_rqst *)&lsop[1]; in nvme_fc_connect_queue()
1309 lsreq = &lsop->ls_req; in nvme_fc_connect_queue()
1334 lsop->queue = queue; in nvme_fc_connect_queue()
1341 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_queue()
1379 kfree(lsop); in nvme_fc_connect_queue()
1391 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_disconnect_assoc_done() local
1393 __nvme_fc_finish_ls_req(lsop); in nvme_fc_disconnect_assoc_done()
1397 kfree(lsop); in nvme_fc_disconnect_assoc_done()
1422 struct nvmefc_ls_req_op *lsop; in nvme_fc_xmt_disconnect_assoc() local
1426 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_xmt_disconnect_assoc()
1429 if (!lsop) { in nvme_fc_xmt_disconnect_assoc()
1437 discon_rqst = (struct fcnvme_ls_disconnect_assoc_rqst *)&lsop[1]; in nvme_fc_xmt_disconnect_assoc()
1439 lsreq = &lsop->ls_req; in nvme_fc_xmt_disconnect_assoc()
1448 ret = nvme_fc_send_ls_req_async(ctrl->rport, lsop, in nvme_fc_xmt_disconnect_assoc()
1451 kfree(lsop); in nvme_fc_xmt_disconnect_assoc()
1457 struct nvmefc_ls_rcv_op *lsop = lsrsp->nvme_fc_private; in nvme_fc_xmt_ls_rsp_done() local
1458 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp_done()
1463 list_del(&lsop->lsrcv_list); in nvme_fc_xmt_ls_rsp_done()
1466 fc_dma_sync_single_for_cpu(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1467 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_done()
1468 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1469 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_done()
1471 kfree(lsop->rspbuf); in nvme_fc_xmt_ls_rsp_done()
1472 kfree(lsop->rqstbuf); in nvme_fc_xmt_ls_rsp_done()
1473 kfree(lsop); in nvme_fc_xmt_ls_rsp_done()
1479 nvme_fc_xmt_ls_rsp(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_xmt_ls_rsp() argument
1481 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp()
1483 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_xmt_ls_rsp()
1486 fc_dma_sync_single_for_device(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp()
1487 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp()
1490 lsop->lsrsp); in nvme_fc_xmt_ls_rsp()
1495 nvme_fc_xmt_ls_rsp_done(lsop->lsrsp); in nvme_fc_xmt_ls_rsp()
1502 struct nvmefc_ls_rcv_op *lsop) in nvme_fc_match_disconn_ls() argument
1505 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_match_disconn_ls()
1519 ctrl->rcv_disconn = lsop; in nvme_fc_match_disconn_ls()
1554 nvme_fc_ls_disconnect_assoc(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_ls_disconnect_assoc() argument
1556 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_ls_disconnect_assoc()
1558 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1560 &lsop->rspbuf->rsp_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1566 ret = nvmefc_vldt_lsreq_discon_assoc(lsop->rqstdatalen, rqst); in nvme_fc_ls_disconnect_assoc()
1569 ctrl = nvme_fc_match_disconn_ls(rport, lsop); in nvme_fc_ls_disconnect_assoc()
1578 lsop->lsrsp->rsplen = nvme_fc_format_rjt(acc, in nvme_fc_ls_disconnect_assoc()
1589 lsop->lsrsp->rsplen = sizeof(*acc); in nvme_fc_ls_disconnect_assoc()
1617 nvme_fc_handle_ls_rqst(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_handle_ls_rqst() argument
1619 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst()
1622 lsop->lsrsp->nvme_fc_private = lsop; in nvme_fc_handle_ls_rqst()
1623 lsop->lsrsp->rspbuf = lsop->rspbuf; in nvme_fc_handle_ls_rqst()
1624 lsop->lsrsp->rspdma = lsop->rspdma; in nvme_fc_handle_ls_rqst()
1625 lsop->lsrsp->done = nvme_fc_xmt_ls_rsp_done; in nvme_fc_handle_ls_rqst()
1627 lsop->lsrsp->rsplen = 0; in nvme_fc_handle_ls_rqst()
1636 ret = nvme_fc_ls_disconnect_assoc(lsop); in nvme_fc_handle_ls_rqst()
1639 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1640 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1645 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1646 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1650 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1651 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1665 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_handle_ls_rqst_work() local
1672 list_for_each_entry(lsop, &rport->ls_rcv_list, lsrcv_list) { in nvme_fc_handle_ls_rqst_work()
1673 if (lsop->handled) in nvme_fc_handle_ls_rqst_work()
1676 lsop->handled = true; in nvme_fc_handle_ls_rqst_work()
1679 sendrsp = nvme_fc_handle_ls_rqst(lsop); in nvme_fc_handle_ls_rqst_work()
1682 w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst_work()
1683 lsop->lsrsp->rsplen = nvme_fc_format_rjt( in nvme_fc_handle_ls_rqst_work()
1684 lsop->rspbuf, in nvme_fc_handle_ls_rqst_work()
1685 sizeof(*lsop->rspbuf), in nvme_fc_handle_ls_rqst_work()
1691 nvme_fc_xmt_ls_rsp(lsop); in nvme_fc_handle_ls_rqst_work()
1733 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_rcv_ls_req() local
1758 lsop = kzalloc(sizeof(*lsop), GFP_KERNEL); in nvme_fc_rcv_ls_req()
1759 if (!lsop) { in nvme_fc_rcv_ls_req()
1765 lsop->rqstbuf = kzalloc(sizeof(*lsop->rqstbuf), GFP_KERNEL); in nvme_fc_rcv_ls_req()
1766 lsop->rspbuf = kzalloc(sizeof(*lsop->rspbuf), GFP_KERNEL); in nvme_fc_rcv_ls_req()
1767 if (!lsop->rqstbuf || !lsop->rspbuf) { in nvme_fc_rcv_ls_req()
1773 lsop->rspdma = fc_dma_map_single(lport->dev, lsop->rspbuf, in nvme_fc_rcv_ls_req()
1774 sizeof(*lsop->rspbuf), in nvme_fc_rcv_ls_req()
1776 if (fc_dma_mapping_error(lport->dev, lsop->rspdma)) { in nvme_fc_rcv_ls_req()
1785 lsop->rport = rport; in nvme_fc_rcv_ls_req()
1786 lsop->lsrsp = lsrsp; in nvme_fc_rcv_ls_req()
1788 memcpy(lsop->rqstbuf, lsreqbuf, lsreqbuf_len); in nvme_fc_rcv_ls_req()
1789 lsop->rqstdatalen = lsreqbuf_len; in nvme_fc_rcv_ls_req()
1797 list_add_tail(&lsop->lsrcv_list, &rport->ls_rcv_list); in nvme_fc_rcv_ls_req()
1805 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_rcv_ls_req()
1806 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_rcv_ls_req()
1808 kfree(lsop->rspbuf); in nvme_fc_rcv_ls_req()
1809 kfree(lsop->rqstbuf); in nvme_fc_rcv_ls_req()
1810 kfree(lsop); in nvme_fc_rcv_ls_req()