[Openib-windows] RE: [PATCH] double bind to mad svc

Fab Tillier ftillier at silverstorm.com
Mon Nov 14 11:29:47 PST 2005


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