Lines Matching refs:umem
46 void mlx5_ib_invalidate_range(struct ib_umem *umem, unsigned long start, in mlx5_ib_invalidate_range() argument
55 if (!umem || !umem->odp_data) { in mlx5_ib_invalidate_range()
60 mr = umem->odp_data->private; in mlx5_ib_invalidate_range()
65 start = max_t(u64, ib_umem_start(umem), start); in mlx5_ib_invalidate_range()
66 end = min_t(u64, ib_umem_end(umem), end); in mlx5_ib_invalidate_range()
75 for (addr = start; addr < end; addr += (u64)umem->page_size) { in mlx5_ib_invalidate_range()
76 idx = (addr - ib_umem_start(umem)) / PAGE_SIZE; in mlx5_ib_invalidate_range()
83 if (umem->odp_data->dma_list[idx] & in mlx5_ib_invalidate_range()
109 ib_umem_odp_unmap_dma_pages(umem, start, end); in mlx5_ib_invalidate_range()
204 if (!mr->umem->odp_data) { in pagefault_single_data_segment()
218 current_seq = ACCESS_ONCE(mr->umem->odp_data->notifiers_seq); in pagefault_single_data_segment()
235 if (mr->umem->writable) in pagefault_single_data_segment()
237 npages = ib_umem_odp_map_dma_pages(mr->umem, io_virt, bcnt, in pagefault_single_data_segment()
245 mutex_lock(&mr->umem->odp_data->umem_mutex); in pagefault_single_data_segment()
246 if (!ib_umem_mmu_notifier_retry(mr->umem, current_seq)) { in pagefault_single_data_segment()
256 mutex_unlock(&mr->umem->odp_data->umem_mutex); in pagefault_single_data_segment()
272 if (!mr->umem->odp_data->dying) { in pagefault_single_data_segment()
273 struct ib_umem_odp *odp_data = mr->umem->odp_data; in pagefault_single_data_segment()