Lines Matching refs:lsop
768 struct nvmefc_ls_req_op *lsop; in nvme_fc_abort_lsops() local
774 list_for_each_entry(lsop, &rport->ls_req_list, lsreq_list) { in nvme_fc_abort_lsops()
775 if (!(lsop->flags & FCOP_FLAGS_TERMIO)) { in nvme_fc_abort_lsops()
776 lsop->flags |= FCOP_FLAGS_TERMIO; in nvme_fc_abort_lsops()
780 &lsop->ls_req); in nvme_fc_abort_lsops()
1038 __nvme_fc_finish_ls_req(struct nvmefc_ls_req_op *lsop) in __nvme_fc_finish_ls_req() argument
1040 struct nvme_fc_rport *rport = lsop->rport; in __nvme_fc_finish_ls_req()
1041 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_finish_ls_req()
1046 if (!lsop->req_queued) { in __nvme_fc_finish_ls_req()
1051 list_del(&lsop->lsreq_list); in __nvme_fc_finish_ls_req()
1053 lsop->req_queued = false; in __nvme_fc_finish_ls_req()
1066 struct nvmefc_ls_req_op *lsop, in __nvme_fc_send_ls_req() argument
1069 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_send_ls_req()
1080 lsop->rport = rport; in __nvme_fc_send_ls_req()
1081 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1082 INIT_LIST_HEAD(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1083 init_completion(&lsop->ls_done); in __nvme_fc_send_ls_req()
1096 list_add_tail(&lsop->lsreq_list, &rport->ls_req_list); in __nvme_fc_send_ls_req()
1098 lsop->req_queued = true; in __nvme_fc_send_ls_req()
1110 lsop->ls_error = ret; in __nvme_fc_send_ls_req()
1112 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1113 list_del(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1127 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_send_ls_req_done() local
1129 lsop->ls_error = status; in nvme_fc_send_ls_req_done()
1130 complete(&lsop->ls_done); in nvme_fc_send_ls_req_done()
1134 nvme_fc_send_ls_req(struct nvme_fc_rport *rport, struct nvmefc_ls_req_op *lsop) in nvme_fc_send_ls_req() argument
1136 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in nvme_fc_send_ls_req()
1140 ret = __nvme_fc_send_ls_req(rport, lsop, nvme_fc_send_ls_req_done); in nvme_fc_send_ls_req()
1149 wait_for_completion(&lsop->ls_done); in nvme_fc_send_ls_req()
1151 __nvme_fc_finish_ls_req(lsop); in nvme_fc_send_ls_req()
1153 ret = lsop->ls_error; in nvme_fc_send_ls_req()
1168 struct nvmefc_ls_req_op *lsop, in nvme_fc_send_ls_req_async() argument
1173 return __nvme_fc_send_ls_req(rport, lsop, done); in nvme_fc_send_ls_req_async()
1180 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_admin_queue() local
1187 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_admin_queue()
1190 if (!lsop) { in nvme_fc_connect_admin_queue()
1198 assoc_rqst = (struct fcnvme_ls_cr_assoc_rqst *)&lsop[1]; in nvme_fc_connect_admin_queue()
1200 lsreq = &lsop->ls_req; in nvme_fc_connect_admin_queue()
1226 lsop->queue = queue; in nvme_fc_connect_admin_queue()
1233 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_admin_queue()
1284 kfree(lsop); in nvme_fc_connect_admin_queue()
1297 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_queue() local
1303 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_queue()
1306 if (!lsop) { in nvme_fc_connect_queue()
1314 conn_rqst = (struct fcnvme_ls_cr_conn_rqst *)&lsop[1]; in nvme_fc_connect_queue()
1316 lsreq = &lsop->ls_req; in nvme_fc_connect_queue()
1341 lsop->queue = queue; in nvme_fc_connect_queue()
1348 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_queue()
1386 kfree(lsop); in nvme_fc_connect_queue()
1398 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_disconnect_assoc_done() local
1400 __nvme_fc_finish_ls_req(lsop); in nvme_fc_disconnect_assoc_done()
1404 kfree(lsop); in nvme_fc_disconnect_assoc_done()
1429 struct nvmefc_ls_req_op *lsop; in nvme_fc_xmt_disconnect_assoc() local
1433 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_xmt_disconnect_assoc()
1436 if (!lsop) { in nvme_fc_xmt_disconnect_assoc()
1444 discon_rqst = (struct fcnvme_ls_disconnect_assoc_rqst *)&lsop[1]; in nvme_fc_xmt_disconnect_assoc()
1446 lsreq = &lsop->ls_req; in nvme_fc_xmt_disconnect_assoc()
1455 ret = nvme_fc_send_ls_req_async(ctrl->rport, lsop, in nvme_fc_xmt_disconnect_assoc()
1458 kfree(lsop); in nvme_fc_xmt_disconnect_assoc()
1464 struct nvmefc_ls_rcv_op *lsop = lsrsp->nvme_fc_private; in nvme_fc_xmt_ls_rsp_done() local
1465 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp_done()
1470 list_del(&lsop->lsrcv_list); in nvme_fc_xmt_ls_rsp_done()
1473 fc_dma_sync_single_for_cpu(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1474 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_done()
1475 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_done()
1476 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_done()
1478 kfree(lsop); in nvme_fc_xmt_ls_rsp_done()
1484 nvme_fc_xmt_ls_rsp(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_xmt_ls_rsp() argument
1486 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp()
1488 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_xmt_ls_rsp()
1491 fc_dma_sync_single_for_device(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp()
1492 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp()
1495 lsop->lsrsp); in nvme_fc_xmt_ls_rsp()
1500 nvme_fc_xmt_ls_rsp_done(lsop->lsrsp); in nvme_fc_xmt_ls_rsp()
1507 struct nvmefc_ls_rcv_op *lsop) in nvme_fc_match_disconn_ls() argument
1510 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_match_disconn_ls()
1524 ctrl->rcv_disconn = lsop; in nvme_fc_match_disconn_ls()
1559 nvme_fc_ls_disconnect_assoc(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_ls_disconnect_assoc() argument
1561 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_ls_disconnect_assoc()
1563 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1565 &lsop->rspbuf->rsp_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1571 ret = nvmefc_vldt_lsreq_discon_assoc(lsop->rqstdatalen, rqst); in nvme_fc_ls_disconnect_assoc()
1574 ctrl = nvme_fc_match_disconn_ls(rport, lsop); in nvme_fc_ls_disconnect_assoc()
1583 lsop->lsrsp->rsplen = nvme_fc_format_rjt(acc, in nvme_fc_ls_disconnect_assoc()
1594 lsop->lsrsp->rsplen = sizeof(*acc); in nvme_fc_ls_disconnect_assoc()
1622 nvme_fc_handle_ls_rqst(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_handle_ls_rqst() argument
1624 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst()
1627 lsop->lsrsp->nvme_fc_private = lsop; in nvme_fc_handle_ls_rqst()
1628 lsop->lsrsp->rspbuf = lsop->rspbuf; in nvme_fc_handle_ls_rqst()
1629 lsop->lsrsp->rspdma = lsop->rspdma; in nvme_fc_handle_ls_rqst()
1630 lsop->lsrsp->done = nvme_fc_xmt_ls_rsp_done; in nvme_fc_handle_ls_rqst()
1632 lsop->lsrsp->rsplen = 0; in nvme_fc_handle_ls_rqst()
1641 ret = nvme_fc_ls_disconnect_assoc(lsop); in nvme_fc_handle_ls_rqst()
1644 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1645 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()
1655 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1656 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1670 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_handle_ls_rqst_work() local
1677 list_for_each_entry(lsop, &rport->ls_rcv_list, lsrcv_list) { in nvme_fc_handle_ls_rqst_work()
1678 if (lsop->handled) in nvme_fc_handle_ls_rqst_work()
1681 lsop->handled = true; in nvme_fc_handle_ls_rqst_work()
1684 sendrsp = nvme_fc_handle_ls_rqst(lsop); in nvme_fc_handle_ls_rqst_work()
1687 w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst_work()
1688 lsop->lsrsp->rsplen = nvme_fc_format_rjt( in nvme_fc_handle_ls_rqst_work()
1689 lsop->rspbuf, in nvme_fc_handle_ls_rqst_work()
1690 sizeof(*lsop->rspbuf), in nvme_fc_handle_ls_rqst_work()
1696 nvme_fc_xmt_ls_rsp(lsop); in nvme_fc_handle_ls_rqst_work()
1729 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_rcv_ls_req() local
1754 lsop = kzalloc(sizeof(*lsop) + in nvme_fc_rcv_ls_req()
1758 if (!lsop) { in nvme_fc_rcv_ls_req()
1766 lsop->rqstbuf = (union nvmefc_ls_requests *)&lsop[1]; in nvme_fc_rcv_ls_req()
1767 lsop->rspbuf = (union nvmefc_ls_responses *)&lsop->rqstbuf[1]; in nvme_fc_rcv_ls_req()
1769 lsop->rspdma = fc_dma_map_single(lport->dev, lsop->rspbuf, in nvme_fc_rcv_ls_req()
1770 sizeof(*lsop->rspbuf), in nvme_fc_rcv_ls_req()
1772 if (fc_dma_mapping_error(lport->dev, lsop->rspdma)) { in nvme_fc_rcv_ls_req()
1781 lsop->rport = rport; in nvme_fc_rcv_ls_req()
1782 lsop->lsrsp = lsrsp; in nvme_fc_rcv_ls_req()
1784 memcpy(lsop->rqstbuf, lsreqbuf, lsreqbuf_len); in nvme_fc_rcv_ls_req()
1785 lsop->rqstdatalen = lsreqbuf_len; in nvme_fc_rcv_ls_req()
1793 list_add_tail(&lsop->lsrcv_list, &rport->ls_rcv_list); in nvme_fc_rcv_ls_req()
1801 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_rcv_ls_req()
1802 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_rcv_ls_req()
1804 kfree(lsop); in nvme_fc_rcv_ls_req()