From owner-svn-src-user@FreeBSD.ORG  Wed Jun  3 21:02:14 2009
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CE747106564A;
	Wed,  3 Jun 2009 21:02:14 +0000 (UTC)
	(envelope-from kmacy@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BD63A8FC17;
	Wed,  3 Jun 2009 21:02:14 +0000 (UTC)
	(envelope-from kmacy@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n53L2E9K066299;
	Wed, 3 Jun 2009 21:02:14 GMT (envelope-from kmacy@svn.freebsd.org)
Received: (from kmacy@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n53L2Epj066297;
	Wed, 3 Jun 2009 21:02:14 GMT (envelope-from kmacy@svn.freebsd.org)
Message-Id: <200906032102.n53L2Epj066297@svn.freebsd.org>
From: Kip Macy <kmacy@FreeBSD.org>
Date: Wed, 3 Jun 2009 21:02:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r193398 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2009 21:02:15 -0000

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: