Lines Matching +full:src +full:-

2  * Copyright (c) 2012-2016 VMware, Inc.  All rights reserved.
7 * 2-Clause License. This program is distributed in the hope that it
11 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html.
17 * The BSD 2-Clause License
23 * - Redistributions of source code must retain the above
27 * - Redistributions in binary form must reproduce the above
58 return -EINVAL; in pvrdma_page_dir_init()
62 pdir->dir = dma_alloc_coherent(&dev->pdev->dev, PAGE_SIZE, in pvrdma_page_dir_init()
63 &pdir->dir_dma, GFP_KERNEL); in pvrdma_page_dir_init()
64 if (!pdir->dir) in pvrdma_page_dir_init()
67 pdir->ntables = PVRDMA_PAGE_DIR_TABLE(npages - 1) + 1; in pvrdma_page_dir_init()
68 pdir->tables = kcalloc(pdir->ntables, sizeof(*pdir->tables), in pvrdma_page_dir_init()
70 if (!pdir->tables) in pvrdma_page_dir_init()
73 for (i = 0; i < pdir->ntables; i++) { in pvrdma_page_dir_init()
74 pdir->tables[i] = dma_alloc_coherent(&dev->pdev->dev, PAGE_SIZE, in pvrdma_page_dir_init()
75 (dma_addr_t *)&pdir->dir[i], in pvrdma_page_dir_init()
77 if (!pdir->tables[i]) in pvrdma_page_dir_init()
81 pdir->npages = npages; in pvrdma_page_dir_init()
84 pdir->pages = kcalloc(npages, sizeof(*pdir->pages), in pvrdma_page_dir_init()
86 if (!pdir->pages) in pvrdma_page_dir_init()
89 for (i = 0; i < pdir->npages; i++) { in pvrdma_page_dir_init()
92 pdir->pages[i] = dma_alloc_coherent(&dev->pdev->dev, in pvrdma_page_dir_init()
96 if (!pdir->pages[i]) in pvrdma_page_dir_init()
108 return -ENOMEM; in pvrdma_page_dir_init()
113 return pdir->tables[PVRDMA_PAGE_DIR_TABLE(idx)]; in pvrdma_page_dir_table()
124 if (pdir->pages) { in pvrdma_page_dir_cleanup_pages()
127 for (i = 0; i < pdir->npages && pdir->pages[i]; i++) { in pvrdma_page_dir_cleanup_pages()
130 dma_free_coherent(&dev->pdev->dev, PAGE_SIZE, in pvrdma_page_dir_cleanup_pages()
131 pdir->pages[i], page_dma); in pvrdma_page_dir_cleanup_pages()
134 kfree(pdir->pages); in pvrdma_page_dir_cleanup_pages()
141 if (pdir->tables) { in pvrdma_page_dir_cleanup_tables()
146 for (i = 0; i < pdir->ntables; i++) { in pvrdma_page_dir_cleanup_tables()
147 u64 *table = pdir->tables[i]; in pvrdma_page_dir_cleanup_tables()
150 dma_free_coherent(&dev->pdev->dev, PAGE_SIZE, in pvrdma_page_dir_cleanup_tables()
151 table, pdir->dir[i]); in pvrdma_page_dir_cleanup_tables()
154 kfree(pdir->tables); in pvrdma_page_dir_cleanup_tables()
161 if (pdir->dir) { in pvrdma_page_dir_cleanup()
163 dma_free_coherent(&dev->pdev->dev, PAGE_SIZE, in pvrdma_page_dir_cleanup()
164 pdir->dir, pdir->dir_dma); in pvrdma_page_dir_cleanup()
173 if (idx >= pdir->npages) in pvrdma_page_dir_insert_dma()
174 return -EINVAL; in pvrdma_page_dir_insert_dma()
189 if (offset >= pdir->npages) in pvrdma_page_dir_insert_umem()
190 return -EINVAL; in pvrdma_page_dir_insert_umem()
212 if (num_pages > pdir->npages) in pvrdma_page_dir_insert_page_list()
213 return -EINVAL; in pvrdma_page_dir_insert_page_list()
224 void pvrdma_qp_cap_to_ib(struct ib_qp_cap *dst, const struct pvrdma_qp_cap *src) in pvrdma_qp_cap_to_ib() argument
226 dst->max_send_wr = src->max_send_wr; in pvrdma_qp_cap_to_ib()
227 dst->max_recv_wr = src->max_recv_wr; in pvrdma_qp_cap_to_ib()
228 dst->max_send_sge = src->max_send_sge; in pvrdma_qp_cap_to_ib()
229 dst->max_recv_sge = src->max_recv_sge; in pvrdma_qp_cap_to_ib()
230 dst->max_inline_data = src->max_inline_data; in pvrdma_qp_cap_to_ib()
233 void ib_qp_cap_to_pvrdma(struct pvrdma_qp_cap *dst, const struct ib_qp_cap *src) in ib_qp_cap_to_pvrdma() argument
235 dst->max_send_wr = src->max_send_wr; in ib_qp_cap_to_pvrdma()
236 dst->max_recv_wr = src->max_recv_wr; in ib_qp_cap_to_pvrdma()
237 dst->max_send_sge = src->max_send_sge; in ib_qp_cap_to_pvrdma()
238 dst->max_recv_sge = src->max_recv_sge; in ib_qp_cap_to_pvrdma()
239 dst->max_inline_data = src->max_inline_data; in ib_qp_cap_to_pvrdma()
242 void pvrdma_gid_to_ib(union ib_gid *dst, const union pvrdma_gid *src) in pvrdma_gid_to_ib() argument
245 memcpy(dst, src, sizeof(*src)); in pvrdma_gid_to_ib()
248 void ib_gid_to_pvrdma(union pvrdma_gid *dst, const union ib_gid *src) in ib_gid_to_pvrdma() argument
251 memcpy(dst, src, sizeof(*src)); in ib_gid_to_pvrdma()
255 const struct pvrdma_global_route *src) in pvrdma_global_route_to_ib() argument
257 pvrdma_gid_to_ib(&dst->dgid, &src->dgid); in pvrdma_global_route_to_ib()
258 dst->flow_label = src->flow_label; in pvrdma_global_route_to_ib()
259 dst->sgid_index = src->sgid_index; in pvrdma_global_route_to_ib()
260 dst->hop_limit = src->hop_limit; in pvrdma_global_route_to_ib()
261 dst->traffic_class = src->traffic_class; in pvrdma_global_route_to_ib()
265 const struct ib_global_route *src) in ib_global_route_to_pvrdma() argument
267 ib_gid_to_pvrdma(&dst->dgid, &src->dgid); in ib_global_route_to_pvrdma()
268 dst->flow_label = src->flow_label; in ib_global_route_to_pvrdma()
269 dst->sgid_index = src->sgid_index; in ib_global_route_to_pvrdma()
270 dst->hop_limit = src->hop_limit; in ib_global_route_to_pvrdma()
271 dst->traffic_class = src->traffic_class; in ib_global_route_to_pvrdma()
275 const struct pvrdma_ah_attr *src) in pvrdma_ah_attr_to_rdma() argument
277 dst->type = RDMA_AH_ATTR_TYPE_ROCE; in pvrdma_ah_attr_to_rdma()
278 pvrdma_global_route_to_ib(rdma_ah_retrieve_grh(dst), &src->grh); in pvrdma_ah_attr_to_rdma()
279 rdma_ah_set_dlid(dst, src->dlid); in pvrdma_ah_attr_to_rdma()
280 rdma_ah_set_sl(dst, src->sl); in pvrdma_ah_attr_to_rdma()
281 rdma_ah_set_path_bits(dst, src->src_path_bits); in pvrdma_ah_attr_to_rdma()
282 rdma_ah_set_static_rate(dst, src->static_rate); in pvrdma_ah_attr_to_rdma()
283 rdma_ah_set_ah_flags(dst, src->ah_flags); in pvrdma_ah_attr_to_rdma()
284 rdma_ah_set_port_num(dst, src->port_num); in pvrdma_ah_attr_to_rdma()
285 memcpy(dst->roce.dmac, &src->dmac, ETH_ALEN); in pvrdma_ah_attr_to_rdma()
289 const struct rdma_ah_attr *src) in rdma_ah_attr_to_pvrdma() argument
291 ib_global_route_to_pvrdma(&dst->grh, rdma_ah_read_grh(src)); in rdma_ah_attr_to_pvrdma()
292 dst->dlid = rdma_ah_get_dlid(src); in rdma_ah_attr_to_pvrdma()
293 dst->sl = rdma_ah_get_sl(src); in rdma_ah_attr_to_pvrdma()
294 dst->src_path_bits = rdma_ah_get_path_bits(src); in rdma_ah_attr_to_pvrdma()
295 dst->static_rate = rdma_ah_get_static_rate(src); in rdma_ah_attr_to_pvrdma()
296 dst->ah_flags = rdma_ah_get_ah_flags(src); in rdma_ah_attr_to_pvrdma()
297 dst->port_num = rdma_ah_get_port_num(src); in rdma_ah_attr_to_pvrdma()
298 memcpy(&dst->dmac, src->roce.dmac, sizeof(dst->dmac)); in rdma_ah_attr_to_pvrdma()