Lines Matching full:length
27 int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length) in mr_check_range() argument
36 iova + length > mr->ibmr.iova + mr->ibmr.length) { in mr_check_range()
37 rxe_dbg_mr(mr, "iova/length out of range\n"); in mr_check_range()
129 int rxe_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length, in rxe_mr_init_user() argument
139 umem = ib_umem_get(&rxe->ib_dev, start, length, access); in rxe_mr_init_user()
246 unsigned int length, enum rxe_mr_copy_dir dir) in rxe_mr_copy_xarray() argument
254 while (length) { in rxe_mr_copy_xarray()
259 bytes = min_t(unsigned int, length, in rxe_mr_copy_xarray()
270 length -= bytes; in rxe_mr_copy_xarray()
278 unsigned int length, enum rxe_mr_copy_dir dir) in rxe_mr_copy_dma() argument
285 while (length) { in rxe_mr_copy_dma()
287 bytes = min_t(unsigned int, length, in rxe_mr_copy_dma()
300 length -= bytes; in rxe_mr_copy_dma()
305 unsigned int length, enum rxe_mr_copy_dir dir) in rxe_mr_copy() argument
309 if (length == 0) in rxe_mr_copy()
316 rxe_mr_copy_dma(mr, iova, addr, length, dir); in rxe_mr_copy()
320 err = mr_check_range(mr, iova, length); in rxe_mr_copy()
326 return rxe_mr_copy_xarray(mr, iova, addr, length, dir); in rxe_mr_copy()
337 int length, in copy_data() argument
348 if (length == 0) in copy_data()
351 if (length > resid) { in copy_data()
356 if (sge->length && (offset < sge->length)) { in copy_data()
364 while (length > 0) { in copy_data()
365 bytes = length; in copy_data()
367 if (offset >= sge->length) { in copy_data()
381 if (sge->length) { in copy_data()
393 if (bytes > sge->length - offset) in copy_data()
394 bytes = sge->length - offset; in copy_data()
404 length -= bytes; in copy_data()
424 int rxe_flush_pmem_iova(struct rxe_mr *mr, u64 iova, unsigned int length) in rxe_flush_pmem_iova() argument
433 /* mr must be valid even if length is zero */ in rxe_flush_pmem_iova()
437 if (length == 0) in rxe_flush_pmem_iova()
443 err = mr_check_range(mr, iova, length); in rxe_flush_pmem_iova()
447 while (length > 0) { in rxe_flush_pmem_iova()
453 bytes = min_t(unsigned int, length, in rxe_flush_pmem_iova()
460 length -= bytes; in rxe_flush_pmem_iova()
583 int advance_dma_data(struct rxe_dma_info *dma, unsigned int length) in advance_dma_data() argument
589 while (length) { in advance_dma_data()
592 if (offset >= sge->length) { in advance_dma_data()
600 bytes = length; in advance_dma_data()
602 if (bytes > sge->length - offset) in advance_dma_data()
603 bytes = sge->length - offset; in advance_dma_data()
607 length -= bytes; in advance_dma_data()