Author: np
Date: Tue Mar 29 01:41:07 2016
New Revision: 297369
URL: https://svnweb.freebsd.org/changeset/base/297369

Log:
  krping wasn't designed to take more than one client.  Fail any connect
  requests if cb->state is not IDLE.
  
  Submitted by: Krishnamraju Eraparaju @ Chelsio
  Reviewed by:  Steve Wise @ Open Grid Computing
  Sponsored by: Chelsio Communications

Modified:
  head/sys/contrib/rdma/krping/krping.c

Modified: head/sys/contrib/rdma/krping/krping.c
==============================================================================
--- head/sys/contrib/rdma/krping/krping.c       Tue Mar 29 00:10:47 2016        
(r297368)
+++ head/sys/contrib/rdma/krping/krping.c       Tue Mar 29 01:41:07 2016        
(r297369)
@@ -266,8 +266,13 @@ static int krping_cma_event_handler(stru
                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;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to