diff --git a/mm/gup.c b/mm/gup.c index afce0bc47e70124d20947b569e8877f1396f9c1a..6076df8e04a4e74dbb1405aa0e28ec9c72b59c4b 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1326,8 +1326,11 @@ retry: * start trying again otherwise it can loop forever. */ - if (fatal_signal_pending(current)) + if (fatal_signal_pending(current)) { + if (!pages_done) + pages_done = -EINTR; break; + } ret = down_read_killable(&mm->mmap_sem); if (ret) {