Lines Matching refs:gup
67 static void dump_pages_test(struct gup_test *gup, struct page **pages, in dump_pages_test() argument
78 if (gup->which_pages[i] > nr_pages) { in dump_pages_test()
80 i, gup->which_pages[i]); in dump_pages_test()
81 gup->which_pages[i] = 0; in dump_pages_test()
86 index_to_dump = gup->which_pages[i]; in dump_pages_test()
91 index_to_dump, gup->addr); in dump_pages_test()
99 struct gup_test *gup) in __gup_test_ioctl() argument
109 if (gup->size > ULONG_MAX) in __gup_test_ioctl()
112 nr_pages = gup->size / PAGE_SIZE; in __gup_test_ioctl()
123 nr = gup->nr_pages_per_call; in __gup_test_ioctl()
125 for (addr = gup->addr; addr < gup->addr + gup->size; addr = next) { in __gup_test_ioctl()
126 if (nr != gup->nr_pages_per_call) in __gup_test_ioctl()
130 if (next > gup->addr + gup->size) { in __gup_test_ioctl()
131 next = gup->addr + gup->size; in __gup_test_ioctl()
137 nr = get_user_pages_fast(addr, nr, gup->gup_flags, in __gup_test_ioctl()
141 nr = get_user_pages(addr, nr, gup->gup_flags, pages + i, in __gup_test_ioctl()
145 nr = pin_user_pages_fast(addr, nr, gup->gup_flags, in __gup_test_ioctl()
149 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()
209 struct gup_test gup; in gup_test_ioctl() local
224 if (copy_from_user(&gup, (void __user *)arg, sizeof(gup))) in gup_test_ioctl()
227 ret = __gup_test_ioctl(cmd, &gup); in gup_test_ioctl()
231 if (copy_to_user((void __user *)arg, &gup, sizeof(gup))) in gup_test_ioctl()