mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
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>
This commit is contained in:
parent
9a949e8ff9
commit
14cb138d7c
2
mm/gup.c
2
mm/gup.c
|
|
@ -988,7 +988,7 @@ long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
|
|||
|
||||
down_read(&mm->mmap_sem);
|
||||
ret = __get_user_pages_locked(current, mm, start, nr_pages, pages, NULL,
|
||||
&locked, false, gup_flags | FOLL_TOUCH);
|
||||
&locked, true, gup_flags | FOLL_TOUCH);
|
||||
if (locked)
|
||||
up_read(&mm->mmap_sem);
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user