summaryrefslogtreecommitdiffstats
path: root/mm/nommu.c
diff options
context:
space:
mode:
authorLorenzo Stoakes <lstoakes@gmail.com>2016-10-12 20:20:12 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-18 17:13:37 -0400
commitd4944b0ecec0af882483fe44b66729316e575208 (patch)
tree0c16d81fa34c04dc63e4457e363edcfc21bfdfac /mm/nommu.c
parent859110d7497cdd0e6b21010d6f777049d676382c (diff)
mm: remove write/force parameters from __get_user_pages_unlocked()
This removes the redundant 'write' and 'force' parameters from __get_user_pages_unlocked() to make the use of FOLL_FORCE explicit in callers as use of this flag can result in surprising behaviour (and hence bugs) within the mm subsystem. Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Jan Kara <jack@suse.cz> Acked-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/nommu.c')
-rw-r--r--mm/nommu.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/mm/nommu.c b/mm/nommu.c
index 95daf81a4855..925dcc1fa2f3 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -185,8 +185,7 @@ EXPORT_SYMBOL(get_user_pages_locked);
185 185
186long __get_user_pages_unlocked(struct task_struct *tsk, struct mm_struct *mm, 186long __get_user_pages_unlocked(struct task_struct *tsk, struct mm_struct *mm,
187 unsigned long start, unsigned long nr_pages, 187 unsigned long start, unsigned long nr_pages,
188 int write, int force, struct page **pages, 188 struct page **pages, unsigned int gup_flags)
189 unsigned int gup_flags)
190{ 189{
191 long ret; 190 long ret;
192 down_read(&mm->mmap_sem); 191 down_read(&mm->mmap_sem);
@@ -200,8 +199,15 @@ EXPORT_SYMBOL(__get_user_pages_unlocked);
200long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages, 199long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
201 int write, int force, struct page **pages) 200 int write, int force, struct page **pages)
202{ 201{
202 unsigned int flags = 0;
203
204 if (write)
205 flags |= FOLL_WRITE;
206 if (force)
207 flags |= FOLL_FORCE;
208
203 return __get_user_pages_unlocked(current, current->mm, start, nr_pages, 209 return __get_user_pages_unlocked(current, current->mm, start, nr_pages,
204 write, force, pages, 0); 210 pages, flags);
205} 211}
206EXPORT_SYMBOL(get_user_pages_unlocked); 212EXPORT_SYMBOL(get_user_pages_unlocked);
207 213