• 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:ia

278 	struct rpcrdma_ia *ia = &xprt->rx_ia;
290 ia->ri_async_rc = 0;
291 complete(&ia->ri_done);
294 ia->ri_async_rc = -EHOSTUNREACH;
297 complete(&ia->ri_done);
300 ia->ri_async_rc = -ENETUNREACH;
303 complete(&ia->ri_done);
307 ib_query_qp(ia->ri_id->qp, &attr,
357 ia->ri_id->device->name,
358 ia->ri_memreg_strategy,
374 struct rpcrdma_ia *ia, struct sockaddr *addr)
379 init_completion(&ia->ri_done);
389 ia->ri_async_rc = -ETIMEDOUT;
396 wait_for_completion_interruptible_timeout(&ia->ri_done,
398 rc = ia->ri_async_rc;
402 ia->ri_async_rc = -ETIMEDOUT;
409 wait_for_completion_interruptible_timeout(&ia->ri_done,
411 rc = ia->ri_async_rc;
453 struct rpcrdma_ia *ia = &xprt->rx_ia;
455 ia->ri_id = rpcrdma_create_id(xprt, ia, addr);
456 if (IS_ERR(ia->ri_id)) {
457 rc = PTR_ERR(ia->ri_id);
461 ia->ri_pd = ib_alloc_pd(ia->ri_id->device);
462 if (IS_ERR(ia->ri_pd)) {
463 rc = PTR_ERR(ia->ri_pd);
474 rc = ib_query_device(ia->ri_id->device, &devattr);
482 ia->ri_have_dma_lkey = 1;
483 ia->ri_dma_lkey = ia->ri_id->device->local_dma_lkey;
498 if (!ia->ri_id->device->alloc_fmr) {
562 if (ia->ri_have_dma_lkey)
566 ia->ri_bind_mem = ib_get_dma_mr(ia->ri_pd, mem_priv);
567 if (IS_ERR(ia->ri_bind_mem)) {
571 __func__, PTR_ERR(ia->ri_bind_mem));
573 ia->ri_bind_mem = NULL;
586 ia->ri_memreg_strategy = memreg;
590 rdma_destroy_id(ia->ri_id);
591 ia->ri_id = NULL;
602 rpcrdma_ia_close(struct rpcrdma_ia *ia)
607 if (ia->ri_bind_mem != NULL) {
608 rc = ib_dereg_mr(ia->ri_bind_mem);
612 if (ia->ri_id != NULL && !IS_ERR(ia->ri_id)) {
613 if (ia->ri_id->qp)
614 rdma_destroy_qp(ia->ri_id);
615 rdma_destroy_id(ia->ri_id);
616 ia->ri_id = NULL;
618 if (ia->ri_pd != NULL && !IS_ERR(ia->ri_pd)) {
619 rc = ib_dealloc_pd(ia->ri_pd);
629 rpcrdma_ep_create(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia,
635 rc = ib_query_device(ia->ri_id->device, &devattr);
651 switch (ia->ri_memreg_strategy) {
699 switch (ia->ri_memreg_strategy) {
710 ep->rep_ia = ia;
718 ep->rep_cq = ib_create_cq(ia->ri_id->device, rpcrdma_cq_event_upcall,
747 if (ia->ri_memreg_strategy == RPCRDMA_BOUNCEBUFFERS)
780 rpcrdma_ep_destroy(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia)
787 if (ia->ri_id->qp) {
788 rc = rpcrdma_ep_disconnect(ep, ia);
792 rdma_destroy_qp(ia->ri_id);
793 ia->ri_id->qp = NULL;
798 rpcrdma_deregister_internal(ia, ep->rep_pad_mr, &ep->rep_pad);
815 rpcrdma_ep_connect(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia)
824 rc = rpcrdma_ep_disconnect(ep, ia);
830 xprt = container_of(ia, struct rpcrdma_xprt, rx_ia);
831 id = rpcrdma_create_id(xprt, ia,
844 if (ia->ri_id->device != id->device) {
852 rdma_destroy_qp(ia->ri_id);
853 rdma_destroy_id(ia->ri_id);
854 ia->ri_id = id;
857 rc = rdma_create_qp(ia->ri_id, ia->ri_pd, &ep->rep_attr);
864 if (strnicmp(ia->ri_id->device->dma_device->bus->name, "pci", 3) == 0) {
865 struct pci_dev *pcid = to_pci_dev(ia->ri_id->device->dma_device);
872 rc = ib_modify_qp(ia->ri_id->qp, &attr, IB_QP_PATH_MTU);
878 rc = rdma_connect(ia->ri_id, &ep->rep_remote_cma);
932 rpcrdma_ep_disconnect(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia)
937 rc = rdma_disconnect(ia->ri_id);
956 struct rpcrdma_ia *ia, struct rpcrdma_create_data_internal *cdata)
979 switch (ia->ri_memreg_strategy) {
1017 rc = rpcrdma_register_internal(ia, p, cdata->padding,
1031 switch (ia->ri_memreg_strategy) {
1034 r->r.frmr.fr_mr = ib_alloc_fast_reg_mr(ia->ri_pd,
1043 ib_alloc_fast_reg_page_list(ia->ri_id->device,
1061 r->r.fmr = ib_alloc_fmr(ia->ri_pd,
1078 r->r.mw = ib_alloc_mw(ia->ri_pd);
1117 rc = rpcrdma_register_internal(ia, req->rl_base,
1139 rc = rpcrdma_register_internal(ia, rep->rr_base,
1166 struct rpcrdma_ia *ia = rdmab_to_ia(buf);
1180 rpcrdma_deregister_internal(ia,
1190 switch (ia->ri_memreg_strategy) {
1221 rpcrdma_deregister_internal(ia,
1287 struct rpcrdma_ia *ia = rdmab_to_ia(buffers);
1301 switch (ia->ri_memreg_strategy) {
1370 rpcrdma_register_internal(struct rpcrdma_ia *ia, void *va, int len,
1380 iov->addr = ib_dma_map_single(ia->ri_id->device,
1384 if (ia->ri_have_dma_lkey) {
1386 iov->lkey = ia->ri_dma_lkey;
1388 } else if (ia->ri_bind_mem != NULL) {
1390 iov->lkey = ia->ri_bind_mem->lkey;
1396 mr = ib_reg_phys_mr(ia->ri_pd, &ipb, 1,
1418 rpcrdma_deregister_internal(struct rpcrdma_ia *ia,
1423 ib_dma_unmap_single(ia->ri_id->device,
1440 rpcrdma_map_one(struct rpcrdma_ia *ia, struct rpcrdma_mr_seg *seg, int writing)
1445 seg->mr_dma = ib_dma_map_page(ia->ri_id->device,
1449 seg->mr_dma = ib_dma_map_single(ia->ri_id->device,
1455 rpcrdma_unmap_one(struct rpcrdma_ia *ia, struct rpcrdma_mr_seg *seg)
1458 ib_dma_unmap_page(ia->ri_id->device,
1461 ib_dma_unmap_single(ia->ri_id->device,
1467 int *nsegs, int writing, struct rpcrdma_ia *ia,
1483 rpcrdma_map_one(ia, seg, writing);
1515 rc = ib_post_send(ia->ri_id->qp, &frmr_wr, &bad_wr);
1521 rpcrdma_unmap_one(ia, --seg);
1534 struct rpcrdma_ia *ia, struct rpcrdma_xprt *r_xprt)
1541 rpcrdma_unmap_one(ia, seg++);
1549 rc = ib_post_send(ia->ri_id->qp, &invalidate_wr, &bad_wr);
1558 int *nsegs, int writing, struct rpcrdma_ia *ia)
1571 rpcrdma_map_one(ia, seg, writing);
1589 rpcrdma_unmap_one(ia, --seg);
1602 struct rpcrdma_ia *ia)
1611 rpcrdma_unmap_one(ia, seg++);
1620 int *nsegs, int writing, struct rpcrdma_ia *ia,
1629 rpcrdma_map_one(ia, seg, writing);
1630 param.mr = ia->ri_bind_mem;
1638 rc = ib_bind_mw(ia->ri_id->qp, seg->mr_chunk.rl_mw->r.mw, &param);
1644 rpcrdma_unmap_one(ia, seg);
1655 struct rpcrdma_ia *ia,
1663 param.mr = ia->ri_bind_mem;
1676 rc = ib_bind_mw(ia->ri_id->qp, seg->mr_chunk.rl_mw->r.mw, &param);
1677 rpcrdma_unmap_one(ia, seg);
1688 int *nsegs, int writing, struct rpcrdma_ia *ia)
1699 rpcrdma_map_one(ia, seg, writing);
1711 seg1->mr_chunk.rl_mr = ib_reg_phys_mr(ia->ri_pd,
1720 rpcrdma_unmap_one(ia, --seg);
1732 struct rpcrdma_ia *ia)
1740 rpcrdma_unmap_one(ia, seg++);
1751 struct rpcrdma_ia *ia = &r_xprt->rx_ia;
1754 switch (ia->ri_memreg_strategy) {
1758 rpcrdma_map_one(ia, seg, writing);
1759 seg->mr_rkey = ia->ri_bind_mem->rkey;
1768 rc = rpcrdma_register_frmr_external(seg, &nsegs, writing, ia, r_xprt);
1773 rc = rpcrdma_register_fmr_external(seg, &nsegs, writing, ia);
1779 rc = rpcrdma_register_memwin_external(seg, &nsegs, writing, ia, r_xprt);
1784 rc = rpcrdma_register_default_external(seg, &nsegs, writing, ia);
1797 struct rpcrdma_ia *ia = &r_xprt->rx_ia;
1800 switch (ia->ri_memreg_strategy) {
1805 rpcrdma_unmap_one(ia, seg);
1811 rc = rpcrdma_deregister_frmr_external(seg, ia, r_xprt);
1815 rc = rpcrdma_deregister_fmr_external(seg, ia);
1820 rc = rpcrdma_deregister_memwin_external(seg, ia, r_xprt, &r);
1824 rc = rpcrdma_deregister_default_external(seg, ia);
1842 rpcrdma_ep_post(struct rpcrdma_ia *ia,
1851 rc = rpcrdma_ep_post_recv(ia, ep, rep);
1863 ib_dma_sync_single_for_device(ia->ri_id->device,
1866 ib_dma_sync_single_for_device(ia->ri_id->device,
1869 ib_dma_sync_single_for_device(ia->ri_id->device,
1880 rc = ib_post_send(ia->ri_id->qp, &send_wr, &send_wr_fail);
1892 rpcrdma_ep_post_recv(struct rpcrdma_ia *ia,
1904 ib_dma_sync_single_for_cpu(ia->ri_id->device,
1908 rc = ib_post_recv(ia->ri_id->qp, &recv_wr, &recv_wr_fail);