Lines Matching refs:bounce

127 static int dmirror_bounce_init(struct dmirror_bounce *bounce,
131 bounce->addr = addr;
132 bounce->size = size;
133 bounce->cpages = 0;
134 bounce->ptr = vmalloc(size);
135 if (!bounce->ptr)
155 static void dmirror_bounce_fini(struct dmirror_bounce *bounce)
157 vfree(bounce->ptr);
361 unsigned long end, struct dmirror_bounce *bounce)
366 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK);
380 bounce->cpages++;
388 struct dmirror_bounce bounce;
398 ret = dmirror_bounce_init(&bounce, start, size);
404 ret = dmirror_do_read(dmirror, start, end, &bounce);
409 start = cmd->addr + (bounce.cpages << PAGE_SHIFT);
417 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr,
418 bounce.size))
421 cmd->cpages = bounce.cpages;
422 dmirror_bounce_fini(&bounce);
427 unsigned long end, struct dmirror_bounce *bounce)
432 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK);
446 bounce->cpages++;
454 struct dmirror_bounce bounce;
464 ret = dmirror_bounce_init(&bounce, start, size);
467 if (copy_from_user(bounce.ptr, u64_to_user_ptr(cmd->ptr),
468 bounce.size)) {
475 ret = dmirror_do_write(dmirror, start, end, &bounce);
480 start = cmd->addr + (bounce.cpages << PAGE_SHIFT);
488 cmd->cpages = bounce.cpages;
489 dmirror_bounce_fini(&bounce);
784 struct dmirror_bounce bounce;
832 ret = dmirror_bounce_init(&bounce, start, size);
836 ret = dmirror_do_read(dmirror, start, end, &bounce);
839 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr,
840 bounce.size))
844 cmd->cpages = bounce.cpages;
845 dmirror_bounce_fini(&bounce);
969 struct dmirror_bounce bounce;
1018 ret = dmirror_bounce_init(&bounce, start, size);
1022 ret = dmirror_do_read(dmirror, start, end, &bounce);
1025 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr,
1026 bounce.size))
1029 cmd->cpages = bounce.cpages;
1030 dmirror_bounce_fini(&bounce);