diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2017-11-19 11:32:05 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-12-02 20:29:13 -0500 |
commit | e716712f83b635e62d5fb66c1375524ef2152cc0 (patch) | |
tree | 62ed708c2daed2cdf957b4719c8a2666b1e306e8 | |
parent | 14cb138d7c1c749d81dc3e66cd70f7a884e1da56 (diff) |
__get_user_pages_locked(): get rid of notify_drop argument
The only caller that doesn't pass true in it is get_user_pages() and
it passes NULL in locked. The only place where we check it is
if (notify_locked && lock_dropped && *locked)
and lock_dropped can become true only if we have locked != NULL.
In other words, the second part of condition will be false when
called by get_user_pages().
Just get rid of the argument and turn the condition into
if (lock_dropped && *locked)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | mm/gup.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -848,7 +848,7 @@ static __always_inline long __get_user_pages_locked(struct task_struct *tsk, | |||
848 | unsigned long nr_pages, | 848 | unsigned long nr_pages, |
849 | struct page **pages, | 849 | struct page **pages, |
850 | struct vm_area_struct **vmas, | 850 | struct vm_area_struct **vmas, |
851 | int *locked, bool notify_drop, | 851 | int *locked, |
852 | unsigned int flags) | 852 | unsigned int flags) |
853 | { | 853 | { |
854 | long ret, pages_done; | 854 | long ret, pages_done; |
@@ -922,7 +922,7 @@ static __always_inline long __get_user_pages_locked(struct task_struct *tsk, | |||
922 | pages++; | 922 | pages++; |
923 | start += PAGE_SIZE; | 923 | start += PAGE_SIZE; |
924 | } | 924 | } |
925 | if (notify_drop && lock_dropped && *locked) { | 925 | if (lock_dropped && *locked) { |
926 | /* | 926 | /* |
927 | * We must let the caller know we temporarily dropped the lock | 927 | * We must let the caller know we temporarily dropped the lock |
928 | * and so the critical section protected by it was lost. | 928 | * and so the critical section protected by it was lost. |
@@ -959,7 +959,7 @@ long get_user_pages_locked(unsigned long start, unsigned long nr_pages, | |||
959 | int *locked) | 959 | int *locked) |
960 | { | 960 | { |
961 | return __get_user_pages_locked(current, current->mm, start, nr_pages, | 961 | return __get_user_pages_locked(current, current->mm, start, nr_pages, |
962 | pages, NULL, locked, true, | 962 | pages, NULL, locked, |
963 | gup_flags | FOLL_TOUCH); | 963 | gup_flags | FOLL_TOUCH); |
964 | } | 964 | } |
965 | EXPORT_SYMBOL(get_user_pages_locked); | 965 | EXPORT_SYMBOL(get_user_pages_locked); |
@@ -988,7 +988,7 @@ long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages, | |||
988 | 988 | ||
989 | down_read(&mm->mmap_sem); | 989 | down_read(&mm->mmap_sem); |
990 | ret = __get_user_pages_locked(current, mm, start, nr_pages, pages, NULL, | 990 | ret = __get_user_pages_locked(current, mm, start, nr_pages, pages, NULL, |
991 | &locked, true, gup_flags | FOLL_TOUCH); | 991 | &locked, gup_flags | FOLL_TOUCH); |
992 | if (locked) | 992 | if (locked) |
993 | up_read(&mm->mmap_sem); | 993 | up_read(&mm->mmap_sem); |
994 | return ret; | 994 | return ret; |
@@ -1057,7 +1057,7 @@ long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm, | |||
1057 | struct vm_area_struct **vmas, int *locked) | 1057 | struct vm_area_struct **vmas, int *locked) |
1058 | { | 1058 | { |
1059 | return __get_user_pages_locked(tsk, mm, start, nr_pages, pages, vmas, | 1059 | return __get_user_pages_locked(tsk, mm, start, nr_pages, pages, vmas, |
1060 | locked, true, | 1060 | locked, |
1061 | gup_flags | FOLL_TOUCH | FOLL_REMOTE); | 1061 | gup_flags | FOLL_TOUCH | FOLL_REMOTE); |
1062 | } | 1062 | } |
1063 | EXPORT_SYMBOL(get_user_pages_remote); | 1063 | EXPORT_SYMBOL(get_user_pages_remote); |
@@ -1074,7 +1074,7 @@ long get_user_pages(unsigned long start, unsigned long nr_pages, | |||
1074 | struct vm_area_struct **vmas) | 1074 | struct vm_area_struct **vmas) |
1075 | { | 1075 | { |
1076 | return __get_user_pages_locked(current, current->mm, start, nr_pages, | 1076 | return __get_user_pages_locked(current, current->mm, start, nr_pages, |
1077 | pages, vmas, NULL, false, | 1077 | pages, vmas, NULL, |
1078 | gup_flags | FOLL_TOUCH); | 1078 | gup_flags | FOLL_TOUCH); |
1079 | } | 1079 | } |
1080 | EXPORT_SYMBOL(get_user_pages); | 1080 | EXPORT_SYMBOL(get_user_pages); |