return;\r
}\r
\r
- /*\r
- * Allocate a new CEP for the new request. This will\r
- * prevent multiple identical REQs from queueing up for processing.\r
- */\r
- p_new_cep = __create_cep();\r
- if( !p_new_cep )\r
- {\r
- /* Reject the request for insufficient resources. */\r
- reason = IB_REJ_INSUF_RESOURCES;\r
- AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,\r
- ("al_create_cep failed\nREJ sent for insufficient resources.\n") );\r
- goto reject;\r
- }\r
-\r
- __save_wire_req( p_new_cep, p_req );\r
-\r
/*\r
* Match against listens using SID and compare data, also provide the receiving\r
* MAD service's port GUID so we can properly filter.\r
p_cep = __lookup_listen( p_req->sid, p_port_cep->port_guid, p_req->pdata );\r
if( p_cep )\r
{\r
+ /*\r
+ * Allocate a new CEP for the new request. This will\r
+ * prevent multiple identical REQs from queueing up for processing.\r
+ */\r
+ p_new_cep = __create_cep();\r
+ if( !p_new_cep )\r
+ {\r
+ /* Reject the request for insufficient resources. */\r
+ reason = IB_REJ_INSUF_RESOURCES;\r
+ AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,\r
+ ("al_create_cep failed\nREJ sent for insufficient resources.\n") );\r
+ goto reject;\r
+ }\r
+\r
+ __save_wire_req( p_new_cep, p_req );\r
+\r
__bind_cep( p_new_cep, p_cep->p_cid->h_al, p_cep->pfn_cb, NULL );\r
+ AL_PRINT( TRACE_LEVEL_VERBOSE, AL_DBG_CM,\r
+ ("Created CEP with CID = %d, h_al %p, remote = %d\n",\r
+ p_new_cep->cid, p_cep->p_cid->h_al, p_new_cep->remote_comm_id) );\r
\r
/* Add the new CEP to the map so that repeated REQs match up. */\r
p_stale_cep = __insert_cep( p_new_cep );\r
/* No match found. Reject. */\r
reason = IB_REJ_INVALID_SID;\r
AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_CM, ("REQ received but no match found.\n") );\r
- goto cleanup;\r
+ goto reject;\r
}\r
}\r
\r
unbind:\r
__unbind_cep( p_new_cep );\r
\r
-cleanup:\r
/*\r
* Move the CEP in the idle state so that we don't send a reject\r
* for it when cleaning up. Also clear the RQPN and RCID so that\r