Lines Matching refs:vma

71 static void ehca_mm_open(struct vm_area_struct *vma)  in ehca_mm_open()  argument
73 u32 *count = (u32 *)vma->vm_private_data; in ehca_mm_open()
76 vma->vm_start, vma->vm_end); in ehca_mm_open()
82 vma->vm_start, vma->vm_end); in ehca_mm_open()
84 vma->vm_start, vma->vm_end, *count); in ehca_mm_open()
87 static void ehca_mm_close(struct vm_area_struct *vma) in ehca_mm_close() argument
89 u32 *count = (u32 *)vma->vm_private_data; in ehca_mm_close()
92 vma->vm_start, vma->vm_end); in ehca_mm_close()
97 vma->vm_start, vma->vm_end, *count); in ehca_mm_close()
105 static int ehca_mmap_fw(struct vm_area_struct *vma, struct h_galpas *galpas, in ehca_mmap_fw() argument
111 vsize = vma->vm_end - vma->vm_start; in ehca_mmap_fw()
113 ehca_gen_err("invalid vsize=%lx", vma->vm_end - vma->vm_start); in ehca_mmap_fw()
118 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); in ehca_mmap_fw()
121 ret = remap_4k_pfn(vma, vma->vm_start, physical >> EHCA_PAGESHIFT, in ehca_mmap_fw()
122 vma->vm_page_prot); in ehca_mmap_fw()
128 vma->vm_private_data = mm_count; in ehca_mmap_fw()
130 vma->vm_ops = &vm_ops; in ehca_mmap_fw()
135 static int ehca_mmap_queue(struct vm_area_struct *vma, struct ipz_queue *queue, in ehca_mmap_queue() argument
142 vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; in ehca_mmap_queue()
143 start = vma->vm_start; in ehca_mmap_queue()
147 ret = vm_insert_page(vma, start, page); in ehca_mmap_queue()
154 vma->vm_private_data = mm_count; in ehca_mmap_queue()
156 vma->vm_ops = &vm_ops; in ehca_mmap_queue()
161 static int ehca_mmap_cq(struct vm_area_struct *vma, struct ehca_cq *cq, in ehca_mmap_cq() argument
169 ret = ehca_mmap_fw(vma, &cq->galpas, &cq->mm_count_galpa); in ehca_mmap_cq()
180 ret = ehca_mmap_queue(vma, &cq->ipz_queue, &cq->mm_count_queue); in ehca_mmap_cq()
198 static int ehca_mmap_qp(struct vm_area_struct *vma, struct ehca_qp *qp, in ehca_mmap_qp() argument
206 ret = ehca_mmap_fw(vma, &qp->galpas, &qp->mm_count_galpa); in ehca_mmap_qp()
217 ret = ehca_mmap_queue(vma, &qp->ipz_rqueue, in ehca_mmap_qp()
229 ret = ehca_mmap_queue(vma, &qp->ipz_squeue, in ehca_mmap_qp()
248 int ehca_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) in ehca_mmap() argument
250 u64 fileoffset = vma->vm_pgoff; in ehca_mmap()
272 ret = ehca_mmap_cq(vma, cq, rsrc_type); in ehca_mmap()
294 ret = ehca_mmap_qp(vma, qp, rsrc_type); in ehca_mmap()