Message ID | 20191115055340.1825745-16-jhubbard@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm/gup: track dma-pinned pages: FOLL_PIN | expand |
On Thu 14-11-19 21:53:31, John Hubbard wrote: > Convert fs/io_uring to use the new pin_user_pages() call, which sets > FOLL_PIN. Setting FOLL_PIN is now required for code that requires > tracking of pinned pages, and therefore for any code that calls > put_user_page(). > > In partial anticipation of this work, the io_uring code was already > calling put_user_page() instead of put_page(). Therefore, in order to > convert from the get_user_pages()/put_page() model, to the > pin_user_pages()/put_user_page() model, the only change required > here is to change get_user_pages() to pin_user_pages(). > > Signed-off-by: John Hubbard <jhubbard@nvidia.com> Looks good to me. You can add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > fs/io_uring.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/io_uring.c b/fs/io_uring.c > index f9a38998f2fc..cff64bd00db9 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -3433,7 +3433,7 @@ static int io_sqe_buffer_register(struct io_ring_ctx *ctx, void __user *arg, > > ret = 0; > down_read(¤t->mm->mmap_sem); > - pret = get_user_pages(ubuf, nr_pages, > + pret = pin_user_pages(ubuf, nr_pages, > FOLL_WRITE | FOLL_LONGTERM, > pages, vmas); > if (pret == nr_pages) { > -- > 2.24.0 >
diff --git a/fs/io_uring.c b/fs/io_uring.c index f9a38998f2fc..cff64bd00db9 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -3433,7 +3433,7 @@ static int io_sqe_buffer_register(struct io_ring_ctx *ctx, void __user *arg, ret = 0; down_read(¤t->mm->mmap_sem); - pret = get_user_pages(ubuf, nr_pages, + pret = pin_user_pages(ubuf, nr_pages, FOLL_WRITE | FOLL_LONGTERM, pages, vmas); if (pret == nr_pages) {
Convert fs/io_uring to use the new pin_user_pages() call, which sets FOLL_PIN. Setting FOLL_PIN is now required for code that requires tracking of pinned pages, and therefore for any code that calls put_user_page(). In partial anticipation of this work, the io_uring code was already calling put_user_page() instead of put_page(). Therefore, in order to convert from the get_user_pages()/put_page() model, to the pin_user_pages()/put_user_page() model, the only change required here is to change get_user_pages() to pin_user_pages(). Signed-off-by: John Hubbard <jhubbard@nvidia.com> --- fs/io_uring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)