};
};
-#define RS_RECV_WR_ID ~NULL
+#define RS_RECV_WR_ID (~((uint64_t) 0))
+
/*
* rsocket states are ordered as passive, connecting, connected, disconnected.
*/
return -1;
}
+static inline int
+rs_post_recv(struct rsocket *rs)
+{
+ struct ibv_recv_wr wr, *bad;
+
+ wr.wr_id = RS_RECV_WR_ID;
+ wr.next = NULL;
+ wr.sg_list = NULL;
+ wr.num_sge = 0;
+
+ return rdma_seterrno(ibv_post_recv(rs->cm_id->qp, &wr, &bad));
+}
+
static int rs_create_ep(struct rsocket *rs)
{
struct ibv_qp_init_attr qp_attr;
return ret;
for (i = 0; i < rs->rq_size; i++) {
- ret = rdma_post_recvv(rs->cm_id, RS_RECV_WR_ID, NULL, 0);
+ ret = rs_post_recv(rs);
if (ret)
return ret;
}
if (rs->state & rs_connected) {
while (!ret && rcnt--)
- ret = rdma_post_recvv(rs->cm_id, RS_RECV_WR_ID, NULL, 0);
+ ret = rs_post_recv(rs);
if (ret) {
rs->state = rs_error;