[ofw] patch: fix the assumption that __cep_mad_send_cb is always being called at dispatch level

Tzachi Dar tzachid at mellanox.co.il
Wed Mar 10 01:45:56 PST 2010


Applied on 2726 with fab comments.

Thanks
Tzachi 

> -----Original Message-----
> From: Fab Tillier [mailto:ftillier at microsoft.com] 
> Sent: Tuesday, March 09, 2010 4:45 AM
> To: Tzachi Dar; ofw at lists.openfabrics.org
> Subject: RE: [ofw] patch: fix the assumption that 
> __cep_mad_send_cb is always being called at dispatch level
> 
> Hi Tzachi,
> 
> Comment inline.
> 
> > -----Original Message-----
> > From: Tzachi Dar [mailto:tzachid at mellanox.co.il]
> > Sent: Monday, March 08, 2010 5:04 AM
> > 
> > OK, than the new patch now looks like:
> > Index: al_smi.c
> > ===================================================================
> > --- al_smi.c	(revision 5646)
> > +++ al_smi.c	(working copy)
> > @@ -925,6 +925,7 @@
> >  	al_mad_wr_t*			p_mad_wr;
> > 
> >  	ib_api_status_t			status;
> > +	KIRQL irql;
> > 
> >  	AL_ENTER( AL_DBG_SMI );
> > 
> > @@ -970,8 +971,10 @@
> >  		{
> >  			cl_spinlock_release( &p_spl_qp_svc->obj.lock );
> >  			p_mad_wr = PARENT_STRUCT( p_list_item, 
> al_mad_wr_t, list_item );
> > +			irql = KeRaiseIrqlToDpcLevel();
> 
> Move this outside the loop, otherwise you'll keep bumping 
> IRQL between the spinlock and the callback.
> 
> >  			__complete_send_mad( 
> p_spl_qp_svc->h_mad_disp, p_mad_wr,
> >  				IB_WCS_WR_FLUSHED_ERR );
> > +			KeLowerIrql(irql);
> 
> Ditto here.
> 
> >  			cl_spinlock_acquire( &p_spl_qp_svc->obj.lock );
> >  		}
> > 
> > 
> 


More information about the ofw mailing list