diff options
author | Lorenzo Stoakes <lstoakes@gmail.com> | 2016-10-12 20:20:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-19 11:31:25 -0400 |
commit | f307ab6dcea03f9d8e4d70508fd7d1ca57cfa7f9 (patch) | |
tree | 94a96ebae9957cf1252231a69f8904796aa2563e /mm/util.c | |
parent | 6347e8d5bcce33fc36e651901efefbe2c93a43ef (diff) |
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>
Diffstat (limited to 'mm/util.c')
-rw-r--r-- | mm/util.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -624,7 +624,7 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen) | |||
624 | if (len > buflen) | 624 | if (len > buflen) |
625 | len = buflen; | 625 | len = buflen; |
626 | 626 | ||
627 | res = access_process_vm(task, arg_start, buffer, len, 0); | 627 | res = access_process_vm(task, arg_start, buffer, len, FOLL_FORCE); |
628 | 628 | ||
629 | /* | 629 | /* |
630 | * If the nul at the end of args has been overwritten, then | 630 | * If the nul at the end of args has been overwritten, then |
@@ -639,7 +639,8 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen) | |||
639 | if (len > buflen - res) | 639 | if (len > buflen - res) |
640 | len = buflen - res; | 640 | len = buflen - res; |
641 | res += access_process_vm(task, env_start, | 641 | res += access_process_vm(task, env_start, |
642 | buffer+res, len, 0); | 642 | buffer+res, len, |
643 | FOLL_FORCE); | ||
643 | res = strnlen(buffer, res); | 644 | res = strnlen(buffer, res); |
644 | } | 645 | } |
645 | } | 646 | } |