• Home
  • Raw
  • Download

Lines Matching refs:rb

92 static void rpcrdma_regbuf_dma_unmap(struct rpcrdma_regbuf *rb);
93 static void rpcrdma_regbuf_free(struct rpcrdma_regbuf *rb);
885 struct rpcrdma_regbuf *rb; in rpcrdma_req_setup() local
892 rb = rpcrdma_regbuf_alloc(__roundup_pow_of_two(maxhdrsize), in rpcrdma_req_setup()
894 if (!rb) in rpcrdma_req_setup()
897 if (!__rpcrdma_regbuf_dma_map(r_xprt, rb)) in rpcrdma_req_setup()
900 req->rl_rdmabuf = rb; in rpcrdma_req_setup()
901 xdr_buf_init(&req->rl_hdrbuf, rdmab_data(rb), rdmab_length(rb)); in rpcrdma_req_setup()
905 rpcrdma_regbuf_free(rb); in rpcrdma_req_setup()
1273 struct rpcrdma_regbuf *rb; in rpcrdma_regbuf_alloc() local
1275 rb = kmalloc(sizeof(*rb), flags); in rpcrdma_regbuf_alloc()
1276 if (!rb) in rpcrdma_regbuf_alloc()
1278 rb->rg_data = kmalloc(size, flags); in rpcrdma_regbuf_alloc()
1279 if (!rb->rg_data) { in rpcrdma_regbuf_alloc()
1280 kfree(rb); in rpcrdma_regbuf_alloc()
1284 rb->rg_device = NULL; in rpcrdma_regbuf_alloc()
1285 rb->rg_direction = direction; in rpcrdma_regbuf_alloc()
1286 rb->rg_iov.length = size; in rpcrdma_regbuf_alloc()
1287 return rb; in rpcrdma_regbuf_alloc()
1299 bool rpcrdma_regbuf_realloc(struct rpcrdma_regbuf *rb, size_t size, gfp_t flags) in rpcrdma_regbuf_realloc() argument
1307 rpcrdma_regbuf_dma_unmap(rb); in rpcrdma_regbuf_realloc()
1308 kfree(rb->rg_data); in rpcrdma_regbuf_realloc()
1310 rb->rg_data = buf; in rpcrdma_regbuf_realloc()
1311 rb->rg_iov.length = size; in rpcrdma_regbuf_realloc()
1323 struct rpcrdma_regbuf *rb) in __rpcrdma_regbuf_dma_map() argument
1327 if (rb->rg_direction == DMA_NONE) in __rpcrdma_regbuf_dma_map()
1330 rb->rg_iov.addr = ib_dma_map_single(device, rdmab_data(rb), in __rpcrdma_regbuf_dma_map()
1331 rdmab_length(rb), rb->rg_direction); in __rpcrdma_regbuf_dma_map()
1332 if (ib_dma_mapping_error(device, rdmab_addr(rb))) { in __rpcrdma_regbuf_dma_map()
1333 trace_xprtrdma_dma_maperr(rdmab_addr(rb)); in __rpcrdma_regbuf_dma_map()
1337 rb->rg_device = device; in __rpcrdma_regbuf_dma_map()
1338 rb->rg_iov.lkey = r_xprt->rx_ep->re_pd->local_dma_lkey; in __rpcrdma_regbuf_dma_map()
1342 static void rpcrdma_regbuf_dma_unmap(struct rpcrdma_regbuf *rb) in rpcrdma_regbuf_dma_unmap() argument
1344 if (!rb) in rpcrdma_regbuf_dma_unmap()
1347 if (!rpcrdma_regbuf_is_mapped(rb)) in rpcrdma_regbuf_dma_unmap()
1350 ib_dma_unmap_single(rb->rg_device, rdmab_addr(rb), rdmab_length(rb), in rpcrdma_regbuf_dma_unmap()
1351 rb->rg_direction); in rpcrdma_regbuf_dma_unmap()
1352 rb->rg_device = NULL; in rpcrdma_regbuf_dma_unmap()
1355 static void rpcrdma_regbuf_free(struct rpcrdma_regbuf *rb) in rpcrdma_regbuf_free() argument
1357 rpcrdma_regbuf_dma_unmap(rb); in rpcrdma_regbuf_free()
1358 if (rb) in rpcrdma_regbuf_free()
1359 kfree(rb->rg_data); in rpcrdma_regbuf_free()
1360 kfree(rb); in rpcrdma_regbuf_free()