diff --git a/mm/gup.c b/mm/gup.c index e3fa43a76fe6..99c83218f6a3 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1098,8 +1098,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) {