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