summaryrefslogtreecommitdiffstats
path: root/sys/contrib/rdma/krping/krping.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/rdma/krping/krping.c')
-rw-r--r--sys/contrib/rdma/krping/krping.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/contrib/rdma/krping/krping.c b/sys/contrib/rdma/krping/krping.c
index 667af40..3ad881e 100644
--- a/sys/contrib/rdma/krping/krping.c
+++ b/sys/contrib/rdma/krping/krping.c
@@ -261,12 +261,18 @@ static int krping_cma_event_handler(struct rdma_cm_id *cma_id,
case RDMA_CM_EVENT_ROUTE_RESOLVED:
cb->state = ROUTE_RESOLVED;
+ cb->child_cm_id = cma_id;
wake_up_interruptible(&cb->sem);
break;
case RDMA_CM_EVENT_CONNECT_REQUEST:
- cb->state = CONNECT_REQUEST;
- cb->child_cm_id = cma_id;
+ if (cb->state == IDLE) {
+ cb->state = CONNECT_REQUEST;
+ cb->child_cm_id = cma_id;
+ } else {
+ PRINTF(cb, "Received connection request in wrong state"
+ " (%d)\n", cb->state);
+ }
DEBUG_LOG(cb, "child cma %p\n", cb->child_cm_id);
wake_up_interruptible(&cb->sem);
break;
OpenPOWER on IntegriCloud