VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   33 Branches   57 Tags
author: Andrea Arcangeli <aarcange@redhat.com> 2018-12-14 14:17:17 -0800 committer: Linus Torvalds <torvalds@linux-foundation.org> 2018-12-14 15:05:45 -0800 commit: 01e881f5a1fca4677e82733061868c6d6ea05ca7 parent: 61c6de667263184125d5ca75e894fcad632b0dd3
Commit Summary:
userfaultfd: check VM_MAYWRITE was set after verifying the uffd is registered
Diffstat:
1 file changed, 2 insertions, 1 deletion
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index cd58939dc977..7a85e609fc27 100644
--- a/fs/userfaultfd.c
+++ b/fs/userfaultfd.c
@@ -1566,7 +1566,6 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx,
 		cond_resched();
 
 		BUG_ON(!vma_can_userfault(vma));
-		WARN_ON(!(vma->vm_flags & VM_MAYWRITE));
 
 		/*
 		 * Nothing to do: this vma is already registered into this
@@ -1575,6 +1574,8 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx,
 		if (!vma->vm_userfaultfd_ctx.ctx)
 			goto skip;
 
+		WARN_ON(!(vma->vm_flags & VM_MAYWRITE));
+
 		if (vma->vm_start > start)
 			start = vma->vm_start;
 		vma_end = min(end, vma->vm_end);