Lines Matching refs:vmf

76 static void dax_set_mapping(struct vm_fault *vmf, pfn_t pfn,
80 struct file *filp = vmf->vma->vm_file;
88 pgoff = linear_page_index(vmf->vma,
89 ALIGN(vmf->address, fault_size));
104 struct vm_fault *vmf)
111 if (check_vma(dev_dax, vmf->vma, __func__))
123 phys = dax_pgoff_to_phys(dev_dax, vmf->pgoff, PAGE_SIZE);
125 dev_dbg(dev, "pgoff_to_phys(%#lx) failed\n", vmf->pgoff);
131 dax_set_mapping(vmf, pfn, fault_size);
133 return vmf_insert_mixed(vmf->vma, vmf->address, pfn);
137 struct vm_fault *vmf)
139 unsigned long pmd_addr = vmf->address & PMD_MASK;
146 if (check_vma(dev_dax, vmf->vma, __func__))
161 if (pmd_addr < vmf->vma->vm_start ||
162 (pmd_addr + PMD_SIZE) > vmf->vma->vm_end)
165 pgoff = linear_page_index(vmf->vma, pmd_addr);
174 dax_set_mapping(vmf, pfn, fault_size);
176 return vmf_insert_pfn_pmd(vmf, pfn, vmf->flags & FAULT_FLAG_WRITE);
181 struct vm_fault *vmf)
183 unsigned long pud_addr = vmf->address & PUD_MASK;
191 if (check_vma(dev_dax, vmf->vma, __func__))
206 if (pud_addr < vmf->vma->vm_start ||
207 (pud_addr + PUD_SIZE) > vmf->vma->vm_end)
210 pgoff = linear_page_index(vmf->vma, pud_addr);
219 dax_set_mapping(vmf, pfn, fault_size);
221 return vmf_insert_pfn_pud(vmf, pfn, vmf->flags & FAULT_FLAG_WRITE);
225 struct vm_fault *vmf)
231 static vm_fault_t dev_dax_huge_fault(struct vm_fault *vmf, unsigned int order)
233 struct file *filp = vmf->vma->vm_file;
239 (vmf->flags & FAULT_FLAG_WRITE) ? "write" : "read",
240 vmf->vma->vm_start, vmf->vma->vm_end, order);
244 rc = __dev_dax_pte_fault(dev_dax, vmf);
246 rc = __dev_dax_pmd_fault(dev_dax, vmf);
248 rc = __dev_dax_pud_fault(dev_dax, vmf);
257 static vm_fault_t dev_dax_fault(struct vm_fault *vmf)
259 return dev_dax_huge_fault(vmf, 0);