Lines Matching refs:bounce
101 static int dmirror_bounce_init(struct dmirror_bounce *bounce, in dmirror_bounce_init() argument
105 bounce->addr = addr; in dmirror_bounce_init()
106 bounce->size = size; in dmirror_bounce_init()
107 bounce->cpages = 0; in dmirror_bounce_init()
108 bounce->ptr = vmalloc(size); in dmirror_bounce_init()
109 if (!bounce->ptr) in dmirror_bounce_init()
114 static void dmirror_bounce_fini(struct dmirror_bounce *bounce) in dmirror_bounce_fini() argument
116 vfree(bounce->ptr); in dmirror_bounce_fini()
316 unsigned long end, struct dmirror_bounce *bounce) in dmirror_do_read() argument
321 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK); in dmirror_do_read()
338 bounce->cpages++; in dmirror_do_read()
346 struct dmirror_bounce bounce; in dmirror_read() local
356 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_read()
362 ret = dmirror_do_read(dmirror, start, end, &bounce); in dmirror_read()
367 start = cmd->addr + (bounce.cpages << PAGE_SHIFT); in dmirror_read()
375 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr, in dmirror_read()
376 bounce.size)) in dmirror_read()
379 cmd->cpages = bounce.cpages; in dmirror_read()
380 dmirror_bounce_fini(&bounce); in dmirror_read()
385 unsigned long end, struct dmirror_bounce *bounce) in dmirror_do_write() argument
390 ptr = bounce->ptr + ((start - bounce->addr) & PAGE_MASK); in dmirror_do_write()
407 bounce->cpages++; in dmirror_do_write()
415 struct dmirror_bounce bounce; in dmirror_write() local
425 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_write()
428 if (copy_from_user(bounce.ptr, u64_to_user_ptr(cmd->ptr), in dmirror_write()
429 bounce.size)) { in dmirror_write()
436 ret = dmirror_do_write(dmirror, start, end, &bounce); in dmirror_write()
441 start = cmd->addr + (bounce.cpages << PAGE_SHIFT); in dmirror_write()
449 cmd->cpages = bounce.cpages; in dmirror_write()
450 dmirror_bounce_fini(&bounce); in dmirror_write()
718 struct dmirror_bounce bounce; in dmirror_exclusive() local
760 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_exclusive()
764 ret = dmirror_do_read(dmirror, start, end, &bounce); in dmirror_exclusive()
767 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr, in dmirror_exclusive()
768 bounce.size)) in dmirror_exclusive()
772 cmd->cpages = bounce.cpages; in dmirror_exclusive()
773 dmirror_bounce_fini(&bounce); in dmirror_exclusive()
786 struct dmirror_bounce bounce; in dmirror_migrate() local
831 ret = dmirror_bounce_init(&bounce, start, size); in dmirror_migrate()
835 ret = dmirror_do_read(dmirror, start, end, &bounce); in dmirror_migrate()
838 if (copy_to_user(u64_to_user_ptr(cmd->ptr), bounce.ptr, in dmirror_migrate()
839 bounce.size)) in dmirror_migrate()
842 cmd->cpages = bounce.cpages; in dmirror_migrate()
843 dmirror_bounce_fini(&bounce); in dmirror_migrate()