platform: goldfish: pipe: use get_user_pages_unlocked()
authorLorenzo Stoakes <lstoakes@gmail.com>
Tue, 1 Nov 2016 19:43:43 +0000 (19:43 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Nov 2016 14:34:56 +0000 (15:34 +0100)
Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code
and takes advantage of VM_FAULT_RETRY functionality when faulting in pages.

Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/platform/goldfish/goldfish_pipe.c

index 1aba2c7..2b21033 100644 (file)
@@ -308,10 +308,8 @@ static ssize_t goldfish_pipe_read_write(struct file *filp, char __user *buffer,
                 * returns a small amount, then there's no need to pin that
                 * much memory to the process.
                 */
-               down_read(&current->mm->mmap_sem);
-               ret = get_user_pages(address, 1, is_write ? 0 : FOLL_WRITE,
-                               &page, NULL);
-               up_read(&current->mm->mmap_sem);
+               ret = get_user_pages_unlocked(address, 1, &page,
+                               is_write ? 0 : FOLL_WRITE);
                if (ret < 0)
                        break;