From: ftillier Date: Tue, 27 Sep 2005 00:22:59 +0000 (+0000) Subject: [WSD] Change ib_listen to return an error value rather than set it X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ccae71821caa4bc810ab632aa2a43e7d8bc4853c;p=~shefty%2Frdma-win.git [WSD] Change ib_listen to return an error value rather than set it as output parameter. Signed-off-by: Fab Tillier (ftillier@silverstorm.com) git-svn-id: svn://openib.tc.cornell.edu/gen1@87 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- diff --git a/trunk/ulp/wsd/user/ib_cm.c b/trunk/ulp/wsd/user/ib_cm.c index 82d8057f..c82fb0f0 100644 --- a/trunk/ulp/wsd/user/ib_cm.c +++ b/trunk/ulp/wsd/user/ib_cm.c @@ -505,7 +505,6 @@ cm_dreq_callback( case DISC_DUPLICATING: { int ret; - int error; IBSP_CHANGE_SOCKET_STATE( socket_info, IBSP_DUPLICATING_REMOTE ); socket_info->qp_error = -1; @@ -518,11 +517,11 @@ cm_dreq_callback( socket_info->listen.listen_req_param.identifier = reason->duplicating.identifier; - ret = ib_listen( socket_info, &error ); + ret = ib_listen( socket_info ); if( !ret ) break; - IBSP_ERROR_EXIT( ("ib_listen failed with %d\n", error) ); + IBSP_ERROR_EXIT( ("ib_listen failed with %d\n", ret) ); /* Fall through. */ } default: @@ -627,8 +626,7 @@ cm_lap_callback( /* Listen for an incoming connection. */ int ib_listen( - IN struct ibsp_socket_info *socket_info, - OUT LPINT lpErrno ) + IN struct ibsp_socket_info *socket_info ) { ib_cm_listen_t param; ib_api_status_t status; @@ -672,8 +670,7 @@ ib_listen( if( status != IB_SUCCESS ) { IBSP_ERROR_EXIT( ("ib_cm_listen failed (0x%d)\n", status) ); - *lpErrno = ibal_to_wsa_error( status ); - return SOCKET_ERROR; + return ibal_to_wsa_error( status ); } STAT_INC( listen_num ); @@ -682,7 +679,6 @@ ib_listen( ("started listening for port %d\n", CL_HTON16( socket_info->local_addr.sin_port )) ); - *lpErrno = 0; return 0; } @@ -963,8 +959,10 @@ ib_disconnect( status = ib_modify_qp( socket_info->qp, &qp_mod ); if( status != IB_SUCCESS ) { + IBSP_ERROR( ("ib_modify_qp returned %s\n", ib_get_err_str( status )) ); socket_info->send_cnt = 0; socket_info->recv_cnt = 0; } + IBSP_EXIT( IBSP_DBG_CM ); } diff --git a/trunk/ulp/wsd/user/ibspdll.c b/trunk/ulp/wsd/user/ibspdll.c index 57efd2fd..cd286462 100644 --- a/trunk/ulp/wsd/user/ibspdll.c +++ b/trunk/ulp/wsd/user/ibspdll.c @@ -721,7 +721,6 @@ IBSPCloseSocket( shutdown_and_destroy_socket_info( socket_info ); - IBSP_EXIT( IBSP_DBG_CONN ); *lpErrno = 0; @@ -1490,38 +1489,34 @@ IBSPListen( socket_info->listen.listen_req_param.dwProcessId = 0; socket_info->listen.listen_req_param.identifier = 0; - ret = ib_listen( socket_info, lpErrno ); + ret = ib_listen( socket_info ); if( ret ) { IBSP_CHANGE_SOCKET_STATE( socket_info, IBSP_BIND ); - IBSP_ERROR_EXIT( ("ib_listen failed with %d\n", ret) ); + CL_EXIT_ERROR( IBSP_DBG_CONN, gdbg_lvl, ("ib_listen failed with %d\n", ret) ); } - else - { - *lpErrno = 0; - } - break; case IBSP_LISTEN: /* Change the backlog */ ib_listen_backlog( socket_info, backlog ); - *lpErrno = 0; + ret = 0; break; default: IBSP_ERROR( ("Invalid socket_state (%s)\n", IBSP_SOCKET_STATE_STR( socket_info->socket_state )) ); - *lpErrno = WSAEINVAL; + ret = WSAEINVAL; break; } cl_spinlock_release( &socket_info->mutex ); - IBSP_EXIT( IBSP_DBG_CONN ); + *lpErrno = ret; - if( *lpErrno ) + IBSP_EXIT( IBSP_DBG_CONN ); + if( ret ) return SOCKET_ERROR; else return 0; diff --git a/trunk/ulp/wsd/user/ibspproto.h b/trunk/ulp/wsd/user/ibspproto.h index 9a5f867c..1fc338e5 100644 --- a/trunk/ulp/wsd/user/ibspproto.h +++ b/trunk/ulp/wsd/user/ibspproto.h @@ -183,8 +183,7 @@ get_port_from_ip_address( /* Protos from ibsp_cm.c */ extern int ib_listen( - IN struct ibsp_socket_info *socket_info, - OUT LPINT lpErrno ); + IN struct ibsp_socket_info *socket_info ); void ib_listen_cancel(