summaryrefslogtreecommitdiff
path: root/mm/gup.c
diff options
context:
space:
mode:
authorWolfram Sang <wsa@the-dreams.de>2018-03-24 13:39:18 +0100
committerWolfram Sang <wsa@the-dreams.de>2018-03-24 13:39:18 +0100
commit0b884c22c5b7f6ef985b3d39fed06ad1f8296042 (patch)
tree74504e80ad62cb0acabdfa796348d001d5d1a2a4 /mm/gup.c
parenteb49778c8c6cbe075cf90d741ccf16f674a8db4e (diff)
parent84e10623c0b9c81557918804f309d66aec86a233 (diff)
downloadlinux-0b884c22c5b7f6ef985b3d39fed06ad1f8296042.tar.gz
linux-0b884c22c5b7f6ef985b3d39fed06ad1f8296042.tar.xz
Merge tag 'at24-4.17-updates-for-wolfram' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-4.17
"three new special cases for device tree compatible strings"
Diffstat (limited to 'mm/gup.c')
-rw-r--r--mm/gup.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/mm/gup.c b/mm/gup.c
index 1b46e6e74881..6afae32571ca 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -516,7 +516,7 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
}
if (ret & VM_FAULT_RETRY) {
- if (nonblocking)
+ if (nonblocking && !(fault_flags & FAULT_FLAG_RETRY_NOWAIT))
*nonblocking = 0;
return -EBUSY;
}
@@ -890,7 +890,10 @@ static __always_inline long __get_user_pages_locked(struct task_struct *tsk,
break;
}
if (*locked) {
- /* VM_FAULT_RETRY didn't trigger */
+ /*
+ * VM_FAULT_RETRY didn't trigger or it was a
+ * FOLL_NOWAIT.
+ */
if (!pages_done)
pages_done = ret;
break;