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