]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit - mm/gup.c
get_user_pages_unlocked(): pass true to __get_user_pages_locked() notify_drop
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 19 Nov 2017 16:21:10 +0000 (11:21 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Dec 2017 01:29:12 +0000 (20:29 -0500)
commit14cb138d7c1c749d81dc3e66cd70f7a884e1da56
tree6887b6c7763967fae4ddd7f0f305e8799366af45
parent9a949e8ff92246c0753b2805c2a001cb991fffe5
get_user_pages_unlocked(): pass true to __get_user_pages_locked() notify_drop

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: Al Viro <viro@zeniv.linux.org.uk>
mm/gup.c