Lines Matching defs:range

207 static int dmirror_do_fault(struct dmirror *dmirror, struct hmm_range *range)
209 unsigned long *pfns = range->hmm_pfns;
212 for (pfn = (range->start >> PAGE_SHIFT);
213 pfn < (range->end >> PAGE_SHIFT);
231 else if (WARN_ON(range->default_flags & HMM_PFN_WRITE))
258 const struct mmu_notifier_range *range,
267 if (range->event == MMU_NOTIFY_MIGRATE &&
268 range->owner == dmirror->mdevice)
271 if (mmu_notifier_range_blockable(range))
277 dmirror_do_update(dmirror, range->start, range->end);
288 struct hmm_range *range)
301 range->notifier_seq = mmu_interval_read_begin(range->notifier);
303 ret = hmm_range_fault(range);
312 if (mmu_interval_read_retry(range->notifier,
313 range->notifier_seq)) {
320 ret = dmirror_do_fault(dmirror, range);
333 struct hmm_range range = {
347 for (addr = start; addr < end; addr = range.end) {
348 range.start = addr;
349 range.end = min(addr + (ARRAY_SIZE(pfns) << PAGE_SHIFT), end);
351 ret = dmirror_range_fault(dmirror, &range);
514 devmem->pagemap.range.start = res->start;
515 devmem->pagemap.range.end = res->end;
519 devmem->pagemap.range.start = (MINOR(mdevice->cdevice.dev) - 2) ?
522 devmem->pagemap.range.end = devmem->pagemap.range.start +
561 pfn_first = devmem->pagemap.range.start >> PAGE_SHIFT;
562 pfn_last = pfn_first + (range_len(&devmem->pagemap.range) >> PAGE_SHIFT);
592 release_mem_region(devmem->pagemap.range.start,
593 range_len(&devmem->pagemap.range));
1039 static void dmirror_mkentry(struct dmirror *dmirror, struct hmm_range *range,
1081 const struct mmu_notifier_range *range,
1088 if (mmu_notifier_range_blockable(range))
1108 struct hmm_range *range,
1120 range->notifier = &notifier.notifier;
1122 ret = mmu_interval_notifier_insert(range->notifier, mm,
1123 range->start, range->end - range->start,
1134 range->notifier_seq = mmu_interval_read_begin(range->notifier);
1137 ret = hmm_range_fault(range);
1146 if (mmu_interval_read_retry(range->notifier,
1147 range->notifier_seq)) {
1154 n = (range->end - range->start) >> PAGE_SHIFT;
1156 dmirror_mkentry(dmirror, range, perm + i, range->hmm_pfns[i]);
1160 mmu_interval_notifier_remove(range->notifier);
1175 struct hmm_range range = {
1199 range.start = addr;
1200 range.end = next;
1202 ret = dmirror_range_snapshot(dmirror, &range, perm);
1206 n = (range.end - range.start) >> PAGE_SHIFT;
1222 unsigned long start_pfn = chunk->pagemap.range.start >> PAGE_SHIFT;
1223 unsigned long end_pfn = chunk->pagemap.range.end >> PAGE_SHIFT;
1286 release_mem_region(devmem->pagemap.range.start,
1287 range_len(&devmem->pagemap.range));
1439 /* FIXME demonstrate how we can adjust migrate range */