Hello,
  In order to preserve consistency of the p_port->buf_mgr.recv_pool list, 
acquire/release recv_lock over the call to __free_received_NBL(), as other 
calls to __free_received_NBL() do.
Issue is __free_received_NBL() eventually calls __buf_mgr_put_recv().

signed-off-by: stan smith <[email protected]>

--- A/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp  Tue Nov 16 09:11:10 2010
+++ B/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp  Tue Nov 16 09:10:59 2010
@@ -2191,7 +2191,9 @@
                                                                                
        recv_complete_flags );
                        }
                        else {
+                               cl_spinlock_acquire( &p_port->recv_lock );
                                __free_received_NBL( p_port, 
p_port->recv_mgr.recv_NBL_array[0] );
+                               cl_spinlock_release( &p_port->recv_lock );
                        }

                } else {
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to