Skip to content
  • Al Viro's avatar
    get_user_pages_unlocked(): pass true to __get_user_pages_locked() notify_drop · 14cb138d
    Al Viro authored
    
    
    Equivalent transformation - the only place in __get_user_pages_locked()
    where we look at notify_drop argument is
    	if (notify_drop && lock_dropped && *locked) {
    		up_read(&mm->mmap_sem);
    		*locked = 0;
    	}
    in the very end.  Changing notify_drop from false to true won't change
    behaviour unless *locked is non-zero.  The caller is
            ret = __get_user_pages_locked(current, mm, start, nr_pages, pages, NULL,
    			      &locked, false, gup_flags | FOLL_TOUCH);
    	if (locked)
    		up_read(&mm->mmap_sem);
    so in that case the original kernel would have done up_read() right after
    return from __get_user_pages_locked(), while the modified one would've done
    it right before the return.
    
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    14cb138d