Version: 1
-Previous: cccb1cbfde1b88e12eb6d1ccf9373b488a0ff217
-Head: 1dfcf482516208ea9c84bcb9f13054553213c82c
+Previous: 76126a910a4b559d158b9b448d195546a5d6dc3a
+Head: 7f4f86d0efa766d23f2979cc75d5ec3e185d97bc
Applied:
dsocket: 1dfcf482516208ea9c84bcb9f13054553213c82c
+ refresh-temp: 7f4f86d0efa766d23f2979cc75d5ec3e185d97bc
Unapplied:
udpong: ecf6d20467feb7aec39bcf77bfc8795186290eb1
test-udp: f6c78ad2a26f452cf166aff1baa7b76160bd8bf7
--- /dev/null
+Bottom: 719db85186f7ed857546278db44ac37a1e6e8dee
+Top: 2a1d1a24a767c8fd0bc9fda9532541008404ecc6
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-12-19 15:27:21 -0800
+
+Refresh of dsocket
+
+---
+
+diff --git a/src/rsocket.c b/src/rsocket.c
+index 0111836..7be42ca 100644
+--- a/src/rsocket.c
++++ b/src/rsocket.c
+@@ -700,6 +700,11 @@ static int ds_init_bufs(struct ds_qp *qp)
+ return 0;
+ }
+
++/*
++ * If a user is waiting on a datagram rsocket through poll or select, then
++ * we need the first completion to generate an event on the related epoll fd
++ * in order to signal the user. We arm the CQ on creation for this purpose
++ */
+ static int rs_create_cq(struct rsocket *rs, struct rdma_cm_id *cm_id)
+ {
+ cm_id->recv_cq_channel = ibv_create_comp_channel(cm_id->verbs);
+@@ -715,11 +720,8 @@ static int rs_create_cq(struct rsocket *rs, struct rdma_cm_id *cm_id)
+ if (fcntl(cm_id->recv_cq_channel->fd, F_SETFL, O_NONBLOCK))
+ goto err2;
+ }
+- //***
+- //else {
+- ibv_req_notify_cq(cm_id->recv_cq, 0);
+- //}
+
++ ibv_req_notify_cq(cm_id->recv_cq, 0);
+ cm_id->send_cq_channel = cm_id->recv_cq_channel;
+ cm_id->send_cq = cm_id->recv_cq;
+ return 0;