[ofw] [IPoIB_NDIS6_CM] [Patch 1/3] Improper IPoIB behavior during simultaneous sends on both sides

Alex Naslednikov xalex at mellanox.co.il
Tue Nov 9 08:55:14 PST 2010


Signed-off by: Alexander Naslednikov (xalex at mellanox.co.il)

Index: ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp
===================================================================
--- ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp	(revision 2982)
+++ ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp	(working copy)
@@ -1024,7 +1024,6 @@
 	{
 		h_pnp = p_adapter->h_pnp;
 		p_adapter->h_pnp  = NULL;
-		status = p_adapter->p_ifc->dereg_pnp( h_pnp, __ipoib_pnp_dereg );
 		
 		// Wait until NDIS will return all indicated NBLs that were received
 		// Avoid shutting the shutter twice
@@ -1037,20 +1036,20 @@
 			("[%I64u] ipoib_state was IPOIB_RUNNING and IPOIB_RESET_OR_DOWN flag was set \n", cl_get_time_stamp()) );
 		}
 		KeReleaseInStackQueuedSpinLock( &hdl );
+		status = p_adapter->p_ifc->dereg_pnp( h_pnp, __ipoib_pnp_dereg );
 		
 		if( status == IB_SUCCESS )
+		{
 			status = IB_NOT_DONE;
+		}
 	}
 	else
 	{
 		status = __ipoib_pnp_reg( p_adapter, IB_PNP_FLAG_REG_COMPLETE );
-		if( status == IB_SUCCESS )
-			p_adapter->hung = FALSE;
 	}
-	if (status == IB_NOT_DONE) {
-		p_adapter->reset = TRUE;
-	}
-	else {
+	
+	if ( status != IB_NOT_DONE ) 
+	{
 		//do not call to  __ipoib_complete_reset, because we return completion status directly from here
 		p_adapter->reset = FALSE; 
 		

-------------- next part --------------
A non-text attachment was scrubbed...
Name: large_send_1.patch
Type: application/octet-stream
Size: 1265 bytes
Desc: large_send_1.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20101109/590b8045/attachment.obj>


More information about the ofw mailing list