hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/rds/info.c
....@@ -162,7 +162,6 @@
162162 struct rds_info_lengths lens;
163163 unsigned long nr_pages = 0;
164164 unsigned long start;
165
- unsigned long i;
166165 rds_info_func func;
167166 struct page **pages = NULL;
168167 int ret;
....@@ -193,7 +192,7 @@
193192 ret = -ENOMEM;
194193 goto out;
195194 }
196
- ret = get_user_pages_fast(start, nr_pages, 1, pages);
195
+ ret = pin_user_pages_fast(start, nr_pages, FOLL_WRITE, pages);
197196 if (ret != nr_pages) {
198197 if (ret > 0)
199198 nr_pages = ret;
....@@ -235,8 +234,8 @@
235234 ret = -EFAULT;
236235
237236 out:
238
- for (i = 0; pages && i < nr_pages; i++)
239
- put_page(pages[i]);
237
+ if (pages)
238
+ unpin_user_pages(pages, nr_pages);
240239 kfree(pages);
241240
242241 return ret;