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
