Blob Blame History Raw
diff -aurp open-iscsi-2.0-871.1-bnx2i/brcm_iscsi_uio/src/unix/nic.c open-iscsi-2.0-871.1-bnx2i.work/brcm_iscsi_uio/src/unix/nic.c
--- open-iscsi-2.0-871.1-bnx2i/brcm_iscsi_uio/src/unix/nic.c	2010-05-20 20:16:05.000000000 -0500
+++ open-iscsi-2.0-871.1-bnx2i.work/brcm_iscsi_uio/src/unix/nic.c	2010-07-07 21:32:22.000000000 -0500
@@ -1168,6 +1168,7 @@ void *nic_loop(void *arg)
 		nic->start_time = time(NULL);
 		nic->flags &= ~NIC_UNITIALIZED;
 		nic->flags |= NIC_INITIALIZED;
+		nic->state &= ~NIC_STOPPED;
 		nic->state |= NIC_RUNNING;
 
                 /*  Signal that the device enable is done */
diff -aurp open-iscsi-2.0-871.1-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.c open-iscsi-2.0-871.1-bnx2i.work/brcm_iscsi_uio/src/unix/nic_utils.c
--- open-iscsi-2.0-871.1-bnx2i/brcm_iscsi_uio/src/unix/nic_utils.c	2010-05-20 20:16:05.000000000 -0500
+++ open-iscsi-2.0-871.1-bnx2i.work/brcm_iscsi_uio/src/unix/nic_utils.c	2010-07-07 21:32:22.000000000 -0500
@@ -831,13 +831,14 @@ int nic_disable(nic_t *nic)
 	if( (nic->flags & NIC_ENABLED) &&
 	    (nic->state & NIC_RUNNING))
 	{
+		/*  Wait for the device to be disabled */
+		pthread_mutex_lock(&nic->nic_mutex);
+
 		nic->flags &= ~NIC_ENABLED;
 		nic->flags |= NIC_DISABLED;
 		nic->state &= ~NIC_RUNNING;
 		nic->state |= NIC_STOPPED;
 
-		/*  Wait for the device to be disabled */
-		pthread_mutex_lock(&nic->nic_mutex);
 		pthread_cond_wait(&nic->disable_wait_cond,
 				  &nic->nic_mutex);
 		pthread_mutex_unlock(&nic->nic_mutex);