diff options
Diffstat (limited to 'arch/s390/mm/gup.c')
-rw-r--r-- | arch/s390/mm/gup.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/s390/mm/gup.c b/arch/s390/mm/gup.c index 639fce464008..5c586c78ca8d 100644 --- a/arch/s390/mm/gup.c +++ b/arch/s390/mm/gup.c | |||
@@ -235,10 +235,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, | |||
235 | /* Try to get the remaining pages with get_user_pages */ | 235 | /* Try to get the remaining pages with get_user_pages */ |
236 | start += nr << PAGE_SHIFT; | 236 | start += nr << PAGE_SHIFT; |
237 | pages += nr; | 237 | pages += nr; |
238 | down_read(&mm->mmap_sem); | 238 | ret = get_user_pages_unlocked(current, mm, start, |
239 | ret = get_user_pages(current, mm, start, | 239 | nr_pages - nr, write, 0, pages); |
240 | nr_pages - nr, write, 0, pages, NULL); | ||
241 | up_read(&mm->mmap_sem); | ||
242 | /* Have to be a bit careful with return values */ | 240 | /* Have to be a bit careful with return values */ |
243 | if (nr > 0) | 241 | if (nr > 0) |
244 | ret = (ret < 0) ? nr : ret + nr; | 242 | ret = (ret < 0) ? nr : ret + nr; |