4.12-stable review patch.  If anyone has any objections, please let me know.


From: Mike Rapoport <r...@linux.vnet.ibm.com>

commit 9d95aa4bada24be35bb94827a55e1d6e243d866e upstream.

In the non-cooperative userfaultfd case, the process exit may race with
outstanding mcopy_atomic called by the uffd monitor.  Returning -ENOSPC
instead of -EINVAL when mm is already gone will allow uffd monitor to
distinguish this case from other error conditions.

Unfortunately I overlooked userfaultfd_zeropage when updating

Fixes: 96333187ab162 ("userfaultfd_copy: return -ENOSPC in case mm has gone")
Signed-off-by: Mike Rapoport <r...@linux.vnet.ibm.com>
Cc: Andrea Arcangeli <aarca...@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilb...@redhat.com>
Cc: Pavel Emelyanov <xe...@virtuozzo.com>
Cc: Michal Hocko <mho...@kernel.org>
Signed-off-by: Andrew Morton <a...@linux-foundation.org>
Signed-off-by: Linus Torvalds <torva...@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

 fs/userfaultfd.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/userfaultfd.c
+++ b/fs/userfaultfd.c
@@ -1645,6 +1645,8 @@ static int userfaultfd_zeropage(struct u
                ret = mfill_zeropage(ctx->mm, uffdio_zeropage.range.start,
+       } else {
+               return -ENOSPC;
        if (unlikely(put_user(ret, &user_uffdio_zeropage->zeropage)))
                return -EFAULT;

Reply via email to