xen: xenfs: privcmd: check put_user() return code

put_user() may fail.  In this case propagate error code from
privcmd_ioctl_mmap_batch().

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
This commit is contained in:
Vasiliy Kulikov 2010-10-28 15:39:02 +04:00 committed by Jeremy Fitzhardinge
parent 9387377eb7
commit 313e744121

View File

@ -266,9 +266,7 @@ static int mmap_return_errors(void *data, void *state)
xen_pfn_t *mfnp = data; xen_pfn_t *mfnp = data;
struct mmap_batch_state *st = state; struct mmap_batch_state *st = state;
put_user(*mfnp, st->user++); return put_user(*mfnp, st->user++);
return 0;
} }
static struct vm_operations_struct privcmd_vm_ops; static struct vm_operations_struct privcmd_vm_ops;
@ -323,10 +321,8 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
up_write(&mm->mmap_sem); up_write(&mm->mmap_sem);
if (state.err > 0) { if (state.err > 0) {
ret = 0;
state.user = m.arr; state.user = m.arr;
traverse_pages(m.num, sizeof(xen_pfn_t), ret = traverse_pages(m.num, sizeof(xen_pfn_t),
&pagelist, &pagelist,
mmap_return_errors, &state); mmap_return_errors, &state);
} }