(changed 'CC: - Michael Rapoport <RAPOPORT@xxxxxxxxxx>, - Dr. David Alan Gilbert@v2.random, <dgilbert@xxxxxxxxxx>, + Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>, - Pavel Emelyanov <xemul@xxxxxxxxxxxxx>@v2.random + Pavel Emelyanov <xemul@xxxxxxxxxxxxx> ) On Thu, Nov 03, 2016 at 04:01:12PM +0800, Hillf Danton wrote: > On Thursday, November 03, 2016 3:34 AM Andrea Arcangeli wrote: > > +void madvise_userfault_dontneed(struct vm_area_struct *vma, > > + struct vm_area_struct **prev, > > + unsigned long start, unsigned long end) > > +{ > > + struct userfaultfd_ctx *ctx; > > + struct userfaultfd_wait_queue ewq; > > + > > + ctx = vma->vm_userfaultfd_ctx.ctx; > > + if (!ctx || !(ctx->features & UFFD_FEATURE_EVENT_MADVDONTNEED)) > > + return; > > + > > + userfaultfd_ctx_get(ctx); > > + *prev = NULL; /* We wait for ACK w/o the mmap semaphore */ > > + up_read(&vma->vm_mm->mmap_sem); > > + > > + msg_init(&ewq.msg); > > + > > + ewq.msg.event = UFFD_EVENT_MADVDONTNEED; > > + ewq.msg.arg.madv_dn.start = start; > > + ewq.msg.arg.madv_dn.end = end; > > + > > + userfaultfd_event_wait_completion(ctx, &ewq); > > + > > + down_read(&vma->vm_mm->mmap_sem); > > After napping with mmap_sem released, is vma still valid? You are right, vma may be invalid at that point. Thanks for spotting. Andrea, how do you prefer the fix, incremental or the entire patch updated? > > +} > > + -- Sincerely yours, Mike. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>