Lines Matching refs:cm_id
86 struct rdma_cm_id *cm_id; member
120 struct rdma_cm_id *cm_id; member
635 struct rdma_cm_id *cm_id = rsp->queue->cm_id; in nvmet_rdma_rw_ctx_init() local
640 ret = rdma_rw_ctx_signature_init(&rsp->rw, cm_id->qp, in nvmet_rdma_rw_ctx_init()
641 cm_id->port_num, req->sg, req->sg_cnt, in nvmet_rdma_rw_ctx_init()
645 ret = rdma_rw_ctx_init(&rsp->rw, cm_id->qp, cm_id->port_num, in nvmet_rdma_rw_ctx_init()
654 struct rdma_cm_id *cm_id = rsp->queue->cm_id; in nvmet_rdma_rw_ctx_destroy() local
658 rdma_rw_ctx_destroy_signature(&rsp->rw, cm_id->qp, in nvmet_rdma_rw_ctx_destroy()
659 cm_id->port_num, req->sg, req->sg_cnt, in nvmet_rdma_rw_ctx_destroy()
663 rdma_rw_ctx_destroy(&rsp->rw, cm_id->qp, cm_id->port_num, in nvmet_rdma_rw_ctx_destroy()
719 struct rdma_cm_id *cm_id = rsp->queue->cm_id; in nvmet_rdma_queue_response() local
731 first_wr = rdma_rw_ctx_wrs(&rsp->rw, cm_id->qp, in nvmet_rdma_queue_response()
732 cm_id->port_num, &rsp->write_cqe, NULL); in nvmet_rdma_queue_response()
734 first_wr = rdma_rw_ctx_wrs(&rsp->rw, cm_id->qp, in nvmet_rdma_queue_response()
735 cm_id->port_num, NULL, &rsp->send_wr); in nvmet_rdma_queue_response()
746 if (unlikely(ib_post_send(cm_id->qp, first_wr, NULL))) { in nvmet_rdma_queue_response()
790 struct rdma_cm_id *cm_id = rsp->queue->cm_id; in nvmet_rdma_write_data_done() local
822 if (unlikely(ib_post_send(cm_id->qp, &rsp->send_wr, NULL))) { in nvmet_rdma_write_data_done()
966 queue->cm_id->port_num, &rsp->read_cqe, NULL)) in nvmet_rdma_execute_command()
1190 nvmet_rdma_find_get_device(struct rdma_cm_id *cm_id) in nvmet_rdma_find_get_device() argument
1192 struct nvmet_rdma_port *port = cm_id->context; in nvmet_rdma_find_get_device()
1201 if (ndev->device->node_guid == cm_id->device->node_guid && in nvmet_rdma_find_get_device()
1211 inline_sge_count = max(cm_id->device->attrs.max_sge_rd, in nvmet_rdma_find_get_device()
1212 cm_id->device->attrs.max_recv_sge) - 1; in nvmet_rdma_find_get_device()
1215 nport->inline_data_size, cm_id->device->name, in nvmet_rdma_find_get_device()
1223 if (nport->pi_enable && !(cm_id->device->attrs.device_cap_flags & in nvmet_rdma_find_get_device()
1226 cm_id->device->name); in nvmet_rdma_find_get_device()
1230 ndev->device = cm_id->device; in nvmet_rdma_find_get_device()
1287 factor = rdma_rw_mr_factor(ndev->device, queue->cm_id->port_num, in nvmet_rdma_create_queue_ib()
1304 ret = rdma_create_qp(queue->cm_id, ndev->pd, &qp_attr); in nvmet_rdma_create_queue_ib()
1309 queue->qp = queue->cm_id->qp; in nvmet_rdma_create_queue_ib()
1315 qp_attr.cap.max_send_wr, queue->cm_id); in nvmet_rdma_create_queue_ib()
1330 rdma_destroy_qp(queue->cm_id); in nvmet_rdma_create_queue_ib()
1339 if (queue->cm_id) in nvmet_rdma_destroy_queue_ib()
1340 rdma_destroy_id(queue->cm_id); in nvmet_rdma_destroy_queue_ib()
1404 static int nvmet_rdma_cm_reject(struct rdma_cm_id *cm_id, in nvmet_rdma_cm_reject() argument
1415 return rdma_reject(cm_id, (void *)&rej, sizeof(rej), in nvmet_rdma_cm_reject()
1421 struct rdma_cm_id *cm_id, in nvmet_rdma_alloc_queue() argument
1424 struct nvmet_rdma_port *port = cm_id->context; in nvmet_rdma_alloc_queue()
1450 queue->cm_id = cm_id; in nvmet_rdma_alloc_queue()
1519 nvmet_rdma_cm_reject(cm_id, ret); in nvmet_rdma_alloc_queue()
1529 rdma_notify(queue->cm_id, event->event); in nvmet_rdma_qp_event()
1542 static int nvmet_rdma_cm_accept(struct rdma_cm_id *cm_id, in nvmet_rdma_cm_accept() argument
1559 ret = rdma_accept(cm_id, ¶m); in nvmet_rdma_cm_accept()
1566 static int nvmet_rdma_queue_connect(struct rdma_cm_id *cm_id, in nvmet_rdma_queue_connect() argument
1573 ndev = nvmet_rdma_find_get_device(cm_id); in nvmet_rdma_queue_connect()
1575 nvmet_rdma_cm_reject(cm_id, NVME_RDMA_CM_NO_RSC); in nvmet_rdma_queue_connect()
1579 queue = nvmet_rdma_alloc_queue(ndev, cm_id, event); in nvmet_rdma_queue_connect()
1590 ret = nvmet_rdma_cm_accept(cm_id, queue, &event->param.conn); in nvmet_rdma_queue_connect()
1596 queue->cm_id = NULL; in nvmet_rdma_queue_connect()
1646 pr_debug("cm_id= %p queue->state= %d\n", queue->cm_id, queue->state); in __nvmet_rdma_queue_disconnect()
1671 rdma_disconnect(queue->cm_id); in __nvmet_rdma_queue_disconnect()
1691 static void nvmet_rdma_queue_connect_fail(struct rdma_cm_id *cm_id, in nvmet_rdma_queue_connect_fail() argument
1720 static int nvmet_rdma_device_removal(struct rdma_cm_id *cm_id, in nvmet_rdma_device_removal() argument
1734 port = cm_id->context; in nvmet_rdma_device_removal()
1742 if (xchg(&port->cm_id, NULL) != cm_id) in nvmet_rdma_device_removal()
1752 static int nvmet_rdma_cm_handler(struct rdma_cm_id *cm_id, in nvmet_rdma_cm_handler() argument
1758 if (cm_id->qp) in nvmet_rdma_cm_handler()
1759 queue = cm_id->qp->qp_context; in nvmet_rdma_cm_handler()
1763 event->status, cm_id); in nvmet_rdma_cm_handler()
1767 ret = nvmet_rdma_queue_connect(cm_id, event); in nvmet_rdma_cm_handler()
1774 struct nvmet_rdma_port *port = cm_id->context; in nvmet_rdma_cm_handler()
1785 ret = nvmet_rdma_device_removal(cm_id, queue); in nvmet_rdma_cm_handler()
1789 rdma_reject_msg(cm_id, event->status)); in nvmet_rdma_cm_handler()
1793 nvmet_rdma_queue_connect_fail(cm_id, queue); in nvmet_rdma_cm_handler()
1841 struct rdma_cm_id *cm_id = xchg(&port->cm_id, NULL); in nvmet_rdma_disable_port() local
1843 if (cm_id) in nvmet_rdma_disable_port()
1844 rdma_destroy_id(cm_id); in nvmet_rdma_disable_port()
1857 struct rdma_cm_id *cm_id; in nvmet_rdma_enable_port() local
1860 cm_id = rdma_create_id(&init_net, nvmet_rdma_cm_handler, port, in nvmet_rdma_enable_port()
1862 if (IS_ERR(cm_id)) { in nvmet_rdma_enable_port()
1864 return PTR_ERR(cm_id); in nvmet_rdma_enable_port()
1871 ret = rdma_set_afonly(cm_id, 1); in nvmet_rdma_enable_port()
1877 ret = rdma_bind_addr(cm_id, addr); in nvmet_rdma_enable_port()
1883 ret = rdma_listen(cm_id, 128); in nvmet_rdma_enable_port()
1889 port->cm_id = cm_id; in nvmet_rdma_enable_port()
1893 rdma_destroy_id(cm_id); in nvmet_rdma_enable_port()
1982 struct rdma_cm_id *cm_id = port->cm_id; in nvmet_rdma_disc_port_addr() local
1984 if (inet_addr_is_any((struct sockaddr *)&cm_id->route.addr.src_addr)) { in nvmet_rdma_disc_port_addr()
1987 struct rdma_cm_id *req_cm_id = rsp->queue->cm_id; in nvmet_rdma_disc_port_addr()