Lines Matching refs:bounce

99 static int dmirror_bounce_init(struct dmirror_bounce *bounce,
103 bounce->addr = addr;
104 bounce->size = size;
105 bounce->cpages = 0;
106 bounce->ptr = vmalloc(size);
107 if (!bounce->ptr)
112 static void dmirror_bounce_fini(struct dmirror_bounce *bounce)
114 vfree(bounce->ptr);
314 unsigned long end, struct dmirror_bounce *bounce)
319 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK);
336 bounce->cpages++;
344 struct dmirror_bounce bounce;
354 ret = dmirror_bounce_init(&bounce, start, size);
360 ret = dmirror_do_read(dmirror, start, end, &bounce);
365 start = cmd->addr + (bounce.cpages << PAGE_SHIFT);
373 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr,
374 bounce.size))
377 cmd->cpages = bounce.cpages;
378 dmirror_bounce_fini(&bounce);
383 unsigned long end, struct dmirror_bounce *bounce)
388 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK);
405 bounce->cpages++;
413 struct dmirror_bounce bounce;
423 ret = dmirror_bounce_init(&bounce, start, size);
426 if (copy_from_user(bounce.ptr, u64_to_user_ptr(cmd->ptr),
427 bounce.size)) {
434 ret = dmirror_do_write(dmirror, start, end, &bounce);
439 start = cmd->addr + (bounce.cpages << PAGE_SHIFT);
447 cmd->cpages = bounce.cpages;
448 dmirror_bounce_fini(&bounce);
673 struct dmirror_bounce bounce;
719 ret = dmirror_bounce_init(&bounce, start, size);
723 ret = dmirror_do_read(dmirror, start, end, &bounce);
726 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr,
727 bounce.size))
730 cmd->cpages = bounce.cpages;
731 dmirror_bounce_fini(&bounce);