Lines Matching defs:rm

605 int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm,
610 struct rm_rdma_op *op = &rm->rdma;
620 || rm->rdma.op_active)
666 op->op_sg = rds_message_alloc_sgs(rm, nr_pages);
804 int rds_cmsg_rdma_dest(struct rds_sock *rs, struct rds_message *rm,
813 rm->m_rdma_cookie != 0)
816 memcpy(&rm->m_rdma_cookie, CMSG_DATA(cmsg), sizeof(rm->m_rdma_cookie));
823 r_key = rds_rdma_cookie_key(rm->m_rdma_cookie);
836 rm->rdma.op_rdma_mr = mr;
844 * in rm->m_rdma_cookie. This causes it to be sent along to the peer
847 int rds_cmsg_rdma_map(struct rds_sock *rs, struct rds_message *rm,
851 rm->m_rdma_cookie != 0)
854 return __rds_rdma_map(rs, CMSG_DATA(cmsg), &rm->m_rdma_cookie,
855 &rm->rdma.op_rdma_mr, rm->m_conn_path);
861 int rds_cmsg_atomic(struct rds_sock *rs, struct rds_message *rm,
869 || rm->atomic.op_active)
877 rm->atomic.op_type = RDS_ATOMIC_TYPE_FADD;
878 rm->atomic.op_m_fadd.add = args->fadd.add;
879 rm->atomic.op_m_fadd.nocarry_mask = 0;
882 rm->atomic.op_type = RDS_ATOMIC_TYPE_FADD;
883 rm->atomic.op_m_fadd.add = args->m_fadd.add;
884 rm->atomic.op_m_fadd.nocarry_mask = args->m_fadd.nocarry_mask;
887 rm->atomic.op_type = RDS_ATOMIC_TYPE_CSWP;
888 rm->atomic.op_m_cswp.compare = args->cswp.compare;
889 rm->atomic.op_m_cswp.swap = args->cswp.swap;
890 rm->atomic.op_m_cswp.compare_mask = ~0;
891 rm->atomic.op_m_cswp.swap_mask = ~0;
894 rm->atomic.op_type = RDS_ATOMIC_TYPE_CSWP;
895 rm->atomic.op_m_cswp.compare = args->m_cswp.compare;
896 rm->atomic.op_m_cswp.swap = args->m_cswp.swap;
897 rm->atomic.op_m_cswp.compare_mask = args->m_cswp.compare_mask;
898 rm->atomic.op_m_cswp.swap_mask = args->m_cswp.swap_mask;
904 rm->atomic.op_notify = !!(args->flags & RDS_RDMA_NOTIFY_ME);
905 rm->atomic.op_silent = !!(args->flags & RDS_RDMA_SILENT);
906 rm->atomic.op_active = 1;
907 rm->atomic.op_recverr = rs->rs_recverr;
908 rm->atomic.op_sg = rds_message_alloc_sgs(rm, 1);
909 if (IS_ERR(rm->atomic.op_sg)) {
910 ret = PTR_ERR(rm->atomic.op_sg);
925 sg_set_page(rm->atomic.op_sg, page, 8, offset_in_page(args->local_addr));
927 if (rm->atomic.op_notify || rm->atomic.op_recverr) {
933 rm->atomic.op_notifier = kmalloc_obj(*rm->atomic.op_notifier);
934 if (!rm->atomic.op_notifier) {
939 rm->atomic.op_notifier->n_user_token = args->user_token;
940 rm->atomic.op_notifier->n_status = RDS_RDMA_SUCCESS;
943 rm->atomic.op_rkey = rds_rdma_cookie_key(args->cookie);
944 rm->atomic.op_remote_addr = args->remote_addr + rds_rdma_cookie_offset(args->cookie);
950 rm->atomic.op_active = 0;
951 kfree(rm->atomic.op_notifier);