Lines Matching refs:iova

27 int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length)  in mr_check_range()  argument
35 if (iova < mr->ibmr.iova || in mr_check_range()
36 iova + length > mr->ibmr.iova + mr->ibmr.length) { in mr_check_range()
80 static unsigned long rxe_mr_iova_to_index(struct rxe_mr *mr, u64 iova) in rxe_mr_iova_to_index() argument
82 return (iova >> mr->page_shift) - (mr->ibmr.iova >> mr->page_shift); in rxe_mr_iova_to_index()
85 static unsigned long rxe_mr_iova_to_page_offset(struct rxe_mr *mr, u64 iova) in rxe_mr_iova_to_page_offset() argument
87 return iova & (mr_page_size(mr) - 1); in rxe_mr_iova_to_page_offset()
134 int rxe_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length, u64 iova, in rxe_mr_init_user() argument
213 static int rxe_set_page(struct ib_mr *ibmr, u64 iova) in rxe_set_page() argument
216 struct page *page = virt_to_page(iova & mr->page_mask); in rxe_set_page()
245 mr->page_offset = mr->ibmr.iova & (page_size - 1); in rxe_map_mr_sg()
250 static int rxe_mr_copy_xarray(struct rxe_mr *mr, u64 iova, void *addr, in rxe_mr_copy_xarray() argument
253 unsigned int page_offset = rxe_mr_iova_to_page_offset(mr, iova); in rxe_mr_copy_xarray()
254 unsigned long index = rxe_mr_iova_to_index(mr, iova); in rxe_mr_copy_xarray()
282 static void rxe_mr_copy_dma(struct rxe_mr *mr, u64 iova, void *addr, in rxe_mr_copy_dma() argument
285 unsigned int page_offset = iova & (PAGE_SIZE - 1); in rxe_mr_copy_dma()
291 page = virt_to_page(iova & mr->page_mask); in rxe_mr_copy_dma()
303 iova += bytes; in rxe_mr_copy_dma()
309 int rxe_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, in rxe_mr_copy() argument
321 rxe_mr_copy_dma(mr, iova, addr, length, dir); in rxe_mr_copy()
325 err = mr_check_range(mr, iova, length); in rxe_mr_copy()
331 return rxe_mr_copy_xarray(mr, iova, addr, length, dir); in rxe_mr_copy()
350 u64 iova; in copy_data() local
402 iova = sge->addr + offset; in copy_data()
403 err = rxe_mr_copy(mr, iova, addr, bytes, dir); in copy_data()
429 int rxe_flush_pmem_iova(struct rxe_mr *mr, u64 iova, unsigned int length) in rxe_flush_pmem_iova() argument
448 err = mr_check_range(mr, iova, length); in rxe_flush_pmem_iova()
453 index = rxe_mr_iova_to_index(mr, iova); in rxe_flush_pmem_iova()
455 page_offset = rxe_mr_iova_to_page_offset(mr, iova); in rxe_flush_pmem_iova()
466 iova += bytes; in rxe_flush_pmem_iova()
476 int rxe_mr_do_atomic_op(struct rxe_mr *mr, u64 iova, int opcode, in rxe_mr_do_atomic_op() argument
490 page_offset = iova & (PAGE_SIZE - 1); in rxe_mr_do_atomic_op()
491 page = virt_to_page(iova & PAGE_MASK); in rxe_mr_do_atomic_op()
496 err = mr_check_range(mr, iova, sizeof(value)); in rxe_mr_do_atomic_op()
501 page_offset = rxe_mr_iova_to_page_offset(mr, iova); in rxe_mr_do_atomic_op()
502 index = rxe_mr_iova_to_index(mr, iova); in rxe_mr_do_atomic_op()
534 int rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value) in rxe_mr_do_atomic_write() argument
547 page_offset = iova & (PAGE_SIZE - 1); in rxe_mr_do_atomic_write()
548 page = virt_to_page(iova & PAGE_MASK); in rxe_mr_do_atomic_write()
554 err = mr_check_range(mr, iova, sizeof(value)); in rxe_mr_do_atomic_write()
559 page_offset = rxe_mr_iova_to_page_offset(mr, iova); in rxe_mr_do_atomic_write()
560 index = rxe_mr_iova_to_index(mr, iova); in rxe_mr_do_atomic_write()
582 int rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value) in rxe_mr_do_atomic_write() argument
719 mr->ibmr.iova = wqe->wr.wr.reg.mr->iova; in rxe_reg_fast_mr()