linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] userfaultfd_zeropage: return -ENOSPC in case mm has gone
@ 2017-07-27  6:26 Mike Rapoport
  2017-07-31 12:22 ` Michal Hocko
  0 siblings, 1 reply; 12+ messages in thread
From: Mike Rapoport @ 2017-07-27  6:26 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Andrea Arcangeli, Dr. David Alan Gilbert, Pavel Emelyanov,
	linux-mm, lkml, Mike Rapoport, stable

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.


Cc: stable@vger.kernel.org
Fixes: 96333187ab162 ("userfaultfd_copy: return -ENOSPC in case mm has gone")

Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
---

Unfortunately, I've overlooked userfaultfd_zeropage when I updated
userfaultd_copy :(

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

diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index cadcd12a3d35..2d8c2d848668 100644
--- a/fs/userfaultfd.c
+++ b/fs/userfaultfd.c
@@ -1643,6 +1643,8 @@ static int userfaultfd_zeropage(struct userfaultfd_ctx *ctx,
 		ret = mfill_zeropage(ctx->mm, uffdio_zeropage.range.start,
 				     uffdio_zeropage.range.len);
 		mmput(ctx->mm);
+	} else {
+		return -ENOSPC;
 	}
 	if (unlikely(put_user(ret, &user_uffdio_zeropage->zeropage)))
 		return -EFAULT;
-- 
2.7.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-08-03 21:25 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-27  6:26 [PATCH] userfaultfd_zeropage: return -ENOSPC in case mm has gone Mike Rapoport
2017-07-31 12:22 ` Michal Hocko
2017-07-31 13:32   ` Andrea Arcangeli
2017-07-31 13:45     ` Michal Hocko
2017-08-02 12:34       ` Mike Rapoport
2017-08-02 13:21         ` Dr. David Alan Gilbert
2017-08-02 15:55         ` Andrea Arcangeli
2017-08-02 16:22           ` Michal Hocko
2017-08-02 16:40             ` Andrea Arcangeli
2017-08-03 17:24               ` Mike Rapoport
2017-08-03 21:25                 ` Andrea Arcangeli
2017-07-31 13:36   ` Mike Rapoport

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).