aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
Diffstat (limited to 'mm')
-rw-r--r--mm/gup.c12
-rw-r--r--mm/mempolicy.c2
-rw-r--r--mm/nommu.c18
3 files changed, 8 insertions, 24 deletions
diff --git a/mm/gup.c b/mm/gup.c
index 3cfb55ef0cf4..bbc2e76cdd77 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -987,18 +987,12 @@ EXPORT_SYMBOL(get_user_pages_remote);
987 * obviously don't pass FOLL_REMOTE in here. 987 * obviously don't pass FOLL_REMOTE in here.
988 */ 988 */
989long get_user_pages(unsigned long start, unsigned long nr_pages, 989long get_user_pages(unsigned long start, unsigned long nr_pages,
990 int write, int force, struct page **pages, 990 unsigned int gup_flags, struct page **pages,
991 struct vm_area_struct **vmas) 991 struct vm_area_struct **vmas)
992{ 992{
993 unsigned int flags = FOLL_TOUCH;
994
995 if (write)
996 flags |= FOLL_WRITE;
997 if (force)
998 flags |= FOLL_FORCE;
999
1000 return __get_user_pages_locked(current, current->mm, start, nr_pages, 993 return __get_user_pages_locked(current, current->mm, start, nr_pages,
1001 pages, vmas, NULL, false, flags); 994 pages, vmas, NULL, false,
995 gup_flags | FOLL_TOUCH);
1002} 996}
1003EXPORT_SYMBOL(get_user_pages); 997EXPORT_SYMBOL(get_user_pages);
1004 998
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index ad1c96ac313c..0b859af06b87 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -850,7 +850,7 @@ static int lookup_node(unsigned long addr)
850 struct page *p; 850 struct page *p;
851 int err; 851 int err;
852 852
853 err = get_user_pages(addr & PAGE_MASK, 1, 0, 0, &p, NULL); 853 err = get_user_pages(addr & PAGE_MASK, 1, 0, &p, NULL);
854 if (err >= 0) { 854 if (err >= 0) {
855 err = page_to_nid(p); 855 err = page_to_nid(p);
856 put_page(p); 856 put_page(p);
diff --git a/mm/nommu.c b/mm/nommu.c
index 842cfdd1a31e..70cb844dfd95 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -160,18 +160,11 @@ finish_or_fault:
160 * - don't permit access to VMAs that don't support it, such as I/O mappings 160 * - don't permit access to VMAs that don't support it, such as I/O mappings
161 */ 161 */
162long get_user_pages(unsigned long start, unsigned long nr_pages, 162long get_user_pages(unsigned long start, unsigned long nr_pages,
163 int write, int force, struct page **pages, 163 unsigned int gup_flags, struct page **pages,
164 struct vm_area_struct **vmas) 164 struct vm_area_struct **vmas)
165{ 165{
166 int flags = 0; 166 return __get_user_pages(current, current->mm, start, nr_pages,
167 167 gup_flags, pages, vmas, NULL);
168 if (write)
169 flags |= FOLL_WRITE;
170 if (force)
171 flags |= FOLL_FORCE;
172
173 return __get_user_pages(current, current->mm, start, nr_pages, flags,
174 pages, vmas, NULL);
175} 168}
176EXPORT_SYMBOL(get_user_pages); 169EXPORT_SYMBOL(get_user_pages);
177 170
@@ -179,10 +172,7 @@ long get_user_pages_locked(unsigned long start, unsigned long nr_pages,
179 unsigned int gup_flags, struct page **pages, 172 unsigned int gup_flags, struct page **pages,
180 int *locked) 173 int *locked)
181{ 174{
182 int write = gup_flags & FOLL_WRITE; 175 return get_user_pages(start, nr_pages, gup_flags, pages, NULL);
183 int force = gup_flags & FOLL_FORCE;
184
185 return get_user_pages(start, nr_pages, write, force, pages, NULL);
186} 176}
187EXPORT_SYMBOL(get_user_pages_locked); 177EXPORT_SYMBOL(get_user_pages_locked);
188 178