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

1440 rpcrdma_map_one(struct rpcrdma_ia *ia, struct rpcrdma_mr_seg *seg, int writing)
1442 seg->mr_dir = writing ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
1443 seg->mr_dmalen = seg->mr_len;
1444 if (seg->mr_page)
1445 seg->mr_dma = ib_dma_map_page(ia->ri_id->device,
1446 seg->mr_page, offset_in_page(seg->mr_offset),
1447 seg->mr_dmalen, seg->mr_dir);
1449 seg->mr_dma = ib_dma_map_single(ia->ri_id->device,
1450 seg->mr_offset,
1451 seg->mr_dmalen, seg->mr_dir);
1455 rpcrdma_unmap_one(struct rpcrdma_ia *ia, struct rpcrdma_mr_seg *seg)
1457 if (seg->mr_page)
1459 seg->mr_dma, seg->mr_dmalen, seg->mr_dir);
1462 seg->mr_dma, seg->mr_dmalen, seg->mr_dir);
1466 rpcrdma_register_frmr_external(struct rpcrdma_mr_seg *seg,
1470 struct rpcrdma_mr_seg *seg1 = seg;
1483 rpcrdma_map_one(ia, seg, writing);
1484 seg1->mr_chunk.rl_mw->r.frmr.fr_pgl->page_list[i] = seg->mr_dma;
1485 len += seg->mr_len;
1486 ++seg;
1489 if ((i < *nsegs && offset_in_page(seg->mr_offset)) ||
1490 offset_in_page((seg-1)->mr_offset + (seg-1)->mr_len))
1521 rpcrdma_unmap_one(ia, --seg);
1533 rpcrdma_deregister_frmr_external(struct rpcrdma_mr_seg *seg,
1536 struct rpcrdma_mr_seg *seg1 = seg;
1541 rpcrdma_unmap_one(ia, seg++);
1557 rpcrdma_register_fmr_external(struct rpcrdma_mr_seg *seg,
1560 struct rpcrdma_mr_seg *seg1 = seg;
1571 rpcrdma_map_one(ia, seg, writing);
1572 physaddrs[i] = seg->mr_dma;
1573 len += seg->mr_len;
1574 ++seg;
1577 if ((i < *nsegs && offset_in_page(seg->mr_offset)) ||
1578 offset_in_page((seg-1)->mr_offset + (seg-1)->mr_len))
1589 rpcrdma_unmap_one(ia, --seg);
1601 rpcrdma_deregister_fmr_external(struct rpcrdma_mr_seg *seg,
1604 struct rpcrdma_mr_seg *seg1 = seg;
1611 rpcrdma_unmap_one(ia, seg++);
1619 rpcrdma_register_memwin_external(struct rpcrdma_mr_seg *seg,
1629 rpcrdma_map_one(ia, seg, writing);
1632 param.addr = seg->mr_dma;
1633 param.length = seg->mr_len;
1638 rc = ib_bind_mw(ia->ri_id->qp, seg->mr_chunk.rl_mw->r.mw, &param);
1642 __func__, seg->mr_len,
1643 (unsigned long long)seg->mr_dma, rc);
1644 rpcrdma_unmap_one(ia, seg);
1646 seg->mr_rkey = seg->mr_chunk.rl_mw->r.mw->rkey;
1647 seg->mr_base = param.addr;
1648 seg->mr_nsegs = 1;
1654 rpcrdma_deregister_memwin_external(struct rpcrdma_mr_seg *seg,
1662 BUG_ON(seg->mr_nsegs != 1);
1676 rc = ib_bind_mw(ia->ri_id->qp, seg->mr_chunk.rl_mw->r.mw, &param);
1677 rpcrdma_unmap_one(ia, seg);
1687 rpcrdma_register_default_external(struct rpcrdma_mr_seg *seg,
1692 struct rpcrdma_mr_seg *seg1 = seg;
1699 rpcrdma_map_one(ia, seg, writing);
1700 ipb[i].addr = seg->mr_dma;
1701 ipb[i].size = seg->mr_len;
1702 len += seg->mr_len;
1703 ++seg;
1706 if ((i < *nsegs && offset_in_page(seg->mr_offset)) ||
1707 offset_in_page((seg-1)->mr_offset+(seg-1)->mr_len))
1720 rpcrdma_unmap_one(ia, --seg);
1731 rpcrdma_deregister_default_external(struct rpcrdma_mr_seg *seg,
1734 struct rpcrdma_mr_seg *seg1 = seg;
1740 rpcrdma_unmap_one(ia, seg++);
1748 rpcrdma_register_external(struct rpcrdma_mr_seg *seg,
1758 rpcrdma_map_one(ia, seg, writing);
1759 seg->mr_rkey = ia->ri_bind_mem->rkey;
1760 seg->mr_base = seg->mr_dma;
1761 seg->mr_nsegs = 1;
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);
1794 rpcrdma_deregister_external(struct rpcrdma_mr_seg *seg,
1798 int nsegs = seg->mr_nsegs, rc;
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);