Lines Matching defs:iova

27 int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length)
35 if (iova < mr->ibmr.iova ||
36 iova + length > mr->ibmr.iova + mr->ibmr.length) {
37 rxe_dbg_mr(mr, "iova/length out of range\n");
75 static unsigned long rxe_mr_iova_to_index(struct rxe_mr *mr, u64 iova)
77 return (iova >> mr->page_shift) - (mr->ibmr.iova >> mr->page_shift);
80 static unsigned long rxe_mr_iova_to_page_offset(struct rxe_mr *mr, u64 iova)
82 return iova & (mr_page_size(mr) - 1);
240 mr->page_offset = mr->ibmr.iova & (page_size - 1);
245 static int rxe_mr_copy_xarray(struct rxe_mr *mr, u64 iova, void *addr,
248 unsigned int page_offset = rxe_mr_iova_to_page_offset(mr, iova);
249 unsigned long index = rxe_mr_iova_to_index(mr, iova);
304 int rxe_mr_copy(struct rxe_mr *mr, u64 iova, void *addr,
316 rxe_mr_copy_dma(mr, iova, addr, length, dir);
320 err = mr_check_range(mr, iova, length);
322 rxe_dbg_mr(mr, "iova out of range\n");
326 return rxe_mr_copy_xarray(mr, iova, addr, length, dir);
345 u64 iova;
397 iova = sge->addr + offset;
398 err = rxe_mr_copy(mr, iova, addr, bytes, dir);
424 int rxe_flush_pmem_iova(struct rxe_mr *mr, u64 iova, unsigned int length)
443 err = mr_check_range(mr, iova, length);
448 index = rxe_mr_iova_to_index(mr, iova);
450 page_offset = rxe_mr_iova_to_page_offset(mr, iova);
461 iova += bytes;
471 int rxe_mr_do_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
485 page_offset = iova & (PAGE_SIZE - 1);
486 page = ib_virt_dma_to_page(iova);
491 err = mr_check_range(mr, iova, sizeof(value));
493 rxe_dbg_mr(mr, "iova out of range\n");
496 page_offset = rxe_mr_iova_to_page_offset(mr, iova);
497 index = rxe_mr_iova_to_index(mr, iova);
504 rxe_dbg_mr(mr, "iova not aligned\n");
529 int rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value)
542 page_offset = iova & (PAGE_SIZE - 1);
543 page = ib_virt_dma_to_page(iova);
549 err = mr_check_range(mr, iova, sizeof(value));
551 rxe_dbg_mr(mr, "iova out of range\n");
554 page_offset = rxe_mr_iova_to_page_offset(mr, iova);
555 index = rxe_mr_iova_to_index(mr, iova);
577 int rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value)
716 mr->ibmr.iova = wqe->wr.wr.reg.mr->iova;