[IPoIB NDIS 6.0 CM] Fixing a possible race when we can destroy IPoIB without destroyi...
authortzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 30 Nov 2009 15:32:24 +0000 (15:32 +0000)
committertzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 30 Nov 2009 15:32:24 +0000 (15:32 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2600 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp

index f17e236..003f802 100644 (file)
@@ -7141,6 +7141,7 @@ ipoib_port_down(
        cl_obj_lock( &p_port->obj );\r
        p_port->state = IB_QPS_ERROR;\r
 \r
+       __pending_list_destroy(p_port);\r
        NdisWriteErrorLogEntry( p_port->p_adapter->h_adapter,\r
                EVENT_IPOIB_PORT_DOWN, 0 );\r
 \r
@@ -7184,8 +7185,6 @@ ipoib_port_down(
 \r
        KeWaitForSingleObject(\r
                &p_port->leave_mcast_event, Executive, KernelMode, FALSE, NULL );\r
-\r
-       __pending_list_destroy(p_port);\r
        \r
        cl_obj_lock( &p_port->p_adapter->obj );\r
        ipoib_dereg_addrs( p_port->p_adapter );\r