From owner-svn-src-projects@FreeBSD.ORG  Sun Feb 26 02:24:41 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 63B14106566B;
	Sun, 26 Feb 2012 02:24:41 +0000 (UTC)
	(envelope-from andrew@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4E4ED8FC08;
	Sun, 26 Feb 2012 02:24:41 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1Q2OfdI043683;
	Sun, 26 Feb 2012 02:24:41 GMT (envelope-from andrew@svn.freebsd.org)
Received: (from andrew@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1Q2OfRs043680;
	Sun, 26 Feb 2012 02:24:41 GMT (envelope-from andrew@svn.freebsd.org)
Message-Id: <201202260224.q1Q2OfRs043680@svn.freebsd.org>
From: Andrew Turner <andrew@FreeBSD.org>
Date: Sun, 26 Feb 2012 02:24:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232169 - projects/arm_eabi/gnu/usr.bin/binutils/ld
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 26 Feb 2012 02:24:41 -0000

Author: andrew
Date: Sun Feb 26 02:24:40 2012
New Revision: 232169
URL: http://svn.freebsd.org/changeset/base/232169

Log:
  Allow us to build ARM EABI C++ libraries.
  
  The TARGET2 relocation type is platform specific. Set it to be the same as
  in the upstream GCC.

Modified:
  projects/arm_eabi/gnu/usr.bin/binutils/ld/armelf_fbsd.sh
  projects/arm_eabi/gnu/usr.bin/binutils/ld/armelfb_fbsd.sh

Modified: projects/arm_eabi/gnu/usr.bin/binutils/ld/armelf_fbsd.sh
==============================================================================
--- projects/arm_eabi/gnu/usr.bin/binutils/ld/armelf_fbsd.sh	Sun Feb 26 00:54:13 2012	(r232168)
+++ projects/arm_eabi/gnu/usr.bin/binutils/ld/armelf_fbsd.sh	Sun Feb 26 02:24:40 2012	(r232169)
@@ -1,6 +1,7 @@
 # $FreeBSD$
 . ${srcdir}/emulparams/armelf.sh
 . ${srcdir}/emulparams/elf_fbsd.sh
+TARGET2_TYPE=got-rel
 MAXPAGESIZE=0x8000
 GENERATE_PIE_SCRIPT=yes
 

Modified: projects/arm_eabi/gnu/usr.bin/binutils/ld/armelfb_fbsd.sh
==============================================================================
--- projects/arm_eabi/gnu/usr.bin/binutils/ld/armelfb_fbsd.sh	Sun Feb 26 00:54:13 2012	(r232168)
+++ projects/arm_eabi/gnu/usr.bin/binutils/ld/armelfb_fbsd.sh	Sun Feb 26 02:24:40 2012	(r232169)
@@ -5,6 +5,7 @@
 #OUTPUT_FORMAT="elf32-bigarm"
 . ${srcdir}/emulparams/armelf.sh
 . ${srcdir}/emulparams/elf_fbsd.sh
+TARGET2_TYPE=got-rel
 MAXPAGESIZE=0x8000
 GENERATE_PIE_SCRIPT=yes
 

From owner-svn-src-projects@FreeBSD.ORG  Sun Feb 26 10:52:58 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 15605106566C;
	Sun, 26 Feb 2012 10:52:58 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 04FA08FC08;
	Sun, 26 Feb 2012 10:52:58 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1QAqvY9061753;
	Sun, 26 Feb 2012 10:52:57 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1QAqvAF061751;
	Sun, 26 Feb 2012 10:52:57 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202261052.q1QAqvAF061751@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Sun, 26 Feb 2012 10:52:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232173 - projects/armv6/sys/arm/ti
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 26 Feb 2012 10:52:58 -0000

Author: dmarion
Date: Sun Feb 26 10:52:57 2012
New Revision: 232173
URL: http://svn.freebsd.org/changeset/base/232173

Log:
  Reset AINTC during attach.
  
  Approved by:  cognet (mentor)

Modified:
  projects/armv6/sys/arm/ti/aintc.c

Modified: projects/armv6/sys/arm/ti/aintc.c
==============================================================================
--- projects/armv6/sys/arm/ti/aintc.c	Sun Feb 26 10:20:55 2012	(r232172)
+++ projects/armv6/sys/arm/ti/aintc.c	Sun Feb 26 10:52:57 2012	(r232173)
@@ -110,6 +110,16 @@ ti_aintc_attach(device_t dev)
 
 	x = aintc_read_4(INTC_REVISION);
 	device_printf(dev, "Revision %u.%u\n",(x >> 4) & 0xF, x & 0xF);
+
+	/* SoftReset */
+	aintc_write_4(INTC_SYSCONFIG, 2);
+
+	/* Wait for reset to complete */
+	while(!(aintc_read_4(INTC_SYSSTATUS) & 1));
+
+	/*Set Priority Threshold */
+	aintc_write_4(INTC_THRESHOLD, 0xFF);
+
 	return (0);
 }
 

From owner-svn-src-projects@FreeBSD.ORG  Sun Feb 26 20:05:36 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 09FF71065673;
	Sun, 26 Feb 2012 20:05:36 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E943D8FC16;
	Sun, 26 Feb 2012 20:05:35 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1QK5ZfY081113;
	Sun, 26 Feb 2012 20:05:35 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1QK5ZTM081111;
	Sun, 26 Feb 2012 20:05:35 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201202262005.q1QK5ZTM081111@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sun, 26 Feb 2012 20:05:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232195 - projects/armv6/sys/arm/ti
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 26 Feb 2012 20:05:36 -0000

Author: cognet
Date: Sun Feb 26 20:05:35 2012
New Revision: 232195
URL: http://svn.freebsd.org/changeset/base/232195

Log:
  This is really a spin lock, so use mtx_lock_spin.

Modified:
  projects/armv6/sys/arm/ti/omap_dma.c

Modified: projects/armv6/sys/arm/ti/omap_dma.c
==============================================================================
--- projects/armv6/sys/arm/ti/omap_dma.c	Sun Feb 26 19:25:42 2012	(r232194)
+++ projects/armv6/sys/arm/ti/omap_dma.c	Sun Feb 26 20:05:35 2012	(r232195)
@@ -133,8 +133,8 @@ static struct omap_dma_softc *omap_dma_s
 /**
  *	Macros for driver mutex locking
  */
-#define OMAP_DMA_LOCK(_sc)             mtx_lock(&(_sc)->sc_mtx)
-#define	OMAP_DMA_UNLOCK(_sc)           mtx_unlock(&(_sc)->sc_mtx)
+#define OMAP_DMA_LOCK(_sc)             mtx_lock_spin(&(_sc)->sc_mtx)
+#define	OMAP_DMA_UNLOCK(_sc)           mtx_unlock_spin(&(_sc)->sc_mtx)
 #define OMAP_DMA_LOCK_INIT(_sc) \
 	mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \
 	         "omap_dma", MTX_SPIN)

From owner-svn-src-projects@FreeBSD.ORG  Sun Feb 26 20:30:22 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 69250106564A;
	Sun, 26 Feb 2012 20:30:22 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 52D358FC0A;
	Sun, 26 Feb 2012 20:30:22 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1QKUMDr081931;
	Sun, 26 Feb 2012 20:30:22 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1QKUM6m081928;
	Sun, 26 Feb 2012 20:30:22 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201202262030.q1QKUM6m081928@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sun, 26 Feb 2012 20:30:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232196 - projects/armv6/sys/arm/ti/twl
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 26 Feb 2012 20:30:22 -0000

Author: cognet
Date: Sun Feb 26 20:30:21 2012
New Revision: 232196
URL: http://svn.freebsd.org/changeset/base/232196

Log:
  Completely butcherize the locking, it's completely wrong, but so is calling
  malloc() or the iicbus stuff while holding locks, this requires careful
  review, and eventually rewriting.

Modified:
  projects/armv6/sys/arm/ti/twl/twl.c
  projects/armv6/sys/arm/ti/twl/twl_vreg.c

Modified: projects/armv6/sys/arm/ti/twl/twl.c
==============================================================================
--- projects/armv6/sys/arm/ti/twl/twl.c	Sun Feb 26 20:05:35 2012	(r232195)
+++ projects/armv6/sys/arm/ti/twl/twl.c	Sun Feb 26 20:30:21 2012	(r232196)
@@ -156,13 +156,13 @@ twl_read(device_t dev, uint8_t nsub, uin
 	msg[1].flags = IIC_M_RD;
 	msg[1].len = cnt;
 	msg[1].buf = buf;
+	TWL_UNLOCK(sc);
 
-	rc = iicbus_transfer(sc->sc_dev, msg, 2);
+	rc = iicbus_transfer(dev, msg, 2);
 
-	TWL_UNLOCK(sc);
 
 	if (rc != 0) {
-		device_printf(sc->sc_dev, "iicbus read failed (adr:0x%02x, reg:0x%02x)\n",
+		device_printf(dev, "iicbus read failed (adr:0x%02x, reg:0x%02x)\n",
 		              addr, reg);
 		return (EIO);
 	}
@@ -217,10 +217,10 @@ twl_write(device_t dev, uint8_t nsub, ui
 	msg.flags = IIC_M_WR;
 	msg.len = cnt + 1;
 	msg.buf = tmp_buf;
+	TWL_UNLOCK(sc);
 
-	rc = iicbus_transfer(sc->sc_dev, &msg, 1);
+	rc = iicbus_transfer(dev, &msg, 1);
 
-	TWL_UNLOCK(sc);
 
 	if (rc != 0) {
 		device_printf(sc->sc_dev, "iicbus write failed (adr:0x%02x, reg:0x%02x)\n",
@@ -251,8 +251,6 @@ twl_test_present(struct twl_softc *sc, u
 	struct iic_msg msg;
 	uint8_t tmp;
 
-	TWL_ASSERT_LOCKED(sc);
-
 	/* Set the address to read from */
 	msg.slave = addr;
 	msg.flags = IIC_M_RD;
@@ -283,8 +281,6 @@ twl_scan(void *dev)
 
 	sc = device_get_softc((device_t)dev);
 
-	TWL_LOCK(sc);
-
 	memset(sc->sc_subaddr_map, TWL_INVALID_CHIP_ID, TWL_MAX_SUBADDRS);
 
 	/* Try each of the addresses (0x48, 0x49, 0x4a & 0x4b) to determine which
@@ -297,8 +293,6 @@ twl_scan(void *dev)
 		}
 	}
 
-	TWL_UNLOCK(sc);
-
 	/* Finished with the interrupt hook */
 	config_intrhook_disestablish(&sc->sc_scan_hook);
 }

Modified: projects/armv6/sys/arm/ti/twl/twl_vreg.c
==============================================================================
--- projects/armv6/sys/arm/ti/twl/twl_vreg.c	Sun Feb 26 20:05:35 2012	(r232195)
+++ projects/armv6/sys/arm/ti/twl/twl_vreg.c	Sun Feb 26 20:30:21 2012	(r232196)
@@ -81,6 +81,11 @@ __FBSDID("$FreeBSD$");
  */
 
 /*
+ * XXX cognet: the locking is plain wrong, but we can't just keep locks while
+ * calling functions that can sleep, such as malloc() or iicbus_transfer
+ */
+
+/*
  * Power Groups bits for the 4030 and 6030 devices
  */
 #define TWL4030_P3_GRP		0x80	/* Peripherals, power group */
@@ -427,8 +432,6 @@ twl_vreg_is_regulator_enabled(struct twl
 	uint8_t grp;
 	uint8_t state;
 
-	TWL_VREG_ASSERT_LOCKED(sc);
-
 	/* The status reading is different for the different devices */
 	if (twl_is_4030(sc->sc_dev)) {
 
@@ -481,8 +484,6 @@ twl_vreg_disable_regulator(struct twl_vr
 	int err = 0;
 	uint8_t grp;
 
-	TWL_VREG_ASSERT_LOCKED(sc);
-
 	if (twl_is_4030(sc->sc_dev)) {
 
 		/* Read the regulator CFG_GRP register */
@@ -531,8 +532,6 @@ twl_vreg_enable_regulator(struct twl_vre
 	int err;
 	uint8_t grp;
 
-	TWL_VREG_ASSERT_LOCKED(sc);
-
 	/* Read the regulator CFG_GRP register */
 	err = twl_vreg_read_1(sc, regulator, TWL_VREG_GRP, &grp);
 	if (err)
@@ -586,8 +585,6 @@ twl_vreg_write_regulator_voltage(struct 
 	int err;
 	int vsel;
 
-	TWL_VREG_ASSERT_LOCKED(sc);
-
 	/* If millivolts is zero then we simply disable the output */
 	if (millivolts == 0)
 		return (twl_vreg_disable_regulator(sc, regulator));
@@ -641,8 +638,6 @@ twl_vreg_read_regulator_voltage(struct t
 	int ret;
 	uint8_t vsel;
 
-	TWL_VREG_ASSERT_LOCKED(sc);
-
 	/* Check if the regulator is currently enabled */
 	if ((ret = twl_vreg_is_regulator_enabled(sc, regulator)) < 0)
 		return (ret);
@@ -707,7 +702,6 @@ twl_vreg_get_voltage(device_t dev, const
 	/* Get the device context, take the lock and find the matching regulator */
 	sc = device_get_softc(dev);
 
-	TWL_VREG_LOCK(sc);
 
 	/* Find the regulator with the matching name */
 	LIST_FOREACH(regulator, &sc->sc_vreg_list, entries) {
@@ -721,8 +715,6 @@ twl_vreg_get_voltage(device_t dev, const
 	if (found)
 		err = twl_vreg_read_regulator_voltage(sc, regulator, millivolts);
 
-	TWL_VREG_UNLOCK(sc);
-
 	return (err);
 }
 
@@ -751,8 +743,6 @@ twl_vreg_set_voltage(device_t dev, const
 	/* Get the device context, take the lock and find the matching regulator */
 	sc = device_get_softc(dev);
 
-	TWL_VREG_LOCK(sc);
-
 	/* Find the regulator with the matching name */
 	LIST_FOREACH(regulator, &sc->sc_vreg_list, entries) {
 		if (strcmp(regulator->name, name) == 0) {
@@ -765,8 +755,6 @@ twl_vreg_set_voltage(device_t dev, const
 	if (found)
 		err = twl_vreg_write_regulator_voltage(sc, regulator, millivolts);
 
-	TWL_VREG_UNLOCK(sc);
-
 	return (err);
 }
 
@@ -835,14 +823,28 @@ twl_vreg_add_regulator(struct twl_vreg_s
 {
 	struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->sc_dev);
 	struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev);
-	struct twl_regulator_entry *new;
+	struct twl_regulator_entry *new, *tmp;
 
 	TWL_VREG_ASSERT_LOCKED(sc);
+	TWL_VREG_UNLOCK(sc);
 
 	new = malloc(sizeof(struct twl_regulator_entry), M_DEVBUF, M_NOWAIT | M_ZERO);
+	TWL_VREG_LOCK(sc);
 	if (new == NULL)
 		return (NULL);
 
+	/*
+	 * We had to drop the lock while calling malloc(), maybe 
+	 * the regulator got added in the meanwhile.
+	 */
+	   
+	LIST_FOREACH(tmp, &sc->sc_vreg_list, entries) {
+		if (!strncmp(new->name, name, strlen(new->name)) &&
+		    new->sub_dev == nsub && new->reg_off == regbase) {
+			free(new, M_DEVBUF);
+			return (NULL);
+		}
+	}
 	/* Copy over the name and register details */
 	strncpy(new->name, name, TWL_VREG_MAX_NAMELEN);
 	new->name[TWL_VREG_MAX_NAMELEN - 1] = '\0';
@@ -855,10 +857,17 @@ twl_vreg_add_regulator(struct twl_vreg_s
 	new->supp_voltages = voltages;
 	new->num_supp_voltages = num_voltages;
 
+	/* 
+	 * We're in the list now, so we should be protected against double
+	 * inclusion.
+	 */
+	   
+	TWL_VREG_UNLOCK(sc);
 	/* Add a sysctl entry for the voltage */
 	new->oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, name,
 	    CTLTYPE_INT | CTLFLAG_RD, sc, 0,
 	    twl_vreg_sysctl_voltage, "I", "voltage regulator");
+	TWL_VREG_LOCK(sc);
 
 	/* Finally add the regulator to list of supported regulators */
 	LIST_INSERT_HEAD(&sc->sc_vreg_list, new, entries);
@@ -907,7 +916,9 @@ twl_vreg_add_regulators(struct twl_vreg_
 		/* TODO: set voltage from FDT if required */
 
 		/* Read the current voltage and print the info */
+		TWL_VREG_UNLOCK(sc);
 		twl_vreg_read_regulator_voltage(sc, entry, &millivolts);
+		TWL_VREG_LOCK(sc);
 		if (debug)
 			device_printf(sc->sc_dev, "%s : %d mV\n", walker->name, millivolts);
 

From owner-svn-src-projects@FreeBSD.ORG  Mon Feb 27 15:14:37 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 595EE106564A;
	Mon, 27 Feb 2012 15:14:37 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 48C7E8FC12;
	Mon, 27 Feb 2012 15:14:37 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1RFEbcO023600;
	Mon, 27 Feb 2012 15:14:37 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1RFEbou023598;
	Mon, 27 Feb 2012 15:14:37 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202271514.q1RFEbou023598@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Mon, 27 Feb 2012 15:14:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232213 - projects/armv6/sys/arm/ti
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Feb 2012 15:14:37 -0000

Author: dmarion
Date: Mon Feb 27 15:14:36 2012
New Revision: 232213
URL: http://svn.freebsd.org/changeset/base/232213

Log:
  ti_i2c: allow different clock configuration on different SoCs
  
  Approved by:  cognet (mentor)

Modified:
  projects/armv6/sys/arm/ti/ti_i2c.c

Modified: projects/armv6/sys/arm/ti/ti_i2c.c
==============================================================================
--- projects/armv6/sys/arm/ti/ti_i2c.c	Mon Feb 27 14:12:49 2012	(r232212)
+++ projects/armv6/sys/arm/ti/ti_i2c.c	Mon Feb 27 15:14:36 2012	(r232213)
@@ -95,6 +95,34 @@ struct ti_i2c_softc
 	uint16_t		sc_rev;
 };
 
+struct ti_i2c_clock_config
+{
+	int speed;
+	int bitrate;
+	uint8_t psc;		/* Fast/Standard mode prescale divider */
+	uint8_t scll;		/* Fast/Standard mode SCL low time */
+	uint8_t sclh;		/* Fast/Standard mode SCL high time */
+	uint8_t hsscll;		/* High Speed mode SCL low time */
+	uint8_t hssclh;		/* High Speed mode SCL high time */
+};
+
+static struct ti_i2c_clock_config ti_i2c_clock_configs[] = {
+
+#if defined(SOC_OMAP4)
+	{ IIC_SLOW,      100000, 23,  13,  15, 0,  0},
+	{ IIC_FAST,      400000,  9,   5,   7, 0,  0},
+	{ IIC_FASTEST,	3310000,  1, 113, 115, 7, 10},
+#elif defined(SOC_TI_AM335X)
+	{ IIC_SLOW,      100000,  3,  53,  55, 0,  0},
+	{ IIC_FAST,      400000,  3,   8,  10, 0,  0},
+	{ IIC_FASTEST,   400000,  3,   8,  10, 0,  0}, /* This might be higher */
+#else
+#error "TI I2C driver is not supported on this SoC"
+#endif
+	{ -1, 0 }
+};
+
+
 #define TI_I2C_REV1  0x003C      /* OMAP3 */
 #define TI_I2C_REV2  0x000A      /* OMAP4 */
 
@@ -246,7 +274,20 @@ static int
 ti_i2c_reset(device_t dev, u_char speed, u_char addr, u_char *oldaddr)
 {
 	struct ti_i2c_softc *sc = device_get_softc(dev);
-	uint16_t psc_reg, scll_reg, sclh_reg, con_reg;
+	struct ti_i2c_clock_config *clkcfg;
+	uint16_t con_reg;
+
+	clkcfg = ti_i2c_clock_configs;
+	while (clkcfg->speed != -1) {
+		if (clkcfg->speed == speed)
+			break;
+		/* take slow if speed is unknown */
+		if ((speed == IIC_UNKNOWN) && (clkcfg->speed == IIC_SLOW))
+			break;
+		clkcfg++;
+	}
+	if (clkcfg->speed == -1)
+		return (EINVAL);
 
 	TI_I2C_LOCK(sc);
 
@@ -254,56 +295,28 @@ ti_i2c_reset(device_t dev, u_char speed,
 		*oldaddr = sc->sc_i2c_addr;
 	sc->sc_i2c_addr = addr;
 
-	/* The header file doesn't actual tell you what speeds should be used for
-	 * the 3 possible settings, so I'm going to go with the usual:
-	 *
-	 *    IIC_SLOW    => 100kbps
-	 *    IIC_FAST    => 400kbps
-	 *    IIC_FASTEST => 3.4Mbps
-	 *
-	 * I2Ci_INTERNAL_CLK = I2Ci_FCLK / (PSC + 1)
-	 * I2Ci_INTERNAL_CLK = 96MHZ / (PSC + 1)
-	 */
-	switch (speed) {
-		case IIC_FASTEST:
-			psc_reg = 0x0004;
-			scll_reg = 0x0811;
-			sclh_reg = 0x0a13;
-			break;
-
-		case IIC_FAST:
-			psc_reg = 0x0009;
-			scll_reg = 0x0005;
-			sclh_reg = 0x0007;
-			break;
-
-		case IIC_SLOW:
-		case IIC_UNKNOWN:
-		default:
-			psc_reg = 0x0017;
-			scll_reg = 0x000D;
-			sclh_reg = 0x000F;
-			break;
-	}
-
 	/* First disable the controller while changing the clocks */
 	con_reg = ti_i2c_read_reg(sc, I2C_REG_CON);
 	ti_i2c_write_reg(sc, I2C_REG_CON, 0x0000);
 
 	/* Program the prescaler */
-	ti_i2c_write_reg(sc, I2C_REG_PSC, psc_reg);
+	ti_i2c_write_reg(sc, I2C_REG_PSC, clkcfg->psc);
 
 	/* Set the bitrate */
-	ti_i2c_write_reg(sc, I2C_REG_SCLL, scll_reg);
-	ti_i2c_write_reg(sc, I2C_REG_SCLH, sclh_reg);
+	ti_i2c_write_reg(sc, I2C_REG_SCLL, clkcfg->scll | (clkcfg->hsscll<<8));
+	ti_i2c_write_reg(sc, I2C_REG_SCLH, clkcfg->sclh | (clkcfg->hssclh<<8));
 
 	/* Set the remote slave address */
 	ti_i2c_write_reg(sc, I2C_REG_SA, addr);
 
+	/* Check if we are dealing with high speed mode */
+	if ((clkcfg->hsscll + clkcfg->hssclh) > 0)
+		con_reg  = I2C_CON_OPMODE_HS;
+	else
+		con_reg  = I2C_CON_OPMODE_STD;
+
 	/* Enable the I2C module again */
-	con_reg  = I2C_CON_I2C_EN;
-	con_reg |= (speed == IIC_FASTEST) ? I2C_CON_OPMODE_HS : I2C_CON_OPMODE_STD;
-	ti_i2c_write_reg(sc, I2C_REG_CON, con_reg);
+	ti_i2c_write_reg(sc, I2C_REG_CON, I2C_CON_I2C_EN | con_reg);
 
 	TI_I2C_UNLOCK(sc);
 

From owner-svn-src-projects@FreeBSD.ORG  Mon Feb 27 15:42:48 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 704921065674;
	Mon, 27 Feb 2012 15:42:48 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 54B068FC19;
	Mon, 27 Feb 2012 15:42:48 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1RFgmiH024622;
	Mon, 27 Feb 2012 15:42:48 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1RFgmsq024615;
	Mon, 27 Feb 2012 15:42:48 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202271542.q1RFgmsq024615@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Mon, 27 Feb 2012 15:42:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232214 - in projects/armv6/sys: arm/conf arm/ti/am335x
	boot/fdt/dts
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Feb 2012 15:42:48 -0000

Author: dmarion
Date: Mon Feb 27 15:42:47 2012
New Revision: 232214
URL: http://svn.freebsd.org/changeset/base/232214

Log:
  Add support for AM335x power management IC.
  So far it only detects power source but later
  should be extended to provide some sysctls.
  
  Approved by:  cognet (mentor)

Added:
  projects/armv6/sys/arm/ti/am335x/am335x_pmic.c
  projects/armv6/sys/arm/ti/am335x/files.beaglebone
Modified:
  projects/armv6/sys/arm/conf/BEAGLEBONE
  projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c
  projects/armv6/sys/arm/ti/am335x/std.beaglebone
  projects/armv6/sys/boot/fdt/dts/beaglebone.dts

Modified: projects/armv6/sys/arm/conf/BEAGLEBONE
==============================================================================
--- projects/armv6/sys/arm/conf/BEAGLEBONE	Mon Feb 27 15:14:36 2012	(r232213)
+++ projects/armv6/sys/arm/conf/BEAGLEBONE	Mon Feb 27 15:42:47 2012	(r232214)
@@ -79,7 +79,7 @@ device		mmcsd			# mmc/sd flash cards
 device		iicbus
 device		iic
 device		ti_i2c
-
+device		am335x_pmic		# AM335x Power Management IC (TPC65217)
 
 device		loop
 device		ether

Added: projects/armv6/sys/arm/ti/am335x/am335x_pmic.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/armv6/sys/arm/ti/am335x/am335x_pmic.c	Mon Feb 27 15:42:47 2012	(r232214)
@@ -0,0 +1,162 @@
+/*-
+ * Copyright (c) 2012 Damjan Marion <dmarion@Freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+/*
+* TPS65217 PMIC companion chip for AM335x SoC sitting on I2C bus
+*/
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/clock.h>
+#include <sys/time.h>
+#include <sys/bus.h>
+#include <sys/resource.h>
+#include <sys/rman.h>
+
+#include <dev/iicbus/iicbus.h>
+#include <dev/iicbus/iiconf.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+
+#include "iicbus_if.h"
+
+#define TPS65217A		0x7
+#define TPS65217B		0xF
+
+#define TPS65217_IIC_ADDR	0x24
+
+/* TPS65217 Reisters */
+#define TPS65217_CHIPID_REG	0x00
+#define TPS65217_STATUS_REG	0x0A
+
+struct am335x_pmic_softc {
+	device_t		sc_dev;
+	uint32_t		sc_addr;
+	struct intr_config_hook enum_hook;
+};
+
+static int
+am335x_pmic_read(device_t dev, uint8_t addr, uint8_t *data, uint8_t size)
+{
+	struct iic_msg msg[] = {
+		{ TPS65217_IIC_ADDR, IIC_M_WR, 1, &addr },
+		{ TPS65217_IIC_ADDR, IIC_M_RD, size, data },
+	};
+	return (iicbus_transfer(dev, msg, 2));
+}
+
+static void
+am335x_pmic_identify(driver_t *driver, device_t parent)
+{
+        BUS_ADD_CHILD(parent, 0, "am335x_pmic", 0);
+}
+
+static int
+am335x_pmic_probe(device_t dev)
+{
+	struct am335x_pmic_softc *sc;
+	int error;
+	const char  *name, *compatible;
+
+	name = ofw_bus_get_name(dev);
+	compatible = ofw_bus_get_compat(dev);
+
+	sc = device_get_softc(dev);
+	sc->sc_dev = dev;
+	sc->sc_addr = iicbus_get_addr(dev);
+
+	device_set_desc(dev, "TI TPS65217 Power Management IC");
+
+	return (BUS_PROBE_NOWILDCARD);
+}
+
+static void
+am335x_pmic_start(void *xdev)
+{
+	struct am335x_pmic_softc *sc;
+	device_t dev = (device_t)xdev;
+	uint8_t reg;
+	char name[16];
+	char pwr[4][11] = {"Unknown", "USB", "AC", "USB and AC"};
+
+	sc = device_get_softc(dev);
+
+	am335x_pmic_read(dev, TPS65217_CHIPID_REG, &reg, 1);
+	switch (reg>>4) {
+		case TPS65217A:
+			sprintf(name, "TPS65217A ver 1.%u", reg & 0xF);
+			break;
+		case TPS65217B:
+			sprintf(name, "TPS65217B ver 1.%u", reg & 0xF);
+			break;
+		default:
+			sprintf(name, "Unknown PMIC");
+	}
+
+	am335x_pmic_read(dev, TPS65217_STATUS_REG, &reg, 1);
+	device_printf(dev, "%s powered by %s\n", name, pwr[(reg>>2)&0x03]);
+
+	config_intrhook_disestablish(&sc->enum_hook);
+}
+
+static int
+am335x_pmic_attach(device_t dev)
+{
+	struct am335x_pmic_softc *sc;
+
+	sc = device_get_softc(dev);
+
+	sc->enum_hook.ich_func = am335x_pmic_start;
+	sc->enum_hook.ich_arg = dev;
+
+	if (config_intrhook_establish(&sc->enum_hook) != 0)
+		return (ENOMEM);
+
+	return (0);
+}
+
+static device_method_t am335x_pmic_methods[] = {
+	DEVMETHOD(device_identify,	am335x_pmic_identify),
+	DEVMETHOD(device_probe,		am335x_pmic_probe),
+	DEVMETHOD(device_attach,	am335x_pmic_attach),
+	{0, 0},
+};
+
+static driver_t am335x_pmic_driver = {
+	"am335x_pmic",
+	am335x_pmic_methods,
+	sizeof(struct am335x_pmic_softc),
+};
+
+static devclass_t am335x_pmic_devclass;
+
+DRIVER_MODULE(am335x_pmic, iicbus, am335x_pmic_driver, am335x_pmic_devclass, 0, 0);
+MODULE_VERSION(am335x_pmic, 1);
+MODULE_DEPEND(am335x_pmic, iicbus, 1, 1, 1);

Modified: projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c	Mon Feb 27 15:14:36 2012	(r232213)
+++ projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c	Mon Feb 27 15:42:47 2012	(r232214)
@@ -62,17 +62,19 @@ __FBSDID("$FreeBSD$");
 		.muxmodes[7] = m7, \
 	}
 
+#define SLEWCTRL	(0x01 << 6) /* faster(0) or slower(1) slew rate. */
 #define RXACTIVE	(0x01 << 5) /* Input enable value for the Pad */
 #define PULLTYPESEL	(0x01 << 4) /* Pad pullup/pulldown type selection */
 #define PULLUDEN	(0x01 << 3) /* Pullup/pulldown enabled */
 
 const struct ti_scm_padstate ti_padstate_devmap[] = {
-	{"output",		0 },
-	{"output_pullup",	PULLTYPESEL },
-	{"input",		RXACTIVE },
-	{"input_pulldown",	RXACTIVE | PULLUDEN },
-	{"input_pullup",	RXACTIVE | PULLUDEN | PULLTYPESEL },
-	{"input_pullup_inact",	RXACTIVE | PULLTYPESEL },
+	{"output",			0 },
+	{"output_pullup",		PULLTYPESEL },
+	{"input",			RXACTIVE },
+	{"input_pulldown",		RXACTIVE | PULLUDEN },
+	{"input_pullup",		RXACTIVE | PULLUDEN | PULLTYPESEL },
+	{"input_pullup_inact",		RXACTIVE | PULLTYPESEL },
+	{"input_pullup_inact_slow",	RXACTIVE | PULLTYPESEL | SLEWCTRL },
 	{ .state = NULL }
 };
 
@@ -166,8 +168,10 @@ const struct ti_scm_padconf ti_padconf_d
 #if 0 /* Incomplete Entries - fill with data from table 2-7 in datasheet */
 	_PIN(0x950, "spi0_sclk",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
 	_PIN(0x954, "spi0_d0",		0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
-	_PIN(0x958, "spi0_d1",		0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
-	_PIN(0x95c, "spi0_cs0",		0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
+#endif
+	_PIN(0x958, "spi0_d1",		  4, 7, "spi0_d1", "mmc1_sdwp", "I2C1_SDA", "ehrpwm0_tripzone_input", "pr1_uart0_rxd", "pr1_edio_data_in0", "pr1_edio_data_out0", "gpio0_4"),
+	_PIN(0x95c, "spi0_cs0",		  5, 7, "spi0_cs0", "mmc2_sdwp", "I2C1_SCL", "ehrpwm0_synci", "pr1_uart0_txd", "pr1_edio_data_in1", "pr1_edio_data_out1", "gpio0_5"),
+#if 0
 	_PIN(0x960, "spi0_cs1",		0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
 	_PIN(0x964, "ecap0_in_pwm0_out",0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
 	_PIN(0x968, "uart0_ctsn",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@@ -178,8 +182,10 @@ const struct ti_scm_padconf ti_padconf_d
 	_PIN(0x97c, "uart1_rtsn",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
 	_PIN(0x980, "uart1_rxd",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
 	_PIN(0x984, "uart1_txd",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
-	_PIN(0x988, "i2c0_sda",		0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
-	_PIN(0x98c, "i2c0_scl",		0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
+#endif
+	_PIN(0x988, "I2C0_SDA",		101, 7, "I2C0_SDA", "timer4", "uart2_ctsn", "eCAP2_in_PWM2_out", NULL, NULL, NULL, "gpio3_5"),
+	_PIN(0x98c, "I2C0_SCL",		102, 7, "I2C0_SCL", "timer7", "uart2_rtsn", "eCAP1_in_PWM1_out", NULL, NULL, NULL, "gpio3_6"),
+#if 0
 	_PIN(0x990, "mcasp0_aclkx",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
 	_PIN(0x994, "mcasp0_fsx",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
 	_PIN(0x998, "mcasp0_axr0",	0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),

Added: projects/armv6/sys/arm/ti/am335x/files.beaglebone
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/armv6/sys/arm/ti/am335x/files.beaglebone	Mon Feb 27 15:42:47 2012	(r232214)
@@ -0,0 +1,3 @@
+#$FreeBSD$
+
+arm/ti/am335x/am335x_pmic.c			optional	am335x_pmic

Modified: projects/armv6/sys/arm/ti/am335x/std.beaglebone
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/std.beaglebone	Mon Feb 27 15:14:36 2012	(r232213)
+++ projects/armv6/sys/arm/ti/am335x/std.beaglebone	Mon Feb 27 15:42:47 2012	(r232214)
@@ -1,3 +1,4 @@
 # $FreeBSD$
 
-include	"../ti/am335x/std.am335x"
+files		"../ti/am335x/files.beaglebone"
+include		"../ti/am335x/std.am335x"

Modified: projects/armv6/sys/boot/fdt/dts/beaglebone.dts
==============================================================================
--- projects/armv6/sys/boot/fdt/dts/beaglebone.dts	Mon Feb 27 15:14:36 2012	(r232213)
+++ projects/armv6/sys/boot/fdt/dts/beaglebone.dts	Mon Feb 27 15:42:47 2012	(r232214)
@@ -64,6 +64,9 @@
 			reg =	< 0x44e10000 0x2000 >;
 			/* Set of triplets < padname, muxname, padstate> */
 			scm-pad-config =
+				/* I2C0 */
+				"I2C0_SDA", "I2C0_SDA","input_pullup_inact_slow",
+				"I2C0_SCL", "I2C0_SCL","input_pullup_inact_slow",
 				/* Ethernet */
 				"MII1_RX_ER", "gmii1_rxerr", "input",
 				"MII1_TX_EN", "gmii1_txen", "output",
@@ -133,27 +136,17 @@
 		};
 
 		i2c0: i2c@44e0b000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
 			compatible = "ti,i2c";
 			reg =<	0x44e0b000 0x1000 >;
 			interrupts = <70>;
 			interrupt-parent = <&AINTC>;
 			i2c-device-id = <0>;
-		};
-
-		i2c1: i2c@4802a000 {
-			compatible = "ti,i2c";
-			reg =<	0x4802a000 0x1000 >;
-			interrupts = <71>;
-			interrupt-parent = <&AINTC>;
-			i2c-device-id = <1>;
-		};
-
-		i2c2: i2c@4819c000 {
-			compatible = "ti,i2c";
-			reg =<	0x4819c000 0x1000 >;
-			interrupts = <30>;
-			interrupt-parent = <&AINTC>;
-			i2c-device-id = <2>;
+			pmic@24 {
+				compatible = "ti,am335x-pmic";
+				reg = <0x24>;
+			};
 		};
 	};
 

From owner-svn-src-projects@FreeBSD.ORG  Mon Feb 27 15:47:41 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7B8F81065676;
	Mon, 27 Feb 2012 15:47:41 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 51CE18FC08;
	Mon, 27 Feb 2012 15:47:41 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1RFlfTm024846;
	Mon, 27 Feb 2012 15:47:41 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1RFlfIn024844;
	Mon, 27 Feb 2012 15:47:41 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202271547.q1RFlfIn024844@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Mon, 27 Feb 2012 15:47:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232215 - projects/armv6/sys/arm/ti/am335x
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Feb 2012 15:47:41 -0000

Author: dmarion
Date: Mon Feb 27 15:47:41 2012
New Revision: 232215
URL: http://svn.freebsd.org/changeset/base/232215

Log:
  Few more register macros inside am335x_prcm.c
  
  Approved by:  cognet (mentor)

Modified:
  projects/armv6/sys/arm/ti/am335x/am335x_prcm.c

Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/am335x_prcm.c	Mon Feb 27 15:42:47 2012	(r232214)
+++ projects/armv6/sys/arm/ti/am335x/am335x_prcm.c	Mon Feb 27 15:47:41 2012	(r232215)
@@ -56,6 +56,8 @@ __FBSDID("$FreeBSD$");
 
 #define CM_PER				0
 #define CM_PER_L4LS_CLKSTCTRL		(CM_PER + 0x000)
+#define CM_PER_L3S_CLKSTCTRL		(CM_PER + 0x004)
+#define CM_PER_L3_CLKSTCTRL		(CM_PER + 0x00C)
 #define CM_PER_CPGMAC0_CLKCTRL		(CM_PER + 0x014)
 #define CM_PER_I2C2_CLKCTRL		(CM_PER + 0x044)
 #define CM_PER_I2C1_CLKCTRL		(CM_PER + 0x048)
@@ -63,12 +65,19 @@ __FBSDID("$FreeBSD$");
 #define CM_PER_TIMER2_CLKCTRL		(CM_PER + 0x080)
 #define CM_PER_TIMER3_CLKCTRL		(CM_PER + 0x084)
 #define CM_PER_TIMER4_CLKCTRL		(CM_PER + 0x088)
+#define CM_PER_L3_INSTR_CLKCTRL		(CM_PER + 0x0DC)
+#define CM_PER_L3_CLKCTRL		(CM_PER + 0x0E0)
 #define CM_PER_TIMER5_CLKCTRL		(CM_PER + 0x0EC)
 #define CM_PER_TIMER6_CLKCTRL		(CM_PER + 0x0F0)
+#define CM_PER_OCPWP_L3_CLKSTCTRL	(CM_PER + 0x12C)
+#define CM_PER_OCPWP_CLKCTRL		(CM_PER + 0x130)
 #define CM_PER_CPSW_CLKSTCTRL		(CM_PER + 0x144)
 
 #define CM_WKUP				0x400
-#define CM_CLKSEL_DPLL_MPU		(CM_WKUP + 0x02C)
+#define CM_WKUP_CLKSTCTRL		(CM_WKUP + 0x000)
+#define CM_WKUP_CONTROL_CLKCTRL		(CM_WKUP + 0x004)
+#define CM_WKUP_CM_L3_AON_CLKSTCTRL	(CM_WKUP + 0x01C)
+#define CM_WKUP_CM_CLKSEL_DPLL_MPU	(CM_WKUP + 0x02C)
 #define CM_WKUP_I2C0_CLKCTRL		(CM_WKUP + 0x0B8)
 
 #define CM_DPLL				0x500
@@ -386,7 +395,7 @@ am335x_clk_get_arm_fclk_freq(struct ti_c
 #define DPLL_DIV(reg)		((reg & 0x7f)+1)
 #define DPLL_MULT(reg)		((reg>>8) & 0x7FF)
 
-	reg = prcm_read_4(CM_CLKSEL_DPLL_MPU);
+	reg = prcm_read_4(CM_WKUP_CM_CLKSEL_DPLL_MPU);
 
 	/*Check if we are running in bypass */
 	if (DPLL_BYP_CLKSEL(reg))

From owner-svn-src-projects@FreeBSD.ORG  Mon Feb 27 22:28:39 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 26FA4106564A;
	Mon, 27 Feb 2012 22:28:39 +0000 (UTC)
	(envelope-from jamie@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1247C8FC0C;
	Mon, 27 Feb 2012 22:28:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1RMScYJ039652;
	Mon, 27 Feb 2012 22:28:38 GMT (envelope-from jamie@svn.freebsd.org)
Received: (from jamie@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1RMSc85039650;
	Mon, 27 Feb 2012 22:28:38 GMT (envelope-from jamie@svn.freebsd.org)
Message-Id: <201202272228.q1RMSc85039650@svn.freebsd.org>
From: Jamie Gritton <jamie@FreeBSD.org>
Date: Mon, 27 Feb 2012 22:28:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232241 - projects/jailconf/usr.sbin/jail
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Feb 2012 22:28:39 -0000

Author: jamie
Date: Mon Feb 27 22:28:38 2012
New Revision: 232241
URL: http://svn.freebsd.org/changeset/base/232241

Log:
  From r224286:
  
    Document the potential for jail escape.
  
  From r224615:
  
    Always disable mount and unmount for jails with enforce_statfs==2.
  
  From r231267:
  
    A new jail(8) option "devfs_ruleset" defines the ruleset enforcement for
    mounting devfs inside jails. A value of -1 disables mounting devfs in
    jails, a value of zero means no restrictions. Nested jails can only
    have mounting devfs disabled or inherit parent's enforcement as jails are
    not allowed to view or manipulate devfs(8) rules.
  
  From r232059:
  
    To improve control over the use of mount(8) inside a jail(8), introduce
    a new jail parameter node with the following parameters:
  
    allow.mount.devfs:
  	allow mounting the devfs filesystem inside a jail
  
    allow.mount.nullfs:
  	allow mounting the nullfs filesystem inside a jail
  
  From r232186:
  
    allow.mount.zfs:
  	allow mounting the zfs filesystem inside a jail

Modified:
  projects/jailconf/usr.sbin/jail/jail.8

Modified: projects/jailconf/usr.sbin/jail/jail.8
==============================================================================
--- projects/jailconf/usr.sbin/jail/jail.8	Mon Feb 27 21:10:10 2012	(r232240)
+++ projects/jailconf/usr.sbin/jail/jail.8	Mon Feb 27 22:28:38 2012	(r232241)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 20, 2010
+.Dd February 26, 2012
 .Dt JAIL 8
 .Os
 .Sh NAME
@@ -396,6 +396,18 @@ A jail never has a lower securelevel tha
 setting this parameter it may have a higher one.
 If the system securelevel is changed, any jail securelevels will be at
 least as secure.
+.It Va devfs_ruleset
+The number of the devfs ruleset that is enforced for mounting devfs in
+this jail. A value of zero (default) means no ruleset is enforced. Descendant
+jails inherit the parent jail's devfs ruleset enforcement. Mounting devfs
+inside a jail is possible only if the
+.Va allow.mount
+and
+.Va allow.mount.devfs
+permissions are effective and
+.Va enforce_statfs
+is set to a value lower than 2.
+Devfs rules and rulesets cannot be viewed or modified from inside a jail.
 .It Va children.max
 The number of child jails allowed to be created by this jail (or by
 other jails under this jail).
@@ -491,6 +503,39 @@ The
 .Xr lsvfs 1
 command can be used to find file system types available for mount from
 within a jail.
+This permission is effective only if
+.Va enforce_statfs
+is set to a value lower than 2.
+.It Va allow.mount.devfs
+privileged users inside the jail will be able to mount and unmount the
+devfs file system.
+This permission is effective only together with
+.Va allow.mount
+and if
+.Va enforce_statfs
+is set to a value lower than 2. Please consider restricting the devfs ruleset
+with the
+.Va devfs_ruleset
+option.
+.It Va allow.mount.nullfs
+privileged users inside the jail will be able to mount and unmount the
+nullfs file system.
+This permission is effective only together with
+.Va allow.mount
+and if
+.Va enforce_statfs
+is set to a value lower than 2.
+.It Va allow.mount.zfs
+privileged users inside the jail will be able to mount and unmount the
+ZFS file system.
+This permission is effective only together with
+.Va allow.mount
+and if
+.Va enforce_statfs
+is set to a value lower than 2. See
+.Xr zfs 8
+for information on how to configure the ZFS filesystem to operate from
+within a jail.
 .It Va allow.quotas
 The prison root may administer quotas on the jail's filesystem(s).
 This includes filesystems that the jail may share with other jails or
@@ -997,9 +1042,11 @@ It is not possible to
 or
 .Xr umount 8
 any file system inside a jail unless the file system is marked
-jail-friendly and the jail's
+jail-friendly, the jail's
 .Va allow.mount
-parameter is set.
+parameter is set and the jail's
+.Va enforce_statfs
+parameter is lower than 2.
 .Pp
 Multiple jails sharing the same file system can influence each other.
 For example a user in one jail can fill the file system also
@@ -1154,3 +1201,10 @@ Currently, the simplest answer is to min
 offered on the host, possibly limiting it to services offered from
 .Xr inetd 8
 which is easily configurable.
+.Sh NOTES
+Great care should be taken when managing directories visible within the jail.
+For example, if a jailed process has its current working directory set to a
+directory that is moved out of the jail's chroot, then the process may gain
+access to the file space outside of the jail.
+It is recommended that directories always be copied, rather than moved, out
+of a jail.

From owner-svn-src-projects@FreeBSD.ORG  Mon Feb 27 22:37:35 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C4CE31065672;
	Mon, 27 Feb 2012 22:37:35 +0000 (UTC)
	(envelope-from jamie@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A4E098FC08;
	Mon, 27 Feb 2012 22:37:35 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1RMbZpt039986;
	Mon, 27 Feb 2012 22:37:35 GMT (envelope-from jamie@svn.freebsd.org)
Received: (from jamie@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1RMbZPv039981;
	Mon, 27 Feb 2012 22:37:35 GMT (envelope-from jamie@svn.freebsd.org)
Message-Id: <201202272237.q1RMbZPv039981@svn.freebsd.org>
From: Jamie Gritton <jamie@FreeBSD.org>
Date: Mon, 27 Feb 2012 22:37:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232242 - projects/jailconf/usr.sbin/jail
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Feb 2012 22:37:35 -0000

Author: jamie
Date: Mon Feb 27 22:37:35 2012
New Revision: 232242
URL: http://svn.freebsd.org/changeset/base/232242

Log:
  Use the defvs_ruleset paramater when mounting a jail's /dev,
  instead of a mount.devfs.ruleset pseudo-parameter.

Modified:
  projects/jailconf/usr.sbin/jail/command.c
  projects/jailconf/usr.sbin/jail/config.c
  projects/jailconf/usr.sbin/jail/jail.8
  projects/jailconf/usr.sbin/jail/jailp.h

Modified: projects/jailconf/usr.sbin/jail/command.c
==============================================================================
--- projects/jailconf/usr.sbin/jail/command.c	Mon Feb 27 22:28:38 2012	(r232241)
+++ projects/jailconf/usr.sbin/jail/command.c	Mon Feb 27 22:37:35 2012	(r232242)
@@ -417,6 +417,7 @@ run_command(struct cfjail *j)
 		break;
 
 	case IP_MOUNT_DEVFS:
+		argv = alloca(7 * sizeof(char *));
 		path = string_param(j->intparams[KP_PATH]);
 		if (path == NULL) {
 			jail_warnx(j, "mount.devfs: no path");
@@ -428,22 +429,21 @@ run_command(struct cfjail *j)
 		    down ? "devfs" : NULL) < 0)
 			return -1;
 		if (down) {
-			argv = alloca(3 * sizeof(char *));
 			*(const char **)&argv[0] = "/sbin/umount";
 			argv[1] = devpath;
 			argv[2] = NULL;
 		} else {
-			argv = alloca(4 * sizeof(char *));
-			*(const char **)&argv[0] = _PATH_BSHELL;
-			*(const char **)&argv[1] = "-c";
-			ruleset = string_param(j->intparams
-			    [IP_MOUNT_DEVFS_RULESET]);
-			argv[2] = alloca(strlen(path) +
-			    (ruleset ? strlen(ruleset) + 1 : 0) + 56);
-			sprintf(argv[2], ". /etc/rc.subr; load_rc_config .; "
-			    "devfs_mount_jail %s/dev%s%s", path,
-			    ruleset ? " " : "", ruleset ? ruleset : "");
-			argv[3] = NULL;
+			*(const char **)&argv[0] = _PATH_MOUNT;
+			*(const char **)&argv[1] = "-t";
+			*(const char **)&argv[2] = "devfs";
+			ruleset = string_param(j->intparams[KP_DEVFS_RULESET]);
+			if (!ruleset)
+			    ruleset = "4";	/* devfsrules_jail */
+			argv[3] = alloca(11 + strlen(ruleset));
+			sprintf(argv[3], "-oruleset=%s", ruleset);
+			*(const char **)&argv[4] = ".";
+			argv[5] = devpath;
+			argv[6] = NULL;
 		}
 		break;
 

Modified: projects/jailconf/usr.sbin/jail/config.c
==============================================================================
--- projects/jailconf/usr.sbin/jail/config.c	Mon Feb 27 22:28:38 2012	(r232241)
+++ projects/jailconf/usr.sbin/jail/config.c	Mon Feb 27 22:37:35 2012	(r232242)
@@ -81,7 +81,6 @@ static const struct ipspec intparams[] =
 #endif
     [IP_MOUNT] =		{"mount",		PF_INTERNAL},
     [IP_MOUNT_DEVFS] =		{"mount.devfs",		PF_INTERNAL | PF_BOOL},
-    [IP_MOUNT_DEVFS_RULESET]=	{"mount.devfs.ruleset",	PF_INTERNAL},
     [IP_MOUNT_FSTAB] =		{"mount.fstab",		PF_INTERNAL},
     [IP_STOP_TIMEOUT] =		{"stop.timeout",	PF_INTERNAL | PF_INT},
     [IP_VNET_INTERFACE] =	{"vnet.interface",	PF_INTERNAL},
@@ -99,6 +98,7 @@ static const struct ipspec intparams[] =
     [KP_ALLOW_SET_HOSTNAME]=	{"allow.set_hostname",	0},
     [KP_ALLOW_SOCKET_AF] =	{"allow.socket_af",	0},
     [KP_ALLOW_SYSVIPC] =	{"allow.sysvipc",	0},
+    [KP_DEVFS_RULESET] =	{"devfs_ruleset",	0},
     [KP_ENFORCE_STATFS] =	{"enforce_statfs",	0},
     [KP_HOST_HOSTNAME] =	{"host.hostname",	0},
 #ifdef INET

Modified: projects/jailconf/usr.sbin/jail/jail.8
==============================================================================
--- projects/jailconf/usr.sbin/jail/jail.8	Mon Feb 27 22:28:38 2012	(r232241)
+++ projects/jailconf/usr.sbin/jail/jail.8	Mon Feb 27 22:37:35 2012	(r232242)
@@ -693,15 +693,10 @@ format file containing filesystems to mo
 .It Va mount.devfs
 Mount a
 .Xr devfs
- filesystem on the chrooted /dev directory, and run
-.Xr devfs 8
+filesystem on the chrooted /dev directory, and apply the ruleset in the
+.Va devfs_ruleset
+parameter (or a default of ruleset 4: devfsrules_jail)
 to restrict the devices visible inside the prison.
-.It Va mount.devfs.ruleset
-The ruleset from
-.Xr devfs.rules 5
-to use when mounting a devfs filesystem.
-The default ruleset is
-.Dq devfsrules_jail .
 .It Va allow.dying
 Allow making changes to a
 .Va dying

Modified: projects/jailconf/usr.sbin/jail/jailp.h
==============================================================================
--- projects/jailconf/usr.sbin/jail/jailp.h	Mon Feb 27 22:28:38 2012	(r232241)
+++ projects/jailconf/usr.sbin/jail/jailp.h	Mon Feb 27 22:37:35 2012	(r232242)
@@ -93,7 +93,6 @@ enum intparam {
 #endif
 	IP_MOUNT,		/* Mount points in fstab(5) form */
 	IP_MOUNT_DEVFS,		/* Mount /dev under prison root */
-	IP_MOUNT_DEVFS_RULESET,	/* Ruleset for the devfs mount */
 	IP_MOUNT_FSTAB,		/* A standard fstab(5) file */
 	IP_STOP_TIMEOUT,	/* Time to wait after sending SIGTERM */
 	IP_VNET_INTERFACE,	/* Assign interface(s) to vnet jail */
@@ -111,6 +110,7 @@ enum intparam {
 	KP_ALLOW_SET_HOSTNAME,
 	KP_ALLOW_SOCKET_AF,
 	KP_ALLOW_SYSVIPC,
+	KP_DEVFS_RULESET,
 	KP_ENFORCE_STATFS,
 	KP_HOST_HOSTNAME,
 #ifdef INET

From owner-svn-src-projects@FreeBSD.ORG  Tue Feb 28 08:36:39 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0C5B4106564A;
	Tue, 28 Feb 2012 08:36:39 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id EBDBB8FC08;
	Tue, 28 Feb 2012 08:36:38 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1S8acTq060113;
	Tue, 28 Feb 2012 08:36:38 GMT (envelope-from pho@svn.freebsd.org)
Received: (from pho@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1S8acnY060112;
	Tue, 28 Feb 2012 08:36:38 GMT (envelope-from pho@svn.freebsd.org)
Message-Id: <201202280836.q1S8acnY060112@svn.freebsd.org>
From: Peter Holm <pho@FreeBSD.org>
Date: Tue, 28 Feb 2012 08:36:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232248 - projects/stress2/misc
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Feb 2012 08:36:39 -0000

Author: pho
Date: Tue Feb 28 08:36:38 2012
New Revision: 232248
URL: http://svn.freebsd.org/changeset/base/232248

Log:
  New nullfs scenario added.
  
  PR:		kern/164261

Added:
  projects/stress2/misc/nullfs8.sh   (contents, props changed)

Added: projects/stress2/misc/nullfs8.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/stress2/misc/nullfs8.sh	Tue Feb 28 08:36:38 2012	(r232248)
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2012 Peter Holm <pho@FreeBSD.org>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+# Based on scenario by rea@, kern/164261. Different panic.
+# insmntque: mp-safe fs and non-locked vp: 0xcb413984 is not exclusive
+# locked but should be
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+
+. ../default.cfg
+
+opt="-o nfsv3,rw,udp,rdirplus,noauto"
+
+mount | grep -wq $mntpoint && umount $mntpoint
+mount -t nullfs /tmp $mntpoint
+
+mntpoint2=${mntpoint}2
+mntpoint3=${mntpoint}3
+for m in $mntpoint2 $mntpoint3; do
+	[ -d $m ] || mkdir $m
+	mount | grep -wq $m && umount $m
+	mount -t nfs $opt 127.0.0.1:$mntpoint $m
+done
+
+for i in `jot 50` ; do
+	su $testuser -c "cp -r /usr/include $mntpoint2/nullfs8-2 2>/dev/null" &
+	su $testuser -c "cp -r /usr/include $mntpoint3/nullfs8-2 2>/dev/null" &
+	wait;wait
+	su $testuser -c "find $mntpoint2 > /dev/null 2>&1" &
+	su $testuser -c "find $mntpoint3 > /dev/null 2>&1" &
+	wait;wait
+	rm -rf /tmp/nullfs8-2
+done
+
+for m in $mntpoint3 $mntpoint2 $mntpoint; do
+	while mount | grep -wq $m;  do
+		umount $m || sleep 1
+	done
+done

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 01:04:39 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C8ED41065678;
	Wed, 29 Feb 2012 01:04:39 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AF8B78FC16;
	Wed, 29 Feb 2012 01:04:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1T14dS9000304;
	Wed, 29 Feb 2012 01:04:39 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1T14cfo000243;
	Wed, 29 Feb 2012 01:04:38 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <201202290104.q1T14cfo000243@svn.freebsd.org>
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Date: Wed, 29 Feb 2012 01:04:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232280 - in projects/multi-fibv6/9: . bin/sh
	cddl/contrib/opensolaris/cmd/zfs
	cddl/contrib/opensolaris/lib/libzfs/common
	cddl/contrib/opensolaris/lib/libzpool/common/sys contrib/llvm/t...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 01:04:39 -0000

Author: bz
Date: Wed Feb 29 01:04:37 2012
New Revision: 232280
URL: http://svn.freebsd.org/changeset/base/232280

Log:
  IF stable/9 @r232279
  
  Sponsored by:	Cisco Systems, Inc.

Added:
  projects/multi-fibv6/9/contrib/llvm/tools/bugpoint/
     - copied from r232279, stable/9/contrib/llvm/tools/bugpoint/
  projects/multi-fibv6/9/contrib/llvm/tools/llc/
     - copied from r232279, stable/9/contrib/llvm/tools/llc/
  projects/multi-fibv6/9/contrib/llvm/tools/lli/
     - copied from r232279, stable/9/contrib/llvm/tools/lli/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-ar/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-ar/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-as/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-as/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-bcanalyzer/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-bcanalyzer/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-diff/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-diff/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-dis/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-dis/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-extract/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-extract/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-ld/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-ld/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-link/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-link/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-mc/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-mc/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-nm/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-nm/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-objdump/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-objdump/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-prof/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-prof/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-ranlib/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-ranlib/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-rtdyld/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-rtdyld/
  projects/multi-fibv6/9/contrib/llvm/tools/llvm-stub/
     - copied from r232279, stable/9/contrib/llvm/tools/llvm-stub/
  projects/multi-fibv6/9/contrib/llvm/tools/macho-dump/
     - copied from r232279, stable/9/contrib/llvm/tools/macho-dump/
  projects/multi-fibv6/9/contrib/llvm/tools/opt/
     - copied from r232279, stable/9/contrib/llvm/tools/opt/
  projects/multi-fibv6/9/lib/clang/libllvmarchive/
     - copied from r232279, stable/9/lib/clang/libllvmarchive/
  projects/multi-fibv6/9/lib/clang/libllvmdebuginfo/
     - copied from r232279, stable/9/lib/clang/libllvmdebuginfo/
  projects/multi-fibv6/9/lib/clang/libllvmexecutionengine/
     - copied from r232279, stable/9/lib/clang/libllvmexecutionengine/
  projects/multi-fibv6/9/lib/clang/libllvminterpreter/
     - copied from r232279, stable/9/lib/clang/libllvminterpreter/
  projects/multi-fibv6/9/lib/clang/libllvmjit/
     - copied from r232279, stable/9/lib/clang/libllvmjit/
  projects/multi-fibv6/9/lib/clang/libllvmlinker/
     - copied from r232279, stable/9/lib/clang/libllvmlinker/
  projects/multi-fibv6/9/lib/clang/libllvmmcdisassembler/
     - copied from r232279, stable/9/lib/clang/libllvmmcdisassembler/
  projects/multi-fibv6/9/lib/clang/libllvmmcjit/
     - copied from r232279, stable/9/lib/clang/libllvmmcjit/
  projects/multi-fibv6/9/lib/clang/libllvmobject/
     - copied from r232279, stable/9/lib/clang/libllvmobject/
  projects/multi-fibv6/9/lib/clang/libllvmruntimedyld/
     - copied from r232279, stable/9/lib/clang/libllvmruntimedyld/
  projects/multi-fibv6/9/lib/libc/amd64/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/amd64/gen/getcontextx.c
  projects/multi-fibv6/9/lib/libc/arm/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/arm/gen/getcontextx.c
  projects/multi-fibv6/9/lib/libc/i386/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/i386/gen/getcontextx.c
  projects/multi-fibv6/9/lib/libc/ia64/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/ia64/gen/getcontextx.c
  projects/multi-fibv6/9/lib/libc/mips/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/mips/gen/getcontextx.c
  projects/multi-fibv6/9/lib/libc/powerpc/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/powerpc/gen/getcontextx.c
  projects/multi-fibv6/9/lib/libc/powerpc64/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/powerpc64/gen/getcontextx.c
  projects/multi-fibv6/9/lib/libc/sparc64/gen/getcontextx.c
     - copied unchanged from r232279, stable/9/lib/libc/sparc64/gen/getcontextx.c
  projects/multi-fibv6/9/share/man/man4/isci.4
     - copied unchanged from r232279, stable/9/share/man/man4/isci.4
  projects/multi-fibv6/9/share/man/man4/netmap.4
     - copied unchanged from r232279, stable/9/share/man/man4/netmap.4
  projects/multi-fibv6/9/share/man/man4/oce.4
     - copied unchanged from r232279, stable/9/share/man/man4/oce.4
  projects/multi-fibv6/9/share/man/man4/xnb.4
     - copied unchanged from r232279, stable/9/share/man/man4/xnb.4
  projects/multi-fibv6/9/sys/amd64/amd64/ptrace_machdep.c
     - copied unchanged from r232279, stable/9/sys/amd64/amd64/ptrace_machdep.c
  projects/multi-fibv6/9/sys/cam/ctl/
     - copied from r232279, stable/9/sys/cam/ctl/
  projects/multi-fibv6/9/sys/conf/WITHOUT_SOURCELESS
     - copied unchanged from r232279, stable/9/sys/conf/WITHOUT_SOURCELESS
  projects/multi-fibv6/9/sys/conf/WITHOUT_SOURCELESS_HOST
     - copied unchanged from r232279, stable/9/sys/conf/WITHOUT_SOURCELESS_HOST
  projects/multi-fibv6/9/sys/conf/WITHOUT_SOURCELESS_UCODE
     - copied unchanged from r232279, stable/9/sys/conf/WITHOUT_SOURCELESS_UCODE
  projects/multi-fibv6/9/sys/dev/isci/
     - copied from r232279, stable/9/sys/dev/isci/
  projects/multi-fibv6/9/sys/dev/netmap/
     - copied from r232279, stable/9/sys/dev/netmap/
  projects/multi-fibv6/9/sys/dev/oce/
     - copied from r232279, stable/9/sys/dev/oce/
  projects/multi-fibv6/9/sys/dev/xen/netback/netback_unit_tests.c
     - copied unchanged from r232279, stable/9/sys/dev/xen/netback/netback_unit_tests.c
     - copied unchanged from r232279, stable/9/sys/i386/conf/XENHVM
  projects/multi-fibv6/9/sys/modules/isci/
     - copied from r232279, stable/9/sys/modules/isci/
  projects/multi-fibv6/9/sys/modules/oce/
     - copied from r232279, stable/9/sys/modules/oce/
  projects/multi-fibv6/9/sys/net/netmap.h
     - copied unchanged from r232279, stable/9/sys/net/netmap.h
  projects/multi-fibv6/9/sys/net/netmap_user.h
     - copied unchanged from r232279, stable/9/sys/net/netmap_user.h
  projects/multi-fibv6/9/tools/build/options/WITHOUT_SOURCELESS
     - copied unchanged from r232279, stable/9/tools/build/options/WITHOUT_SOURCELESS
  projects/multi-fibv6/9/tools/build/options/WITHOUT_SOURCELESS_HOST
     - copied unchanged from r232279, stable/9/tools/build/options/WITHOUT_SOURCELESS_HOST
  projects/multi-fibv6/9/tools/build/options/WITHOUT_SOURCELESS_UCODE
     - copied unchanged from r232279, stable/9/tools/build/options/WITHOUT_SOURCELESS_UCODE
  projects/multi-fibv6/9/tools/build/options/WITH_CLANG_EXTRAS
     - copied unchanged from r232279, stable/9/tools/build/options/WITH_CLANG_EXTRAS
  projects/multi-fibv6/9/tools/test/ptrace/
     - copied from r232279, stable/9/tools/test/ptrace/
  projects/multi-fibv6/9/tools/tools/netmap/
     - copied from r232279, stable/9/tools/tools/netmap/
  projects/multi-fibv6/9/usr.bin/clang/bugpoint/
     - copied from r232279, stable/9/usr.bin/clang/bugpoint/
  projects/multi-fibv6/9/usr.bin/clang/llc/
     - copied from r232279, stable/9/usr.bin/clang/llc/
  projects/multi-fibv6/9/usr.bin/clang/lli/
     - copied from r232279, stable/9/usr.bin/clang/lli/
  projects/multi-fibv6/9/usr.bin/clang/llvm-ar/
     - copied from r232279, stable/9/usr.bin/clang/llvm-ar/
  projects/multi-fibv6/9/usr.bin/clang/llvm-as/
     - copied from r232279, stable/9/usr.bin/clang/llvm-as/
  projects/multi-fibv6/9/usr.bin/clang/llvm-bcanalyzer/
     - copied from r232279, stable/9/usr.bin/clang/llvm-bcanalyzer/
  projects/multi-fibv6/9/usr.bin/clang/llvm-diff/
     - copied from r232279, stable/9/usr.bin/clang/llvm-diff/
  projects/multi-fibv6/9/usr.bin/clang/llvm-dis/
     - copied from r232279, stable/9/usr.bin/clang/llvm-dis/
  projects/multi-fibv6/9/usr.bin/clang/llvm-extract/
     - copied from r232279, stable/9/usr.bin/clang/llvm-extract/
  projects/multi-fibv6/9/usr.bin/clang/llvm-ld/
     - copied from r232279, stable/9/usr.bin/clang/llvm-ld/
  projects/multi-fibv6/9/usr.bin/clang/llvm-link/
     - copied from r232279, stable/9/usr.bin/clang/llvm-link/
  projects/multi-fibv6/9/usr.bin/clang/llvm-mc/
     - copied from r232279, stable/9/usr.bin/clang/llvm-mc/
  projects/multi-fibv6/9/usr.bin/clang/llvm-nm/
     - copied from r232279, stable/9/usr.bin/clang/llvm-nm/
  projects/multi-fibv6/9/usr.bin/clang/llvm-objdump/
     - copied from r232279, stable/9/usr.bin/clang/llvm-objdump/
  projects/multi-fibv6/9/usr.bin/clang/llvm-prof/
     - copied from r232279, stable/9/usr.bin/clang/llvm-prof/
  projects/multi-fibv6/9/usr.bin/clang/llvm-ranlib/
     - copied from r232279, stable/9/usr.bin/clang/llvm-ranlib/
  projects/multi-fibv6/9/usr.bin/clang/llvm-rtdyld/
     - copied from r232279, stable/9/usr.bin/clang/llvm-rtdyld/
  projects/multi-fibv6/9/usr.bin/clang/llvm-stub/
     - copied from r232279, stable/9/usr.bin/clang/llvm-stub/
  projects/multi-fibv6/9/usr.bin/clang/macho-dump/
     - copied from r232279, stable/9/usr.bin/clang/macho-dump/
  projects/multi-fibv6/9/usr.bin/clang/opt/
     - copied from r232279, stable/9/usr.bin/clang/opt/
     - copied from r232279, stable/9/usr.bin/ctlstat/
  projects/multi-fibv6/9/usr.sbin/ctladm/
     - copied from r232279, stable/9/usr.sbin/ctladm/
Directory Properties:
  projects/multi-fibv6/9/sys/i386/conf/XENHVM   (props changed)
  projects/multi-fibv6/9/usr.bin/ctlstat/   (props changed)
Modified:
  projects/multi-fibv6/9/MAINTAINERS   (contents, props changed)
  projects/multi-fibv6/9/Makefile   (contents, props changed)
  projects/multi-fibv6/9/bin/sh/exec.c
  projects/multi-fibv6/9/bin/sh/exec.h
  projects/multi-fibv6/9/bin/sh/expand.c
  projects/multi-fibv6/9/bin/sh/expand.h
  projects/multi-fibv6/9/bin/sh/histedit.c
  projects/multi-fibv6/9/bin/sh/input.c
  projects/multi-fibv6/9/bin/sh/input.h
  projects/multi-fibv6/9/bin/sh/main.c
  projects/multi-fibv6/9/bin/sh/main.h
  projects/multi-fibv6/9/bin/sh/myhistedit.h
  projects/multi-fibv6/9/bin/sh/mystring.c
  projects/multi-fibv6/9/bin/sh/mystring.h
  projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c
  projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h
  projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
  projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
  projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h
  projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
  projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
  projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
  projects/multi-fibv6/9/etc/defaults/periodic.conf
  projects/multi-fibv6/9/etc/defaults/rc.conf
  projects/multi-fibv6/9/etc/periodic/daily/404.status-zfs
  projects/multi-fibv6/9/etc/rc.d/SERVERS
  projects/multi-fibv6/9/etc/rc.d/accounting
  projects/multi-fibv6/9/etc/rc.d/addswap
  projects/multi-fibv6/9/etc/rc.d/amd
  projects/multi-fibv6/9/etc/rc.d/apm
  projects/multi-fibv6/9/etc/rc.d/apmd
  projects/multi-fibv6/9/etc/rc.d/bootparams
  projects/multi-fibv6/9/etc/rc.d/bsnmpd
  projects/multi-fibv6/9/etc/rc.d/bthidd
  projects/multi-fibv6/9/etc/rc.d/cleanvar
  projects/multi-fibv6/9/etc/rc.d/cleartmp
  projects/multi-fibv6/9/etc/rc.d/cron
  projects/multi-fibv6/9/etc/rc.d/ddb
  projects/multi-fibv6/9/etc/rc.d/devd
  projects/multi-fibv6/9/etc/rc.d/devfs
  projects/multi-fibv6/9/etc/rc.d/dhclient
  projects/multi-fibv6/9/etc/rc.d/dmesg
  projects/multi-fibv6/9/etc/rc.d/ftp-proxy
  projects/multi-fibv6/9/etc/rc.d/ftpd
  projects/multi-fibv6/9/etc/rc.d/gptboot
  projects/multi-fibv6/9/etc/rc.d/hastd
  projects/multi-fibv6/9/etc/rc.d/hcsecd
  projects/multi-fibv6/9/etc/rc.d/hostapd
  projects/multi-fibv6/9/etc/rc.d/inetd
  projects/multi-fibv6/9/etc/rc.d/ip6addrctl
  projects/multi-fibv6/9/etc/rc.d/ipfilter
  projects/multi-fibv6/9/etc/rc.d/ipfs
  projects/multi-fibv6/9/etc/rc.d/ipmon
  projects/multi-fibv6/9/etc/rc.d/ipnat
  projects/multi-fibv6/9/etc/rc.d/ipsec
  projects/multi-fibv6/9/etc/rc.d/ipxrouted
  projects/multi-fibv6/9/etc/rc.d/jail
  projects/multi-fibv6/9/etc/rc.d/keyserv
  projects/multi-fibv6/9/etc/rc.d/lockd
  projects/multi-fibv6/9/etc/rc.d/lpd
  projects/multi-fibv6/9/etc/rc.d/mountd
  projects/multi-fibv6/9/etc/rc.d/moused
  projects/multi-fibv6/9/etc/rc.d/mroute6d
  projects/multi-fibv6/9/etc/rc.d/mrouted
  projects/multi-fibv6/9/etc/rc.d/natd
  projects/multi-fibv6/9/etc/rc.d/netwait
  projects/multi-fibv6/9/etc/rc.d/newsyslog
  projects/multi-fibv6/9/etc/rc.d/nfscbd
  projects/multi-fibv6/9/etc/rc.d/nfsd
  projects/multi-fibv6/9/etc/rc.d/nfsuserd
  projects/multi-fibv6/9/etc/rc.d/nscd
  projects/multi-fibv6/9/etc/rc.d/ntpd
  projects/multi-fibv6/9/etc/rc.d/ntpdate
  projects/multi-fibv6/9/etc/rc.d/pf
  projects/multi-fibv6/9/etc/rc.d/pflog
  projects/multi-fibv6/9/etc/rc.d/pfsync
  projects/multi-fibv6/9/etc/rc.d/powerd
  projects/multi-fibv6/9/etc/rc.d/ppp
  projects/multi-fibv6/9/etc/rc.d/pppoed
  projects/multi-fibv6/9/etc/rc.d/quota
  projects/multi-fibv6/9/etc/rc.d/rarpd
  projects/multi-fibv6/9/etc/rc.d/rfcomm_pppd_server
  projects/multi-fibv6/9/etc/rc.d/route6d
  projects/multi-fibv6/9/etc/rc.d/routed
  projects/multi-fibv6/9/etc/rc.d/rpcbind
  projects/multi-fibv6/9/etc/rc.d/rtadvd
  projects/multi-fibv6/9/etc/rc.d/rtsold
  projects/multi-fibv6/9/etc/rc.d/rwho
  projects/multi-fibv6/9/etc/rc.d/sdpd
  projects/multi-fibv6/9/etc/rc.d/sendmail
  projects/multi-fibv6/9/etc/rc.d/sshd
  projects/multi-fibv6/9/etc/rc.d/statd
  projects/multi-fibv6/9/etc/rc.d/syslogd
  projects/multi-fibv6/9/etc/rc.d/timed
  projects/multi-fibv6/9/etc/rc.d/ubthidhci
  projects/multi-fibv6/9/etc/rc.d/var
  projects/multi-fibv6/9/etc/rc.d/virecover
  projects/multi-fibv6/9/etc/rc.d/watchdogd
  projects/multi-fibv6/9/etc/rc.d/ypbind
  projects/multi-fibv6/9/etc/rc.d/yppasswdd
  projects/multi-fibv6/9/etc/rc.d/ypserv
  projects/multi-fibv6/9/etc/rc.d/ypset
  projects/multi-fibv6/9/etc/rc.d/ypupdated
  projects/multi-fibv6/9/etc/rc.d/ypxfrd
  projects/multi-fibv6/9/etc/rc.resume
  projects/multi-fibv6/9/etc/rc.subr
  projects/multi-fibv6/9/etc/rc.suspend
  projects/multi-fibv6/9/gnu/usr.bin/gdb/kgdb/trgt_amd64.c
  projects/multi-fibv6/9/include/rpc/Makefile
  projects/multi-fibv6/9/include/rpcsvc/Makefile
  projects/multi-fibv6/9/include/stdio.h
  projects/multi-fibv6/9/lib/clang/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmanalysis/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmipa/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmipo/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmmc/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmscalaropts/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmsupport/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmtransformutils/Makefile
  projects/multi-fibv6/9/lib/clang/libllvmx86disassembler/Makefile
  projects/multi-fibv6/9/lib/libc/amd64/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/arm/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/gen/Symbol.map
  projects/multi-fibv6/9/lib/libc/gen/directory.3
  projects/multi-fibv6/9/lib/libc/gen/getcontext.3
  projects/multi-fibv6/9/lib/libc/gen/sysctl.3
  projects/multi-fibv6/9/lib/libc/gen/ucontext.3
  projects/multi-fibv6/9/lib/libc/i386/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/ia64/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/locale/btowc.3
  projects/multi-fibv6/9/lib/libc/mips/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/powerpc/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/powerpc64/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/powerpc64/sys/cerror.S
  projects/multi-fibv6/9/lib/libc/rpc/Makefile.inc
  projects/multi-fibv6/9/lib/libc/sparc64/gen/Makefile.inc
  projects/multi-fibv6/9/lib/libc/sys/jail.2
  projects/multi-fibv6/9/lib/libc/sys/ptrace.2
  projects/multi-fibv6/9/lib/libc/yp/Makefile.inc
  projects/multi-fibv6/9/lib/libipsec/pfkey.c
  projects/multi-fibv6/9/lib/libpmc/pmc.3
  projects/multi-fibv6/9/lib/libpmc/pmc.atom.3
  projects/multi-fibv6/9/lib/libpmc/pmc.core.3
  projects/multi-fibv6/9/lib/libpmc/pmc.core2.3
  projects/multi-fibv6/9/lib/libpmc/pmc.corei7.3
  projects/multi-fibv6/9/lib/libpmc/pmc.corei7uc.3
  projects/multi-fibv6/9/lib/libpmc/pmc.iaf.3
  projects/multi-fibv6/9/lib/libpmc/pmc.k7.3
  projects/multi-fibv6/9/lib/libpmc/pmc.k8.3
  projects/multi-fibv6/9/lib/libpmc/pmc.mips.3
  projects/multi-fibv6/9/lib/libpmc/pmc.p4.3
  projects/multi-fibv6/9/lib/libpmc/pmc.p5.3
  projects/multi-fibv6/9/lib/libpmc/pmc.p6.3
  projects/multi-fibv6/9/lib/libpmc/pmc.tsc.3
  projects/multi-fibv6/9/lib/libpmc/pmc.ucf.3
  projects/multi-fibv6/9/lib/libpmc/pmc.westmere.3
  projects/multi-fibv6/9/lib/libpmc/pmc.westmereuc.3
  projects/multi-fibv6/9/lib/libpmc/pmc.xscale.3
  projects/multi-fibv6/9/lib/libpmc/pmc_allocate.3
  projects/multi-fibv6/9/lib/libpmc/pmc_attach.3
  projects/multi-fibv6/9/lib/libpmc/pmc_capabilities.3
  projects/multi-fibv6/9/lib/libpmc/pmc_configure_logfile.3
  projects/multi-fibv6/9/lib/libpmc/pmc_disable.3
  projects/multi-fibv6/9/lib/libpmc/pmc_event_names_of_class.3
  projects/multi-fibv6/9/lib/libpmc/pmc_get_driver_stats.3
  projects/multi-fibv6/9/lib/libpmc/pmc_get_msr.3
  projects/multi-fibv6/9/lib/libpmc/pmc_init.3
  projects/multi-fibv6/9/lib/libpmc/pmc_name_of_capability.3
  projects/multi-fibv6/9/lib/libpmc/pmc_read.3
  projects/multi-fibv6/9/lib/libpmc/pmc_set.3
  projects/multi-fibv6/9/lib/libpmc/pmc_start.3
  projects/multi-fibv6/9/lib/libpmc/pmclog.3
  projects/multi-fibv6/9/lib/librpcsvc/Makefile
  projects/multi-fibv6/9/lib/libthr/thread/thr_sig.c
  projects/multi-fibv6/9/lib/libthr/thread/thr_umtx.c
  projects/multi-fibv6/9/lib/libypclnt/Makefile
  projects/multi-fibv6/9/libexec/rtld-elf/rtld.c
  projects/multi-fibv6/9/libexec/tftpd/tftp-io.c
  projects/multi-fibv6/9/libexec/ypxfr/Makefile
  projects/multi-fibv6/9/release/doc/en_US.ISO8859-1/hardware/article.sgml
  projects/multi-fibv6/9/release/doc/share/misc/dev.archlist.txt
  projects/multi-fibv6/9/release/picobsd/tinyware/passwd/Makefile
  projects/multi-fibv6/9/release/rc.local
  projects/multi-fibv6/9/sbin/camcontrol/camcontrol.c
  projects/multi-fibv6/9/sbin/camcontrol/modeedit.c
  projects/multi-fibv6/9/sbin/fsck_ffs/gjournal.c
  projects/multi-fibv6/9/sbin/fsirand/fsirand.c
  projects/multi-fibv6/9/sbin/gvinum/gvinum.c
  projects/multi-fibv6/9/sbin/hastd/rangelock.c
  projects/multi-fibv6/9/sbin/ifconfig/ifieee80211.c
  projects/multi-fibv6/9/sbin/newfs/mkfs.c
  projects/multi-fibv6/9/sbin/ping6/ping6.c
  projects/multi-fibv6/9/sbin/tunefs/tunefs.c
  projects/multi-fibv6/9/share/examples/scsi_target/scsi_cmds.c
  projects/multi-fibv6/9/share/man/man4/Makefile
  projects/multi-fibv6/9/share/man/man4/ada.4
  projects/multi-fibv6/9/share/man/man4/bge.4
  projects/multi-fibv6/9/share/man/man4/cd.4
  projects/multi-fibv6/9/share/man/man4/da.4
  projects/multi-fibv6/9/share/man/man4/ed.4
  projects/multi-fibv6/9/share/man/man4/lagg.4
  projects/multi-fibv6/9/share/man/man4/lmc.4
  projects/multi-fibv6/9/share/man/man4/sbp.4
  projects/multi-fibv6/9/share/man/man4/sfxge.4
  projects/multi-fibv6/9/share/man/man4/u3g.4
  projects/multi-fibv6/9/share/man/man4/usb_quirk.4
  projects/multi-fibv6/9/share/man/man4/wlan.4
  projects/multi-fibv6/9/share/man/man5/periodic.conf.5
  projects/multi-fibv6/9/share/man/man5/portindex.5
  projects/multi-fibv6/9/share/man/man5/rc.conf.5
  projects/multi-fibv6/9/share/man/man5/src.conf.5
  projects/multi-fibv6/9/share/man/man7/security.7
  projects/multi-fibv6/9/share/man/man8/rc.subr.8
  projects/multi-fibv6/9/share/man/man9/DEVICE_PROBE.9
  projects/multi-fibv6/9/share/mk/bsd.own.mk
  projects/multi-fibv6/9/sys/amd64/acpica/acpi_switch.S
  projects/multi-fibv6/9/sys/amd64/acpica/acpi_wakecode.S
  projects/multi-fibv6/9/sys/amd64/acpica/acpi_wakeup.c
  projects/multi-fibv6/9/sys/amd64/amd64/apic_vector.S
  projects/multi-fibv6/9/sys/amd64/amd64/cpu_switch.S
  projects/multi-fibv6/9/sys/amd64/amd64/fpu.c
  projects/multi-fibv6/9/sys/amd64/amd64/genassym.c
  projects/multi-fibv6/9/sys/amd64/amd64/initcpu.c
  projects/multi-fibv6/9/sys/amd64/amd64/machdep.c
  projects/multi-fibv6/9/sys/amd64/amd64/minidump_machdep.c
  projects/multi-fibv6/9/sys/amd64/amd64/mp_machdep.c
  projects/multi-fibv6/9/sys/amd64/amd64/sys_machdep.c
  projects/multi-fibv6/9/sys/amd64/amd64/trap.c
  projects/multi-fibv6/9/sys/amd64/amd64/uma_machdep.c
  projects/multi-fibv6/9/sys/amd64/amd64/vm_machdep.c
  projects/multi-fibv6/9/sys/amd64/conf/GENERIC
  projects/multi-fibv6/9/sys/amd64/conf/NOTES
  projects/multi-fibv6/9/sys/amd64/ia32/ia32_reg.c
  projects/multi-fibv6/9/sys/amd64/ia32/ia32_signal.c
  projects/multi-fibv6/9/sys/amd64/include/cpufunc.h
  projects/multi-fibv6/9/sys/amd64/include/fpu.h
  projects/multi-fibv6/9/sys/amd64/include/frame.h
  projects/multi-fibv6/9/sys/amd64/include/md_var.h
  projects/multi-fibv6/9/sys/amd64/include/pcb.h
  projects/multi-fibv6/9/sys/amd64/include/ptrace.h
  projects/multi-fibv6/9/sys/amd64/include/signal.h
  projects/multi-fibv6/9/sys/amd64/include/sysarch.h
  projects/multi-fibv6/9/sys/amd64/include/ucontext.h
  projects/multi-fibv6/9/sys/cam/scsi/scsi_all.c
  projects/multi-fibv6/9/sys/cam/scsi/scsi_all.h
  projects/multi-fibv6/9/sys/cam/scsi/scsi_da.h
  projects/multi-fibv6/9/sys/cam/scsi/scsi_targ_bh.c
  projects/multi-fibv6/9/sys/cam/scsi/scsi_xpt.c
  projects/multi-fibv6/9/sys/cddl/compat/opensolaris/sys/kmem.h
  projects/multi-fibv6/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
  projects/multi-fibv6/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  projects/multi-fibv6/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  projects/multi-fibv6/9/sys/compat/ia32/ia32_signal.h
  projects/multi-fibv6/9/sys/conf/NOTES
  projects/multi-fibv6/9/sys/conf/files
  projects/multi-fibv6/9/sys/conf/files.amd64
  projects/multi-fibv6/9/sys/conf/files.i386
  projects/multi-fibv6/9/sys/conf/ldscript.powerpc64
  projects/multi-fibv6/9/sys/conf/options
  projects/multi-fibv6/9/sys/conf/options.amd64
  projects/multi-fibv6/9/sys/conf/options.i386
  projects/multi-fibv6/9/sys/crypto/aesni/aesni.c
  projects/multi-fibv6/9/sys/crypto/aesni/aesni.h
  projects/multi-fibv6/9/sys/crypto/aesni/aesni_wrap.c
  projects/multi-fibv6/9/sys/crypto/via/padlock.c
  projects/multi-fibv6/9/sys/crypto/via/padlock.h
  projects/multi-fibv6/9/sys/crypto/via/padlock_cipher.c
  projects/multi-fibv6/9/sys/crypto/via/padlock_hash.c
  projects/multi-fibv6/9/sys/dev/acpica/Osd/OsdSynch.c
  projects/multi-fibv6/9/sys/dev/acpica/acpi.c
  projects/multi-fibv6/9/sys/dev/acpica/acpi_ec.c
  projects/multi-fibv6/9/sys/dev/acpica/acpi_hpet.c
  projects/multi-fibv6/9/sys/dev/acpica/acpi_timer.c
  projects/multi-fibv6/9/sys/dev/acpica/acpivar.h
  projects/multi-fibv6/9/sys/dev/ata/ata-queue.c
  projects/multi-fibv6/9/sys/dev/ata/atapi-cam.c
  projects/multi-fibv6/9/sys/dev/bge/if_bge.c
  projects/multi-fibv6/9/sys/dev/bge/if_bgereg.h
  projects/multi-fibv6/9/sys/dev/ciss/ciss.c
  projects/multi-fibv6/9/sys/dev/et/if_et.c
  projects/multi-fibv6/9/sys/dev/fb/vesa.c
  projects/multi-fibv6/9/sys/dev/fb/vesa.h
  projects/multi-fibv6/9/sys/dev/isp/isp_freebsd.h
  projects/multi-fibv6/9/sys/dev/mii/brgphy.c
  projects/multi-fibv6/9/sys/dev/mii/miidevs
  projects/multi-fibv6/9/sys/dev/mii/nsphyter.c
  projects/multi-fibv6/9/sys/dev/mps/mps.c
  projects/multi-fibv6/9/sys/dev/mps/mps_pci.c
  projects/multi-fibv6/9/sys/dev/mps/mps_sas.c
  projects/multi-fibv6/9/sys/dev/mps/mps_sas.h
  projects/multi-fibv6/9/sys/dev/mps/mps_sas_lsi.c
  projects/multi-fibv6/9/sys/dev/mps/mps_user.c
  projects/multi-fibv6/9/sys/dev/mps/mpsvar.h
  projects/multi-fibv6/9/sys/dev/pci/pci.c
  projects/multi-fibv6/9/sys/dev/random/nehemiah.c
  projects/multi-fibv6/9/sys/dev/random/probe.c
  projects/multi-fibv6/9/sys/dev/re/if_re.c
  projects/multi-fibv6/9/sys/dev/sound/pcm/sound.c
  projects/multi-fibv6/9/sys/dev/sound/usb/uaudio.c
  projects/multi-fibv6/9/sys/dev/usb/serial/u3g.c
  projects/multi-fibv6/9/sys/dev/usb/serial/usb_serial.c
  projects/multi-fibv6/9/sys/dev/usb/serial/usb_serial.h
  projects/multi-fibv6/9/sys/dev/usb/usbdevs
  projects/multi-fibv6/9/sys/dev/xen/blkback/blkback.c
  projects/multi-fibv6/9/sys/dev/xen/blkfront/blkfront.c
  projects/multi-fibv6/9/sys/dev/xen/blkfront/block.h
  projects/multi-fibv6/9/sys/dev/xen/netback/netback.c
  projects/multi-fibv6/9/sys/dev/xen/xenpci/evtchn.c
  projects/multi-fibv6/9/sys/fs/ext2fs/inode.h
  projects/multi-fibv6/9/sys/fs/nfs/nfs_commonport.c
  projects/multi-fibv6/9/sys/fs/nfsclient/nfs_clvnops.c
  projects/multi-fibv6/9/sys/fs/nfsserver/nfs_nfsdcache.c
  projects/multi-fibv6/9/sys/fs/nfsserver/nfs_nfsdport.c
  projects/multi-fibv6/9/sys/fs/tmpfs/tmpfs_vnops.c
  projects/multi-fibv6/9/sys/geom/journal/g_journal.c
  projects/multi-fibv6/9/sys/i386/conf/GENERIC
  projects/multi-fibv6/9/sys/i386/conf/NOTES
  projects/multi-fibv6/9/sys/i386/conf/PAE
  projects/multi-fibv6/9/sys/i386/i386/machdep.c
  projects/multi-fibv6/9/sys/i386/include/npx.h
  projects/multi-fibv6/9/sys/i386/include/ptrace.h
  projects/multi-fibv6/9/sys/i386/include/signal.h
  projects/multi-fibv6/9/sys/i386/include/sysarch.h
  projects/multi-fibv6/9/sys/i386/include/ucontext.h
  projects/multi-fibv6/9/sys/i386/include/xen/xenpmap.h
  projects/multi-fibv6/9/sys/i386/include/xen/xenvar.h
  projects/multi-fibv6/9/sys/i386/isa/npx.c
  projects/multi-fibv6/9/sys/ia64/conf/GENERIC
  projects/multi-fibv6/9/sys/kern/kern_fork.c
  projects/multi-fibv6/9/sys/kern/kern_jail.c
  projects/multi-fibv6/9/sys/kern/subr_scanf.c
  projects/multi-fibv6/9/sys/kern/subr_syscall.c
  projects/multi-fibv6/9/sys/kern/sys_process.c
  projects/multi-fibv6/9/sys/kern/sysv_shm.c
  projects/multi-fibv6/9/sys/kern/uipc_mbuf.c
  projects/multi-fibv6/9/sys/kern/vfs_cache.c
  projects/multi-fibv6/9/sys/kern/vfs_cluster.c
  projects/multi-fibv6/9/sys/kern/vfs_mount.c
  projects/multi-fibv6/9/sys/kern/vfs_subr.c
  projects/multi-fibv6/9/sys/kern/vfs_syscalls.c
  projects/multi-fibv6/9/sys/modules/Makefile
  projects/multi-fibv6/9/sys/modules/drm/Makefile
  projects/multi-fibv6/9/sys/modules/kgssapi/Makefile
  projects/multi-fibv6/9/sys/modules/kgssapi_krb5/Makefile
  projects/multi-fibv6/9/sys/modules/random/Makefile
  projects/multi-fibv6/9/sys/modules/sound/driver/Makefile
  projects/multi-fibv6/9/sys/modules/usb/Makefile
  projects/multi-fibv6/9/sys/net/flowtable.c
  projects/multi-fibv6/9/sys/net/ieee8023ad_lacp.c
  projects/multi-fibv6/9/sys/net/if.h
  projects/multi-fibv6/9/sys/net/if_lagg.c
  projects/multi-fibv6/9/sys/net/if_lagg.h
  projects/multi-fibv6/9/sys/net/if_llatbl.c
  projects/multi-fibv6/9/sys/net/rtsock.c
  projects/multi-fibv6/9/sys/netgraph/ng_cisco.c
  projects/multi-fibv6/9/sys/netgraph/ng_cisco.h
  projects/multi-fibv6/9/sys/netinet/ipfw/ip_fw_nat.c
  projects/multi-fibv6/9/sys/netinet/sctp_output.c
  projects/multi-fibv6/9/sys/netinet6/nd6.h
  projects/multi-fibv6/9/sys/netinet6/nd6_rtr.c
  projects/multi-fibv6/9/sys/nfsclient/nfs_vnops.c
  projects/multi-fibv6/9/sys/pc98/conf/GENERIC
  projects/multi-fibv6/9/sys/pc98/pc98/machdep.c
  projects/multi-fibv6/9/sys/powerpc/aim/locore64.S
  projects/multi-fibv6/9/sys/powerpc/aim/swtch64.S
  projects/multi-fibv6/9/sys/powerpc/aim/trap_subr64.S
  projects/multi-fibv6/9/sys/powerpc/include/asm.h
  projects/multi-fibv6/9/sys/powerpc/include/profile.h
  projects/multi-fibv6/9/sys/powerpc/ofw/ofwcall64.S
  projects/multi-fibv6/9/sys/powerpc/powerpc/atomic.S
  projects/multi-fibv6/9/sys/powerpc/powerpc/setjmp.S
  projects/multi-fibv6/9/sys/sparc64/conf/GENERIC
  projects/multi-fibv6/9/sys/sys/malloc.h
  projects/multi-fibv6/9/sys/sys/param.h
  projects/multi-fibv6/9/sys/sys/proc.h
  projects/multi-fibv6/9/sys/sys/ptrace.h
  projects/multi-fibv6/9/sys/sys/socket.h
  projects/multi-fibv6/9/sys/sys/ucontext.h
  projects/multi-fibv6/9/sys/sys/vnode.h
  projects/multi-fibv6/9/sys/ufs/ffs/ffs_softdep.c
  projects/multi-fibv6/9/sys/ufs/ffs/ffs_vfsops.c
  projects/multi-fibv6/9/sys/ufs/ffs/ffs_vnops.c
  projects/multi-fibv6/9/sys/ufs/ufs/inode.h
  projects/multi-fibv6/9/sys/ufs/ufs/ufs_acl.c
  projects/multi-fibv6/9/sys/ufs/ufs/ufs_vnops.c
  projects/multi-fibv6/9/sys/vm/uma.h
  projects/multi-fibv6/9/sys/vm/uma_core.c
  projects/multi-fibv6/9/sys/vm/vm_kern.c
  projects/multi-fibv6/9/sys/vm/vm_map.c
  projects/multi-fibv6/9/sys/vm/vm_map.h
  projects/multi-fibv6/9/sys/vm/vm_mmap.c
  projects/multi-fibv6/9/sys/vm/vm_page.c
  projects/multi-fibv6/9/sys/vm/vm_page.h
  projects/multi-fibv6/9/sys/vm/vnode_pager.h
  projects/multi-fibv6/9/sys/xen/interface/io/blkif.h
  projects/multi-fibv6/9/sys/xen/interface/io/netif.h
  projects/multi-fibv6/9/sys/xen/xenbus/xenbusvar.h
  projects/multi-fibv6/9/tools/build/mk/OptionalObsoleteFiles.inc
  projects/multi-fibv6/9/tools/regression/bin/sh/builtins/getopts1.0
  projects/multi-fibv6/9/tools/regression/bin/test/regress.sh
  projects/multi-fibv6/9/tools/regression/doat/doat.c
  projects/multi-fibv6/9/tools/regression/pipe/pipe-fstatbug.c
  projects/multi-fibv6/9/tools/regression/pipe/pipe-reverse.c
  projects/multi-fibv6/9/tools/regression/pipe/pipe-wraparound.c
  projects/multi-fibv6/9/usr.bin/Makefile
  projects/multi-fibv6/9/usr.bin/brandelf/brandelf.c
  projects/multi-fibv6/9/usr.bin/bsdiff/bsdiff/bsdiff.c
  projects/multi-fibv6/9/usr.bin/clang/Makefile
  projects/multi-fibv6/9/usr.bin/ncplist/ncplist.c
  projects/multi-fibv6/9/usr.bin/netstat/if.c
  projects/multi-fibv6/9/usr.bin/sockstat/sockstat.1
  projects/multi-fibv6/9/usr.bin/sockstat/sockstat.c
  projects/multi-fibv6/9/usr.bin/split/split.c
  projects/multi-fibv6/9/usr.sbin/Makefile
  projects/multi-fibv6/9/usr.sbin/amd/Makefile.inc
  projects/multi-fibv6/9/usr.sbin/bootparamd/bootparamd/Makefile
  projects/multi-fibv6/9/usr.sbin/bootparamd/callbootd/Makefile
  projects/multi-fibv6/9/usr.sbin/gssd/Makefile
  projects/multi-fibv6/9/usr.sbin/keyserv/Makefile
  projects/multi-fibv6/9/usr.sbin/makefs/cd9660.c
  projects/multi-fibv6/9/usr.sbin/makefs/cd9660.h
  projects/multi-fibv6/9/usr.sbin/makefs/cd9660/cd9660_write.c
  projects/multi-fibv6/9/usr.sbin/makefs/ffs.c
  projects/multi-fibv6/9/usr.sbin/makefs/makefs.8
  projects/multi-fibv6/9/usr.sbin/makefs/makefs.c
  projects/multi-fibv6/9/usr.sbin/makefs/makefs.h
  projects/multi-fibv6/9/usr.sbin/makefs/walk.c
  projects/multi-fibv6/9/usr.sbin/mlxcontrol/interface.c
  projects/multi-fibv6/9/usr.sbin/rpc.lockd/Makefile
  projects/multi-fibv6/9/usr.sbin/rpc.statd/Makefile
  projects/multi-fibv6/9/usr.sbin/rpc.yppasswdd/Makefile
  projects/multi-fibv6/9/usr.sbin/rpc.ypupdated/Makefile
  projects/multi-fibv6/9/usr.sbin/rpc.ypxfrd/Makefile
  projects/multi-fibv6/9/usr.sbin/usbdump/usbdump.8
  projects/multi-fibv6/9/usr.sbin/usbdump/usbdump.c
  projects/multi-fibv6/9/usr.sbin/yppush/Makefile
  projects/multi-fibv6/9/usr.sbin/ypserv/Makefile
Directory Properties:
  projects/multi-fibv6/9/   (props changed)
  projects/multi-fibv6/9/bin/sh/   (props changed)
  projects/multi-fibv6/9/cddl/   (props changed)
  projects/multi-fibv6/9/cddl/contrib/opensolaris/   (props changed)
  projects/multi-fibv6/9/contrib/llvm/   (props changed)
  projects/multi-fibv6/9/etc/   (props changed)
  projects/multi-fibv6/9/gnu/usr.bin/gdb/   (props changed)
  projects/multi-fibv6/9/gnu/usr.bin/gdb/kgdb/   (props changed)
  projects/multi-fibv6/9/include/   (props changed)
  projects/multi-fibv6/9/lib/   (props changed)
  projects/multi-fibv6/9/lib/clang/   (props changed)
  projects/multi-fibv6/9/lib/libc/   (props changed)
  projects/multi-fibv6/9/lib/libc/sys/   (props changed)
  projects/multi-fibv6/9/lib/libipsec/   (props changed)
  projects/multi-fibv6/9/lib/libpmc/   (props changed)
  projects/multi-fibv6/9/lib/librpcsvc/   (props changed)
  projects/multi-fibv6/9/lib/libthr/   (props changed)
  projects/multi-fibv6/9/lib/libypclnt/   (props changed)
  projects/multi-fibv6/9/libexec/rtld-elf/   (props changed)
  projects/multi-fibv6/9/libexec/tftpd/   (props changed)
  projects/multi-fibv6/9/libexec/ypxfr/   (props changed)
  projects/multi-fibv6/9/release/   (props changed)
  projects/multi-fibv6/9/release/doc/en_US.ISO8859-1/hardware/   (props changed)
  projects/multi-fibv6/9/release/picobsd/tinyware/passwd/   (props changed)
  projects/multi-fibv6/9/sbin/   (props changed)
  projects/multi-fibv6/9/sbin/camcontrol/   (props changed)
  projects/multi-fibv6/9/sbin/fsck_ffs/   (props changed)
  projects/multi-fibv6/9/sbin/fsirand/   (props changed)
  projects/multi-fibv6/9/sbin/geom/   (props changed)
  projects/multi-fibv6/9/sbin/gvinum/   (props changed)
  projects/multi-fibv6/9/sbin/hastd/   (props changed)
  projects/multi-fibv6/9/sbin/ifconfig/   (props changed)
  projects/multi-fibv6/9/sbin/newfs/   (props changed)
  projects/multi-fibv6/9/sbin/ping6/   (props changed)
  projects/multi-fibv6/9/sbin/tunefs/   (props changed)
  projects/multi-fibv6/9/share/   (props changed)
  projects/multi-fibv6/9/share/examples/   (props changed)
  projects/multi-fibv6/9/share/examples/diskless/   (props changed)
  projects/multi-fibv6/9/share/examples/ppp/   (props changed)
  projects/multi-fibv6/9/share/examples/printing/   (props changed)
  projects/multi-fibv6/9/share/man/   (props changed)
  projects/multi-fibv6/9/share/man/man4/   (props changed)
  projects/multi-fibv6/9/share/man/man5/   (props changed)
  projects/multi-fibv6/9/share/man/man7/   (props changed)
  projects/multi-fibv6/9/share/man/man9/   (props changed)
  projects/multi-fibv6/9/share/mk/   (props changed)
  projects/multi-fibv6/9/share/mk/bsd.arch.inc.mk   (props changed)
  projects/multi-fibv6/9/sys/   (props changed)
  projects/multi-fibv6/9/sys/amd64/include/xen/   (props changed)
  projects/multi-fibv6/9/sys/boot/   (props changed)
  projects/multi-fibv6/9/sys/boot/i386/efi/   (props changed)
  projects/multi-fibv6/9/sys/boot/ia64/efi/   (props changed)
  projects/multi-fibv6/9/sys/boot/ia64/ski/   (props changed)
  projects/multi-fibv6/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  projects/multi-fibv6/9/sys/boot/powerpc/ofw/   (props changed)
  projects/multi-fibv6/9/sys/cddl/contrib/opensolaris/   (props changed)
  projects/multi-fibv6/9/sys/conf/   (props changed)
  projects/multi-fibv6/9/sys/contrib/dev/acpica/   (props changed)
  projects/multi-fibv6/9/sys/contrib/octeon-sdk/   (props changed)
  projects/multi-fibv6/9/sys/contrib/pf/   (props changed)
  projects/multi-fibv6/9/sys/contrib/x86emu/   (props changed)
  projects/multi-fibv6/9/tools/   (props changed)
  projects/multi-fibv6/9/tools/build/options/   (props changed)
  projects/multi-fibv6/9/tools/regression/bin/sh/   (props changed)
  projects/multi-fibv6/9/tools/regression/bin/test/   (props changed)
  projects/multi-fibv6/9/tools/regression/doat/   (props changed)
  projects/multi-fibv6/9/tools/regression/pipe/   (props changed)
  projects/multi-fibv6/9/tools/test/   (props changed)
  projects/multi-fibv6/9/tools/tools/   (props changed)
  projects/multi-fibv6/9/usr.bin/   (props changed)
  projects/multi-fibv6/9/usr.bin/brandelf/   (props changed)
  projects/multi-fibv6/9/usr.bin/bsdiff/   (props changed)
  projects/multi-fibv6/9/usr.bin/clang/   (props changed)
  projects/multi-fibv6/9/usr.bin/ncplist/   (props changed)
  projects/multi-fibv6/9/usr.bin/netstat/   (props changed)
  projects/multi-fibv6/9/usr.bin/sockstat/   (props changed)
  projects/multi-fibv6/9/usr.bin/split/   (props changed)
  projects/multi-fibv6/9/usr.sbin/amd/   (props changed)
  projects/multi-fibv6/9/usr.sbin/bootparamd/   (props changed)
  projects/multi-fibv6/9/usr.sbin/gssd/   (props changed)
  projects/multi-fibv6/9/usr.sbin/keyserv/   (props changed)
  projects/multi-fibv6/9/usr.sbin/makefs/   (props changed)
  projects/multi-fibv6/9/usr.sbin/rpc.lockd/   (props changed)
  projects/multi-fibv6/9/usr.sbin/rpc.statd/   (props changed)
  projects/multi-fibv6/9/usr.sbin/rpc.yppasswdd/   (props changed)
  projects/multi-fibv6/9/usr.sbin/rpc.ypupdated/   (props changed)
  projects/multi-fibv6/9/usr.sbin/rpc.ypxfrd/   (props changed)
  projects/multi-fibv6/9/usr.sbin/usbdump/   (props changed)
  projects/multi-fibv6/9/usr.sbin/yppush/   (props changed)
  projects/multi-fibv6/9/usr.sbin/ypserv/   (props changed)

Modified: projects/multi-fibv6/9/MAINTAINERS
==============================================================================
--- projects/multi-fibv6/9/MAINTAINERS	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/MAINTAINERS	Wed Feb 29 01:04:37 2012	(r232280)
@@ -126,6 +126,7 @@ lib/libc/stdtime	edwin   Heads-up apprec
 sysinstall	randi	Please contact about any major changes so that
 			they can be co-ordinated.
 sbin/routed	bms	Pre-commit review; notify vendor at rhyolite.com
+isci(4)		jimharris	Pre-commit review requested.
 
 Following are the entries from the Makefiles, and a few other sources.
 Please remove stale entries from both their origin, and this file.

Modified: projects/multi-fibv6/9/Makefile
==============================================================================
--- projects/multi-fibv6/9/Makefile	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/Makefile	Wed Feb 29 01:04:37 2012	(r232280)
@@ -24,7 +24,7 @@
 # check-old-dirs      - List obsolete directories.
 # check-old-files     - List obsolete files.
 # check-old-libs      - List obsolete libraries.
-# delete-old          - Delete obsolete directories/files/libraries.
+# delete-old          - Delete obsolete directories/files.
 # delete-old-dirs     - Delete obsolete directories.
 # delete-old-files    - Delete obsolete files.
 # delete-old-libs     - Delete obsolete libraries.

Modified: projects/multi-fibv6/9/bin/sh/exec.c
==============================================================================
--- projects/multi-fibv6/9/bin/sh/exec.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/exec.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -100,6 +100,7 @@ static void tryexec(char *, char **, cha
 static void printentry(struct tblentry *, int);
 static struct tblentry *cmdlookup(const char *, int);
 static void delete_cmd_entry(void);
+static void addcmdentry(const char *, struct cmdentry *);
 
 
 
@@ -593,7 +594,7 @@ delete_cmd_entry(void)
  * the same name.
  */
 
-void
+static void
 addcmdentry(const char *name, struct cmdentry *entry)
 {
 	struct tblentry *cmdp;

Modified: projects/multi-fibv6/9/bin/sh/exec.h
==============================================================================
--- projects/multi-fibv6/9/bin/sh/exec.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/exec.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -70,7 +70,6 @@ void find_command(const char *, struct c
 int find_builtin(const char *, int *);
 void hashcd(void);
 void changepath(const char *);
-void addcmdentry(const char *, struct cmdentry *);
 void defun(const char *, union node *);
 int unsetfunc(const char *);
 int typecmd_impl(int, char **, int, const char *);

Modified: projects/multi-fibv6/9/bin/sh/expand.c
==============================================================================
--- projects/multi-fibv6/9/bin/sh/expand.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/expand.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -113,6 +113,7 @@ static void expmeta(char *, char *);
 static void addfname(char *);
 static struct strlist *expsort(struct strlist *);
 static struct strlist *msort(struct strlist *, int);
+static int patmatch(const char *, const char *, int);
 static char *cvtnum(int, char *);
 static int collate_range_cmp(wchar_t, wchar_t);
 
@@ -1435,7 +1436,7 @@ match_charclass(const char *p, wchar_t c
  * Returns true if the pattern matches the string.
  */
 
-int
+static int
 patmatch(const char *pattern, const char *string, int squoted)
 {
 	const char *p, *q, *end;

Modified: projects/multi-fibv6/9/bin/sh/expand.h
==============================================================================
--- projects/multi-fibv6/9/bin/sh/expand.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/expand.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -60,6 +60,5 @@ union node;
 void expandhere(union node *, int);
 void expandarg(union node *, struct arglist *, int);
 void expari(int);
-int patmatch(const char *, const char *, int);
 void rmescapes(char *);
 int casematch(union node *, const char *);

Modified: projects/multi-fibv6/9/bin/sh/histedit.c
==============================================================================
--- projects/multi-fibv6/9/bin/sh/histedit.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/histedit.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -70,6 +70,8 @@ int displayhist;
 static FILE *el_in, *el_out, *el_err;
 
 static char *fc_replace(const char *, char *, char *);
+static int not_fcnumber(const char *);
+static int str_to_event(const char *, int);
 
 /*
  * Set history and editing status.  Called whenever the status may
@@ -425,7 +427,7 @@ fc_replace(const char *s, char *p, char 
 	return (dest);
 }
 
-int
+static int
 not_fcnumber(const char *s)
 {
 	if (s == NULL)
@@ -435,7 +437,7 @@ not_fcnumber(const char *s)
 	return (!is_number(s));
 }
 
-int
+static int
 str_to_event(const char *str, int last)
 {
 	HistEvent he;

Modified: projects/multi-fibv6/9/bin/sh/input.c
==============================================================================
--- projects/multi-fibv6/9/bin/sh/input.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/input.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -106,6 +106,7 @@ EditLine *el;			/* cookie for editline p
 
 static void pushfile(void);
 static int preadfd(void);
+static void popstring(void);
 
 #ifdef mkinit
 INCLUDE "input.h"
@@ -372,7 +373,7 @@ pushstring(char *s, int len, void *ap)
 	INTON;
 }
 
-void
+static void
 popstring(void)
 {
 	struct strpush *sp = parsefile->strpush;

Modified: projects/multi-fibv6/9/bin/sh/input.h
==============================================================================
--- projects/multi-fibv6/9/bin/sh/input.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/input.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -53,7 +53,6 @@ int preadbuffer(void);
 int preadateof(void);
 void pungetc(void);
 void pushstring(char *, int, void *);
-void popstring(void);
 void setinputfile(const char *, int);
 void setinputfd(int, int);
 void setinputstring(char *, int);

Modified: projects/multi-fibv6/9/bin/sh/main.c
==============================================================================
--- projects/multi-fibv6/9/bin/sh/main.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/main.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -79,6 +79,7 @@ int rootshell;
 struct jmploc main_handler;
 int localeisutf8, initial_localeisutf8;
 
+static void cmdloop(int);
 static void read_profile(char *);
 static char *find_dot_file(char *);
 
@@ -184,7 +185,7 @@ state4:	/* XXX ??? - why isn't this befo
  * loop; it turns on prompting if the shell is interactive.
  */
 
-void
+static void
 cmdloop(int top)
 {
 	union node *n;

Modified: projects/multi-fibv6/9/bin/sh/main.h
==============================================================================
--- projects/multi-fibv6/9/bin/sh/main.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/main.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -38,4 +38,3 @@ extern int rootshell;	/* true if we aren
 extern struct jmploc main_handler;	/* top level exception handler */
 
 void readcmdfile(const char *);
-void cmdloop(int);

Modified: projects/multi-fibv6/9/bin/sh/myhistedit.h
==============================================================================
--- projects/multi-fibv6/9/bin/sh/myhistedit.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/myhistedit.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -39,6 +39,4 @@ extern int displayhist;
 void histedit(void);
 void sethistsize(const char *);
 void setterm(const char *);
-int not_fcnumber(const char *);
-int str_to_event(const char *, int);
 

Modified: projects/multi-fibv6/9/bin/sh/mystring.c
==============================================================================
--- projects/multi-fibv6/9/bin/sh/mystring.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/mystring.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$");
  *
  *	equal(s1, s2)		Return true if strings are equal.
  *	scopy(from, to)		Copy a string.
- *	scopyn(from, to, n)	Like scopy, but checks for overflow.
  *	number(s)		Convert a string of digits to an integer.
  *	is_number(s)		Return true if s is a string of digits.
  */
@@ -67,24 +66,6 @@ char nullstr[1];		/* zero length string 
 
 
 /*
- * scopyn - copy a string from "from" to "to", truncating the string
- *		if necessary.  "To" is always nul terminated, even if
- *		truncation is performed.  "Size" is the size of "to".
- */
-
-void
-scopyn(const char *from, char *to, int size)
-{
-
-	while (--size > 0) {
-		if ((*to++ = *from++) == '\0')
-			return;
-	}
-	*to = '\0';
-}
-
-
-/*
  * prefix -- see if pfx is a prefix of string.
  */
 

Modified: projects/multi-fibv6/9/bin/sh/mystring.h
==============================================================================
--- projects/multi-fibv6/9/bin/sh/mystring.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/bin/sh/mystring.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -35,7 +35,6 @@
 
 #include <string.h>
 
-void scopyn(const char *, char *, int);
 int prefix(const char *, const char *);
 int number(const char *);
 int is_number(const char *);

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -20,6 +20,8 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
+ * All rights reserved.
  */
 
 #include <libintl.h>
@@ -129,8 +131,11 @@ zfs_callback(zfs_handle_t *zhp, void *da
 		cb->cb_depth++;
 		if (zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM)
 			(void) zfs_iter_filesystems(zhp, zfs_callback, data);
-		if ((zfs_get_type(zhp) != ZFS_TYPE_SNAPSHOT) && include_snaps)
-			(void) zfs_iter_snapshots(zhp, zfs_callback, data);
+		if ((zfs_get_type(zhp) != ZFS_TYPE_SNAPSHOT) && include_snaps) {
+			(void) zfs_iter_snapshots(zhp,
+			    (cb->cb_flags & ZFS_ITER_SIMPLE) != 0, zfs_callback,
+			    data);
+		}
 		cb->cb_depth--;
 	}
 
@@ -184,6 +189,14 @@ zfs_free_sort_columns(zfs_sort_column_t 
 	}
 }
 
+boolean_t
+zfs_sort_only_by_name(const zfs_sort_column_t *sc)
+{
+
+	return (sc != NULL && sc->sc_next == NULL &&
+	    sc->sc_prop == ZFS_PROP_NAME);
+}
+
 /* ARGSUSED */
 static int
 zfs_compare(const void *larg, const void *rarg, void *unused)
@@ -224,7 +237,13 @@ zfs_compare(const void *larg, const void
 			lcreate = zfs_prop_get_int(l, ZFS_PROP_CREATETXG);
 			rcreate = zfs_prop_get_int(r, ZFS_PROP_CREATETXG);
 
-			if (lcreate < rcreate)
+			/*
+			 * Both lcreate and rcreate being 0 means we don't have
+			 * properties and we should compare full name.
+			 */
+			if (lcreate == 0 && rcreate == 0)
+				ret = strcmp(lat + 1, rat + 1);
+			else if (lcreate < rcreate)
 				ret = -1;
 			else if (lcreate > rcreate)
 				ret = 1;
@@ -290,7 +309,14 @@ zfs_sort(const void *larg, const void *r
 			if (rvalid)
 				verify(nvlist_lookup_string(rval,
 				    ZPROP_VALUE, &rstr) == 0);
+		} else if (psc->sc_prop == ZFS_PROP_NAME) {
+			lvalid = rvalid = B_TRUE;
+
+			(void) strlcpy(lbuf, zfs_get_name(l), sizeof(lbuf));
+			(void) strlcpy(rbuf, zfs_get_name(r), sizeof(rbuf));
 
+			lstr = lbuf;
+			rstr = rbuf;
 		} else if (zfs_prop_is_string(psc->sc_prop)) {
 			lvalid = (zfs_prop_get(l, psc->sc_prop, lbuf,
 			    sizeof (lbuf), NULL, NULL, 0, B_TRUE) == 0);

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -43,11 +43,13 @@ typedef struct zfs_sort_column {
 #define	ZFS_ITER_PROP_LISTSNAPS    (1 << 2)
 #define	ZFS_ITER_DEPTH_LIMIT	   (1 << 3)
 #define	ZFS_ITER_RECVD_PROPS	   (1 << 4)
+#define	ZFS_ITER_SIMPLE		   (1 << 5)
 
 int zfs_for_each(int, char **, int options, zfs_type_t,
     zfs_sort_column_t *, zprop_list_t **, int, zfs_iter_f, void *);
 int zfs_add_sort_column(zfs_sort_column_t **, const char *, boolean_t);
 void zfs_free_sort_columns(zfs_sort_column_t *);
+boolean_t zfs_sort_only_by_name(const zfs_sort_column_t *);
 
 #ifdef	__cplusplus
 }

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -23,7 +23,7 @@
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
  * Copyright (c) 2011 by Delphix. All rights reserved.
- * Copyright (c) 2011 Pawel Jakub Dawidek <pawel@dawidek.net>.
+ * Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
  * All rights reserved.
  * Copyright (c) 2011 Martin Matuska <mm@FreeBSD.org>. All rights reserved.
  */
@@ -2838,7 +2838,12 @@ print_dataset(zfs_handle_t *zhp, zprop_l
 			first = B_FALSE;
 		}
 
-		if (pl->pl_prop != ZPROP_INVAL) {
+		if (pl->pl_prop == ZFS_PROP_NAME) {
+			(void) strlcpy(property, zfs_get_name(zhp),
+			    sizeof(property));
+			propstr = property;
+			right_justify = zfs_prop_align_right(pl->pl_prop);
+		} else if (pl->pl_prop != ZPROP_INVAL) {
 			if (zfs_prop_get(zhp, pl->pl_prop, property,
 			    sizeof (property), NULL, NULL, 0, B_FALSE) != 0)
 				propstr = "-";
@@ -3005,6 +3010,13 @@ zfs_do_list(int argc, char **argv)
 		fields = default_fields;
 
 	/*
+	 * If we are only going to list snapshot names and sort by name,
+	 * then we can use faster version.
+	 */
+	if (strcmp(fields, "name") == 0 && zfs_sort_only_by_name(sortcol))
+		flags |= ZFS_ITER_SIMPLE;
+
+	/*
 	 * If "-o space" and no types were specified, don't display snapshots.
 	 */
 	if (strcmp(fields, "space") == 0 && types_specified == B_FALSE)

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -507,7 +507,7 @@ extern int zfs_iter_root(libzfs_handle_t
 extern int zfs_iter_children(zfs_handle_t *, zfs_iter_f, void *);
 extern int zfs_iter_dependents(zfs_handle_t *, boolean_t, zfs_iter_f, void *);
 extern int zfs_iter_filesystems(zfs_handle_t *, zfs_iter_f, void *);
-extern int zfs_iter_snapshots(zfs_handle_t *, zfs_iter_f, void *);
+extern int zfs_iter_snapshots(zfs_handle_t *, boolean_t, zfs_iter_f, void *);
 extern int zfs_iter_snapshots_sorted(zfs_handle_t *, zfs_iter_f, void *);
 extern int zfs_iter_snapspec(zfs_handle_t *, const char *, zfs_iter_f, void *);
 

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -23,7 +23,7 @@
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2010 Nexenta Systems, Inc. All rights reserved.
  * Copyright (c) 2011 by Delphix. All rights reserved.
- * Copyright (c) 2011 Pawel Jakub Dawidek <pawel@dawidek.net>.
+ * Copyright (c) 2011-2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
  * All rights reserved.
  */
 
@@ -514,6 +514,22 @@ make_dataset_handle_zc(libzfs_handle_t *
 }
 
 zfs_handle_t *
+make_dataset_simple_handle_zc(zfs_handle_t *pzhp, zfs_cmd_t *zc)
+{
+	zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1);
+
+	if (zhp == NULL)
+		return (NULL);
+
+	zhp->zfs_hdl = pzhp->zfs_hdl;
+	(void) strlcpy(zhp->zfs_name, zc->zc_name, sizeof (zhp->zfs_name));
+	zhp->zfs_head_type = pzhp->zfs_type;
+	zhp->zfs_type = ZFS_TYPE_SNAPSHOT;
+	zhp->zpool_hdl = zpool_handle(zhp);
+	return (zhp);
+}
+
+zfs_handle_t *
 zfs_handle_dup(zfs_handle_t *zhp_orig)
 {
 	zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1);

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -150,7 +150,7 @@ int zpool_standard_error_fmt(libzfs_hand
 int get_dependents(libzfs_handle_t *, boolean_t, const char *, char ***,
     size_t *);
 zfs_handle_t *make_dataset_handle_zc(libzfs_handle_t *, zfs_cmd_t *);
-
+zfs_handle_t *make_dataset_simple_handle_zc(zfs_handle_t *, zfs_cmd_t *);
 
 int zprop_parse_value(libzfs_handle_t *, nvpair_t *, int, zfs_type_t,
     nvlist_t *, char **, uint64_t *, const char *);

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -23,6 +23,8 @@
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2010 Nexenta Systems, Inc. All rights reserved.
  * Copyright (c) 2011 by Delphix. All rights reserved.
+ * Copyright (c) 2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
+ * All rights reserved.
  */
 
 #include <stdio.h>
@@ -137,7 +139,8 @@ zfs_iter_filesystems(zfs_handle_t *zhp, 
  * Iterate over all snapshots
  */
 int
-zfs_iter_snapshots(zfs_handle_t *zhp, zfs_iter_f func, void *data)
+zfs_iter_snapshots(zfs_handle_t *zhp, boolean_t simple, zfs_iter_f func,
+    void *data)
 {
 	zfs_cmd_t zc = { 0 };
 	zfs_handle_t *nzhp;
@@ -146,15 +149,19 @@ zfs_iter_snapshots(zfs_handle_t *zhp, zf
 	if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT)
 		return (0);
 
+	zc.zc_simple = simple;
+
 	if (zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0)
 		return (-1);
 	while ((ret = zfs_do_list_ioctl(zhp, ZFS_IOC_SNAPSHOT_LIST_NEXT,
 	    &zc)) == 0) {
 
-		if ((nzhp = make_dataset_handle_zc(zhp->zfs_hdl,
-		    &zc)) == NULL) {
+		if (simple)
+			nzhp = make_dataset_simple_handle_zc(zhp, &zc);
+		else
+			nzhp = make_dataset_handle_zc(zhp->zfs_hdl, &zc);
+		if (nzhp == NULL)
 			continue;
-		}
 
 		if ((ret = func(nzhp, data)) != 0) {
 			zcmd_free_nvlists(&zc);
@@ -234,7 +241,7 @@ zfs_iter_snapshots_sorted(zfs_handle_t *
 	avl_create(&avl, zfs_snapshot_compare,
 	    sizeof (zfs_node_t), offsetof(zfs_node_t, zn_avlnode));
 
-	ret = zfs_iter_snapshots(zhp, zfs_sort_snaps, &avl);
+	ret = zfs_iter_snapshots(zhp, B_FALSE, zfs_sort_snaps, &avl);
 
 	for (node = avl_first(&avl); node != NULL; node = AVL_NEXT(&avl, node))
 		ret |= callback(node->zn_handle, data);
@@ -378,7 +385,7 @@ zfs_iter_children(zfs_handle_t *zhp, zfs
 	if ((ret = zfs_iter_filesystems(zhp, func, data)) != 0)
 		return (ret);
 
-	return (zfs_iter_snapshots(zhp, func, data));
+	return (zfs_iter_snapshots(zhp, B_FALSE, func, data));
 }
 
 
@@ -439,8 +446,10 @@ iter_dependents_cb(zfs_handle_t *zhp, vo
 		isf.next = ida->stack;
 		ida->stack = &isf;
 		err = zfs_iter_filesystems(zhp, iter_dependents_cb, ida);
-		if (err == 0)
-			err = zfs_iter_snapshots(zhp, iter_dependents_cb, ida);
+		if (err == 0) {
+			err = zfs_iter_snapshots(zhp, B_FALSE,
+			    iter_dependents_cb, ida);
+		}
 		ida->stack = isf.next;
 	}
 	if (!first && err == 0)

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c	Wed Feb 29 01:04:37 2012	(r232280)
@@ -22,6 +22,8 @@
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2011 by Delphix. All rights reserved.
+ * Copyright (c) 2012 Pawel Jakub Dawidek <pawel@dawidek.net>.
+ * All rights reserved.
  */
 
 #include <assert.h>
@@ -717,7 +719,7 @@ send_iterate_fs(zfs_handle_t *zhp, void 
 	sd->parent_fromsnap_guid = 0;
 	VERIFY(0 == nvlist_alloc(&sd->parent_snaps, NV_UNIQUE_NAME, 0));
 	VERIFY(0 == nvlist_alloc(&sd->snapprops, NV_UNIQUE_NAME, 0));
-	(void) zfs_iter_snapshots(zhp, send_iterate_snap, sd);
+	(void) zfs_iter_snapshots(zhp, B_FALSE, send_iterate_snap, sd);
 	VERIFY(0 == nvlist_add_nvlist(nvfs, "snaps", sd->parent_snaps));
 	VERIFY(0 == nvlist_add_nvlist(nvfs, "snapprops", sd->snapprops));
 	nvlist_free(sd->parent_snaps);

Modified: projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
==============================================================================
--- projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h	Wed Feb 29 01:04:37 2012	(r232280)
@@ -329,6 +329,7 @@ extern void cv_broadcast(kcondvar_t *cv)
 #define	KM_SLEEP		UMEM_NOFAIL
 #define	KM_PUSHPAGE		KM_SLEEP
 #define	KM_NOSLEEP		UMEM_DEFAULT
+#define	KM_NODEBUG		0
 #define	KMC_NODEBUG		UMC_NODEBUG
 #define	KMC_NOTOUCH		0	/* not needed for userland caches */
 #define	kmem_alloc(_s, _f)	umem_alloc(_s, _f)

Modified: projects/multi-fibv6/9/etc/defaults/periodic.conf
==============================================================================
--- projects/multi-fibv6/9/etc/defaults/periodic.conf	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/defaults/periodic.conf	Wed Feb 29 01:04:37 2012	(r232280)
@@ -96,6 +96,7 @@ daily_status_disks_df_flags="-l -h"		# d
 
 # 404.status-zfs
 daily_status_zfs_enable="NO"				# Check ZFS
+daily_status_zfs_zpool_list_enable="YES"		# List ZFS pools
 
 # 405.status-ata_raid
 daily_status_ata_raid_enable="NO"			# Check ATA raid status

Modified: projects/multi-fibv6/9/etc/defaults/rc.conf
==============================================================================
--- projects/multi-fibv6/9/etc/defaults/rc.conf	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/defaults/rc.conf	Wed Feb 29 01:04:37 2012	(r232280)
@@ -24,11 +24,13 @@
 rc_debug="NO"		# Set to YES to enable debugging output from rc.d
 rc_info="NO"		# Enables display of informational messages at boot.
 rc_startmsgs="YES" 	# Show "Starting foo:" messages at boot
-rcshutdown_timeout="30" # Seconds to wait before terminating rc.shutdown
+rcshutdown_timeout="90" # Seconds to wait before terminating rc.shutdown
 early_late_divider="FILESYSTEMS"	# Script that separates early/late
 			# stages of the boot process.  Make sure you know
 			# the ramifications if you change this.
 			# See rc.conf(5) for more details.
+always_force_depends="NO"	# Set to check that indicated dependencies are
+				# running during boot (can increase boot time).
 
 swapfile="NO"		# Set to name of swapfile if aux swapfile desired.
 apm_enable="NO"		# Set to YES to enable APM BIOS functions (or NO).
@@ -648,6 +650,7 @@ devfs_rulesets="/etc/defaults/devfs.rule
 devfs_system_ruleset=""	# The name (NOT number) of a ruleset to apply to /dev
 devfs_set_rulesets=""	# A list of /mount/dev=ruleset_name settings to
 			# apply (must be mounted already, i.e. fstab(5))
+devfs_load_rulesets="NO"	# Enable to always load the default rulesets
 performance_cx_lowest="HIGH"	# Online CPU idle state
 performance_cpu_freq="NONE"	# Online CPU frequency
 economy_cx_lowest="HIGH"	# Offline CPU idle state

Modified: projects/multi-fibv6/9/etc/periodic/daily/404.status-zfs
==============================================================================
--- projects/multi-fibv6/9/etc/periodic/daily/404.status-zfs	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/periodic/daily/404.status-zfs	Wed Feb 29 01:04:37 2012	(r232280)
@@ -16,12 +16,21 @@ case "$daily_status_zfs_enable" in
 	echo
 	echo 'Checking status of zfs pools:'
 
-	out=`zpool status -x`
-	echo "$out"
+	case "$daily_status_zfs_zpool_list_enable" in
+	    [Yy][Ee][Ss])
+		lout=`zpool list`
+		echo "$lout"
+		echo
+		;;
+	    *)
+		;;
+	esac
+	sout=`zpool status -x`
+	echo "$sout"
 	# zpool status -x always exits with 0, so we have to interpret its
 	# output to see what's going on.
-	if [ "$out" = "all pools are healthy" \
-	    -o "$out" = "no pools available" ]; then
+	if [ "$sout" = "all pools are healthy" \
+	    -o "$sout" = "no pools available" ]; then
 		rc=0
 	else
 		rc=1

Modified: projects/multi-fibv6/9/etc/rc.d/SERVERS
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/SERVERS	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/SERVERS	Wed Feb 29 01:04:37 2012	(r232280)
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: SERVERS
-# REQUIRE: mountcritremote abi ldconfig savecore
+# REQUIRE: mountcritremote abi ldconfig savecore watchdogd
 
 #	This is a dummy dependency, for early-start servers relying on
 #	some basic configuration.

Modified: projects/multi-fibv6/9/etc/rc.d/accounting
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/accounting	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/accounting	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="accounting"
-rcvar=`set_rcvar`
+rcvar="accounting_enable"
 accounting_command="/usr/sbin/accton"
 accounting_file="/var/account/acct"
 

Modified: projects/multi-fibv6/9/etc/rc.d/addswap
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/addswap	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/addswap	Wed Feb 29 01:04:37 2012	(r232280)
@@ -6,7 +6,7 @@
 #
 
 # PROVIDE: addswap
-# REQUIRE: FILESYSTEMS
+# REQUIRE: FILESYSTEMS kld
 # KEYWORD: nojail
 
 . /etc/rc.subr

Modified: projects/multi-fibv6/9/etc/rc.d/amd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/amd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/amd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="amd"
-rcvar=`set_rcvar`
+rcvar="amd_enable"
 command="/usr/sbin/${name}"
 start_precmd="amd_precmd"
 command_args="&"
@@ -19,15 +19,8 @@ extra_commands="reload"
 
 amd_precmd()
 {
-	if ! checkyesno nfs_client_enable; then
-		force_depend nfsclient || return 1
-	fi
-
-	if ! checkyesno rpcbind_enable  && \
-	    ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
-	then
-		force_depend rpcbind || return 1
-	fi
+	force_depend nfsclient nfs_client || return 1
+	force_depend rpcbind || return 1
 
 	case ${amd_map_program} in
 	[Nn][Oo] | '')
@@ -49,7 +42,6 @@ amd_precmd()
 		command_args="> /var/run/amd.pid 2> /dev/null"
 		;;
 	esac
-	return 0
 }
 
 load_rc_config $name

Modified: projects/multi-fibv6/9/etc/rc.d/apm
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/apm	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/apm	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="apm"
-rcvar=`set_rcvar`
+rcvar="apm_enable"
 start_precmd="apm_precmd"
 command="/usr/sbin/${name}"
 start_cmd="${command} -e enable"

Modified: projects/multi-fibv6/9/etc/rc.d/apmd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/apmd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/apmd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="apmd"
-rcvar=`set_rcvar`
+rcvar="apmd_enable"
 command="/usr/sbin/${name}"
 start_precmd="apmd_prestart"
 
@@ -19,24 +19,18 @@ apmd_prestart()
 {
 	case `${SYSCTL_N} hw.machine_arch` in
 	i386)
-		# Enable apm if it is not already enabled
-		if ! checkyesno apm_enable  && \
-		    ! /etc/rc.d/apm forcestatus 1>/dev/null 2>&1
-		then
-			force_depend apm || return 1
-		fi
+		force_depend apm || return 1
 
 		# Warn user about acpi apm compatibility support which
 		# does not work with apmd.
 		if [ ! -e /dev/apmctl ]; then
-		    warn "/dev/apmctl not found; kernel is missing apm(4)"
+			warn "/dev/apmctl not found; kernel is missing apm(4)"
 		fi
 		;;
 	*)
 		return 1
 		;;
 	esac
-	return 0
 }
 
 load_rc_config $name

Modified: projects/multi-fibv6/9/etc/rc.d/bootparams
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/bootparams	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/bootparams	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="bootparamd"
-rcvar=`set_rcvar`
+rcvar="bootparamd_enable"
 required_files="/etc/bootparams"
 command="/usr/sbin/${name}"
 

Modified: projects/multi-fibv6/9/etc/rc.d/bsnmpd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/bsnmpd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/bsnmpd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,7 +10,7 @@
 . /etc/rc.subr
 
 name="bsnmpd"
-rcvar=`set_rcvar`
+rcvar="bsnmpd_enable"
 command="/usr/sbin/${name}"
 pidfile="/var/run/snmpd.pid"
 

Modified: projects/multi-fibv6/9/etc/rc.d/bthidd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/bthidd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/bthidd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,9 +11,9 @@
 . /etc/rc.subr
 
 name="bthidd"
+rcvar="bthidd_enable"
 command="/usr/sbin/${name}"
 pidfile="/var/run/${name}.pid"
-rcvar=`set_rcvar`
 start_precmd="bthidd_prestart"
 
 bthidd_prestart()

Modified: projects/multi-fibv6/9/etc/rc.d/cleanvar
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/cleanvar	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/cleanvar	Wed Feb 29 01:04:37 2012	(r232280)
@@ -9,7 +9,7 @@
 . /etc/rc.subr
 
 name="cleanvar"
-rcvar=`set_rcvar`
+rcvar="cleanvar_enable"
 
 start_precmd="${name}_prestart"
 start_cmd="${name}_start"

Modified: projects/multi-fibv6/9/etc/rc.d/cleartmp
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/cleartmp	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/cleartmp	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 
 name="cleartmp"
 # Disguise rcvar for the start method to run irrespective of its setting.
-rcvar1=`set_rcvar clear_tmp`
+rcvar1="clear_tmp_enable"
 start_cmd="${name}_start"
 stop_cmd=":"
 

Modified: projects/multi-fibv6/9/etc/rc.d/cron
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/cron	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/cron	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="cron"
-rcvar="`set_rcvar`"
+rcvar="cron_enable"
 command="/usr/sbin/${name}"
 pidfile="/var/run/${name}.pid"
 

Modified: projects/multi-fibv6/9/etc/rc.d/ddb
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ddb	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ddb	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="ddb"
-rcvar=`set_rcvar`
+rcvar="ddb_enable"
 command="/sbin/${name}"
 start_precmd="ddb_prestart"
 stop_cmd=":"

Modified: projects/multi-fibv6/9/etc/rc.d/devd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/devd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/devd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="devd"
-rcvar=`set_rcvar`
+rcvar="devd_enable"
 command="/sbin/${name}"
 
 start_precmd=${name}_prestart

Modified: projects/multi-fibv6/9/etc/rc.d/devfs
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/devfs	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/devfs	Wed Feb 29 01:04:37 2012	(r232280)
@@ -16,7 +16,8 @@ stop_cmd=':'
 
 devfs_start()
 {
-	if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ]; then
+	if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ] ||
+	    checkyesno devfs_load_rulesets; then
 		devfs_init_rulesets
 		if [ -n "$devfs_system_ruleset" ]; then
 			devfs_set_ruleset $devfs_system_ruleset /dev

Modified: projects/multi-fibv6/9/etc/rc.d/dhclient
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/dhclient	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/dhclient	Wed Feb 29 01:04:37 2012	(r232280)
@@ -22,7 +22,14 @@ stop_precmd="dhclient_pre_check"
 dhclient_pre_check()
 {
 	if [ -z "${rc_force}" ] && ! dhcpif $ifn; then
-		err 1 "'$ifn' is not a DHCP-enabled interface"
+		local msg
+		msg="'$ifn' is not a DHCP-enabled interface"
+		if [ -z "${rc_quiet}" ]; then
+			echo "$msg"
+		else
+			debug "$msg"
+		fi
+			exit 1
 	fi
 }
 

Modified: projects/multi-fibv6/9/etc/rc.d/dmesg
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/dmesg	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/dmesg	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="dmesg"
-rcvar=`set_rcvar`
+rcvar="dmesg_enable"
 dmesg_file="/var/run/dmesg.boot"
 start_cmd="do_dmesg"
 stop_cmd=":"

Modified: projects/multi-fibv6/9/etc/rc.d/ftp-proxy
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ftp-proxy	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ftp-proxy	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,7 +10,7 @@
 . /etc/rc.subr
 
 name="ftpproxy"
-rcvar=`set_rcvar`
+rcvar="ftpproxy_enable"
 command="/usr/sbin/ftp-proxy"
 
 load_rc_config $name

Modified: projects/multi-fibv6/9/etc/rc.d/ftpd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ftpd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ftpd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,7 +10,7 @@
 . /etc/rc.subr
 
 name="ftpd"
-rcvar=`set_rcvar`
+rcvar="ftpd_enable"
 command="/usr/libexec/${name}"
 pidfile="/var/run/${name}.pid"
 start_precmd=ftpd_prestart

Modified: projects/multi-fibv6/9/etc/rc.d/gptboot
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/gptboot	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/gptboot	Wed Feb 29 01:04:37 2012	(r232280)
@@ -34,7 +34,7 @@
 . /etc/rc.subr
 
 name="gptboot"
-rcvar=`set_rcvar`
+rcvar="gptboot_enable"
 start_cmd="gptboot_report"
 
 gptboot_report()

Modified: projects/multi-fibv6/9/etc/rc.d/hastd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/hastd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/hastd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="hastd"
-rcvar=`set_rcvar`
+rcvar="hastd_enable"
 pidfile="/var/run/${name}.pid"
 command="/sbin/${name}"
 hastctl="/sbin/hastctl"

Modified: projects/multi-fibv6/9/etc/rc.d/hcsecd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/hcsecd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/hcsecd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,9 +11,9 @@
 . /etc/rc.subr
 
 name="hcsecd"
+rcvar="hcsecd_enable"
 command="/usr/sbin/${name}"
 pidfile="/var/run/${name}.pid"
-rcvar=`set_rcvar`
 required_modules="ng_btsocket"
 
 load_rc_config $name

Modified: projects/multi-fibv6/9/etc/rc.d/hostapd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/hostapd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/hostapd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,8 +10,8 @@
 . /etc/rc.subr
 
 name="hostapd"
+rcvar="hostapd_enable"
 command="/usr/sbin/${name}"
-rcvar=`set_rcvar`
 
 conf_file="/etc/${name}.conf"
 pidfile="/var/run/${name}.pid"

Modified: projects/multi-fibv6/9/etc/rc.d/inetd
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/inetd	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/inetd	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,7 +10,7 @@
 . /etc/rc.subr
 
 name="inetd"
-rcvar=`set_rcvar`
+rcvar="inetd_enable"
 command="/usr/sbin/${name}"
 pidfile="/var/run/${name}.pid"
 required_files="/etc/${name}.conf"

Modified: projects/multi-fibv6/9/etc/rc.d/ip6addrctl
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ip6addrctl	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ip6addrctl	Wed Feb 29 01:04:37 2012	(r232280)
@@ -12,7 +12,7 @@
 . /etc/network.subr
 
 name="ip6addrctl"
-rcvar=`set_rcvar`
+rcvar="ip6addrctl_enable"
 start_cmd="ip6addrctl_start"
 stop_cmd="ip6addrctl_stop"
 extra_commands="status prefer_ipv6 prefer_ipv4"

Modified: projects/multi-fibv6/9/etc/rc.d/ipfilter
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ipfilter	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ipfilter	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,7 +10,7 @@
 . /etc/rc.subr
 
 name="ipfilter"
-rcvar=`set_rcvar`
+rcvar="ipfilter_enable"
 load_rc_config $name
 stop_precmd="test -f ${ipfilter_rules} -o -f ${ipv6_ipfilter_rules}"
 

Modified: projects/multi-fibv6/9/etc/rc.d/ipfs
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ipfs	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ipfs	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,7 +10,7 @@
 . /etc/rc.subr
 
 name="ipfs"
-rcvar=`set_rcvar`
+rcvar="ipfs_enable"
 start_cmd="ipfs_start"
 stop_cmd="ipfs_stop"
 start_precmd="ipfs_prestart"

Modified: projects/multi-fibv6/9/etc/rc.d/ipmon
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ipmon	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ipmon	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="ipmon"
-rcvar=`set_rcvar`
+rcvar="ipmon_enable"
 command="/sbin/${name}"
 start_precmd="ipmon_precmd"
 

Modified: projects/multi-fibv6/9/etc/rc.d/ipnat
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ipnat	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ipnat	Wed Feb 29 01:04:37 2012	(r232280)
@@ -10,7 +10,7 @@
 . /etc/rc.subr
 
 name="ipnat"
-rcvar=`set_rcvar`
+rcvar="ipnat_enable"
 load_rc_config $name
 start_cmd="ipnat_start"
 stop_cmd="${ipnat_program} -F -C"

Modified: projects/multi-fibv6/9/etc/rc.d/ipsec
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ipsec	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ipsec	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="ipsec"
-rcvar=`set_rcvar`
+rcvar="ipsec_enable"
 start_precmd="ipsec_prestart"
 start_cmd="ipsec_start"
 stop_precmd="test -f $ipsec_file"

Modified: projects/multi-fibv6/9/etc/rc.d/ipxrouted
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/ipxrouted	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/ipxrouted	Wed Feb 29 01:04:37 2012	(r232280)
@@ -11,7 +11,7 @@
 . /etc/rc.subr
 
 name="ipxrouted"
-rcvar=`set_rcvar`
+rcvar="ipxrouted_enable"
 command="/usr/sbin/IPXrouted"
 command_args="> /dev/null 2>&1"
 

Modified: projects/multi-fibv6/9/etc/rc.d/jail
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/jail	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/jail	Wed Feb 29 01:04:37 2012	(r232280)
@@ -17,7 +17,7 @@
 . /etc/rc.subr
 
 name="jail"
-rcvar=`set_rcvar`
+rcvar="jail_enable"
 
 start_precmd="jail_prestart"
 start_cmd="jail_start"

Modified: projects/multi-fibv6/9/etc/rc.d/keyserv
==============================================================================
--- projects/multi-fibv6/9/etc/rc.d/keyserv	Wed Feb 29 00:52:56 2012	(r232279)
+++ projects/multi-fibv6/9/etc/rc.d/keyserv	Wed Feb 29 01:04:37 2012	(r232280)
@@ -13,19 +13,13 @@
 . /etc/rc.subr
 
 name="keyserv"
-rcvar=`set_rcvar`
+rcvar="keyserv_enable"
 command="/usr/sbin/${name}"
 start_precmd="keyserv_prestart"
 
 keyserv_prestart()
 {
-	if ! checkyesno rpcbind_enable  && \
-		! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
-	then
-		force_depend rpcbind || return 1

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 01:32:10 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 992F31065670;
	Wed, 29 Feb 2012 01:32:10 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 849878FC19;
	Wed, 29 Feb 2012 01:32:10 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1T1WAnE001174;
	Wed, 29 Feb 2012 01:32:10 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1T1WA25001172;
	Wed, 29 Feb 2012 01:32:10 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202290132.q1T1WA25001172@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Wed, 29 Feb 2012 01:32:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232281 - projects/armv6/sys/dev/ofw
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 01:32:10 -0000

Author: dmarion
Date: Wed Feb 29 01:32:09 2012
New Revision: 232281
URL: http://svn.freebsd.org/changeset/base/232281

Log:
  Fix byte order.
  
  Approved by:  cognet (mentor)

Modified:
  projects/armv6/sys/dev/ofw/ofw_iicbus.c

Modified: projects/armv6/sys/dev/ofw/ofw_iicbus.c
==============================================================================
--- projects/armv6/sys/dev/ofw/ofw_iicbus.c	Wed Feb 29 01:04:37 2012	(r232280)
+++ projects/armv6/sys/dev/ofw/ofw_iicbus.c	Wed Feb 29 01:32:09 2012	(r232281)
@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/module.h>
 #include <sys/mutex.h>
 
+#include <dev/fdt/fdt_common.h>
 #include <dev/iicbus/iicbus.h>
 #include <dev/iicbus/iiconf.h>
 #include <dev/ofw/ofw_bus.h>
@@ -101,6 +102,7 @@ ofw_iicbus_attach(device_t dev)
 	struct iicbus_softc *sc = IICBUS_SOFTC(dev);
 	struct ofw_iicbus_devinfo *dinfo;
 	phandle_t child;
+	pcell_t paddr;
 	device_t childdev;
 	uint32_t addr;
 
@@ -121,10 +123,11 @@ ofw_iicbus_attach(device_t dev)
 		 * property, then try the reg property.  It moves around
 		 * on different systems.
 		 */
-		if (OF_getprop(child, "i2c-address", &addr, sizeof(addr)) == -1)
-			if (OF_getprop(child, "reg", &addr, sizeof(addr)) == -1)
+		if (OF_getprop(child, "i2c-address", &paddr, sizeof(paddr)) == -1)
+			if (OF_getprop(child, "reg", &paddr, sizeof(paddr)) == -1)
 				continue;
 
+		addr = fdt32_to_cpu(paddr);
 		/*
 		 * Now set up the I2C and OFW bus layer devinfo and add it
 		 * to the bus.

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 01:35:22 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1D6271065697;
	Wed, 29 Feb 2012 01:35:22 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E39D98FC0C;
	Wed, 29 Feb 2012 01:35:21 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1T1ZLPN001314;
	Wed, 29 Feb 2012 01:35:21 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1T1ZLjX001311;
	Wed, 29 Feb 2012 01:35:21 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202290135.q1T1ZLjX001311@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Wed, 29 Feb 2012 01:35:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232282 - in projects/armv6/sys/arm/ti: . am335x
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 01:35:22 -0000

Author: dmarion
Date: Wed Feb 29 01:35:21 2012
New Revision: 232282
URL: http://svn.freebsd.org/changeset/base/232282

Log:
  Probe i2c devices based on FDT data.
  Patch provided by gonzo.
  
  Approved by:  cognet (mentor)

Modified:
  projects/armv6/sys/arm/ti/am335x/files.am335x
  projects/armv6/sys/arm/ti/ti_i2c.c

Modified: projects/armv6/sys/arm/ti/am335x/files.am335x
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/files.am335x	Wed Feb 29 01:32:09 2012	(r232281)
+++ projects/armv6/sys/arm/ti/am335x/files.am335x	Wed Feb 29 01:35:21 2012	(r232282)
@@ -23,4 +23,6 @@ arm/ti/am335x/am335x_dmtimer.c		standard
 arm/ti/am335x/if_cpsw.c				standard
 arm/ti/am335x/am335x_scm_padconf.c	standard
 
+dev/ofw/ofw_iicbus.c				optional iicbus
+
 dev/uart/uart_dev_ns8250.c			optional	uart

Modified: projects/armv6/sys/arm/ti/ti_i2c.c
==============================================================================
--- projects/armv6/sys/arm/ti/ti_i2c.c	Wed Feb 29 01:32:09 2012	(r232281)
+++ projects/armv6/sys/arm/ti/ti_i2c.c	Wed Feb 29 01:35:21 2012	(r232282)
@@ -154,6 +154,9 @@ static int ti_i2c_attach(device_t dev);
 static int ti_i2c_detach(device_t dev);
 static void ti_i2c_intr(void *);
 
+/* OFW routine */
+static phandle_t ti_i2c_get_node(device_t bus, device_t dev);
+
 /* helper routines */
 static int ti_i2c_activate(device_t dev);
 static void ti_i2c_deactivate(device_t dev);
@@ -1137,12 +1140,25 @@ ti_i2c_detach(device_t dev)
 	return (0);
 }
 
+
+static phandle_t
+ti_i2c_get_node(device_t bus, device_t dev)
+{
+	/* 
+	 * Share controller node with iibus device
+	 */
+	return ofw_bus_get_node(bus);
+}
+
 static device_method_t ti_i2c_methods[] = {
 	/* Device interface */
 	DEVMETHOD(device_probe,		ti_i2c_probe),
 	DEVMETHOD(device_attach,	ti_i2c_attach),
 	DEVMETHOD(device_detach,	ti_i2c_detach),
 
+	/* OFW methods */
+	DEVMETHOD(ofw_bus_get_node,	ti_i2c_get_node),
+
 	/* iicbus interface */
 	DEVMETHOD(iicbus_callback,	ti_i2c_callback),
 	DEVMETHOD(iicbus_reset,		ti_i2c_reset),
@@ -1151,7 +1167,7 @@ static device_method_t ti_i2c_methods[] 
 };
 
 static driver_t ti_i2c_driver = {
-	"ti_iic",
+	"iichb",
 	ti_i2c_methods,
 	sizeof(struct ti_i2c_softc),
 };

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 01:38:37 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 695AC1065670;
	Wed, 29 Feb 2012 01:38:37 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 49E5B8FC1B;
	Wed, 29 Feb 2012 01:38:37 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1T1cb8O001496;
	Wed, 29 Feb 2012 01:38:37 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1T1cb6F001494;
	Wed, 29 Feb 2012 01:38:37 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202290138.q1T1cb6F001494@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Wed, 29 Feb 2012 01:38:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232284 - projects/armv6/sys/arm/ti/am335x
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 01:38:37 -0000

Author: dmarion
Date: Wed Feb 29 01:38:36 2012
New Revision: 232284
URL: http://svn.freebsd.org/changeset/base/232284

Log:
  am335x_pmic driver should be probed based on FDT data.
  
  Approved by:	cognet (mentor)

Modified:
  projects/armv6/sys/arm/ti/am335x/am335x_pmic.c

Modified: projects/armv6/sys/arm/ti/am335x/am335x_pmic.c
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/am335x_pmic.c	Wed Feb 29 01:36:00 2012	(r232283)
+++ projects/armv6/sys/arm/ti/am335x/am335x_pmic.c	Wed Feb 29 01:38:36 2012	(r232284)
@@ -44,18 +44,20 @@ __FBSDID("$FreeBSD$");
 
 #include <dev/ofw/openfirm.h>
 #include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
 
 #include "iicbus_if.h"
 
 #define TPS65217A		0x7
 #define TPS65217B		0xF
 
-#define TPS65217_IIC_ADDR	0x24
-
 /* TPS65217 Reisters */
 #define TPS65217_CHIPID_REG	0x00
 #define TPS65217_STATUS_REG	0x0A
 
+#define MAX_IIC_DATA_SIZE	2
+
+
 struct am335x_pmic_softc {
 	device_t		sc_dev;
 	uint32_t		sc_addr;
@@ -65,28 +67,39 @@ struct am335x_pmic_softc {
 static int
 am335x_pmic_read(device_t dev, uint8_t addr, uint8_t *data, uint8_t size)
 {
+	struct am335x_pmic_softc *sc = device_get_softc(dev);
 	struct iic_msg msg[] = {
-		{ TPS65217_IIC_ADDR, IIC_M_WR, 1, &addr },
-		{ TPS65217_IIC_ADDR, IIC_M_RD, size, data },
+		{ sc->sc_addr, IIC_M_WR, 1, &addr },
+		{ sc->sc_addr, IIC_M_RD, size, data },
 	};
 	return (iicbus_transfer(dev, msg, 2));
 }
 
-static void
-am335x_pmic_identify(driver_t *driver, device_t parent)
+static int
+am335x_pmic_write(device_t dev, uint8_t address, uint8_t *data, uint8_t size)
 {
-        BUS_ADD_CHILD(parent, 0, "am335x_pmic", 0);
+	uint8_t buffer[MAX_IIC_DATA_SIZE + 1];
+	struct am335x_pmic_softc *sc = device_get_softc(dev);
+	struct iic_msg msg[] = {
+		{ sc->sc_addr, IIC_M_WR, size + 1, buffer },
+	};
+
+	if (size > MAX_IIC_DATA_SIZE)
+		return (ENOMEM);
+
+	buffer[0] = address;
+	memcpy(buffer + 1, data, size);
+
+	return (iicbus_transfer(dev, msg, 1));
 }
 
 static int
 am335x_pmic_probe(device_t dev)
 {
 	struct am335x_pmic_softc *sc;
-	int error;
-	const char  *name, *compatible;
 
-	name = ofw_bus_get_name(dev);
-	compatible = ofw_bus_get_compat(dev);
+	if (!ofw_bus_is_compatible(dev, "ti,am335x-pmic"))
+		return (ENXIO);
 
 	sc = device_get_softc(dev);
 	sc->sc_dev = dev;
@@ -94,7 +107,7 @@ am335x_pmic_probe(device_t dev)
 
 	device_set_desc(dev, "TI TPS65217 Power Management IC");
 
-	return (BUS_PROBE_NOWILDCARD);
+	return (0);
 }
 
 static void
@@ -103,7 +116,7 @@ am335x_pmic_start(void *xdev)
 	struct am335x_pmic_softc *sc;
 	device_t dev = (device_t)xdev;
 	uint8_t reg;
-	char name[16];
+	char name[20];
 	char pwr[4][11] = {"Unknown", "USB", "AC", "USB and AC"};
 
 	sc = device_get_softc(dev);
@@ -143,7 +156,6 @@ am335x_pmic_attach(device_t dev)
 }
 
 static device_method_t am335x_pmic_methods[] = {
-	DEVMETHOD(device_identify,	am335x_pmic_identify),
 	DEVMETHOD(device_probe,		am335x_pmic_probe),
 	DEVMETHOD(device_attach,	am335x_pmic_attach),
 	{0, 0},

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 02:04:42 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DBE4D106566B;
	Wed, 29 Feb 2012 02:04:41 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C637C8FC14;
	Wed, 29 Feb 2012 02:04:41 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1T24fHj002433;
	Wed, 29 Feb 2012 02:04:41 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1T24fQv002428;
	Wed, 29 Feb 2012 02:04:41 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202290204.q1T24fQv002428@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Wed, 29 Feb 2012 02:04:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232287 - in projects/armv6/sys/arm/ti: . am335x omap4
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 02:04:42 -0000

Author: dmarion
Date: Wed Feb 29 02:04:41 2012
New Revision: 232287
URL: http://svn.freebsd.org/changeset/base/232287

Log:
  Use files.ti for common code between TI platforms.
  
  Approved by:	cognet (mentor)

Added:
  projects/armv6/sys/arm/ti/files.ti
Modified:
  projects/armv6/sys/arm/ti/am335x/files.am335x
  projects/armv6/sys/arm/ti/omap4/files.omap4
  projects/armv6/sys/arm/ti/std.ti

Modified: projects/armv6/sys/arm/ti/am335x/files.am335x
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/files.am335x	Wed Feb 29 02:01:48 2012	(r232286)
+++ projects/armv6/sys/arm/ti/am335x/files.am335x	Wed Feb 29 02:04:41 2012	(r232287)
@@ -1,28 +1,6 @@
 #$FreeBSD$
 
-kern/kern_clocksource.c				standard
-
-arm/arm/bus_space_generic.c			standard
-arm/arm/bus_space_asm_generic.S		standard
-arm/arm/cpufunc_asm_armv5.S			standard
-arm/arm/cpufunc_asm_arm10.S			standard
-arm/arm/cpufunc_asm_arm11.S			standard
-arm/arm/cpufunc_asm_armv7.S			standard
-arm/arm/irq_dispatch.S				standard
-
-arm/ti/ti_machdep.c					standard
-arm/ti/aintc.c						standard
-arm/ti/ti_scm.c						standard
-arm/ti/common.c						standard
-arm/ti/bus_space.c					standard
-arm/ti/ti_prcm.c					standard
-arm/ti/ti_i2c.c						optional	ti_i2c
-
-arm/ti/am335x/am335x_prcm.c			standard
+arm/ti/aintc.c				standard
+arm/ti/am335x/am335x_prcm.c		standard
 arm/ti/am335x/am335x_dmtimer.c		standard
-arm/ti/am335x/if_cpsw.c				standard
 arm/ti/am335x/am335x_scm_padconf.c	standard
-
-dev/ofw/ofw_iicbus.c				optional iicbus
-
-dev/uart/uart_dev_ns8250.c			optional	uart

Added: projects/armv6/sys/arm/ti/files.ti
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/armv6/sys/arm/ti/files.ti	Wed Feb 29 02:04:41 2012	(r232287)
@@ -0,0 +1,24 @@
+#$FreeBSD$
+
+kern/kern_clocksource.c				standard
+
+arm/arm/bus_space_generic.c			standard
+arm/arm/bus_space_asm_generic.S			standard
+arm/arm/cpufunc_asm_armv5.S			standard
+arm/arm/cpufunc_asm_arm10.S			standard
+arm/arm/cpufunc_asm_arm11.S			standard
+arm/arm/cpufunc_asm_armv7.S			standard
+arm/arm/irq_dispatch.S				standard
+
+arm/ti/bus_space.c				standard
+arm/ti/common.c					standard
+arm/ti/ti_cpuid.c				standard
+arm/ti/ti_machdep.c				standard
+arm/ti/ti_prcm.c				standard
+arm/ti/ti_scm.c					standard
+
+arm/ti/ti_i2c.c					optional	ti_i2c
+dev/ofw/ofw_iicbus.c				optional	iicbus
+
+dev/uart/uart_dev_ns8250.c			optional	uart
+

Modified: projects/armv6/sys/arm/ti/omap4/files.omap4
==============================================================================
--- projects/armv6/sys/arm/ti/omap4/files.omap4	Wed Feb 29 02:01:48 2012	(r232286)
+++ projects/armv6/sys/arm/ti/omap4/files.omap4	Wed Feb 29 02:04:41 2012	(r232287)
@@ -1,29 +1,12 @@
 #$FreeBSD$
 
-kern/kern_clocksource.c				standard
-
-arm/arm/bus_space_generic.c			standard
-arm/arm/bus_space_asm_generic.S			standard
-arm/arm/cpufunc_asm_armv5.S			standard
-arm/arm/cpufunc_asm_arm10.S			standard
-arm/arm/cpufunc_asm_arm11.S			standard
-arm/arm/cpufunc_asm_armv7.S			standard
-arm/arm/irq_dispatch.S				standard
-
-arm/ti/bus_space.c				standard
-arm/ti/common.c					standard
 arm/ti/gic.c					standard
 arm/ti/mp_timer.c				standard
-arm/ti/ti_prcm.c				standard
-arm/ti/ti_scm.c					standard
-arm/ti/ti_cpuid.c				standard
-arm/ti/ti_machdep.c				standard
 arm/ti/ti_smc.S					standard
 
 arm/ti/omap_gpio.c				optional	gpio
 arm/ti/usb/omap_ehci.c				optional	usb ehci
 arm/ti/omap_dma.c				optional	omap_dma
-arm/ti/ti_i2c.c					optional	ti_i2c
 arm/ti/omap_mmc.c				optional	mmc
 
 arm/ti/omap4/omap4_l2cache.c			optional	pl310
@@ -32,5 +15,3 @@ arm/ti/omap4/omap4_scm_padconf.c		standa
 
 arm/ti/twl/twl.c				optional	twl
 arm/ti/twl/twl_vreg.c				optional	twl twl_vreg
-
-dev/uart/uart_dev_ns8250.c			optional	uart

Modified: projects/armv6/sys/arm/ti/std.ti
==============================================================================
--- projects/armv6/sys/arm/ti/std.ti	Wed Feb 29 02:01:48 2012	(r232286)
+++ projects/armv6/sys/arm/ti/std.ti	Wed Feb 29 02:04:41 2012	(r232287)
@@ -4,3 +4,5 @@
 # makeoptions	CONF_CFLAGS=-march=armv6
 
 cpu 		CPU_CORTEXA
+
+files		"../ti/files.ti"

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 09:52:36 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4DBD4106566C;
	Wed, 29 Feb 2012 09:52:36 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 338888FC12;
	Wed, 29 Feb 2012 09:52:36 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1T9qaYA019522;
	Wed, 29 Feb 2012 09:52:36 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1T9qZwB019485;
	Wed, 29 Feb 2012 09:52:35 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <201202290952.q1T9qZwB019485@svn.freebsd.org>
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Date: Wed, 29 Feb 2012 09:52:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232293 - in projects/multi-fibv6/8: etc/defaults
	etc/rc.d lib/libc/locale lib/libpmc
	release/doc/en_US.ISO8859-1/hardware release/doc/share/misc
	release/picobsd/floppy.tree/sbin share/...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 09:52:36 -0000

Author: bz
Date: Wed Feb 29 09:52:35 2012
New Revision: 232293
URL: http://svn.freebsd.org/changeset/base/232293

Log:
  IF stable/8 @r232292
  
  Sponsored by:	Cisco Systems, Inc.

Added:
  projects/multi-fibv6/8/share/man/man4/oce.4
     - copied unchanged from r232292, stable/8/share/man/man4/oce.4
     - copied unchanged from r232292, stable/8/sys/i386/conf/XENHVM
Directory Properties:
  projects/multi-fibv6/8/sys/i386/conf/XENHVM   (props changed)
Modified:
  projects/multi-fibv6/8/etc/defaults/rc.conf
  projects/multi-fibv6/8/etc/rc.d/nfsd
  projects/multi-fibv6/8/lib/libc/locale/btowc.3
  projects/multi-fibv6/8/lib/libpmc/pmc.3
  projects/multi-fibv6/8/lib/libpmc/pmc.atom.3
  projects/multi-fibv6/8/lib/libpmc/pmc.core.3
  projects/multi-fibv6/8/lib/libpmc/pmc.core2.3
  projects/multi-fibv6/8/lib/libpmc/pmc.corei7.3
  projects/multi-fibv6/8/lib/libpmc/pmc.corei7uc.3
  projects/multi-fibv6/8/lib/libpmc/pmc.iaf.3
  projects/multi-fibv6/8/lib/libpmc/pmc.k7.3
  projects/multi-fibv6/8/lib/libpmc/pmc.k8.3
  projects/multi-fibv6/8/lib/libpmc/pmc.p4.3
  projects/multi-fibv6/8/lib/libpmc/pmc.p5.3
  projects/multi-fibv6/8/lib/libpmc/pmc.p6.3
  projects/multi-fibv6/8/lib/libpmc/pmc.tsc.3
  projects/multi-fibv6/8/lib/libpmc/pmc.ucf.3
  projects/multi-fibv6/8/lib/libpmc/pmc.westmere.3
  projects/multi-fibv6/8/lib/libpmc/pmc.westmereuc.3
  projects/multi-fibv6/8/lib/libpmc/pmc_allocate.3
  projects/multi-fibv6/8/lib/libpmc/pmc_attach.3
  projects/multi-fibv6/8/lib/libpmc/pmc_capabilities.3
  projects/multi-fibv6/8/lib/libpmc/pmc_configure_logfile.3
  projects/multi-fibv6/8/lib/libpmc/pmc_disable.3
  projects/multi-fibv6/8/lib/libpmc/pmc_event_names_of_class.3
  projects/multi-fibv6/8/lib/libpmc/pmc_get_driver_stats.3
  projects/multi-fibv6/8/lib/libpmc/pmc_get_msr.3
  projects/multi-fibv6/8/lib/libpmc/pmc_init.3
  projects/multi-fibv6/8/lib/libpmc/pmc_name_of_capability.3
  projects/multi-fibv6/8/lib/libpmc/pmc_read.3
  projects/multi-fibv6/8/lib/libpmc/pmc_set.3
  projects/multi-fibv6/8/lib/libpmc/pmc_start.3
  projects/multi-fibv6/8/lib/libpmc/pmclog.3
  projects/multi-fibv6/8/release/doc/en_US.ISO8859-1/hardware/article.sgml
  projects/multi-fibv6/8/release/doc/share/misc/dev.archlist.txt
  projects/multi-fibv6/8/share/man/man4/Makefile
  projects/multi-fibv6/8/share/man/man4/isci.4
  projects/multi-fibv6/8/share/man/man4/wlan.4
  projects/multi-fibv6/8/sys/dev/isp/isp_freebsd.h
  projects/multi-fibv6/8/sys/dev/mii/brgphy.c
  projects/multi-fibv6/8/sys/dev/mii/miidevs
  projects/multi-fibv6/8/sys/dev/mii/nsphyter.c
  projects/multi-fibv6/8/sys/dev/mps/mps_sas.c
  projects/multi-fibv6/8/sys/dev/pci/pci.c
  projects/multi-fibv6/8/sys/dev/re/if_re.c
  projects/multi-fibv6/8/sys/fs/nfsclient/nfs_clvnops.c
  projects/multi-fibv6/8/sys/geom/journal/g_journal.c
  projects/multi-fibv6/8/sys/gnu/fs/ext2fs/ext2_inode.c
  projects/multi-fibv6/8/sys/kern/vfs_cluster.c
  projects/multi-fibv6/8/sys/kern/vfs_subr.c
  projects/multi-fibv6/8/sys/kern/vfs_syscalls.c
  projects/multi-fibv6/8/sys/net/flowtable.c
  projects/multi-fibv6/8/sys/net/if_llatbl.c
  projects/multi-fibv6/8/sys/netinet/ipfw/ip_fw_nat.c
  projects/multi-fibv6/8/sys/netinet/sctp_output.c
  projects/multi-fibv6/8/sys/nfsclient/nfs_vnops.c
  projects/multi-fibv6/8/sys/sys/proc.h
  projects/multi-fibv6/8/sys/sys/vnode.h
  projects/multi-fibv6/8/sys/ufs/ffs/ffs_vfsops.c
  projects/multi-fibv6/8/sys/ufs/ufs/inode.h
  projects/multi-fibv6/8/sys/ufs/ufs/ufs_acl.c
  projects/multi-fibv6/8/sys/ufs/ufs/ufs_vnops.c
Directory Properties:
  projects/multi-fibv6/8/   (props changed)
  projects/multi-fibv6/8/etc/   (props changed)
  projects/multi-fibv6/8/lib/   (props changed)
  projects/multi-fibv6/8/lib/libc/   (props changed)
  projects/multi-fibv6/8/lib/libpmc/   (props changed)
  projects/multi-fibv6/8/release/   (props changed)
  projects/multi-fibv6/8/release/doc/en_US.ISO8859-1/hardware/   (props changed)
  projects/multi-fibv6/8/release/picobsd/   (props changed)
  projects/multi-fibv6/8/release/picobsd/floppy.tree/sbin/   (props changed)
  projects/multi-fibv6/8/release/picobsd/floppy.tree/sbin/dhclient-script   (props changed)
  projects/multi-fibv6/8/release/picobsd/qemu/   (props changed)
  projects/multi-fibv6/8/release/picobsd/tinyware/login/   (props changed)
  projects/multi-fibv6/8/release/picobsd/tinyware/passwd/   (props changed)
  projects/multi-fibv6/8/release/powerpc/   (props changed)
  projects/multi-fibv6/8/share/   (props changed)
  projects/multi-fibv6/8/share/man/   (props changed)
  projects/multi-fibv6/8/share/man/man4/   (props changed)
  projects/multi-fibv6/8/sys/   (props changed)
  projects/multi-fibv6/8/sys/amd64/include/xen/   (props changed)
  projects/multi-fibv6/8/sys/boot/   (props changed)
  projects/multi-fibv6/8/sys/cddl/contrib/opensolaris/   (props changed)
  projects/multi-fibv6/8/sys/contrib/dev/acpica/   (props changed)
  projects/multi-fibv6/8/sys/contrib/pf/   (props changed)
  projects/multi-fibv6/8/sys/dev/e1000/   (props changed)

Modified: projects/multi-fibv6/8/etc/defaults/rc.conf
==============================================================================
--- projects/multi-fibv6/8/etc/defaults/rc.conf	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/etc/defaults/rc.conf	Wed Feb 29 09:52:35 2012	(r232293)
@@ -24,7 +24,7 @@
 rc_debug="NO"		# Set to YES to enable debugging output from rc.d
 rc_info="NO"		# Enables display of informational messages at boot.
 rc_startmsgs="YES" 	# Show "Starting foo:" messages at boot
-rcshutdown_timeout="30" # Seconds to wait before terminating rc.shutdown
+rcshutdown_timeout="90" # Seconds to wait before terminating rc.shutdown
 early_late_divider="FILESYSTEMS"	# Script that separates early/late
 			# stages of the boot process.  Make sure you know
 			# the ramifications if you change this.

Modified: projects/multi-fibv6/8/etc/rc.d/nfsd
==============================================================================
--- projects/multi-fibv6/8/etc/rc.d/nfsd	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/etc/rc.d/nfsd	Wed Feb 29 09:52:35 2012	(r232293)
@@ -25,11 +25,7 @@ nfsd_precmd()
 		#
 		rc_flags="-e ${nfs_server_flags}"
 
-		if ! checkyesno nfsuserd_enable  && \
-		    ! /etc/rc.d/nfsuserd forcestatus 1>/dev/null 2>&1
-		then
-			force_depend nfsuserd || return 1
-		fi
+		force_depend nfsuserd || return 1
 	else
 		rc_flags="${nfs_server_flags}"
 

Modified: projects/multi-fibv6/8/lib/libc/locale/btowc.3
==============================================================================
--- projects/multi-fibv6/8/lib/libc/locale/btowc.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libc/locale/btowc.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd August 3, 2002
+.Dd February 13, 2012
 .Dt BTOWC 3
 .Os
 .Sh NAME
@@ -58,7 +58,7 @@ If the wide character is
 or not able to be represented as a single byte in the initial shift state,
 .Fn wctob
 returns
-.Dv WEOF .
+.Dv EOF .
 .Sh SEE ALSO
 .Xr mbrtowc 3 ,
 .Xr multibyte 3 ,

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.atom.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.atom.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.atom.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.core.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.core.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.core.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.core2.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.core2.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.core2.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.corei7.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.corei7.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.corei7.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.corei7uc.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.corei7uc.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.corei7uc.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.iaf.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.iaf.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.iaf.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.k7.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.k7.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.k7.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.k8.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.k8.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.k8.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.p4.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.p4.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.p4.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.p5.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.p5.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.p5.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.p6.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.p6.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.p6.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.tsc.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.tsc.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.tsc.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.ucf.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.ucf.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.ucf.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.westmere.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.westmere.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.westmere.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc.westmereuc.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc.westmereuc.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc.westmereuc.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_allocate.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_allocate.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_allocate.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_attach.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_attach.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_attach.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_capabilities.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_capabilities.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_capabilities.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_configure_logfile.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_configure_logfile.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_configure_logfile.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_disable.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_disable.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_disable.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_event_names_of_class.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_event_names_of_class.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_event_names_of_class.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_get_driver_stats.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_get_driver_stats.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_get_driver_stats.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_get_msr.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_get_msr.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_get_msr.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_init.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_init.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_init.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_name_of_capability.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_name_of_capability.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_name_of_capability.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_read.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_read.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_read.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_set.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_set.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_set.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmc_start.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmc_start.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmc_start.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/lib/libpmc/pmclog.3
==============================================================================
--- projects/multi-fibv6/8/lib/libpmc/pmclog.3	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/lib/libpmc/pmclog.3	Wed Feb 29 09:52:35 2012	(r232293)
@@ -9,17 +9,17 @@
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
 .\"
-.\" This software is provided by Joseph Koshy ``as is'' and
-.\" any express or implied warranties, including, but not limited to, the
-.\" implied warranties of merchantability and fitness for a particular purpose
-.\" are disclaimed.  in no event shall Joseph Koshy be liable
-.\" for any direct, indirect, incidental, special, exemplary, or consequential
-.\" damages (including, but not limited to, procurement of substitute goods
-.\" or services; loss of use, data, or profits; or business interruption)
-.\" however caused and on any theory of liability, whether in contract, strict
-.\" liability, or tort (including negligence or otherwise) arising in any way
-.\" out of the use of this software, even if advised of the possibility of
-.\" such damage.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
 .\"

Modified: projects/multi-fibv6/8/release/doc/en_US.ISO8859-1/hardware/article.sgml
==============================================================================
--- projects/multi-fibv6/8/release/doc/en_US.ISO8859-1/hardware/article.sgml	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/release/doc/en_US.ISO8859-1/hardware/article.sgml	Wed Feb 29 09:52:35 2012	(r232293)
@@ -737,6 +737,8 @@
 
       &hwlist.ips;
 
+      &hwlist.isci;
+
       &hwlist.isp;
 
       &hwlist.mfi;
@@ -900,6 +902,8 @@
 
       &hwlist.nxge;
 
+      &hwlist.oce;
+
       &hwlist.pcn;
 
       &hwlist.re;

Modified: projects/multi-fibv6/8/release/doc/share/misc/dev.archlist.txt
==============================================================================
--- projects/multi-fibv6/8/release/doc/share/misc/dev.archlist.txt	Wed Feb 29 09:47:26 2012	(r232292)
+++ projects/multi-fibv6/8/release/doc/share/misc/dev.archlist.txt	Wed Feb 29 09:52:35 2012	(r232293)
@@ -80,6 +80,7 @@ ida	i386
 ie	i386

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 14:50:17 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D62881065673;
	Wed, 29 Feb 2012 14:50:17 +0000 (UTC)
	(envelope-from glebius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BFB058FC0A;
	Wed, 29 Feb 2012 14:50:17 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1TEoHGP031428;
	Wed, 29 Feb 2012 14:50:17 GMT (envelope-from glebius@svn.freebsd.org)
Received: (from glebius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1TEoHIa031422;
	Wed, 29 Feb 2012 14:50:17 GMT (envelope-from glebius@svn.freebsd.org)
Message-Id: <201202291450.q1TEoHIa031422@svn.freebsd.org>
From: Gleb Smirnoff <glebius@FreeBSD.org>
Date: Wed, 29 Feb 2012 14:50:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232298 - projects/pf/head/sys/contrib/pf/net
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 14:50:17 -0000

Author: glebius
Date: Wed Feb 29 14:50:17 2012
New Revision: 232298
URL: http://svn.freebsd.org/changeset/base/232298

Log:
  Make local functions static. Not only a perfectionism, but also
  improves readability and understanding of code.

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pflog.c
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c
  projects/pf/head/sys/contrib/pf/net/if_pfsync.h
  projects/pf/head/sys/contrib/pf/net/pf.c
  projects/pf/head/sys/contrib/pf/net/pf_if.c
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
  projects/pf/head/sys/contrib/pf/net/pf_lb.c
  projects/pf/head/sys/contrib/pf/net/pf_norm.c
  projects/pf/head/sys/contrib/pf/net/pf_osfp.c
  projects/pf/head/sys/contrib/pf/net/pf_ruleset.c
  projects/pf/head/sys/contrib/pf/net/pf_table.c
  projects/pf/head/sys/contrib/pf/net/pfvar.h

Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pflog.c	Wed Feb 29 14:44:42 2012	(r232297)
+++ projects/pf/head/sys/contrib/pf/net/if_pflog.c	Wed Feb 29 14:50:17 2012	(r232298)
@@ -100,20 +100,20 @@ __FBSDID("$FreeBSD$");
 #define DPRINTF(x)
 #endif
 
-void	pflogattach(int);
-int	pflogoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
-	    struct route *);
-int	pflogioctl(struct ifnet *, u_long, caddr_t);
-void	pflogstart(struct ifnet *);
-static int pflog_clone_create(struct if_clone *, int, caddr_t);
-static void pflog_clone_destroy(struct ifnet *);
+static int	pflogoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
+		    struct route *);
+static void	pflogattach(int);
+static int	pflogioctl(struct ifnet *, u_long, caddr_t);
+static void	pflogstart(struct ifnet *);
+static int	pflog_clone_create(struct if_clone *, int, caddr_t);
+static void	pflog_clone_destroy(struct ifnet *);
 
 LIST_HEAD(, pflog_softc)	pflogif_list;
 IFC_SIMPLE_DECLARE(pflog, 1);
 
 struct ifnet	*pflogifs[PFLOGIFS_MAX];	/* for fast access */
 
-void
+static void
 pflogattach(int npflog)
 {
 	int	i;
@@ -186,7 +186,7 @@ pflog_clone_destroy(struct ifnet *ifp)
 /*
  * Start output on the pflog interface.
  */
-void
+static void
 pflogstart(struct ifnet *ifp)
 {
 	struct mbuf *m;
@@ -204,7 +204,7 @@ pflogstart(struct ifnet *ifp)
 	}
 }
 
-int
+static int
 pflogoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
 	struct route *rt)
 {
@@ -213,7 +213,7 @@ pflogoutput(struct ifnet *ifp, struct mb
 }
 
 /* ARGSUSED */
-int
+static int
 pflogioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	switch (cmd) {
@@ -230,7 +230,7 @@ pflogioctl(struct ifnet *ifp, u_long cmd
 	return (0);
 }
 
-int
+static int
 pflog_packet(struct pfi_kif *kif, struct mbuf *m, sa_family_t af, u_int8_t dir,
     u_int8_t reason, struct pf_rule *rm, struct pf_rule *am,
     struct pf_ruleset *ruleset, struct pf_pdesc *pd)

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Wed Feb 29 14:44:42 2012	(r232297)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Wed Feb 29 14:50:17 2012	(r232298)
@@ -122,26 +122,22 @@ struct pfsync_pkt {
 	u_int8_t flags;
 };
 
-int	pfsync_input_hmac(struct mbuf *, int);
+static int	pfsync_upd_tcp(struct pf_state *, struct pfsync_state_peer *,
+		    struct pfsync_state_peer *);
+static int	pfsync_in_clr(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_ins(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_iack(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_upd(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_upd_c(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_ureq(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_del(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_del_c(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_bus(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_tdb(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_eof(struct pfsync_pkt *, struct mbuf *, int, int);
+static int	pfsync_in_error(struct pfsync_pkt *, struct mbuf *, int, int);
 
-int	pfsync_upd_tcp(struct pf_state *, struct pfsync_state_peer *,
-	    struct pfsync_state_peer *);
-
-int	pfsync_in_clr(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_ins(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_iack(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_upd(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_upd_c(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_ureq(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_del(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_del_c(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_bus(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_tdb(struct pfsync_pkt *, struct mbuf *, int, int);
-int	pfsync_in_eof(struct pfsync_pkt *, struct mbuf *, int, int);
-
-int	pfsync_in_error(struct pfsync_pkt *, struct mbuf *, int, int);
-
-int	(*pfsync_acts[])(struct pfsync_pkt *, struct mbuf *, int, int) = {
+static int (*pfsync_acts[])(struct pfsync_pkt *, struct mbuf *, int, int) = {
 	pfsync_in_clr,			/* PFSYNC_ACT_CLR */
 	pfsync_in_ins,			/* PFSYNC_ACT_INS */
 	pfsync_in_iack,			/* PFSYNC_ACT_INS_ACK */
@@ -164,12 +160,12 @@ struct pfsync_q {
 };
 
 /* we have one of these for every PFSYNC_S_ */
-int	pfsync_out_state(struct pf_state *, struct mbuf *, int);
-int	pfsync_out_iack(struct pf_state *, struct mbuf *, int);
-int	pfsync_out_upd_c(struct pf_state *, struct mbuf *, int);
-int	pfsync_out_del(struct pf_state *, struct mbuf *, int);
+static int	pfsync_out_state(struct pf_state *, struct mbuf *, int);
+static int	pfsync_out_iack(struct pf_state *, struct mbuf *, int);
+static int	pfsync_out_upd_c(struct pf_state *, struct mbuf *, int);
+static int	pfsync_out_del(struct pf_state *, struct mbuf *, int);
 
-struct pfsync_q pfsync_qs[] = {
+static struct pfsync_q pfsync_qs[] = {
 	{ pfsync_out_state, sizeof(struct pfsync_state),   PFSYNC_ACT_INS },
 	{ pfsync_out_iack,  sizeof(struct pfsync_ins_ack), PFSYNC_ACT_INS_ACK },
 	{ pfsync_out_state, sizeof(struct pfsync_state),   PFSYNC_ACT_UPD },
@@ -177,8 +173,10 @@ struct pfsync_q pfsync_qs[] = {
 	{ pfsync_out_del,   sizeof(struct pfsync_del_c),   PFSYNC_ACT_DEL_C }
 };
 
-void	pfsync_q_ins(struct pf_state *, int);
-void	pfsync_q_del(struct pf_state *);
+static void	pfsync_q_ins(struct pf_state *, int);
+static void	pfsync_q_del(struct pf_state *);
+
+static void	pfsync_update_state(struct pf_state *);
 
 struct pfsync_upd_req_item {
 	TAILQ_ENTRY(pfsync_upd_req_item)	ur_entry;
@@ -198,7 +196,7 @@ TAILQ_HEAD(pfsync_deferrals, pfsync_defe
 			    sizeof(struct pfsync_deferral))
 
 #ifdef notyet
-int	pfsync_out_tdb(struct tdb *, struct mbuf *, int);
+static int	pfsync_out_tdb(struct tdb *, struct mbuf *, int);
 #endif
 
 struct pfsync_softc {
@@ -266,36 +264,37 @@ SYSCTL_VNET_STRUCT(_net_pfsync, OID_AUTO
 SYSCTL_INT(_net_pfsync, OID_AUTO, carp_demotion_factor, CTLFLAG_RW,
     &VNET_NAME(pfsync_carp_adj), 0, "pfsync's CARP demotion factor adjustment");
 
-void	pfsyncattach(int);
-int	pfsync_clone_create(struct if_clone *, int, caddr_t);
-void	pfsync_clone_destroy(struct ifnet *);
-int	pfsync_alloc_scrub_memory(struct pfsync_state_peer *,
-	    struct pf_state_peer *);
-void	pfsync_update_net_tdb(struct pfsync_tdb *);
-int	pfsyncoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
-	    struct route *);
-int	pfsyncioctl(struct ifnet *, u_long, caddr_t);
-void	pfsyncstart(struct ifnet *);
-
-struct mbuf *pfsync_if_dequeue(struct ifnet *);
-
-void	pfsync_deferred(struct pf_state *, int);
-void	pfsync_undefer(struct pfsync_deferral *, int);
-void	pfsync_defer_tmo(void *);
-
-void	pfsync_request_update(u_int32_t, u_int64_t);
-void	pfsync_update_state_req(struct pf_state *);
-
-void	pfsync_drop(struct pfsync_softc *);
-void	pfsync_sendout(void);
-void	pfsync_send_plus(void *, size_t);
-void	pfsync_timeout(void *);
-void	pfsync_tdb_timeout(void *);
-
-void	pfsync_bulk_start(void);
-void	pfsync_bulk_status(u_int8_t);
-void	pfsync_bulk_update(void *);
-void	pfsync_bulk_fail(void *);
+static int	pfsync_clone_create(struct if_clone *, int, caddr_t);
+static void	pfsync_clone_destroy(struct ifnet *);
+static int	pfsync_alloc_scrub_memory(struct pfsync_state_peer *,
+		    struct pf_state_peer *);
+static int	pfsyncoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
+		    struct route *);
+static int	pfsyncioctl(struct ifnet *, u_long, caddr_t);
+static void	pfsyncstart(struct ifnet *);
+
+static struct mbuf	*pfsync_if_dequeue(struct ifnet *);
+
+static void	pfsync_deferred(struct pf_state *, int);
+static void	pfsync_undefer(struct pfsync_deferral *, int);
+static void	pfsync_defer_tmo(void *);
+
+static void	pfsync_request_update(u_int32_t, u_int64_t);
+static void	pfsync_update_state_req(struct pf_state *);
+
+static void	pfsync_drop(struct pfsync_softc *);
+static void	pfsync_sendout(void);
+static void	pfsync_send_plus(void *, size_t);
+static void	pfsync_timeout(void *);
+
+static void	pfsync_bulk_start(void);
+static void	pfsync_bulk_status(u_int8_t);
+static void	pfsync_bulk_update(void *);
+static void	pfsync_bulk_fail(void *);
+
+#ifdef IPSEC
+static void	pfsync_update_net_tdb(struct pfsync_tdb *);
+#endif
 
 #define PFSYNC_MAX_BULKTRIES	12
 
@@ -305,12 +304,7 @@ VNET_DEFINE(struct if_clone, pfsync_clon
 #define	V_pfsync_cloner		VNET(pfsync_cloner)
 IFC_SIMPLE_DECLARE(pfsync, 1);
 
-void
-pfsyncattach(int npfsync)
-{
-	if_clone_attach(&pfsync_cloner);
-}
-int
+static int
 pfsync_clone_create(struct if_clone *ifc, int unit, caddr_t param)
 {
 	struct pfsync_softc *sc;
@@ -368,7 +362,7 @@ pfsync_clone_create(struct if_clone *ifc
 	return (0);
 }
 
-void
+static void
 pfsync_clone_destroy(struct ifnet *ifp)
 {
 	struct pfsync_softc *sc = ifp->if_softc;
@@ -400,7 +394,7 @@ pfsync_clone_destroy(struct ifnet *ifp)
 
 }
 
-struct mbuf *
+static struct mbuf *
 pfsync_if_dequeue(struct ifnet *ifp)
 {
 	struct mbuf *m;
@@ -416,7 +410,7 @@ pfsync_if_dequeue(struct ifnet *ifp)
 /*
  * Start output on the pfsync interface.
  */
-void
+static void
 pfsyncstart(struct ifnet *ifp)
 {
 	struct mbuf *m;
@@ -426,7 +420,7 @@ pfsyncstart(struct ifnet *ifp)
 	}
 }
 
-int
+static int
 pfsync_alloc_scrub_memory(struct pfsync_state_peer *s,
     struct pf_state_peer *d)
 {
@@ -440,7 +434,7 @@ pfsync_alloc_scrub_memory(struct pfsync_
 }
 
 
-int
+static int
 pfsync_state_import(struct pfsync_state *sp, u_int8_t flags)
 {
 	struct pf_state	*st = NULL;
@@ -597,7 +591,7 @@ cleanup_state:	/* pf_state_insert frees 
 	return (error);
 }
 
-void
+static void
 pfsync_input(struct mbuf *m, __unused int off)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -650,13 +644,6 @@ pfsync_input(struct mbuf *m, __unused in
 		goto done;
 	}
 
-#if 0
-	if (pfsync_input_hmac(m, offset) != 0) {
-		/* XXX stats */
-		goto done;
-	}
-#endif
-
 	/* Cheaper to grab this now than having to mess with mbufs later */
 	pkt.ip = ip;
 	pkt.src = ip->ip_src;
@@ -687,7 +674,7 @@ done:
 	m_freem(m);
 }
 
-int
+static int
 pfsync_in_clr(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct pfsync_clr *clr;
@@ -744,7 +731,7 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st
 	return (len);
 }
 
-int
+static int
 pfsync_in_ins(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct mbuf *mp;
@@ -787,7 +774,7 @@ pfsync_in_ins(struct pfsync_pkt *pkt, st
 	return (len);
 }
 
-int
+static int
 pfsync_in_iack(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct pfsync_ins_ack *ia, *iaa;
@@ -828,7 +815,7 @@ pfsync_in_iack(struct pfsync_pkt *pkt, s
 	return (count * sizeof(struct pfsync_ins_ack));
 }
 
-int
+static int
 pfsync_upd_tcp(struct pf_state *st, struct pfsync_state_peer *src,
     struct pfsync_state_peer *dst)
 {
@@ -862,7 +849,7 @@ pfsync_upd_tcp(struct pf_state *st, stru
 	return (sfail);
 }
 
-int
+static int
 pfsync_in_upd(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct pfsync_state *sa, *sp;
@@ -953,7 +940,7 @@ pfsync_in_upd(struct pfsync_pkt *pkt, st
 	return (len);
 }
 
-int
+static int
 pfsync_in_upd_c(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct pfsync_upd_c *ua, *up;
@@ -1044,7 +1031,7 @@ pfsync_in_upd_c(struct pfsync_pkt *pkt, 
 	return (len);
 }
 
-int
+static int
 pfsync_in_ureq(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct pfsync_upd_req *ur, *ura;
@@ -1088,7 +1075,7 @@ pfsync_in_ureq(struct pfsync_pkt *pkt, s
 	return (len);
 }
 
-int
+static int
 pfsync_in_del(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct mbuf *mp;
@@ -1125,7 +1112,7 @@ pfsync_in_del(struct pfsync_pkt *pkt, st
 	return (len);
 }
 
-int
+static int
 pfsync_in_del_c(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct mbuf *mp;
@@ -1163,7 +1150,7 @@ pfsync_in_del_c(struct pfsync_pkt *pkt, 
 	return (len);
 }
 
-int
+static int
 pfsync_in_bus(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1219,7 +1206,7 @@ pfsync_in_bus(struct pfsync_pkt *pkt, st
 	return (len);
 }
 
-int
+static int
 pfsync_in_tdb(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	int len = count * sizeof(struct pfsync_tdb);
@@ -1249,7 +1236,7 @@ pfsync_in_tdb(struct pfsync_pkt *pkt, st
 
 #if defined(IPSEC)
 /* Update an in-kernel tdb. Silently fail if no tdb is found. */
-void
+static void
 pfsync_update_net_tdb(struct pfsync_tdb *pt)
 {
 	struct tdb		*tdb;
@@ -1287,7 +1274,7 @@ bad:
 #endif
 
 
-int
+static int
 pfsync_in_eof(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	/* check if we are at the right place in the packet */
@@ -1299,7 +1286,7 @@ pfsync_in_eof(struct pfsync_pkt *pkt, st
 	return (-1);
 }
 
-int
+static int
 pfsync_in_error(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
 {
 	V_pfsyncstats.pfsyncs_badact++;
@@ -1308,7 +1295,7 @@ pfsync_in_error(struct pfsync_pkt *pkt, 
 	return (-1);
 }
 
-int
+static int
 pfsyncoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
 	struct route *rt)
 {
@@ -1317,7 +1304,7 @@ pfsyncoutput(struct ifnet *ifp, struct m
 }
 
 /* ARGSUSED */
-int
+static int
 pfsyncioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct pfsync_softc *sc = ifp->if_softc;
@@ -1448,7 +1435,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cm
 	return (0);
 }
 
-int
+static int
 pfsync_out_state(struct pf_state *st, struct mbuf *m, int offset)
 {
 	struct pfsync_state *sp = (struct pfsync_state *)(m->m_data + offset);
@@ -1458,7 +1445,7 @@ pfsync_out_state(struct pf_state *st, st
 	return (sizeof(*sp));
 }
 
-int
+static int
 pfsync_out_iack(struct pf_state *st, struct mbuf *m, int offset)
 {
 	struct pfsync_ins_ack *iack =
@@ -1470,7 +1457,7 @@ pfsync_out_iack(struct pf_state *st, str
 	return (sizeof(*iack));
 }
 
-int
+static int
 pfsync_out_upd_c(struct pf_state *st, struct mbuf *m, int offset)
 {
 	struct pfsync_upd_c *up = (struct pfsync_upd_c *)(m->m_data + offset);
@@ -1492,7 +1479,7 @@ pfsync_out_upd_c(struct pf_state *st, st
 	return (sizeof(*up));
 }
 
-int
+static int
 pfsync_out_del(struct pf_state *st, struct mbuf *m, int offset)
 {
 	struct pfsync_del_c *dp = (struct pfsync_del_c *)(m->m_data + offset);
@@ -1505,7 +1492,7 @@ pfsync_out_del(struct pf_state *st, stru
 	return (sizeof(*dp));
 }
 
-void
+static void
 pfsync_drop(struct pfsync_softc *sc)
 {
 	struct pf_state *st;
@@ -1549,7 +1536,8 @@ pfsync_drop(struct pfsync_softc *sc)
 	sc->sc_len = PFSYNC_MINPKT;
 }
 
-void pfsync_sendout()
+static void
+pfsync_sendout()
 {
 	pfsync_sendout1(1);
 }
@@ -1730,7 +1718,7 @@ pfsync_sendout1(int schedswi)
 		swi_sched(V_pfsync_swi_cookie, 0);
 }
 
-void
+static void
 pfsync_insert_state(struct pf_state *st)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1763,9 +1751,9 @@ pfsync_insert_state(struct pf_state *st)
 		st->sync_updates = 0;
 }
 
-int defer = 10;
+static int defer = 10;
 
-int
+static int
 pfsync_defer(struct pf_state *st, struct mbuf *m)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1795,7 +1783,7 @@ pfsync_defer(struct pf_state *st, struct
 	return (1);
 }
 
-void
+static void
 pfsync_undefer(struct pfsync_deferral *pd, int drop)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1820,7 +1808,7 @@ pfsync_undefer(struct pfsync_deferral *p
 	uma_zfree(sc->sc_pool, pd);
 }
 
-void
+static void
 pfsync_defer_tmo(void *arg)
 {
 #ifdef VIMAGE
@@ -1834,7 +1822,7 @@ pfsync_defer_tmo(void *arg)
 	CURVNET_RESTORE();
 }
 
-void
+static void
 pfsync_deferred(struct pf_state *st, int drop)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1850,9 +1838,9 @@ pfsync_deferred(struct pf_state *st, int
 	panic("pfsync_send_deferred: unable to find deferred state");
 }
 
-u_int pfsync_upds = 0;
+static u_int pfsync_upds = 0;
 
-void
+static void
 pfsync_update_state(struct pf_state *st)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1906,7 +1894,7 @@ pfsync_update_state(struct pf_state *st)
 	}
 }
 
-void
+static void
 pfsync_request_update(u_int32_t creatorid, u_int64_t id)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1945,7 +1933,7 @@ pfsync_request_update(u_int32_t creatori
 	schednetisr(NETISR_PFSYNC);
 }
 
-void
+static void
 pfsync_update_state_req(struct pf_state *st)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -1981,7 +1969,7 @@ pfsync_update_state_req(struct pf_state 
 	}
 }
 
-void
+static void
 pfsync_delete_state(struct pf_state *st)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2025,7 +2013,7 @@ pfsync_delete_state(struct pf_state *st)
 	}
 }
 
-void
+static void
 pfsync_clear_states(u_int32_t creatorid, const char *ifname)
 {
 	struct {
@@ -2051,7 +2039,7 @@ pfsync_clear_states(u_int32_t creatorid,
 	pfsync_send_plus(&r, sizeof(r));
 }
 
-void
+static void
 pfsync_q_ins(struct pf_state *st, int q)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2078,7 +2066,7 @@ pfsync_q_ins(struct pf_state *st, int q)
 	st->sync_state = q;
 }
 
-void
+static void
 pfsync_q_del(struct pf_state *st)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2096,7 +2084,7 @@ pfsync_q_del(struct pf_state *st)
 }
 
 #ifdef notyet
-void
+static void
 pfsync_update_tdb(struct tdb *t, int output)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2134,7 +2122,7 @@ pfsync_update_tdb(struct tdb *t, int out
 		CLR(t->tdb_flags, TDBF_PFSYNC_RPL);
 }
 
-void
+static void
 pfsync_delete_tdb(struct tdb *t)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2150,7 +2138,7 @@ pfsync_delete_tdb(struct tdb *t)
 		sc->sc_len -= sizeof(struct pfsync_subheader);
 }
 
-int
+static int
 pfsync_out_tdb(struct tdb *t, struct mbuf *m, int offset)
 {
 	struct pfsync_tdb *ut = (struct pfsync_tdb *)(m->m_data + offset);
@@ -2185,7 +2173,7 @@ pfsync_out_tdb(struct tdb *t, struct mbu
 }
 #endif
 
-void
+static void
 pfsync_bulk_start(void)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2207,7 +2195,7 @@ pfsync_bulk_start(void)
 	}
 }
 
-void
+static void
 pfsync_bulk_update(void *arg)
 {
 	struct pfsync_softc *sc = arg;
@@ -2250,7 +2238,7 @@ pfsync_bulk_update(void *arg)
 	CURVNET_RESTORE();
 }
 
-void
+static void
 pfsync_bulk_status(u_int8_t status)
 {
 	struct {
@@ -2274,7 +2262,7 @@ pfsync_bulk_status(u_int8_t status)
 	pfsync_send_plus(&r, sizeof(r));
 }
 
-void
+static void
 pfsync_bulk_fail(void *arg)
 {
 	struct pfsync_softc *sc = arg;
@@ -2303,7 +2291,7 @@ pfsync_bulk_fail(void *arg)
 	CURVNET_RESTORE();
 }
 
-void
+static void
 pfsync_send_plus(void *plus, size_t pluslen)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2320,7 +2308,7 @@ pfsync_send_plus(void *plus, size_t plus
 	pfsync_sendout();
 }
 
-int
+static int
 pfsync_up(void)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2331,7 +2319,7 @@ pfsync_up(void)
 	return (1);
 }
 
-int
+static int
 pfsync_state_in_use(struct pf_state *st)
 {
 	struct pfsync_softc *sc = V_pfsyncif;
@@ -2347,10 +2335,10 @@ pfsync_state_in_use(struct pf_state *st)
 	return (0);
 }
 
-u_int pfsync_ints;
-u_int pfsync_tmos;
+static u_int pfsync_ints;
+static u_int pfsync_tmos;
 
-void
+static void
 pfsync_timeout(void *arg)
 {
 #ifdef VIMAGE
@@ -2369,7 +2357,7 @@ pfsync_timeout(void *arg)
 }
 
 /* this is a softnet/netisr handler */
-void
+static void
 pfsyncintr(void *arg)
 {
 	struct pfsync_softc *sc = arg;
@@ -2397,12 +2385,12 @@ pfsyncintr(void *arg)
 	CURVNET_RESTORE();
 }
 
-int
+#ifdef notyet
+static int
 pfsync_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp,
     size_t newlen)
 {
 
-#ifdef notyet
 	/* All sysctl names at this level are terminal. */
 	if (namelen != 1)
 		return (ENOTDIR);
@@ -2414,9 +2402,9 @@ pfsync_sysctl(int *name, u_int namelen, 
 		return (sysctl_struct(oldp, oldlenp, newp, newlen,
 		    &V_pfsyncstats, sizeof(V_pfsyncstats)));
 	}
-#endif
 	return (ENOPROTOOPT);
 }
+#endif
 
 static int
 pfsync_multicast_setup(struct pfsync_softc *sc)

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.h
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.h	Wed Feb 29 14:44:42 2012	(r232297)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.h	Wed Feb 29 14:50:17 2012	(r232298)
@@ -286,29 +286,10 @@ struct pfsyncreq {
 #define	PFSYNC_S_DEFER	0xfe
 #define	PFSYNC_S_NONE	0xff
 
-void			pfsync_input(struct mbuf *, __unused int);
-int			pfsync_sysctl(int *, u_int,  void *, size_t *,
-			    void *, size_t);
-
 #define	PFSYNC_SI_IOCTL		0x01
 #define	PFSYNC_SI_CKSUM		0x02
 #define	PFSYNC_SI_ACK		0x04
-int			pfsync_state_import(struct pfsync_state *, u_int8_t);
-
-void			pfsync_insert_state(struct pf_state *);
-void			pfsync_update_state(struct pf_state *);
-void			pfsync_delete_state(struct pf_state *);
-void			pfsync_clear_states(u_int32_t, const char *);
-
-#ifdef notyet
-void			pfsync_update_tdb(struct tdb *, int);
-void			pfsync_delete_tdb(struct tdb *);
-#endif
-
-int			pfsync_defer(struct pf_state *, struct mbuf *);
 
-int			pfsync_up(void);
-int			pfsync_state_in_use(struct pf_state *);
-#endif
+#endif /* _KERNEL */
 
 #endif /* _NET_IF_PFSYNC_H_ */

Modified: projects/pf/head/sys/contrib/pf/net/pf.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf.c	Wed Feb 29 14:44:42 2012	(r232297)
+++ projects/pf/head/sys/contrib/pf/net/pf.c	Wed Feb 29 14:50:17 2012	(r232298)
@@ -163,25 +163,26 @@ VNET_DEFINE(uma_zone_t,	 pf_state_key_pl
 VNET_DEFINE(uma_zone_t,	 pf_state_item_pl);
 VNET_DEFINE(uma_zone_t,	 pf_altq_pl);
 
-void			 pf_init_threshold(struct pf_threshold *, u_int32_t,
+static void		 pf_src_tree_remove_state(struct pf_state *);
+static void		 pf_init_threshold(struct pf_threshold *, u_int32_t,
 			    u_int32_t);
-void			 pf_add_threshold(struct pf_threshold *);
-int			 pf_check_threshold(struct pf_threshold *);
+static void		 pf_add_threshold(struct pf_threshold *);
+static int		 pf_check_threshold(struct pf_threshold *);
 
-void			 pf_change_ap(struct pf_addr *, u_int16_t *,
+static void		 pf_change_ap(struct pf_addr *, u_int16_t *,
 			    u_int16_t *, u_int16_t *, struct pf_addr *,
 			    u_int16_t, u_int8_t, sa_family_t);
-int			 pf_modulate_sack(struct mbuf *, int, struct pf_pdesc *,
+static int		 pf_modulate_sack(struct mbuf *, int, struct pf_pdesc *,
 			    struct tcphdr *, struct pf_state_peer *);
 #ifdef INET6
-void			 pf_change_a6(struct pf_addr *, u_int16_t *,
+static void		 pf_change_a6(struct pf_addr *, u_int16_t *,
 			    struct pf_addr *, u_int8_t);
 #endif /* INET6 */
-void			 pf_change_icmp(struct pf_addr *, u_int16_t *,
+static void		 pf_change_icmp(struct pf_addr *, u_int16_t *,
 			    struct pf_addr *, struct pf_addr *, u_int16_t,
 			    u_int16_t *, u_int16_t *, u_int16_t *,
 			    u_int16_t *, u_int8_t, sa_family_t);
-void			 pf_send_tcp(struct mbuf *,
+static void		 pf_send_tcp(struct mbuf *,
 			    const struct pf_rule *, sa_family_t,
 			    const struct pf_addr *, const struct pf_addr *,
 			    u_int16_t, u_int16_t, u_int32_t, u_int32_t,
@@ -189,10 +190,12 @@ void			 pf_send_tcp(struct mbuf *,
 			    u_int16_t, struct ether_header *, struct ifnet *);
 static void		 pf_send_icmp(struct mbuf *, u_int8_t, u_int8_t,
 			    sa_family_t, struct pf_rule *);
-void			 pf_detach_state(struct pf_state *);
-void			 pf_state_key_detach(struct pf_state *, int);
-u_int32_t		 pf_tcp_iss(struct pf_pdesc *);
-int			 pf_test_rule(struct pf_rule **, struct pf_state **,
+static void		 pf_detach_state(struct pf_state *);
+static int		 pf_state_key_attach(struct pf_state_key *,
+			    struct pf_state *, int);
+static void		 pf_state_key_detach(struct pf_state *, int);
+static u_int32_t	 pf_tcp_iss(struct pf_pdesc *);
+static int		 pf_test_rule(struct pf_rule **, struct pf_state **,
 			    int, struct pfi_kif *, struct mbuf *, int,
 			    void *, struct pf_pdesc *, struct pf_rule **,
 			    struct pf_ruleset **, struct ifqueue *,
@@ -205,55 +208,60 @@ static __inline int	 pf_create_state(str
 			    u_int16_t, u_int16_t, int *, struct pfi_kif *,
 			    struct pf_state **, int, u_int16_t, u_int16_t,
 			    int);
-int			 pf_test_fragment(struct pf_rule **, int,
+static int		 pf_test_fragment(struct pf_rule **, int,
 			    struct pfi_kif *, struct mbuf *, void *,
 			    struct pf_pdesc *, struct pf_rule **,
 			    struct pf_ruleset **);
-int			 pf_tcp_track_full(struct pf_state_peer *,
+static int		 pf_tcp_track_full(struct pf_state_peer *,
 			    struct pf_state_peer *, struct pf_state **,
 			    struct pfi_kif *, struct mbuf *, int,
 			    struct pf_pdesc *, u_short *, int *);
-int			pf_tcp_track_sloppy(struct pf_state_peer *,
+static int		 pf_tcp_track_sloppy(struct pf_state_peer *,
 			    struct pf_state_peer *, struct pf_state **,
 			    struct pf_pdesc *, u_short *);
-int			 pf_test_state_tcp(struct pf_state **, int,
+static int		 pf_test_state_tcp(struct pf_state **, int,
 			    struct pfi_kif *, struct mbuf *, int,
 			    void *, struct pf_pdesc *, u_short *);
-int			 pf_test_state_udp(struct pf_state **, int,
+static int		 pf_test_state_udp(struct pf_state **, int,
 			    struct pfi_kif *, struct mbuf *, int,
 			    void *, struct pf_pdesc *);
-int			 pf_test_state_icmp(struct pf_state **, int,
+static int		 pf_test_state_icmp(struct pf_state **, int,
 			    struct pfi_kif *, struct mbuf *, int,
 			    void *, struct pf_pdesc *, u_short *);
-int			 pf_test_state_other(struct pf_state **, int,
+static int		 pf_test_state_other(struct pf_state **, int,
 			    struct pfi_kif *, struct mbuf *, struct pf_pdesc *);
-void			 pf_route(struct mbuf **, struct pf_rule *, int,
+static void		 pf_route(struct mbuf **, struct pf_rule *, int,
 			    struct ifnet *, struct pf_state *,
 			    struct pf_pdesc *);
-void			 pf_route6(struct mbuf **, struct pf_rule *, int,
+static void		 pf_route6(struct mbuf **, struct pf_rule *, int,
 			    struct ifnet *, struct pf_state *,
 			    struct pf_pdesc *);
-u_int8_t		 pf_get_wscale(struct mbuf *, int, u_int16_t,
+static int		 pf_socket_lookup(int, struct pf_pdesc *,
+			    struct inpcb *); 
+static u_int8_t		 pf_get_wscale(struct mbuf *, int, u_int16_t,
 			    sa_family_t);
-u_int16_t		 pf_get_mss(struct mbuf *, int, u_int16_t,
+static u_int16_t	 pf_get_mss(struct mbuf *, int, u_int16_t,
 			    sa_family_t);
-u_int16_t		 pf_calc_mss(struct pf_addr *, sa_family_t,
+static u_int16_t	 pf_calc_mss(struct pf_addr *, sa_family_t,
 				int, u_int16_t);
-void			 pf_set_rt_ifp(struct pf_state *,
+static void		 pf_set_rt_ifp(struct pf_state *,
 			    struct pf_addr *);
-int			 pf_check_proto_cksum(struct mbuf *, int, int,
+static int		 pf_check_proto_cksum(struct mbuf *, int, int,
 			    u_int8_t, sa_family_t);
-void			 pf_print_state_parts(struct pf_state *,
+static void		 pf_print_state_parts(struct pf_state *,
 			    struct pf_state_key *, struct pf_state_key *);
-int			 pf_addr_wrap_neq(struct pf_addr_wrap *,
+static int		 pf_addr_wrap_neq(struct pf_addr_wrap *,
 			    struct pf_addr_wrap *);
-int			 pf_compare_state_keys(struct pf_state_key *,
+static int		 pf_compare_state_keys(struct pf_state_key *,
 			    struct pf_state_key *, struct pfi_kif *, u_int);
-struct pf_state		*pf_find_state(struct pfi_kif *,
+static struct pf_state	*pf_find_state(struct pfi_kif *,
 			    struct pf_state_key_cmp *, u_int, struct mbuf *,
 			    struct pf_mtag *);
-int			 pf_src_connlimit(struct pf_state **);
-int			 pf_check_congestion(struct ifqueue *);
+static int		 pf_src_connlimit(struct pf_state **);
+static int		 pf_insert_src_node(struct pf_src_node **,
+			    struct pf_rule *, struct pf_addr *, sa_family_t);
+static int		 pf_check_congestion(struct ifqueue *);
+static int		 pf_purge_expired_states(u_int32_t , int);
 
 int in4_cksum(struct mbuf *m, u_int8_t nxt, int off, int len);
 
@@ -390,7 +398,7 @@ pf_addrcpy(struct pf_addr *dst, struct p
 }
 #endif /* INET6 */
 
-void
+static void
 pf_init_threshold(struct pf_threshold *threshold,
     u_int32_t limit, u_int32_t seconds)
 {
@@ -400,7 +408,7 @@ pf_init_threshold(struct pf_threshold *t
 	threshold->last = time_second;
 }
 
-void
+static void
 pf_add_threshold(struct pf_threshold *threshold)
 {
 	u_int32_t t = time_second, diff = t - threshold->last;
@@ -414,13 +422,13 @@ pf_add_threshold(struct pf_threshold *th
 	threshold->last = t;
 }
 
-int
+static int
 pf_check_threshold(struct pf_threshold *threshold)
 {
 	return (threshold->count > threshold->limit);
 }
 
-int
+static int
 pf_src_connlimit(struct pf_state **state)
 {
 	int bad = 0;
@@ -519,7 +527,7 @@ pf_src_connlimit(struct pf_state **state
 	return (1);
 }
 
-int
+static int
 pf_insert_src_node(struct pf_src_node **sn, struct pf_rule *rule,
     struct pf_addr *src, sa_family_t af)
 {
@@ -667,7 +675,7 @@ pf_state_compare_id(struct pf_state *a, 
 	return (0);
 }
 
-int
+static int
 pf_state_key_attach(struct pf_state_key *sk, struct pf_state *s, int idx)
 {
 	struct pf_state_item	*si;
@@ -735,7 +743,7 @@ pf_state_key_attach(struct pf_state_key 
 	return (0);
 }
 
-void
+static void
 pf_detach_state(struct pf_state *s)
 {
 	if (s->key[PF_SK_WIRE] == s->key[PF_SK_STACK])
@@ -748,7 +756,7 @@ pf_detach_state(struct pf_state *s)
 		pf_state_key_detach(s, PF_SK_WIRE);
 }
 
-void
+static void
 pf_state_key_detach(struct pf_state *s, int idx)
 {
 	struct pf_state_item	*si;
@@ -884,7 +892,7 @@ pf_find_state_byid(struct pf_state_cmp *
 }
 
 /* XXX debug function, intended to be removed one day */
-int
+static int
 pf_compare_state_keys(struct pf_state_key *a, struct pf_state_key *b,
     struct pfi_kif *kif, u_int dir)
 {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 16:16:00 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CA73D106564A;
	Wed, 29 Feb 2012 16:16:00 +0000 (UTC)
	(envelope-from dmarion@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B837A8FC19;
	Wed, 29 Feb 2012 16:16:00 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1TGG0CR034530;
	Wed, 29 Feb 2012 16:16:00 GMT (envelope-from dmarion@svn.freebsd.org)
Received: (from dmarion@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1TGG0vW034526;
	Wed, 29 Feb 2012 16:16:00 GMT (envelope-from dmarion@svn.freebsd.org)
Message-Id: <201202291616.q1TGG0vW034526@svn.freebsd.org>
From: Damjan Marion <dmarion@FreeBSD.org>
Date: Wed, 29 Feb 2012 16:16:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232306 - in projects/armv6/sys: arm/ti arm/ti/omap4
	boot/fdt/dts
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 16:16:00 -0000

Author: dmarion
Date: Wed Feb 29 16:16:00 2012
New Revision: 232306
URL: http://svn.freebsd.org/changeset/base/232306

Log:
  Rename as MMCHS driver will be used on non-omap platforms.
  
  Approved by:	cognet (mentor)

Added:
  projects/armv6/sys/arm/ti/ti_mmchs.c
     - copied, changed from r232305, projects/armv6/sys/arm/ti/omap_mmc.c
  projects/armv6/sys/arm/ti/ti_mmchs.h
     - copied, changed from r232305, projects/armv6/sys/arm/ti/omap_mmc.h
Deleted:
  projects/armv6/sys/arm/ti/omap_mmc.c
  projects/armv6/sys/arm/ti/omap_mmc.h
Modified:
  projects/armv6/sys/arm/ti/omap4/files.omap4
  projects/armv6/sys/boot/fdt/dts/pandaboard.dts

Modified: projects/armv6/sys/arm/ti/omap4/files.omap4
==============================================================================
--- projects/armv6/sys/arm/ti/omap4/files.omap4	Wed Feb 29 15:18:53 2012	(r232305)
+++ projects/armv6/sys/arm/ti/omap4/files.omap4	Wed Feb 29 16:16:00 2012	(r232306)
@@ -7,7 +7,7 @@ arm/ti/ti_smc.S					standard
 arm/ti/omap_gpio.c				optional	gpio
 arm/ti/usb/omap_ehci.c				optional	usb ehci
 arm/ti/omap_dma.c				optional	omap_dma
-arm/ti/omap_mmc.c				optional	mmc
+arm/ti/ti_mmchs.c				optional	mmc
 
 arm/ti/omap4/omap4_l2cache.c			optional	pl310
 arm/ti/omap4/omap4_prcm_clks.c			standard

Copied and modified: projects/armv6/sys/arm/ti/ti_mmchs.c (from r232305, projects/armv6/sys/arm/ti/omap_mmc.c)
==============================================================================
--- projects/armv6/sys/arm/ti/omap_mmc.c	Wed Feb 29 15:18:53 2012	(r232305, copy source)
+++ projects/armv6/sys/arm/ti/ti_mmchs.c	Wed Feb 29 16:16:00 2012	(r232306)
@@ -83,7 +83,7 @@ __FBSDID("$FreeBSD$");
 #include "mmcbus_if.h"
 
 #include <arm/ti/omap_dma.h>
-#include <arm/ti/omap_mmc.h>
+#include <arm/ti/ti_mmchs.h>
 #include <arm/ti/ti_cpuid.h>
 #include <arm/ti/ti_prcm.h>
 
@@ -91,16 +91,16 @@ __FBSDID("$FreeBSD$");
 #include <arm/ti/twl/twl_vreg.h>
 
 #ifdef DEBUG
-#define omap_mmc_dbg(sc, fmt, args...) \
+#define ti_mmchs_dbg(sc, fmt, args...) \
 	device_printf((sc)->sc_dev, fmt, ## args);
 #else
-#define omap_mmc_dbg(sc, fmt, args...)
+#define ti_mmchs_dbg(sc, fmt, args...)
 #endif
 
 /**
  *	Structure that stores the driver context
  */
-struct omap_mmc_softc {
+struct ti_mmchs_softc {
 	device_t		sc_dev;
 	struct resource*	sc_irq_res;
 	struct resource*	sc_mem_res;
@@ -156,16 +156,16 @@ struct omap_mmc_softc {
 #define	OMAP_MMC_UNLOCK(_sc)            mtx_unlock(&(_sc)->sc_mtx)
 #define OMAP_MMC_LOCK_INIT(_sc) \
 	mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \
-	         "omap_mmc", MTX_DEF)
+	         "ti_mmchs", MTX_DEF)
 #define OMAP_MMC_LOCK_DESTROY(_sc)      mtx_destroy(&_sc->sc_mtx);
 #define OMAP_MMC_ASSERT_LOCKED(_sc)     mtx_assert(&_sc->sc_mtx, MA_OWNED);
 #define OMAP_MMC_ASSERT_UNLOCKED(_sc)   mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);
 
-static void omap_mmc_start(struct omap_mmc_softc *sc);
+static void ti_mmchs_start(struct ti_mmchs_softc *sc);
 
 /**
- *	omap_mmc_read_4 - reads a 32-bit value from a register
- *	omap_mmc_write_4 - writes a 32-bit value to a register
+ *	ti_mmchs_read_4 - reads a 32-bit value from a register
+ *	ti_mmchs_write_4 - writes a 32-bit value to a register
  *	@sc: pointer to the driver context
  *	@off: register offset to read from
  *	@val: the value to write into the register
@@ -177,19 +177,19 @@ static void omap_mmc_start(struct omap_m
  *	The 32-bit value read from the register
  */
 static inline uint32_t
-omap_mmc_read_4(struct omap_mmc_softc *sc, bus_size_t off)
+ti_mmchs_read_4(struct ti_mmchs_softc *sc, bus_size_t off)
 {
 	return bus_read_4(sc->sc_mem_res, (sc->sc_reg_off + off));
 }
 
 static inline void
-omap_mmc_write_4(struct omap_mmc_softc *sc, bus_size_t off, uint32_t val)
+ti_mmchs_write_4(struct ti_mmchs_softc *sc, bus_size_t off, uint32_t val)
 {
 	bus_write_4(sc->sc_mem_res, (sc->sc_reg_off + off), val);
 }
 
 /**
- *	omap_mmc_reset_controller -
+ *	ti_mmchs_reset_controller -
  *	@arg: caller supplied arg
  *	@segs: array of segments (although in our case should only be one)
  *	@nsegs: number of segments (in our case should be 1)
@@ -199,35 +199,35 @@ omap_mmc_write_4(struct omap_mmc_softc *
  *
  */
 static void
-omap_mmc_reset_controller(struct omap_mmc_softc *sc, uint32_t bit)
+ti_mmchs_reset_controller(struct ti_mmchs_softc *sc, uint32_t bit)
 {
 	unsigned long attempts;
 	uint32_t sysctl;
 
-	omap_mmc_dbg(sc, "reseting controller - bit 0x%08x\n", bit);
+	ti_mmchs_dbg(sc, "reseting controller - bit 0x%08x\n", bit);
 
-	sysctl = omap_mmc_read_4(sc, MMCHS_SYSCTL);
-	omap_mmc_write_4(sc, MMCHS_SYSCTL, sysctl | bit);
+	sysctl = ti_mmchs_read_4(sc, MMCHS_SYSCTL);
+	ti_mmchs_write_4(sc, MMCHS_SYSCTL, sysctl | bit);
 
 	if ((ti_chip() == CHIP_OMAP_4) && (ti_revision() > OMAP4430_REV_ES1_0)) {
 		/* OMAP4 ES2 and greater has an updated reset logic.
 		 * Monitor a 0->1 transition first
 		 */
 		attempts = 10000;
-		while (!(omap_mmc_read_4(sc, MMCHS_SYSCTL) & bit) && (attempts-- > 0))
+		while (!(ti_mmchs_read_4(sc, MMCHS_SYSCTL) & bit) && (attempts-- > 0))
 			continue;
 	}
 
 	attempts = 10000;
-	while ((omap_mmc_read_4(sc, MMCHS_SYSCTL) & bit) && (attempts-- > 0))
+	while ((ti_mmchs_read_4(sc, MMCHS_SYSCTL) & bit) && (attempts-- > 0))
 		continue;
 
-	if (omap_mmc_read_4(sc, MMCHS_SYSCTL) & bit)
+	if (ti_mmchs_read_4(sc, MMCHS_SYSCTL) & bit)
 		device_printf(sc->sc_dev, "Error - Timeout waiting on controller reset\n");
 }
 
 /**
- *	omap_mmc_getaddr - called by the DMA function to simply return the phys addr
+ *	ti_mmchs_getaddr - called by the DMA function to simply return the phys addr
  *	@arg: caller supplied arg
  *	@segs: array of segments (although in our case should only be one)
  *	@nsegs: number of segments (in our case should be 1)
@@ -237,11 +237,11 @@ omap_mmc_reset_controller(struct omap_mm
  *	of segments, each segment is a phsyical chunk of memory. However in our case
  *	we should only have one segment, because we don't (yet?) support DMA scatter
  *	gather. To ensure we only have one segment, the DMA tag was created by
- *	bus_dma_tag_create() (called from omap_mmc_attach) with nsegments set to 1.
+ *	bus_dma_tag_create() (called from ti_mmchs_attach) with nsegments set to 1.
  *
  */
 static void
-omap_mmc_getaddr(void *arg, bus_dma_segment_t *segs, int nsegs, int error)
+ti_mmchs_getaddr(void *arg, bus_dma_segment_t *segs, int nsegs, int error)
 {
 	if (error != 0)
 		return;
@@ -250,7 +250,7 @@ omap_mmc_getaddr(void *arg, bus_dma_segm
 }
 
 /**
- *	omap_mmc_dma_intr - interrupt handler for DMA events triggered by the controller
+ *	ti_mmchs_dma_intr - interrupt handler for DMA events triggered by the controller
  *	@ch: the dma channel number
  *	@status: bit field of the status bytes
  *	@data: callback data, in this case a pointer to the controller struct
@@ -261,7 +261,7 @@ omap_mmc_getaddr(void *arg, bus_dma_segm
  *
  */
 static void
-omap_mmc_dma_intr(unsigned int ch, uint32_t status, void *data)
+ti_mmchs_dma_intr(unsigned int ch, uint32_t status, void *data)
 {
 	/* Ignore for now ... we don't need this interrupt as we already have the
 	 * interrupt from the MMC controller.
@@ -269,7 +269,7 @@ omap_mmc_dma_intr(unsigned int ch, uint3
 }
 
 /**
- *	omap_mmc_intr_xfer_compl - called if a 'transfer complete' IRQ was received
+ *	ti_mmchs_intr_xfer_compl - called if a 'transfer complete' IRQ was received
  *	@sc: pointer to the driver context
  *	@cmd: the command that was sent previously
  *
@@ -282,12 +282,12 @@ omap_mmc_dma_intr(unsigned int ch, uint3
  *	Return value indicates if the transaction is complete, not done = 0, done != 0
  */
 static int
-omap_mmc_intr_xfer_compl(struct omap_mmc_softc *sc, struct mmc_command *cmd)
+ti_mmchs_intr_xfer_compl(struct ti_mmchs_softc *sc, struct mmc_command *cmd)
 {
 	uint32_t cmd_reg;
 
 	/* Read command register to test whether this command was a read or write. */
-	cmd_reg = omap_mmc_read_4(sc, MMCHS_CMD);
+	cmd_reg = ti_mmchs_read_4(sc, MMCHS_CMD);
 
 	/* Sync-up the DMA buffer so the caller can access the new memory */
 	if (cmd_reg & MMCHS_CMD_DDIR) {
@@ -319,7 +319,7 @@ omap_mmc_intr_xfer_compl(struct omap_mmc
 }
 
 /**
- *	omap_mmc_intr_cmd_compl - called if a 'command complete' IRQ was received
+ *	ti_mmchs_intr_cmd_compl - called if a 'command complete' IRQ was received
  *	@sc: pointer to the driver context
  *	@cmd: the command that was sent previously
  *
@@ -331,7 +331,7 @@ omap_mmc_intr_xfer_compl(struct omap_mmc
  *	Return value indicates if the transaction is complete, not done = 0, done != 0
  */
 static int
-omap_mmc_intr_cmd_compl(struct omap_mmc_softc *sc, struct mmc_command *cmd)
+ti_mmchs_intr_cmd_compl(struct ti_mmchs_softc *sc, struct mmc_command *cmd)
 {
 	uint32_t cmd_reg;
 
@@ -339,23 +339,23 @@ omap_mmc_intr_cmd_compl(struct omap_mmc_
 	 * expected */
 	if (cmd != NULL && (cmd->flags & MMC_RSP_PRESENT)) {
 		if (cmd->flags & MMC_RSP_136) {
-			cmd->resp[3] = omap_mmc_read_4(sc, MMCHS_RSP10);
-			cmd->resp[2] = omap_mmc_read_4(sc, MMCHS_RSP32);
-			cmd->resp[1] = omap_mmc_read_4(sc, MMCHS_RSP54);
-			cmd->resp[0] = omap_mmc_read_4(sc, MMCHS_RSP76);
+			cmd->resp[3] = ti_mmchs_read_4(sc, MMCHS_RSP10);
+			cmd->resp[2] = ti_mmchs_read_4(sc, MMCHS_RSP32);
+			cmd->resp[1] = ti_mmchs_read_4(sc, MMCHS_RSP54);
+			cmd->resp[0] = ti_mmchs_read_4(sc, MMCHS_RSP76);
 		} else {
-			cmd->resp[0] = omap_mmc_read_4(sc, MMCHS_RSP10);
+			cmd->resp[0] = ti_mmchs_read_4(sc, MMCHS_RSP10);
 		}
 	}
 
 	/* Check if the command was expecting some data transfer, if not
 	 * we are done. */
-	cmd_reg = omap_mmc_read_4(sc, MMCHS_CMD);
+	cmd_reg = ti_mmchs_read_4(sc, MMCHS_CMD);
 	return ((cmd_reg & MMCHS_CMD_DP) == 0);
 }
 
 /**
- *	omap_mmc_intr_error - handles error interrupts
+ *	ti_mmchs_intr_error - handles error interrupts
  *	@sc: pointer to the driver context
  *	@cmd: the command that was sent previously
  *	@stat_reg: the value that was in the status register
@@ -368,10 +368,10 @@ omap_mmc_intr_cmd_compl(struct omap_mmc_
  *	Return value indicates if the transaction is complete, not done = 0, done != 0
  */
 static int
-omap_mmc_intr_error(struct omap_mmc_softc *sc, struct mmc_command *cmd,
+ti_mmchs_intr_error(struct ti_mmchs_softc *sc, struct mmc_command *cmd,
 					 uint32_t stat_reg)
 {
-	omap_mmc_dbg(sc, "error in xfer - stat 0x%08x\n", stat_reg);
+	ti_mmchs_dbg(sc, "error in xfer - stat 0x%08x\n", stat_reg);
 
 	/* Ignore CRC errors on CMD2 and ACMD47, per relevant standards */
 	if ((stat_reg & MMCHS_STAT_CCRC) && (cmd->opcode == MMC_SEND_OP_COND ||
@@ -385,10 +385,10 @@ omap_mmc_intr_error(struct omap_mmc_soft
 		cmd->error = MMC_ERR_FAILED;
 
 	/* If a dma transaction we should also stop the dma transfer */
-	if (omap_mmc_read_4(sc, MMCHS_CMD) & MMCHS_CMD_DE) {
+	if (ti_mmchs_read_4(sc, MMCHS_CMD) & MMCHS_CMD_DE) {
 
 		/* Abort the DMA transfer (DDIR bit tells direction) */
-		if (omap_mmc_read_4(sc, MMCHS_CMD) & MMCHS_CMD_DDIR)
+		if (ti_mmchs_read_4(sc, MMCHS_CMD) & MMCHS_CMD_DDIR)
 			omap_dma_stop_xfer(sc->sc_dmach_rd);
 		else
 			omap_dma_stop_xfer(sc->sc_dmach_wr);
@@ -402,12 +402,12 @@ omap_mmc_intr_error(struct omap_mmc_soft
 
 	/* Command error occured? ... if so issue a soft reset for the cmd fsm */
 	if (stat_reg & (MMCHS_STAT_CCRC | MMCHS_STAT_CTO)) {
-		omap_mmc_reset_controller(sc, MMCHS_SYSCTL_SRC);
+		ti_mmchs_reset_controller(sc, MMCHS_SYSCTL_SRC);
 	}
 
 	/* Data error occured? ... if so issue a soft reset for the data line */
 	if (stat_reg & (MMCHS_STAT_DEB | MMCHS_STAT_DCRC | MMCHS_STAT_DTO)) {
-		omap_mmc_reset_controller(sc, MMCHS_SYSCTL_SRD);
+		ti_mmchs_reset_controller(sc, MMCHS_SYSCTL_SRD);
 	}
 
 	/* On any error the command is cancelled ... so we are done */
@@ -415,7 +415,7 @@ omap_mmc_intr_error(struct omap_mmc_soft
 }
 
 /**
- *	omap_mmc_intr - interrupt handler for MMC/SD/SDIO controller
+ *	ti_mmchs_intr - interrupt handler for MMC/SD/SDIO controller
  *	@arg: pointer to the driver context
  *
  *	Interrupt handler for the MMC/SD/SDIO controller, responsible for handling
@@ -428,27 +428,27 @@ omap_mmc_intr_error(struct omap_mmc_soft
  *	nothing
  */
 static void
-omap_mmc_intr(void *arg)
+ti_mmchs_intr(void *arg)
 {
-	struct omap_mmc_softc *sc = (struct omap_mmc_softc *) arg;
+	struct ti_mmchs_softc *sc = (struct ti_mmchs_softc *) arg;
 	uint32_t stat_reg;
 	int done = 0;
 
 	OMAP_MMC_LOCK(sc);
 
-	stat_reg = omap_mmc_read_4(sc, MMCHS_STAT)
-	    & (omap_mmc_read_4(sc, MMCHS_IE) | MMCHS_STAT_ERRI);
+	stat_reg = ti_mmchs_read_4(sc, MMCHS_STAT)
+	    & (ti_mmchs_read_4(sc, MMCHS_IE) | MMCHS_STAT_ERRI);
 
 	if (sc->curcmd == NULL) {
 		device_printf(sc->sc_dev, "Error: current cmd NULL, already done?\n");
-		omap_mmc_write_4(sc, MMCHS_STAT, stat_reg);
+		ti_mmchs_write_4(sc, MMCHS_STAT, stat_reg);
 		OMAP_MMC_UNLOCK(sc);
 		return;
 	}
 
 	if (stat_reg & MMCHS_STAT_ERRI) {
 		/* An error has been tripped in the status register */
-		done = omap_mmc_intr_error(sc, sc->curcmd, stat_reg);
+		done = ti_mmchs_intr_error(sc, sc->curcmd, stat_reg);
 
 	} else {
 
@@ -463,37 +463,37 @@ omap_mmc_intr(void *arg)
 
 		/* Check if the command completed */
 		if (stat_reg & MMCHS_STAT_CC) {
-			done = omap_mmc_intr_cmd_compl(sc, sc->curcmd);
+			done = ti_mmchs_intr_cmd_compl(sc, sc->curcmd);
 		}
 
 		/* Check if the transfer has completed */
 		if (stat_reg & MMCHS_STAT_TC) {
-			done = omap_mmc_intr_xfer_compl(sc, sc->curcmd);
+			done = ti_mmchs_intr_xfer_compl(sc, sc->curcmd);
 		}
 
 	}
 
 	/* Clear all the interrupt status bits by writing the value back */
-	omap_mmc_write_4(sc, MMCHS_STAT, stat_reg);
+	ti_mmchs_write_4(sc, MMCHS_STAT, stat_reg);
 
 	/* This may mark the command as done if there is no stop request */
 	/* TODO: This is a bit ugly, needs fix-up */
 	if (done) {
-		omap_mmc_start(sc);
+		ti_mmchs_start(sc);
 	}
 
 	OMAP_MMC_UNLOCK(sc);
 }
 
 /**
- *	omap_mmc_start_cmd - starts the given command
+ *	ti_mmchs_start_cmd - starts the given command
  *	@sc: pointer to the driver context
  *	@cmd: the command to start
  *
  *	The call tree for this function is
- *		- omap_mmc_start_cmd
- *			- omap_mmc_start
- *				- omap_mmc_request
+ *		- ti_mmchs_start_cmd
+ *			- ti_mmchs_start
+ *				- ti_mmchs_request
  *
  *	LOCKING:
  *	Caller should be holding the OMAP_MMC lock.
@@ -502,7 +502,7 @@ omap_mmc_intr(void *arg)
  *	nothing
  */
 static void
-omap_mmc_start_cmd(struct omap_mmc_softc *sc, struct mmc_command *cmd)
+ti_mmchs_start_cmd(struct ti_mmchs_softc *sc, struct mmc_command *cmd)
 {
 	uint32_t cmd_reg, con_reg, ise_reg;
 	struct mmc_data *data;
@@ -518,7 +518,7 @@ omap_mmc_start_cmd(struct omap_mmc_softc
 	/* Ensure the STR and MIT bits are cleared, these are only used for special
 	 * command types.
 	 */
-	con_reg = omap_mmc_read_4(sc, MMCHS_CON);
+	con_reg = ti_mmchs_read_4(sc, MMCHS_CON);
 	con_reg &= ~(MMCHS_CON_STR | MMCHS_CON_MIT);
 
 	/* Load the command into bits 29:24 of the CMD register */
@@ -561,14 +561,14 @@ omap_mmc_start_cmd(struct omap_mmc_softc
 	/* Check if there is any data to write */
 	if (data == NULL) {
 		/* Clear the block count */
-		omap_mmc_write_4(sc, MMCHS_BLK, 0);
+		ti_mmchs_write_4(sc, MMCHS_BLK, 0);
 
 		/* The no data case is fairly simple */
-		omap_mmc_write_4(sc, MMCHS_CON, con_reg);
-		omap_mmc_write_4(sc, MMCHS_IE, ise_reg);
-		omap_mmc_write_4(sc, MMCHS_ISE, ise_reg);
-		omap_mmc_write_4(sc, MMCHS_ARG, cmd->arg);
-		omap_mmc_write_4(sc, MMCHS_CMD, cmd_reg);
+		ti_mmchs_write_4(sc, MMCHS_CON, con_reg);
+		ti_mmchs_write_4(sc, MMCHS_IE, ise_reg);
+		ti_mmchs_write_4(sc, MMCHS_ISE, ise_reg);
+		ti_mmchs_write_4(sc, MMCHS_ARG, cmd->arg);
+		ti_mmchs_write_4(sc, MMCHS_CMD, cmd_reg);
 		return;
 	}
 
@@ -598,7 +598,7 @@ omap_mmc_start_cmd(struct omap_mmc_softc
 	cmd_reg |= MMCHS_CMD_DE;
 
 	/* Set the block size and block count */
-	omap_mmc_write_4(sc, MMCHS_BLK, (1 << 16) | data->len);
+	ti_mmchs_write_4(sc, MMCHS_BLK, (1 << 16) | data->len);
 
 	/* Setup the DMA stuff */
 	if (data->flags & (MMC_DATA_READ | MMC_DATA_WRITE)) {
@@ -608,7 +608,7 @@ omap_mmc_start_cmd(struct omap_mmc_softc
 
 		/* Map the buffer buf into bus space using the dmamap map. */
 		if (bus_dmamap_load(sc->sc_dmatag, sc->sc_dmamap, vaddr, data->len,
-		    omap_mmc_getaddr, &paddr, 0) != 0) {
+		    ti_mmchs_getaddr, &paddr, 0) != 0) {
 
 			if (req->cmd->flags & STOP_STARTED)
 				req->stop->error = MMC_ERR_NO_MEMORY;
@@ -644,20 +644,20 @@ omap_mmc_start_cmd(struct omap_mmc_softc
 	}
 
 	/* Finally kick off the command */
-	omap_mmc_write_4(sc, MMCHS_CON, con_reg);
-	omap_mmc_write_4(sc, MMCHS_IE, ise_reg);
-	omap_mmc_write_4(sc, MMCHS_ISE, ise_reg);
-	omap_mmc_write_4(sc, MMCHS_ARG, cmd->arg);
-	omap_mmc_write_4(sc, MMCHS_CMD, cmd_reg);
+	ti_mmchs_write_4(sc, MMCHS_CON, con_reg);
+	ti_mmchs_write_4(sc, MMCHS_IE, ise_reg);
+	ti_mmchs_write_4(sc, MMCHS_ISE, ise_reg);
+	ti_mmchs_write_4(sc, MMCHS_ARG, cmd->arg);
+	ti_mmchs_write_4(sc, MMCHS_CMD, cmd_reg);
 
 	/* and we're done */
 }
 
 /**
- *	omap_mmc_start - starts a request stored in the driver context
+ *	ti_mmchs_start - starts a request stored in the driver context
  *	@sc: pointer to the driver context
  *
- *	This function is called by omap_mmc_request() in response to a read/write
+ *	This function is called by ti_mmchs_request() in response to a read/write
  *	request from the MMC core module.
  *
  *	LOCKING:
@@ -667,7 +667,7 @@ omap_mmc_start_cmd(struct omap_mmc_softc
  *	nothing
  */
 static void
-omap_mmc_start(struct omap_mmc_softc *sc)
+ti_mmchs_start(struct ti_mmchs_softc *sc)
 {
 	struct mmc_request *req;
 
@@ -679,13 +679,13 @@ omap_mmc_start(struct omap_mmc_softc *sc
 	/* assert locked */
 	if (!(sc->flags & CMD_STARTED)) {
 		sc->flags |= CMD_STARTED;
-		omap_mmc_start_cmd(sc, req->cmd);
+		ti_mmchs_start_cmd(sc, req->cmd);
 		return;
 	}
 
 	if (!(sc->flags & STOP_STARTED) && req->stop) {
 		sc->flags |= STOP_STARTED;
-		omap_mmc_start_cmd(sc, req->stop);
+		ti_mmchs_start_cmd(sc, req->stop);
 		return;
 	}
 
@@ -696,7 +696,7 @@ omap_mmc_start(struct omap_mmc_softc *sc
 }
 
 /**
- *	omap_mmc_request - entry point for all read/write/cmd requests
+ *	ti_mmchs_request - entry point for all read/write/cmd requests
  *	@brdev: mmc bridge device handle
  *	@reqdev: the device doing the requesting ?
  *	@req: the action requested
@@ -709,9 +709,9 @@ omap_mmc_start(struct omap_mmc_softc *sc
  *	EBUSY if the driver is already performing a request
  */
 static int
-omap_mmc_request(device_t brdev, device_t reqdev, struct mmc_request *req)
+ti_mmchs_request(device_t brdev, device_t reqdev, struct mmc_request *req)
 {
-	struct omap_mmc_softc *sc = device_get_softc(brdev);
+	struct ti_mmchs_softc *sc = device_get_softc(brdev);
 
 	OMAP_MMC_LOCK(sc);
 
@@ -728,7 +728,7 @@ omap_mmc_request(device_t brdev, device_
 	/* Store the request and start the command */
 	sc->req = req;
 	sc->flags = 0;
-	omap_mmc_start(sc);
+	ti_mmchs_start(sc);
 
 	OMAP_MMC_UNLOCK(sc);
 
@@ -736,7 +736,7 @@ omap_mmc_request(device_t brdev, device_
 }
 
 /**
- *	omap_mmc_get_ro - returns the status of the read-only setting
+ *	ti_mmchs_get_ro - returns the status of the read-only setting
  *	@brdev: mmc bridge device handle
  *	@reqdev: device doing the request
  *
@@ -752,9 +752,9 @@ omap_mmc_request(device_t brdev, device_
  *	1 if read only
  */
 static int
-omap_mmc_get_ro(device_t brdev, device_t reqdev)
+ti_mmchs_get_ro(device_t brdev, device_t reqdev)
 {
-	struct omap_mmc_softc *sc = device_get_softc(brdev);
+	struct ti_mmchs_softc *sc = device_get_softc(brdev);
 	unsigned int readonly = 0;
 
 	OMAP_MMC_LOCK(sc);
@@ -772,7 +772,7 @@ omap_mmc_get_ro(device_t brdev, device_t
 }
 
 /**
- *	omap_mmc_send_init_stream - sets bus/controller settings
+ *	ti_mmchs_send_init_stream - sets bus/controller settings
  *	@brdev: mmc bridge device handle
  *	@reqdev: device doing the request
  *
@@ -785,12 +785,12 @@ omap_mmc_get_ro(device_t brdev, device_t
  *	0 if function succeeded
  */
 static void
-omap_mmc_send_init_stream(struct omap_mmc_softc *sc)
+ti_mmchs_send_init_stream(struct ti_mmchs_softc *sc)
 {
 	unsigned long timeout;
 	uint32_t ie, ise, con;
 
-	omap_mmc_dbg(sc, "Performing init sequence\n");
+	ti_mmchs_dbg(sc, "Performing init sequence\n");
 
 	/* Prior to issuing any command, the MMCHS controller has to execute a
 	 * special INIT procedure. The MMCHS controller has to generate a clock
@@ -812,20 +812,20 @@ omap_mmc_send_init_stream(struct omap_mm
 	 */
 
 	/* Enable interrupt generation */
-	ie = omap_mmc_read_4(sc, MMCHS_IE);
-	omap_mmc_write_4(sc, MMCHS_IE, 0x307F0033);
+	ie = ti_mmchs_read_4(sc, MMCHS_IE);
+	ti_mmchs_write_4(sc, MMCHS_IE, 0x307F0033);
 
 	/* Disable generation of status events (stops interrupt triggering) */
-	ise = omap_mmc_read_4(sc, MMCHS_ISE);
-	omap_mmc_write_4(sc, MMCHS_ISE, 0);
+	ise = ti_mmchs_read_4(sc, MMCHS_ISE);
+	ti_mmchs_write_4(sc, MMCHS_ISE, 0);
 
 	/* Set the initialise stream bit */
-	con = omap_mmc_read_4(sc, MMCHS_CON);
+	con = ti_mmchs_read_4(sc, MMCHS_CON);
 	con |= MMCHS_CON_INIT;
-	omap_mmc_write_4(sc, MMCHS_CON, con);
+	ti_mmchs_write_4(sc, MMCHS_CON, con);
 
 	/* Write a dummy command 0x00 */
-	omap_mmc_write_4(sc, MMCHS_CMD, 0x00000000);
+	ti_mmchs_write_4(sc, MMCHS_CMD, 0x00000000);
 
 	/* Loop waiting for the command to finish */
 	timeout = hz;
@@ -835,13 +835,13 @@ omap_mmc_send_init_stream(struct omap_mm
 			device_printf(sc->sc_dev, "Error: first stream init timed out\n");
 			break;
 		}
-	} while (!(omap_mmc_read_4(sc, MMCHS_STAT) & MMCHS_STAT_CC));
+	} while (!(ti_mmchs_read_4(sc, MMCHS_STAT) & MMCHS_STAT_CC));
 
 	/* Clear the command complete status bit */
-	omap_mmc_write_4(sc, MMCHS_STAT, MMCHS_STAT_CC);
+	ti_mmchs_write_4(sc, MMCHS_STAT, MMCHS_STAT_CC);
 
 	/* Write another dummy command 0x00 */
-	omap_mmc_write_4(sc, MMCHS_CMD, 0x00000000);
+	ti_mmchs_write_4(sc, MMCHS_CMD, 0x00000000);
 
 	/* Loop waiting for the second command to finish */
 	timeout = hz;
@@ -851,22 +851,22 @@ omap_mmc_send_init_stream(struct omap_mm
 			device_printf(sc->sc_dev, "Error: second stream init timed out\n");
 			break;
 		}
-	} while (!(omap_mmc_read_4(sc, MMCHS_STAT) & MMCHS_STAT_CC));
+	} while (!(ti_mmchs_read_4(sc, MMCHS_STAT) & MMCHS_STAT_CC));
 
 	/* Clear the stream init bit */
 	con &= ~MMCHS_CON_INIT;
-	omap_mmc_write_4(sc, MMCHS_CON, con);
+	ti_mmchs_write_4(sc, MMCHS_CON, con);
 
 	/* Clear the status register, then restore the IE and ISE registers */
-	omap_mmc_write_4(sc, MMCHS_STAT, 0xffffffff);
-	omap_mmc_read_4(sc, MMCHS_STAT);
+	ti_mmchs_write_4(sc, MMCHS_STAT, 0xffffffff);
+	ti_mmchs_read_4(sc, MMCHS_STAT);
 
-	omap_mmc_write_4(sc, MMCHS_ISE, ise);
-	omap_mmc_write_4(sc, MMCHS_IE, ie);
+	ti_mmchs_write_4(sc, MMCHS_ISE, ise);
+	ti_mmchs_write_4(sc, MMCHS_IE, ie);
 }
 
 /**
- *	omap_mmc_update_ios - sets bus/controller settings
+ *	ti_mmchs_update_ios - sets bus/controller settings
  *	@brdev: mmc bridge device handle
  *	@reqdev: device doing the request
  *
@@ -881,9 +881,9 @@ omap_mmc_send_init_stream(struct omap_mm
  *	0 if function succeeded
  */
 static int
-omap_mmc_update_ios(device_t brdev, device_t reqdev)
+ti_mmchs_update_ios(device_t brdev, device_t reqdev)
 {
-	struct omap_mmc_softc *sc;
+	struct ti_mmchs_softc *sc;
 	struct mmc_host *host;
 	struct mmc_ios *ios;
 	uint32_t clkdiv;
@@ -899,8 +899,8 @@ omap_mmc_update_ios(device_t brdev, devi
 	ios = &host->ios;
 
 	/* Read the initial values of the registers */
-	hctl_reg = omap_mmc_read_4(sc, MMCHS_HCTL);
-	con_reg = omap_mmc_read_4(sc, MMCHS_CON);
+	hctl_reg = ti_mmchs_read_4(sc, MMCHS_HCTL);
+	con_reg = ti_mmchs_read_4(sc, MMCHS_CON);
 
 	/* Set the bus width */
 	switch (ios->bus_width) {
@@ -918,8 +918,8 @@ omap_mmc_update_ios(device_t brdev, devi
 	}
 
 	/* Finally write all these settings back to the registers */
-	omap_mmc_write_4(sc, MMCHS_HCTL, hctl_reg);
-	omap_mmc_write_4(sc, MMCHS_CON, con_reg);
+	ti_mmchs_write_4(sc, MMCHS_HCTL, hctl_reg);
+	ti_mmchs_write_4(sc, MMCHS_CON, con_reg);
 
 	/* Check if we need to change the external voltage regulator */
 	if (sc->sc_cur_power_mode != ios->power_mode) {
@@ -927,7 +927,7 @@ omap_mmc_update_ios(device_t brdev, devi
 		if (ios->power_mode == power_up) {
 
 			/* Set the power level */
-			hctl_reg = omap_mmc_read_4(sc, MMCHS_HCTL);
+			hctl_reg = ti_mmchs_read_4(sc, MMCHS_HCTL);
 			hctl_reg &= ~(MMCHS_HCTL_SDVS_MASK | MMCHS_HCTL_SDBP);
 
 			if ((ios->vdd == -1) || (ios->vdd >= vdd_240)) {
@@ -938,16 +938,16 @@ omap_mmc_update_ios(device_t brdev, devi
 				hctl_reg |= MMCHS_HCTL_SDVS_V18;
 			}
 
-			omap_mmc_write_4(sc, MMCHS_HCTL, hctl_reg);
+			ti_mmchs_write_4(sc, MMCHS_HCTL, hctl_reg);
 
 			/* Set the desired voltage on the regulator */
 			if (sc->sc_vreg_dev && sc->sc_vreg_name)
 				twl_vreg_set_voltage(sc->sc_vreg_dev, sc->sc_vreg_name, mv);
 
 			/* Enable the bus power */
-			omap_mmc_write_4(sc, MMCHS_HCTL, (hctl_reg | MMCHS_HCTL_SDBP));
+			ti_mmchs_write_4(sc, MMCHS_HCTL, (hctl_reg | MMCHS_HCTL_SDBP));
 			timeout = hz;
-			while (!(omap_mmc_read_4(sc, MMCHS_HCTL) & MMCHS_HCTL_SDBP)) {
+			while (!(ti_mmchs_read_4(sc, MMCHS_HCTL) & MMCHS_HCTL_SDBP)) {
 				if (timeout-- == 0)
 					break;
 				pause("MMC_PWRON", 1);
@@ -955,8 +955,8 @@ omap_mmc_update_ios(device_t brdev, devi
 
 		} else if (ios->power_mode == power_off) {
 			/* Disable the bus power */
-			hctl_reg = omap_mmc_read_4(sc, MMCHS_HCTL);
-			omap_mmc_write_4(sc, MMCHS_HCTL, (hctl_reg & ~MMCHS_HCTL_SDBP));
+			hctl_reg = ti_mmchs_read_4(sc, MMCHS_HCTL);
+			ti_mmchs_write_4(sc, MMCHS_HCTL, (hctl_reg & ~MMCHS_HCTL_SDBP));
 
 			/* Turn the power off on the voltage regulator */
 			if (sc->sc_vreg_dev && sc->sc_vreg_name)
@@ -972,7 +972,7 @@ omap_mmc_update_ios(device_t brdev, devi
 	}
 
 	/* need the MMCHS_SYSCTL register */
-	sysctl_reg = omap_mmc_read_4(sc, MMCHS_SYSCTL);
+	sysctl_reg = ti_mmchs_read_4(sc, MMCHS_SYSCTL);
 
 	/* Just in case this hasn't been setup before, set the timeout to the default */
 	sysctl_reg &= ~MMCHS_SYSCTL_DTO_MASK;
@@ -980,7 +980,7 @@ omap_mmc_update_ios(device_t brdev, devi
 
 	/* Disable the clock output while configuring the new clock */
 	sysctl_reg &= ~(MMCHS_SYSCTL_ICE | MMCHS_SYSCTL_CEN);
-	omap_mmc_write_4(sc, MMCHS_SYSCTL, sysctl_reg);
+	ti_mmchs_write_4(sc, MMCHS_SYSCTL, sysctl_reg);
 
 	/* bus mode? */
 	if (ios->clock == 0) {
@@ -1000,36 +1000,36 @@ omap_mmc_update_ios(device_t brdev, devi
 	sysctl_reg |= MMCHS_SYSCTL_CLKD(clkdiv);
 
 	/* Write the new settings ... */
-	omap_mmc_write_4(sc, MMCHS_SYSCTL, sysctl_reg);
+	ti_mmchs_write_4(sc, MMCHS_SYSCTL, sysctl_reg);
 	/* ... write the internal clock enable bit ... */
-	omap_mmc_write_4(sc, MMCHS_SYSCTL, sysctl_reg | MMCHS_SYSCTL_ICE);
+	ti_mmchs_write_4(sc, MMCHS_SYSCTL, sysctl_reg | MMCHS_SYSCTL_ICE);
 	/* ... wait for the clock to stablise ... */
-	while (((sysctl_reg = omap_mmc_read_4(sc, MMCHS_SYSCTL)) &
+	while (((sysctl_reg = ti_mmchs_read_4(sc, MMCHS_SYSCTL)) &
 	    MMCHS_SYSCTL_ICS) == 0) {
 		continue;
 	}
 	/* ... then enable */
 	sysctl_reg |= MMCHS_SYSCTL_CEN;
-	omap_mmc_write_4(sc, MMCHS_SYSCTL, sysctl_reg);
+	ti_mmchs_write_4(sc, MMCHS_SYSCTL, sysctl_reg);
 
 	/* If the power state has changed to 'power_on' then run the init sequence*/
 	if (do_card_init) {
-		omap_mmc_send_init_stream(sc);
+		ti_mmchs_send_init_stream(sc);
 	}
 
 	/* Set the bus mode (opendrain or normal) */
-	con_reg = omap_mmc_read_4(sc, MMCHS_CON);
+	con_reg = ti_mmchs_read_4(sc, MMCHS_CON);
 	if (ios->bus_mode == opendrain)
 		con_reg |= MMCHS_CON_OD;
 	else
 		con_reg &= ~MMCHS_CON_OD;
-	omap_mmc_write_4(sc, MMCHS_CON, con_reg);
+	ti_mmchs_write_4(sc, MMCHS_CON, con_reg);
 
 	return (0);
 }
 
 /**
- *	omap_mmc_acquire_host -
+ *	ti_mmchs_acquire_host -
  *	@brdev: mmc bridge device handle
  *	@reqdev: device doing the request
  *
@@ -1043,9 +1043,9 @@ omap_mmc_update_ios(device_t brdev, devi
  *
  */
 static int
-omap_mmc_acquire_host(device_t brdev, device_t reqdev)
+ti_mmchs_acquire_host(device_t brdev, device_t reqdev)
 {
-	struct omap_mmc_softc *sc = device_get_softc(brdev);
+	struct ti_mmchs_softc *sc = device_get_softc(brdev);
 	int err = 0;
 
 	OMAP_MMC_LOCK(sc);
@@ -1062,7 +1062,7 @@ omap_mmc_acquire_host(device_t brdev, de
 }
 
 /**
- *	omap_mmc_release_host -
+ *	ti_mmchs_release_host -
  *	@brdev: mmc bridge device handle
  *	@reqdev: device doing the request
  *
@@ -1076,9 +1076,9 @@ omap_mmc_acquire_host(device_t brdev, de
  *
  */
 static int
-omap_mmc_release_host(device_t brdev, device_t reqdev)
+ti_mmchs_release_host(device_t brdev, device_t reqdev)
 {
-	struct omap_mmc_softc *sc = device_get_softc(brdev);
+	struct ti_mmchs_softc *sc = device_get_softc(brdev);
 
 	OMAP_MMC_LOCK(sc);
 
@@ -1091,7 +1091,7 @@ omap_mmc_release_host(device_t brdev, de
 }
 
 /**
- *	omap_mmc_read_ivar - returns driver conf variables
+ *	ti_mmchs_read_ivar - returns driver conf variables
  *	@bus:
  *	@child:
  *	@which: The variable to get the result for
@@ -1107,9 +1107,9 @@ omap_mmc_release_host(device_t brdev, de
  *	EINVAL if the variable requested is invalid
  */
 static int
-omap_mmc_read_ivar(device_t bus, device_t child, int which, uintptr_t *result)
+ti_mmchs_read_ivar(device_t bus, device_t child, int which, uintptr_t *result)
 {
-	struct omap_mmc_softc *sc = device_get_softc(bus);
+	struct ti_mmchs_softc *sc = device_get_softc(bus);
 
 	switch (which) {
 		case MMCBR_IVAR_BUS_MODE:
@@ -1158,7 +1158,7 @@ omap_mmc_read_ivar(device_t bus, device_
 }
 
 /**
- *	omap_mmc_write_ivar - writes a driver conf variables
+ *	ti_mmchs_write_ivar - writes a driver conf variables
  *	@bus:
  *	@child:
  *	@which: The variable to set
@@ -1174,9 +1174,9 @@ omap_mmc_read_ivar(device_t bus, device_
  *	EINVAL if the variable requested is invalid
  */
 static int
-omap_mmc_write_ivar(device_t bus, device_t child, int which, uintptr_t value)
+ti_mmchs_write_ivar(device_t bus, device_t child, int which, uintptr_t value)
 {
-	struct omap_mmc_softc *sc = device_get_softc(bus);
+	struct ti_mmchs_softc *sc = device_get_softc(bus);
 
 	switch (which) {
 		case MMCBR_IVAR_BUS_MODE:
@@ -1217,7 +1217,7 @@ omap_mmc_write_ivar(device_t bus, device
 }
 
 /**
- *	omap_mmc_hw_init - initialises the MMC/SD/SIO controller
+ *	ti_mmchs_hw_init - initialises the MMC/SD/SIO controller
  *	@dev: mmc device handle
  *
  *	Called by the driver attach function during driver initialisation. This
@@ -1230,9 +1230,9 @@ omap_mmc_write_ivar(device_t bus, device
  *	nothing
  */
 static void
-omap_mmc_hw_init(device_t dev)
+ti_mmchs_hw_init(device_t dev)
 {
-	struct omap_mmc_softc *sc = device_get_softc(dev);
+	struct ti_mmchs_softc *sc = device_get_softc(dev);
 	clk_ident_t clk;
 	unsigned long timeout;
 	uint32_t sysctl;
@@ -1254,9 +1254,9 @@ omap_mmc_hw_init(device_t dev)
 	}
 
 	/* 2: Issue a softreset to the controller */
-	omap_mmc_write_4(sc, MMCHS_SYSCONFIG, 0x0002);
+	ti_mmchs_write_4(sc, MMCHS_SYSCONFIG, 0x0002);
 	timeout = 100;
-	while ((omap_mmc_read_4(sc, MMCHS_SYSSTATUS) & 0x01) == 0x0) {
+	while ((ti_mmchs_read_4(sc, MMCHS_SYSSTATUS) & 0x01) == 0x0) {
 		DELAY(1000);
 		if (timeout-- == 0) {
 			device_printf(dev, "Error: reset operation timed out\n");
@@ -1265,10 +1265,10 @@ omap_mmc_hw_init(device_t dev)
 	}
 
 	/* 3: Reset both the command and data state machines */
-	sysctl = omap_mmc_read_4(sc, MMCHS_SYSCTL);
-	omap_mmc_write_4(sc, MMCHS_SYSCTL, sysctl | MMCHS_SYSCTL_SRA);
+	sysctl = ti_mmchs_read_4(sc, MMCHS_SYSCTL);
+	ti_mmchs_write_4(sc, MMCHS_SYSCTL, sysctl | MMCHS_SYSCTL_SRA);
 	timeout = 100;
-	while ((omap_mmc_read_4(sc, MMCHS_SYSCTL) & MMCHS_SYSCTL_SRA) != 0x0) {
+	while ((ti_mmchs_read_4(sc, MMCHS_SYSCTL) & MMCHS_SYSCTL_SRA) != 0x0) {
 		DELAY(1000);
 		if (timeout-- == 0) {
 			device_printf(dev, "Error: reset operation timed out\n");
@@ -1277,10 +1277,10 @@ omap_mmc_hw_init(device_t dev)
 	}
 
 	/* 4: Set initial host configuration (1-bit mode, pwroff) and capabilities */
-	omap_mmc_write_4(sc, MMCHS_HCTL, MMCHS_HCTL_SDVS_V30);
+	ti_mmchs_write_4(sc, MMCHS_HCTL, MMCHS_HCTL_SDVS_V30);
 
-	capa = omap_mmc_read_4(sc, MMCHS_CAPA);
-	omap_mmc_write_4(sc, MMCHS_CAPA, capa | MMCHS_CAPA_VS30 | MMCHS_CAPA_VS18);
+	capa = ti_mmchs_read_4(sc, MMCHS_CAPA);
+	ti_mmchs_write_4(sc, MMCHS_CAPA, capa | MMCHS_CAPA_VS30 | MMCHS_CAPA_VS18);
 
 	/* 5: Set the initial bus configuration
 	 *       0  CTPL_MMC_SD      : Control Power for DAT1 line
@@ -1294,13 +1294,13 @@ omap_mmc_hw_init(device_t dev)
 	 *       0  INIT_DISABLED    : Send initialization stream
 	 *       0  OD_DISABLED      : No Open Drain
 	 */
-	con = omap_mmc_read_4(sc, MMCHS_CON) & MMCHS_CON_DVAL_MASK;
-	omap_mmc_write_4(sc, MMCHS_CON, con);
+	con = ti_mmchs_read_4(sc, MMCHS_CON) & MMCHS_CON_DVAL_MASK;
+	ti_mmchs_write_4(sc, MMCHS_CON, con);
 
 }
 
 /**
- *	omap_mmc_fini - shutdown the MMC/SD/SIO controller
+ *	ti_mmchs_fini - shutdown the MMC/SD/SIO controller
  *	@dev: mmc device handle
  *
  *	Responsible for shutting done the MMC controller, this function may be
@@ -1313,13 +1313,13 @@ omap_mmc_hw_init(device_t dev)
  *	nothing
  */
 static void
-omap_mmc_hw_fini(device_t dev)
+ti_mmchs_hw_fini(device_t dev)
 {
-	struct omap_mmc_softc *sc = device_get_softc(dev);
+	struct ti_mmchs_softc *sc = device_get_softc(dev);
 
 	/* Disable all interrupts */
-	omap_mmc_write_4(sc, MMCHS_ISE, 0x00000000);
-	omap_mmc_write_4(sc, MMCHS_IE, 0x00000000);
+	ti_mmchs_write_4(sc, MMCHS_ISE, 0x00000000);
+	ti_mmchs_write_4(sc, MMCHS_IE, 0x00000000);
 
 	/* Disable the functional and interface clocks */
 	switch (device_get_unit(dev)) {
@@ -1336,7 +1336,7 @@ omap_mmc_hw_fini(device_t dev)
 }
 
 /**
- *	omap_mmc_init_dma_channels - initalise the DMA channels
+ *	ti_mmchs_init_dma_channels - initalise the DMA channels
  *	@sc: driver soft context
  *
  *	Attempts to activate an RX and TX DMA channel for the MMC device.
@@ -1348,7 +1348,7 @@ omap_mmc_hw_fini(device_t dev)
  *	0 on success, a negative error code on failure.
  */
 static int
-omap_mmc_init_dma_channels(struct omap_mmc_softc *sc)
+ti_mmchs_init_dma_channels(struct ti_mmchs_softc *sc)
 {
 	int err;
 	int unit;
@@ -1392,7 +1392,7 @@ omap_mmc_init_dma_channels(struct omap_m
 	}
 
 	/* Activate a RX channel from the OMAP DMA driver */
-	err = omap_dma_activate_channel(&sc->sc_dmach_rd, omap_mmc_dma_intr, sc);
+	err = omap_dma_activate_channel(&sc->sc_dmach_rd, ti_mmchs_dma_intr, sc);
 	if (err != 0)
 		return(err);
 
@@ -1406,7 +1406,7 @@ omap_mmc_init_dma_channels(struct omap_m
 	    OMAP_SDMA_ADDR_POST_INCREMENT);
 
 	/* Activate and configure the TX DMA channel */
-	err = omap_dma_activate_channel(&sc->sc_dmach_wr, omap_mmc_dma_intr, sc);
+	err = omap_dma_activate_channel(&sc->sc_dmach_wr, ti_mmchs_dma_intr, sc);
 	if (err != 0)
 		return(err);
 
@@ -1423,7 +1423,7 @@ omap_mmc_init_dma_channels(struct omap_m
 }
 
 /**
- *	omap_mmc_deactivate - deactivates the driver
+ *	ti_mmchs_deactivate - deactivates the driver
  *	@dev: mmc device handle
  *
  *	Unmaps the register set and releases the IRQ resource.
@@ -1435,9 +1435,9 @@ omap_mmc_init_dma_channels(struct omap_m
  *	nothing
  */
 static void
-omap_mmc_deactivate(device_t dev)
+ti_mmchs_deactivate(device_t dev)
 {
-	struct omap_mmc_softc *sc= device_get_softc(dev);
+	struct ti_mmchs_softc *sc= device_get_softc(dev);
 
 	/* Remove the IRQ handler */
 	if (sc->sc_irq_h != NULL) {
@@ -1470,7 +1470,7 @@ omap_mmc_deactivate(device_t dev)
 }
 
 /**
- *	omap_mmc_activate - activates the driver
+ *	ti_mmchs_activate - activates the driver
  *	@dev: mmc device handle
  *
  *	Maps in the register set and requests an IRQ handler for the MMC controller.
@@ -1483,9 +1483,9 @@ omap_mmc_deactivate(device_t dev)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Feb 29 22:21:59 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7ADD9106564A;
	Wed, 29 Feb 2012 22:21:59 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6A6368FC15;
	Wed, 29 Feb 2012 22:21:59 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1TMLxIg047638;
	Wed, 29 Feb 2012 22:21:59 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1TMLxPA047636;
	Wed, 29 Feb 2012 22:21:59 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201202292221.q1TMLxPA047636@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Wed, 29 Feb 2012 22:21:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232319 - projects/armv6/sys/arm/arm
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Feb 2012 22:21:59 -0000

Author: cognet
Date: Wed Feb 29 22:21:58 2012
New Revision: 232319
URL: http://svn.freebsd.org/changeset/base/232319

Log:
  We shouldn't dereference curthread here

Modified:
  projects/armv6/sys/arm/arm/swtch.S

Modified: projects/armv6/sys/arm/arm/swtch.S
==============================================================================
--- projects/armv6/sys/arm/arm/swtch.S	Wed Feb 29 22:06:44 2012	(r232318)
+++ projects/armv6/sys/arm/arm/swtch.S	Wed Feb 29 22:21:58 2012	(r232319)
@@ -348,7 +348,6 @@ ENTRY(cpu_switch)
 	beq	.Lcs_same_vector
 	str	r0, [r7]		/* Otherwise, update it */
 
-#if !defined(CPU_ARM11) && !defined(CPU_CORTEXA) && !defined(CPU_MV_PJ4B)
 	/*
 	 * Need to sync the cache to make sure that last store is
 	 * visible to the MMU.
@@ -358,7 +357,6 @@ ENTRY(cpu_switch)
 	mov	r1, #4
 	mov	lr, pc
 	ldr	pc, [r2, #CF_DCACHE_WB_RANGE]
-#endif
 
 .Lcs_same_vector:
 #endif /* PMAP_INCLUDE_PTE_SYNC */
@@ -396,7 +394,6 @@ ENTRY(cpu_switch)
 	str	r6, [r4, #TD_LOCK]
 	ldr	r6, .Lblocked_lock
 	GET_CURTHREAD_PTR(r3)
-	ldr	r3, [r3]
 
 1:
 	ldr	r4, [r3, #TD_LOCK]

From owner-svn-src-projects@FreeBSD.ORG  Thu Mar  1 10:55:02 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 27945106568A;
	Thu,  1 Mar 2012 10:55:02 +0000 (UTC)
	(envelope-from glebius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0A1C48FC15;
	Thu,  1 Mar 2012 10:55:02 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q21At2L1075192;
	Thu, 1 Mar 2012 10:55:02 GMT (envelope-from glebius@svn.freebsd.org)
Received: (from glebius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q21At17o075186;
	Thu, 1 Mar 2012 10:55:01 GMT (envelope-from glebius@svn.freebsd.org)
Message-Id: <201203011055.q21At17o075186@svn.freebsd.org>
From: Gleb Smirnoff <glebius@FreeBSD.org>
Date: Thu, 1 Mar 2012 10:55:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232330 - projects/pf/head/sys/contrib/pf/net
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 01 Mar 2012 10:55:02 -0000

Author: glebius
Date: Thu Mar  1 10:55:01 2012
New Revision: 232330
URL: http://svn.freebsd.org/changeset/base/232330

Log:
  Locking pf normalization code:
  - Make struct pf_frent, pf_frcache, pf_fragment
    private to pf_norm.c.
  - Make fragment UMA zones, TAILQs and RB-trees
    static to pf_norm.c
  - Introduce mutex pf_frag_mtx for the above fragment
    storage structures.
  - Assert the mutex in storage manipulation functions,
    obtain it in pf_normalize_ip() and in pf_normalize_ip6(),
    when we are dealing with a fragment.
  - TODO: lock pf_normalize_tcp_stateful()
  
  Other bits in progress:
  - Rename the main pf_task_mtx, to pf_mtx, description
    "pf Giant".
  - Introduce rwlock pf_rules_lock, that protects rules.
  - Obtain the rwlock in pf_test(), pf_test6().
  - Micro-optimise pf_test(), pf_test6() obtaining the pf Giant
    after initial assertions and basic checks.

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c
  projects/pf/head/sys/contrib/pf/net/pf.c
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
  projects/pf/head/sys/contrib/pf/net/pf_norm.c
  projects/pf/head/sys/contrib/pf/net/pf_ruleset.c
  projects/pf/head/sys/contrib/pf/net/pfvar.h

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Thu Mar  1 10:21:10 2012	(r232329)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Thu Mar  1 10:55:01 2012	(r232330)
@@ -348,7 +348,7 @@ pfsync_clone_create(struct if_clone *ifc
 	ifp->if_hdrlen = sizeof(struct pfsync_header);
 	ifp->if_mtu = ETHERMTU;
 	callout_init(&sc->sc_tmo, CALLOUT_MPSAFE);
-	callout_init_mtx(&sc->sc_bulk_tmo, &pf_task_mtx, 0);
+	callout_init_mtx(&sc->sc_bulk_tmo, &pf_mtx, 0);
 	callout_init(&sc->sc_bulkfail_tmo, CALLOUT_MPSAFE);
 
 	if_attach(ifp);

Modified: projects/pf/head/sys/contrib/pf/net/pf.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf.c	Thu Mar  1 10:21:10 2012	(r232329)
+++ projects/pf/head/sys/contrib/pf/net/pf.c	Thu Mar  1 10:55:01 2012	(r232330)
@@ -5354,48 +5354,41 @@ pf_test(int dir, struct ifnet *ifp, stru
 	struct pf_pdesc		 pd;
 	int			 off, dirndx, pqid = 0;
 
-	PF_LOCK();
+	M_ASSERTPKTHDR(m);
+
 	if (!V_pf_status.running)
-	{
-		PF_UNLOCK();
 		return (PF_PASS);
-	}
 
 	memset(&pd, 0, sizeof(pd));
 	if ((pd.pf_mtag = pf_get_mtag(m)) == NULL) {
-		PF_UNLOCK();
 		DPFPRINTF(PF_DEBUG_URGENT,
 		    ("pf_test: pf_get_mtag returned NULL\n"));
 		return (PF_DROP);
 	}
-		kif = (struct pfi_kif *)ifp->if_pf_kif;
+	kif = (struct pfi_kif *)ifp->if_pf_kif;
 
 	if (kif == NULL) {
-		PF_UNLOCK();
 		DPFPRINTF(PF_DEBUG_URGENT,
 		    ("pf_test: kif == NULL, if_xname %s\n", ifp->if_xname));
 		return (PF_DROP);
 	}
 	if (kif->pfik_flags & PFI_IFLAG_SKIP)
-	{
-		PF_UNLOCK();
 		return (PF_PASS);
-	}
 
-	M_ASSERTPKTHDR(m);
-
-	if (m->m_pkthdr.len < (int)sizeof(*h)) {
+	if (m->m_flags & M_SKIP_FIREWALL)
+		return (PF_PASS);
+	
+	if (m->m_pkthdr.len < (int)sizeof(struct ip)) {
 		action = PF_DROP;
 		REASON_SET(&reason, PFRES_SHORT);
 		log = 1;
+		PF_LOCK();
 		goto done;
 	}
 
-	if (m->m_flags & M_SKIP_FIREWALL) {
-		PF_UNLOCK();
-		return (PF_PASS);
-	}
-	
+	PF_LOCK();
+	PF_RULES_RLOCK();
+
 	if (ip_divert_ptr != NULL &&
 	    ((ipfwtag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL)) != NULL)) {
 		struct ipfw_rule_ref *rr = (struct ipfw_rule_ref *)(ipfwtag+1);
@@ -5407,9 +5400,8 @@ pf_test(int dir, struct ifnet *ifp, stru
 			m->m_flags |= M_FASTFWD_OURS;
 			pd.pf_mtag->flags &= ~PF_FASTFWD_OURS_PRESENT;
 		}
-	} else
-	/* We do IP header normalization and packet reassembly here */
-	if (pf_normalize_ip(m0, dir, kif, &reason, &pd) != PF_PASS) {
+	} else if (pf_normalize_ip(m0, dir, kif, &reason, &pd) != PF_PASS) {
+		/* We do IP header normalization and packet reassembly here */
 		action = PF_DROP;
 		goto done;
 	}
@@ -5417,7 +5409,7 @@ pf_test(int dir, struct ifnet *ifp, stru
 	h = mtod(m, struct ip *);
 
 	off = h->ip_hl << 2;
-	if (off < (int)sizeof(*h)) {
+	if (off < (int)sizeof(struct ip)) {
 		action = PF_DROP;
 		REASON_SET(&reason, PFRES_SHORT);
 		log = 1;
@@ -5591,28 +5583,27 @@ done:
 	    (ntohl(pd.dst->v4.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET)
 		m->m_flags |= M_SKIP_FIREWALL;
 
-	if (action == PF_PASS && r->divert.port &&
-	    ip_divert_ptr != NULL && !PACKET_LOOPED()) {
+	if (action == PF_PASS && r->divert.port && ip_divert_ptr != NULL &&
+	    !PACKET_LOOPED()) {
 
 		ipfwtag = m_tag_alloc(MTAG_IPFW_RULE, 0,
-				sizeof(struct ipfw_rule_ref), M_NOWAIT | M_ZERO);
+		    sizeof(struct ipfw_rule_ref), M_NOWAIT | M_ZERO);
 		if (ipfwtag != NULL) {
 			((struct ipfw_rule_ref *)(ipfwtag+1))->info =
 			    ntohs(r->divert.port);
 			((struct ipfw_rule_ref *)(ipfwtag+1))->rulenum = dir;
 
-			m_tag_prepend(m, ipfwtag);
-
+			PF_RULES_RUNLOCK();
 			PF_UNLOCK();
 
+			m_tag_prepend(m, ipfwtag);
 			if (m->m_flags & M_FASTFWD_OURS) {
 				pd.pf_mtag->flags |= PF_FASTFWD_OURS_PRESENT;
 				m->m_flags &= ~M_FASTFWD_OURS;
 			}
-
-			ip_divert_ptr(*m0,
-				dir ==  PF_IN ? DIR_IN : DIR_OUT);
+			ip_divert_ptr(*m0, dir ==  PF_IN ? DIR_IN : DIR_OUT);
 			*m0 = NULL;
+
 			return (action);
 		} else {
 			/* XXX: ipfw has the same behaviour! */
@@ -5697,7 +5688,9 @@ done:
 			pf_route(m0, r, dir, kif->pfik_ifp, s, &pd);
 		break;
 	}
+	PF_RULES_RUNLOCK();
 	PF_UNLOCK();
+
 	return (action);
 }
 #endif /* INET */
@@ -5717,46 +5710,40 @@ pf_test6(int dir, struct ifnet *ifp, str
 	struct pf_pdesc		 pd;
 	int			 off, terminal = 0, dirndx, rh_cnt = 0;
 
-	PF_LOCK();
-	if (!V_pf_status.running) {
-		PF_UNLOCK();
+	M_ASSERTPKTHDR(m);
+
+	if (!V_pf_status.running)
 		return (PF_PASS);
-	}
 
 	memset(&pd, 0, sizeof(pd));
 	if ((pd.pf_mtag = pf_get_mtag(m)) == NULL) {
-		PF_UNLOCK();
 		DPFPRINTF(PF_DEBUG_URGENT,
 		    ("pf_test: pf_get_mtag returned NULL\n"));
 		return (PF_DROP);
 	}
-		kif = (struct pfi_kif *)ifp->if_pf_kif;
 
+	if (pd.pf_mtag->flags & PF_TAG_GENERATED)
+		return (PF_PASS);
+
+	kif = (struct pfi_kif *)ifp->if_pf_kif;
 	if (kif == NULL) {
-		PF_UNLOCK();
 		DPFPRINTF(PF_DEBUG_URGENT,
 		    ("pf_test6: kif == NULL, if_xname %s\n", ifp->if_xname));
 		return (PF_DROP);
 	}
 	if (kif->pfik_flags & PFI_IFLAG_SKIP)
-	{
-		PF_UNLOCK();
 		return (PF_PASS);
-	}
-
-	M_ASSERTPKTHDR(m);
 
 	if (m->m_pkthdr.len < (int)sizeof(*h)) {
 		action = PF_DROP;
 		REASON_SET(&reason, PFRES_SHORT);
 		log = 1;
+		PF_LOCK();
 		goto done;
 	}
 
-	if (pd.pf_mtag->flags & PF_TAG_GENERATED) {
-		PF_UNLOCK();
-		return (PF_PASS);
-	}
+	PF_LOCK();
+	PF_RULES_RLOCK();
 
 	/* We do IP header normalization and packet reassembly here */
 	if (pf_normalize_ip6(m0, dir, kif, &reason, &pd) != PF_PASS) {
@@ -6081,6 +6068,7 @@ done:
 		break;
 	}
 
+	PF_RULES_RUNLOCK();
 	PF_UNLOCK();
 	return (action);
 }

Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Thu Mar  1 10:21:10 2012	(r232329)
+++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Thu Mar  1 10:55:01 2012	(r232330)
@@ -104,7 +104,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/mutex.h>
 #include <net/pfil.h>
 
-static void		 init_zone_var(void);
 static void		 cleanup_pf_zone(void);
 int			 pfattach(void);
 static struct pf_pool	*pf_get_pool(char *, u_int32_t, u_int8_t, u_int32_t,
@@ -208,7 +207,9 @@ static struct cdevsw pf_cdevsw = {
 static volatile VNET_DEFINE(int, pf_pfil_hooked);
 #define V_pf_pfil_hooked	VNET(pf_pfil_hooked)
 VNET_DEFINE(int,		pf_end_threads);
-struct mtx			pf_task_mtx;
+
+struct mtx			pf_mtx;
+struct rwlock			pf_rules_lock;
 
 /* pfsync */
 pfsync_state_import_t 		*pfsync_state_import_ptr = NULL;
@@ -233,25 +234,19 @@ static void
 init_pf_mutex(void)
 {
 
-	mtx_init(&pf_task_mtx, "pf task mtx", NULL, MTX_DEF);
+	mtx_init(&pf_mtx, "pf Giant", NULL, MTX_DEF);
+	rw_init(&pf_rules_lock, "pf rulesets");
+	/* XXXGL: name */
+	sx_init(&V_pf_consistency_lock, "pf_statetbl_lock");
 }
 
 static void
 destroy_pf_mutex(void)
 {
 
-	mtx_destroy(&pf_task_mtx);
-}
-
-static void
-init_zone_var(void)
-{
-	V_pf_src_tree_pl = V_pf_rule_pl = NULL;
-	V_pf_state_pl = V_pf_state_key_pl = V_pf_state_item_pl = NULL;
-	V_pf_altq_pl = V_pf_pooladdr_pl = NULL;
-	V_pf_frent_pl = V_pf_frag_pl = V_pf_cache_pl = V_pf_cent_pl = NULL;
-	V_pf_state_scrub_pl = NULL;
-	V_pfr_ktable_pl = V_pfr_kentry_pl = NULL;
+	mtx_destroy(&pf_mtx);
+	rw_destroy(&pf_rules_lock);
+	sx_destroy(&V_pf_consistency_lock);
 }
 
 static void
@@ -265,13 +260,8 @@ cleanup_pf_zone(void)
 	uma_zdestroy(V_pf_state_item_pl);
 	uma_zdestroy(V_pf_altq_pl);
 	uma_zdestroy(V_pf_pooladdr_pl);
-	uma_zdestroy(V_pf_frent_pl);
-	uma_zdestroy(V_pf_frag_pl);
-	uma_zdestroy(V_pf_cache_pl);
-	uma_zdestroy(V_pf_cent_pl);
 	uma_zdestroy(V_pfr_ktable_pl);
 	uma_zdestroy(V_pfr_kentry_pl);
-	uma_zdestroy(V_pf_state_scrub_pl);
 	uma_zdestroy(V_pfi_addr_pl);
 }
 
@@ -300,29 +290,17 @@ pfattach(void)
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	V_pfr_kentry_pl = uma_zcreate("pfrkentry", sizeof(struct pfr_kentry),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_frent_pl = uma_zcreate("pffrent", sizeof(struct pf_frent),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_frag_pl = uma_zcreate("pffrag", sizeof(struct pf_fragment),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_cache_pl = uma_zcreate("pffrcache", sizeof(struct pf_fragment),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_cent_pl = uma_zcreate("pffrcent", sizeof(struct pf_frcache),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_state_scrub_pl = uma_zcreate("pfstatescrub",
-	    sizeof(struct pf_state_scrub),  NULL, NULL, NULL, NULL,
-	    UMA_ALIGN_PTR, 0);
 	V_pfi_addr_pl = uma_zcreate("pfiaddrpl", sizeof(struct pfi_dynaddr),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	pfr_initialize();
 	pfi_initialize();
 	pf_osfp_initialize();
+	pf_normalize_init();
 
 	V_pf_pool_limits[PF_LIMIT_STATES].pp = V_pf_state_pl;
 	V_pf_pool_limits[PF_LIMIT_STATES].limit = PFSTATE_HIWAT;
 	V_pf_pool_limits[PF_LIMIT_SRC_NODES].pp = V_pf_src_tree_pl;
 	V_pf_pool_limits[PF_LIMIT_SRC_NODES].limit = PFSNODE_HIWAT;
-	V_pf_pool_limits[PF_LIMIT_FRAGS].pp = V_pf_frent_pl;
-	V_pf_pool_limits[PF_LIMIT_FRAGS].limit = PFFRAG_FRENT_HIWAT;
 	V_pf_pool_limits[PF_LIMIT_TABLES].pp = V_pfr_ktable_pl;
 	V_pf_pool_limits[PF_LIMIT_TABLES].limit = PFR_KTABLE_HIWAT;
 	V_pf_pool_limits[PF_LIMIT_TABLE_ENTRIES].pp = V_pfr_kentry_pl;
@@ -369,8 +347,6 @@ pfattach(void)
 	my_timeout[PFTM_ADAPTIVE_START] = PFSTATE_ADAPT_START;
 	my_timeout[PFTM_ADAPTIVE_END] = PFSTATE_ADAPT_END;
 
-	pf_normalize_init();
-
 	bzero(&V_pf_status, sizeof(V_pf_status));
 	V_pf_status.debug = PF_DEBUG_URGENT;
 
@@ -3533,8 +3509,6 @@ pf_load(void)
 
 	init_pf_mutex();
 	pf_dev = make_dev(&pf_cdevsw, 0, 0, 0, 0600, PF_NAME);
-	init_zone_var();
-	sx_init(&V_pf_consistency_lock, "pf_statetbl_lock");
 	if ((error = pfattach()) != 0)
 		return (error);
 
@@ -3565,8 +3539,9 @@ pf_unload(void)
 	V_pf_end_threads = 1;
 	while (V_pf_end_threads < 2) {
 		wakeup_one(pf_purge_thread);
-		msleep(pf_purge_thread, &pf_task_mtx, 0, "pftmo", hz);
+		msleep(pf_purge_thread, &pf_mtx, 0, "pftmo", hz);
 	}
+	pf_normalize_cleanup();
 	pfi_cleanup();
 	pf_osfp_flush();
 	pf_osfp_cleanup();
@@ -3574,8 +3549,8 @@ pf_unload(void)
 	PF_UNLOCK();
 	destroy_dev(pf_dev);
 	destroy_pf_mutex();
-	sx_destroy(&V_pf_consistency_lock);
-	return error;
+
+	return (error);
 }
 
 static int

Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_norm.c	Thu Mar  1 10:21:10 2012	(r232329)
+++ projects/pf/head/sys/contrib/pf/net/pf_norm.c	Thu Mar  1 10:55:01 2012	(r232330)
@@ -68,30 +68,75 @@ __FBSDID("$FreeBSD$");
 
 #include <net/pfvar.h>
 
-
+struct pf_frent {
+	LIST_ENTRY(pf_frent) fr_next;
+	struct ip *fr_ip;
+	struct mbuf *fr_m;
+};
+
+struct pf_frcache {
+	LIST_ENTRY(pf_frcache) fr_next;
+	uint16_t		fr_off;
+	uint16_t		fr_end;
+};
+
+struct pf_fragment {
+	RB_ENTRY(pf_fragment) fr_entry;
+	TAILQ_ENTRY(pf_fragment) frag_next;
+	struct in_addr	fr_src;
+	struct in_addr	fr_dst;
+	u_int8_t	fr_p;		/* protocol of this fragment */
+	u_int8_t	fr_flags;	/* status flags */
 #define PFFRAG_SEENLAST	0x0001		/* Seen the last fragment for this */
 #define PFFRAG_NOBUFFER	0x0002		/* Non-buffering fragment cache */
 #define PFFRAG_DROP	0x0004		/* Drop all fragments */
 #define BUFFER_FRAGMENTS(fr)	(!((fr)->fr_flags & PFFRAG_NOBUFFER))
-
+	u_int16_t	fr_id;		/* fragment id for reassemble */
+	u_int16_t	fr_max;		/* fragment data max */
+	u_int32_t	fr_timeout;
+#define	fr_queue	fr_u.fru_queue
+#define	fr_cache	fr_u.fru_cache
+	union {
+		LIST_HEAD(pf_fragq, pf_frent) fru_queue;	/* buffering */
+		LIST_HEAD(pf_cacheq, pf_frcache) fru_cache;	/* non-buf */
+	} fr_u;
+};
+
+static struct mtx pf_frag_mtx;
+#define PF_FRAG_LOCK()		mtx_lock(&pf_frag_mtx)
+#define PF_FRAG_UNLOCK()	mtx_unlock(&pf_frag_mtx)
+#define PF_FRAG_ASSERT()	mtx_assert(&pf_frag_mtx, MA_OWNED)
+
+VNET_DEFINE(uma_zone_t, pf_state_scrub_pl);	/* XXX: shared with pfsync */
+
+static VNET_DEFINE(uma_zone_t, pf_frent_pl);
+#define	V_pf_frent_pl	VNET(pf_frent_pl)
+static VNET_DEFINE(uma_zone_t, pf_frag_pl);
+#define	V_pf_frag_pl	VNET(pf_frag_pl)
+static VNET_DEFINE(uma_zone_t, pf_cache_pl);
+#define	V_pf_cache_pl	VNET(pf_cache_pl)
+static VNET_DEFINE(uma_zone_t, pf_cent_pl);
+#define	V_pf_cent_pl	VNET(pf_cent_pl)
+static VNET_DEFINE(int, pf_nfrents);
+#define	V_pf_nfrents	VNET(pf_nfrents)
+static VNET_DEFINE(int, pf_ncache);
+#define	V_pf_ncache	VNET(pf_ncache)
 
 TAILQ_HEAD(pf_fragqueue, pf_fragment);
 TAILQ_HEAD(pf_cachequeue, pf_fragment);
-VNET_DEFINE(struct pf_fragqueue,	pf_fragqueue);
+static VNET_DEFINE(struct pf_fragqueue,	pf_fragqueue);
 #define	V_pf_fragqueue			VNET(pf_fragqueue)
-VNET_DEFINE(struct pf_cachequeue,	pf_cachequeue);
+static VNET_DEFINE(struct pf_cachequeue,	pf_cachequeue);
 #define	V_pf_cachequeue			VNET(pf_cachequeue)
-
-static int		 pf_frag_compare(struct pf_fragment *,
-			    struct pf_fragment *);
-
 RB_HEAD(pf_frag_tree, pf_fragment);
-VNET_DEFINE(struct pf_frag_tree,	pf_frag_tree);
+static VNET_DEFINE(struct pf_frag_tree,	pf_frag_tree);
 #define	V_pf_frag_tree			VNET(pf_frag_tree)
-VNET_DEFINE(struct pf_frag_tree,	pf_cache_tree);
+static VNET_DEFINE(struct pf_frag_tree,	pf_cache_tree);
 #define	V_pf_cache_tree			VNET(pf_cache_tree)
-RB_PROTOTYPE(pf_frag_tree, pf_fragment, fr_entry, pf_frag_compare);
-RB_GENERATE(pf_frag_tree, pf_fragment, fr_entry, pf_frag_compare);
+static int		 pf_frag_compare(struct pf_fragment *,
+			    struct pf_fragment *);
+static RB_PROTOTYPE(pf_frag_tree, pf_fragment, fr_entry, pf_frag_compare);
+static RB_GENERATE(pf_frag_tree, pf_fragment, fr_entry, pf_frag_compare);
 
 /* Private prototypes */
 static void		 pf_ip2key(struct pf_fragment *, struct ip *);
@@ -117,21 +162,23 @@ static void		 pf_scrub_ip6(struct mbuf *
 	}						\
 } while(0)
 
-/* Globals */
-VNET_DEFINE(uma_zone_t,		pf_frent_pl);
-VNET_DEFINE(uma_zone_t,		pf_frag_pl);
-VNET_DEFINE(uma_zone_t,		pf_cache_pl);
-VNET_DEFINE(uma_zone_t,		pf_cent_pl);
-VNET_DEFINE(uma_zone_t,		pf_state_scrub_pl);
-
-VNET_DEFINE(int,		pf_nfrents);
-#define	V_pf_nfrents		VNET(pf_nfrents)
-VNET_DEFINE(int,		pf_ncache);
-#define	V_pf_ncache		VNET(pf_ncache)
-
 void
 pf_normalize_init(void)
 {
+
+	V_pf_frent_pl = uma_zcreate("pffrent", sizeof(struct pf_frent),
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+	/* XXXGL: two zones of struct pf_fragment */
+	V_pf_frag_pl = uma_zcreate("pffrag", sizeof(struct pf_fragment),
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+	V_pf_cache_pl = uma_zcreate("pffrcache", sizeof(struct pf_fragment),
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+	V_pf_cent_pl = uma_zcreate("pffrcent", sizeof(struct pf_frcache),
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+	V_pf_state_scrub_pl = uma_zcreate("pfstatescrub",
+	    sizeof(struct pf_state_scrub),  NULL, NULL, NULL, NULL,
+	    UMA_ALIGN_PTR, 0);
+
 	/*
 	 * XXX
 	 * No high water mark support(It's hint not hard limit).
@@ -141,10 +188,28 @@ pf_normalize_init(void)
 	uma_zone_set_max(V_pf_cache_pl, PFFRAG_FRCACHE_HIWAT);
 	uma_zone_set_max(V_pf_cent_pl, PFFRAG_FRCENT_HIWAT);
 
+	V_pf_pool_limits[PF_LIMIT_FRAGS].pp = V_pf_frent_pl;
+	V_pf_pool_limits[PF_LIMIT_FRAGS].limit = PFFRAG_FRENT_HIWAT;
+
+	mtx_init(&pf_frag_mtx, "pf fragments", NULL, MTX_DEF);
+
 	TAILQ_INIT(&V_pf_fragqueue);
 	TAILQ_INIT(&V_pf_cachequeue);
 }
 
+void
+pf_normalize_cleanup(void)
+{
+
+	uma_zdestroy(V_pf_frent_pl);
+	uma_zdestroy(V_pf_frag_pl);
+	uma_zdestroy(V_pf_cache_pl);
+	uma_zdestroy(V_pf_cent_pl);
+	uma_zdestroy(V_pf_state_scrub_pl);
+
+	mtx_destroy(&pf_frag_mtx);
+}
+
 static int
 pf_frag_compare(struct pf_fragment *a, struct pf_fragment *b)
 {
@@ -172,6 +237,7 @@ pf_purge_expired_fragments(void)
 	u_int32_t		 expire = time_second -
 				    V_pf_default_rule.timeout[PFTM_FRAG];
 
+	PF_FRAG_LOCK();
 	while ((frag = TAILQ_LAST(&V_pf_fragqueue, pf_fragqueue)) != NULL) {
 		KASSERT((BUFFER_FRAGMENTS(frag)),
 		    ("BUFFER_FRAGMENTS(frag) == 0: %s", __FUNCTION__));
@@ -195,6 +261,7 @@ pf_purge_expired_fragments(void)
 		    ("!(TAILQ_EMPTY() || TAILQ_LAST() == farg): %s",
 		    __FUNCTION__));
 	}
+	PF_FRAG_UNLOCK();
 }
 
 /*
@@ -207,6 +274,8 @@ pf_flush_fragments(void)
 	struct pf_fragment	*frag;
 	int			 goal;
 
+	PF_FRAG_ASSERT();
+
 	goal = V_pf_nfrents * 9 / 10;
 	DPFPRINTF(("trying to free > %d frents\n",
 	    V_pf_nfrents - goal));
@@ -237,6 +306,8 @@ pf_free_fragment(struct pf_fragment *fra
 	struct pf_frent		*frent;
 	struct pf_frcache	*frcache;
 
+	PF_FRAG_ASSERT();
+
 	/* Free all fragments */
 	if (BUFFER_FRAGMENTS(frag)) {
 		for (frent = LIST_FIRST(&frag->fr_queue); frent;
@@ -281,6 +352,8 @@ pf_find_fragment(struct ip *ip, struct p
 	struct pf_fragment	 key;
 	struct pf_fragment	*frag;
 
+	PF_FRAG_ASSERT();
+
 	pf_ip2key(&key, ip);
 
 	frag = RB_FIND(pf_frag_tree, tree, &key);
@@ -304,6 +377,9 @@ pf_find_fragment(struct ip *ip, struct p
 static void
 pf_remove_fragment(struct pf_fragment *frag)
 {
+
+	PF_FRAG_ASSERT();
+
 	if (BUFFER_FRAGMENTS(frag)) {
 		RB_REMOVE(pf_frag_tree, &V_pf_frag_tree, frag);
 		TAILQ_REMOVE(&V_pf_fragqueue, frag, frag_next);
@@ -329,6 +405,7 @@ pf_reassemble(struct mbuf **m0, struct p
 	u_int16_t	 ip_len = ntohs(ip->ip_len) - ip->ip_hl * 4;
 	u_int16_t	 max = ip_len + off;
 
+	PF_FRAG_ASSERT();
 	KASSERT((*frag == NULL || BUFFER_FRAGMENTS(*frag)),
 	    ("! (*frag == NULL || BUFFER_FRAGMENTS(*frag)): %s", __FUNCTION__));
 
@@ -533,6 +610,7 @@ pf_fragcache(struct mbuf **m0, struct ip
 	u_int16_t		 max = ip_len + off;
 	int			 hosed = 0;
 
+	PF_FRAG_ASSERT();
 	KASSERT((*frag == NULL || !BUFFER_FRAGMENTS(*frag)),
 	    ("!(*frag == NULL || !BUFFER_FRAGMENTS(*frag)): %s", __FUNCTION__));
 
@@ -847,6 +925,8 @@ pf_normalize_ip(struct mbuf **m0, int di
 	int			 ip_off;
 	int			 tag = -1;
 
+	PF_RULES_RASSERT();
+
 	r = TAILQ_FIRST(pf_main_ruleset.rules[PF_RULESET_SCRUB].active.ptr);
 	while (r != NULL) {
 		r->evaluations++;
@@ -924,8 +1004,9 @@ pf_normalize_ip(struct mbuf **m0, int di
 	max = fragoff + ip_len;
 
 	if ((r->rule_flag & (PFRULE_FRAGCROP|PFRULE_FRAGDROP)) == 0) {
-		/* Fully buffer all of the fragments */
 
+		/* Fully buffer all of the fragments */
+		PF_FRAG_LOCK();
 		frag = pf_find_fragment(h, &V_pf_frag_tree);
 
 		/* Check if we saw the last fragment already */
@@ -936,6 +1017,7 @@ pf_normalize_ip(struct mbuf **m0, int di
 		/* Get an entry for the fragment queue */
 		frent = uma_zalloc(V_pf_frent_pl, M_NOWAIT);
 		if (frent == NULL) {
+			PF_FRAG_UNLOCK();
 			REASON_SET(reason, PFRES_MEMORY);
 			return (PF_DROP);
 		}
@@ -947,11 +1029,14 @@ pf_normalize_ip(struct mbuf **m0, int di
 		DPFPRINTF(("reass frag %d @ %d-%d\n", h->ip_id, fragoff, max));
 		*m0 = m = pf_reassemble(m0, &frag, frent, mff);
 
-		if (m == NULL)
+		if (m == NULL) {
+			PF_FRAG_UNLOCK();
 			return (PF_DROP);
+		}
 
 		/* use mtag from concatenated mbuf chain */
 		pd->pf_mtag = pf_find_mtag(m);
+		PF_FRAG_UNLOCK();
 #ifdef DIAGNOSTIC
 		if (pd->pf_mtag == NULL) {
 			printf("%s: pf_find_mtag returned NULL(1)\n", __func__);
@@ -979,6 +1064,7 @@ pf_normalize_ip(struct mbuf **m0, int di
 			goto fragment_pass;
 		}
 
+		PF_FRAG_LOCK();
 		frag = pf_find_fragment(h, &V_pf_cache_tree);
 
 		/* Check if we saw the last fragment already */
@@ -992,6 +1078,7 @@ pf_normalize_ip(struct mbuf **m0, int di
 		*m0 = m = pf_fragcache(m0, h, &frag, mff,
 		    (r->rule_flag & PFRULE_FRAGDROP) ? 1 : 0, &nomem);
 		if (m == NULL) {
+			PF_FRAG_UNLOCK();
 			if (nomem)
 				goto no_mem;
 			goto drop;
@@ -999,6 +1086,7 @@ pf_normalize_ip(struct mbuf **m0, int di
 
 		/* use mtag from copied and trimmed mbuf chain */
 		pd->pf_mtag = pf_find_mtag(m);
+		PF_FRAG_UNLOCK();
 #ifdef DIAGNOSTIC
 		if (pd->pf_mtag == NULL) {
 			printf("%s: pf_find_mtag returned NULL(2)\n", __func__);
@@ -1051,8 +1139,10 @@ pf_normalize_ip(struct mbuf **m0, int di
 	DPFPRINTF(("dropping bad fragment\n"));
 
 	/* Free associated fragments */
-	if (frag != NULL)
+	if (frag != NULL) {
 		pf_free_fragment(frag);
+		PF_FRAG_UNLOCK();
+	}
 
 	REASON_SET(reason, PFRES_FRAG);
 	if (r != NULL && r->log)
@@ -1082,6 +1172,8 @@ pf_normalize_ip6(struct mbuf **m0, int d
 	u_int8_t		 proto;
 	int			 terminal;
 
+	PF_RULES_RASSERT();
+
 	r = TAILQ_FIRST(pf_main_ruleset.rules[PF_RULESET_SCRUB].active.ptr);
 	while (r != NULL) {
 		r->evaluations++;
@@ -1250,6 +1342,8 @@ pf_normalize_tcp(int dir, struct pfi_kif
 	u_int8_t	 flags;
 	sa_family_t	 af = pd->af;
 
+	PF_RULES_RASSERT();
+
 	r = TAILQ_FIRST(pf_main_ruleset.rules[PF_RULESET_SCRUB].active.ptr);
 	while (r != NULL) {
 		r->evaluations++;
@@ -1462,6 +1556,8 @@ pf_normalize_tcp_stateful(struct mbuf *m
 	int copyback = 0;
 	int got_ts = 0;
 
+	/* XXXGL: lock */
+
 	KASSERT((src->scrub || dst->scrub), 
 	    ("pf_normalize_tcp_statefull: src->scrub && dst->scrub!"));
 

Modified: projects/pf/head/sys/contrib/pf/net/pf_ruleset.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ruleset.c	Thu Mar  1 10:21:10 2012	(r232329)
+++ projects/pf/head/sys/contrib/pf/net/pf_ruleset.c	Thu Mar  1 10:55:01 2012	(r232330)
@@ -87,14 +87,14 @@ __FBSDID("$FreeBSD$");
 #ifdef _KERNEL
 VNET_DEFINE(struct pf_anchor_global,	pf_anchors);
 VNET_DEFINE(struct pf_anchor,		pf_main_anchor);
-#else
+#else /* ! _KERNEL */
 struct pf_anchor_global	 pf_anchors;
 struct pf_anchor	 pf_main_anchor;
 #undef V_pf_anchors
 #define V_pf_anchors		 pf_anchors
 #undef pf_main_ruleset
 #define pf_main_ruleset		 pf_main_anchor.ruleset
-#endif
+#endif /* _KERNEL */
 
 static __inline int pf_anchor_compare(struct pf_anchor *, struct pf_anchor *);
 

Modified: projects/pf/head/sys/contrib/pf/net/pfvar.h
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pfvar.h	Thu Mar  1 10:21:10 2012	(r232329)
+++ projects/pf/head/sys/contrib/pf/net/pfvar.h	Thu Mar  1 10:55:01 2012	(r232330)
@@ -202,12 +202,19 @@ struct pfi_dynaddr {
 
 #define	PF_NAME		"pf"
 
-extern struct mtx pf_task_mtx;
-
-#define	PF_LOCK_ASSERT()	mtx_assert(&pf_task_mtx, MA_OWNED)
-#define	PF_UNLOCK_ASSERT()	mtx_assert(&pf_task_mtx, MA_NOTOWNED)
-#define	PF_LOCK()		mtx_lock(&pf_task_mtx)
-#define	PF_UNLOCK()		mtx_unlock(&pf_task_mtx)
+extern struct mtx pf_mtx;
+#define	PF_LOCK_ASSERT()	mtx_assert(&pf_mtx, MA_OWNED)
+#define	PF_UNLOCK_ASSERT()	mtx_assert(&pf_mtx, MA_NOTOWNED)
+#define	PF_LOCK()		mtx_lock(&pf_mtx)
+#define	PF_UNLOCK()		mtx_unlock(&pf_mtx)
+
+extern struct rwlock pf_rules_lock;
+#define	PF_RULES_RLOCK()	rw_rlock(&pf_rules_lock)
+#define	PF_RULES_RUNLOCK()	rw_runlock(&pf_rules_lock)
+#define	PF_RULES_RASSERT()	rw_assert(&pf_rules_lock, RA_RLOCKED)
+#define	PF_RULES_WLOCK()	rw_wlock(&pf_rules_lock)
+#define	PF_RULES_WUNLOCK()	rw_wunlock(&pf_rules_lock)
+#define	PF_RULES_WASSERT()	rw_assert(&pf_rules_lock, RA_WLOCKED)
 
 #define	PF_COPYIN(uaddr, kaddr, len, r)		do {	\
 	PF_UNLOCK();					\
@@ -1769,10 +1776,6 @@ VNET_DECLARE(uma_zone_t,		 pfr_ktable_pl
 #define	V_pfr_ktable_pl			 VNET(pfr_ktable_pl)
 VNET_DECLARE(uma_zone_t,		 pfr_kentry_pl);
 #define	V_pfr_kentry_pl			 VNET(pfr_kentry_pl)
-VNET_DECLARE(uma_zone_t,		 pf_cache_pl);
-#define	V_pf_cache_pl			 VNET(pf_cache_pl)
-VNET_DECLARE(uma_zone_t,		 pf_cent_pl);
-#define	V_pf_cent_pl			 VNET(pf_cent_pl)
 VNET_DECLARE(uma_zone_t,		 pf_state_scrub_pl);
 #define	V_pf_state_scrub_pl		 VNET(pf_state_scrub_pl)
 VNET_DECLARE(uma_zone_t,		 pfi_addr_pl);
@@ -1826,6 +1829,7 @@ int	pf_match_addr_range(struct pf_addr *
 int	pf_match_port(u_int8_t, u_int16_t, u_int16_t, u_int16_t);
 
 void	pf_normalize_init(void);
+void	pf_normalize_cleanup(void);
 int	pf_normalize_ip(struct mbuf **, int, struct pfi_kif *, u_short *,
 	    struct pf_pdesc *);
 int	pf_normalize_ip6(struct mbuf **, int, struct pfi_kif *, u_short *,
@@ -1912,10 +1916,6 @@ void		 pf_qid2qname(u_int32_t, char *);
 VNET_DECLARE(struct pf_status,		 pf_status);
 #define	V_pf_status			 VNET(pf_status)
 
-VNET_DECLARE(uma_zone_t,		 pf_frent_pl);
-#define	V_pf_frent_pl			 VNET(pf_frent_pl)
-VNET_DECLARE(uma_zone_t,		 pf_frag_pl);
-#define	V_pf_frag_pl			 VNET(pf_frag_pl)
 VNET_DECLARE(struct sx,			 pf_consistency_lock);
 #define	V_pf_consistency_lock		 VNET(pf_consistency_lock)
 
@@ -1926,36 +1926,6 @@ struct pf_pool_limit {
 VNET_DECLARE(struct pf_pool_limit,		 pf_pool_limits[PF_LIMIT_MAX]);
 #define	V_pf_pool_limits			 VNET(pf_pool_limits)
 
-struct pf_frent {
-	LIST_ENTRY(pf_frent) fr_next;
-	struct ip *fr_ip;
-	struct mbuf *fr_m;
-};
-
-struct pf_frcache {
-	LIST_ENTRY(pf_frcache) fr_next;
-	uint16_t		fr_off;
-	uint16_t		fr_end;
-};
-
-struct pf_fragment {
-	RB_ENTRY(pf_fragment) fr_entry;
-	TAILQ_ENTRY(pf_fragment) frag_next;
-	struct in_addr	fr_src;
-	struct in_addr	fr_dst;
-	u_int8_t	fr_p;		/* protocol of this fragment */
-	u_int8_t	fr_flags;	/* status flags */
-	u_int16_t	fr_id;		/* fragment id for reassemble */
-	u_int16_t	fr_max;		/* fragment data max */
-	u_int32_t	fr_timeout;
-#define	fr_queue	fr_u.fru_queue
-#define	fr_cache	fr_u.fru_cache
-	union {
-		LIST_HEAD(pf_fragq, pf_frent) fru_queue;	/* buffering */
-		LIST_HEAD(pf_cacheq, pf_frcache) fru_cache;	/* non-buf */
-	} fr_u;
-};
-
 #endif /* _KERNEL */
 
 #ifdef _KERNEL

From owner-svn-src-projects@FreeBSD.ORG  Thu Mar  1 11:55:29 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 42BAB106564A;
	Thu,  1 Mar 2012 11:55:29 +0000 (UTC)
	(envelope-from glebius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2D4BF8FC15;
	Thu,  1 Mar 2012 11:55:29 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q21BtTOD077180;
	Thu, 1 Mar 2012 11:55:29 GMT (envelope-from glebius@svn.freebsd.org)
Received: (from glebius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q21BtTmO077178;
	Thu, 1 Mar 2012 11:55:29 GMT (envelope-from glebius@svn.freebsd.org)
Message-Id: <201203011155.q21BtTmO077178@svn.freebsd.org>
From: Gleb Smirnoff <glebius@FreeBSD.org>
Date: Thu, 1 Mar 2012 11:55:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232332 - projects/pf/head/sys/contrib/pf/net
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 01 Mar 2012 11:55:29 -0000

Author: glebius
Date: Thu Mar  1 11:55:28 2012
New Revision: 232332
URL: http://svn.freebsd.org/changeset/base/232332

Log:
  Use correct size argument for V_pf_state_key_pl and V_pf_state_item_pl.

Modified:
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c

Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Thu Mar  1 11:03:39 2012	(r232331)
+++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Thu Mar  1 11:55:28 2012	(r232332)
@@ -274,13 +274,14 @@ pfattach(void)
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	V_pf_rule_pl = uma_zcreate("pfrulepl", sizeof(struct pf_rule),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	/* XXXGL: why three same zones here? */
 	V_pf_state_pl = uma_zcreate("pfstatepl", sizeof(struct pf_state),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_state_key_pl = uma_zcreate("pfstatekeypl", sizeof(struct pf_state),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+	V_pf_state_key_pl = uma_zcreate("pfstatekeypl",
+	    sizeof(struct pf_state_key), NULL, NULL, NULL, NULL,UMA_ALIGN_PTR,
+	    0);
 	V_pf_state_item_pl = uma_zcreate("pfstateitempl",
-	    sizeof(struct pf_state), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+	    sizeof(struct pf_state_item), NULL, NULL, NULL, NULL,
+	    UMA_ALIGN_PTR, 0);
 	V_pf_altq_pl = uma_zcreate("pfaltqpl", sizeof(struct pf_altq),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	V_pf_pooladdr_pl = uma_zcreate("pfpooladdrpl",

From owner-svn-src-projects@FreeBSD.ORG  Thu Mar  1 14:42:07 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 528AE106566C;
	Thu,  1 Mar 2012 14:42:07 +0000 (UTC)
	(envelope-from glebius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3CE4F8FC18;
	Thu,  1 Mar 2012 14:42:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q21Eg7kS083262;
	Thu, 1 Mar 2012 14:42:07 GMT (envelope-from glebius@svn.freebsd.org)
Received: (from glebius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q21Eg70a083257;
	Thu, 1 Mar 2012 14:42:07 GMT (envelope-from glebius@svn.freebsd.org)
Message-Id: <201203011442.q21Eg70a083257@svn.freebsd.org>
From: Gleb Smirnoff <glebius@FreeBSD.org>
Date: Thu, 1 Mar 2012 14:42:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232340 - projects/pf/head/sys/contrib/pf/net
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 01 Mar 2012 14:42:07 -0000

Author: glebius
Date: Thu Mar  1 14:42:06 2012
New Revision: 232340
URL: http://svn.freebsd.org/changeset/base/232340

Log:
  o Axe intermediate struct pf_state_item, instead embed TAILQ_ENTRY
    right into struct pf_state. Axe associated UMA zone.
  
  - More PF_RULES_RASSERT.
  - Minor unrelated nits.

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c
  projects/pf/head/sys/contrib/pf/net/pf.c
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
  projects/pf/head/sys/contrib/pf/net/pfvar.h

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Thu Mar  1 14:39:01 2012	(r232339)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Thu Mar  1 14:42:06 2012	(r232340)
@@ -682,9 +682,8 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st
 	int len = sizeof(*clr) * count;
 	int i, offp;
 
-	struct pf_state *st, *nexts;
+	struct pf_state *si, *st, *nexts;
 	struct pf_state_key *sk, *nextsk;
-	struct pf_state_item *si;
 	u_int32_t creatorid;
 
 	mp = m_pulldown(m, offset, len, &offp);
@@ -716,11 +715,11 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st
 			    sk; sk = nextsk) {
 				nextsk = RB_NEXT(pf_state_tree,
 				    &V_pf_statetbl, sk);
-				TAILQ_FOREACH(si, &sk->states, entry) {
-					if (si->s->creatorid == creatorid) {
-						SET(si->s->state_flags,
+				TAILQ_FOREACH(si, &sk->states, key_list) {
+					if (si->creatorid == creatorid) {
+						SET(si->state_flags,
 						    PFSTATE_NOSYNC);
-						pf_unlink_state(si->s);
+						pf_unlink_state(si);
 					}
 				}
 			}

Modified: projects/pf/head/sys/contrib/pf/net/pf.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf.c	Thu Mar  1 14:39:01 2012	(r232339)
+++ projects/pf/head/sys/contrib/pf/net/pf.c	Thu Mar  1 14:42:06 2012	(r232340)
@@ -160,7 +160,6 @@ VNET_DEFINE(uma_zone_t,	 pf_rule_pl);
 VNET_DEFINE(uma_zone_t,	 pf_pooladdr_pl);
 VNET_DEFINE(uma_zone_t,	 pf_state_pl);
 VNET_DEFINE(uma_zone_t,	 pf_state_key_pl);
-VNET_DEFINE(uma_zone_t,	 pf_state_item_pl);
 VNET_DEFINE(uma_zone_t,	 pf_altq_pl);
 
 static void		 pf_src_tree_remove_state(struct pf_state *);
@@ -678,24 +677,23 @@ pf_state_compare_id(struct pf_state *a, 
 static int
 pf_state_key_attach(struct pf_state_key *sk, struct pf_state *s, int idx)
 {
-	struct pf_state_item	*si;
 	struct pf_state_key	*cur;
-	struct pf_state		*olds = NULL;
+	struct pf_state		*si, *olds = NULL;
 
 	KASSERT(s->key[idx] == NULL, ("%s: key is null!", __func__));
 
 	if ((cur = RB_INSERT(pf_state_tree, &V_pf_statetbl, sk)) != NULL) {
 		/* key exists. check for same kif, if none, add to key */
-		TAILQ_FOREACH(si, &cur->states, entry)
-			if (si->s->kif == s->kif &&
-			    si->s->direction == s->direction) {
+		TAILQ_FOREACH(si, &cur->states, key_list)
+			if (si->kif == s->kif &&
+			    si->direction == s->direction) {
 				if (sk->proto == IPPROTO_TCP &&
-				    si->s->src.state >= TCPS_FIN_WAIT_2 &&
-				    si->s->dst.state >= TCPS_FIN_WAIT_2) {
-					si->s->src.state = si->s->dst.state =
+				    si->src.state >= TCPS_FIN_WAIT_2 &&
+				    si->dst.state >= TCPS_FIN_WAIT_2) {
+					si->src.state = si->dst.state =
 					    TCPS_CLOSED;
 					/* unlink late or sks can go away */
-					olds = si->s;
+					olds = si;
 				} else {
 					if (V_pf_status.debug >= PF_DEBUG_MISC) {
 						printf("pf: %s key attach "
@@ -709,7 +707,7 @@ pf_state_key_attach(struct pf_state_key 
 						    (idx == PF_SK_STACK) ?
 						    sk : NULL);
 						printf(", existing: ");
-						pf_print_state_parts(si->s,
+						pf_print_state_parts(si,
 						    (idx == PF_SK_WIRE) ?
 						    sk : NULL,
 						    (idx == PF_SK_STACK) ?
@@ -725,17 +723,11 @@ pf_state_key_attach(struct pf_state_key 
 	} else
 		s->key[idx] = sk;
 
-	if ((si = uma_zalloc(V_pf_state_item_pl, M_NOWAIT)) == NULL) {
-		pf_state_key_detach(s, idx);
-		return (-1);
-	}
-	si->s = s;
-
 	/* list is sorted, if-bound states before floating */
 	if (s->kif == V_pfi_all)
-		TAILQ_INSERT_TAIL(&s->key[idx]->states, si, entry);
+		TAILQ_INSERT_TAIL(&s->key[idx]->states, s, key_list);
 	else
-		TAILQ_INSERT_HEAD(&s->key[idx]->states, si, entry);
+		TAILQ_INSERT_HEAD(&s->key[idx]->states, s, key_list);
 
 	if (olds)
 		pf_unlink_state(olds);
@@ -759,22 +751,19 @@ pf_detach_state(struct pf_state *s)
 static void
 pf_state_key_detach(struct pf_state *s, int idx)
 {
-	struct pf_state_item	*si;
+	struct pf_state *si;
 
 	si = TAILQ_FIRST(&s->key[idx]->states);
-	while (si && si->s != s)
-	    si = TAILQ_NEXT(si, entry);
+	while (si && si != s)
+	    si = TAILQ_NEXT(si, key_list);
 
-	if (si) {
-		TAILQ_REMOVE(&s->key[idx]->states, si, entry);
-		uma_zfree(V_pf_state_item_pl, si);
-	}
+	if (si)
+		TAILQ_REMOVE(&s->key[idx]->states, si, key_list);
 
 	if (TAILQ_EMPTY(&s->key[idx]->states)) {
 		RB_REMOVE(pf_state_tree, &V_pf_statetbl, s->key[idx]);
 		if (s->key[idx]->reverse)
 			s->key[idx]->reverse->reverse = NULL;
-	/* XXX: implement this */
 		uma_zfree(V_pf_state_key_pl, s->key[idx]);
 	}
 	s->key[idx] = NULL;
@@ -927,7 +916,7 @@ pf_find_state(struct pfi_kif *kif, struc
     struct mbuf *m, struct pf_mtag *pftag)
 {
 	struct pf_state_key	*sk;
-	struct pf_state_item	*si;
+	struct pf_state		*si;
 
 	V_pf_status.fcounters[FCNT_STATE_SEARCH]++;
 
@@ -951,11 +940,11 @@ pf_find_state(struct pfi_kif *kif, struc
 		pftag->statekey = NULL;
 
 	/* list is sorted, if-bound states before floating ones */
-	TAILQ_FOREACH(si, &sk->states, entry)
-		if ((si->s->kif == V_pfi_all || si->s->kif == kif) &&
-		    sk == (dir == PF_IN ? si->s->key[PF_SK_WIRE] :
-		    si->s->key[PF_SK_STACK]))
-			return (si->s);
+	TAILQ_FOREACH(si, &sk->states, key_list)
+		if ((si->kif == V_pfi_all || si->kif == kif) &&
+		    sk == (dir == PF_IN ? si->key[PF_SK_WIRE] :
+		    si->key[PF_SK_STACK]))
+			return (si);
 
 	return (NULL);
 }
@@ -964,26 +953,27 @@ struct pf_state *
 pf_find_state_all(struct pf_state_key_cmp *key, u_int dir, int *more)
 {
 	struct pf_state_key	*sk;
-	struct pf_state_item	*si, *ret = NULL;
+	struct pf_state		*s, *ret = NULL;
 
 	V_pf_status.fcounters[FCNT_STATE_SEARCH]++;
 
 	sk = RB_FIND(pf_state_tree, &V_pf_statetbl, (struct pf_state_key *)key);
 	if (sk != NULL) {
-		TAILQ_FOREACH(si, &sk->states, entry)
+		TAILQ_FOREACH(s, &sk->states, key_list)
 			if (dir == PF_INOUT ||
-			    (sk == (dir == PF_IN ? si->s->key[PF_SK_WIRE] :
-			    si->s->key[PF_SK_STACK]))) {
+			    (sk == (dir == PF_IN ? s->key[PF_SK_WIRE] :
+			    s->key[PF_SK_STACK]))) {
 				if (more == NULL)
-					return (si->s);
+					return (s);
 
 				if (ret)
 					(*more)++;
 				else
-					ret = si;
+					ret = s;
 			}
 	}
-	return (ret ? ret->s : NULL);
+
+	return (ret);
 }
 
 /* END state table stuff */
@@ -1157,9 +1147,6 @@ pf_src_tree_remove_state(struct pf_state
 void
 pf_unlink_state(struct pf_state *cur)
 {
-	if (cur->local_flags & PFSTATE_EXPIRING)
-		return;
-	cur->local_flags |= PFSTATE_EXPIRING;
 
 	if (cur->src.state == PF_TCPS_PROXY_DST) {
 		/* XXX wire key the right one? */
@@ -2206,6 +2193,8 @@ pf_step_into_anchor(int *depth, struct p
 {
 	struct pf_anchor_stackframe	*f;
 
+	PF_RULES_RASSERT();
+
 	(*r)->anchor->match = 0;
 	if (match)
 		*match = 0;
@@ -2242,6 +2231,8 @@ pf_step_out_of_anchor(int *depth, struct
 	struct pf_anchor_stackframe	*f;
 	int quick = 0;
 
+	PF_RULES_RASSERT();
+
 	do {
 		if (*depth <= 0)
 			break;
@@ -3280,6 +3271,8 @@ pf_test_fragment(struct pf_rule **rm, in
 	int			 asd = 0;
 	int			 match = 0;
 
+	PF_RULES_RASSERT();
+
 	r = TAILQ_FIRST(pf_main_ruleset.rules[PF_RULESET_FILTER].active.ptr);
 	while (r != NULL) {
 		r->evaluations++;

Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Thu Mar  1 14:39:01 2012	(r232339)
+++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Thu Mar  1 14:42:06 2012	(r232340)
@@ -257,7 +257,6 @@ cleanup_pf_zone(void)
 	uma_zdestroy(V_pf_rule_pl);
 	uma_zdestroy(V_pf_state_pl);
 	uma_zdestroy(V_pf_state_key_pl);
-	uma_zdestroy(V_pf_state_item_pl);
 	uma_zdestroy(V_pf_altq_pl);
 	uma_zdestroy(V_pf_pooladdr_pl);
 	uma_zdestroy(V_pfr_ktable_pl);
@@ -279,9 +278,6 @@ pfattach(void)
 	V_pf_state_key_pl = uma_zcreate("pfstatekeypl",
 	    sizeof(struct pf_state_key), NULL, NULL, NULL, NULL,UMA_ALIGN_PTR,
 	    0);
-	V_pf_state_item_pl = uma_zcreate("pfstateitempl",
-	    sizeof(struct pf_state_item), NULL, NULL, NULL, NULL,
-	    UMA_ALIGN_PTR, 0);
 	V_pf_altq_pl = uma_zcreate("pfaltqpl", sizeof(struct pf_altq),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	V_pf_pooladdr_pl = uma_zcreate("pfpooladdrpl",

Modified: projects/pf/head/sys/contrib/pf/net/pfvar.h
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pfvar.h	Thu Mar  1 14:39:01 2012	(r232339)
+++ projects/pf/head/sys/contrib/pf/net/pfvar.h	Thu Mar  1 14:42:06 2012	(r232340)
@@ -764,13 +764,6 @@ struct pf_state_key_cmp {
 	u_int8_t	 pad[2];
 };
 
-struct pf_state_item {
-	TAILQ_ENTRY(pf_state_item)	 entry;
-	struct pf_state			*s;
-};
-
-TAILQ_HEAD(pf_statelisthead, pf_state_item);
-
 struct pf_state_key {
 	struct pf_addr	 addr[2];
 	u_int16_t	 port[2];
@@ -779,7 +772,7 @@ struct pf_state_key {
 	u_int8_t	 pad[2];
 
 	RB_ENTRY(pf_state_key)	 entry;
-	struct pf_statelisthead	 states;
+	TAILQ_HEAD(, pf_state)	 states;
 	struct pf_state_key	*reverse;
 	struct inpcb		*inp;
 };
@@ -797,11 +790,9 @@ struct pf_state {
 	u_int32_t		 creatorid;
 	u_int8_t		 direction;
 	u_int8_t		 pad[2];
-	u_int8_t		 local_flags;
-#define	PFSTATE_EXPIRING 0x01
-
 	TAILQ_ENTRY(pf_state)	 sync_list;
 	TAILQ_ENTRY(pf_state)	 entry_list;
+	TAILQ_ENTRY(pf_state)	 key_list;
 	RB_ENTRY(pf_state)	 entry_id;
 	struct pf_state_peer	 src;
 	struct pf_state_peer	 dst;
@@ -882,9 +873,7 @@ struct pfsync_state {
 	sa_family_t	 af;
 	u_int8_t	 proto;
 	u_int8_t	 direction;
-	u_int8_t	 local_flags;
-#define	PFSTATE_EXPIRING		0x01
-
+	u_int8_t	 __spare;
 	u_int8_t	 log;
 	u_int8_t	 state_flags;
 	u_int8_t	 timeout;
@@ -1766,8 +1755,6 @@ VNET_DECLARE(uma_zone_t,		 pf_state_pl);
 #define	V_pf_state_pl			 VNET(pf_state_pl)
 VNET_DECLARE(uma_zone_t,		 pf_state_key_pl);
 #define	V_pf_state_key_pl		 VNET(pf_state_key_pl)
-VNET_DECLARE(uma_zone_t,		 pf_state_item_pl);
-#define	V_pf_state_item_pl		 VNET(pf_state_item_pl)
 VNET_DECLARE(uma_zone_t,		 pf_altq_pl);
 #define	V_pf_altq_pl			 VNET(pf_altq_pl)
 VNET_DECLARE(uma_zone_t,		 pf_pooladdr_pl);

From owner-svn-src-projects@FreeBSD.ORG  Fri Mar  2 11:27:08 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 38BB61065670;
	Fri,  2 Mar 2012 11:27:08 +0000 (UTC)
	(envelope-from glebius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 21BE18FC1B;
	Fri,  2 Mar 2012 11:27:08 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q22BR8nH027903;
	Fri, 2 Mar 2012 11:27:08 GMT (envelope-from glebius@svn.freebsd.org)
Received: (from glebius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q22BR8dA027898;
	Fri, 2 Mar 2012 11:27:08 GMT (envelope-from glebius@svn.freebsd.org)
Message-Id: <201203021127.q22BR8dA027898@svn.freebsd.org>
From: Gleb Smirnoff <glebius@FreeBSD.org>
Date: Fri, 2 Mar 2012 11:27:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232386 - projects/pf/head/sys/contrib/pf/net
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 11:27:08 -0000

Author: glebius
Date: Fri Mar  2 11:27:07 2012
New Revision: 232386
URL: http://svn.freebsd.org/changeset/base/232386

Log:
  - Add separate mutex to lock state keys rbtree.
  - Add separate mutex to lock state IDs rbtree.
  - Add separate rwlock to lock the global states list.

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c
  projects/pf/head/sys/contrib/pf/net/pf.c
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
  projects/pf/head/sys/contrib/pf/net/pfvar.h

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Mar  2 10:03:38 2012	(r232385)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Mar  2 11:27:07 2012	(r232386)
@@ -698,18 +698,23 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st
 		creatorid = clr[i].creatorid;
 
 		if (clr[i].ifname[0] == '\0') {
+			PF_KEYS_LOCK();
+			PF_IDS_LOCK();
 			for (st = RB_MIN(pf_state_tree_id, &V_tree_id);
 			    st; st = nexts) {
 				nexts = RB_NEXT(pf_state_tree_id, &V_tree_id, st);
 				if (st->creatorid == creatorid) {
 					SET(st->state_flags, PFSTATE_NOSYNC);
-					pf_unlink_state(st);
+					pf_unlink_state(st, 1);
 				}
 			}
+			PF_IDS_UNLOCK();
+			PF_KEYS_UNLOCK();
 		} else {
 			if (pfi_kif_get(clr[i].ifname) == NULL)
 				continue;
 
+			PF_KEYS_LOCK();
 			/* XXX correct? */
 			for (sk = RB_MIN(pf_state_tree, &V_pf_statetbl);
 			    sk; sk = nextsk) {
@@ -719,10 +724,11 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st
 					if (si->creatorid == creatorid) {
 						SET(si->state_flags,
 						    PFSTATE_NOSYNC);
-						pf_unlink_state(si);
+						pf_unlink_state(si, 0);
 					}
 				}
 			}
+			PF_KEYS_UNLOCK();
 		}
 	}
 	PF_UNLOCK();
@@ -1104,7 +1110,7 @@ pfsync_in_del(struct pfsync_pkt *pkt, st
 			continue;
 		}
 		SET(st->state_flags, PFSTATE_NOSYNC);
-		pf_unlink_state(st);
+		pf_unlink_state(st, 0);
 	}
 	PF_UNLOCK();
 
@@ -1142,7 +1148,7 @@ pfsync_in_del_c(struct pfsync_pkt *pkt, 
 		}
 
 		SET(st->state_flags, PFSTATE_NOSYNC);
-		pf_unlink_state(st);
+		pf_unlink_state(st, 0);
 	}
 	PF_UNLOCK();
 
@@ -2212,9 +2218,11 @@ pfsync_bulk_update(void *arg)
 			i++;
 		}
 
+		PF_LIST_RLOCK();
 		st = TAILQ_NEXT(st, entry_list);
 		if (st == NULL)
 			st = TAILQ_FIRST(&V_state_list);
+		PF_LIST_RUNLOCK();
 
 		if (st == sc->sc_bulk_last) {
 			/* we're done */

Modified: projects/pf/head/sys/contrib/pf/net/pf.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf.c	Fri Mar  2 10:03:38 2012	(r232385)
+++ projects/pf/head/sys/contrib/pf/net/pf.c	Fri Mar  2 11:27:07 2012	(r232386)
@@ -489,6 +489,8 @@ pf_src_connlimit(struct pf_state **state
 			struct pf_state *st;
 
 			V_pf_status.lcounters[LCNT_OVERLOAD_FLUSH]++;
+			PF_IDS_LOCK();
+			/* XXXGL: this cycle should go into a separate taskq */
 			RB_FOREACH(st, pf_state_tree_id, &V_tree_id) {
 				sk = st->key[PF_SK_WIRE];
 				/*
@@ -513,6 +515,7 @@ pf_src_connlimit(struct pf_state **state
 					killed++;
 				}
 			}
+			PF_IDS_UNLOCK();
 			if (V_pf_status.debug >= PF_DEBUG_MISC)
 				printf(", %u states killed", killed);
 		}
@@ -680,7 +683,8 @@ pf_state_key_attach(struct pf_state_key 
 	struct pf_state_key	*cur;
 	struct pf_state		*si, *olds = NULL;
 
-	KASSERT(s->key[idx] == NULL, ("%s: key is null!", __func__));
+	PF_KEYS_ASSERT();
+	KASSERT(s->key[idx] == NULL, ("%s: a key already attached", __func__));
 
 	if ((cur = RB_INSERT(pf_state_tree, &V_pf_statetbl, sk)) != NULL) {
 		/* key exists. check for same kif, if none, add to key */
@@ -730,7 +734,7 @@ pf_state_key_attach(struct pf_state_key 
 		TAILQ_INSERT_HEAD(&s->key[idx]->states, s, key_list);
 
 	if (olds)
-		pf_unlink_state(olds);
+		pf_unlink_state(olds, 0);
 
 	return (0);
 }
@@ -738,6 +742,9 @@ pf_state_key_attach(struct pf_state_key 
 static void
 pf_detach_state(struct pf_state *s)
 {
+
+	PF_KEYS_ASSERT();
+
 	if (s->key[PF_SK_WIRE] == s->key[PF_SK_STACK])
 		s->key[PF_SK_WIRE] = NULL;
 
@@ -753,6 +760,8 @@ pf_state_key_detach(struct pf_state *s, 
 {
 	struct pf_state *si;
 
+	PF_KEYS_ASSERT();
+
 	si = TAILQ_FIRST(&s->key[idx]->states);
 	while (si && si != s)
 	    si = TAILQ_NEXT(si, key_list);
@@ -833,17 +842,22 @@ pf_state_insert(struct pfi_kif *kif, str
 
 	s->kif = kif;
 
+	PF_KEYS_LOCK();
 	if (skw == sks) {
-		if (pf_state_key_attach(skw, s, PF_SK_WIRE))
+		if (pf_state_key_attach(skw, s, PF_SK_WIRE)) {
+			PF_KEYS_UNLOCK();
 			return (-1);
+		}
 		s->key[PF_SK_STACK] = s->key[PF_SK_WIRE];
 	} else {
 		if (pf_state_key_attach(skw, s, PF_SK_WIRE)) {
+			PF_KEYS_UNLOCK();
 			uma_zfree(V_pf_state_key_pl, sks);
 			return (-1);
 		}
 		if (pf_state_key_attach(sks, s, PF_SK_STACK)) {
 			pf_state_key_detach(s, PF_SK_WIRE);
+			PF_KEYS_UNLOCK();
 			return (-1);
 		}
 	}
@@ -852,7 +866,9 @@ pf_state_insert(struct pfi_kif *kif, str
 		s->id = htobe64(V_pf_status.stateid++);
 		s->creatorid = V_pf_status.hostid;
 	}
+	PF_IDS_LOCK();
 	if (RB_INSERT(pf_state_tree_id, &V_tree_id, s) != NULL) {
+		PF_IDS_UNLOCK();
 		if (V_pf_status.debug >= PF_DEBUG_MISC) {
 			printf("pf: state insert failed: "
 			    "id: %016llx creatorid: %08x",
@@ -862,7 +878,11 @@ pf_state_insert(struct pfi_kif *kif, str
 		pf_detach_state(s);
 		return (-1);
 	}
+	PF_IDS_UNLOCK();
+	PF_KEYS_UNLOCK();
+	PF_LIST_WLOCK();
 	TAILQ_INSERT_TAIL(&V_state_list, s, entry_list);
+	PF_LIST_WUNLOCK();
 	V_pf_status.fcounters[FCNT_STATE_INSERT]++;
 	V_pf_status.states++;
 	pfi_kif_ref(kif, PFI_KIF_REF_STATE);
@@ -875,9 +895,14 @@ pf_state_insert(struct pfi_kif *kif, str
 struct pf_state *
 pf_find_state_byid(struct pf_state_cmp *key)
 {
+	struct pf_state *s;
+
 	V_pf_status.fcounters[FCNT_STATE_SEARCH]++;
+	PF_IDS_LOCK();
+	s = RB_FIND(pf_state_tree_id, &V_tree_id, (struct pf_state *)key);
+	PF_IDS_UNLOCK();
 
-	return (RB_FIND(pf_state_tree_id, &V_tree_id, (struct pf_state *)key));
+	return (s);
 }
 
 /* XXX debug function, intended to be removed one day */
@@ -920,13 +945,16 @@ pf_find_state(struct pfi_kif *kif, struc
 
 	V_pf_status.fcounters[FCNT_STATE_SEARCH]++;
 
+	PF_KEYS_LOCK();
 	if (dir == PF_OUT && pftag->statekey &&
 	    ((struct pf_state_key *)pftag->statekey)->reverse)
 		sk = ((struct pf_state_key *)pftag->statekey)->reverse;
 	else {
 		if ((sk = RB_FIND(pf_state_tree, &V_pf_statetbl,
-		    (struct pf_state_key *)key)) == NULL)
+		    (struct pf_state_key *)key)) == NULL) {
+			PF_KEYS_UNLOCK();
 			return (NULL);
+		}
 		if (dir == PF_OUT && pftag->statekey &&
 		    pf_compare_state_keys(pftag->statekey, sk,
 		    kif, dir) == 0) {
@@ -943,8 +971,11 @@ pf_find_state(struct pfi_kif *kif, struc
 	TAILQ_FOREACH(si, &sk->states, key_list)
 		if ((si->kif == V_pfi_all || si->kif == kif) &&
 		    sk == (dir == PF_IN ? si->key[PF_SK_WIRE] :
-		    si->key[PF_SK_STACK]))
+		    si->key[PF_SK_STACK])) {
+			PF_KEYS_UNLOCK();
 			return (si);
+		}
+	PF_KEYS_UNLOCK();
 
 	return (NULL);
 }
@@ -957,14 +988,17 @@ pf_find_state_all(struct pf_state_key_cm
 
 	V_pf_status.fcounters[FCNT_STATE_SEARCH]++;
 
+	PF_KEYS_LOCK();
 	sk = RB_FIND(pf_state_tree, &V_pf_statetbl, (struct pf_state_key *)key);
 	if (sk != NULL) {
 		TAILQ_FOREACH(s, &sk->states, key_list)
 			if (dir == PF_INOUT ||
 			    (sk == (dir == PF_IN ? s->key[PF_SK_WIRE] :
 			    s->key[PF_SK_STACK]))) {
-				if (more == NULL)
+				if (more == NULL) {
+					PF_KEYS_UNLOCK();
 					return (s);
+				}
 
 				if (ret)
 					(*more)++;
@@ -972,6 +1006,7 @@ pf_find_state_all(struct pf_state_key_cm
 					ret = s;
 			}
 	}
+	PF_KEYS_UNLOCK();
 
 	return (ret);
 }
@@ -1145,9 +1180,11 @@ pf_src_tree_remove_state(struct pf_state
 }
 
 void
-pf_unlink_state(struct pf_state *cur)
+pf_unlink_state(struct pf_state *cur, int idslocked)
 {
 
+	PF_KEYS_ASSERT();
+
 	if (cur->src.state == PF_TCPS_PROXY_DST) {
 		/* XXX wire key the right one? */
 		pf_send_tcp(NULL, cur->rule.ptr, cur->key[PF_SK_WIRE]->af,
@@ -1158,7 +1195,11 @@ pf_unlink_state(struct pf_state *cur)
 		    cur->src.seqhi, cur->src.seqlo + 1,
 		    TH_RST|TH_ACK, 0, 0, 0, 1, cur->tag, NULL, NULL);
 	}
+	if (!idslocked)
+		PF_IDS_LOCK();
 	RB_REMOVE(pf_state_tree_id, &V_tree_id, cur);
+	if (!idslocked)
+		PF_IDS_UNLOCK();
 #if NPFLOW > 0
 	if (cur->state_flags & PFSTATE_PFLOW)
 		if (export_pflow_ptr != NULL)
@@ -1177,6 +1218,8 @@ static void
 pf_free_state(struct pf_state *cur)
 {
 
+	PF_LIST_WASSERT();
+
 	if (pfsync_state_in_use_ptr != NULL &&
 		pfsync_state_in_use_ptr(cur))
 		return;
@@ -1210,6 +1253,7 @@ pf_purge_expired_states(u_int32_t maxche
 	struct pf_state		*next;
 	int			 locked = waslocked;
 
+	PF_LIST_WLOCK();
 	while (maxcheck--) {
 		/* wrap to start of list when we hit the end */
 		if (cur == NULL) {
@@ -1224,23 +1268,30 @@ pf_purge_expired_states(u_int32_t maxche
 		if (cur->timeout == PFTM_UNLINKED) {
 			/* free unlinked state */
 			if (! locked) {
-				if (!sx_try_upgrade(&V_pf_consistency_lock))
+				if (!sx_try_upgrade(&V_pf_consistency_lock)) {
+					PF_LIST_WUNLOCK();
 					return (0);	/* XXXGL */
+				}
 				locked = 1;
 			}
 			pf_free_state(cur);
 		} else if (pf_state_expires(cur) <= time_second) {
+			PF_KEYS_LOCK();
 			/* unlink and free expired state */
-			pf_unlink_state(cur);
+			pf_unlink_state(cur, 0);
+			PF_KEYS_UNLOCK();
 			if (! locked) {
-				if (!sx_try_upgrade(&V_pf_consistency_lock))
+				if (!sx_try_upgrade(&V_pf_consistency_lock)) {
+					PF_LIST_WUNLOCK();
 					return (0);	/* XXXGL */
+				}
 				locked = 1;
 			}
 			pf_free_state(cur);
 		}
 		cur = next;
 	}
+	PF_LIST_WUNLOCK();
 
 	if (!waslocked && locked)
 		sx_downgrade(&V_pf_consistency_lock);
@@ -3877,7 +3928,7 @@ pf_test_state_tcp(struct pf_state **stat
 		}
 		/* XXX make sure it's the same direction ?? */
 		(*state)->src.state = (*state)->dst.state = TCPS_CLOSED;
-		pf_unlink_state(*state);
+		pf_unlink_state(*state, 0);
 		*state = NULL;
 		return (PF_DROP);
 	}

Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Fri Mar  2 10:03:38 2012	(r232385)
+++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Fri Mar  2 11:27:07 2012	(r232386)
@@ -172,9 +172,6 @@ struct cdev *pf_dev;
 static void		 pf_clear_states(void);
 static int		 pf_clear_tables(void);
 static void		 pf_clear_srcnodes(void);
-/*
- * XXX - These are new and need to be checked when moveing to a new version
- */
  
 /*
  * Wrapper functions for pfil(9) hooks
@@ -209,6 +206,9 @@ static volatile VNET_DEFINE(int, pf_pfil
 VNET_DEFINE(int,		pf_end_threads);
 
 struct mtx			pf_mtx;
+struct mtx			pf_state_keys_mtx;
+struct mtx			pf_state_ids_mtx;
+struct rwlock			pf_state_list_lock;
 struct rwlock			pf_rules_lock;
 
 /* pfsync */
@@ -235,6 +235,9 @@ init_pf_mutex(void)
 {
 
 	mtx_init(&pf_mtx, "pf Giant", NULL, MTX_DEF);
+	mtx_init(&pf_state_keys_mtx, "pf state keys", NULL, MTX_DEF);
+	mtx_init(&pf_state_ids_mtx, "pf state ids", NULL, MTX_DEF);
+	rw_init(&pf_state_list_lock, "pf state list");
 	rw_init(&pf_rules_lock, "pf rulesets");
 	/* XXXGL: name */
 	sx_init(&V_pf_consistency_lock, "pf_statetbl_lock");
@@ -245,6 +248,9 @@ destroy_pf_mutex(void)
 {
 
 	mtx_destroy(&pf_mtx);
+	mtx_destroy(&pf_state_keys_mtx);
+	mtx_destroy(&pf_state_ids_mtx);
+	rw_destroy(&pf_state_list_lock);
 	rw_destroy(&pf_rules_lock);
 	sx_destroy(&V_pf_consistency_lock);
 }
@@ -1682,6 +1688,8 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		struct pfioc_state_kill *psk = (struct pfioc_state_kill *)addr;
 		u_int			 killed = 0;
 
+		PF_KEYS_LOCK();
+		PF_IDS_LOCK();
 		for (s = RB_MIN(pf_state_tree_id, &V_tree_id); s; s = nexts) {
 			nexts = RB_NEXT(pf_state_tree_id, &V_tree_id, s);
 
@@ -1689,10 +1697,12 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			    s->kif->pfik_name)) {
 				/* don't send out individual delete messages */
 				SET(s->state_flags, PFSTATE_NOSYNC);
-				pf_unlink_state(s);
+				pf_unlink_state(s, 1);
 				killed++;
 			}
 		}
+		PF_IDS_UNLOCK();
+		PF_KEYS_UNLOCK();
 		psk->psk_killed = killed;
 		if (pfsync_clear_states_ptr != NULL)
 			pfsync_clear_states_ptr(V_pf_status.hostid, psk->psk_ifname);
@@ -1711,12 +1721,14 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			if (psk->psk_pfcmp.creatorid == 0)
 				psk->psk_pfcmp.creatorid = V_pf_status.hostid;
 			if ((s = pf_find_state_byid(&psk->psk_pfcmp))) {
-				pf_unlink_state(s);
+				pf_unlink_state(s, 0);
 				psk->psk_killed = 1;
 			}
 			break;
 		}
 
+		PF_KEYS_LOCK();
+		PF_IDS_LOCK();
 		for (s = RB_MIN(pf_state_tree_id, &V_tree_id); s;
 		    s = nexts) {
 			nexts = RB_NEXT(pf_state_tree_id, &V_tree_id, s);
@@ -1756,10 +1768,12 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			    !strcmp(psk->psk_label, s->rule.ptr->label))) &&
 			    (!psk->psk_ifname[0] || !strcmp(psk->psk_ifname,
 			    s->kif->pfik_name))) {
-				pf_unlink_state(s);
+				pf_unlink_state(s, 1);
 				killed++;
 			}
 		}
+		PF_IDS_UNLOCK();
+		PF_KEYS_UNLOCK();
 		psk->psk_killed = killed;
 		break;
 	}
@@ -1799,7 +1813,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 	case DIOCGETSTATES: {
 		struct pfioc_states	*ps = (struct pfioc_states *)addr;
 		struct pf_state		*state;
-		struct pfsync_state	*p, *pstore;
+		struct pfsync_state	*p, pstore;
 		u_int32_t		 nr = 0;
 
 		if (ps->ps_len == 0) {
@@ -1808,32 +1822,31 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			break;
 		}
 
-		PF_UNLOCK();
-		pstore = malloc(sizeof(*pstore), M_TEMP, M_WAITOK);
-		PF_LOCK();
-
 		p = ps->ps_states;
 
+		PF_LIST_RLOCK();
 		state = TAILQ_FIRST(&V_state_list);
 		while (state) {
 			if (state->timeout != PFTM_UNLINKED) {
 				if ((nr+1) * sizeof(*p) > (unsigned)ps->ps_len)
 					break;
-				pfsync_state_export(pstore, state);
-				PF_COPYOUT(pstore, p, sizeof(*p), error);
-				if (error) {
-					free(pstore, M_TEMP);
+				pfsync_state_export(&pstore, state);
+				PF_LIST_RUNLOCK(); /* XXXGL: ref state? */
+				PF_UNLOCK();
+				error = copyout(&pstore, p, sizeof(*p));
+				PF_LOCK();
+				if (error)
 					goto fail;
-				}
+				PF_LIST_RLOCK();
 				p++;
 				nr++;
 			}
 			state = TAILQ_NEXT(state, entry_list);
 		}
+		PF_LIST_RUNLOCK();
 
 		ps->ps_len = sizeof(struct pfsync_state) * nr;
 
-		free(pstore, M_TEMP);
 		break;
 	}
 
@@ -2964,14 +2977,18 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		struct pf_src_node	*n;
 		struct pf_state		*state;
 
+		PF_IDS_LOCK();
 		RB_FOREACH(state, pf_state_tree_id, &V_tree_id) {
 			state->src_node = NULL;
 			state->nat_src_node = NULL;
 		}
+		PF_IDS_UNLOCK();
+		PF_KEYS_LOCK();
 		RB_FOREACH(n, pf_src_tree, &V_tree_src_tracking) {
 			n->expire = 1;
 			n->states = 0;
 		}
+		PF_KEYS_UNLOCK();
 		pf_purge_expired_src_nodes(1);
 		V_pf_status.src_nodes = 0;
 		break;
@@ -2984,6 +3001,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		    (struct pfioc_src_node_kill *)addr;
 		u_int			killed = 0;
 
+		PF_KEYS_LOCK();
 		RB_FOREACH(sn, pf_src_tree, &V_tree_src_tracking) {
 			if (PF_MATCHA(psnk->psnk_src.neg,
 				&psnk->psnk_src.addr.v.a.addr,
@@ -2995,6 +3013,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 				&sn->raddr, sn->af)) {
 				/* Handle state to src_node linkage */
 				if (sn->states != 0) {
+					PF_IDS_LOCK();
 					RB_FOREACH(s, pf_state_tree_id,
 					    &V_tree_id) {
 						if (s->src_node == sn)
@@ -3002,12 +3021,14 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 						if (s->nat_src_node == sn)
 							s->nat_src_node = NULL;
 					}
+					PF_IDS_UNLOCK();
 					sn->states = 0;
 				}
 				sn->expire = 1;
 				killed++;
 			}
 		}
+		PF_KEYS_UNLOCK();
 
 		if (killed > 0)
 			pf_purge_expired_src_nodes(1);
@@ -3141,13 +3162,17 @@ static void
 pf_clear_states(void)
 {
 	struct pf_state	*state;
- 
+
+	PF_KEYS_LOCK();
+	PF_IDS_LOCK(); 
 	RB_FOREACH(state, pf_state_tree_id, &V_tree_id) {
 		state->timeout = PFTM_PURGE;
 		/* don't send out individual delete messages */
 		state->sync_state = PFSTATE_NOSYNC;
-		pf_unlink_state(state);
+		pf_unlink_state(state, 1);
 	}
+	PF_IDS_UNLOCK();
+	PF_KEYS_UNLOCK();
  
 #if 0 /* NPFSYNC */
 /*
@@ -3177,14 +3202,18 @@ pf_clear_srcnodes(void)
 	struct pf_src_node	*n;
 	struct pf_state		*state;
 
+	PF_IDS_LOCK();
 	RB_FOREACH(state, pf_state_tree_id, &V_tree_id) {
 		state->src_node = NULL;
 		state->nat_src_node = NULL;
 	}
+	PF_IDS_UNLOCK();
+	PF_KEYS_LOCK();
 	RB_FOREACH(n, pf_src_tree, &V_tree_src_tracking) {
 		n->expire = 1;
 		n->states = 0;
 	}
+	PF_KEYS_UNLOCK();
 }
 /*
  * XXX - Check for version missmatch!!!

Modified: projects/pf/head/sys/contrib/pf/net/pfvar.h
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pfvar.h	Fri Mar  2 10:03:38 2012	(r232385)
+++ projects/pf/head/sys/contrib/pf/net/pfvar.h	Fri Mar  2 11:27:07 2012	(r232386)
@@ -208,6 +208,24 @@ extern struct mtx pf_mtx;
 #define	PF_LOCK()		mtx_lock(&pf_mtx)
 #define	PF_UNLOCK()		mtx_unlock(&pf_mtx)
 
+extern struct mtx pf_state_keys_mtx;
+#define	PF_KEYS_ASSERT()	mtx_assert(&pf_state_keys_mtx, MA_OWNED)
+#define	PF_KEYS_LOCK()		mtx_lock(&pf_state_keys_mtx)
+#define	PF_KEYS_UNLOCK()	mtx_unlock(&pf_state_keys_mtx)
+
+extern struct mtx pf_state_ids_mtx;
+#define	PF_IDS_ASSERT()		mtx_assert(&pf_state_ids_mtx, MA_OWNED)
+#define	PF_IDS_LOCK()		mtx_lock(&pf_state_ids_mtx)
+#define	PF_IDS_UNLOCK()		mtx_unlock(&pf_state_ids_mtx)
+
+extern struct rwlock pf_state_list_lock;
+#define	PF_LIST_RASSERT()	rw_assert(&pf_state_list_lock, RA_RLOCKED)
+#define	PF_LIST_RLOCK()		rw_rlock(&pf_state_list_lock)
+#define	PF_LIST_RUNLOCK()	rw_runlock(&pf_state_list_lock)
+#define	PF_LIST_WASSERT()	rw_assert(&pf_state_list_lock, RA_WLOCKED)
+#define	PF_LIST_WLOCK()		rw_wlock(&pf_state_list_lock)
+#define	PF_LIST_WUNLOCK()	rw_wunlock(&pf_state_list_lock)
+
 extern struct rwlock pf_rules_lock;
 #define	PF_RULES_RLOCK()	rw_rlock(&pf_rules_lock)
 #define	PF_RULES_RUNLOCK()	rw_runlock(&pf_rules_lock)
@@ -1770,7 +1788,7 @@ VNET_DECLARE(uma_zone_t,		 pfi_addr_pl);
 
 extern void			 pf_purge_thread(void *);
 extern int			 pf_purge_expired_src_nodes(int);
-extern void			 pf_unlink_state(struct pf_state *);
+extern void			 pf_unlink_state(struct pf_state *, int);
 extern int			 pf_state_insert(struct pfi_kif *,
 				    struct pf_state_key *,
 				    struct pf_state_key *,

From owner-svn-src-projects@FreeBSD.ORG  Fri Mar  2 12:33:11 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 0A54C106567E;
	Fri,  2 Mar 2012 12:33:10 +0000 (UTC)
	(envelope-from glebius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CA77C8FC28;
	Fri,  2 Mar 2012 12:33:10 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q22CXAsv030208;
	Fri, 2 Mar 2012 12:33:10 GMT (envelope-from glebius@svn.freebsd.org)
Received: (from glebius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q22CXARQ030198;
	Fri, 2 Mar 2012 12:33:10 GMT (envelope-from glebius@svn.freebsd.org)
Message-Id: <201203021233.q22CXARQ030198@svn.freebsd.org>
From: Gleb Smirnoff <glebius@FreeBSD.org>
Date: Fri, 2 Mar 2012 12:33:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232390 - projects/pf/head/sys/contrib/pf/net
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 12:33:11 -0000

Author: glebius
Date: Fri Mar  2 12:33:10 2012
New Revision: 232390
URL: http://svn.freebsd.org/changeset/base/232390

Log:
  - Due to the "V" our zone names do not match original OpenBSD
    names, so there is not reason to name our zones as "pools", so
    this change mechanically renames them.
  - Provide better zone names in uma_zcreate().

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c
  projects/pf/head/sys/contrib/pf/net/pf.c
  projects/pf/head/sys/contrib/pf/net/pf_if.c
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
  projects/pf/head/sys/contrib/pf/net/pf_lb.c
  projects/pf/head/sys/contrib/pf/net/pf_norm.c
  projects/pf/head/sys/contrib/pf/net/pf_osfp.c
  projects/pf/head/sys/contrib/pf/net/pf_table.c
  projects/pf/head/sys/contrib/pf/net/pfvar.h

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -425,7 +425,7 @@ pfsync_alloc_scrub_memory(struct pfsync_
     struct pf_state_peer *d)
 {
 	if (s->scrub.scrub_flag && d->scrub == NULL) {
-		d->scrub = uma_zalloc(V_pf_state_scrub_pl, M_NOWAIT | M_ZERO);
+		d->scrub = uma_zalloc(V_pf_state_scrub_z, M_NOWAIT | M_ZERO);
 		if (d->scrub == NULL)
 			return (ENOMEM);
 	}
@@ -481,7 +481,7 @@ pfsync_state_import(struct pfsync_state 
 	else
 		pool_flags = M_NOWAIT | M_ZERO;
 
-	if ((st = uma_zalloc(V_pf_state_pl, pool_flags)) == NULL)
+	if ((st = uma_zalloc(V_pf_state_z, pool_flags)) == NULL)
 		goto cleanup;
 
 	if ((skw = pf_alloc_state_key(pool_flags)) == NULL)
@@ -576,17 +576,17 @@ cleanup:
 	if (skw == sks)
 		sks = NULL;
 	if (skw != NULL)
-		uma_zfree(V_pf_state_key_pl, skw);
+		uma_zfree(V_pf_state_key_z, skw);
 	if (sks != NULL)
-		uma_zfree(V_pf_state_key_pl, sks);
+		uma_zfree(V_pf_state_key_z, sks);
 
 cleanup_state:	/* pf_state_insert frees the state keys */
 	if (st) {
 		if (st->dst.scrub)
-			uma_zfree(V_pf_state_scrub_pl, st->dst.scrub);
+			uma_zfree(V_pf_state_scrub_z, st->dst.scrub);
 		if (st->src.scrub)
-			uma_zfree(V_pf_state_scrub_pl, st->src.scrub);
-		uma_zfree(V_pf_state_pl, st);
+			uma_zfree(V_pf_state_scrub_z, st->src.scrub);
+		uma_zfree(V_pf_state_z, st);
 	}
 	return (error);
 }

Modified: projects/pf/head/sys/contrib/pf/net/pf.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/pf.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -155,12 +155,12 @@ struct pf_anchor_stackframe {
 VNET_DEFINE(struct pf_anchor_stackframe, pf_anchor_stack[64]);
 #define	V_pf_anchor_stack		 VNET(pf_anchor_stack)
 
-VNET_DEFINE(uma_zone_t,	 pf_src_tree_pl);
-VNET_DEFINE(uma_zone_t,	 pf_rule_pl);
-VNET_DEFINE(uma_zone_t,	 pf_pooladdr_pl);
-VNET_DEFINE(uma_zone_t,	 pf_state_pl);
-VNET_DEFINE(uma_zone_t,	 pf_state_key_pl);
-VNET_DEFINE(uma_zone_t,	 pf_altq_pl);
+VNET_DEFINE(uma_zone_t,	 pf_src_tree_z);
+VNET_DEFINE(uma_zone_t,	 pf_rule_z);
+VNET_DEFINE(uma_zone_t,	 pf_pooladdr_z);
+VNET_DEFINE(uma_zone_t,	 pf_state_z);
+VNET_DEFINE(uma_zone_t,	 pf_state_key_z);
+VNET_DEFINE(uma_zone_t,	 pf_altq_z);
 
 static void		 pf_src_tree_remove_state(struct pf_state *);
 static void		 pf_init_threshold(struct pf_threshold *, u_int32_t,
@@ -549,7 +549,7 @@ pf_insert_src_node(struct pf_src_node **
 	if (*sn == NULL) {
 		if (!rule->max_src_nodes ||
 		    rule->src_nodes < rule->max_src_nodes)
-			(*sn) = uma_zalloc(V_pf_src_tree_pl, M_NOWAIT | M_ZERO);
+			(*sn) = uma_zalloc(V_pf_src_tree_z, M_NOWAIT | M_ZERO);
 		else
 			V_pf_status.lcounters[LCNT_SRCNODES]++;
 		if ((*sn) == NULL)
@@ -573,7 +573,7 @@ pf_insert_src_node(struct pf_src_node **
 				pf_print_host(&(*sn)->addr, 0, af);
 				printf("\n");
 			}
-			uma_zfree(V_pf_src_tree_pl, *sn);
+			uma_zfree(V_pf_src_tree_z, *sn);
 			return (-1);
 		}
 		(*sn)->creation = time_second;
@@ -718,11 +718,11 @@ pf_state_key_attach(struct pf_state_key 
 						    sk : NULL);
 						printf("\n");
 					}
-					uma_zfree(V_pf_state_key_pl, sk);
+					uma_zfree(V_pf_state_key_z, sk);
 					return (-1);	/* collision! */
 				}
 			}
-		uma_zfree(V_pf_state_key_pl, sk);
+		uma_zfree(V_pf_state_key_z, sk);
 		s->key[idx] = cur;
 	} else
 		s->key[idx] = sk;
@@ -773,7 +773,7 @@ pf_state_key_detach(struct pf_state *s, 
 		RB_REMOVE(pf_state_tree, &V_pf_statetbl, s->key[idx]);
 		if (s->key[idx]->reverse)
 			s->key[idx]->reverse->reverse = NULL;
-		uma_zfree(V_pf_state_key_pl, s->key[idx]);
+		uma_zfree(V_pf_state_key_z, s->key[idx]);
 	}
 	s->key[idx] = NULL;
 }
@@ -783,7 +783,7 @@ pf_alloc_state_key(int pool_flags)
 {
 	struct pf_state_key	*sk;
 
-	if ((sk = uma_zalloc(V_pf_state_key_pl, pool_flags)) == NULL)
+	if ((sk = uma_zalloc(V_pf_state_key_z, pool_flags)) == NULL)
 		return (NULL);
 	TAILQ_INIT(&sk->states);
 
@@ -852,7 +852,7 @@ pf_state_insert(struct pfi_kif *kif, str
 	} else {
 		if (pf_state_key_attach(skw, s, PF_SK_WIRE)) {
 			PF_KEYS_UNLOCK();
-			uma_zfree(V_pf_state_key_pl, sks);
+			uma_zfree(V_pf_state_key_z, sks);
 			return (-1);
 		}
 		if (pf_state_key_attach(sks, s, PF_SK_STACK)) {
@@ -1140,7 +1140,7 @@ pf_purge_expired_src_nodes(int waslocked
 			RB_REMOVE(pf_src_tree, &V_tree_src_tracking, cur);
 			V_pf_status.scounters[SCNT_SRC_NODE_REMOVALS]++;
 			V_pf_status.src_nodes--;
-			uma_zfree(V_pf_src_tree_pl, cur);
+			uma_zfree(V_pf_src_tree_z, cur);
 		}
 	}
 
@@ -1241,7 +1241,7 @@ pf_free_state(struct pf_state *cur)
 	TAILQ_REMOVE(&V_state_list, cur, entry_list);
 	if (cur->tag)
 		pf_tag_unref(cur->tag);
-	uma_zfree(V_pf_state_pl, cur);
+	uma_zfree(V_pf_state_z, cur);
 	V_pf_status.fcounters[FCNT_STATE_REMOVALS]++;
 	V_pf_status.states--;
 }
@@ -3058,9 +3058,9 @@ pf_test_rule(struct pf_rule **rm, struct
 			return (action);
 	} else {
 		if (sk != NULL)
-			uma_zfree(V_pf_state_key_pl, sk);
+			uma_zfree(V_pf_state_key_z, sk);
 		if (nk != NULL)
-			uma_zfree(V_pf_state_key_pl, nk);
+			uma_zfree(V_pf_state_key_z, nk);
 	}
 
 	/* copy back packet headers if we performed NAT operations */
@@ -3084,9 +3084,9 @@ pf_test_rule(struct pf_rule **rm, struct
 
 cleanup:
 	if (sk != NULL)
-		uma_zfree(V_pf_state_key_pl, sk);
+		uma_zfree(V_pf_state_key_z, sk);
 	if (nk != NULL)
-		uma_zfree(V_pf_state_key_pl, nk);
+		uma_zfree(V_pf_state_key_z, nk);
 	return (PF_DROP);
 }
 
@@ -3123,7 +3123,7 @@ pf_create_state(struct pf_rule *r, struc
 		REASON_SET(&reason, PFRES_SRCLIMIT);
 		goto csfailed;
 	}
-	s = uma_zalloc(V_pf_state_pl, M_NOWAIT | M_ZERO);
+	s = uma_zalloc(V_pf_state_z, M_NOWAIT | M_ZERO);
 	if (s == NULL) {
 		REASON_SET(&reason, PFRES_MEMORY);
 		goto csfailed;
@@ -3214,7 +3214,7 @@ pf_create_state(struct pf_rule *r, struc
 			REASON_SET(&reason, PFRES_MEMORY);
 			pf_src_tree_remove_state(s);
 			STATE_DEC_COUNTERS(s);
-			uma_zfree(V_pf_state_pl, s);
+			uma_zfree(V_pf_state_z, s);
 			return (PF_DROP);
 		}
 		if ((pd->flags & PFDESC_TCP_NORM) && s->src.scrub &&
@@ -3226,7 +3226,7 @@ pf_create_state(struct pf_rule *r, struc
 			pf_normalize_tcp_cleanup(s);
 			pf_src_tree_remove_state(s);
 			STATE_DEC_COUNTERS(s);
-			uma_zfree(V_pf_state_pl, s);
+			uma_zfree(V_pf_state_z, s);
 			return (PF_DROP);
 		}
 	}
@@ -3242,7 +3242,7 @@ pf_create_state(struct pf_rule *r, struc
 		REASON_SET(&reason, PFRES_STATEINS);
 		pf_src_tree_remove_state(s);
 		STATE_DEC_COUNTERS(s);
-		uma_zfree(V_pf_state_pl, s);
+		uma_zfree(V_pf_state_z, s);
 		return (PF_DROP);
 	} else
 		*sm = s;
@@ -3290,21 +3290,21 @@ pf_create_state(struct pf_rule *r, struc
 
 csfailed:
 	if (sk != NULL)
-		uma_zfree(V_pf_state_key_pl, sk);
+		uma_zfree(V_pf_state_key_z, sk);
 	if (nk != NULL)
-		uma_zfree(V_pf_state_key_pl, nk);
+		uma_zfree(V_pf_state_key_z, nk);
 
 	if (sn != NULL && sn->states == 0 && sn->expire == 0) {
 		RB_REMOVE(pf_src_tree, &V_tree_src_tracking, sn);
 		V_pf_status.scounters[SCNT_SRC_NODE_REMOVALS]++;
 		V_pf_status.src_nodes--;
-		uma_zfree(V_pf_src_tree_pl, sn);
+		uma_zfree(V_pf_src_tree_z, sn);
 	}
 	if (nsn != sn && nsn != NULL && nsn->states == 0 && nsn->expire == 0) {
 		RB_REMOVE(pf_src_tree, &V_tree_src_tracking, nsn);
 		V_pf_status.scounters[SCNT_SRC_NODE_REMOVALS]++;
 		V_pf_status.src_nodes--;
-		uma_zfree(V_pf_src_tree_pl, nsn);
+		uma_zfree(V_pf_src_tree_z, nsn);
 	}
 	return (PF_DROP);
 }

Modified: projects/pf/head/sys/contrib/pf/net/pf_if.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_if.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/pf_if.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -65,7 +65,7 @@ __FBSDID("$FreeBSD$");
 #endif /* INET6 */
 
 VNET_DEFINE(struct pfi_kif *,	 pfi_all);
-VNET_DEFINE(uma_zone_t,		 pfi_addr_pl);
+VNET_DEFINE(uma_zone_t,		 pfi_addr_z);
 VNET_DEFINE(struct pfi_ifhead,	 pfi_ifs);
 #define	V_pfi_ifs		 VNET(pfi_ifs)
 VNET_DEFINE(long,		 pfi_update);
@@ -395,7 +395,7 @@ pfi_dynaddr_setup(struct pf_addr_wrap *a
 	if (aw->type != PF_ADDR_DYNIFTL)
 		return (0);
 	/* XXX: revisit! */
-	if ((dyn = uma_zalloc(V_pfi_addr_pl, M_WAITOK | M_ZERO))
+	if ((dyn = uma_zalloc(V_pfi_addr_z, M_WAITOK | M_ZERO))
 	    == NULL)
 		return (1);
 
@@ -451,7 +451,7 @@ _bad:
 		pf_remove_if_empty_ruleset(ruleset);
 	if (dyn->pfid_kif != NULL)
 		pfi_kif_unref(dyn->pfid_kif, PFI_KIF_REF_RULE);
-	uma_zfree(V_pfi_addr_pl, dyn);
+	uma_zfree(V_pfi_addr_z, dyn);
 
 	return (rv);
 }
@@ -640,7 +640,7 @@ pfi_dynaddr_remove(struct pf_addr_wrap *
 	aw->p.dyn->pfid_kif = NULL;
 	pfr_detach_table(aw->p.dyn->pfid_kt);
 	aw->p.dyn->pfid_kt = NULL;
-	uma_zfree(V_pfi_addr_pl, aw->p.dyn);
+	uma_zfree(V_pfi_addr_z, aw->p.dyn);
 	aw->p.dyn = NULL;
 }
 

Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -259,15 +259,15 @@ static void
 cleanup_pf_zone(void)
 {
 
-	uma_zdestroy(V_pf_src_tree_pl);
-	uma_zdestroy(V_pf_rule_pl);
-	uma_zdestroy(V_pf_state_pl);
-	uma_zdestroy(V_pf_state_key_pl);
-	uma_zdestroy(V_pf_altq_pl);
-	uma_zdestroy(V_pf_pooladdr_pl);
-	uma_zdestroy(V_pfr_ktable_pl);
-	uma_zdestroy(V_pfr_kentry_pl);
-	uma_zdestroy(V_pfi_addr_pl);
+	uma_zdestroy(V_pf_src_tree_z);
+	uma_zdestroy(V_pf_rule_z);
+	uma_zdestroy(V_pf_state_z);
+	uma_zdestroy(V_pf_state_key_z);
+	uma_zdestroy(V_pf_altq_z);
+	uma_zdestroy(V_pf_pooladdr_z);
+	uma_zdestroy(V_pfr_ktable_z);
+	uma_zdestroy(V_pfr_kentry_z);
+	uma_zdestroy(V_pfi_addr_z);
 }
 
 int
@@ -275,38 +275,41 @@ pfattach(void)
 {
 	u_int32_t *my_timeout = V_pf_default_rule.timeout;
 
-	V_pf_src_tree_pl = uma_zcreate("pfsrctrpl", sizeof(struct pf_src_node),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_rule_pl = uma_zcreate("pfrulepl", sizeof(struct pf_rule),
+	V_pf_src_tree_z = uma_zcreate("pf src nodes",
+	    sizeof(struct pf_src_node), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
+	    0);
+	V_pf_rule_z = uma_zcreate("pf rules", sizeof(struct pf_rule),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_state_pl = uma_zcreate("pfstatepl", sizeof(struct pf_state),
+	V_pf_state_z = uma_zcreate("pf states", sizeof(struct pf_state),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_state_key_pl = uma_zcreate("pfstatekeypl",
+	V_pf_state_key_z = uma_zcreate("pf state keys",
 	    sizeof(struct pf_state_key), NULL, NULL, NULL, NULL,UMA_ALIGN_PTR,
 	    0);
-	V_pf_altq_pl = uma_zcreate("pfaltqpl", sizeof(struct pf_altq),
+	V_pf_altq_z = uma_zcreate("pf altq", sizeof(struct pf_altq),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_pooladdr_pl = uma_zcreate("pfpooladdrpl",
+	V_pf_pooladdr_z = uma_zcreate("pf pool addresses",
 	    sizeof(struct pf_pooladdr), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
 	    0);
-	V_pfr_ktable_pl = uma_zcreate("pfrktable", sizeof(struct pfr_ktable),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pfr_kentry_pl = uma_zcreate("pfrkentry", sizeof(struct pfr_kentry),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pfi_addr_pl = uma_zcreate("pfiaddrpl", sizeof(struct pfi_dynaddr),
+	V_pfr_ktable_z = uma_zcreate("pf tables",
+	    sizeof(struct pfr_ktable), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
+	    0);
+	V_pfr_kentry_z = uma_zcreate("pf table entries",
+	    sizeof(struct pfr_kentry), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
+	    0);
+	V_pfi_addr_z = uma_zcreate("pf pfi_dynaddr", sizeof(struct pfi_dynaddr),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	pfr_initialize();
 	pfi_initialize();
 	pf_osfp_initialize();
 	pf_normalize_init();
 
-	V_pf_pool_limits[PF_LIMIT_STATES].pp = V_pf_state_pl;
+	V_pf_pool_limits[PF_LIMIT_STATES].pp = V_pf_state_z;
 	V_pf_pool_limits[PF_LIMIT_STATES].limit = PFSTATE_HIWAT;
-	V_pf_pool_limits[PF_LIMIT_SRC_NODES].pp = V_pf_src_tree_pl;
+	V_pf_pool_limits[PF_LIMIT_SRC_NODES].pp = V_pf_src_tree_z;
 	V_pf_pool_limits[PF_LIMIT_SRC_NODES].limit = PFSNODE_HIWAT;
-	V_pf_pool_limits[PF_LIMIT_TABLES].pp = V_pfr_ktable_pl;
+	V_pf_pool_limits[PF_LIMIT_TABLES].pp = V_pfr_ktable_z;
 	V_pf_pool_limits[PF_LIMIT_TABLES].limit = PFR_KTABLE_HIWAT;
-	V_pf_pool_limits[PF_LIMIT_TABLE_ENTRIES].pp = V_pfr_kentry_pl;
+	V_pf_pool_limits[PF_LIMIT_TABLE_ENTRIES].pp = V_pfr_kentry_z;
 	V_pf_pool_limits[PF_LIMIT_TABLE_ENTRIES].limit = PFR_KENTRY_HIWAT;
 	uma_zone_set_max(V_pf_pool_limits[PF_LIMIT_STATES].pp,
 	    V_pf_pool_limits[PF_LIMIT_STATES].limit);
@@ -432,7 +435,7 @@ pf_empty_pool(struct pf_palist *poola)
 		pf_tbladdr_remove(&empty_pool_pa->addr);
 		pfi_kif_unref(empty_pool_pa->kif, PFI_KIF_REF_RULE);
 		TAILQ_REMOVE(poola, empty_pool_pa, entries);
-		uma_zfree(V_pf_pooladdr_pl, empty_pool_pa);
+		uma_zfree(V_pf_pooladdr_z, empty_pool_pa);
 	}
 }
 
@@ -479,7 +482,7 @@ pf_rm_rule(struct pf_rulequeue *rulequeu
 	pfi_kif_unref(rule->kif, PFI_KIF_REF_RULE);
 	pf_anchor_remove(rule);
 	pf_empty_pool(&rule->rpool.list);
-	uma_zfree(V_pf_rule_pl, rule);
+	uma_zfree(V_pf_rule_z, rule);
 }
 
 static u_int16_t
@@ -618,7 +621,7 @@ pf_begin_altq(u_int32_t *ticket)
 			error = altq_remove(altq);
 		} else
 			pf_qid_unref(altq->qid);
-		uma_zfree(V_pf_altq_pl, altq);
+		uma_zfree(V_pf_altq_z, altq);
 	}
 	if (error)
 		return (error);
@@ -644,7 +647,7 @@ pf_rollback_altq(u_int32_t ticket)
 			error = altq_remove(altq);
 		} else
 			pf_qid_unref(altq->qid);
-		uma_zfree(V_pf_altq_pl, altq);
+		uma_zfree(V_pf_altq_z, altq);
 	}
 	V_altqs_inactive_open = 0;
 	return (error);
@@ -695,7 +698,7 @@ pf_commit_altq(u_int32_t ticket)
 				error = err;
 		} else
 			pf_qid_unref(altq->qid);
-		uma_zfree(V_pf_altq_pl, altq);
+		uma_zfree(V_pf_altq_z, altq);
 	}
 
 	V_altqs_inactive_open = 0;
@@ -775,7 +778,7 @@ pf_altq_ifnet_event(struct ifnet *ifp, i
 
 	/* Copy the current active set */
 	TAILQ_FOREACH(a1, V_pf_altqs_active, entries) {
-		a2 = uma_zalloc(V_pf_altq_pl, M_NOWAIT);
+		a2 = uma_zalloc(V_pf_altq_z, M_NOWAIT);
 		if (a2 == NULL) {
 			error = ENOMEM;
 			break;
@@ -785,7 +788,7 @@ pf_altq_ifnet_event(struct ifnet *ifp, i
 		if (a2->qname[0] != 0) {
 			if ((a2->qid = pf_qname2qid(a2->qname)) == 0) {
 				error = EBUSY;
-				uma_zfree(V_pf_altq_pl, a2);
+				uma_zfree(V_pf_altq_z, a2);
 				break;
 			}
 			a2->altq_disc = NULL;
@@ -811,7 +814,7 @@ pf_altq_ifnet_event(struct ifnet *ifp, i
 				error = EBUSY;
 
 			if (error) {
-				uma_zfree(V_pf_altq_pl, a2);
+				uma_zfree(V_pf_altq_z, a2);
 				break;
 			}
 		}
@@ -1261,7 +1264,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			error = EBUSY;
 			break;
 		}
-		rule = uma_zalloc(V_pf_rule_pl, M_NOWAIT);
+		rule = uma_zalloc(V_pf_rule_z, M_NOWAIT);
 		if (rule == NULL) {
 			error = ENOMEM;
 			break;
@@ -1278,14 +1281,14 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		rule->entries.tqe_prev = NULL;
 #ifndef INET
 		if (rule->af == AF_INET) {
-			uma_zfree(V_pf_rule_pl, rule);
+			uma_zfree(V_pf_rule_z, rule);
 			error = EAFNOSUPPORT;
 			break;
 		}
 #endif /* INET */
 #ifndef INET6
 		if (rule->af == AF_INET6) {
-			uma_zfree(V_pf_rule_pl, rule);
+			uma_zfree(V_pf_rule_z, rule);
 			error = EAFNOSUPPORT;
 			break;
 		}
@@ -1299,7 +1302,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		if (rule->ifname[0]) {
 			rule->kif = pfi_kif_get(rule->ifname);
 			if (rule->kif == NULL) {
-				uma_zfree(V_pf_rule_pl, rule);
+				uma_zfree(V_pf_rule_z, rule);
 				error = EINVAL;
 				break;
 			}
@@ -1510,7 +1513,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		}
 
 		if (pcr->action != PF_CHANGE_REMOVE) {
-			newrule = uma_zalloc(V_pf_rule_pl, M_NOWAIT);
+			newrule = uma_zalloc(V_pf_rule_z, M_NOWAIT);
 			if (newrule == NULL) {
 				error = ENOMEM;
 				break;
@@ -1524,14 +1527,14 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			newrule->entries.tqe_prev = NULL;
 #ifndef INET
 			if (newrule->af == AF_INET) {
-				uma_zfree(V_pf_rule_pl, newrule);
+				uma_zfree(V_pf_rule_z, newrule);
 				error = EAFNOSUPPORT;
 				break;
 			}
 #endif /* INET */
 #ifndef INET6
 			if (newrule->af == AF_INET6) {
-				uma_zfree(V_pf_rule_pl, newrule);
+				uma_zfree(V_pf_rule_z, newrule);
 				error = EAFNOSUPPORT;
 				break;
 			}
@@ -1539,7 +1542,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			if (newrule->ifname[0]) {
 				newrule->kif = pfi_kif_get(newrule->ifname);
 				if (newrule->kif == NULL) {
-					uma_zfree(V_pf_rule_pl, newrule);
+					uma_zfree(V_pf_rule_z, newrule);
 					error = EINVAL;
 					break;
 				}
@@ -2062,7 +2065,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			error = EBUSY;
 			break;
 		}
-		altq = uma_zalloc(V_pf_altq_pl, M_NOWAIT);
+		altq = uma_zalloc(V_pf_altq_z, M_NOWAIT);
 		if (altq == NULL) {
 			error = ENOMEM;
 			break;
@@ -2077,7 +2080,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		if (altq->qname[0] != 0) {
 			if ((altq->qid = pf_qname2qid(altq->qname)) == 0) {
 				error = EBUSY;
-				uma_zfree(V_pf_altq_pl, altq);
+				uma_zfree(V_pf_altq_z, altq);
 				break;
 			}
 			altq->altq_disc = NULL;
@@ -2100,7 +2103,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			PF_LOCK();
 		}
 		if (error) {
-			uma_zfree(V_pf_altq_pl, altq);
+			uma_zfree(V_pf_altq_z, altq);
 			break;
 		}
 
@@ -2218,7 +2221,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			error = EINVAL;
 			break;
 		}
-		pa = uma_zalloc(V_pf_pooladdr_pl, M_NOWAIT);
+		pa = uma_zalloc(V_pf_pooladdr_z, M_NOWAIT);
 		if (pa == NULL) {
 			error = ENOMEM;
 			break;
@@ -2227,7 +2230,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		if (pa->ifname[0]) {
 			pa->kif = pfi_kif_get(pa->ifname);
 			if (pa->kif == NULL) {
-				uma_zfree(V_pf_pooladdr_pl, pa);
+				uma_zfree(V_pf_pooladdr_z, pa);
 				error = EINVAL;
 				break;
 			}
@@ -2236,7 +2239,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 		if (pfi_dynaddr_setup(&pa->addr, pp->af)) {
 			pfi_dynaddr_remove(&pa->addr);
 			pfi_kif_unref(pa->kif, PFI_KIF_REF_RULE);
-			uma_zfree(V_pf_pooladdr_pl, pa);
+			uma_zfree(V_pf_pooladdr_z, pa);
 			error = EINVAL;
 			break;
 		}
@@ -2312,7 +2315,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			break;
 		}
 		if (pca->action != PF_CHANGE_REMOVE) {
-			newpa = uma_zalloc(V_pf_pooladdr_pl,
+			newpa = uma_zalloc(V_pf_pooladdr_z,
 			    M_NOWAIT);
 			if (newpa == NULL) {
 				error = ENOMEM;
@@ -2321,14 +2324,14 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			bcopy(&pca->addr, newpa, sizeof(struct pf_pooladdr));
 #ifndef INET
 			if (pca->af == AF_INET) {
-				uma_zfree(V_pf_pooladdr_pl, newpa);
+				uma_zfree(V_pf_pooladdr_z, newpa);
 				error = EAFNOSUPPORT;
 				break;
 			}
 #endif /* INET */
 #ifndef INET6
 			if (pca->af == AF_INET6) {
-				uma_zfree(V_pf_pooladdr_pl, newpa);
+				uma_zfree(V_pf_pooladdr_z, newpa);
 				error = EAFNOSUPPORT;
 				break;
 			}
@@ -2336,7 +2339,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			if (newpa->ifname[0]) {
 				newpa->kif = pfi_kif_get(newpa->ifname);
 				if (newpa->kif == NULL) {
-					uma_zfree(V_pf_pooladdr_pl, newpa);
+					uma_zfree(V_pf_pooladdr_z, newpa);
 					error = EINVAL;
 					break;
 				}
@@ -2347,7 +2350,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			    pf_tbladdr_setup(ruleset, &newpa->addr)) {
 				pfi_dynaddr_remove(&newpa->addr);
 				pfi_kif_unref(newpa->kif, PFI_KIF_REF_RULE);
-				uma_zfree(V_pf_pooladdr_pl, newpa);
+				uma_zfree(V_pf_pooladdr_z, newpa);
 				error = EINVAL;
 				break;
 			}
@@ -2376,7 +2379,7 @@ pfioctl(struct cdev *dev, u_long cmd, ca
 			pfi_dynaddr_remove(&oldpa->addr);
 			pf_tbladdr_remove(&oldpa->addr);
 			pfi_kif_unref(oldpa->kif, PFI_KIF_REF_RULE);
-			uma_zfree(V_pf_pooladdr_pl, oldpa);
+			uma_zfree(V_pf_pooladdr_z, oldpa);
 		} else {
 			if (oldpa == NULL)
 				TAILQ_INSERT_TAIL(&pool->list, newpa, entries);

Modified: projects/pf/head/sys/contrib/pf/net/pf_lb.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_lb.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/pf_lb.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -691,8 +691,8 @@ pf_get_translation(struct pf_pdesc *pd, 
 		 * Pretend there was no match.
 		 */
 		if (!bcmp(*skp, *nkp, sizeof(struct pf_state_key_cmp))) {
-			uma_zfree(V_pf_state_key_pl, *nkp);
-			uma_zfree(V_pf_state_key_pl, *skp);
+			uma_zfree(V_pf_state_key_z, *nkp);
+			uma_zfree(V_pf_state_key_z, *skp);
 			*skw = *sks = *nkp = *skp = NULL;
 			return (NULL);
 		}

Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_norm.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/pf_norm.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -107,16 +107,16 @@ static struct mtx pf_frag_mtx;
 #define PF_FRAG_UNLOCK()	mtx_unlock(&pf_frag_mtx)
 #define PF_FRAG_ASSERT()	mtx_assert(&pf_frag_mtx, MA_OWNED)
 
-VNET_DEFINE(uma_zone_t, pf_state_scrub_pl);	/* XXX: shared with pfsync */
+VNET_DEFINE(uma_zone_t, pf_state_scrub_z);	/* XXX: shared with pfsync */
 
-static VNET_DEFINE(uma_zone_t, pf_frent_pl);
-#define	V_pf_frent_pl	VNET(pf_frent_pl)
-static VNET_DEFINE(uma_zone_t, pf_frag_pl);
-#define	V_pf_frag_pl	VNET(pf_frag_pl)
-static VNET_DEFINE(uma_zone_t, pf_cache_pl);
-#define	V_pf_cache_pl	VNET(pf_cache_pl)
-static VNET_DEFINE(uma_zone_t, pf_cent_pl);
-#define	V_pf_cent_pl	VNET(pf_cent_pl)
+static VNET_DEFINE(uma_zone_t, pf_frent_z);
+#define	V_pf_frent_z	VNET(pf_frent_z)
+static VNET_DEFINE(uma_zone_t, pf_frag_z);
+#define	V_pf_frag_z	VNET(pf_frag_z)
+static VNET_DEFINE(uma_zone_t, pf_cache_z);
+#define	V_pf_cache_z	VNET(pf_cache_z)
+static VNET_DEFINE(uma_zone_t, pf_cent_z);
+#define	V_pf_cent_z	VNET(pf_cent_z)
 static VNET_DEFINE(int, pf_nfrents);
 #define	V_pf_nfrents	VNET(pf_nfrents)
 static VNET_DEFINE(int, pf_ncache);
@@ -166,29 +166,29 @@ void
 pf_normalize_init(void)
 {
 
-	V_pf_frent_pl = uma_zcreate("pffrent", sizeof(struct pf_frent),
+	V_pf_frent_z = uma_zcreate("pffrent", sizeof(struct pf_frent),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	/* XXXGL: two zones of struct pf_fragment */
-	V_pf_frag_pl = uma_zcreate("pffrag", sizeof(struct pf_fragment),
+	V_pf_frag_z = uma_zcreate("pffrag", sizeof(struct pf_fragment),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_cache_pl = uma_zcreate("pffrcache", sizeof(struct pf_fragment),
+	V_pf_cache_z = uma_zcreate("pffrcache", sizeof(struct pf_fragment),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_cent_pl = uma_zcreate("pffrcent", sizeof(struct pf_frcache),
+	V_pf_cent_z = uma_zcreate("pffrcent", sizeof(struct pf_frcache),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	V_pf_state_scrub_pl = uma_zcreate("pfstatescrub",
+	V_pf_state_scrub_z = uma_zcreate("pfstatescrub",
 	    sizeof(struct pf_state_scrub),  NULL, NULL, NULL, NULL,
 	    UMA_ALIGN_PTR, 0);
 
 	/*
 	 * XXX
 	 * No high water mark support(It's hint not hard limit).
-	 * uma_zone_set_max(pf_frag_pl, PFFRAG_FRAG_HIWAT);
+	 * uma_zone_set_max(pf_frag_z, PFFRAG_FRAG_HIWAT);
 	 */
-	uma_zone_set_max(V_pf_frent_pl, PFFRAG_FRENT_HIWAT);
-	uma_zone_set_max(V_pf_cache_pl, PFFRAG_FRCACHE_HIWAT);
-	uma_zone_set_max(V_pf_cent_pl, PFFRAG_FRCENT_HIWAT);
+	uma_zone_set_max(V_pf_frent_z, PFFRAG_FRENT_HIWAT);
+	uma_zone_set_max(V_pf_cache_z, PFFRAG_FRCACHE_HIWAT);
+	uma_zone_set_max(V_pf_cent_z, PFFRAG_FRCENT_HIWAT);
 
-	V_pf_pool_limits[PF_LIMIT_FRAGS].pp = V_pf_frent_pl;
+	V_pf_pool_limits[PF_LIMIT_FRAGS].pp = V_pf_frent_z;
 	V_pf_pool_limits[PF_LIMIT_FRAGS].limit = PFFRAG_FRENT_HIWAT;
 
 	mtx_init(&pf_frag_mtx, "pf fragments", NULL, MTX_DEF);
@@ -201,11 +201,11 @@ void
 pf_normalize_cleanup(void)
 {
 
-	uma_zdestroy(V_pf_frent_pl);
-	uma_zdestroy(V_pf_frag_pl);
-	uma_zdestroy(V_pf_cache_pl);
-	uma_zdestroy(V_pf_cent_pl);
-	uma_zdestroy(V_pf_state_scrub_pl);
+	uma_zdestroy(V_pf_frent_z);
+	uma_zdestroy(V_pf_frag_z);
+	uma_zdestroy(V_pf_cache_z);
+	uma_zdestroy(V_pf_cent_z);
+	uma_zdestroy(V_pf_state_scrub_z);
 
 	mtx_destroy(&pf_frag_mtx);
 }
@@ -315,7 +315,7 @@ pf_free_fragment(struct pf_fragment *fra
 			LIST_REMOVE(frent, fr_next);
 
 			m_freem(frent->fr_m);
-			uma_zfree(V_pf_frent_pl, frent);
+			uma_zfree(V_pf_frent_z, frent);
 			V_pf_nfrents--;
 		}
 	} else {
@@ -329,7 +329,7 @@ pf_free_fragment(struct pf_fragment *fra
 			    ("! (LIST_EMPTY() || LIST_FIRST()->fr_off >"
 			      " frcache->fr_end): %s", __FUNCTION__));
 
-			uma_zfree(V_pf_cent_pl, frcache);
+			uma_zfree(V_pf_cent_z, frcache);
 			V_pf_ncache--;
 		}
 	}
@@ -383,11 +383,11 @@ pf_remove_fragment(struct pf_fragment *f
 	if (BUFFER_FRAGMENTS(frag)) {
 		RB_REMOVE(pf_frag_tree, &V_pf_frag_tree, frag);
 		TAILQ_REMOVE(&V_pf_fragqueue, frag, frag_next);
-		uma_zfree(V_pf_frag_pl, frag);
+		uma_zfree(V_pf_frag_z, frag);
 	} else {
 		RB_REMOVE(pf_frag_tree, &V_pf_cache_tree, frag);
 		TAILQ_REMOVE(&V_pf_cachequeue, frag, frag_next);
-		uma_zfree(V_pf_cache_pl, frag);
+		uma_zfree(V_pf_cache_z, frag);
 	}
 }
 
@@ -415,10 +415,10 @@ pf_reassemble(struct mbuf **m0, struct p
 
 	/* Create a new reassembly queue for this packet */
 	if (*frag == NULL) {
-		*frag = uma_zalloc(V_pf_frag_pl, M_NOWAIT);
+		*frag = uma_zalloc(V_pf_frag_z, M_NOWAIT);
 		if (*frag == NULL) {
 			pf_flush_fragments();
-			*frag = uma_zalloc(V_pf_frag_pl, M_NOWAIT);
+			*frag = uma_zalloc(V_pf_frag_z, M_NOWAIT);
 			if (*frag == NULL)
 				goto drop_fragment;
 		}
@@ -494,7 +494,7 @@ pf_reassemble(struct mbuf **m0, struct p
 		next = LIST_NEXT(frea, fr_next);
 		m_freem(frea->fr_m);
 		LIST_REMOVE(frea, fr_next);
-		uma_zfree(V_pf_frent_pl, frea);
+		uma_zfree(V_pf_frent_z, frea);
 		V_pf_nfrents--;
 	}
 
@@ -551,13 +551,13 @@ pf_reassemble(struct mbuf **m0, struct p
 	m2 = m->m_next;
 	m->m_next = NULL;
 	m_cat(m, m2);
-	uma_zfree(V_pf_frent_pl, frent);
+	uma_zfree(V_pf_frent_z, frent);
 	V_pf_nfrents--;
 	for (frent = next; frent != NULL; frent = next) {
 		next = LIST_NEXT(frent, fr_next);
 
 		m2 = frent->fr_m;
-		uma_zfree(V_pf_frent_pl, frent);
+		uma_zfree(V_pf_frent_z, frent);
 		V_pf_nfrents--;
 		m->m_pkthdr.csum_flags &= m2->m_pkthdr.csum_flags;
 		m->m_pkthdr.csum_data += m2->m_pkthdr.csum_data;
@@ -593,7 +593,7 @@ pf_reassemble(struct mbuf **m0, struct p
 
  drop_fragment:
 	/* Oops - fail safe - drop packet */
-	uma_zfree(V_pf_frent_pl, frent);
+	uma_zfree(V_pf_frent_z, frent);
 	V_pf_nfrents--;
 	m_freem(m);
 	return (NULL);
@@ -616,18 +616,18 @@ pf_fragcache(struct mbuf **m0, struct ip
 
 	/* Create a new range queue for this packet */
 	if (*frag == NULL) {
-		*frag = uma_zalloc(V_pf_cache_pl, M_NOWAIT);
+		*frag = uma_zalloc(V_pf_cache_z, M_NOWAIT);
 		if (*frag == NULL) {
 			pf_flush_fragments();
-			*frag = uma_zalloc(V_pf_cache_pl, M_NOWAIT);
+			*frag = uma_zalloc(V_pf_cache_z, M_NOWAIT);
 			if (*frag == NULL)
 				goto no_mem;
 		}
 
 		/* Get an entry for the queue */
-		cur = uma_zalloc(V_pf_cent_pl, M_NOWAIT);
+		cur = uma_zalloc(V_pf_cent_z, M_NOWAIT);
 		if (cur == NULL) {
-			uma_zfree(V_pf_cache_pl, *frag);
+			uma_zfree(V_pf_cache_z, *frag);
 			*frag = NULL;
 			goto no_mem;
 		}
@@ -749,7 +749,7 @@ pf_fragcache(struct mbuf **m0, struct ip
 			    h->ip_id, -precut, frp->fr_off, frp->fr_end, off,
 			    max));
 
-			cur = uma_zalloc(V_pf_cent_pl, M_NOWAIT);
+			cur = uma_zalloc(V_pf_cent_z, M_NOWAIT);
 			if (cur == NULL)
 				goto no_mem;
 			V_pf_ncache++;
@@ -804,7 +804,7 @@ pf_fragcache(struct mbuf **m0, struct ip
 			    h->ip_id, -aftercut, off, max, fra->fr_off,
 			    fra->fr_end));
 
-			cur = uma_zalloc(V_pf_cent_pl, M_NOWAIT);
+			cur = uma_zalloc(V_pf_cent_z, M_NOWAIT);
 			if (cur == NULL)
 				goto no_mem;
 			V_pf_ncache++;
@@ -825,7 +825,7 @@ pf_fragcache(struct mbuf **m0, struct ip
 				    max, fra->fr_off, fra->fr_end));
 				fra->fr_off = cur->fr_off;
 				LIST_REMOVE(cur, fr_next);
-				uma_zfree(V_pf_cent_pl, cur);
+				uma_zfree(V_pf_cent_z, cur);
 				V_pf_ncache--;
 				cur = NULL;
 
@@ -839,7 +839,7 @@ pf_fragcache(struct mbuf **m0, struct ip
 				    max, fra->fr_off, fra->fr_end));
 				fra->fr_off = frp->fr_off;
 				LIST_REMOVE(frp, fr_next);
-				uma_zfree(V_pf_cent_pl, frp);
+				uma_zfree(V_pf_cent_z, frp);
 				V_pf_ncache--;
 				frp = NULL;
 
@@ -1015,7 +1015,7 @@ pf_normalize_ip(struct mbuf **m0, int di
 			goto bad;
 
 		/* Get an entry for the fragment queue */
-		frent = uma_zalloc(V_pf_frent_pl, M_NOWAIT);
+		frent = uma_zalloc(V_pf_frent_z, M_NOWAIT);
 		if (frent == NULL) {
 			PF_FRAG_UNLOCK();
 			REASON_SET(reason, PFRES_MEMORY);
@@ -1459,7 +1459,7 @@ pf_normalize_tcp_init(struct mbuf *m, in
 	KASSERT((src->scrub == NULL), 
 	    ("pf_normalize_tcp_init: src->scrub != NULL"));
 
-	src->scrub = uma_zalloc(V_pf_state_scrub_pl, M_NOWAIT);
+	src->scrub = uma_zalloc(V_pf_state_scrub_z, M_NOWAIT);
 	if (src->scrub == NULL)
 		return (1);
 	bzero(src->scrub, sizeof(*src->scrub));
@@ -1536,9 +1536,9 @@ void
 pf_normalize_tcp_cleanup(struct pf_state *state)
 {
 	if (state->src.scrub)
-		uma_zfree(V_pf_state_scrub_pl, state->src.scrub);
+		uma_zfree(V_pf_state_scrub_z, state->src.scrub);
 	if (state->dst.scrub)
-		uma_zfree(V_pf_state_scrub_pl, state->dst.scrub);
+		uma_zfree(V_pf_state_scrub_z, state->dst.scrub);
 
 	/* Someday... flush the TCP segment reassembly descriptors. */
 }

Modified: projects/pf/head/sys/contrib/pf/net/pf_osfp.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_osfp.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/pf_osfp.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -75,10 +75,10 @@ typedef uma_zone_t pool_t;
 SLIST_HEAD(pf_osfp_list, pf_os_fingerprint);
 VNET_DEFINE(struct pf_osfp_list,	pf_osfp_list);
 #define	V_pf_osfp_list			VNET(pf_osfp_list)
-VNET_DEFINE(pool_t,			pf_osfp_entry_pl);
-#define	pf_osfp_entry_pl		VNET(pf_osfp_entry_pl)
-VNET_DEFINE(pool_t,			pf_osfp_pl);
-#define	pf_osfp_pl			VNET(pf_osfp_pl)
+VNET_DEFINE(pool_t,			pf_osfp_entry_z);
+#define	pf_osfp_entry_pl		VNET(pf_osfp_entry_z)
+VNET_DEFINE(pool_t,			pf_osfp_z);
+#define	pf_osfp_pl			VNET(pf_osfp_z)
 
 static struct pf_osfp_enlist	*pf_osfp_fingerprint_hdr(const struct ip *,
 				    const struct ip6_hdr *,
@@ -307,9 +307,9 @@ pf_osfp_match(struct pf_osfp_enlist *lis
 void
 pf_osfp_initialize(void)
 {
-	pf_osfp_entry_pl = uma_zcreate("pfospfen", sizeof(struct pf_osfp_entry),
+	pf_osfp_entry_z = uma_zcreate("pfospfen", sizeof(struct pf_osfp_entry),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
-	pf_osfp_pl = uma_zcreate("pfosfp", sizeof(struct pf_os_fingerprint),
+	pf_osfp_z = uma_zcreate("pfosfp", sizeof(struct pf_os_fingerprint),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 
 	SLIST_INIT(&V_pf_osfp_list);
@@ -319,8 +319,8 @@ void
 pf_osfp_cleanup(void)
 {
 
-	uma_zdestroy(pf_osfp_entry_pl);
-	uma_zdestroy(pf_osfp_pl);
+	uma_zdestroy(pf_osfp_entry_z);
+	uma_zdestroy(pf_osfp_z);
 }
 #endif
 
@@ -335,9 +335,9 @@ pf_osfp_flush(void)
 		SLIST_REMOVE_HEAD(&V_pf_osfp_list, fp_next);
 		while ((entry = SLIST_FIRST(&fp->fp_oses))) {
 			SLIST_REMOVE_HEAD(&fp->fp_oses, fp_entry);
-			uma_zfree(pf_osfp_entry_pl, entry);
+			uma_zfree(pf_osfp_entry_z, entry);
 		}
-		uma_zfree(pf_osfp_pl, fp);
+		uma_zfree(pf_osfp_z, fp);
 	}
 }
 
@@ -390,11 +390,11 @@ pf_osfp_add(struct pf_osfp_ioctl *fpioc)
 			if (PF_OSFP_ENTRY_EQ(entry, &fpioc->fp_os))
 				return (EEXIST);
 		}
-		if ((entry = uma_zalloc(pf_osfp_entry_pl,
+		if ((entry = uma_zalloc(pf_osfp_entry_z,
 		    M_NOWAIT)) == NULL)
 			return (ENOMEM);
 	} else {
-		if ((fp = uma_zalloc(pf_osfp_pl,
+		if ((fp = uma_zalloc(pf_osfp_z,
 		    M_NOWAIT)) == NULL)
 			return (ENOMEM);
 		memset(fp, 0, sizeof(*fp));
@@ -407,9 +407,9 @@ pf_osfp_add(struct pf_osfp_ioctl *fpioc)
 		fp->fp_wscale = fpioc->fp_wscale;
 		fp->fp_ttl = fpioc->fp_ttl;
 		SLIST_INIT(&fp->fp_oses);
-		if ((entry = uma_zalloc(pf_osfp_entry_pl,
+		if ((entry = uma_zalloc(pf_osfp_entry_z,
 		    M_NOWAIT)) == NULL) {
-			uma_zfree(pf_osfp_pl, fp);
+			uma_zfree(pf_osfp_z, fp);
 			return (ENOMEM);
 		}
 		pf_osfp_insert(&V_pf_osfp_list, fp);

Modified: projects/pf/head/sys/contrib/pf/net/pf_table.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_table.c	Fri Mar  2 11:50:37 2012	(r232389)
+++ projects/pf/head/sys/contrib/pf/net/pf_table.c	Fri Mar  2 12:33:10 2012	(r232390)
@@ -154,10 +154,10 @@ struct pfr_walktree {
 
 #define	senderr(e)	do { rv = (e); goto _bad; } while (0)
 
-VNET_DEFINE(uma_zone_t,			pfr_ktable_pl);
-VNET_DEFINE(uma_zone_t,			pfr_kentry_pl);
-VNET_DEFINE(uma_zone_t,			pfr_kcounters_pl);
-#define	V_pfr_kcounters_pl		VNET(pfr_kcounters_pl)
+VNET_DEFINE(uma_zone_t,			pfr_ktable_z);
+VNET_DEFINE(uma_zone_t,			pfr_kentry_z);
+VNET_DEFINE(uma_zone_t,			pfr_kcounters_z);
+#define	V_pfr_kcounters_z		VNET(pfr_kcounters_z)
 VNET_DEFINE(struct sockaddr_in,		pfr_sin);
 #define	V_pfr_sin			VNET(pfr_sin)
 VNET_DEFINE(struct sockaddr_in6,	pfr_sin6);
@@ -843,7 +843,7 @@ pfr_create_kentry(struct pfr_addr *ad, i
 {
 	struct pfr_kentry	*ke;
 
-	ke =  uma_zalloc(V_pfr_kentry_pl, M_NOWAIT | M_ZERO);
+	ke =  uma_zalloc(V_pfr_kentry_z, M_NOWAIT | M_ZERO);
 	if (ke == NULL)
 		return (NULL);
 
@@ -872,8 +872,8 @@ static void
 pfr_destroy_kentry(struct pfr_kentry *ke)
 {
 	if (ke->pfrke_counters)
-		uma_zfree(V_pfr_kcounters_pl, ke->pfrke_counters);
-	uma_zfree(V_pfr_kentry_pl, ke);
+		uma_zfree(V_pfr_kcounters_z, ke->pfrke_counters);
+	uma_zfree(V_pfr_kentry_z, ke);
 }
 
 static void
@@ -953,7 +953,7 @@ pfr_clstats_kentries(struct pfr_kentrywo
 		if (negchange)
 			p->pfrke_not = !p->pfrke_not;
 		if (p->pfrke_counters) {
-			uma_zfree(V_pfr_kcounters_pl, p->pfrke_counters);
+			uma_zfree(V_pfr_kcounters_z, p->pfrke_counters);
 			p->pfrke_counters = NULL;
 		}
 		p->pfrke_tzero = tzero;
@@ -1919,7 +1919,7 @@ pfr_create_ktable(struct pfr_table *tbl,
 	struct pfr_ktable	*kt;
 	struct pf_ruleset	*rs;
 
-	kt = uma_zalloc(V_pfr_ktable_pl, M_NOWAIT|M_ZERO);
+	kt = uma_zalloc(V_pfr_ktable_z, M_NOWAIT|M_ZERO);
 	if (kt == NULL)
 		return (NULL);
 	kt->pfrkt_t = *tbl;
@@ -1981,7 +1981,7 @@ pfr_destroy_ktable(struct pfr_ktable *kt
 		kt->pfrkt_rs->tables--;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Fri Mar  2 12:43:00 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4E4A2106564A;
	Fri,  2 Mar 2012 12:43:00 +0000 (UTC)
	(envelope-from glebius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 39DE38FC08;
	Fri,  2 Mar 2012 12:43:00 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q22Ch0K6030532;
	Fri, 2 Mar 2012 12:43:00 GMT (envelope-from glebius@svn.freebsd.org)
Received: (from glebius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q22Ch0rk030527;
	Fri, 2 Mar 2012 12:43:00 GMT (envelope-from glebius@svn.freebsd.org)
Message-Id: <201203021243.q22Ch0rk030527@svn.freebsd.org>
From: Gleb Smirnoff <glebius@FreeBSD.org>
Date: Fri, 2 Mar 2012 12:43:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232391 - projects/pf/head/sys/contrib/pf/net
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 12:43:00 -0000

Author: glebius
Date: Fri Mar  2 12:42:59 2012
New Revision: 232391
URL: http://svn.freebsd.org/changeset/base/232391

Log:
  Use uma(9) init method to init pf_state_key.

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c
  projects/pf/head/sys/contrib/pf/net/pf.c
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Mar  2 12:33:10 2012	(r232390)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Mar  2 12:42:59 2012	(r232391)
@@ -484,7 +484,7 @@ pfsync_state_import(struct pfsync_state 
 	if ((st = uma_zalloc(V_pf_state_z, pool_flags)) == NULL)
 		goto cleanup;
 
-	if ((skw = pf_alloc_state_key(pool_flags)) == NULL)
+	if ((skw = uma_zalloc(V_pf_state_key_z, pool_flags)) == NULL)
 		goto cleanup;
 
 	if (PF_ANEQ(&sp->key[PF_SK_WIRE].addr[0],
@@ -493,7 +493,7 @@ pfsync_state_import(struct pfsync_state 
 	    &sp->key[PF_SK_STACK].addr[1], sp->af) ||
 	    sp->key[PF_SK_WIRE].port[0] != sp->key[PF_SK_STACK].port[0] ||
 	    sp->key[PF_SK_WIRE].port[1] != sp->key[PF_SK_STACK].port[1]) {
-		if ((sks = pf_alloc_state_key(pool_flags)) == NULL)
+		if ((sks = uma_zalloc(V_pf_state_key_z, pool_flags)) == NULL)
 			goto cleanup;
 	} else
 		sks = skw;

Modified: projects/pf/head/sys/contrib/pf/net/pf.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf.c	Fri Mar  2 12:33:10 2012	(r232390)
+++ projects/pf/head/sys/contrib/pf/net/pf.c	Fri Mar  2 12:42:59 2012	(r232391)
@@ -778,18 +778,6 @@ pf_state_key_detach(struct pf_state *s, 
 	s->key[idx] = NULL;
 }
 
-struct pf_state_key *
-pf_alloc_state_key(int pool_flags)
-{
-	struct pf_state_key	*sk;
-
-	if ((sk = uma_zalloc(V_pf_state_key_z, pool_flags)) == NULL)
-		return (NULL);
-	TAILQ_INIT(&sk->states);
-
-	return (sk);
-}
-
 int
 pf_state_key_setup(struct pf_pdesc *pd, struct pf_rule *nr,
 	struct pf_state_key **skw, struct pf_state_key **sks,
@@ -800,7 +788,7 @@ pf_state_key_setup(struct pf_pdesc *pd, 
 	KASSERT((*skp == NULL && *nkp == NULL),
 		("%s: skp == NULL && nkp == NULL", __func__));
 
-	if ((*skp = pf_alloc_state_key(M_NOWAIT | M_ZERO)) == NULL)
+	if ((*skp = uma_zalloc(V_pf_state_key_z, M_NOWAIT | M_ZERO)) == NULL)
 		return (ENOMEM);
 
 	PF_ACPY(&(*skp)->addr[pd->sidx], saddr, pd->af);
@@ -811,7 +799,8 @@ pf_state_key_setup(struct pf_pdesc *pd, 
 	(*skp)->af = pd->af;
 
 	if (nr != NULL) {
-		if ((*nkp = pf_alloc_state_key(M_NOWAIT | M_ZERO)) == NULL)
+		if ((*nkp = uma_zalloc(V_pf_state_key_z, M_NOWAIT | M_ZERO))
+		    == NULL)
 			return (ENOMEM); /* caller must handle cleanup */
 
 		/* XXX maybe just bcopy and TAILQ_INIT(&(*nkp)->states) */

Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Fri Mar  2 12:33:10 2012	(r232390)
+++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c	Fri Mar  2 12:42:59 2012	(r232391)
@@ -270,6 +270,15 @@ cleanup_pf_zone(void)
 	uma_zdestroy(V_pfi_addr_z);
 }
 
+static int
+pf_state_key_ini(void *mem, int size, int flags)
+{
+	struct pf_state_key *sk = mem;
+
+	TAILQ_INIT(&sk->states);
+	return (0);
+}
+
 int
 pfattach(void)
 {
@@ -283,8 +292,8 @@ pfattach(void)
 	V_pf_state_z = uma_zcreate("pf states", sizeof(struct pf_state),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	V_pf_state_key_z = uma_zcreate("pf state keys",
-	    sizeof(struct pf_state_key), NULL, NULL, NULL, NULL,UMA_ALIGN_PTR,
-	    0);
+	    sizeof(struct pf_state_key), NULL, NULL, pf_state_key_ini, NULL,
+	    UMA_ALIGN_PTR, 0);
 	V_pf_altq_z = uma_zcreate("pf altq", sizeof(struct pf_altq),
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	V_pf_pooladdr_z = uma_zcreate("pf pool addresses",

From owner-svn-src-projects@FreeBSD.ORG  Fri Mar  2 21:38:07 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 87362106566B;
	Fri,  2 Mar 2012 21:38:07 +0000 (UTC)
	(envelope-from gibbs@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 683208FC1D;
	Fri,  2 Mar 2012 21:38:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q22Lc7Z7048460;
	Fri, 2 Mar 2012 21:38:07 GMT (envelope-from gibbs@svn.freebsd.org)
Received: (from gibbs@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q22Lc7Vd048457;
	Fri, 2 Mar 2012 21:38:07 GMT (envelope-from gibbs@svn.freebsd.org)
Message-Id: <201203022138.q22Lc7Vd048457@svn.freebsd.org>
From: "Justin T. Gibbs" <gibbs@FreeBSD.org>
Date: Fri, 2 Mar 2012 21:38:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232407 - projects/zfsd/head/cddl/sbin/zfsd
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 21:38:07 -0000

Author: gibbs
Date: Fri Mar  2 21:38:06 2012
New Revision: 232407
URL: http://svn.freebsd.org/changeset/base/232407

Log:
  Modify ZFSD to tolerate events of arbitrary size instead of
  assuming that events will be no larger than 1024 bytes.  This
  corrects an infinite loop when events larger than this size
  are received (e.g. when a block checksum fails).
  
  cddl/sbin/zfsd/zfsd.h:
  	Bump the event limit up to 8K and add/rename some
  	constants to clarify exactly what ZFSD's limits
  	control.
  
  cddl/sbin/zfsd/zfsd.h:
  cddl/sbin/zfsd/zfsd.cc:
  	o Add EventBuffer::s_keyPairSepTokens[] to make explicit
  	  the characters that can separate devctl event key=value
  	  pairs.
  	o In EventBuffer::ExtractEvent(), truncate events to the
  	  end of the last fully received key=value pair if they
  	  are longer than the event size limit imposed by ZFSD.
  	o Prefer syslog to warn(x) for warnings generated after
  	  becoming a daemon.

Modified:
  projects/zfsd/head/cddl/sbin/zfsd/zfsd.cc
  projects/zfsd/head/cddl/sbin/zfsd/zfsd.h

Modified: projects/zfsd/head/cddl/sbin/zfsd/zfsd.cc
==============================================================================
--- projects/zfsd/head/cddl/sbin/zfsd/zfsd.cc	Fri Mar  2 21:36:24 2012	(r232406)
+++ projects/zfsd/head/cddl/sbin/zfsd/zfsd.cc	Fri Mar  2 21:38:06 2012	(r232407)
@@ -98,6 +98,11 @@ const char EventBuffer::s_eventStartToke
  */
 const char EventBuffer::s_eventEndTokens[] = "\n";
 
+/**
+ * Key=Value pairs are terminated by whitespace.
+ */
+const char EventBuffer::s_keyPairSepTokens[] = " \t\n";
+
 //- EventBuffer Public Methods -------------------------------------------------
 EventBuffer::EventBuffer(int fd)
  : m_fd(fd),
@@ -126,7 +131,8 @@ EventBuffer::ExtractEvent(string &eventS
 		size_t startLen(strcspn(nextEvent, s_eventStartTokens));
 		bool   aligned(startLen == 0);
 		if (aligned == false) {
-			warnx("Re-synchronizing with devd event stream");
+			syslog(LOG_WARNING,
+			       "Re-synchronizing with devd event stream");
 			m_nextEventOffset += startLen;
 			m_parsedLen = m_nextEventOffset;
 			continue;
@@ -136,26 +142,45 @@ EventBuffer::ExtractEvent(string &eventS
 		 * Start tokens may be end tokens too, so skip the start
 		 * token when trying to find the end of the event.
 		 */
+		bool   truncated(true);
 		size_t eventLen(strcspn(nextEvent + 1, s_eventEndTokens) + 1);
 		if (nextEvent[eventLen] == '\0') {
-			/* Ran out of buffer before hitting a full event. */
-			m_parsedLen += eventLen;
-			continue;
-		}
 
-		if (nextEvent[eventLen] != '\n') {
-			warnx("Improperly terminated event encountered");
+			m_parsedLen += eventLen;
+			if (m_parsedLen < MAX_EVENT_SIZE) {
+				/*
+				 * Ran out of buffer before hitting
+				 * a full event. Fill() and try again.
+				 */
+				continue;
+			}
+			syslog(LOG_WARNING,
+			       "Event exceeds event size limit of %d bytes.");
+		} else if (nextEvent[eventLen] != '\n') {
+			syslog(LOG_WARNING,
+			       "Improperly terminated event encountered.");
 		} else {
 			/*
 			 * Include the normal terminator in the extracted
 			 * event data.
 			 */
 			eventLen += 1;
+			truncated = false;
 		}
 
 		m_nextEventOffset += eventLen;
 		m_parsedLen = m_nextEventOffset;
 		eventString.assign(nextEvent, eventLen);
+
+		if (truncated) {
+			size_t fieldEnd;
+
+			fieldEnd = eventString.find_last_of(s_keyPairSepTokens);
+			eventString.erase(fieldEnd);
+			syslog(LOG_WARNING,
+			       "Truncated %d characters from event.",
+			       eventLen - fieldEnd);
+		}
 		return (true);
 	}
 	return (false);

Modified: projects/zfsd/head/cddl/sbin/zfsd/zfsd.h
==============================================================================
--- projects/zfsd/head/cddl/sbin/zfsd/zfsd.h	Fri Mar  2 21:36:24 2012	(r232406)
+++ projects/zfsd/head/cddl/sbin/zfsd/zfsd.h	Fri Mar  2 21:38:06 2012	(r232407)
@@ -119,21 +119,27 @@ private:
 		 */
 		MIN_EVENT_SIZE = 2,
 
+		/*
+		 * The maximum event size supported by ZFSD.
+		 * Events larger than this size (minus 1) are
+		 * truncated at the end of the last fully received
+		 * key/value pair.
+		 */
+		MAX_EVENT_SIZE = 8192,
+
 		/**
 		 * The maximum amount of buffer data to read at
 		 * a single time from the Devd file descriptor.
-		 * This size matches the largest event size allowed
-		 * in the system.
 		 */
-		MAX_READ_SIZE = 1024,
+		MAX_READ_SIZE = MAX_EVENT_SIZE,
 
 		/**
 		 * The size of EventBuffer's buffer of Devd event data.
-		 * This is one larger than the maximum event size which
-		 * alows us to always include a terminating NUL without
-		 * overwriting any received data.
+		 * This is one larger than the maximum supported event
+		 * size, which alows us to always include a terminating
+		 * NUL without overwriting any received data.
 		 */
-		EVENT_BUFSIZE = MAX_READ_SIZE + /*NUL*/1
+		EVENT_BUFSIZE = MAX_EVENT_SIZE + /*NUL*/1
 	};
 
 	/** The amount of data in m_buf we have yet to look at. */
@@ -151,6 +157,9 @@ private:
 	/** Characters we treat as ending an event string. */
 	static const char   s_eventEndTokens[];
 
+	/** Characters found between successive "key=value" strings. */
+	static const char   s_keyPairSepTokens[];
+
 	/** Temporary space for event data during our parsing. */
 	char		    m_buf[EVENT_BUFSIZE];
 

From owner-svn-src-projects@FreeBSD.ORG  Fri Mar  2 22:20:16 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 919DB106566B;
	Fri,  2 Mar 2012 22:20:16 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7D6098FC19;
	Fri,  2 Mar 2012 22:20:16 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q22MKGjO049977;
	Fri, 2 Mar 2012 22:20:16 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q22MKGLI049975;
	Fri, 2 Mar 2012 22:20:16 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <201203022220.q22MKGLI049975@svn.freebsd.org>
From: Xin LI <delphij@FreeBSD.org>
Date: Fri, 2 Mar 2012 22:20:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232412 - projects/head_mfi/sys/dev/mfi
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 22:20:16 -0000

Author: delphij
Date: Fri Mar  2 22:20:15 2012
New Revision: 232412
URL: http://svn.freebsd.org/changeset/base/232412

Log:
  Put wildcard pattern later in the match table.  Otherwise the more specific
  matches will not get a chance to win.

Modified:
  projects/head_mfi/sys/dev/mfi/mfi_pci.c

Modified: projects/head_mfi/sys/dev/mfi/mfi_pci.c
==============================================================================
--- projects/head_mfi/sys/dev/mfi/mfi_pci.c	Fri Mar  2 22:00:40 2012	(r232411)
+++ projects/head_mfi/sys/dev/mfi/mfi_pci.c	Fri Mar  2 22:20:15 2012	(r232412)
@@ -121,9 +121,9 @@ struct mfi_ident {
 	int		flags;
 	const char	*desc;
 } mfi_identifiers[] = {
-	{0x1000, 0x005B, 0xffff, 0xffff, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "ThunderBolt"},
 	{0x1000, 0x005B, 0x8086, 0x9265, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25DB080"},
 	{0x1000, 0x005B, 0x8086, 0x9285, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25NB008"},
+	{0x1000, 0x005B, 0xffff, 0xffff, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "ThunderBolt"},
 	{0x1000, 0x0060, 0x1028, 0xffff, MFI_FLAGS_1078,  "Dell PERC 6"},
 	{0x1000, 0x0060, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
 	{0x1000, 0x0071, 0xffff, 0xffff, MFI_FLAGS_SKINNY, "Drake Skinny"},

From owner-svn-src-projects@FreeBSD.ORG  Fri Mar  2 22:21:54 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 80A0B106567D;
	Fri,  2 Mar 2012 22:21:54 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6D0B18FC19;
	Fri,  2 Mar 2012 22:21:54 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q22MLspl050058;
	Fri, 2 Mar 2012 22:21:54 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q22MLsi3050056;
	Fri, 2 Mar 2012 22:21:54 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <201203022221.q22MLsi3050056@svn.freebsd.org>
From: Xin LI <delphij@FreeBSD.org>
Date: Fri, 2 Mar 2012 22:21:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232413 - projects/head_mfi/sys/dev/mfi
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 22:21:54 -0000

Author: delphij
Date: Fri Mar  2 22:21:53 2012
New Revision: 232413
URL: http://svn.freebsd.org/changeset/base/232413

Log:
  Use lower case for hexadecimal numbers to match surrounding style.

Modified:
  projects/head_mfi/sys/dev/mfi/mfi_pci.c

Modified: projects/head_mfi/sys/dev/mfi/mfi_pci.c
==============================================================================
--- projects/head_mfi/sys/dev/mfi/mfi_pci.c	Fri Mar  2 22:20:15 2012	(r232412)
+++ projects/head_mfi/sys/dev/mfi/mfi_pci.c	Fri Mar  2 22:21:53 2012	(r232413)
@@ -121,9 +121,9 @@ struct mfi_ident {
 	int		flags;
 	const char	*desc;
 } mfi_identifiers[] = {
-	{0x1000, 0x005B, 0x8086, 0x9265, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25DB080"},
-	{0x1000, 0x005B, 0x8086, 0x9285, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25NB008"},
-	{0x1000, 0x005B, 0xffff, 0xffff, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "ThunderBolt"},
+	{0x1000, 0x005b, 0x8086, 0x9265, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25DB080"},
+	{0x1000, 0x005b, 0x8086, 0x9285, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25NB008"},
+	{0x1000, 0x005b, 0xffff, 0xffff, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "ThunderBolt"},
 	{0x1000, 0x0060, 0x1028, 0xffff, MFI_FLAGS_1078,  "Dell PERC 6"},
 	{0x1000, 0x0060, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
 	{0x1000, 0x0071, 0xffff, 0xffff, MFI_FLAGS_SKINNY, "Drake Skinny"},

From owner-svn-src-projects@FreeBSD.ORG  Fri Mar  2 22:24:15 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 9249D106564A;
	Fri,  2 Mar 2012 22:24:15 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7EACD8FC13;
	Fri,  2 Mar 2012 22:24:15 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q22MOFLv050181;
	Fri, 2 Mar 2012 22:24:15 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q22MOFEX050179;
	Fri, 2 Mar 2012 22:24:15 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <201203022224.q22MOFEX050179@svn.freebsd.org>
From: Xin LI <delphij@FreeBSD.org>
Date: Fri, 2 Mar 2012 22:24:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232414 - projects/head_mfi/sys/dev/mfi
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 22:24:15 -0000

Author: delphij
Date: Fri Mar  2 22:24:15 2012
New Revision: 232414
URL: http://svn.freebsd.org/changeset/base/232414

Log:
  Add more Thunderbolt variants.

Modified:
  projects/head_mfi/sys/dev/mfi/mfi_pci.c

Modified: projects/head_mfi/sys/dev/mfi/mfi_pci.c
==============================================================================
--- projects/head_mfi/sys/dev/mfi/mfi_pci.c	Fri Mar  2 22:21:53 2012	(r232413)
+++ projects/head_mfi/sys/dev/mfi/mfi_pci.c	Fri Mar  2 22:24:15 2012	(r232414)
@@ -121,6 +121,14 @@ struct mfi_ident {
 	int		flags;
 	const char	*desc;
 } mfi_identifiers[] = {
+	{0x1000, 0x005b, 0x1028, 0x1f2d, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H810 Adapter"},
+	{0x1000, 0x005b, 0x1028, 0x1f30, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H710 Embedded"},
+	{0x1000, 0x005b, 0x1028, 0x1f31, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H710P Adapter"},
+	{0x1000, 0x005b, 0x1028, 0x1f33, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H710P Mini (blades)"},
+	{0x1000, 0x005b, 0x1028, 0x1f34, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H710P Mini (monolithics)"},
+	{0x1000, 0x005b, 0x1028, 0x1f35, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H710 Adapter"},
+	{0x1000, 0x005b, 0x1028, 0x1f37, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H710 Mini (blades)"},
+	{0x1000, 0x005b, 0x1028, 0x1f38, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Dell PERC H710 Mini (monolithics)"},
 	{0x1000, 0x005b, 0x8086, 0x9265, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25DB080"},
 	{0x1000, 0x005b, 0x8086, 0x9285, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "Intel (R) RAID Controller RS25NB008"},
 	{0x1000, 0x005b, 0xffff, 0xffff, MFI_FLAGS_SKINNY| MFI_FLAGS_TBOLT, "ThunderBolt"},

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 01:00:19 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 06888106566B;
	Sat,  3 Mar 2012 01:00:18 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D79B48FC13;
	Sat,  3 Mar 2012 01:00:18 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q2310IOc055529;
	Sat, 3 Mar 2012 01:00:18 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q2310Itw055527;
	Sat, 3 Mar 2012 01:00:18 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203030100.q2310Itw055527@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 01:00:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232419 - projects/armv6/sys/arm/include
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 01:00:19 -0000

Author: cognet
Date: Sat Mar  3 01:00:18 2012
New Revision: 232419
URL: http://svn.freebsd.org/changeset/base/232419

Log:
  Add proper memory barriers for armv6/7

Modified:
  projects/armv6/sys/arm/include/atomic.h

Modified: projects/armv6/sys/arm/include/atomic.h
==============================================================================
--- projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 00:37:03 2012	(r232418)
+++ projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 01:00:18 2012	(r232419)
@@ -64,6 +64,28 @@
 #if ARM_ARCH_6 || ARM_ARCH_7A
 
 static __inline void
+__do_dmb(void)
+{
+
+	__asm __volatile("dmb" : : : "memory");
+}
+
+#define	ATOMIC_ACQ_REL(NAME, WIDTH)					\
+static __inline  void							\
+atomic_##NAME##_acq_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\
+{									\
+	atomic_##NAME##_##WIDTH(p, v);					\
+	__do_dmb();							\
+}									\
+									\
+static __inline  void							\
+atomic_##NAME##_rel_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\
+{									\
+	__do_dmb();							\
+	atomic_##NAME##_##WIDTH(p, v);					\
+}
+
+static __inline void
 atomic_set_32(volatile uint32_t *address, uint32_t setmask)
 {
 	uint32_t tmp = 0, tmp2 = 0;
@@ -111,6 +133,23 @@ atomic_cmpset_32(volatile u_int32_t *p, 
 	return (ret);
 }
 
+static __inline u_int32_t
+atomic_cmpset_acq_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval)
+{
+	int ret = atomic_cmpset_32(p, cmpval, newval);
+
+	__do_dmb();
+	return (ret);
+}
+
+static __inline u_int32_t
+atomic_cmpset_rel_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval)
+{
+	
+	__do_dmb();
+	return (atomic_cmpset_32(p, cmpval, newval));
+}
+
 static __inline void
 atomic_add_32(volatile u_int32_t *p, u_int32_t val)
 {
@@ -139,6 +178,14 @@ atomic_subtract_32(volatile u_int32_t *p
 			    ,"+r" (p), "+r" (val) : : "memory");
 }
 
+
+ATOMIC_ACQ_REL(clear, 32)
+ATOMIC_ACQ_REL(add, 32)
+ATOMIC_ACQ_REL(subtract, 32)
+ATOMIC_ACQ_REL(set, 32)
+
+#undef ATOMIC_ACQ_REL
+
 static __inline uint32_t
 atomic_fetchadd_32(volatile uint32_t *p, uint32_t val)
 {
@@ -169,6 +216,23 @@ atomic_readandclear_32(volatile u_int32_
 	return (ret);
 }
 
+static __inline uint32_t
+atomic_load_acq_32(volatile uint32_t *p)
+{
+	uint32_t v;
+
+	v = *p;
+	__do_dmb();
+	return (v);
+}
+
+static __inline void
+atomic_store_rel_32(volatile uint32_t *p, uint32_t v)
+{
+	
+	__do_dmb();
+	*p = v;
+}
 
 #else /* < armv6 */
 
@@ -410,6 +474,18 @@ atomic_readandclear_32(volatile u_int32_
 	return (__swp(0, p));
 }
 
+#define atomic_cmpset_rel_32	atomic_cmpset_32
+#define atomic_cmpset_acq_32	atomic_cmpset_32
+#define atomic_set_rel_32	atomic_set_32
+#define atomic_set_acq_32	atomic_set_32
+#define atomic_clear_rel_32	atomic_clear_32
+#define atomic_clear_acq_32	atomic_clear_32
+#define atomic_add_rel_32	atomic_add_32
+#define atomic_add_acq_32	atomic_add_32
+#define atomic_subtract_rel_32	atomic_subtract_32
+#define atomic_subtract_acq_32	atomic_subtract_32
+#define atomic_store_rel_32	atomic_store_32
+#define atomic_load_acq_32	atomic_load_32
 #undef __with_interrupts_disabled
 
 #endif /* _LOCORE */
@@ -431,31 +507,31 @@ atomic_store_32(volatile uint32_t *dst, 
 
 #define	atomic_add_long(p, v) \
 	atomic_add_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_add_acq_long		atomic_add_long
-#define atomic_add_rel_long		atomic_add_long
+#define atomic_add_acq_long		atomic_add_acq_32
+#define atomic_add_rel_long		atomic_add_rel_32
 #define	atomic_subtract_long(p, v) \
 	atomic_subtract_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_subtract_acq_long	atomic_subtract_long
-#define atomic_subtract_rel_long	atomic_subtract_long
+#define atomic_subtract_acq_long	atomic_subtract_acq_32
+#define atomic_subtract_rel_long	atomic_subtract_rel_32
 #define	atomic_clear_long(p, v) \
 	atomic_clear_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_clear_acq_long		atomic_clear_long
-#define atomic_clear_rel_long		atomic_clear_long
+#define atomic_clear_acq_long		atomic_clear_acq_32
+#define atomic_clear_rel_long		atomic_clear_rel_32
 #define	atomic_set_long(p, v) \
 	atomic_set_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_set_acq_long		atomic_set_long
-#define atomic_set_rel_long		atomic_set_long
+#define atomic_set_acq_long		atomic_set_acq_32
+#define atomic_set_rel_long		atomic_set_rel_32
 #define	atomic_cmpset_long(dst, old, new) \
 	atomic_cmpset_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
-#define atomic_cmpset_acq_long		atomic_cmpset_long
-#define atomic_cmpset_rel_long		atomic_cmpset_long
+#define atomic_cmpset_acq_long		atomic_cmpset_acq_32
+#define atomic_cmpset_rel_long		atomic_cmpset_rel_32
 #define	atomic_fetchadd_long(p, v) \
 	atomic_fetchadd_32((volatile u_int *)(p), (u_int)(v))
 #define	atomic_readandclear_long(p) \
 	atomic_readandclear_long((volatile u_int *)(p))
 #define	atomic_load_long(p) \
 	atomic_load_32((volatile u_int *)(p))
-#define atomic_load_acq_long		atomic_load_long
+#define atomic_load_acq_long		atomic_load_acq_32
 #define	atomic_store_rel_long(p, v) \
 	atomic_store_rel_32((volatile u_int *)(p), (u_int)(v))
 
@@ -464,43 +540,31 @@ atomic_store_32(volatile uint32_t *dst, 
 #define atomic_set_ptr			atomic_set_32
 #define	atomic_cmpset_ptr(dst, old, new)	\
     atomic_cmpset_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
-#define atomic_cmpset_rel_ptr		atomic_cmpset_ptr
-#define atomic_cmpset_acq_ptr		atomic_cmpset_ptr
+#define atomic_cmpset_rel_ptr(dst, old, new)	\
+    atomic_cmpset_rel_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
+#define atomic_cmpset_acq_ptr(dst, old, new)	\
+    atomic_cmpset_acq_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
 #define atomic_store_ptr		atomic_store_32
 #define atomic_store_rel_ptr		atomic_store_ptr
 
 #define atomic_add_int			atomic_add_32
-#define atomic_add_acq_int		atomic_add_int
-#define atomic_add_rel_int		atomic_add_int
+#define atomic_add_acq_int		atomic_add_acq_32
+#define atomic_add_rel_int		atomic_add_rel_32
 #define atomic_subtract_int		atomic_subtract_32
-#define atomic_subtract_acq_int		atomic_subtract_int
-#define atomic_subtract_rel_int		atomic_subtract_int
+#define atomic_subtract_acq_int		atomic_subtract_acq_32
+#define atomic_subtract_rel_int		atomic_subtract_rel_32
 #define atomic_clear_int		atomic_clear_32
-#define atomic_clear_acq_int		atomic_clear_int
-#define atomic_clear_rel_int		atomic_clear_int
+#define atomic_clear_acq_int		atomic_clear_acq_32
+#define atomic_clear_rel_int		atomic_clear_rel_32
 #define atomic_set_int			atomic_set_32
-#define atomic_set_acq_int		atomic_set_int
-#define atomic_set_rel_int		atomic_set_int
+#define atomic_set_acq_int		atomic_set_acq_32
+#define atomic_set_rel_int		atomic_set_rel_32
 #define atomic_cmpset_int		atomic_cmpset_32
-#define atomic_cmpset_acq_int		atomic_cmpset_int
-#define atomic_cmpset_rel_int		atomic_cmpset_int
+#define atomic_cmpset_acq_int		atomic_cmpset_acq_32
+#define atomic_cmpset_rel_int		atomic_cmpset_rel_32
 #define atomic_fetchadd_int		atomic_fetchadd_32
 #define atomic_readandclear_int		atomic_readandclear_32
-#define atomic_load_acq_int		atomic_load_32
-#define atomic_store_rel_int		atomic_store_32
-
-#define atomic_add_acq_32		atomic_add_32
-#define atomic_add_rel_32		atomic_add_32
-#define atomic_subtract_acq_32		atomic_subtract_32
-#define atomic_subtract_rel_32		atomic_subtract_32
-#define atomic_clear_acq_32		atomic_clear_32
-#define atomic_clear_rel_32		atomic_clear_32
-#define atomic_set_acq_32		atomic_set_32
-#define atomic_set_rel_32		atomic_set_32
-#define atomic_cmpset_acq_32		atomic_cmpset_32
-#define atomic_cmpset_rel_32		atomic_cmpset_32
-#define atomic_load_acq_32		atomic_load_32
-#define atomic_store_rel_32		atomic_store_32
-
+#define atomic_load_acq_int		atomic_load_acq_32
+#define atomic_store_rel_int		atomic_store_rel_32
 
 #endif /* _MACHINE_ATOMIC_H_ */

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 01:17:14 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 7627D106564A;
	Sat,  3 Mar 2012 01:17:14 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4C2DD8FC13;
	Sat,  3 Mar 2012 01:17:14 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q231HEKi056103;
	Sat, 3 Mar 2012 01:17:14 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q231HEVq056101;
	Sat, 3 Mar 2012 01:17:14 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203030117.q231HEVq056101@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 01:17:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232421 - projects/armv6/sys/arm/arm
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 01:17:14 -0000

Author: cognet
Date: Sat Mar  3 01:17:13 2012
New Revision: 232421
URL: http://svn.freebsd.org/changeset/base/232421

Log:
  Implement workarounds for arm errata.
  Wait and sync the cache where we should.

Modified:
  projects/armv6/sys/arm/arm/pl310.c

Modified: projects/armv6/sys/arm/arm/pl310.c
==============================================================================
--- projects/armv6/sys/arm/arm/pl310.c	Sat Mar  3 01:06:54 2012	(r232420)
+++ projects/armv6/sys/arm/arm/pl310.c	Sat Mar  3 01:17:13 2012	(r232421)
@@ -36,6 +36,8 @@ __FBSDID("$FreeBSD$");
 #include <sys/kernel.h>
 #include <sys/rman.h>
 #include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
 #include <machine/intr.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
@@ -162,8 +164,16 @@ pl310_cache_sync(void)
 static void
 pl310_wbinv_all(void)
 {
+#if 1
+	pl310_write4(PL310_DEBUG_CTRL, 3);
+#endif
 	pl310_write4(PL310_CLEAN_INV_WAY, g_l2cache_way_mask);
 	pl310_wait_background_op(PL310_CLEAN_INV_WAY, g_l2cache_way_mask);
+	pl310_cache_sync();
+#if 1
+	pl310_write4(PL310_DEBUG_CTRL, 0);
+#endif
+		
 }
 
 static void
@@ -174,11 +184,33 @@ pl310_wbinv_range(vm_paddr_t start, vm_s
 		size &= ~g_l2cache_align_mask;
 		size += g_l2cache_line_size;
 	}
+#if 1
+
+	pl310_write4(PL310_DEBUG_CTRL, 3);
+#endif
 	while (size > 0) {
+#if 1
+		/* 
+		 * Errata 588369 says that clean + inv may keep the 
+		 * cache line if it was clean, the recommanded workaround
+		 * is to clean then invalidate the cache line, with
+		 * write-back and cache linefill disabled
+		 */
+		   
+		pl310_write4(PL310_CLEAN_LINE_PA, start);
+		pl310_write4(PL310_INV_LINE_PA, start);
+#else
 		pl310_write4(PL310_CLEAN_INV_LINE_PA, start);
+#endif
 		start += g_l2cache_line_size;
 		size -= g_l2cache_line_size;
 	}
+#if 1
+	pl310_write4(PL310_DEBUG_CTRL, 0);
+#endif
+	pl310_wait_background_op(PL310_CLEAN_INV_LINE_PA, 1);
+	pl310_cache_sync();
+		
 }
 
 static void
@@ -194,6 +226,8 @@ pl310_wb_range(vm_paddr_t start, vm_size
 		start += g_l2cache_line_size;
 		size -= g_l2cache_line_size;
 	}
+	pl310_cache_sync();
+	pl310_wait_background_op(PL310_CLEAN_LINE_PA, 1);
 
 }
 
@@ -210,6 +244,8 @@ pl310_inv_range(vm_paddr_t start, vm_siz
 		start += g_l2cache_line_size;
 		size -= g_l2cache_line_size;
 	}
+	pl310_cache_sync();
+	pl310_wait_background_op(PL310_INV_LINE_PA, 1);
 
 }
 

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 01:20:47 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 3DA791065672;
	Sat,  3 Mar 2012 01:20:47 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2C5C58FC0A;
	Sat,  3 Mar 2012 01:20:47 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q231KlUb056246;
	Sat, 3 Mar 2012 01:20:47 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q231Kkv9056241;
	Sat, 3 Mar 2012 01:20:46 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203030120.q231Kkv9056241@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 01:20:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232422 - in projects/armv6/sys/arm: arm include mv
	mv/armadaxp
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 01:20:47 -0000

Author: cognet
Date: Sat Mar  3 01:20:46 2012
New Revision: 232422
URL: http://svn.freebsd.org/changeset/base/232422

Log:
  - We can't rely on the initial pagetable still being setted up, maybe we
  reused the memory, instead, allocate a temporary page table, map the
  kernel into it, and make the APs use it.
  - Make it so we can use multiple IRQs for IPI
  - Add a new function, platform_mp_init_secondary(), which will be called
  for each AP, and do platform-specific init stuff, such as setting up the
  GIC for the AP.

Modified:
  projects/armv6/sys/arm/arm/mp_machdep.c
  projects/armv6/sys/arm/include/smp.h
  projects/armv6/sys/arm/mv/armadaxp/armadaxp_mp.c
  projects/armv6/sys/arm/mv/mpic.c

Modified: projects/armv6/sys/arm/arm/mp_machdep.c
==============================================================================
--- projects/armv6/sys/arm/arm/mp_machdep.c	Sat Mar  3 01:17:13 2012	(r232421)
+++ projects/armv6/sys/arm/arm/mp_machdep.c	Sat Mar  3 01:20:46 2012	(r232422)
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/sched.h>
 #include <sys/smp.h>
 #include <sys/ktr.h>
+#include <sys/malloc.h>
 
 #include <vm/vm.h>
 #include <vm/vm_extern.h>
@@ -47,7 +48,11 @@ __FBSDID("$FreeBSD$");
 #include <machine/pcb.h>
 #include <machine/pte.h>
 #include <machine/intr.h>
+#include <machine/vmparam.h>
 
+#include "opt_smp.h"
+
+void *temp_pagetable;
 extern struct pcpu __pcpu[];
 /* used to hold the AP's until we are ready to release them */
 struct mtx ap_boot_mtx;
@@ -90,17 +95,38 @@ check_ap(void)
 	return (-2);
 }
 
+extern unsigned char _end[];
+
 /* Initialize and fire up non-boot processors */
 void
 cpu_mp_start(void)
 {
 	int error, i;
+	vm_offset_t temp_pagetable_va;
+	vm_paddr_t addr, addr_end;
 
 	mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN);
 
 	/* Reserve memory for application processors */
 	for(i = 0; i < (mp_ncpus - 1); i++)
 		dpcpu[i] = (void *)kmem_alloc(kernel_map, DPCPU_SIZE);
+	temp_pagetable_va = (vm_offset_t)contigmalloc(L1_TABLE_SIZE,
+	    M_TEMP, 0, 0x0, 0xffffffff, L1_TABLE_SIZE, 0);
+	addr = KERNPHYSADDR;
+	addr_end = (vm_offset_t)&_end - KERNVIRTADDR + KERNPHYSADDR;
+	addr_end &= ~L1_S_OFFSET;
+	addr_end += L1_S_SIZE;
+	bzero((void *)temp_pagetable_va,  L1_TABLE_SIZE);
+	for (addr = KERNPHYSADDR; addr <= addr_end; addr += L1_S_SIZE) { 
+		((int *)(temp_pagetable_va))[addr >> L1_S_SHIFT] =
+		    L1_TYPE_S|L1_SHARED|L1_S_C|L1_S_AP(AP_KRW)|L1_S_DOM(PMAP_DOMAIN_KERNEL)|addr;
+		((int *)(temp_pagetable_va))[(addr -
+			KERNPHYSADDR + KERNVIRTADDR) >> L1_S_SHIFT] = 
+		    L1_TYPE_S|L1_SHARED|L1_S_C|L1_S_AP(AP_KRW)|L1_S_DOM(PMAP_DOMAIN_KERNEL)|addr;
+	}
+	temp_pagetable = (void*)(vtophys(temp_pagetable_va));
+	cpu_idcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 
 	/* Initialize boot code and start up processors */
 	platform_mp_start_ap();
@@ -113,7 +139,7 @@ cpu_mp_start(void)
 		for (i = 1; i < mp_ncpus; i++)
 			CPU_SET(i, &all_cpus);
 
-	printf("%d AP started\n", mp_naps);
+	contigfree((void *)temp_pagetable_va, L1_TABLE_SIZE, M_TEMP);
 }
 
 /* Introduce rest of cores to the world */
@@ -129,9 +155,9 @@ init_secondary(int cpu)
 {
 	struct pcpu *pc;
 	uint32_t loop_counter;
+	int start = 0, end = 0;
 
 	cpu_setup(NULL);
-
 	setttb(pmap_pa);
 	cpu_tlb_flushID();
 
@@ -169,7 +195,17 @@ init_secondary(int cpu)
 	mtx_unlock_spin(&ap_boot_mtx);
 
 	/* Enable ipi */
-	arm_unmask_irq(0);
+#ifdef IPI_IRQ_START
+	start = IPI_IRQ_START;
+#ifdef IPI_IRQ_END
+  	end = IPI_IRQ_END;
+#else
+	end = IPI_IRQ_START;
+#endif
+#endif
+				
+	for (int i = start; i <= end; i++)
+		arm_unmask_irq(i);
 	enable_interrupts(I32_bit);
 
 	loop_counter = 0;
@@ -179,11 +215,11 @@ init_secondary(int cpu)
 		if (loop_counter == 1000)
 			CTR0(KTR_SMP, "AP still wait for smp_started");
 	}
-
 	/* Start per-CPU event timers. */
 	cpu_initclocks_ap();
 
 	CTR0(KTR_SMP, "go into scheduler");
+	platform_mp_init_secondary();
 
 	/* Enter the scheduler */
 	sched_throw(NULL);
@@ -199,7 +235,7 @@ ipi_handler(void *arg)
 
 	cpu = PCPU_GET(cpuid);
 
-	ipi = pic_ipi_get();
+	ipi = pic_ipi_get((int)arg);
 
 	while ((ipi != 0x3ff)) {
 		switch (ipi) {
@@ -250,7 +286,7 @@ ipi_handler(void *arg)
 		}
 
 		pic_ipi_clear(ipi);
-		ipi = pic_ipi_get();
+		ipi = pic_ipi_get(-1);
 	}
 
 	return (FILTER_HANDLED);
@@ -260,19 +296,34 @@ static void
 release_aps(void *dummy __unused)
 {
 	uint32_t loop_counter;
+	int start = 0, end = 0;
 
 	if (mp_ncpus == 1)
 		return;
+#ifdef IPI_IRQ_START
+	start = IPI_IRQ_START;
+#ifdef IPI_IRQ_END
+	end = IPI_IRQ_END;
+#else
+	end = IPI_IRQ_START;
+#endif
+#endif
+
+	for (int i = start; i <= end; i++) {
+		/*
+		 * IPI handler
+		 */
+		/* 
+		 * Use 0xdeadbeef as the argument value for irq 0,
+		 * if we used 0, the intr code will give the trap frame
+		 * pointer instead.
+		 */
+		arm_setup_irqhandler("ipi", ipi_handler, NULL, (void *)i, i,
+		    INTR_TYPE_MISC | INTR_EXCL, NULL);
 
-	/*
-	 * IPI handler
-	 */
-	arm_setup_irqhandler("ipi", ipi_handler, NULL, NULL, 0,
-	    INTR_TYPE_MISC | INTR_EXCL, NULL);
-
-	/* Enable ipi */
-	arm_unmask_irq(0);
-
+		/* Enable ipi */
+		arm_unmask_irq(i);
+	}
 	atomic_store_rel_int(&aps_ready, 1);
 
 	printf("Release APs\n");
@@ -282,7 +333,6 @@ release_aps(void *dummy __unused)
 			return;
 		DELAY(1000);
 	}
-
 	printf("AP's not started\n");
 }
 

Modified: projects/armv6/sys/arm/include/smp.h
==============================================================================
--- projects/armv6/sys/arm/include/smp.h	Sat Mar  3 01:17:13 2012	(r232421)
+++ projects/armv6/sys/arm/include/smp.h	Sat Mar  3 01:20:46 2012	(r232422)
@@ -22,12 +22,13 @@ void	ipi_selected(cpuset_t cpus, u_int i
 /* PIC interface */
 void	pic_ipi_send(cpuset_t cpus, u_int ipi);
 void	pic_ipi_clear(int ipi);
-int	pic_ipi_get(void);
+int	pic_ipi_get(int arg);
 
 /* Platform interface */
 void	platform_mp_setmaxid(void);
 int	platform_mp_probe(void);
 void	platform_mp_start_ap(void);
+void	platform_mp_init_secondary(void);
 
 void	platform_ipi_send(cpuset_t cpus, u_int ipi);
 

Modified: projects/armv6/sys/arm/mv/armadaxp/armadaxp_mp.c
==============================================================================
--- projects/armv6/sys/arm/mv/armadaxp/armadaxp_mp.c	Sat Mar  3 01:17:13 2012	(r232421)
+++ projects/armv6/sys/arm/mv/armadaxp/armadaxp_mp.c	Sat Mar  3 01:20:46 2012	(r232422)
@@ -101,6 +101,11 @@ platform_mp_probe(void)
 	return (mp_ncpus > 1);
 }
 
+void
+platform_mp_init_secondary(void)
+{
+}
+
 void mpentry(void);
 void mptramp(void);
 

Modified: projects/armv6/sys/arm/mv/mpic.c
==============================================================================
--- projects/armv6/sys/arm/mv/mpic.c	Sat Mar  3 01:17:13 2012	(r232421)
+++ projects/armv6/sys/arm/mv/mpic.c	Sat Mar  3 01:20:46 2012	(r232422)
@@ -281,7 +281,7 @@ pic_ipi_send(cpuset_t cpus, u_int ipi)
 }
 
 int
-pic_ipi_get(void)
+pic_ipi_get(int i __unused)
 {
 	uint32_t val;
 

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 01:22:47 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1FB72106566C;
	Sat,  3 Mar 2012 01:22:47 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0EDA48FC18;
	Sat,  3 Mar 2012 01:22:47 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q231Mke5056355;
	Sat, 3 Mar 2012 01:22:46 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q231MkHQ056352;
	Sat, 3 Mar 2012 01:22:46 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203030122.q231MkHQ056352@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 01:22:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232423 - in projects/armv6/sys/arm: arm include
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 01:22:47 -0000

Author: cognet
Date: Sat Mar  3 01:22:46 2012
New Revision: 232423
URL: http://svn.freebsd.org/changeset/base/232423

Log:
  Introduce armv7_sev() and armv7_auxctrl.
  Use broadcasting TLB functions for SMP, instead of sending IPIs.

Modified:
  projects/armv6/sys/arm/arm/cpufunc_asm_armv7.S
  projects/armv6/sys/arm/include/cpufunc.h

Modified: projects/armv6/sys/arm/arm/cpufunc_asm_armv7.S
==============================================================================
--- projects/armv6/sys/arm/arm/cpufunc_asm_armv7.S	Sat Mar  3 01:20:46 2012	(r232422)
+++ projects/armv6/sys/arm/arm/cpufunc_asm_armv7.S	Sat Mar  3 01:22:46 2012	(r232423)
@@ -43,24 +43,30 @@ __FBSDID("$FreeBSD$");
 .Lpage_mask:
 	.word	0xfff
 
+#define PT_NOS          (1 << 5)
+#define PT_S 	        (1 << 1)
+#define PT_INNER_NC	0
+#define PT_INNER_WT	(1 << 0)
+#define PT_INNER_WB	((1 << 0) | (1 << 6))
+#define PT_INNER_WBWA	(1 << 6)
+#define PT_OUTER_NC	0
+#define PT_OUTER_WT	(2 << 3)
+#define PT_OUTER_WB	(3 << 3)
+#define PT_OUTER_WBWA	(1 << 3)
+	
+#ifdef SMP
+#define PT_ATTR	(PT_S|PT_INNER_WT|PT_OUTER_WT|PT_NOS)
+#else
+#define PT_ATTR	(PT_INNER_WT|PT_OUTER_WT)
+#endif
+
 ENTRY(armv7_setttb)
 	stmdb   sp!, {r0, lr}
  	bl      _C_LABEL(armv7_idcache_wbinv_all) /* clean the D cache */
  	ldmia   sp!, {r0, lr}
  	dsb
-#if defined(SMP)
-	/*
-	 * Settings for architecture with SMP extension:
-	 * PT memory: inner WBWA, shareable; outer WBWA, non-shareable
-	 */
-	orr	r0, r0, #106
-#else
-	/*
-	 * Settings for architecture without SMP extension:
-	 * PT memory: inner-cacheable, non-shareable; outer WB, non-shareable
-	 */
-	orr 	r0, r0, #25
-#endif
+				
+	orr 	r0, r0, #PT_ATTR
  	mcr	p15, 0, r0, c2, c0, 0	/* Translation Table Base Register 0 (TTBR0) */
  	mcr     p15, 0, r0, c8, c7, 0   /* invalidate I+D TLBs */
  	dsb
@@ -69,7 +75,11 @@ ENTRY(armv7_setttb)
 
 ENTRY(armv7_tlb_flushID)
 	dsb
+#ifdef SMP
+	mcr 	p15, 0, r0, c8, c3, 0
+#else
 	mcr	p15, 0, r0, c8, c7, 0	/* flush I+D tlb */
+#endif
 	mcr	p15, 0, r0, c7, c5, 6	/* flush BTB */
 	dsb
 	isb
@@ -78,9 +88,14 @@ ENTRY(armv7_tlb_flushID)
 ENTRY(armv7_tlb_flushID_SE)
 	ldr	r1, .Lpage_mask
 	bic	r0, r0, r1
+#ifdef SMP
+	mcr	p15, 0, r0, c8, c3, 1	/* flush D tlb single entry */
+#else
 	mcr	p15, 0, r0, c8, c7, 1	/* flush D tlb single entry */
+#endif
 	mcr	p15, 0, r0, c7, c5, 6	/* flush BTB */
 	dsb
+	isb
 	mov	pc, lr
 
 /* Based on algorithm from ARM Architecture Reference Manual */
@@ -131,7 +146,7 @@ Skip:
 	cmp	r3, r8
 	bne Loop1
 Finished:
-	isb
+	dsb
 	ldmia	sp!, {r4, r5, r6, r7, r8, r9}
 	RET
 
@@ -231,6 +246,8 @@ ENTRY(armv7_cpu_sleep)
 
 ENTRY(armv7_context_switch)
 	dsb
+	orr     r0, r0, #PT_ATTR
+			
 	mcr	p15, 0, r0, c2, c0, 0	/* set the new TTB */
 	mcr	p15, 0, r0, c8, c7, 0	/* and flush the I+D tlbs */
 	dsb
@@ -241,3 +258,18 @@ ENTRY(armv7_drain_writebuf)
 	dsb
 	RET
 
+ENTRY(armv7_sev)
+	dsb
+	sev
+	nop
+	RET
+
+ENTRY(armv7_auxctrl)
+	mrc p15, 0, r2, c1, c0, 1
+	bic r3, r2, r0	/* Clear bits */
+	eor r3, r3, r1  /* XOR bits */
+
+	teq r2, r3
+	mcrne p15, 0, r3, c1, c0, 1
+	mov r0, r2
+	RET

Modified: projects/armv6/sys/arm/include/cpufunc.h
==============================================================================
--- projects/armv6/sys/arm/include/cpufunc.h	Sat Mar  3 01:20:46 2012	(r232422)
+++ projects/armv6/sys/arm/include/cpufunc.h	Sat Mar  3 01:22:46 2012	(r232423)
@@ -188,38 +188,44 @@ extern u_int cputype;
 #else
 void tlb_broadcast(int);
 
+#ifdef CPU_CORTEXA
+#define TLB_BROADCAST	/* No need to explicitely send an IPI */
+#else
+#define TLB_BROADCAST	tlb_broadcast(7)
+#endif
+
 #define	cpu_tlb_flushID() do { \
 	cpufuncs.cf_tlb_flushID(); \
-	tlb_broadcast(7); \
+	TLB_BROADCAST; \
 } while(0)
 
 #define	cpu_tlb_flushID_SE(e) do { \
 	cpufuncs.cf_tlb_flushID_SE(e); \
-	tlb_broadcast(7); \
+	TLB_BROADCAST; \
 } while(0)
 
 
 #define	cpu_tlb_flushI() do { \
 	cpufuncs.cf_tlb_flushI(); \
-	tlb_broadcast(7); \
+	TLB_BROADCAST; \
 } while(0)
 
 
 #define	cpu_tlb_flushI_SE(e) do { \
 	cpufuncs.cf_tlb_flushI_SE(e); \
-	tlb_broadcast(7); \
+	TLB_BROADCAST; \
 } while(0)
 
 
 #define	cpu_tlb_flushD() do { \
 	cpufuncs.cf_tlb_flushD(); \
-	tlb_broadcast(7); \
+	TLB_BROADCAST; \
 } while(0)
 
 
 #define	cpu_tlb_flushD_SE(e) do { \
 	cpufuncs.cf_tlb_flushD_SE(e); \
-	tlb_broadcast(7); \
+	TLB_BROADCAST; \
 } while(0)
 
 #endif
@@ -506,6 +512,8 @@ void	armv7_cpu_sleep			(int);
 void	armv7_setup			(char *string);
 void	armv7_context_switch		(void);
 void	armv7_drain_writebuf		(void);
+void	armv7_sev			(void);
+u_int	armv7_auxctrl			(u_int, u_int);
 void	pj4bv7_setup			(char *string);
 void	pj4bv6_setup			(char *string);
 void	pj4b_config			(void);

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 01:24:20 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0EA48106566B;
	Sat,  3 Mar 2012 01:24:20 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E7A0A8FC19;
	Sat,  3 Mar 2012 01:24:19 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q231OJZ2056435;
	Sat, 3 Mar 2012 01:24:19 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q231OJXw056432;
	Sat, 3 Mar 2012 01:24:19 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203030124.q231OJXw056432@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 01:24:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232424 - in projects/armv6/sys/arm: include ti
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 01:24:20 -0000

Author: cognet
Date: Sat Mar  3 01:24:19 2012
New Revision: 232424
URL: http://svn.freebsd.org/changeset/base/232424

Log:
  Add SMP bits to gic.

Modified:
  projects/armv6/sys/arm/include/intr.h
  projects/armv6/sys/arm/ti/gic.c

Modified: projects/armv6/sys/arm/include/intr.h
==============================================================================
--- projects/armv6/sys/arm/include/intr.h	Sat Mar  3 01:22:46 2012	(r232423)
+++ projects/armv6/sys/arm/include/intr.h	Sat Mar  3 01:24:19 2012	(r232424)
@@ -65,4 +65,7 @@ void arm_setup_irqhandler(const char *, 
     void *, int, int, void **);    
 int arm_remove_irqhandler(int, void *);
 extern void (*arm_post_filter)(void *);
+
+void gic_init_secondary(void);
+
 #endif	/* _MACHINE_INTR_H */

Modified: projects/armv6/sys/arm/ti/gic.c
==============================================================================
--- projects/armv6/sys/arm/ti/gic.c	Sat Mar  3 01:22:46 2012	(r232423)
+++ projects/armv6/sys/arm/ti/gic.c	Sat Mar  3 01:24:19 2012	(r232424)
@@ -41,8 +41,14 @@ __FBSDID("$FreeBSD$");
 #include <sys/ktr.h>
 #include <sys/module.h>
 #include <sys/rman.h>
+#include <sys/pcpu.h>
+#include <sys/proc.h>
+#include <sys/cpuset.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
 #include <machine/bus.h>
 #include <machine/intr.h>
+#include <machine/smp.h>
 
 #include <dev/fdt/fdt_common.h>
 #include <dev/ofw/openfirm.h>
@@ -103,6 +109,8 @@ static struct arm_gic_softc *arm_gic_sc 
 #define	gic_d_write_4(reg, val)		\
     bus_space_write_4(arm_gic_sc->gic_d_bst, arm_gic_sc->gic_d_bsh, reg, val)
 
+static void gic_post_filter(void *);
+
 static int
 arm_gic_probe(device_t dev)
 {
@@ -112,6 +120,27 @@ arm_gic_probe(device_t dev)
 	return (BUS_PROBE_DEFAULT);
 }
 
+void
+gic_init_secondary(void)
+{
+	int nirqs;
+	
+  	/* Get the number of interrupts */
+	nirqs = gic_d_read_4(GICD_TYPER);
+	nirqs = 32 * ((nirqs & 0x1f) + 1);
+			
+	for (int i = 0; i < nirqs; i += 4)
+		gic_d_write_4(GICD_IPRIORITYR(i >> 2), 0);
+	/* Enable CPU interface */
+	gic_c_write_4(GICC_CTLR, 1);
+
+	/* Enable interrupt distribution */
+	gic_d_write_4(GICD_CTLR, 0x01);
+		
+	/* Activate IRQ 29, ie private timer IRQ*/
+	gic_d_write_4(GICD_ISENABLER(29 >> 5), (1UL << (29 & 0x1F)));
+}
+
 static int
 arm_gic_attach(device_t dev)
 {
@@ -128,6 +157,8 @@ arm_gic_attach(device_t dev)
 		return (ENXIO);
 	}
 
+	arm_post_filter = gic_post_filter;
+
 	/* Distributor Interface */
 	sc->gic_d_bst = rman_get_bustag(sc->gic_res[0]);
 	sc->gic_d_bsh = rman_get_bushandle(sc->gic_res[0]);
@@ -160,10 +191,9 @@ arm_gic_attach(device_t dev)
 		gic_d_write_4(GICD_ICENABLER(i >> 5), 0xFFFFFFFF);
 	}
 
-	/* Route all interrupts to CPU0 and set priority to 0 */
-	for (i = 32; i < nirqs; i += 4) {
-		gic_d_write_4(GICD_IPRIORITYR(i >> 2), 0x00000000);
-		gic_d_write_4(GICD_ITARGETSR(i >> 2), 0x01010101);
+	for (i = 0; i < nirqs; i += 4) {
+		gic_d_write_4(GICD_IPRIORITYR(i >> 2),  0);
+		gic_d_write_4(GICD_ITARGETSR(i >> 2), 0xffffffff);
 	}
 
 	/* Enable CPU interface */
@@ -172,7 +202,6 @@ arm_gic_attach(device_t dev)
 	/* Enable interrupt distribution */
 	gic_d_write_4(GICD_CTLR, 0x01);
 
-
 	return (0);
 }
 
@@ -192,17 +221,29 @@ static devclass_t arm_gic_devclass;
 
 DRIVER_MODULE(gic, simplebus, arm_gic_driver, arm_gic_devclass, 0, 0);
 
+static void
+gic_post_filter(void *arg)
+{
+	uintptr_t irq = (uintptr_t) arg;
+
+	gic_c_write_4(GICC_EOIR, irq);
+}
+
 int
 arm_get_next_irq(int last_irq)
 {
 	uint32_t active_irq;
 
-	/* clean-up the last IRQ */
-	if (last_irq != -1) {
-		gic_c_write_4(GICC_EOIR, last_irq);
-	}
-
 	active_irq = gic_c_read_4(GICC_IAR);
+
+	/* 
+	 * Immediatly EOIR the SGIs, because doing so requires the other
+	 * bits (ie CPU number), not just the IRQ number, and we do not
+	 * have this information later.
+	 */
+	   
+	if ((active_irq & 0x3ff) < 16)
+		gic_c_write_4(GICC_EOIR, active_irq);
 	active_irq &= 0x3FF;
 
 	if (active_irq == 0x3FF) {
@@ -210,6 +251,7 @@ arm_get_next_irq(int last_irq)
 			printf("Spurious interrupt detected [0x%08x]\n", active_irq);
 		return -1;
 	}
+	        gic_c_write_4(GICC_EOIR, active_irq);
 
 	return active_irq;
 }
@@ -223,5 +265,43 @@ arm_mask_irq(uintptr_t nb)
 void
 arm_unmask_irq(uintptr_t nb)
 {
+	
+	gic_c_write_4(GICC_EOIR, nb);
 	gic_d_write_4(GICD_ISENABLER(nb >> 5), (1UL << (nb & 0x1F)));
 }
+
+#ifdef SMP
+void
+pic_ipi_send(cpuset_t cpus, u_int ipi)
+{
+	uint32_t val = 0, i;
+
+	for (i = 0; i < MAXCPU; i++)
+		if (CPU_ISSET(i, &cpus))
+			val |= 1 << (16 + i);
+	gic_d_write_4(GICD_SGIR(0), val | ipi);
+	
+}
+
+int
+pic_ipi_get(int i)
+{
+	
+	if (i != -1) {
+		/*
+		 * The intr code will automagically give the frame pointer
+		 * if the interrupt argument is 0.
+		 */
+		if ((unsigned int)i > 16) 
+			return (0);
+		return (i);
+	}
+	return (0x3ff);
+}
+
+void
+pic_ipi_clear(int ipi)
+{
+}
+#endif
+

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 01:26:14 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BD4CE106566B;
	Sat,  3 Mar 2012 01:26:14 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ACFD08FC12;
	Sat,  3 Mar 2012 01:26:14 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q231QE4L056532;
	Sat, 3 Mar 2012 01:26:14 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q231QEms056530;
	Sat, 3 Mar 2012 01:26:14 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203030126.q231QEms056530@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 01:26:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232425 - projects/armv6/sys/arm/ti
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 01:26:14 -0000

Author: cognet
Date: Sat Mar  3 01:26:14 2012
New Revision: 232425
URL: http://svn.freebsd.org/changeset/base/232425

Log:
  For the global timer, use GBL_TIMER_CTRL, not PRV_TIMER_CTRL.
  It's harmless because both values are the same.

Modified:
  projects/armv6/sys/arm/ti/mp_timer.c

Modified: projects/armv6/sys/arm/ti/mp_timer.c
==============================================================================
--- projects/armv6/sys/arm/ti/mp_timer.c	Sat Mar  3 01:24:19 2012	(r232424)
+++ projects/armv6/sys/arm/ti/mp_timer.c	Sat Mar  3 01:26:14 2012	(r232425)
@@ -308,7 +308,7 @@ arm_tmr_attach(device_t dev)
 
 	/* Disable both timers to start off */
 	tmr_prv_write_4(PRV_TIMER_CTRL, 0x00000000);
-	tmr_gbl_write_4(PRV_TIMER_CTRL, 0x00000000);
+	tmr_gbl_write_4(GBL_TIMER_CTRL, 0x00000000);
 
 	/* Setup and enable the global timer to use as the timecounter */
 	tmr_gbl_write_4(GBL_TIMER_CTRL, (0x00 << GBL_TIMER_CTR_PRESCALER_SHIFT) | 

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 01:33:11 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7822E106564A;
	Sat,  3 Mar 2012 01:33:11 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 66FF48FC08;
	Sat,  3 Mar 2012 01:33:11 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q231XBEB056796;
	Sat, 3 Mar 2012 01:33:11 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q231XBqQ056792;
	Sat, 3 Mar 2012 01:33:11 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203030133.q231XBqQ056792@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 01:33:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232426 - in projects/armv6/sys/arm/ti: . omap4
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 01:33:11 -0000

Author: cognet
Date: Sat Mar  3 01:33:10 2012
New Revision: 232426
URL: http://svn.freebsd.org/changeset/base/232426

Log:
  Initial SMP bits for omap4

Added:
  projects/armv6/sys/arm/ti/omap4/omap4_mp.c   (contents, props changed)
Modified:
  projects/armv6/sys/arm/ti/omap4/files.omap4
  projects/armv6/sys/arm/ti/std.ti

Modified: projects/armv6/sys/arm/ti/omap4/files.omap4
==============================================================================
--- projects/armv6/sys/arm/ti/omap4/files.omap4	Sat Mar  3 01:26:14 2012	(r232425)
+++ projects/armv6/sys/arm/ti/omap4/files.omap4	Sat Mar  3 01:33:10 2012	(r232426)
@@ -12,6 +12,7 @@ arm/ti/ti_mmchs.c				optional	mmc
 arm/ti/omap4/omap4_l2cache.c			optional	pl310
 arm/ti/omap4/omap4_prcm_clks.c			standard
 arm/ti/omap4/omap4_scm_padconf.c		standard
+arm/ti/omap4/omap4_mp.c				optional	smp
 
 arm/ti/twl/twl.c				optional	twl
 arm/ti/twl/twl_vreg.c				optional	twl twl_vreg

Added: projects/armv6/sys/arm/ti/omap4/omap4_mp.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/armv6/sys/arm/ti/omap4/omap4_mp.c	Sat Mar  3 01:33:10 2012	(r232426)
@@ -0,0 +1,87 @@
+/*-
+ * Copyright (c) 2012 Olivier Houchard.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/smp.h>
+
+#include <machine/smp.h>
+#include <machine/fdt.h>
+#include <machine/intr.h>
+
+#include <arm/ti/ti_smc.h>
+#include <arm/ti/omap4/omap4_smc.h>
+
+void mpentry(void);
+void mptramp(void);
+
+void
+platform_mp_init_secondary(void)
+{
+	gic_init_secondary();
+}
+
+void
+platform_mp_setmaxid(void)
+{
+
+        mp_maxid = 1;
+}
+
+int
+platform_mp_probe(void)
+{
+
+	mp_ncpus = 2;
+	return (1);
+}
+
+void    
+platform_mp_start_ap(void)
+{
+	bus_addr_t scu_addr;
+
+	if (bus_space_map(fdtbus_bs_tag, 0x48240000, 0x1000, 0, &scu_addr) != 0)
+		panic("Couldn't map the SCU\n");
+	/* Enable the SCU */
+	*(volatile unsigned int *)scu_addr |= 1;
+	//*(volatile unsigned int *)(scu_addr + 0x30) |= 1;
+	cpu_idcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
+	ti_smc0(0x200, 0xfffffdff, MODIFY_AUX_CORE_0);
+	ti_smc0(pmap_kextract(mpentry), 0, WRITE_AUX_CORE_1);
+	armv7_sev();
+	bus_space_unmap(fdtbus_bs_tag, scu_addr, 0x1000);
+}
+
+void
+platform_ipi_send(cpuset_t cpus, u_int ipi)
+{
+	pic_ipi_send(cpus, ipi);
+}

Modified: projects/armv6/sys/arm/ti/std.ti
==============================================================================
--- projects/armv6/sys/arm/ti/std.ti	Sat Mar  3 01:26:14 2012	(r232425)
+++ projects/armv6/sys/arm/ti/std.ti	Sat Mar  3 01:33:10 2012	(r232426)
@@ -1,7 +1,7 @@
 # $FreeBSD$
 
 # This should be armv7-a but current gcc doesn't support it
-# makeoptions	CONF_CFLAGS=-march=armv6
+makeoptions	CONF_CFLAGS=-D_ARM_ARCH_6
 
 cpu 		CPU_CORTEXA
 

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 06:38:08 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 81FF4106564A;
	Sat,  3 Mar 2012 06:38:08 +0000 (UTC)
	(envelope-from gonzo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 720B78FC17;
	Sat,  3 Mar 2012 06:38:08 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q236c8Xu067604;
	Sat, 3 Mar 2012 06:38:08 GMT (envelope-from gonzo@svn.freebsd.org)
Received: (from gonzo@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q236c8gF067602;
	Sat, 3 Mar 2012 06:38:08 GMT (envelope-from gonzo@svn.freebsd.org)
Message-Id: <201203030638.q236c8gF067602@svn.freebsd.org>
From: Oleksandr Tymoshenko <gonzo@FreeBSD.org>
Date: Sat, 3 Mar 2012 06:38:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232441 - projects/armv6/sys/arm/arm
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 06:38:08 -0000

Author: gonzo
Date: Sat Mar  3 06:38:07 2012
New Revision: 232441
URL: http://svn.freebsd.org/changeset/base/232441

Log:
  Use proper TLS location if td == curthread

Modified:
  projects/armv6/sys/arm/arm/sys_machdep.c

Modified: projects/armv6/sys/arm/arm/sys_machdep.c
==============================================================================
--- projects/armv6/sys/arm/arm/sys_machdep.c	Sat Mar  3 06:23:26 2012	(r232440)
+++ projects/armv6/sys/arm/arm/sys_machdep.c	Sat Mar  3 06:38:07 2012	(r232441)
@@ -88,7 +88,11 @@ static int
 arm32_set_tp(struct thread *td, void *args)
 {
 
-	td->td_md.md_tp = (register_t)args;
+	if (td != curthread)
+		td->td_md.md_tp = (register_t)args;
+	else
+		/* XXX: wrong for SMP case */
+		*(register_t *)ARM_TP_ADDRESS = (register_t)args;
 	return (0);
 }
 
@@ -96,7 +100,11 @@ static int
 arm32_get_tp(struct thread *td, void *args)
 {
 
-	td->td_retval[0] = td->td_md.md_tp;
+	if (td != curthread)
+		td->td_retval[0] = td->td_md.md_tp;
+	else
+		/* XXX: wrong for SMP case */
+		td->td_retval[0] = *(register_t *)ARM_TP_ADDRESS;
 	return (0);
 }
 

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 06:38:44 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 63BFC106564A;
	Sat,  3 Mar 2012 06:38:44 +0000 (UTC)
	(envelope-from gonzo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 53A288FC17;
	Sat,  3 Mar 2012 06:38:44 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q236cit7067654;
	Sat, 3 Mar 2012 06:38:44 GMT (envelope-from gonzo@svn.freebsd.org)
Received: (from gonzo@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q236cidI067652;
	Sat, 3 Mar 2012 06:38:44 GMT (envelope-from gonzo@svn.freebsd.org)
Message-Id: <201203030638.q236cidI067652@svn.freebsd.org>
From: Oleksandr Tymoshenko <gonzo@FreeBSD.org>
Date: Sat, 3 Mar 2012 06:38:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232442 - projects/armv6/lib/libthr/arch/arm/include
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 06:38:44 -0000

Author: gonzo
Date: Sat Mar  3 06:38:43 2012
New Revision: 232442
URL: http://svn.freebsd.org/changeset/base/232442

Log:
  sysarch return TLS pointer as return value, not through copyout

Modified:
  projects/armv6/lib/libthr/arch/arm/include/pthread_md.h

Modified: projects/armv6/lib/libthr/arch/arm/include/pthread_md.h
==============================================================================
--- projects/armv6/lib/libthr/arch/arm/include/pthread_md.h	Sat Mar  3 06:38:07 2012	(r232441)
+++ projects/armv6/lib/libthr/arch/arm/include/pthread_md.h	Sat Mar  3 06:38:43 2012	(r232442)
@@ -67,7 +67,7 @@ static __inline struct tcb *
 _tcb_get(void)
 {
 	struct tcb *tcb;
-	sysarch(ARM_GET_TP, &tcb);
+	tcb = (void*)sysarch(ARM_GET_TP, NULL);
 
 	return (tcb);
 }

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 12:23:07 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 975D1106566B;
	Sat,  3 Mar 2012 12:23:07 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 86A418FC08;
	Sat,  3 Mar 2012 12:23:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q23CN7x6081575;
	Sat, 3 Mar 2012 12:23:07 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q23CN73s081573;
	Sat, 3 Mar 2012 12:23:07 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203031223.q23CN73s081573@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 12:23:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232456 - projects/armv6/sys/arm/include
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 12:23:07 -0000

Author: cognet
Date: Sat Mar  3 12:23:07 2012
New Revision: 232456
URL: http://svn.freebsd.org/changeset/base/232456

Log:
  Get the right casts for long operations

Modified:
  projects/armv6/sys/arm/include/atomic.h

Modified: projects/armv6/sys/arm/include/atomic.h
==============================================================================
--- projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 11:53:35 2012	(r232455)
+++ projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 12:23:07 2012	(r232456)
@@ -505,35 +505,47 @@ atomic_store_32(volatile uint32_t *dst, 
 	*dst = src;
 }
 
-#define	atomic_add_long(p, v) \
+#define	atomic_set_long(p, v)						\
+	atomic_set_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_set_acq_long(p, v)					\
+	atomic_set_acq_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_set_rel_long(p, v)					\
+	atomic_set_rel_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_clear_long(p, v)						\
+	atomic_clear_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_clear_acq_long(p, v)					\
+	atomic_clear_acq_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_clear_rel_long(p, v)					\
+	atomic_clear_rel_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_add_long(p, v)						\
+	atomic_add_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_add_acq_long(p, v)					\
+	atomic_add_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_add_rel_long(p, v)					\
 	atomic_add_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_add_acq_long		atomic_add_acq_32
-#define atomic_add_rel_long		atomic_add_rel_32
-#define	atomic_subtract_long(p, v) \
+#define	atomic_subtract_long(p, v)					\
 	atomic_subtract_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_subtract_acq_long	atomic_subtract_acq_32
-#define atomic_subtract_rel_long	atomic_subtract_rel_32
-#define	atomic_clear_long(p, v) \
-	atomic_clear_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_clear_acq_long		atomic_clear_acq_32
-#define atomic_clear_rel_long		atomic_clear_rel_32
-#define	atomic_set_long(p, v) \
-	atomic_set_32((volatile u_int *)(p), (u_int)(v))
-#define atomic_set_acq_long		atomic_set_acq_32
-#define atomic_set_rel_long		atomic_set_rel_32
-#define	atomic_cmpset_long(dst, old, new) \
-	atomic_cmpset_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
-#define atomic_cmpset_acq_long		atomic_cmpset_acq_32
-#define atomic_cmpset_rel_long		atomic_cmpset_rel_32
-#define	atomic_fetchadd_long(p, v) \
-	atomic_fetchadd_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_readandclear_long(p) \
-	atomic_readandclear_long((volatile u_int *)(p))
-#define	atomic_load_long(p) \
-	atomic_load_32((volatile u_int *)(p))
-#define atomic_load_acq_long		atomic_load_acq_32
-#define	atomic_store_rel_long(p, v) \
+#define	atomic_subtract_acq_long(p, v)					\
+	atomic_subtract_acq_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_subtract_rel_long(p, v)					\
+	atomic_subtract_rel_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_cmpset_long(p, cmpval, newval)				\
+	atomic_cmpset_32((volatile u_int *)(p), (u_int)(cmpval),	\
+	    (u_int)(newval))
+#define	atomic_cmpset_acq_long(p, cmpval, newval)			\
+	atomic_cmpset_acq_32((volatile u_int *)(p), (u_int)(cmpval),	\
+	    (u_int)(newval))
+#define	atomic_cmpset_rel_long(p, cmpval, newval)			\
+	atomic_cmpset_rel_32((volatile u_int *)(p), (u_int)(cmpval),	\
+	    (u_int)(newval))
+#define	atomic_load_acq_long(p)						\
+	(u_long)atomic_load_acq_32((volatile u_int *)(p))
+#define	atomic_store_rel_long(p, v)					\
 	atomic_store_rel_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_fetchadd_long(p, v)					\
+	atomic_fetchadd_32((volatile u_int *)(p), (u_int)(v))
+#define	atomic_readandclear_long(p)					\
+	atomic_readandclear_32((volatile u_int *)(p))
 
 
 #define atomic_clear_ptr		atomic_clear_32

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 12:27:53 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id CC9C1106566B;
	Sat,  3 Mar 2012 12:27:53 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BC6AA8FC08;
	Sat,  3 Mar 2012 12:27:53 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q23CRrbb081755;
	Sat, 3 Mar 2012 12:27:53 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q23CRrde081753;
	Sat, 3 Mar 2012 12:27:53 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203031227.q23CRrde081753@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 12:27:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232457 - projects/armv6/sys/arm/arm
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 12:27:53 -0000

Author: cognet
Date: Sat Mar  3 12:27:53 2012
New Revision: 232457
URL: http://svn.freebsd.org/changeset/base/232457

Log:
  Try to set the SMP and the TLB broadcasting bits in the aux register
  (largely a nop on the omap4 because both bits are already set, and we
   can't change it anyway because we're not running in secure mode)

Modified:
  projects/armv6/sys/arm/arm/cpufunc.c

Modified: projects/armv6/sys/arm/arm/cpufunc.c
==============================================================================
--- projects/armv6/sys/arm/arm/cpufunc.c	Sat Mar  3 12:23:07 2012	(r232456)
+++ projects/armv6/sys/arm/arm/cpufunc.c	Sat Mar  3 12:27:53 2012	(r232457)
@@ -2322,7 +2322,6 @@ cortexa_setup(char *args)
 	cpuctrl = CPU_CONTROL_MMU_ENABLE |
 	    CPU_CONTROL_IC_ENABLE |
 	    CPU_CONTROL_DC_ENABLE |
-	    CPU_CONTROL_V6_EXTPAGE |
 	    CPU_CONTROL_BPRD_ENABLE;
 	
 #ifndef ARM32_DISABLE_ALIGNMENT_FAULTS
@@ -2347,6 +2346,9 @@ cortexa_setup(char *args)
 	
 	/* And again. */
 	cpu_idcache_wbinv_all();
+#ifdef SMP
+	armv7_auxctrl((1 << 6) | (1 << 0), (1 << 6) | (1 << 0)); /* Enable SMP + TLB broadcasting  */
+#endif
 }
 #endif  /* CPU_CORTEXA */
 

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 12:41:20 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 452D5106566C;
	Sat,  3 Mar 2012 12:41:20 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 34F578FC15;
	Sat,  3 Mar 2012 12:41:20 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q23CfJxe082215;
	Sat, 3 Mar 2012 12:41:19 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q23CfJYX082213;
	Sat, 3 Mar 2012 12:41:19 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203031241.q23CfJYX082213@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 12:41:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232458 - projects/armv6/sys/arm/arm
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 12:41:20 -0000

Author: cognet
Date: Sat Mar  3 12:41:19 2012
New Revision: 232458
URL: http://svn.freebsd.org/changeset/base/232458

Log:
  Use set_tls()/get_tls() for >= armv6

Modified:
  projects/armv6/sys/arm/arm/sys_machdep.c

Modified: projects/armv6/sys/arm/arm/sys_machdep.c
==============================================================================
--- projects/armv6/sys/arm/arm/sys_machdep.c	Sat Mar  3 12:27:53 2012	(r232457)
+++ projects/armv6/sys/arm/arm/sys_machdep.c	Sat Mar  3 12:41:19 2012	(r232458)
@@ -90,9 +90,12 @@ arm32_set_tp(struct thread *td, void *ar
 
 	if (td != curthread)
 		td->td_md.md_tp = (register_t)args;
-	else
-		/* XXX: wrong for SMP case */
+	else 
+#ifdef _ARM_ARCH_6
+		set_tls(args);
+#else
 		*(register_t *)ARM_TP_ADDRESS = (register_t)args;
+#endif
 	return (0);
 }
 
@@ -103,8 +106,11 @@ arm32_get_tp(struct thread *td, void *ar
 	if (td != curthread)
 		td->td_retval[0] = td->td_md.md_tp;
 	else
-		/* XXX: wrong for SMP case */
+#ifdef _ARM_ARCH_6
+		td->td_retval[0] = (register_t)get_tls();
+#else
 		td->td_retval[0] = *(register_t *)ARM_TP_ADDRESS;
+#endif
 	return (0);
 }
 

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 14:02:34 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 812BE1065670;
	Sat,  3 Mar 2012 14:02:34 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6CB708FC0A;
	Sat,  3 Mar 2012 14:02:34 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q23E2Yfr085084;
	Sat, 3 Mar 2012 14:02:34 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q23E2YYo085082;
	Sat, 3 Mar 2012 14:02:34 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203031402.q23E2YYo085082@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 14:02:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232462 - projects/armv6/sys/arm/include
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 14:02:34 -0000

Author: cognet
Date: Sat Mar  3 14:02:34 2012
New Revision: 232462
URL: http://svn.freebsd.org/changeset/base/232462

Log:
  Grrr, we can't use dmb for armv6.
  Of course, our toolchain is too ancient to support armv7, so we have to use
  this for armv7 userland, as well.

Modified:
  projects/armv6/sys/arm/include/atomic.h

Modified: projects/armv6/sys/arm/include/atomic.h
==============================================================================
--- projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 13:51:51 2012	(r232461)
+++ projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 14:02:34 2012	(r232462)
@@ -67,7 +67,11 @@ static __inline void
 __do_dmb(void)
 {
 
+#if ARM_ARCH_7A
 	__asm __volatile("dmb" : : : "memory");
+#else
+	__asm __volatile("mcr p15, 0, r0, c7, c10, 5" : : : "memory");
+#endif
 }
 
 #define	ATOMIC_ACQ_REL(NAME, WIDTH)					\

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 15:14:56 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6CDF3106566B;
	Sat,  3 Mar 2012 15:14:56 +0000 (UTC)
	(envelope-from brde@optusnet.com.au)
Received: from mail04.syd.optusnet.com.au (mail04.syd.optusnet.com.au
	[211.29.132.185])
	by mx1.freebsd.org (Postfix) with ESMTP id 054658FC0A;
	Sat,  3 Mar 2012 15:14:55 +0000 (UTC)
Received: from c211-30-171-136.carlnfd1.nsw.optusnet.com.au
	(c211-30-171-136.carlnfd1.nsw.optusnet.com.au [211.30.171.136])
	by mail04.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id
	q23FEkPj017392
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Sun, 4 Mar 2012 02:14:48 +1100
Date: Sun, 4 Mar 2012 02:14:46 +1100 (EST)
From: Bruce Evans <brde@optusnet.com.au>
X-X-Sender: bde@besplex.bde.org
To: Olivier Houchard <cognet@freebsd.org>
In-Reply-To: <201203031223.q23CN73s081573@svn.freebsd.org>
Message-ID: <20120304011922.G5792@besplex.bde.org>
References: <201203031223.q23CN73s081573@svn.freebsd.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r232456 - projects/armv6/sys/arm/include
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 15:14:56 -0000

On Sat, 3 Mar 2012, Olivier Houchard wrote:

> Log:
>  Get the right casts for long operations

I think you mean "the wrong casts".  i386 was broken similarly, but amd64
is still correct -- amd64 has no casts at all in its big list of #defines
(but the list is excessively complete, with must cases unused).

> Modified: projects/armv6/sys/arm/include/atomic.h
> ==============================================================================
> --- projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 11:53:35 2012	(r232455)
> +++ projects/armv6/sys/arm/include/atomic.h	Sat Mar  3 12:23:07 2012	(r232456)
> @@ -505,35 +505,47 @@ atomic_store_32(volatile uint32_t *dst,
> 	*dst = src;
> }
>
> -#define	atomic_add_long(p, v) \
> +#define	atomic_set_long(p, v)						\
> +	atomic_set_32((volatile u_int *)(p), (u_int)(v))
> +#define	atomic_set_acq_long(p, v)					\
> +	atomic_set_acq_32((volatile u_int *)(p), (u_int)(v))

Casts like this mostly just defeat type checking.  On amd64,
atomic_set_32 is just atomic_set_int (without even parameters).

There is a minor problem with signedness.  With proper type checking,
the above will create about as many problems as it hides, by turning
a pointer to a signed long or int into a pointer to a u_int.  This
problem already occurs at the inline function level.

There is a problem with int having the same size as long.  It is a bug
for atomic ops on longs to even exist on arches where int has the same
size as long, since atomic ops on longs are useless in MD code on
such arches and unusable in MI code on any arches (since longs should
be 2 words and thus not naturally atomic).  Given this bug, the correct
way to support it is to have separate functions for ints and longs at
the lowest level, the same as when longs are longer than ints except
the contents of the separate functions is essentially indentical when
the type sizes are the same.  Then there is no need to break type checking
by pretending that ints are longs or vice versa.

> #define atomic_clear_ptr		atomic_clear_32

There is a better case for type puns of pointer types.  It's interesting
that you didn't changes anything with _ptr.  i386 uses bogus casts for
pointers too.  E.g.:

% #define	atomic_set_ptr(p, v) \
% 	atomic_set_int((volatile u_int *)(p), (u_int)(v))

It is probably a bug for any atomic ops on pointers to exist.  In
fact, none do, but the ops are spelled with "ptr".  From atomic(9):

%    Types
%      Each atomic operation operates on a specific type.  The type to use is
%      indicated in the function name.  The available types that can be used
%      are:
% 
%            int    unsigned integer
%            long   unsigned long integer
%            ptr    unsigned integer the size of a pointer
%            32     unsigned 32-bit integer
%            64     unsigned 64-bit integer

Note that `ptr' is not a pointer type, but is uintptr_t described verbosely.

The bogus cast in the i386 version rewards broken code that starts with
a pointer type.  Fortunately, there shouldn't be much such code, since
amd64 is still pure and will detect the type mismatch.

% 
%      For example, the function to atomically add two integers is called
%      atomic_add_int().
% 
%      Certain architectures also provide operations for types smaller than
%      ``int''.
% 
%            char   unsigned character
%            short  unsigned short integer
%            8      unsigned 8-bit integer
%            16     unsigned 16-bit integer
% 
%      These must not be used in MI code because the instructions to implement
%      them efficiently may not be available.

It should say this for `long' and `64' too.  long would be non-atomic on
any arch with correctly-sized longs, and `64' already isn't natural
atomic on 32-bit arches.  On i386, `64' is only available for a limited
set of atomic ops (only load/store I think).  This restriction of course
isn't documented above.

% ...
%      The type ``64'' is currently not implemented for any of the atomic opera-
%      tions on the arm, i386, and powerpc architectures.

The above restiction is partly documented below (that is here).  This is wrong
too.  `64' is now implemented for _some_ atomic ops on i386.

% EXAMPLES
%      This example uses the atomic_cmpset_acq_ptr() and atomic_set_ptr() func-
%      tions to obtain a sleep mutex and handle recursion.  Since the mtx_lock
%      member of a struct mtx is a pointer, the ``ptr'' type is used.

This bad example just echoes an old version of the mutex code.  It is so
old that it is wrong.  The mtx_lock member is _not_ a pointer -- it
complies with the earlier documentation and is a uintptr_t.

Bruce

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 16:57:57 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 9389F1065676;
	Sat,  3 Mar 2012 16:57:57 +0000 (UTC)
	(envelope-from doginou@kanar.ci0.org)
Received: from kanar.ci0.org (unknown [IPv6:2a01:e0b:1:50:40:63ff:feea:93a])
	by mx1.freebsd.org (Postfix) with ESMTP id C17C68FC08;
	Sat,  3 Mar 2012 16:57:56 +0000 (UTC)
Received: from kanar.ci0.org (pluxor@localhost [127.0.0.1])
	by kanar.ci0.org (8.14.2/8.14.3) with ESMTP id q23GvcfX028824;
	Sat, 3 Mar 2012 17:57:38 +0100 (CET)
	(envelope-from doginou@kanar.ci0.org)
Received: (from doginou@localhost)
	by kanar.ci0.org (8.14.2/8.14.3/Submit) id q23GvbsC028823;
	Sat, 3 Mar 2012 17:57:37 +0100 (CET) (envelope-from doginou)
Date: Sat, 3 Mar 2012 17:57:37 +0100
From: Olivier Houchard <cognet@ci0.org>
To: Bruce Evans <brde@optusnet.com.au>
Message-ID: <20120303165737.GA26775@ci0.org>
References: <201203031223.q23CN73s081573@svn.freebsd.org>
	<20120304011922.G5792@besplex.bde.org>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="tThc/1wpZn/ma/RB"
Content-Disposition: inline
In-Reply-To: <20120304011922.G5792@besplex.bde.org>
User-Agent: Mutt/1.4.2.1i
Cc: svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org
Subject: Re: svn commit: r232456 - projects/armv6/sys/arm/include
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 16:57:57 -0000


--tThc/1wpZn/ma/RB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun, Mar 04, 2012 at 02:14:46AM +1100, Bruce Evans wrote:
> On Sat, 3 Mar 2012, Olivier Houchard wrote:
> 
> >Log:
> > Get the right casts for long operations
> 
> I think you mean "the wrong casts".  i386 was broken similarly, but amd64
> is still correct -- amd64 has no casts at all in its big list of #defines
> (but the list is excessively complete, with must cases unused).
> 

Hi Bruce,

I understand your concerns. These casts are indeed bogus, and will become even
more when we'll support 64bits arm, which should come with 64bits long.
I can't do much for long which should be 64bits even on 32bits machines, that
is set in stone now, however I can certainly remove the bogus casts.

Would the attached patch be OK for you ?
It duplicates the various atomic functions to add a _long variant (for armv6
at least, for armv5 it just introduces _long variants which calls the _32
version, but at least it should catch any signedness/type error), and it
removes the bogus casts for the ptr version, and just #defines it to the __32
version, since that's what uintptr_t is.

Regards,

Olivier

--tThc/1wpZn/ma/RB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="atomic.h.diff"

Index: atomic.h
===================================================================
--- atomic.h	(revision 232462)
+++ atomic.h	(working copy)
@@ -74,6 +74,21 @@
 #endif
 }
 
+#define ATOMIC_ACQ_REL_LONG(NAME)					\
+static __inline void							\
+atomic_##NAME##_acq_long(__volatile u_long *p, u_long v)		\
+{									\
+	atomic_##NAME##_long(p, v);					\
+	__do_dmb();							\
+}									\
+									\
+static __inline  void							\
+atomic_##NAME##_rel_long(__volatile u_long *p, u_long v)		\
+{									\
+	__do_dmb();							\
+	atomic_##NAME##_long(p, v);					\
+}
+
 #define	ATOMIC_ACQ_REL(NAME, WIDTH)					\
 static __inline  void							\
 atomic_##NAME##_acq_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\
@@ -105,6 +120,21 @@
 }
 
 static __inline void
+atomic_set_long(volatile u_long *address, u_long setmask)
+{
+	u_long tmp = 0, tmp2 = 0;
+
+	__asm __volatile("1: ldrex %0, [%2]\n"
+	    		    "orr %0, %0, %3\n"
+			    "strex %1, %0, [%2]\n"
+			    "cmp %1, #0\n"
+			    "bne	1b\n"
+			   : "=&r" (tmp), "+r" (tmp2)
+			   , "+r" (address), "+r" (setmask) : : "memory");
+			     
+}
+
+static __inline void
 atomic_clear_32(volatile uint32_t *address, uint32_t setmask)
 {
 	uint32_t tmp = 0, tmp2 = 0;
@@ -118,6 +148,20 @@
 			   ,"+r" (address), "+r" (setmask) : : "memory");
 }
 
+static __inline void
+atomic_clear_long(volatile u_long *address, u_long setmask)
+{
+	u_long tmp = 0, tmp2 = 0;
+
+	__asm __volatile("1: ldrex %0, [%2]\n"
+	    		    "bic %0, %0, %3\n"
+			    "strex %1, %0, [%2]\n"
+			    "cmp %1, #0\n"
+			    "bne	1b\n"
+			   : "=&r" (tmp), "+r" (tmp2)
+			   ,"+r" (address), "+r" (setmask) : : "memory");
+}
+
 static __inline u_int32_t
 atomic_cmpset_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval)
 {
@@ -137,15 +181,43 @@
 	return (ret);
 }
 
+static __inline u_long
+atomic_cmpset_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval)
+{
+	u_long ret;
+	
+	__asm __volatile("1: ldrex %0, [%1]\n"
+	                 "cmp %0, %2\n"
+			 "movne %0, #0\n"
+			 "bne 2f\n"
+			 "strex %0, %3, [%1]\n"
+			 "cmp %0, #0\n"
+			 "bne	1b\n"
+			 "moveq %0, #1\n"
+			 "2:"
+			 : "=&r" (ret)
+			 ,"+r" (p), "+r" (cmpval), "+r" (newval) : : "memory");
+	return (ret);
+}
+
 static __inline u_int32_t
 atomic_cmpset_acq_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval)
 {
-	int ret = atomic_cmpset_32(p, cmpval, newval);
+	u_int32_t ret = atomic_cmpset_32(p, cmpval, newval);
 
 	__do_dmb();
 	return (ret);
 }
 
+static __inline u_long
+atomic_cmpset_acq_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval)
+{
+	u_long ret = atomic_cmpset_long(p, cmpval, newval);
+
+	__do_dmb();
+	return (ret);
+}
+
 static __inline u_int32_t
 atomic_cmpset_rel_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval)
 {
@@ -154,6 +226,15 @@
 	return (atomic_cmpset_32(p, cmpval, newval));
 }
 
+static __inline u_long
+atomic_cmpset_rel_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval)
+{
+	
+	__do_dmb();
+	return (atomic_cmpset_long(p, cmpval, newval));
+}
+
+
 static __inline void
 atomic_add_32(volatile u_int32_t *p, u_int32_t val)
 {
@@ -169,6 +250,20 @@
 }
 
 static __inline void
+atomic_add_long(volatile u_long *p, u_long val)
+{
+	u_long tmp = 0, tmp2 = 0;
+
+	__asm __volatile("1: ldrex %0, [%2]\n"
+	    		    "add %0, %0, %3\n"
+			    "strex %1, %0, [%2]\n"
+			    "cmp %1, #0\n"
+			    "bne	1b\n"
+			    : "=&r" (tmp), "+r" (tmp2)
+			    ,"+r" (p), "+r" (val) : : "memory");
+}
+
+static __inline void
 atomic_subtract_32(volatile u_int32_t *p, u_int32_t val)
 {
 	uint32_t tmp = 0, tmp2 = 0;
@@ -182,13 +277,31 @@
 			    ,"+r" (p), "+r" (val) : : "memory");
 }
 
+static __inline void
+atomic_subtract_long(volatile u_long *p, u_long val)
+{
+	u_long tmp = 0, tmp2 = 0;
 
+	__asm __volatile("1: ldrex %0, [%2]\n"
+	    		    "sub %0, %0, %3\n"
+			    "strex %1, %0, [%2]\n"
+			    "cmp %1, #0\n"
+			    "bne	1b\n"
+			    : "=&r" (tmp), "+r" (tmp2)
+			    ,"+r" (p), "+r" (val) : : "memory");
+}
+
 ATOMIC_ACQ_REL(clear, 32)
 ATOMIC_ACQ_REL(add, 32)
 ATOMIC_ACQ_REL(subtract, 32)
 ATOMIC_ACQ_REL(set, 32)
+ATOMIC_ACQ_REL_LONG(clear)
+ATOMIC_ACQ_REL_LONG(add)
+ATOMIC_ACQ_REL_LONG(subtract)
+ATOMIC_ACQ_REL_LONG(set)
 
 #undef ATOMIC_ACQ_REL
+#undef ATOMIC_ACQ_REL_LONG
 
 static __inline uint32_t
 atomic_fetchadd_32(volatile uint32_t *p, uint32_t val)
@@ -238,6 +351,53 @@
 	*p = v;
 }
 
+static __inline u_long
+atomic_fetchadd_long(volatile u_long *p, u_long val)
+{
+	u_long tmp = 0, tmp2 = 0, ret = 0;
+
+	__asm __volatile("1: ldrex %0, [%3]\n"
+	    		    "add %1, %0, %4\n"
+			    "strex %2, %1, [%3]\n"
+			    "cmp %2, #0\n"
+			    "bne	1b\n"
+			   : "+r" (ret), "=&r" (tmp), "+r" (tmp2)
+			   ,"+r" (p), "+r" (val) : : "memory");
+	return (ret);
+}
+
+static __inline u_long
+atomic_readandclear_long(volatile u_long *p)
+{
+	u_long ret, tmp = 0, tmp2 = 0;
+
+	__asm __volatile("1: ldrex %0, [%3]\n"
+	    		 "mov %1, #0\n"
+			 "strex %2, %1, [%3]\n"
+			 "cmp %2, #0\n"
+			 "bne 1b\n"
+			 : "=r" (ret), "=&r" (tmp), "+r" (tmp2)
+			 ,"+r" (p) : : "memory");
+	return (ret);
+}
+
+static __inline u_long
+atomic_load_acq_long(volatile u_long *p)
+{
+	u_long v;
+
+	v = *p;
+	__do_dmb();
+	return (v);
+}
+
+static __inline void
+atomic_store_rel_long(volatile u_long *p, u_long v)
+{
+	
+	__do_dmb();
+	*p = v;
+}
 #else /* < armv6 */
 
 #define __with_interrupts_disabled(expr) \
@@ -489,9 +649,64 @@
 #define atomic_subtract_rel_32	atomic_subtract_32
 #define atomic_subtract_acq_32	atomic_subtract_32
 #define atomic_store_rel_32	atomic_store_32
+#define atomic_store_rel_long	atomic_store_long
 #define atomic_load_acq_32	atomic_load_32
+#define atomic_load_acq_long	atomic_load_long
 #undef __with_interrupts_disabled
 
+static __inline void
+atomic_add_long(volatile u_long *p, u_long v)
+{
+
+	atomic_add_32((volatile uint32_t *)p, (volatile uint32_t)v);
+}
+
+static __inline void
+atomic_clear_long(volatile u_long *p, u_long v)
+{
+
+	atomic_clear_32((volatile uint32_t *)p, (volatile uint32_t)v);
+}
+
+static __inline int
+atomic_cmpset_long(volatile u_long *dst, u_long old, u_long newe)
+{
+
+	return (atomic_cmpset_32((volatile uint32_t *)dst, 
+	    (volatile uint32_t)old, (volatile uint32_t)newe));
+}
+
+static __inline u_long
+atomic_fetchadd_long(volatile u_long *p, u_long v)
+{
+
+	return (atomic_fetchadd_32((volatile uint32_t *)p,
+	    (volatile uint32_t)v));
+}
+
+static __inline void
+atomic_readandclear_long(volatile u_long *p)
+{
+
+	atomic_readandclear_32((volatile uint32_t *)p);
+}
+
+static __inline void
+atomic_set_long(volatile u_long *p, u_long v)
+{
+
+	atomic_set_32((volatile uint32_t *)p, (volatile uint32_t)v);
+}
+
+static __inline void
+atomic_subtract_long(volatile u_long *p, u_long v)
+{
+
+	atomic_subtract_32((volatile uint32_t *)p, (volatile uint32_t)v);
+}
+
+
+
 #endif /* _LOCORE */
 
 #endif /* Arch >= v6 */
@@ -509,57 +724,24 @@
 	*dst = src;
 }
 
-#define	atomic_set_long(p, v)						\
-	atomic_set_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_set_acq_long(p, v)					\
-	atomic_set_acq_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_set_rel_long(p, v)					\
-	atomic_set_rel_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_clear_long(p, v)						\
-	atomic_clear_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_clear_acq_long(p, v)					\
-	atomic_clear_acq_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_clear_rel_long(p, v)					\
-	atomic_clear_rel_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_add_long(p, v)						\
-	atomic_add_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_add_acq_long(p, v)					\
-	atomic_add_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_add_rel_long(p, v)					\
-	atomic_add_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_subtract_long(p, v)					\
-	atomic_subtract_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_subtract_acq_long(p, v)					\
-	atomic_subtract_acq_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_subtract_rel_long(p, v)					\
-	atomic_subtract_rel_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_cmpset_long(p, cmpval, newval)				\
-	atomic_cmpset_32((volatile u_int *)(p), (u_int)(cmpval),	\
-	    (u_int)(newval))
-#define	atomic_cmpset_acq_long(p, cmpval, newval)			\
-	atomic_cmpset_acq_32((volatile u_int *)(p), (u_int)(cmpval),	\
-	    (u_int)(newval))
-#define	atomic_cmpset_rel_long(p, cmpval, newval)			\
-	atomic_cmpset_rel_32((volatile u_int *)(p), (u_int)(cmpval),	\
-	    (u_int)(newval))
-#define	atomic_load_acq_long(p)						\
-	(u_long)atomic_load_acq_32((volatile u_int *)(p))
-#define	atomic_store_rel_long(p, v)					\
-	atomic_store_rel_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_fetchadd_long(p, v)					\
-	atomic_fetchadd_32((volatile u_int *)(p), (u_int)(v))
-#define	atomic_readandclear_long(p)					\
-	atomic_readandclear_32((volatile u_int *)(p))
+static __inline int
+atomic_load_long(volatile u_long *v)
+{
 
+	return (*v);
+}
 
+static __inline void
+atomic_store_long(volatile u_long *dst, u_long src)
+{
+	*dst = src;
+}
+
 #define atomic_clear_ptr		atomic_clear_32
 #define atomic_set_ptr			atomic_set_32
-#define	atomic_cmpset_ptr(dst, old, new)	\
-    atomic_cmpset_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
-#define atomic_cmpset_rel_ptr(dst, old, new)	\
-    atomic_cmpset_rel_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
-#define atomic_cmpset_acq_ptr(dst, old, new)	\
-    atomic_cmpset_acq_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new))
+#define atomic_cmpset_ptr		atomic_cmpset_32
+#define atomic_cmpset_rel_ptr		atomic_cmpset_rel_32
+#define atomic_cmpset_acq_ptr		atomic_cmpset_acq_32
 #define atomic_store_ptr		atomic_store_32
 #define atomic_store_rel_ptr		atomic_store_ptr
 

--tThc/1wpZn/ma/RB--

From owner-svn-src-projects@FreeBSD.ORG  Sat Mar  3 17:03:26 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id C73A9106566B;
	Sat,  3 Mar 2012 17:03:26 +0000 (UTC)
	(envelope-from cognet@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A8E378FC12;
	Sat,  3 Mar 2012 17:03:26 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q23H3Qe8091752;
	Sat, 3 Mar 2012 17:03:26 GMT (envelope-from cognet@svn.freebsd.org)
Received: (from cognet@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q23H3QFu091743;
	Sat, 3 Mar 2012 17:03:26 GMT (envelope-from cognet@svn.freebsd.org)
Message-Id: <201203031703.q23H3QFu091743@svn.freebsd.org>
From: Olivier Houchard <cognet@FreeBSD.org>
Date: Sat, 3 Mar 2012 17:03:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r232468 - in projects/armv6/sys: arm/at91 arm/econa
	arm/s3c2xx0 arm/sa11x0 arm/xscale conf
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 03 Mar 2012 17:03:26 -0000

Author: cognet
Date: Sat Mar  3 17:03:26 2012
New Revision: 232468
URL: http://svn.freebsd.org/changeset/base/232468

Log:
  Add the IPI_IRQ_START and IPI_IRQ_END that I forgot to add yesterday.
  Introduce a new option, NO_EVENTTIMERS, and use it for the platforms which
  haven't been converted to use event timers yet. If set, the cpu_idle.c code
  will make no attempt to call cpu_idleclock()/cpu_activeclock()

Modified:
  projects/armv6/sys/arm/at91/std.at91
  projects/armv6/sys/arm/econa/std.econa
  projects/armv6/sys/arm/s3c2xx0/std.ln2410sbc
  projects/armv6/sys/arm/s3c2xx0/std.s3c2410
  projects/armv6/sys/arm/sa11x0/std.sa11x0
  projects/armv6/sys/arm/xscale/std.xscale
  projects/armv6/sys/conf/files.arm
  projects/armv6/sys/conf/options.arm

Modified: projects/armv6/sys/arm/at91/std.at91
==============================================================================
--- projects/armv6/sys/arm/at91/std.at91	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/arm/at91/std.at91	Sat Mar  3 17:03:26 2012	(r232468)
@@ -4,3 +4,4 @@ files	"../at91/files.at91"
 cpu		CPU_ARM9
 makeoptions	CONF_CFLAGS=-mcpu=arm9
 options 	PHYSADDR=0x20000000
+options		NO_EVENTTIMERS

Modified: projects/armv6/sys/arm/econa/std.econa
==============================================================================
--- projects/armv6/sys/arm/econa/std.econa	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/arm/econa/std.econa	Sat Mar  3 17:03:26 2012	(r232468)
@@ -12,3 +12,5 @@ options	KERNVIRTADDR=0xc1000000	# Used i
 options	FLASHADDR=0xD0000000
 options	LOADERRAMADDR=0x00000000
 options	STARTUP_PAGETABLE_ADDR=0x00100000
+
+options	NO_EVENTTIMERS

Modified: projects/armv6/sys/arm/s3c2xx0/std.ln2410sbc
==============================================================================
--- projects/armv6/sys/arm/s3c2xx0/std.ln2410sbc	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/arm/s3c2xx0/std.ln2410sbc	Sat Mar  3 17:03:26 2012	(r232468)
@@ -7,4 +7,5 @@ options		KERNPHYSADDR=0x30000000	
 options		KERNVIRTADDR=0xc0000000
 options		PHYSADDR=0x30000000
 options		STARTUP_PAGETABLE_ADDR=0x30800000
+options		NO_EVENTTIMERS
 

Modified: projects/armv6/sys/arm/s3c2xx0/std.s3c2410
==============================================================================
--- projects/armv6/sys/arm/s3c2xx0/std.s3c2410	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/arm/s3c2xx0/std.s3c2410	Sat Mar  3 17:03:26 2012	(r232468)
@@ -4,3 +4,4 @@ files	"../s3c2xx0/files.s3c2xx0"
 cpu	CPU_ARM9
 
 makeoptions	CONF_CFLAGS=-mcpu=arm920t
+options		NO_EVENTTIMERS

Modified: projects/armv6/sys/arm/sa11x0/std.sa11x0
==============================================================================
--- projects/armv6/sys/arm/sa11x0/std.sa11x0	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/arm/sa11x0/std.sa11x0	Sat Mar  3 17:03:26 2012	(r232468)
@@ -5,3 +5,4 @@ cpu		CPU_SA1100
 cpu		CPU_SA1110
 makeoptions	KERNPHYSADDR=0xc0000000
 makeoptions	KERNVIRTADDR=0xc0000000
+options		NO_EVENTTIMERS

Modified: projects/armv6/sys/arm/xscale/std.xscale
==============================================================================
--- projects/armv6/sys/arm/xscale/std.xscale	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/arm/xscale/std.xscale	Sat Mar  3 17:03:26 2012	(r232468)
@@ -1,2 +1,3 @@
 # $FreeBSD$
 options		ARM_CACHE_LOCK_ENABLE
+options		NO_EVENTTIMERS

Modified: projects/armv6/sys/conf/files.arm
==============================================================================
--- projects/armv6/sys/conf/files.arm	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/conf/files.arm	Sat Mar  3 17:03:26 2012	(r232468)
@@ -34,6 +34,7 @@ arm/arm/mem.c			optional	mem
 arm/arm/minidump_machdep.c	optional	mem
 arm/arm/mp_machdep.c		optional	smp
 arm/arm/nexus.c			standard
+arm/arm/pl310.c			optional	pl310
 arm/arm/pmap.c			optional	cpu_arm9 | cpu_arm9e | cpu_fa526 | cpu_sa1100 | cpu_sa1110 | cpu_xscale_80219 | cpu_xscale_80321 | cpu_xscale_81342 | cpu_xscale_ixp425 | cpu_xscale_ixp435 | cpu_xscale_pxa2x0
 arm/arm/pmap-v6.c		optional	cpu_arm11 | cpu_cortexa | cpu_mv_pj4b
 arm/arm/setcpsr.S		standard

Modified: projects/armv6/sys/conf/options.arm
==============================================================================
--- projects/armv6/sys/conf/options.arm	Sat Mar  3 16:13:20 2012	(r232467)
+++ projects/armv6/sys/conf/options.arm	Sat Mar  3 17:03:26 2012	(r232468)
@@ -24,10 +24,13 @@ CPU_XSCALE_IXP425	opt_global.h
 CPU_XSCALE_IXP435	opt_global.h
 CPU_XSCALE_PXA2X0	opt_global.h
 FLASHADDR		opt_global.h
+IPI_IRQ_START		opt_smp.h
+IPI_IRQ_END		opt_smp.h
 IXP4XX_FLASH_SIZE	opt_global.h
 KERNPHYSADDR		opt_global.h
 KERNVIRTADDR		opt_global.h
 LOADERRAMADDR		opt_global.h
+NO_EVENTTIMERS		opt_timer.h
 PHYSADDR		opt_global.h
 SKYEYE_WORKAROUNDS	opt_global.h
 SOC_MV_ARMADAXP		opt_global.h