return IB_NOT_DONE;\r
}\r
\r
+ IPOIB_TRACE( IPOIB_DBG_INFO,\r
+ ("p_pnp_rec->pnp_event = 0x%x\n",p_pnp_rec->pnp_event));\r
+\r
switch( p_pnp_rec->pnp_event )\r
{\r
case IB_PNP_PORT_ADD:\r
status = IB_SUCCESS;\r
break;\r
\r
+ default:\r
+ IPOIB_TRACE( IPOIB_DBG_INFO,\r
+ ("IPOIB: Received unhandled PnP event 0x%x\n",\r
+ p_pnp_rec->pnp_event) );\r
+ /* Fall through. */\r
case IB_PNP_PKEY_CHANGE:\r
case IB_PNP_SM_CHANGE:\r
case IB_PNP_GID_CHANGE:\r
case IB_PNP_LID_CHANGE:\r
- /* TODO: Refresh all multicast group memberships in case the SM changed. */\r
- IPOIB_TRACE( IPOIB_DBG_INFO,\r
- ("IPOIB: Received unhandled PnP event %d\n",\r
- p_pnp_rec->pnp_event) );\r
- default:\r
+ p_adapter->hung = TRUE;\r
status = IB_SUCCESS;\r
break;\r
}\r
cl_memcpy( &ib_service.svc_rec.service_data8[ATS_IPV4_OFFSET],\r
p_addr_item->address.as_bytes, IPV4_ADDR_SIZE );\r
\r
+ /* Take a reference for each service request. */\r
+ cl_obj_ref(&p_adapter->obj);\r
ib_status = p_adapter->p_ifc->reg_svc(\r
p_adapter->h_al, &ib_service, &p_addr_item->p_reg->h_reg_svc );\r
if( ib_status != IB_SUCCESS )\r
p_adapter->p_ifc->get_err_str( ib_status )) );\r
p_adapter->hung = TRUE;\r
}\r
+ cl_obj_deref(&p_adapter->obj);\r
cl_free( p_addr_item->p_reg );\r
p_addr_item->p_reg = NULL;\r
}\r
}\r
\r
cl_obj_unlock( &p_reg->p_adapter->obj );\r
+ cl_obj_deref(&p_reg->p_adapter->obj);\r
\r
IPOIB_EXIT( IPOIB_DBG_OID );\r
}\r
}\r
cl_obj_unlock( p_obj );\r
\r
- IPOIB_EXIT( IPOIB_DBG_INIT );\r
+ IPOIB_EXIT( IPOIB_DBG_ENDPT );\r
}\r
\r
\r
{\r
IPOIB_ENTER( IPOIB_DBG_ENDPT );\r
cl_obj_deref( &p_endpt->obj );\r
- IPOIB_EXIT( IPOIB_DBG_INIT );\r
+ IPOIB_EXIT( IPOIB_DBG_ENDPT );\r
}\r
\r
\r