Lines Matching refs:recv_buf

295 			struct mlx5_vhca_recv_buf *recv_buf,
299 recv_buf->npages;
325 *mtt++ = cpu_to_be64(recv_buf->dma_addrs[i]);
1111 data->lkey = cpu_to_be32(qp->recv_buf.mkey);
1112 data->addr = cpu_to_be64(qp->recv_buf.next_rq_offset);
1142 struct mlx5_vhca_recv_buf *recv_buf = &qp->recv_buf;
1147 recv_buf->next_rq_offset += qp->max_msg_size;
1192 static void free_recv_pages(struct mlx5_vhca_recv_buf *recv_buf)
1197 for (i = 0; i < recv_buf->npages; i++)
1198 __free_page(recv_buf->page_list[i]);
1200 kvfree(recv_buf->page_list);
1203 static int alloc_recv_pages(struct mlx5_vhca_recv_buf *recv_buf,
1209 recv_buf->page_list = kvcalloc(npages, sizeof(*recv_buf->page_list),
1211 if (!recv_buf->page_list)
1217 recv_buf->page_list + done);
1226 recv_buf->npages = npages;
1231 if (recv_buf->page_list[i])
1232 __free_page(recv_buf->page_list[i]);
1235 kvfree(recv_buf->page_list);
1240 struct mlx5_vhca_recv_buf *recv_buf)
1244 recv_buf->dma_addrs = kvcalloc(recv_buf->npages,
1245 sizeof(*recv_buf->dma_addrs),
1247 if (!recv_buf->dma_addrs)
1250 for (i = 0; i < recv_buf->npages; i++) {
1251 recv_buf->dma_addrs[i] = dma_map_page(mdev->device,
1252 recv_buf->page_list[i],
1255 if (dma_mapping_error(mdev->device, recv_buf->dma_addrs[i]))
1262 dma_unmap_single(mdev->device, recv_buf->dma_addrs[j],
1265 kvfree(recv_buf->dma_addrs);
1270 struct mlx5_vhca_recv_buf *recv_buf)
1274 for (i = 0; i < recv_buf->npages; i++)
1275 dma_unmap_single(mdev->device, recv_buf->dma_addrs[i],
1278 kvfree(recv_buf->dma_addrs);
1284 struct mlx5_vhca_recv_buf *recv_buf = &qp->recv_buf;
1286 mlx5_core_destroy_mkey(mdev, recv_buf->mkey);
1287 unregister_dma_recv_pages(mdev, recv_buf);
1288 free_recv_pages(&qp->recv_buf);
1296 struct mlx5_vhca_recv_buf *recv_buf = &qp->recv_buf;
1299 err = alloc_recv_pages(recv_buf, npages);
1303 err = register_dma_recv_pages(mdev, recv_buf);
1307 err = _create_mkey(mdev, pdn, NULL, recv_buf, &recv_buf->mkey);
1314 unregister_dma_recv_pages(mdev, recv_buf);
1316 free_recv_pages(recv_buf);
1482 if (WARN_ON(index >= qp->recv_buf.npages ||
1486 page = qp->recv_buf.page_list[index];
1515 qp->recv_buf.next_rq_offset = ix * qp->max_msg_size;