Lines Matching refs:args

173 static int __rds_rdma_map(struct rds_sock *rs, struct rds_get_mr_args *args,
197 nr_pages = rds_pages_in_vec(&args->vec);
204 args->vec.addr, args->vec.bytes, nr_pages);
224 if (args->flags & RDS_RDMA_USE_ONCE)
226 if (args->flags & RDS_RDMA_INVALIDATE)
228 if (args->flags & RDS_RDMA_READWRITE)
241 ret = rds_pin_pages(args->vec.addr, nr_pages, pages, 1);
278 mr->r_key, (void *)(unsigned long) args->cookie_addr);
284 cookie = rds_rdma_make_cookie(mr->r_key, args->vec.addr & ~PAGE_MASK);
288 if (args->cookie_addr && put_user(cookie, (u64 __user *)(unsigned long) args->cookie_addr)) {
317 struct rds_get_mr_args args;
322 if (copy_from_user(&args, (struct rds_get_mr_args __user *)optval,
326 return __rds_rdma_map(rs, &args, NULL, NULL);
331 struct rds_get_mr_for_dest_args args;
337 if (copy_from_user(&args, (struct rds_get_mr_for_dest_args __user *)optval,
346 new_args.vec = args.vec;
347 new_args.cookie_addr = args.cookie_addr;
348 new_args.flags = args.flags;
358 struct rds_free_mr_args args;
365 if (copy_from_user(&args, (struct rds_free_mr_args __user *)optval,
370 if (args.cookie == 0) {
382 mr = rds_mr_tree_walk(&rs->rs_rdma_keys, rds_rdma_cookie_key(args.cookie), NULL);
386 if (args.flags & RDS_RDMA_INVALIDATE)
509 int rds_rdma_extra_size(struct rds_rdma_args *args)
517 local_vec = (struct rds_iovec __user *)(unsigned long) args->local_vec_addr;
520 for (i = 0; i < args->nr_local; i++) {
549 struct rds_rdma_args *args;
563 args = CMSG_DATA(cmsg);
570 if (args->nr_local > UIO_MAXIOV) {
576 iov_size = args->nr_local * sizeof(struct rds_iovec);
577 if (args->nr_local > UIO_FASTIOV) {
585 if (copy_from_user(iovs, (struct rds_iovec __user *)(unsigned long) args->local_vec_addr, iov_size)) {
590 nr_pages = rds_rdma_pages(iovs, args->nr_local);
602 op->op_write = !!(args->flags & RDS_RDMA_READWRITE);
603 op->op_fence = !!(args->flags & RDS_RDMA_FENCE);
604 op->op_notify = !!(args->flags & RDS_RDMA_NOTIFY_ME);
605 op->op_silent = !!(args->flags & RDS_RDMA_SILENT);
626 op->op_notifier->n_user_token = args->user_token;
637 op->op_rkey = rds_rdma_cookie_key(args->cookie);
638 op->op_remote_addr = args->remote_vec.addr + rds_rdma_cookie_offset(args->cookie);
643 (unsigned long long)args->nr_local,
644 (unsigned long long)args->remote_vec.addr,
647 for (i = 0; i < args->nr_local; i++) {
686 if (nr_bytes > args->remote_vec.bytes) {
689 (unsigned int) args->remote_vec.bytes);
770 struct rds_atomic_args *args;
777 args = CMSG_DATA(cmsg);
783 rm->atomic.op_m_fadd.add = args->fadd.add;
788 rm->atomic.op_m_fadd.add = args->m_fadd.add;
789 rm->atomic.op_m_fadd.nocarry_mask = args->m_fadd.nocarry_mask;
793 rm->atomic.op_m_cswp.compare = args->cswp.compare;
794 rm->atomic.op_m_cswp.swap = args->cswp.swap;
800 rm->atomic.op_m_cswp.compare = args->m_cswp.compare;
801 rm->atomic.op_m_cswp.swap = args->m_cswp.swap;
802 rm->atomic.op_m_cswp.compare_mask = args->m_cswp.compare_mask;
803 rm->atomic.op_m_cswp.swap_mask = args->m_cswp.swap_mask;
809 rm->atomic.op_notify = !!(args->flags & RDS_RDMA_NOTIFY_ME);
810 rm->atomic.op_silent = !!(args->flags & RDS_RDMA_SILENT);
820 if (args->local_addr & 0x7) {
825 ret = rds_pin_pages(args->local_addr, 1, &page, 1);
830 sg_set_page(rm->atomic.op_sg, page, 8, offset_in_page(args->local_addr));
844 rm->atomic.op_notifier->n_user_token = args->user_token;
848 rm->atomic.op_rkey = rds_rdma_cookie_key(args->cookie);
849 rm->atomic.op_remote_addr = args->remote_addr + rds_rdma_cookie_offset(args->cookie);