[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