• Home
  • Raw
  • Download

Lines Matching refs:vma

49 	struct vm_area_struct *vma;  member
53 static void drm_vm_open(struct vm_area_struct *vma);
54 static void drm_vm_close(struct vm_area_struct *vma);
57 struct vm_area_struct *vma) in drm_io_prot() argument
59 pgprot_t tmp = vm_get_page_prot(vma->vm_flags); in drm_io_prot()
67 if (efi_range_is_wc(vma->vm_start, vma->vm_end - in drm_io_prot()
68 vma->vm_start)) in drm_io_prot()
78 static pgprot_t drm_dma_prot(uint32_t map_type, struct vm_area_struct *vma) in drm_dma_prot() argument
80 pgprot_t tmp = vm_get_page_prot(vma->vm_flags); in drm_dma_prot()
99 static int drm_do_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_do_vm_fault() argument
101 struct drm_file *priv = vma->vm_file->private_data; in drm_do_vm_fault()
116 if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff, &hash)) in drm_do_vm_fault()
128 vma->vm_start; in drm_do_vm_fault()
172 static int drm_do_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_do_vm_fault() argument
188 static int drm_do_vm_shm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_do_vm_shm_fault() argument
190 struct drm_local_map *map = vma->vm_private_data; in drm_do_vm_shm_fault()
198 offset = (unsigned long)vmf->virtual_address - vma->vm_start; in drm_do_vm_shm_fault()
218 static void drm_vm_shm_close(struct vm_area_struct *vma) in drm_vm_shm_close() argument
220 struct drm_file *priv = vma->vm_file->private_data; in drm_vm_shm_close()
228 vma->vm_start, vma->vm_end - vma->vm_start); in drm_vm_shm_close()
230 map = vma->vm_private_data; in drm_vm_shm_close()
234 if (pt->vma->vm_private_data == map) in drm_vm_shm_close()
236 if (pt->vma == vma) { in drm_vm_shm_close()
290 static int drm_do_vm_dma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_do_vm_dma_fault() argument
292 struct drm_file *priv = vma->vm_file->private_data; in drm_do_vm_dma_fault()
304 offset = (unsigned long)vmf->virtual_address - vma->vm_start; /* vm_[pg]off[set] should be 0 */ in drm_do_vm_dma_fault()
324 static int drm_do_vm_sg_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_do_vm_sg_fault() argument
326 struct drm_local_map *map = vma->vm_private_data; in drm_do_vm_sg_fault()
327 struct drm_file *priv = vma->vm_file->private_data; in drm_do_vm_sg_fault()
340 offset = (unsigned long)vmf->virtual_address - vma->vm_start; in drm_do_vm_sg_fault()
350 static int drm_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_vm_fault() argument
352 return drm_do_vm_fault(vma, vmf); in drm_vm_fault()
355 static int drm_vm_shm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_vm_shm_fault() argument
357 return drm_do_vm_shm_fault(vma, vmf); in drm_vm_shm_fault()
360 static int drm_vm_dma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_vm_dma_fault() argument
362 return drm_do_vm_dma_fault(vma, vmf); in drm_vm_dma_fault()
365 static int drm_vm_sg_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in drm_vm_sg_fault() argument
367 return drm_do_vm_sg_fault(vma, vmf); in drm_vm_sg_fault()
407 struct vm_area_struct *vma) in drm_vm_open_locked() argument
412 vma->vm_start, vma->vm_end - vma->vm_start); in drm_vm_open_locked()
416 vma_entry->vma = vma; in drm_vm_open_locked()
422 static void drm_vm_open(struct vm_area_struct *vma) in drm_vm_open() argument
424 struct drm_file *priv = vma->vm_file->private_data; in drm_vm_open()
428 drm_vm_open_locked(dev, vma); in drm_vm_open()
433 struct vm_area_struct *vma) in drm_vm_close_locked() argument
438 vma->vm_start, vma->vm_end - vma->vm_start); in drm_vm_close_locked()
441 if (pt->vma == vma) { in drm_vm_close_locked()
457 static void drm_vm_close(struct vm_area_struct *vma) in drm_vm_close() argument
459 struct drm_file *priv = vma->vm_file->private_data; in drm_vm_close()
463 drm_vm_close_locked(dev, vma); in drm_vm_close()
477 static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) in drm_mmap_dma() argument
482 unsigned long length = vma->vm_end - vma->vm_start; in drm_mmap_dma()
487 vma->vm_start, vma->vm_end, vma->vm_pgoff); in drm_mmap_dma()
496 vma->vm_flags &= ~(VM_WRITE | VM_MAYWRITE); in drm_mmap_dma()
498 pgprot_val(vma->vm_page_prot) &= ~_PAGE_RW; in drm_mmap_dma()
503 vma->vm_page_prot = in drm_mmap_dma()
506 (__pte(pgprot_val(vma->vm_page_prot))))); in drm_mmap_dma()
510 vma->vm_ops = &drm_vm_dma_ops; in drm_mmap_dma()
512 vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; in drm_mmap_dma()
514 drm_vm_open_locked(dev, vma); in drm_mmap_dma()
540 static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma) in drm_mmap_locked() argument
549 vma->vm_start, vma->vm_end, vma->vm_pgoff); in drm_mmap_locked()
558 if (!vma->vm_pgoff in drm_mmap_locked()
564 return drm_mmap_dma(filp, vma); in drm_mmap_locked()
566 if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff, &hash)) { in drm_mmap_locked()
576 if (map->size < vma->vm_end - vma->vm_start) in drm_mmap_locked()
580 vma->vm_flags &= ~(VM_WRITE | VM_MAYWRITE); in drm_mmap_locked()
582 pgprot_val(vma->vm_page_prot) &= ~_PAGE_RW; in drm_mmap_locked()
587 vma->vm_page_prot = in drm_mmap_locked()
590 (__pte(pgprot_val(vma->vm_page_prot))))); in drm_mmap_locked()
604 pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; in drm_mmap_locked()
606 vma->vm_ops = &drm_vm_ops; in drm_mmap_locked()
614 vma->vm_page_prot = drm_io_prot(map, vma); in drm_mmap_locked()
615 if (io_remap_pfn_range(vma, vma->vm_start, in drm_mmap_locked()
617 vma->vm_end - vma->vm_start, in drm_mmap_locked()
618 vma->vm_page_prot)) in drm_mmap_locked()
623 vma->vm_start, vma->vm_end, (unsigned long long)(map->offset + offset)); in drm_mmap_locked()
625 vma->vm_ops = &drm_vm_ops; in drm_mmap_locked()
630 if (remap_pfn_range(vma, vma->vm_start, in drm_mmap_locked()
632 vma->vm_end - vma->vm_start, vma->vm_page_prot)) in drm_mmap_locked()
634 vma->vm_page_prot = drm_dma_prot(map->type, vma); in drm_mmap_locked()
637 vma->vm_ops = &drm_vm_shm_ops; in drm_mmap_locked()
638 vma->vm_private_data = (void *)map; in drm_mmap_locked()
641 vma->vm_ops = &drm_vm_sg_ops; in drm_mmap_locked()
642 vma->vm_private_data = (void *)map; in drm_mmap_locked()
643 vma->vm_page_prot = drm_dma_prot(map->type, vma); in drm_mmap_locked()
648 vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; in drm_mmap_locked()
650 drm_vm_open_locked(dev, vma); in drm_mmap_locked()
654 int drm_legacy_mmap(struct file *filp, struct vm_area_struct *vma) in drm_legacy_mmap() argument
664 ret = drm_mmap_locked(filp, vma); in drm_legacy_mmap()
673 struct drm_vma_entry *vma, *vma_temp; in drm_legacy_vma_flush() local
676 list_for_each_entry_safe(vma, vma_temp, &dev->vmalist, head) { in drm_legacy_vma_flush()
677 list_del(&vma->head); in drm_legacy_vma_flush()
678 kfree(vma); in drm_legacy_vma_flush()
687 struct vm_area_struct *vma; in drm_vma_info() local
702 vma = pt->vma; in drm_vma_info()
703 if (!vma) in drm_vma_info()
708 (void *)vma->vm_start, (void *)vma->vm_end, in drm_vma_info()
709 vma->vm_flags & VM_READ ? 'r' : '-', in drm_vma_info()
710 vma->vm_flags & VM_WRITE ? 'w' : '-', in drm_vma_info()
711 vma->vm_flags & VM_EXEC ? 'x' : '-', in drm_vma_info()
712 vma->vm_flags & VM_MAYSHARE ? 's' : 'p', in drm_vma_info()
713 vma->vm_flags & VM_LOCKED ? 'l' : '-', in drm_vma_info()
714 vma->vm_flags & VM_IO ? 'i' : '-', in drm_vma_info()
715 vma->vm_pgoff); in drm_vma_info()
718 pgprot = pgprot_val(vma->vm_page_prot); in drm_vma_info()