projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
61c6de6
)
userfaultfd: check VM_MAYWRITE was set after verifying the uffd is registered
author
Andrea Arcangeli
<
[email protected]
>
Fri, 14 Dec 2018 22:17:17 +0000
(14:17 -0800)
committer
Linus Torvalds
<
[email protected]
>
Fri, 14 Dec 2018 23:05:45 +0000
(15:05 -0800)
Calling UFFDIO_UNREGISTER on virtual ranges not yet registered in uffd
could trigger an harmless false positive WARN_ON. Check the vma is
already registered before checking VM_MAYWRITE to shut off the false
positive warning.
Link:
http://lkml.kernel.org/r/
[email protected]
Cc: <
[email protected]
>
Fixes: 29ec90660d68 ("userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas")
Signed-off-by: Andrea Arcangeli <
[email protected]
>
Reported-by:
[email protected]
Acked-by: Mike Rapoport <
[email protected]
>
Acked-by: Hugh Dickins <
[email protected]
>
Acked-by: Peter Xu <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
fs/userfaultfd.c
patch
|
blob
|
history
diff --git
a/fs/userfaultfd.c
b/fs/userfaultfd.c
index cd58939dc977e481930053f37e3137394265d75e..7a85e609fc276f28dd80c8dc481e383094d1dfe9 100644
(file)
--- 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);