• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/sunrpc/xprtrdma/

Lines Matching refs:newxprt

550 	struct svcxprt_rdma *newxprt;
554 newxprt = rdma_create_xprt(listen_xprt->sc_xprt.xpt_server, 0);
555 if (!newxprt) {
559 newxprt->sc_cm_id = new_cma_id;
560 new_cma_id->context = newxprt;
561 dprintk("svcrdma: Creating newxprt=%p, cm_id=%p, listenxprt=%p\n",
562 newxprt, newxprt->sc_cm_id, listen_xprt);
565 newxprt->sc_ord = client_ird;
568 sa = (struct sockaddr *)&newxprt->sc_cm_id->route.addr.dst_addr;
569 svc_xprt_set_remote(&newxprt->sc_xprt, sa, svc_addr_len(sa));
570 sa = (struct sockaddr *)&newxprt->sc_cm_id->route.addr.src_addr;
571 svc_xprt_set_local(&newxprt->sc_xprt, sa, svc_addr_len(sa));
578 list_add_tail(&newxprt->sc_accept_q, &listen_xprt->sc_accept_q);
832 struct svcxprt_rdma *newxprt = NULL;
846 newxprt = list_entry(listen_rdma->sc_accept_q.next,
848 list_del_init(&newxprt->sc_accept_q);
853 if (!newxprt)
856 dprintk("svcrdma: newxprt from accept queue = %p, cm_id=%p\n",
857 newxprt, newxprt->sc_cm_id);
859 ret = ib_query_device(newxprt->sc_cm_id->device, &devattr);
862 "device %p, rc=%d\n", newxprt->sc_cm_id->device, ret);
868 newxprt->sc_max_sge = min((size_t)devattr.max_sge,
870 newxprt->sc_max_requests = min((size_t)devattr.max_qp_wr,
872 newxprt->sc_sq_depth = RPCRDMA_SQ_DEPTH_MULT * newxprt->sc_max_requests;
878 newxprt->sc_ord = min_t(size_t, devattr.max_qp_rd_atom, newxprt->sc_ord);
879 newxprt->sc_ord = min_t(size_t, svcrdma_ord, newxprt->sc_ord);
881 newxprt->sc_pd = ib_alloc_pd(newxprt->sc_cm_id->device);
882 if (IS_ERR(newxprt->sc_pd)) {
886 newxprt->sc_sq_cq = ib_create_cq(newxprt->sc_cm_id->device,
889 newxprt,
890 newxprt->sc_sq_depth,
892 if (IS_ERR(newxprt->sc_sq_cq)) {
896 newxprt->sc_rq_cq = ib_create_cq(newxprt->sc_cm_id->device,
899 newxprt,
900 newxprt->sc_max_requests,
902 if (IS_ERR(newxprt->sc_rq_cq)) {
909 qp_attr.qp_context = &newxprt->sc_xprt;
910 qp_attr.cap.max_send_wr = newxprt->sc_sq_depth;
911 qp_attr.cap.max_recv_wr = newxprt->sc_max_requests;
912 qp_attr.cap.max_send_sge = newxprt->sc_max_sge;
913 qp_attr.cap.max_recv_sge = newxprt->sc_max_sge;
916 qp_attr.send_cq = newxprt->sc_sq_cq;
917 qp_attr.recv_cq = newxprt->sc_rq_cq;
918 dprintk("svcrdma: newxprt->sc_cm_id=%p, newxprt->sc_pd=%p\n"
924 newxprt->sc_cm_id, newxprt->sc_pd,
925 newxprt->sc_cm_id->device, newxprt->sc_pd->device,
931 ret = rdma_create_qp(newxprt->sc_cm_id, newxprt->sc_pd, &qp_attr);
935 ret = rdma_create_qp(newxprt->sc_cm_id, newxprt->sc_pd,
941 newxprt->sc_max_sge = qp_attr.cap.max_send_sge;
942 newxprt->sc_max_sge = qp_attr.cap.max_recv_sge;
943 newxprt->sc_sq_depth = qp_attr.cap.max_send_wr;
944 newxprt->sc_max_requests = qp_attr.cap.max_recv_wr;
946 newxprt->sc_qp = newxprt->sc_cm_id->qp;
971 newxprt->sc_frmr_pg_list_len =
973 newxprt->sc_dev_caps |= SVCRDMA_DEVCAP_FAST_REG;
979 switch (rdma_node_get_transport(newxprt->sc_cm_id->device->node_type)) {
981 newxprt->sc_dev_caps |= SVCRDMA_DEVCAP_READ_W_INV;
982 if (!(newxprt->sc_dev_caps & SVCRDMA_DEVCAP_FAST_REG)) {
1007 newxprt->sc_phys_mr =
1008 ib_get_dma_mr(newxprt->sc_pd, dma_mr_acc);
1009 if (IS_ERR(newxprt->sc_phys_mr)) {
1014 newxprt->sc_dma_lkey = newxprt->sc_phys_mr->lkey;
1016 newxprt->sc_dma_lkey =
1017 newxprt->sc_cm_id->device->local_dma_lkey;
1020 for (i = 0; i < newxprt->sc_max_requests; i++) {
1021 ret = svc_rdma_post_recv(newxprt);
1029 newxprt->sc_cm_id->event_handler = rdma_cma_handler;
1035 ib_req_notify_cq(newxprt->sc_sq_cq, IB_CQ_NEXT_COMP);
1036 ib_req_notify_cq(newxprt->sc_rq_cq, IB_CQ_NEXT_COMP);
1039 set_bit(RDMAXPRT_CONN_PENDING, &newxprt->sc_flags);
1042 conn_param.initiator_depth = newxprt->sc_ord;
1043 ret = rdma_accept(newxprt->sc_cm_id, &conn_param);
1060 newxprt,
1061 &((struct sockaddr_in *)&newxprt->sc_cm_id->
1063 ntohs(((struct sockaddr_in *)&newxprt->sc_cm_id->
1065 &((struct sockaddr_in *)&newxprt->sc_cm_id->
1067 ntohs(((struct sockaddr_in *)&newxprt->sc_cm_id->
1069 newxprt->sc_max_sge,
1070 newxprt->sc_sq_depth,
1071 newxprt->sc_max_requests,
1072 newxprt->sc_ord);
1074 return &newxprt->sc_xprt;
1079 svc_xprt_get(&newxprt->sc_xprt);
1080 if (newxprt->sc_qp && !IS_ERR(newxprt->sc_qp))
1081 ib_destroy_qp(newxprt->sc_qp);
1082 rdma_destroy_id(newxprt->sc_cm_id);
1084 svc_xprt_put(&newxprt->sc_xprt);