Lines Matching defs:range
160 static int dmirror_do_fault(struct dmirror *dmirror, struct hmm_range *range)
162 unsigned long *pfns = range->hmm_pfns;
165 for (pfn = (range->start >> PAGE_SHIFT);
166 pfn < (range->end >> PAGE_SHIFT);
184 else if (WARN_ON(range->default_flags & HMM_PFN_WRITE))
211 const struct mmu_notifier_range *range,
220 if (range->event == MMU_NOTIFY_MIGRATE &&
221 range->migrate_pgmap_owner == dmirror->mdevice)
224 if (mmu_notifier_range_blockable(range))
230 dmirror_do_update(dmirror, range->start, range->end);
241 struct hmm_range *range)
254 range->notifier_seq = mmu_interval_read_begin(range->notifier);
256 ret = hmm_range_fault(range);
265 if (mmu_interval_read_retry(range->notifier,
266 range->notifier_seq)) {
273 ret = dmirror_do_fault(dmirror, range);
286 struct hmm_range range = {
300 for (addr = start; addr < end; addr = range.end) {
301 range.start = addr;
302 range.end = min(addr + (ARRAY_SIZE(pfns) << PAGE_SHIFT), end);
304 ret = dmirror_range_fault(dmirror, &range);
472 devmem->pagemap.range.start = res->start;
473 devmem->pagemap.range.end = res->end;
500 pfn_first = devmem->pagemap.range.start >> PAGE_SHIFT;
501 pfn_last = pfn_first + (range_len(&devmem->pagemap.range) >> PAGE_SHIFT);
530 release_mem_region(devmem->pagemap.range.start, range_len(&devmem->pagemap.range));
740 static void dmirror_mkentry(struct dmirror *dmirror, struct hmm_range *range,
776 const struct mmu_notifier_range *range,
783 if (mmu_notifier_range_blockable(range))
803 struct hmm_range *range,
815 range->notifier = ¬ifier.notifier;
817 ret = mmu_interval_notifier_insert(range->notifier, mm,
818 range->start, range->end - range->start,
829 range->notifier_seq = mmu_interval_read_begin(range->notifier);
832 ret = hmm_range_fault(range);
841 if (mmu_interval_read_retry(range->notifier,
842 range->notifier_seq)) {
849 n = (range->end - range->start) >> PAGE_SHIFT;
851 dmirror_mkentry(dmirror, range, perm + i, range->hmm_pfns[i]);
855 mmu_interval_notifier_remove(range->notifier);
870 struct hmm_range range = {
894 range.start = addr;
895 range.end = next;
897 ret = dmirror_range_snapshot(dmirror, &range, perm);
901 n = (range.end - range.start) >> PAGE_SHIFT;
1066 /* FIXME demonstrate how we can adjust migrate range */
1128 release_mem_region(devmem->pagemap.range.start,
1129 range_len(&devmem->pagemap.range));