Lines Matching refs:gup

69 static void dump_pages_test(struct gup_test *gup, struct page **pages,  in dump_pages_test()  argument
80 if (gup->which_pages[i] > nr_pages) { in dump_pages_test()
82 i, gup->which_pages[i]); in dump_pages_test()
83 gup->which_pages[i] = 0; in dump_pages_test()
88 index_to_dump = gup->which_pages[i]; in dump_pages_test()
93 index_to_dump, gup->addr); in dump_pages_test()
101 struct gup_test *gup) in __gup_test_ioctl() argument
111 if (gup->size > ULONG_MAX) in __gup_test_ioctl()
114 nr_pages = gup->size / PAGE_SIZE; in __gup_test_ioctl()
125 nr = gup->nr_pages_per_call; in __gup_test_ioctl()
127 for (addr = gup->addr; addr < gup->addr + gup->size; addr = next) { in __gup_test_ioctl()
128 if (nr != gup->nr_pages_per_call) in __gup_test_ioctl()
132 if (next > gup->addr + gup->size) { in __gup_test_ioctl()
133 next = gup->addr + gup->size; in __gup_test_ioctl()
139 nr = get_user_pages_fast(addr, nr, gup->gup_flags, in __gup_test_ioctl()
143 nr = get_user_pages(addr, nr, gup->gup_flags, pages + i); in __gup_test_ioctl()
146 nr = pin_user_pages_fast(addr, nr, gup->gup_flags, in __gup_test_ioctl()
150 nr = pin_user_pages(addr, nr, gup->gup_flags, pages + i); in __gup_test_ioctl()
154 gup->gup_flags | FOLL_LONGTERM, in __gup_test_ioctl()
158 if (gup->test_flags & GUP_TEST_FLAG_DUMP_PAGES_USE_PIN) in __gup_test_ioctl()
159 nr = pin_user_pages(addr, nr, gup->gup_flags, in __gup_test_ioctl()
162 nr = get_user_pages(addr, nr, gup->gup_flags, in __gup_test_ioctl()
179 gup->get_delta_usec = ktime_us_delta(end_time, start_time); in __gup_test_ioctl()
180 gup->size = addr - gup->addr; in __gup_test_ioctl()
189 dump_pages_test(gup, pages, nr_pages); in __gup_test_ioctl()
193 put_back_pages(cmd, pages, nr_pages, gup->test_flags); in __gup_test_ioctl()
196 gup->put_delta_usec = ktime_us_delta(end_time, start_time); in __gup_test_ioctl()
341 struct gup_test gup; in gup_test_ioctl() local
360 if (copy_from_user(&gup, (void __user *)arg, sizeof(gup))) in gup_test_ioctl()
363 ret = __gup_test_ioctl(cmd, &gup); in gup_test_ioctl()
367 if (copy_to_user((void __user *)arg, &gup, sizeof(gup))) in gup_test_ioctl()