Lines Matching refs:uffdio_copy
597 static void retry_copy_page(uffd_global_test_opts_t *gopts, struct uffdio_copy *uffdio_copy, in retry_copy_page() argument
601 &uffdio_copy->dst, in retry_copy_page()
602 uffdio_copy->len, in retry_copy_page()
604 if (ioctl(gopts->uffd, UFFDIO_COPY, uffdio_copy)) { in retry_copy_page()
606 if (uffdio_copy->copy != -EEXIST) in retry_copy_page()
608 (int64_t)uffdio_copy->copy); in retry_copy_page()
611 (int64_t)uffdio_copy->copy); in retry_copy_page()
629 struct uffdio_copy uffdio_copy; in __copy_page() local
633 uffdio_copy.dst = (unsigned long) gopts->area_dst + offset; in __copy_page()
634 uffdio_copy.src = (unsigned long) gopts->area_src + offset; in __copy_page()
635 uffdio_copy.len = gopts->page_size; in __copy_page()
637 uffdio_copy.mode = UFFDIO_COPY_MODE_WP; in __copy_page()
639 uffdio_copy.mode = 0; in __copy_page()
640 uffdio_copy.copy = 0; in __copy_page()
641 if (ioctl(gopts->uffd, UFFDIO_COPY, &uffdio_copy)) { in __copy_page()
643 if (uffdio_copy.copy != -EEXIST) in __copy_page()
645 (int64_t)uffdio_copy.copy); in __copy_page()
646 wake_range(gopts->uffd, uffdio_copy.dst, gopts->page_size); in __copy_page()
647 } else if (uffdio_copy.copy != gopts->page_size) { in __copy_page()
648 err("UFFDIO_COPY error: %"PRId64, (int64_t)uffdio_copy.copy); in __copy_page()
652 retry_copy_page(gopts, &uffdio_copy, offset); in __copy_page()