[Openib-windows] RE: [PATCH] reregister\cl_vecto\reg_svc
Fab Tillier
ftillier at silverstorm.com
Fri Sep 16 11:54:36 PDT 2005
> From: Tillier, Fabian
> Sent: Thursday, September 15, 2005 3:07 PM
>
> Here's my patch to handle SM change/client reregister in IPoIB. It eliminates
> the unneeded changes in your patch.
>
> Comments?
I checked this in so I could start work merging Tzachi's changes to support
address translation.
- Fab
> Signed-off-by: Fab Tillier (ftillier at silverstorm.com)
> Signed-off-by: Yossi Leybovich (sleybo at mellanox.co.il)
>
> Index: ulp/ipoib/kernel/ipoib_adapter.c
> ===================================================================
> --- ulp/ipoib/kernel/ipoib_adapter.c (revision 64)
> +++ ulp/ipoib/kernel/ipoib_adapter.c (working copy)
> @@ -500,6 +500,9 @@
> return IB_NOT_DONE;
> }
>
> + IPOIB_TRACE( IPOIB_DBG_INFO,
> + ("p_pnp_rec->pnp_event = 0x%x\n",p_pnp_rec->pnp_event));
> +
> switch( p_pnp_rec->pnp_event )
> {
> case IB_PNP_PORT_ADD:
> @@ -606,15 +609,16 @@
> status = IB_SUCCESS;
> break;
>
> + default:
> + IPOIB_TRACE( IPOIB_DBG_INFO,
> + ("IPOIB: Received unhandled PnP event 0x%x\n",
> + p_pnp_rec->pnp_event) );
> + /* Fall through. */
> case IB_PNP_PKEY_CHANGE:
> case IB_PNP_SM_CHANGE:
> case IB_PNP_GID_CHANGE:
> case IB_PNP_LID_CHANGE:
> - /* TODO: Refresh all multicast group memberships in case the SM
> changed.
> */
> - IPOIB_TRACE( IPOIB_DBG_INFO,
> - ("IPOIB: Received unhandled PnP event %d\n",
> - p_pnp_rec->pnp_event) );
> - default:
> + p_adapter->hung = TRUE;
> status = IB_SUCCESS;
> break;
> }
> Index: ulp/ipoib/kernel/ipoib_endpoint.c
> ===================================================================
> --- ulp/ipoib/kernel/ipoib_endpoint.c (revision 64)
> +++ ulp/ipoib/kernel/ipoib_endpoint.c (working copy)
> @@ -196,7 +196,7 @@
> }
> cl_obj_unlock( p_obj );
>
> - IPOIB_EXIT( IPOIB_DBG_INIT );
> + IPOIB_EXIT( IPOIB_DBG_ENDPT );
> }
>
>
> Index: ulp/ipoib/kernel/ipoib_endpoint.h
> ===================================================================
> --- ulp/ipoib/kernel/ipoib_endpoint.h (revision 64)
> +++ ulp/ipoib/kernel/ipoib_endpoint.h (working copy)
> @@ -148,7 +148,7 @@
> {
> IPOIB_ENTER( IPOIB_DBG_ENDPT );
> cl_obj_deref( &p_endpt->obj );
> - IPOIB_EXIT( IPOIB_DBG_INIT );
> + IPOIB_EXIT( IPOIB_DBG_ENDPT );
> }
>
>
> Index: ulp/ipoib/kernel/ipoib_driver.c
> ===================================================================
> --- ulp/ipoib/kernel/ipoib_driver.c (revision 64)
> +++ ulp/ipoib/kernel/ipoib_driver.c (working copy)
> @@ -2103,6 +2103,8 @@
> cl_memcpy( &ib_service.svc_rec.service_data8[ATS_IPV4_OFFSET],
> p_addr_item->address.as_bytes, IPV4_ADDR_SIZE );
>
> + /* Take a reference for each service request. */
> + cl_obj_ref(&p_adapter->obj);
> ib_status = p_adapter->p_ifc->reg_svc(
> p_adapter->h_al, &ib_service, &p_addr_item->p_reg->h_reg_svc );
> if( ib_status != IB_SUCCESS )
> @@ -2134,6 +2136,7 @@
> p_adapter->p_ifc->get_err_str( ib_status )) );
> p_adapter->hung = TRUE;
> }
> + cl_obj_deref(&p_adapter->obj);
> cl_free( p_addr_item->p_reg );
> p_addr_item->p_reg = NULL;
> }
> @@ -2223,6 +2226,7 @@
> }
>
> cl_obj_unlock( &p_reg->p_adapter->obj );
> + cl_obj_deref(&p_reg->p_adapter->obj);
>
> IPOIB_EXIT( IPOIB_DBG_OID );
> }
>
> _______________________________________________
> openib-windows mailing list
> openib-windows at openib.org
> http://openib.org/mailman/listinfo/openib-windows
More information about the ofw
mailing list