Lines Matching refs:vma

729 static int qib_mmap_mem(struct vm_area_struct *vma, struct qib_ctxtdata *rcd,  in qib_mmap_mem()  argument
736 if ((vma->vm_end - vma->vm_start) > len) { in qib_mmap_mem()
739 vma->vm_end - vma->vm_start, len); in qib_mmap_mem()
749 if (vma->vm_flags & VM_WRITE) { in qib_mmap_mem()
757 vma->vm_flags &= ~VM_MAYWRITE; in qib_mmap_mem()
761 ret = remap_pfn_range(vma, vma->vm_start, pfn, in qib_mmap_mem()
762 len, vma->vm_page_prot); in qib_mmap_mem()
771 static int mmap_ureg(struct vm_area_struct *vma, struct qib_devdata *dd, in mmap_ureg() argument
784 if ((vma->vm_end - vma->vm_start) > sz) { in mmap_ureg()
787 vma->vm_end - vma->vm_start); in mmap_ureg()
791 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); in mmap_ureg()
793 vma->vm_flags |= VM_DONTCOPY | VM_DONTEXPAND; in mmap_ureg()
794 ret = io_remap_pfn_range(vma, vma->vm_start, in mmap_ureg()
796 vma->vm_end - vma->vm_start, in mmap_ureg()
797 vma->vm_page_prot); in mmap_ureg()
802 static int mmap_piobufs(struct vm_area_struct *vma, in mmap_piobufs() argument
816 if ((vma->vm_end - vma->vm_start) > (piocnt * dd->palign)) { in mmap_piobufs()
819 vma->vm_end - vma->vm_start); in mmap_piobufs()
828 pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; in mmap_piobufs()
829 pgprot_val(vma->vm_page_prot) |= _PAGE_WRITETHRU; in mmap_piobufs()
830 pgprot_val(vma->vm_page_prot) &= ~_PAGE_GUARDED; in mmap_piobufs()
837 vma->vm_flags &= ~VM_MAYREAD; in mmap_piobufs()
838 vma->vm_flags |= VM_DONTCOPY | VM_DONTEXPAND; in mmap_piobufs()
842 vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); in mmap_piobufs()
844 ret = io_remap_pfn_range(vma, vma->vm_start, phys >> PAGE_SHIFT, in mmap_piobufs()
845 vma->vm_end - vma->vm_start, in mmap_piobufs()
846 vma->vm_page_prot); in mmap_piobufs()
851 static int mmap_rcvegrbufs(struct vm_area_struct *vma, in mmap_rcvegrbufs() argument
862 if ((vma->vm_end - vma->vm_start) > total_size) { in mmap_rcvegrbufs()
865 vma->vm_end - vma->vm_start, in mmap_rcvegrbufs()
871 if (vma->vm_flags & VM_WRITE) { in mmap_rcvegrbufs()
874 vma->vm_flags); in mmap_rcvegrbufs()
879 vma->vm_flags &= ~VM_MAYWRITE; in mmap_rcvegrbufs()
881 start = vma->vm_start; in mmap_rcvegrbufs()
885 ret = remap_pfn_range(vma, start, pfn, size, in mmap_rcvegrbufs()
886 vma->vm_page_prot); in mmap_rcvegrbufs()
899 static int qib_file_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in qib_file_vma_fault() argument
917 static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr, in mmap_kvaddr() argument
960 if (vma->vm_flags & VM_WRITE) { in mmap_kvaddr()
963 vma->vm_flags); in mmap_kvaddr()
971 vma->vm_flags &= ~VM_MAYWRITE; in mmap_kvaddr()
974 len = vma->vm_end - vma->vm_start; in mmap_kvaddr()
980 vma->vm_pgoff = (unsigned long) addr >> PAGE_SHIFT; in mmap_kvaddr()
981 vma->vm_ops = &qib_file_vm_ops; in mmap_kvaddr()
982 vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; in mmap_kvaddr()
999 static int qib_mmapf(struct file *fp, struct vm_area_struct *vma) in qib_mmapf() argument
1008 if (!rcd || !(vma->vm_flags & VM_SHARED)) { in qib_mmapf()
1023 pgaddr = vma->vm_pgoff << PAGE_SHIFT; in qib_mmapf()
1039 ret = mmap_kvaddr(vma, pgaddr, rcd, subctxt_fp(fp)); in qib_mmapf()
1066 ret = mmap_ureg(vma, dd, ureg); in qib_mmapf()
1068 ret = mmap_piobufs(vma, dd, rcd, piobufs, piocnt); in qib_mmapf()
1071 ret = qib_mmap_mem(vma, rcd, PAGE_SIZE, in qib_mmapf()
1075 ret = mmap_rcvegrbufs(vma, rcd); in qib_mmapf()
1082 ret = qib_mmap_mem(vma, rcd, rcd->rcvhdrq_size, in qib_mmapf()
1086 ret = qib_mmap_mem(vma, rcd, PAGE_SIZE, in qib_mmapf()
1094 vma->vm_private_data = NULL; in qib_mmapf()
1100 vma->vm_end - vma->vm_start); in qib_mmapf()