Lines Matching refs:start
136 struct vm_area_struct **prev, unsigned long start,
149 pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT);
150 *prev = vma_merge(mm, *prev, start, end, new_flags, vma->anon_vma,
160 if (start != vma->vm_start) {
163 error = __split_vma(mm, vma, start, 1);
191 static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start,
201 for (index = start; index != end; index += PAGE_SIZE) {
207 orig_pte = pte_offset_map_lock(vma->vm_mm, pmd, start, &ptl);
208 pte = *(orig_pte + ((index - start) / PAGE_SIZE));
231 unsigned long start, unsigned long end,
234 XA_STATE(xas, &mapping->i_pages, linear_page_index(vma, start));
266 unsigned long start, unsigned long end)
275 walk_page_range(vma->vm_mm, start, end, &swapin_walk_ops, vma);
281 force_shm_swapin_readahead(vma, start, end,
303 offset = (loff_t)(start - vma->vm_start)
306 vfs_fadvise(file, offset, end - start, POSIX_FADV_WILLNEED);
725 range.start = max(vma->vm_start, start_addr);
726 if (range.start >= vma->vm_end)
732 range.start, range.end);
735 tlb_gather_mmu(&tlb, mm, range.start, range.end);
740 walk_page_range(vma->vm_mm, range.start, range.end,
744 tlb_finish_mmu(&tlb, range.start, range.end);
769 unsigned long start, unsigned long end)
771 zap_page_range(vma, start, end - start);
777 unsigned long start, unsigned long end,
786 if (!userfaultfd_remove(vma, start, end)) {
790 vma = find_vma(mm, start);
793 if (start < vma->vm_start) {
796 * with the lowest vma->vm_start where start
797 * is also < vma->vm_end. If start <
822 VM_WARN_ON(start >= end);
826 return madvise_dontneed_single_vma(vma, start, end);
828 return madvise_free_single_vma(vma, start, end);
839 unsigned long start, unsigned long end)
860 offset = (loff_t)(start - vma->vm_start)
870 if (userfaultfd_remove(vma, start, end)) {
876 offset, end - start);
889 unsigned long start, unsigned long end,
898 return madvise_remove(vma, prev, start, end);
900 return madvise_willneed(vma, prev, start, end);
902 return madvise_cold(vma, prev, start, end);
904 return madvise_pageout(vma, prev, start, end);
907 return madvise_dontneed_free(vma, prev, start, end, behavior);
944 error = ksm_madvise(vma, start, end, behavior, &new_flags);
958 error = madvise_update_vma(vma, prev, start, end, new_flags,
977 unsigned long start, unsigned long end)
986 for (; start < end; start += size) {
991 ret = get_user_pages_fast(start, 1, 0, &page);
1005 pfn, start);
1009 pfn, start);
1076 * Walk the vmas in range [start,end), and call the visit function on each one.
1077 * The visit function will get start and end parameters that cover the overlap
1084 int madvise_walk_vmas(struct mm_struct *mm, unsigned long start,
1087 struct vm_area_struct **prev, unsigned long start,
1096 * If the interval [start,end) covers some unmapped address
1100 vma = find_vma_prev(mm, start, &prev);
1101 if (vma && start > vma->vm_start)
1107 /* Still start < end. */
1111 /* Here start < (end|vma->vm_end). */
1112 if (start < vma->vm_start) {
1114 start = vma->vm_start;
1115 if (start >= end)
1119 /* Here vma->vm_start <= start < (end|vma->vm_end) */
1124 /* Here vma->vm_start <= start < tmp <= (end|vma->vm_end). */
1125 error = visit(vma, &prev, start, tmp, arg);
1128 start = tmp;
1129 if (prev && start < prev->vm_end)
1130 start = prev->vm_end;
1131 if (start >= end)
1136 vma = find_vma(mm, start);
1145 unsigned long start, unsigned long end,
1154 error = madvise_update_vma(vma, prev, start, end, vma->vm_flags,
1166 int madvise_set_anon_name(struct mm_struct *mm, unsigned long start,
1172 if (start & ~PAGE_MASK)
1180 end = start + len;
1181 if (end < start)
1184 if (end == start)
1187 return madvise_walk_vmas(mm, start, end, (unsigned long)anon_name,
1246 * -EINVAL - start + len < 0, start is not page-aligned,
1257 int do_madvise(struct mm_struct *mm, unsigned long start, size_t len_in, int behavior)
1265 start = untagged_addr(start);
1270 if (!PAGE_ALIGNED(start))
1278 end = start + len;
1279 if (end < start)
1282 if (end == start)
1287 return madvise_inject_error(behavior, start, start + len_in);
1299 error = madvise_walk_vmas(mm, start, end, behavior,
1310 SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
1312 return do_madvise(current->mm, start, len_in, behavior);