Lines Matching refs:lsop

762 	struct nvmefc_ls_req_op *lsop;  in nvme_fc_abort_lsops()  local
768 list_for_each_entry(lsop, &rport->ls_req_list, lsreq_list) { in nvme_fc_abort_lsops()
769 if (!(lsop->flags & FCOP_FLAGS_TERMIO)) { in nvme_fc_abort_lsops()
770 lsop->flags |= FCOP_FLAGS_TERMIO; in nvme_fc_abort_lsops()
774 &lsop->ls_req); in nvme_fc_abort_lsops()
991 __nvme_fc_finish_ls_req(struct nvmefc_ls_req_op *lsop) in __nvme_fc_finish_ls_req() argument
993 struct nvme_fc_rport *rport = lsop->rport; in __nvme_fc_finish_ls_req()
994 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_finish_ls_req()
999 if (!lsop->req_queued) { in __nvme_fc_finish_ls_req()
1004 list_del(&lsop->lsreq_list); in __nvme_fc_finish_ls_req()
1006 lsop->req_queued = false; in __nvme_fc_finish_ls_req()
1019 struct nvmefc_ls_req_op *lsop, in __nvme_fc_send_ls_req() argument
1022 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in __nvme_fc_send_ls_req()
1033 lsop->rport = rport; in __nvme_fc_send_ls_req()
1034 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1035 INIT_LIST_HEAD(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1036 init_completion(&lsop->ls_done); in __nvme_fc_send_ls_req()
1049 list_add_tail(&lsop->lsreq_list, &rport->ls_req_list); in __nvme_fc_send_ls_req()
1051 lsop->req_queued = true; in __nvme_fc_send_ls_req()
1063 lsop->ls_error = ret; in __nvme_fc_send_ls_req()
1065 lsop->req_queued = false; in __nvme_fc_send_ls_req()
1066 list_del(&lsop->lsreq_list); in __nvme_fc_send_ls_req()
1080 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_send_ls_req_done() local
1082 lsop->ls_error = status; in nvme_fc_send_ls_req_done()
1083 complete(&lsop->ls_done); in nvme_fc_send_ls_req_done()
1087 nvme_fc_send_ls_req(struct nvme_fc_rport *rport, struct nvmefc_ls_req_op *lsop) in nvme_fc_send_ls_req() argument
1089 struct nvmefc_ls_req *lsreq = &lsop->ls_req; in nvme_fc_send_ls_req()
1093 ret = __nvme_fc_send_ls_req(rport, lsop, nvme_fc_send_ls_req_done); in nvme_fc_send_ls_req()
1102 wait_for_completion(&lsop->ls_done); in nvme_fc_send_ls_req()
1104 __nvme_fc_finish_ls_req(lsop); in nvme_fc_send_ls_req()
1106 ret = lsop->ls_error; in nvme_fc_send_ls_req()
1121 struct nvmefc_ls_req_op *lsop, in nvme_fc_send_ls_req_async() argument
1126 return __nvme_fc_send_ls_req(rport, lsop, done); in nvme_fc_send_ls_req_async()
1133 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_admin_queue() local
1140 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_admin_queue()
1143 if (!lsop) { in nvme_fc_connect_admin_queue()
1151 assoc_rqst = (struct fcnvme_ls_cr_assoc_rqst *)&lsop[1]; in nvme_fc_connect_admin_queue()
1153 lsreq = &lsop->ls_req; in nvme_fc_connect_admin_queue()
1179 lsop->queue = queue; in nvme_fc_connect_admin_queue()
1186 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_admin_queue()
1237 kfree(lsop); in nvme_fc_connect_admin_queue()
1250 struct nvmefc_ls_req_op *lsop; in nvme_fc_connect_queue() local
1256 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_connect_queue()
1259 if (!lsop) { in nvme_fc_connect_queue()
1267 conn_rqst = (struct fcnvme_ls_cr_conn_rqst *)&lsop[1]; in nvme_fc_connect_queue()
1269 lsreq = &lsop->ls_req; in nvme_fc_connect_queue()
1294 lsop->queue = queue; in nvme_fc_connect_queue()
1301 ret = nvme_fc_send_ls_req(ctrl->rport, lsop); in nvme_fc_connect_queue()
1339 kfree(lsop); in nvme_fc_connect_queue()
1351 struct nvmefc_ls_req_op *lsop = ls_req_to_lsop(lsreq); in nvme_fc_disconnect_assoc_done() local
1353 __nvme_fc_finish_ls_req(lsop); in nvme_fc_disconnect_assoc_done()
1357 kfree(lsop); in nvme_fc_disconnect_assoc_done()
1382 struct nvmefc_ls_req_op *lsop; in nvme_fc_xmt_disconnect_assoc() local
1386 lsop = kzalloc((sizeof(*lsop) + in nvme_fc_xmt_disconnect_assoc()
1389 if (!lsop) { in nvme_fc_xmt_disconnect_assoc()
1397 discon_rqst = (struct fcnvme_ls_disconnect_assoc_rqst *)&lsop[1]; in nvme_fc_xmt_disconnect_assoc()
1399 lsreq = &lsop->ls_req; in nvme_fc_xmt_disconnect_assoc()
1408 ret = nvme_fc_send_ls_req_async(ctrl->rport, lsop, in nvme_fc_xmt_disconnect_assoc()
1411 kfree(lsop); in nvme_fc_xmt_disconnect_assoc()
1415 nvme_fc_xmt_ls_rsp_free(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_xmt_ls_rsp_free() argument
1417 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp_free()
1422 list_del(&lsop->lsrcv_list); in nvme_fc_xmt_ls_rsp_free()
1425 fc_dma_sync_single_for_cpu(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_free()
1426 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_free()
1427 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp_free()
1428 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp_free()
1430 kfree(lsop->rspbuf); in nvme_fc_xmt_ls_rsp_free()
1431 kfree(lsop->rqstbuf); in nvme_fc_xmt_ls_rsp_free()
1432 kfree(lsop); in nvme_fc_xmt_ls_rsp_free()
1440 struct nvmefc_ls_rcv_op *lsop = lsrsp->nvme_fc_private; in nvme_fc_xmt_ls_rsp_done() local
1442 nvme_fc_xmt_ls_rsp_free(lsop); in nvme_fc_xmt_ls_rsp_done()
1446 nvme_fc_xmt_ls_rsp(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_xmt_ls_rsp() argument
1448 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_xmt_ls_rsp()
1450 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_xmt_ls_rsp()
1453 fc_dma_sync_single_for_device(lport->dev, lsop->rspdma, in nvme_fc_xmt_ls_rsp()
1454 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_xmt_ls_rsp()
1457 lsop->lsrsp); in nvme_fc_xmt_ls_rsp()
1462 nvme_fc_xmt_ls_rsp_free(lsop); in nvme_fc_xmt_ls_rsp()
1469 struct nvmefc_ls_rcv_op *lsop) in nvme_fc_match_disconn_ls() argument
1472 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_match_disconn_ls()
1486 ctrl->rcv_disconn = lsop; in nvme_fc_match_disconn_ls()
1523 nvme_fc_ls_disconnect_assoc(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_ls_disconnect_assoc() argument
1525 struct nvme_fc_rport *rport = lsop->rport; in nvme_fc_ls_disconnect_assoc()
1527 &lsop->rqstbuf->rq_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1529 &lsop->rspbuf->rsp_dis_assoc; in nvme_fc_ls_disconnect_assoc()
1535 ret = nvmefc_vldt_lsreq_discon_assoc(lsop->rqstdatalen, rqst); in nvme_fc_ls_disconnect_assoc()
1538 ctrl = nvme_fc_match_disconn_ls(rport, lsop); in nvme_fc_ls_disconnect_assoc()
1547 lsop->lsrsp->rsplen = nvme_fc_format_rjt(acc, in nvme_fc_ls_disconnect_assoc()
1558 lsop->lsrsp->rsplen = sizeof(*acc); in nvme_fc_ls_disconnect_assoc()
1586 nvme_fc_handle_ls_rqst(struct nvmefc_ls_rcv_op *lsop) in nvme_fc_handle_ls_rqst() argument
1588 struct fcnvme_ls_rqst_w0 *w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst()
1591 lsop->lsrsp->nvme_fc_private = lsop; in nvme_fc_handle_ls_rqst()
1592 lsop->lsrsp->rspbuf = lsop->rspbuf; in nvme_fc_handle_ls_rqst()
1593 lsop->lsrsp->rspdma = lsop->rspdma; in nvme_fc_handle_ls_rqst()
1594 lsop->lsrsp->done = nvme_fc_xmt_ls_rsp_done; in nvme_fc_handle_ls_rqst()
1596 lsop->lsrsp->rsplen = 0; in nvme_fc_handle_ls_rqst()
1605 ret = nvme_fc_ls_disconnect_assoc(lsop); in nvme_fc_handle_ls_rqst()
1608 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1609 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1614 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1615 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1619 lsop->lsrsp->rsplen = nvme_fc_format_rjt(lsop->rspbuf, in nvme_fc_handle_ls_rqst()
1620 sizeof(*lsop->rspbuf), w0->ls_cmd, in nvme_fc_handle_ls_rqst()
1634 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_handle_ls_rqst_work() local
1641 list_for_each_entry(lsop, &rport->ls_rcv_list, lsrcv_list) { in nvme_fc_handle_ls_rqst_work()
1642 if (lsop->handled) in nvme_fc_handle_ls_rqst_work()
1645 lsop->handled = true; in nvme_fc_handle_ls_rqst_work()
1648 sendrsp = nvme_fc_handle_ls_rqst(lsop); in nvme_fc_handle_ls_rqst_work()
1651 w0 = &lsop->rqstbuf->w0; in nvme_fc_handle_ls_rqst_work()
1652 lsop->lsrsp->rsplen = nvme_fc_format_rjt( in nvme_fc_handle_ls_rqst_work()
1653 lsop->rspbuf, in nvme_fc_handle_ls_rqst_work()
1654 sizeof(*lsop->rspbuf), in nvme_fc_handle_ls_rqst_work()
1660 nvme_fc_xmt_ls_rsp(lsop); in nvme_fc_handle_ls_rqst_work()
1702 struct nvmefc_ls_rcv_op *lsop; in nvme_fc_rcv_ls_req() local
1727 lsop = kzalloc_obj(*lsop); in nvme_fc_rcv_ls_req()
1728 if (!lsop) { in nvme_fc_rcv_ls_req()
1734 lsop->rqstbuf = kzalloc_obj(*lsop->rqstbuf); in nvme_fc_rcv_ls_req()
1735 lsop->rspbuf = kzalloc_obj(*lsop->rspbuf); in nvme_fc_rcv_ls_req()
1736 if (!lsop->rqstbuf || !lsop->rspbuf) { in nvme_fc_rcv_ls_req()
1742 lsop->rspdma = fc_dma_map_single(lport->dev, lsop->rspbuf, in nvme_fc_rcv_ls_req()
1743 sizeof(*lsop->rspbuf), in nvme_fc_rcv_ls_req()
1745 if (fc_dma_mapping_error(lport->dev, lsop->rspdma)) { in nvme_fc_rcv_ls_req()
1754 lsop->rport = rport; in nvme_fc_rcv_ls_req()
1755 lsop->lsrsp = lsrsp; in nvme_fc_rcv_ls_req()
1757 memcpy(lsop->rqstbuf, lsreqbuf, lsreqbuf_len); in nvme_fc_rcv_ls_req()
1758 lsop->rqstdatalen = lsreqbuf_len; in nvme_fc_rcv_ls_req()
1766 list_add_tail(&lsop->lsrcv_list, &rport->ls_rcv_list); in nvme_fc_rcv_ls_req()
1774 fc_dma_unmap_single(lport->dev, lsop->rspdma, in nvme_fc_rcv_ls_req()
1775 sizeof(*lsop->rspbuf), DMA_TO_DEVICE); in nvme_fc_rcv_ls_req()
1777 kfree(lsop->rspbuf); in nvme_fc_rcv_ls_req()
1778 kfree(lsop->rqstbuf); in nvme_fc_rcv_ls_req()
1779 kfree(lsop); in nvme_fc_rcv_ls_req()