[Openib-windows] srp blue screen when CM fail to connect

Fabian Tillier ftillier at silverstorm.com
Tue Sep 5 13:06:22 PDT 2006


Hi Yossi,

On 9/4/06, Yossi Leybovich <sleybo at mellanox.co.il> wrote:
>
>
> > -----Original Message-----
> > From: ftillier.sst at gmail.com [mailto:ftillier.sst at gmail.com]
> > On Behalf Of Fabian Tillier
> > Sent: Saturday, September 02, 2006 2:04 AM
> >
> > Index: core/al/al_common.c
> > ===================================================================
> > --- core/al/al_common.c       (revision 477)
> > +++ core/al/al_common.c       (working copy)
> > @@ -127,7 +127,7 @@
> >   * Used to force synchronous destruction of AL objects.
> >   */
> >  void
> > -ib_sync_destroy(
> > +__sync_destroy_cb(
> >       IN                              void
> >                       *context )
> >  {
> >       UNUSED_PARAM( context );
> > @@ -405,7 +405,7 @@
> >       if( ref_cnt == 0 )
> >       {
> >               if( p_obj->pfn_destroy == async_destroy_obj &&
> > -                     p_obj->user_destroy_cb != ib_sync_destroy )
> > +                     p_obj->user_destroy_cb != __sync_destroy_cb )
> >               {
> >                       /* Queue the object for asynchronous
> > destruction. */  #if AL_OBJ_PRIVATE_ASYNC_PROC @@ -467,7 +467,7 @@
> >       AL_ENTER( AL_DBG_AL_OBJ );
> >
> >       if( pfn_destroy_cb == ib_sync_destroy )
> > -             sync_destroy_obj( p_obj, pfn_destroy_cb );
> > +             sync_destroy_obj( p_obj, __sync_destroy_cb );
> >       else if( destroy_obj( p_obj, pfn_destroy_cb ) )
> >               deref_al_obj( p_obj );  /* Only destroy the
> > object once. */
> >
> > Index: inc/iba/ib_al.h
> > ===================================================================
> > --- inc/iba/ib_al.h   (revision 469)
> > +++ inc/iba/ib_al.h   (working copy)
> > @@ -433,9 +433,7 @@
> >  *
> >  * SYNOPSIS
> >  */
> > -AL_EXPORT void AL_API
> > -ib_sync_destroy(
> > -     IN                              void
> >                       *context );
> > +static const ib_pfn_destroy_cb_t ib_sync_destroy =
> > (ib_pfn_destroy_cb_t)(LONG_PTR)-1;
> >  /*
> >  * PARAMETERS
> >  *    Not Applicable.
>
>
> Why do we need this change ?

For users to use ib_sync_destroy as a callback identifier to indicate
that destruction should be synchronous.  Since IBAL in the kernel is
no longer a DLL, this was the easiest way of preserving the
functionality.  Note that my patch did break 32-bit user-mode builds,
so perhaps your user-mode DLL wasn't updated?

> I think it cause blue screen with user level apps (like vstat)
> Here is a trace:
> I checked and the user_destroy_cb = 0xffffffff

That means the IBAL DLL is out of date.

- Fab




More information about the ofw mailing list