| /linux/mm/ |
| H A D | memory.c | 97 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 D | huge_memory.c | 1400 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 D | hugetlb.c | 4764 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 D | filemap.c | 1754 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 D | swap_state.c | 752 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 D | vma.c | 53 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 D | vmwgfx_page_dirty.c | 401 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 D | drm_gem_shmem_helper.c | 557 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 D | privcmd-buf.c | 118 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 D | mshv_vtl_main.c | 798 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 D | sysfs.c | 109 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 D | context.c | 139 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 D | alpha-agp.c | 14 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 D | dax.c | 753 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 D | usX2Yhwdep.c | 21 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 D | nouveau_dmem.c | 183 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 D | gem.c | 110 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 D | virt.c | 75 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 D | file.c | 230 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 D | armada_gem.c | 21 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 D | file_ops.c | 73 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 D | omap_gem.c | 355 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 D | udmabuf.c | 47 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 D | mbochs.c | 773 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 D | write.c | 273 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()
|