aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory.c
diff options
context:
space:
mode:
authorLorenzo Stoakes <lstoakes@gmail.com>2016-10-12 20:20:19 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-19 11:12:14 -0400
commit6347e8d5bcce33fc36e651901efefbe2c93a43ef (patch)
tree8b738e79772acf156b4bbeca09127afb7dae9554 /mm/memory.c
parent442486ec1096781c50227b73f721a63974b0fdda (diff)
mm: replace access_remote_vm() write parameter with gup_flags
This removes the 'write' argument from access_remote_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: Michal Hocko <mhocko@suse.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 79ebed3a4c2b..bac2d994850e 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -3935,19 +3935,14 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
3935 * @addr: start address to access 3935 * @addr: start address to access
3936 * @buf: source or destination buffer 3936 * @buf: source or destination buffer
3937 * @len: number of bytes to transfer 3937 * @len: number of bytes to transfer
3938 * @write: whether the access is a write 3938 * @gup_flags: flags modifying lookup behaviour
3939 * 3939 *
3940 * The caller must hold a reference on @mm. 3940 * The caller must hold a reference on @mm.
3941 */ 3941 */
3942int access_remote_vm(struct mm_struct *mm, unsigned long addr, 3942int access_remote_vm(struct mm_struct *mm, unsigned long addr,
3943 void *buf, int len, int write) 3943 void *buf, int len, unsigned int gup_flags)
3944{ 3944{
3945 unsigned int flags = FOLL_FORCE; 3945 return __access_remote_vm(NULL, mm, addr, buf, len, gup_flags);
3946
3947 if (write)
3948 flags |= FOLL_WRITE;
3949
3950 return __access_remote_vm(NULL, mm, addr, buf, len, flags);
3951} 3946}
3952 3947
3953/* 3948/*