mm: replace access_process_vm() write parameter with gup_flags
This removes the 'write' argument from access_process_vm() and replaces it with 'gup_flags' as use of this function previously silently implied FOLL_FORCE, whereas after this patch callers explicitly pass this flag. We make this explicit as use of FOLL_FORCE can result in surprising behaviour (and hence bugs) within the mm subsystem. Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
6347e8d5bc
commit
f307ab6dce
@@ -131,7 +131,7 @@ read_tsk_long(struct task_struct *child,
|
||||
{
|
||||
int copied;
|
||||
|
||||
copied = access_process_vm(child, addr, res, sizeof(*res), 0);
|
||||
copied = access_process_vm(child, addr, res, sizeof(*res), FOLL_FORCE);
|
||||
|
||||
return copied != sizeof(*res) ? -EIO : 0;
|
||||
}
|
||||
@@ -142,7 +142,7 @@ read_tsk_short(struct task_struct *child,
|
||||
{
|
||||
int copied;
|
||||
|
||||
copied = access_process_vm(child, addr, res, sizeof(*res), 0);
|
||||
copied = access_process_vm(child, addr, res, sizeof(*res), FOLL_FORCE);
|
||||
|
||||
return copied != sizeof(*res) ? -EIO : 0;
|
||||
}
|
||||
@@ -153,7 +153,8 @@ write_tsk_short(struct task_struct *child,
|
||||
{
|
||||
int copied;
|
||||
|
||||
copied = access_process_vm(child, addr, &val, sizeof(val), 1);
|
||||
copied = access_process_vm(child, addr, &val, sizeof(val),
|
||||
FOLL_FORCE | FOLL_WRITE);
|
||||
|
||||
return copied != sizeof(val) ? -EIO : 0;
|
||||
}
|
||||
@@ -164,7 +165,8 @@ write_tsk_long(struct task_struct *child,
|
||||
{
|
||||
int copied;
|
||||
|
||||
copied = access_process_vm(child, addr, &val, sizeof(val), 1);
|
||||
copied = access_process_vm(child, addr, &val, sizeof(val),
|
||||
FOLL_FORCE | FOLL_WRITE);
|
||||
|
||||
return copied != sizeof(val) ? -EIO : 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user