[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