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