Messages in this thread Patch in this message | | | From | john.hubbard@gmail ... | Subject | [PATCH 1/2] mm: introduce put_user_page(), placeholder version | Date | Mon, 9 Jul 2018 01:05:53 -0700 |
| |
From: John Hubbard <jhubbard@nvidia.com>
Introduces put_user_page(), which simply calls put_page(). This provides a safe way to update all get_user_pages*() callers, so that they call put_user_page(), instead of put_page().
Also adds release_user_pages(), a drop-in replacement for release_pages(). This is intended to be easily grep-able, for later performance improvements, since release_user_pages is not batched like release_pages is, and is significantly slower.
Subsequent patches will add functionality to put_user_page().
Signed-off-by: John Hubbard <jhubbard@nvidia.com> --- include/linux/mm.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/include/linux/mm.h b/include/linux/mm.h index a0fbb9ffe380..db4a211aad79 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -923,6 +923,20 @@ static inline void put_page(struct page *page) __put_page(page); } +/* Placeholder version, until all get_user_pages*() callers are updated. */ +static inline void put_user_page(struct page *page) +{ + put_page(page); +} + +/* A drop-in replacement for release_pages(): */ +static inline void release_user_pages(struct page **pages, + unsigned long npages) +{ + while (npages) + put_user_page(pages[--npages]); +} + #if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP) #define SECTION_IN_PAGE_FLAGS #endif -- 2.18.0
| |