Lines Matching refs:uffdio_copy
574 static void retry_copy_page(int ufd, struct uffdio_copy *uffdio_copy, in retry_copy_page() argument
577 uffd_test_ops->alias_mapping(&uffdio_copy->dst, in retry_copy_page()
578 uffdio_copy->len, in retry_copy_page()
580 if (ioctl(ufd, UFFDIO_COPY, uffdio_copy)) { in retry_copy_page()
582 if (uffdio_copy->copy != -EEXIST) in retry_copy_page()
584 (int64_t)uffdio_copy->copy); in retry_copy_page()
587 (int64_t)uffdio_copy->copy); in retry_copy_page()
605 struct uffdio_copy uffdio_copy; in __copy_page() local
609 uffdio_copy.dst = (unsigned long) area_dst + offset; in __copy_page()
610 uffdio_copy.src = (unsigned long) area_src + offset; in __copy_page()
611 uffdio_copy.len = page_size; in __copy_page()
613 uffdio_copy.mode = UFFDIO_COPY_MODE_WP; in __copy_page()
615 uffdio_copy.mode = 0; in __copy_page()
616 uffdio_copy.copy = 0; in __copy_page()
617 if (ioctl(ufd, UFFDIO_COPY, &uffdio_copy)) { in __copy_page()
619 if (uffdio_copy.copy != -EEXIST) in __copy_page()
621 (int64_t)uffdio_copy.copy); in __copy_page()
622 wake_range(ufd, uffdio_copy.dst, page_size); in __copy_page()
623 } else if (uffdio_copy.copy != page_size) { in __copy_page()
624 err("UFFDIO_COPY error: %"PRId64, (int64_t)uffdio_copy.copy); in __copy_page()
628 retry_copy_page(ufd, &uffdio_copy, offset); in __copy_page()