svn commit: r193398 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb

Kip Macy kmacy at FreeBSD.org
Wed Jun 3 21:02:15 UTC 2009


Author: kmacy
Date: Wed Jun  3 21:02:14 2009
New Revision: 193398
URL: http://svn.freebsd.org/changeset/base/193398

Log:
  serialize initialization with added flag

Modified:
  user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_adapter.h
  user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c

Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_adapter.h
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_adapter.h	Wed Jun  3 20:49:25 2009	(r193397)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_adapter.h	Wed Jun  3 21:02:14 2009	(r193398)
@@ -127,6 +127,7 @@ enum {				/* adapter flags */
 	CXGB_SHUTDOWN	= (1 << 6),
 	CXGB_OFLD_INIT	= (1 << 7),
 	TP_PARITY_INIT  = (1 << 8),
+	INIT_IN_PROGRESS = (1 << 9),
 };
 
 #define FL_Q_SIZE	4096

Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c	Wed Jun  3 20:49:25 2009	(r193397)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_main.c	Wed Jun  3 21:02:14 2009	(r193398)
@@ -1844,6 +1844,14 @@ cxgb_first_init(struct adapter *sc)
 {
 	int err = 0;
 
+	ADAPTER_LOCK(sc);
+	if (sc->flags & INIT_IN_PROGRESS) {
+		ADAPTER_UNLOCK(sc);
+		return (EINPROGRESS);
+	}
+	sc->flags |= INIT_IN_PROGRESS;
+	ADAPTER_UNLOCK(sc);
+	
 	if ((sc->flags & FW_UPTODATE) == 0)
 		if ((err = upgrade_fw(sc)))
 			goto out;
@@ -1861,9 +1869,10 @@ cxgb_first_init(struct adapter *sc)
 	if (err)
 		goto out;
 
-	ADAPTER_LOCK(sc);
 	setup_rss(sc);
 	t3_add_configured_sysctls(sc);
+	ADAPTER_LOCK(sc);
+	sc->flags &= ~INIT_IN_PROGRESS;
 	sc->flags |= FULL_INIT_DONE;
 	ADAPTER_UNLOCK(sc);
 out:


More information about the svn-src-user mailing list