Lines Matching refs:vma
303 static inline int private_mapping_ok(struct vm_area_struct *vma) in private_mapping_ok() argument
305 return vma->vm_flags & VM_MAYSHARE; in private_mapping_ok()
309 static inline int private_mapping_ok(struct vm_area_struct *vma) in private_mapping_ok() argument
321 static int mmap_mem(struct file *file, struct vm_area_struct *vma) in mmap_mem() argument
323 size_t size = vma->vm_end - vma->vm_start; in mmap_mem()
325 if (!valid_mmap_phys_addr_range(vma->vm_pgoff, size)) in mmap_mem()
328 if (!private_mapping_ok(vma)) in mmap_mem()
331 if (!range_is_allowed(vma->vm_pgoff, size)) in mmap_mem()
334 if (!phys_mem_access_prot_allowed(file, vma->vm_pgoff, size, in mmap_mem()
335 &vma->vm_page_prot)) in mmap_mem()
338 vma->vm_page_prot = phys_mem_access_prot(file, vma->vm_pgoff, in mmap_mem()
340 vma->vm_page_prot); in mmap_mem()
342 vma->vm_ops = &mmap_mem_ops; in mmap_mem()
345 if (remap_pfn_range(vma, in mmap_mem()
346 vma->vm_start, in mmap_mem()
347 vma->vm_pgoff, in mmap_mem()
349 vma->vm_page_prot)) { in mmap_mem()
355 static int mmap_kmem(struct file *file, struct vm_area_struct *vma) in mmap_kmem() argument
360 pfn = __pa((u64)vma->vm_pgoff << PAGE_SHIFT) >> PAGE_SHIFT; in mmap_kmem()
372 vma->vm_pgoff = pfn; in mmap_kmem()
373 return mmap_mem(file, vma); in mmap_kmem()
654 static int mmap_zero(struct file *file, struct vm_area_struct *vma) in mmap_zero() argument
659 if (vma->vm_flags & VM_SHARED) in mmap_zero()
660 return shmem_zero_setup(vma); in mmap_zero()