[Openib-windows] RE: [PATCH] double bind to mad svc
Yossi Leybovich
sleybo at mellanox.co.il
Tue Nov 15 06:31:47 PST 2005
Yes, its looks OK.
I also run OpenSM twice and no crash.
Pls apply.
> -----Original Message-----
> From: Fab Tillier [mailto:ftillier at silverstorm.com]
> Sent: Monday, November 14, 2005 9:30 PM
> To: 'Yossi Leybovich'
> Cc: openib-windows at openib.org
> Subject: RE: [PATCH] double bind to mad svc
>
>
> Hi Yossi,
>
> > -----Original Message-----
> > From: Yossi Leybovich [mailto:sleybo at mellanox.co.il]
> > Sent: Thursday, November 10, 2005 8:38 AM
> >
> > Fab
> >
> > When user try to bind to mad_svc twice on the same port the system
> > crash. This patch fix the crash.
> >
> > The problem was that the mad_reg was not created (because there
> > already user that bind to the port) and in the destruction of the
> > mad_svc the IBAL call to resume_send with h_mad_reg (which is NULL)
> > I just add check that verify that mad_reg exist.
>
> What about not calling __check_send_queue from
> __destroying_mad_svc if h_mad_reg is NULL? Wouldn't that
> work too, and avoid the extra conditional in __check_send_queue?
>
> Let me know if this sounds good and I'll apply.
>
> Thanks,
>
> - Fab
>
> Index: core/al/al_mad.c
> ===================================================================
> --- core/al/al_mad.c (revision 151)
> +++ core/al/al_mad.c (working copy)
> @@ -1256,13 +1256,16 @@
> * Since the MAD service is being destroyed, the user
> cannot be issuing
> * sends.
> */
> + if( h_mad_svc->h_mad_reg )
> + {
> #ifdef CL_KERNEL
> - old_irql = KeRaiseIrqlToDpcLevel();
> + old_irql = KeRaiseIrqlToDpcLevel();
> #endif
> - __check_send_queue( h_mad_svc );
> + __check_send_queue( h_mad_svc );
> #ifdef CL_KERNEL
> - KeLowerIrql( old_irql );
> + KeLowerIrql( old_irql );
> #endif
> + }
>
> cl_timer_destroy( &h_mad_svc->send_timer );
>
More information about the ofw
mailing list