Lines Matching refs:bounce

127 static int dmirror_bounce_init(struct dmirror_bounce *bounce,  in dmirror_bounce_init()  argument
131 bounce->addr = addr; in dmirror_bounce_init()
132 bounce->size = size; in dmirror_bounce_init()
133 bounce->cpages = 0; in dmirror_bounce_init()
134 bounce->ptr = vmalloc(size); in dmirror_bounce_init()
135 if (!bounce->ptr) in dmirror_bounce_init()
155 static void dmirror_bounce_fini(struct dmirror_bounce *bounce) in dmirror_bounce_fini() argument
157 vfree(bounce->ptr); in dmirror_bounce_fini()
361 unsigned long end, struct dmirror_bounce *bounce) in dmirror_do_read() argument
366 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK); in dmirror_do_read()
383 bounce->cpages++; in dmirror_do_read()
391 struct dmirror_bounce bounce; in dmirror_read() local
401 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_read()
407 ret = dmirror_do_read(dmirror, start, end, &bounce); in dmirror_read()
412 start = cmd->addr + (bounce.cpages << PAGE_SHIFT); in dmirror_read()
420 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr, in dmirror_read()
421 bounce.size)) in dmirror_read()
424 cmd->cpages = bounce.cpages; in dmirror_read()
425 dmirror_bounce_fini(&bounce); in dmirror_read()
430 unsigned long end, struct dmirror_bounce *bounce) in dmirror_do_write() argument
435 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK); in dmirror_do_write()
452 bounce->cpages++; in dmirror_do_write()
460 struct dmirror_bounce bounce; in dmirror_write() local
470 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_write()
473 if (copy_from_user(bounce.ptr, u64_to_user_ptr(cmd->ptr), in dmirror_write()
474 bounce.size)) { in dmirror_write()
481 ret = dmirror_do_write(dmirror, start, end, &bounce); in dmirror_write()
486 start = cmd->addr + (bounce.cpages << PAGE_SHIFT); in dmirror_write()
494 cmd->cpages = bounce.cpages; in dmirror_write()
495 dmirror_bounce_fini(&bounce); in dmirror_write()
790 struct dmirror_bounce bounce; in dmirror_exclusive() local
838 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_exclusive()
842 ret = dmirror_do_read(dmirror, start, end, &bounce); in dmirror_exclusive()
845 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr, in dmirror_exclusive()
846 bounce.size)) in dmirror_exclusive()
850 cmd->cpages = bounce.cpages; in dmirror_exclusive()
851 dmirror_bounce_fini(&bounce); in dmirror_exclusive()
975 struct dmirror_bounce bounce; in dmirror_migrate_to_device() local
1024 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_migrate_to_device()
1028 ret = dmirror_do_read(dmirror, start, end, &bounce); in dmirror_migrate_to_device()
1031 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr, in dmirror_migrate_to_device()
1032 bounce.size)) in dmirror_migrate_to_device()
1035 cmd->cpages = bounce.cpages; in dmirror_migrate_to_device()
1036 dmirror_bounce_fini(&bounce); in dmirror_migrate_to_device()