Home
last modified time | relevance | path

Searched refs:vmf (Results 1 – 25 of 107) sorted by relevance

12345

/linux/mm/
H A Dmemory.c97 static vm_fault_t do_fault(struct vm_fault *vmf);
98 static vm_fault_t do_anonymous_page(struct vm_fault *vmf);
99 static bool vmf_pte_changed(struct vm_fault *vmf);
105 static __always_inline bool vmf_orig_pte_uffd_wp(struct vm_fault *vmf) in vmf_orig_pte_uffd_wp() argument
107 if (!userfaultfd_wp(vmf->vma)) in vmf_orig_pte_uffd_wp()
109 if (!(vmf->flags & FAULT_FLAG_ORIG_PTE_VALID)) in vmf_orig_pte_uffd_wp()
112 return pte_is_uffd_wp_marker(vmf->orig_pte); in vmf_orig_pte_uffd_wp()
2868 vm_fault_t vmf_insert_page_mkwrite(struct vm_fault *vmf, struct page *page, in vmf_insert_page_mkwrite() argument
2871 pgprot_t pgprot = vmf->vma->vm_page_prot; in vmf_insert_page_mkwrite()
2872 unsigned long addr = vmf->address; in vmf_insert_page_mkwrite()
[all …]
H A Dhuge_memory.c1400 static vm_fault_t __do_huge_pmd_anonymous_page(struct vm_fault *vmf) in __do_huge_pmd_anonymous_page() argument
1402 unsigned long haddr = vmf->address & HPAGE_PMD_MASK; in __do_huge_pmd_anonymous_page()
1403 struct vm_area_struct *vma = vmf->vma; in __do_huge_pmd_anonymous_page()
1408 folio = vma_alloc_anon_folio_pmd(vma, vmf->address); in __do_huge_pmd_anonymous_page()
1418 vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd); in __do_huge_pmd_anonymous_page()
1419 if (unlikely(!pmd_none(*vmf->pmd))) { in __do_huge_pmd_anonymous_page()
1428 spin_unlock(vmf->ptl); in __do_huge_pmd_anonymous_page()
1431 ret = handle_userfault(vmf, VM_UFFD_MISSING); in __do_huge_pmd_anonymous_page()
1435 pgtable_trans_huge_deposit(vma->vm_mm, vmf->pmd, pgtable); in __do_huge_pmd_anonymous_page()
1436 map_anon_folio_pmd_pf(folio, vmf->pmd, vma, haddr); in __do_huge_pmd_anonymous_page()
[all …]
H A Dhugetlb.c4764 static vm_fault_t hugetlb_vm_op_fault(struct vm_fault *vmf) in hugetlb_vm_op_fault() argument
5414 static vm_fault_t hugetlb_wp(struct vm_fault *vmf) in hugetlb_wp() argument
5416 struct vm_area_struct *vma = vmf->vma; in hugetlb_wp()
5418 const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; in hugetlb_wp()
5419 pte_t pte = huge_ptep_get(mm, vmf->address, vmf->pte); in hugetlb_wp()
5440 set_huge_ptep_writable(vma, vmf->address, vmf->pte); in hugetlb_wp()
5466 set_huge_ptep_maybe_writable(vma, vmf->address, in hugetlb_wp()
5467 vmf->pte); in hugetlb_wp()
5495 spin_unlock(vmf->ptl); in hugetlb_wp()
5496 new_folio = alloc_hugetlb_folio(vma, vmf->address, cow_from_owner); in hugetlb_wp()
[all …]
H A Dfilemap.c1754 vm_fault_t __folio_lock_or_retry(struct folio *folio, struct vm_fault *vmf) in __folio_lock_or_retry() argument
1756 unsigned int flags = vmf->flags; in __folio_lock_or_retry()
1766 release_fault_lock(vmf); in __folio_lock_or_retry()
1778 release_fault_lock(vmf); in __folio_lock_or_retry()
3265 static int lock_folio_maybe_drop_mmap(struct vm_fault *vmf, struct folio *folio, in lock_folio_maybe_drop_mmap() argument
3276 if (vmf->flags & FAULT_FLAG_RETRY_NOWAIT) in lock_folio_maybe_drop_mmap()
3279 *fpin = maybe_unlock_mmap_for_io(vmf, *fpin); in lock_folio_maybe_drop_mmap()
3280 if (vmf->flags & FAULT_FLAG_KILLABLE) { in lock_folio_maybe_drop_mmap()
3290 release_fault_lock(vmf); in lock_folio_maybe_drop_mmap()
3306 static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) in do_sync_mmap_readahead() argument
[all …]
H A Dswap_state.c752 static int swap_vma_ra_win(struct vm_fault *vmf, unsigned long *start, in swap_vma_ra_win() argument
755 struct vm_area_struct *vma = vmf->vma; in swap_vma_ra_win()
764 faddr = vmf->address; in swap_vma_ra_win()
807 struct mempolicy *mpol, pgoff_t targ_ilx, struct vm_fault *vmf) in swap_vma_readahead() argument
818 win = swap_vma_ra_win(vmf, &start, &end); in swap_vma_readahead()
822 ilx = targ_ilx - PFN_DOWN(vmf->address - start); in swap_vma_readahead()
830 pte = pte_offset_map(vmf->pmd, addr); in swap_vma_readahead()
858 if (addr != vmf->address) { in swap_vma_readahead()
892 struct vm_fault *vmf) in swapin_readahead() argument
898 mpol = get_vma_policy(vmf->vma, vmf->address, 0, &ilx); in swapin_readahead()
[all …]
/linux/arch/x86/entry/vdso/
H A Dvma.c53 struct vm_area_struct *vma, struct vm_fault *vmf) in vdso_fault() argument
57 if (!image || (vmf->pgoff << PAGE_SHIFT) >= image->size) in vdso_fault()
60 vmf->page = virt_to_page(image->data + (vmf->pgoff << PAGE_SHIFT)); in vdso_fault()
61 get_page(vmf->page); in vdso_fault()
88 struct vm_area_struct *vma, struct vm_fault *vmf) in vvar_vclock_fault() argument
90 switch (vmf->pgoff) { in vvar_vclock_fault()
97 return vmf_insert_pfn_prot(vma, vmf->address, in vvar_vclock_fault()
106 return vmf_insert_pfn(vma, vmf->address, pfn); in vvar_vclock_fault()
/linux/drivers/gpu/drm/vmwgfx/
H A Dvmwgfx_page_dirty.c401 vm_fault_t vmw_bo_vm_mkwrite(struct vm_fault *vmf) in vmw_bo_vm_mkwrite() argument
403 struct vm_area_struct *vma = vmf->vma; in vmw_bo_vm_mkwrite()
415 save_flags = vmf->flags; in vmw_bo_vm_mkwrite()
416 vmf->flags &= ~FAULT_FLAG_ALLOW_RETRY; in vmw_bo_vm_mkwrite()
417 ret = ttm_bo_vm_reserve(bo, vmf); in vmw_bo_vm_mkwrite()
418 vmf->flags = save_flags; in vmw_bo_vm_mkwrite()
422 page_offset = vmf->pgoff - drm_vma_node_start(&bo->base.vma_node); in vmw_bo_vm_mkwrite()
442 vm_fault_t vmw_bo_vm_fault(struct vm_fault *vmf) in vmw_bo_vm_fault() argument
444 struct vm_area_struct *vma = vmf->vma; in vmw_bo_vm_fault()
452 ret = ttm_bo_vm_reserve(bo, vmf); in vmw_bo_vm_fault()
[all …]
/linux/drivers/gpu/drm/
H A Ddrm_gem_shmem_helper.c557 static void drm_gem_shmem_record_mkwrite(struct vm_fault *vmf) in drm_gem_shmem_record_mkwrite() argument
559 struct vm_area_struct *vma = vmf->vma; in drm_gem_shmem_record_mkwrite()
563 pgoff_t page_offset = vmf->pgoff - vma->vm_pgoff; /* page offset within VMA */ in drm_gem_shmem_record_mkwrite()
572 static vm_fault_t try_insert_pfn(struct vm_fault *vmf, unsigned int order, in try_insert_pfn() argument
576 return vmf_insert_pfn(vmf->vma, vmf->address, pfn); in try_insert_pfn()
580 bool aligned = (vmf->address & ~PMD_MASK) == (paddr & ~PMD_MASK); in try_insert_pfn()
595 ret = vmf_insert_pfn_pmd(vmf, pfn, in try_insert_pfn()
596 vmf->flags & FAULT_FLAG_WRITE); in try_insert_pfn()
597 if (ret == VM_FAULT_NOPAGE && (vmf->flags & FAULT_FLAG_WRITE)) in try_insert_pfn()
598 drm_gem_shmem_record_mkwrite(vmf); in try_insert_pfn()
[all …]
/linux/drivers/xen/
H A Dprivcmd-buf.c118 static vm_fault_t privcmd_buf_vma_fault(struct vm_fault *vmf) in privcmd_buf_vma_fault() argument
121 vmf->vma, vmf->vma->vm_start, vmf->vma->vm_end, in privcmd_buf_vma_fault()
122 vmf->pgoff, (void *)vmf->address); in privcmd_buf_vma_fault()
/linux/drivers/hv/
H A Dmshv_vtl_main.c798 static vm_fault_t mshv_vtl_fault(struct vm_fault *vmf) in mshv_vtl_fault() argument
801 int cpu = vmf->pgoff & MSHV_PG_OFF_CPU_MASK; in mshv_vtl_fault()
802 int real_off = vmf->pgoff >> MSHV_REAL_OFF_SHIFT; in mshv_vtl_fault()
822 vmf->page = page; in mshv_vtl_fault()
1221 static bool can_fault(struct vm_fault *vmf, unsigned long size, unsigned long *pfn) in can_fault() argument
1224 unsigned long start = vmf->address & ~mask; in can_fault()
1228 is_valid = (vmf->address & mask) == ((vmf->pgoff << PAGE_SHIFT) & mask) && in can_fault()
1229 start >= vmf->vma->vm_start && in can_fault()
1230 end <= vmf->vma->vm_end; in can_fault()
1233 *pfn = vmf->pgoff & ~(mask >> PAGE_SHIFT); in can_fault()
[all …]
/linux/drivers/misc/ocxl/
H A Dsysfs.c109 static vm_fault_t global_mmio_fault(struct vm_fault *vmf) in global_mmio_fault() argument
111 struct vm_area_struct *vma = vmf->vma; in global_mmio_fault()
115 if (vmf->pgoff >= (afu->config.global_mmio_size >> PAGE_SHIFT)) in global_mmio_fault()
118 offset = vmf->pgoff; in global_mmio_fault()
120 return vmf_insert_pfn(vma, vmf->address, offset); in global_mmio_fault()
H A Dcontext.c139 static vm_fault_t ocxl_mmap_fault(struct vm_fault *vmf) in ocxl_mmap_fault() argument
141 struct vm_area_struct *vma = vmf->vma; in ocxl_mmap_fault()
146 offset = vmf->pgoff << PAGE_SHIFT; in ocxl_mmap_fault()
148 ctx->pasid, vmf->address, offset); in ocxl_mmap_fault()
151 ret = map_pp_mmio(vma, vmf->address, offset, ctx); in ocxl_mmap_fault()
153 ret = map_afu_irq(vma, vmf->address, offset, ctx); in ocxl_mmap_fault()
/linux/drivers/char/agp/
H A Dalpha-agp.c14 static vm_fault_t alpha_core_agp_vm_fault(struct vm_fault *vmf) in alpha_core_agp_vm_fault() argument
21 dma_addr = vmf->address - vmf->vma->vm_start + agp->aperture.bus_base; in alpha_core_agp_vm_fault()
32 vmf->page = page; in alpha_core_agp_vm_fault()
/linux/fs/fuse/
H A Ddax.c753 static vm_fault_t __fuse_dax_fault(struct vm_fault *vmf, unsigned int order, in __fuse_dax_fault() argument
757 struct inode *inode = file_inode(vmf->vma->vm_file); in __fuse_dax_fault()
778 ret = dax_iomap_fault(vmf, order, &pfn, &error, &fuse_iomap_ops); in __fuse_dax_fault()
787 ret = dax_finish_sync_fault(vmf, order, pfn); in __fuse_dax_fault()
796 static vm_fault_t fuse_dax_fault(struct vm_fault *vmf) in fuse_dax_fault() argument
798 return __fuse_dax_fault(vmf, 0, vmf->flags & FAULT_FLAG_WRITE); in fuse_dax_fault()
801 static vm_fault_t fuse_dax_huge_fault(struct vm_fault *vmf, unsigned int order) in fuse_dax_huge_fault() argument
803 return __fuse_dax_fault(vmf, order, vmf->flags & FAULT_FLAG_WRITE); in fuse_dax_huge_fault()
806 static vm_fault_t fuse_dax_page_mkwrite(struct vm_fault *vmf) in fuse_dax_page_mkwrite() argument
808 return __fuse_dax_fault(vmf, 0, true); in fuse_dax_page_mkwrite()
[all …]
/linux/sound/usb/usx2y/
H A DusX2Yhwdep.c21 static vm_fault_t snd_us428ctls_vm_fault(struct vm_fault *vmf) in snd_us428ctls_vm_fault() argument
27 offset = vmf->pgoff << PAGE_SHIFT; in snd_us428ctls_vm_fault()
28 vaddr = (char *)((struct usx2ydev *)vmf->vma->vm_private_data)->us428ctls_sharedmem + offset; in snd_us428ctls_vm_fault()
31 vmf->page = page; in snd_us428ctls_vm_fault()
/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_dmem.c183 static vm_fault_t nouveau_dmem_migrate_to_ram(struct vm_fault *vmf) in nouveau_dmem_migrate_to_ram() argument
185 struct nouveau_drm *drm = page_to_drm(vmf->page); in nouveau_dmem_migrate_to_ram()
193 .vma = vmf->vma, in nouveau_dmem_migrate_to_ram()
195 .fault_page = vmf->page, in nouveau_dmem_migrate_to_ram()
205 sfolio = page_folio(vmf->page); in nouveau_dmem_migrate_to_ram()
213 if (vmf->pte) { in nouveau_dmem_migrate_to_ram()
221 args.start = ALIGN_DOWN(vmf->address, (PAGE_SIZE << order)); in nouveau_dmem_migrate_to_ram()
222 args.vma = vmf->vma; in nouveau_dmem_migrate_to_ram()
243 order, vmf->vma, vmf->address), 0); in nouveau_dmem_migrate_to_ram()
245 dpage = alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO, vmf->vma, in nouveau_dmem_migrate_to_ram()
[all …]
/linux/drivers/gpu/drm/gma500/
H A Dgem.c110 static vm_fault_t psb_gem_fault(struct vm_fault *vmf);
255 static vm_fault_t psb_gem_fault(struct vm_fault *vmf) in psb_gem_fault() argument
257 struct vm_area_struct *vma = vmf->vma; in psb_gem_fault()
291 page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; in psb_gem_fault()
298 ret = vmf_insert_pfn(vma, vmf->address, pfn); in psb_gem_fault()
/linux/arch/x86/kernel/cpu/sgx/
H A Dvirt.c75 static vm_fault_t sgx_vepc_fault(struct vm_fault *vmf) in sgx_vepc_fault() argument
77 struct vm_area_struct *vma = vmf->vma; in sgx_vepc_fault()
82 ret = __sgx_vepc_fault(vepc, vma, vmf->address); in sgx_vepc_fault()
88 if (ret == -EBUSY && (vmf->flags & FAULT_FLAG_ALLOW_RETRY)) { in sgx_vepc_fault()
/linux/arch/powerpc/platforms/cell/spufs/
H A Dfile.c230 spufs_mem_mmap_fault(struct vm_fault *vmf) in spufs_mem_mmap_fault() argument
232 struct vm_area_struct *vma = vmf->vma; in spufs_mem_mmap_fault()
237 offset = vmf->pgoff << PAGE_SHIFT; in spufs_mem_mmap_fault()
242 vmf->address, offset); in spufs_mem_mmap_fault()
254 ret = vmf_insert_pfn(vma, vmf->address, pfn); in spufs_mem_mmap_fault()
310 static vm_fault_t spufs_ps_fault(struct vm_fault *vmf, in spufs_ps_fault() argument
314 struct spu_context *ctx = vmf->vma->vm_file->private_data; in spufs_ps_fault()
315 unsigned long area, offset = vmf->pgoff << PAGE_SHIFT; in spufs_ps_fault()
353 ret = vmf_insert_pfn(vmf->vma, vmf->address, in spufs_ps_fault()
367 static vm_fault_t spufs_cntl_mmap_fault(struct vm_fault *vmf) in spufs_cntl_mmap_fault() argument
[all …]
/linux/drivers/gpu/drm/armada/
H A Darmada_gem.c21 static vm_fault_t armada_gem_vm_fault(struct vm_fault *vmf) in armada_gem_vm_fault() argument
23 struct drm_gem_object *gobj = vmf->vma->vm_private_data; in armada_gem_vm_fault()
27 pfn += (vmf->address - vmf->vma->vm_start) >> PAGE_SHIFT; in armada_gem_vm_fault()
28 return vmf_insert_pfn(vmf->vma, vmf->address, pfn); in armada_gem_vm_fault()
/linux/drivers/infiniband/hw/hfi1/
H A Dfile_ops.c73 static vm_fault_t vma_fault(struct vm_fault *vmf);
307 static inline void mmap_cdbg(u16 ctxt, u8 subctxt, u8 type, u8 mapio, u8 vmf, in mmap_cdbg() argument
313 ctxt, subctxt, type, mapio, vmf, !!memdma, in mmap_cdbg()
328 u8 subctxt, mapio = 0, vmf = 0, type; in hfi1_file_mmap() local
441 mmap_cdbg(ctxt, subctxt, type, mapio, vmf, memaddr, in hfi1_file_mmap()
487 vmf = 1; in hfi1_file_mmap()
520 vmf = 1; in hfi1_file_mmap()
526 vmf = 1; in hfi1_file_mmap()
533 vmf = 1; in hfi1_file_mmap()
545 vmf = 1; in hfi1_file_mmap()
[all …]
/linux/drivers/gpu/drm/omapdrm/
H A Domap_gem.c355 struct vm_area_struct *vma, struct vm_fault *vmf) in omap_gem_fault_1d() argument
362 pgoff = (vmf->address - vma->vm_start) >> PAGE_SHIFT; in omap_gem_fault_1d()
372 VERB("Inserting %p pfn %lx, pa %lx", (void *)vmf->address, in omap_gem_fault_1d()
375 return vmf_insert_mixed(vma, vmf->address, pfn); in omap_gem_fault_1d()
380 struct vm_area_struct *vma, struct vm_fault *vmf) in omap_gem_fault_2d() argument
410 pgoff = (vmf->address - vma->vm_start) >> PAGE_SHIFT; in omap_gem_fault_2d()
421 vaddr = vmf->address - ((pgoff - base_pgoff) << PAGE_SHIFT); in omap_gem_fault_2d()
466 VERB("Inserting %p pfn %lx, pa %lx", (void *)vmf->address, in omap_gem_fault_2d()
496 static vm_fault_t omap_gem_fault(struct vm_fault *vmf) in omap_gem_fault() argument
498 struct vm_area_struct *vma = vmf->vma; in omap_gem_fault()
[all …]
/linux/drivers/dma-buf/
H A Dudmabuf.c47 static vm_fault_t udmabuf_vm_fault(struct vm_fault *vmf) in udmabuf_vm_fault() argument
49 struct vm_area_struct *vma = vmf->vma; in udmabuf_vm_fault()
51 pgoff_t pgoff = vmf->pgoff; in udmabuf_vm_fault()
61 ret = vmf_insert_pfn(vma, vmf->address, pfn); in udmabuf_vm_fault()
70 if (addr == vmf->address) in udmabuf_vm_fault()
/linux/samples/vfio-mdev/
H A Dmbochs.c773 static vm_fault_t mbochs_region_vm_fault(struct vm_fault *vmf) in mbochs_region_vm_fault() argument
775 struct vm_area_struct *vma = vmf->vma; in mbochs_region_vm_fault()
777 pgoff_t page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; in mbochs_region_vm_fault()
782 vmf->page = mbochs_get_page(mdev_state, page_offset); in mbochs_region_vm_fault()
783 if (!vmf->page) in mbochs_region_vm_fault()
812 static vm_fault_t mbochs_dmabuf_vm_fault(struct vm_fault *vmf) in mbochs_dmabuf_vm_fault() argument
814 struct vm_area_struct *vma = vmf->vma; in mbochs_dmabuf_vm_fault()
817 if (WARN_ON(vmf->pgoff >= dmabuf->pagecount)) in mbochs_dmabuf_vm_fault()
820 vmf->page = dmabuf->pages[vmf->pgoff]; in mbochs_dmabuf_vm_fault()
821 get_page(vmf->page); in mbochs_dmabuf_vm_fault()
/linux/fs/afs/
H A Dwrite.c273 vm_fault_t afs_page_mkwrite(struct vm_fault *vmf) in afs_page_mkwrite() argument
275 struct file *file = vmf->vma->vm_file; in afs_page_mkwrite()
279 return netfs_page_mkwrite(vmf, NULL); in afs_page_mkwrite()

12345