Lines Matching refs:vma

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