From a9de9731a813bdc9feb789a7a3f42c2c227c4d07 Mon Sep 17 00:00:00 2001 From: tzachid Date: Mon, 30 Nov 2009 15:32:24 +0000 Subject: [PATCH] [IPoIB NDIS 6.0 CM] Fixing a possible race when we can destroy IPoIB without destroying and completing its pending list. (mlnx 5166) git-svn-id: svn://openib.tc.cornell.edu/gen1@2600 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp index f17e236d..003f8025 100644 --- a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp +++ b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp @@ -7141,6 +7141,7 @@ ipoib_port_down( cl_obj_lock( &p_port->obj ); p_port->state = IB_QPS_ERROR; + __pending_list_destroy(p_port); NdisWriteErrorLogEntry( p_port->p_adapter->h_adapter, EVENT_IPOIB_PORT_DOWN, 0 ); @@ -7184,8 +7185,6 @@ ipoib_port_down( KeWaitForSingleObject( &p_port->leave_mcast_event, Executive, KernelMode, FALSE, NULL ); - - __pending_list_destroy(p_port); cl_obj_lock( &p_port->p_adapter->obj ); ipoib_dereg_addrs( p_port->p_adapter ); -- 2.46.0