mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 17:23:36 +00:00
untangling process_vm_..., part 2
move iov to caller's stack frame; the value we assign to it on the next call of process_vm_rw_pages() is equal to the value it had when the last time we were leaving process_vm_rw_pages(). drop lvec argument of process_vm_rw_pages() - it's not used anymore. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
480402e18d
commit
c61c70384f
@ -45,7 +45,7 @@ static int process_vm_rw_pages(struct task_struct *task,
|
||||
unsigned long pa,
|
||||
unsigned long start_offset,
|
||||
unsigned long len,
|
||||
const struct iovec *lvec,
|
||||
const struct iovec **iovp,
|
||||
unsigned long lvec_cnt,
|
||||
unsigned long *lvec_current,
|
||||
size_t *lvec_offset,
|
||||
@ -60,7 +60,7 @@ static int process_vm_rw_pages(struct task_struct *task,
|
||||
int ret;
|
||||
ssize_t bytes_to_copy;
|
||||
ssize_t rc = 0;
|
||||
const struct iovec *iov = lvec + *lvec_current;
|
||||
const struct iovec *iov = *iovp;
|
||||
|
||||
*bytes_copied = 0;
|
||||
|
||||
@ -149,6 +149,7 @@ static int process_vm_rw_pages(struct task_struct *task,
|
||||
put_page(process_pages[j]);
|
||||
}
|
||||
|
||||
*iovp = iov;
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -192,6 +193,7 @@ static int process_vm_rw_single_vec(unsigned long addr,
|
||||
unsigned long nr_pages_to_copy;
|
||||
unsigned long max_pages_per_loop = PVM_MAX_KMALLOC_PAGES
|
||||
/ sizeof(struct pages *);
|
||||
const struct iovec *iov = lvec + *lvec_current;
|
||||
|
||||
*bytes_copied = 0;
|
||||
|
||||
@ -206,7 +208,7 @@ static int process_vm_rw_single_vec(unsigned long addr,
|
||||
|
||||
rc = process_vm_rw_pages(task, mm, process_pages, pa,
|
||||
start_offset, len,
|
||||
lvec, lvec_cnt,
|
||||
&iov, lvec_cnt,
|
||||
lvec_current, lvec_offset,
|
||||
vm_write, nr_pages_to_copy,
|
||||
&bytes_copied_loop);
|
||||
|
Loading…
Reference in New Issue
Block a user