|
@@ -633,8 +633,10 @@ static void userfaultfd_event_wait_completion(struct userfaultfd_ctx *ctx,
|
|
|
/* the various vma->vm_userfaultfd_ctx still points to it */
|
|
|
down_write(&mm->mmap_sem);
|
|
|
for (vma = mm->mmap; vma; vma = vma->vm_next)
|
|
|
- if (vma->vm_userfaultfd_ctx.ctx == release_new_ctx)
|
|
|
+ if (vma->vm_userfaultfd_ctx.ctx == release_new_ctx) {
|
|
|
vma->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX;
|
|
|
+ vma->vm_flags &= ~(VM_UFFD_WP | VM_UFFD_MISSING);
|
|
|
+ }
|
|
|
up_write(&mm->mmap_sem);
|
|
|
|
|
|
userfaultfd_ctx_put(release_new_ctx);
|