Commit b99eaefb authored by Andrea Arcangeli's avatar Andrea Arcangeli Committed by Greg Kroah-Hartman
Browse files

userfaultfd: check VM_MAYWRITE was set after verifying the uffd is registered

commit 01e881f5 upstream.

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.

Cc: <>
Fixes: 29ec9066

 ("userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas")
Signed-off-by: default avatarAndrea Arcangeli <>
Acked-by: default avatarMike Rapoport <>
Acked-by: default avatarHugh Dickins <>
Acked-by: default avatarPeter Xu <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
Signed-off-by: default avatarGreg Kroah-Hartman <>
parent 5f4610fe
......@@ -1567,7 +1567,6 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx,
WARN_ON(!(vma->vm_flags & VM_MAYWRITE));
* Nothing to do: this vma is already registered into this
......@@ -1576,6 +1575,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);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment