PERFORCE change 145695 for review

Marko Zec zec at FreeBSD.org
Wed Jul 23 10:01:50 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=145695

Change 145695 by zec at zec_tpx32 on 2008/07/23 10:01:02

	IFC @ 145685

Affected files ...

.. //depot/projects/vimage-commit/src/sys/Makefile#3 integrate
.. //depot/projects/vimage-commit/src/sys/amd64/amd64/pmap.c#5 integrate
.. //depot/projects/vimage-commit/src/sys/amd64/include/param.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/arm/at91/at91_pmc.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/boot/Makefile#2 integrate
.. //depot/projects/vimage-commit/src/sys/boot/forth/loader.conf#3 integrate
.. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/conf/NOTES#5 integrate
.. //depot/projects/vimage-commit/src/sys/conf/files#8 integrate
.. //depot/projects/vimage-commit/src/sys/conf/kern.mk#3 integrate
.. //depot/projects/vimage-commit/src/sys/conf/options#4 integrate
.. //depot/projects/vimage-commit/src/sys/crypto/via/padlock.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/dev/amr/amr.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#5 integrate
.. //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/dev/esp/esp_sbus.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/dev/esp/ncr53c9x.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/dev/esp/ncr53c9xvar.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/dev/mpt/mpt_raid.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/geom/eli/g_eli.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/geom/part/g_part_apm.c#3 integrate
.. //depot/projects/vimage-commit/src/sys/geom/vinum/geom_vinum_rename.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/i386/i386/pmap.c#3 integrate
.. //depot/projects/vimage-commit/src/sys/kern/kern_environment.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/kern/kern_fork.c#4 integrate
.. //depot/projects/vimage-commit/src/sys/kern/kern_timeout.c#3 integrate
.. //depot/projects/vimage-commit/src/sys/kern/sched_ule.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/kern/subr_autoconf.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/kern/subr_witness.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/kern/uipc_socket.c#4 integrate
.. //depot/projects/vimage-commit/src/sys/kern/vfs_bio.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/kern/vfs_subr.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/libkern/arc4random.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/modules/Makefile#7 integrate
.. //depot/projects/vimage-commit/src/sys/modules/accf_dns/Makefile#1 branch
.. //depot/projects/vimage-commit/src/sys/modules/mem/Makefile#2 integrate
.. //depot/projects/vimage-commit/src/sys/net/if_gre.c#4 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/accf_dns.c#1 branch
.. //depot/projects/vimage-commit/src/sys/netinet/in_pcb.c#5 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/in_pcb.h#4 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/tcp_offload.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/tcp_offload.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/tcp_syncache.c#5 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/tcp_syncache.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/tcp_timer.c#4 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/toedev.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/netinet/udp_usrreq.c#5 integrate
.. //depot/projects/vimage-commit/src/sys/netipsec/ipsec.c#5 integrate
.. //depot/projects/vimage-commit/src/sys/netipsec/ipsec6.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/netipx/ipx_input.c#3 integrate
.. //depot/projects/vimage-commit/src/sys/netipx/ipx_usrreq.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/nfs4client/nfs4_socket.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/nfs4client/nfs4_vfsops.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/nfsclient/nfs_socket.c#4 integrate
.. //depot/projects/vimage-commit/src/sys/nfsclient/nfs_vfsops.c#6 integrate
.. //depot/projects/vimage-commit/src/sys/rpc/rpcclnt.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit.c#3 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_arg.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_bsm.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_bsm_klib.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_bsm_token.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_private.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_syscalls.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_trigger.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/security/audit/audit_worker.c#3 integrate
.. //depot/projects/vimage-commit/src/sys/sparc64/sparc64/autoconf.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/sparc64/sparc64/mem.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/sys/kernel.h#4 integrate
.. //depot/projects/vimage-commit/src/sys/sys/param.h#5 integrate
.. //depot/projects/vimage-commit/src/sys/sys/socket.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/sys/sysctl.h#3 integrate
.. //depot/projects/vimage-commit/src/sys/sys/vmmeter.h#2 integrate
.. //depot/projects/vimage-commit/src/sys/ufs/ffs/ffs_vfsops.c#2 integrate
.. //depot/projects/vimage-commit/src/sys/vm/vm_kern.c#3 integrate

Differences ...

==== //depot/projects/vimage-commit/src/sys/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.50 2008/07/10 16:03:24 obrien Exp $
+# $FreeBSD: src/sys/Makefile,v 1.51 2008/07/20 09:16:00 maxim Exp $
 
 .include <bsd.own.mk>
 
@@ -8,13 +8,13 @@
 .endif
 
 # Directories to include in cscope name file and TAGS.
-CSCOPEDIRS=	boot bsm cam compat conf contrib crypto ddb dev fs gdb geom \
-		gnu isa kern libkern modules net net80211 netatalk \
+CSCOPEDIRS=	boot bsm cam cddl compat conf contrib crypto ddb dev fs gdb \
+		geom gnu isa kern libkern modules net net80211 netatalk \
 		netgraph netinet netinet6 netipsec netipx netnatm netncp \
-		netsmb nfs nfs4client nfsclient nfsserver opencrypto pccard \
-		pci rpc security sys ufs vm ${CSCOPE_ARCHDIR}
+		netsmb nfs nfs4client nfsclient nfsserver nlm opencrypto \
+		pccard pci rpc security sys ufs vm xdr ${CSCOPE_ARCHDIR}
 .if defined(ALL_ARCH)
-CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips powerpc sparc64
+CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v
 .else
 CSCOPE_ARCHDIR ?= ${MACHINE}
 .endif

==== //depot/projects/vimage-commit/src/sys/amd64/amd64/pmap.c#5 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.632 2008/07/13 18:19:53 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.634 2008/07/18 22:05:51 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -986,13 +986,12 @@
 	if (pdep != NULL) {
 		pde = *pdep;
 		if (pde) {
-			if ((pde & PG_PS) != 0) {
+			if ((pde & PG_PS) != 0)
 				rtval = (pde & PG_PS_FRAME) | (va & PDRMASK);
-				PMAP_UNLOCK(pmap);
-				return rtval;
+			else {
+				pte = pmap_pde_to_pte(pdep, va);
+				rtval = (*pte & PG_FRAME) | (va & PAGE_MASK);
 			}
-			pte = pmap_pde_to_pte(pdep, va);
-			rtval = (*pte & PG_FRAME) | (va & PAGE_MASK);
 		}
 	}
 	PMAP_UNLOCK(pmap);
@@ -4390,7 +4389,7 @@
 			}
 			return (EINVAL);
 		}
-		pte = vtopte(va);
+		pte = vtopte(tmpva);
 		if (*pte == 0)
 			return (EINVAL);
 		tmpva += PAGE_SIZE;

==== //depot/projects/vimage-commit/src/sys/amd64/include/param.h#2 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)param.h	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/amd64/include/param.h,v 1.21 2008/03/27 05:03:24 jb Exp $
+ * $FreeBSD: src/sys/amd64/include/param.h,v 1.22 2008/07/19 23:42:38 alc Exp $
  */
 
 /*
@@ -136,7 +136,7 @@
  * the kern.maxbcache /boot/loader.conf variable.
  */
 #ifndef VM_BCACHE_SIZE_MAX
-#define	VM_BCACHE_SIZE_MAX	(400 * 1024 * 1024)
+#define	VM_BCACHE_SIZE_MAX	(1024 * 1024 * 1024)
 #endif
 
 /*

==== //depot/projects/vimage-commit/src/sys/arm/at91/at91_pmc.c#2 (text) ====

@@ -25,7 +25,7 @@
 #include "opt_at91.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_pmc.c,v 1.5 2007/09/16 07:51:02 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_pmc.c,v 1.6 2008/07/22 14:04:06 stas Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -259,44 +259,44 @@
 static uint32_t
 at91_pmc_pll_calc(uint32_t main_freq, uint32_t out_freq)
 {
-        uint32_t i, div = 0, mul = 0, diff = 1 << 30;
-        unsigned ret = (out_freq > PMC_PLL_FAST_THRESH) ? 0xbe00 : 0x3e00; 
+	uint32_t i, div = 0, mul = 0, diff = 1 << 30;
+	unsigned ret = (out_freq > PMC_PLL_FAST_THRESH) ? 0xbe00 : 0x3e00; 
 
-        if (out_freq > PMC_PLL_MAX_OUT_FREQ)
-                goto fail;
+	if (out_freq > PMC_PLL_MAX_OUT_FREQ)
+		goto fail;
 
-        for (i = 1; i < 256; i++) {
-                int32_t diff1;
-                uint32_t input, mul1;
+	for (i = 1; i < 256; i++) {
+		int32_t diff1;
+		uint32_t input, mul1;
 
-                input = main_freq / i;
-                if (input < PMC_PLL_MIN_IN_FREQ)
-                        break;
-                if (input > PMC_PLL_MAX_IN_FREQ)
-                        continue;
+		input = main_freq / i;
+		if (input < PMC_PLL_MIN_IN_FREQ)
+			break;
+		if (input > PMC_PLL_MAX_IN_FREQ)
+			continue;
 
-                mul1 = out_freq / input;
-                if (mul1 > PMC_PLL_MULT_MAX)
-                        continue;
-                if (mul1 < PMC_PLL_MULT_MIN)
-                        break;
+		mul1 = out_freq / input;
+		if (mul1 > PMC_PLL_MULT_MAX)
+			continue;
+		if (mul1 < PMC_PLL_MULT_MIN)
+			break;
 
-                diff1 = out_freq - input * mul1;
+		diff1 = out_freq - input * mul1;
 		if (diff1 < 0)
-                        diff1 = -diff1;
-                if (diff > diff1) {
-                        diff = diff1;
-                        div = i;
-                        mul = mul1;
-                        if (diff == 0)
-                                break;
-                }
-        }
-        if (diff > (out_freq >> PMC_PLL_SHIFT_TOL))
+			diff1 = -diff1;
+		if (diff > diff1) {
+			diff = diff1;
+			div = i;
+			mul = mul1;
+			if (diff == 0)
+				break;
+		}
+	}
+	if (diff > (out_freq >> PMC_PLL_SHIFT_TOL))
 		goto fail;
 	return ret | ((mul - 1) << 16) | div;
 fail:
-        return 0;
+	return 0;
 }
 
 static void
@@ -313,12 +313,12 @@
 	 * Initialize the usb clock.  This sets up pllb, but disables the
 	 * actual clock.
 	 */
-        sc->pllb_init = at91_pmc_pll_calc(main_clock, 48000000 * 2) |0x10000000;
-        pllb.hz = at91_pmc_pll_rate(main_clock, sc->pllb_init, 1);
-        WR4(sc, PMC_PCDR, (1 << AT91RM92_IRQ_UHP) | (1 << AT91RM92_IRQ_UDP));
-        WR4(sc, PMC_SCDR, PMC_SCER_UHP | PMC_SCER_UDP);
-        WR4(sc, CKGR_PLLBR, 0);
-        WR4(sc, PMC_SCER, PMC_SCER_MCKUDP);
+	sc->pllb_init = at91_pmc_pll_calc(main_clock, 48000000 * 2) |0x10000000;
+	pllb.hz = at91_pmc_pll_rate(main_clock, sc->pllb_init, 1);
+	WR4(sc, PMC_PCDR, (1 << AT91RM92_IRQ_UHP) | (1 << AT91RM92_IRQ_UDP));
+	WR4(sc, PMC_SCDR, PMC_SCER_UHP | PMC_SCER_UDP);
+	WR4(sc, CKGR_PLLBR, 0);
+	WR4(sc, PMC_SCER, PMC_SCER_MCKUDP);
 
 	/*
 	 * MCK and PCU derive from one of the primary clocks.  Initialize

==== //depot/projects/vimage-commit/src/sys/boot/Makefile#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/Makefile,v 1.33 2008/02/17 20:34:35 marcel Exp $
+# $FreeBSD: src/sys/boot/Makefile,v 1.34 2008/07/23 07:23:33 imp Exp $
 
 .include <bsd.own.mk>
 
@@ -23,6 +23,9 @@
 .endif
 
 # Pick the machine-dependent subdir based on the target architecture.
-SUBDIR+=		${MACHINE:S/amd64/i386/:S/sun4v/sparc64/}
+ADIR=			${MACHINE:S/amd64/i386/:S/sun4v/sparc64/}
+.if exists(${.CURDIR}/${ADIR}/.)
+SUBDIR+=		${ADIR}
+.endif
 
 .include <bsd.subdir.mk>

==== //depot/projects/vimage-commit/src/sys/boot/forth/loader.conf#3 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.128 2008/07/04 21:06:57 jhb Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.129 2008/07/18 14:44:51 dwmalone Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -391,6 +391,7 @@
 ispfw_load="NO"			# Qlogic ISP Firmware
 agp_load="NO"			# agp module
 accf_data_load="NO"		# Wait for data accept filter
+accf_dns_load="NO"		# Wait for data accept filter
 accf_http_load="NO"		# Wait for full HTTP request accept filter
 random_load="NO"		# Random device
 speaker_load="NO"		# AT speaker module

==== //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c,v 1.10 2008/03/28 22:16:05 jb Exp $");
+__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c,v 1.11 2008/07/21 09:45:44 pjd Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -100,7 +100,7 @@
 int
 vfs_optionisset(const vfs_t *vfsp, const char *opt, char **argp)
 {
-	struct vfsoptlist *opts = vfsp->mnt_opt;
+	struct vfsoptlist *opts = vfsp->mnt_optnew;
 	int error;
 
 	if (opts == NULL)

==== //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#2 (text+ko) ====

@@ -196,7 +196,7 @@
 			break;
 	}
 	zs->zst_ph_offset = prefetch_tail;
-	zs->zst_last = lbolt;
+	zs->zst_last = LBOLT;
 }
 
 /*
@@ -517,7 +517,7 @@
 	for (zs = list_head(&zf->zf_stream); zs;
 	    zs = list_next(&zf->zf_stream, zs)) {
 
-		if (((lbolt - zs->zst_last) / hz) > zfetch_min_sec_reap)
+		if (((LBOLT - zs->zst_last) / hz) > zfetch_min_sec_reap)
 			break;
 	}
 
@@ -639,7 +639,7 @@
 		newstream->zst_ph_offset = zst.zst_len + zst.zst_offset;
 		newstream->zst_cap = zst.zst_len;
 		newstream->zst_direction = ZFETCH_FORWARD;
-		newstream->zst_last = lbolt;
+		newstream->zst_last = LBOLT;
 
 		mutex_init(&newstream->zst_lock, NULL, MUTEX_DEFAULT, NULL);
 

==== //depot/projects/vimage-commit/src/sys/conf/NOTES#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1498 2008/07/04 21:24:35 jhb Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1499 2008/07/18 14:44:51 dwmalone Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -887,6 +887,7 @@
 
 # Statically Link in accept filters
 options 	ACCEPT_FILTER_DATA
+options 	ACCEPT_FILTER_DNS
 options 	ACCEPT_FILTER_HTTP
 
 # TCP_SIGNATURE adds support for RFC 2385 (TCP-MD5) digests. These are

==== //depot/projects/vimage-commit/src/sys/conf/files#8 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1315 2008/07/18 06:12:31 kmacy Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1316 2008/07/18 14:44:51 dwmalone Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1902,6 +1902,7 @@
 netgraph/ng_tty.c		optional netgraph_tty
 netgraph/ng_vjc.c		optional netgraph_vjc
 netinet/accf_data.c		optional accept_filter_data
+netinet/accf_dns.c		optional accept_filter_dns
 netinet/accf_http.c		optional accept_filter_http
 netinet/if_atm.c		optional atm
 netinet/if_ether.c		optional ether

==== //depot/projects/vimage-commit/src/sys/conf/kern.mk#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.mk,v 1.55 2008/06/25 21:33:28 ru Exp $
+# $FreeBSD: src/sys/conf/kern.mk,v 1.57 2008/07/23 06:16:34 imp Exp $
 
 #
 # Warning flags for compiling the kernel and components of the kernel.
@@ -110,6 +110,7 @@
 #
 # GCC SSP support.
 #
-.if ${MK_SSP} != "no" && ${CC} != "icc" && ${MACHINE_ARCH} != "ia64"
+.if ${MK_SSP} != "no" && ${CC} != "icc" && ${MACHINE_ARCH} != "ia64" && \
+	${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "mips"
 CFLAGS+=	-fstack-protector
 .endif

==== //depot/projects/vimage-commit/src/sys/conf/options#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.632 2008/05/26 10:39:52 bz Exp $
+# $FreeBSD: src/sys/conf/options,v 1.633 2008/07/18 14:44:51 dwmalone Exp $
 #
 #        On the handling of kernel options
 #
@@ -342,6 +342,7 @@
 
 # Net stuff.
 ACCEPT_FILTER_DATA
+ACCEPT_FILTER_DNS
 ACCEPT_FILTER_HTTP
 ALTQ			opt_global.h
 ALTQ_CBQ		opt_altq.h

==== //depot/projects/vimage-commit/src/sys/crypto/via/padlock.c#2 (text+ko) ====

@@ -25,14 +25,14 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.13 2007/07/03 12:13:43 gnn Exp $");
+__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.14 2008/07/20 07:34:00 pjd Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
 #include <sys/module.h>
 #include <sys/lock.h>
-#include <sys/mutex.h>
+#include <sys/rwlock.h>
 #include <sys/malloc.h>
 #include <sys/libkern.h>
 #if defined(__i386__) && !defined(PC98)
@@ -60,7 +60,7 @@
 	int32_t		sc_cid;
 	uint32_t	sc_sid;
 	TAILQ_HEAD(, padlock_session) sc_sessions;
-	struct mtx	sc_sessions_mtx;
+	struct rwlock	sc_sessions_lock;
 };
 
 static int padlock_newsession(device_t, uint32_t *sidp, struct cryptoini *cri);
@@ -126,7 +126,7 @@
 		return (ENOMEM);
 	}
 
-	mtx_init(&sc->sc_sessions_mtx, "padlock_mtx", NULL, MTX_DEF);
+	rw_init(&sc->sc_sessions_lock, "padlock_lock");
 	crypto_register(sc->sc_cid, CRYPTO_AES_CBC, 0, 0);
 	crypto_register(sc->sc_cid, CRYPTO_MD5_HMAC, 0, 0);
 	crypto_register(sc->sc_cid, CRYPTO_SHA1_HMAC, 0, 0);
@@ -143,10 +143,10 @@
 	struct padlock_softc *sc = device_get_softc(dev);
 	struct padlock_session *ses;
 
-	mtx_lock(&sc->sc_sessions_mtx);
+	rw_wlock(&sc->sc_sessions_lock);
 	TAILQ_FOREACH(ses, &sc->sc_sessions, ses_next) {
 		if (ses->ses_used) {
-			mtx_unlock(&sc->sc_sessions_mtx);
+			rw_wunlock(&sc->sc_sessions_lock);
 			device_printf(dev,
 			    "Cannot detach, sessions still active.\n");
 			return (EBUSY);
@@ -157,7 +157,7 @@
 		TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next);
 		free(ses, M_PADLOCK);
 	}
-	mtx_destroy(&sc->sc_sessions_mtx);
+	rw_destroy(&sc->sc_sessions_lock);
 	crypto_unregister_all(sc->sc_cid);
 	return (0);
 }
@@ -208,7 +208,7 @@
 	/*
 	 * Let's look for a free session structure.
 	 */
-	mtx_lock(&sc->sc_sessions_mtx);
+	rw_wlock(&sc->sc_sessions_lock);
 	/*
 	 * Free sessions goes first, so if first session is used, we need to
 	 * allocate one.
@@ -221,16 +221,16 @@
 		ses->ses_used = 1;
 		TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next);
 	}
-	mtx_unlock(&sc->sc_sessions_mtx);
+	rw_wunlock(&sc->sc_sessions_lock);
 	if (ses == NULL) {
 		ses = malloc(sizeof(*ses), M_PADLOCK, M_NOWAIT | M_ZERO);
 		if (ses == NULL)
 			return (ENOMEM);
 		ses->ses_used = 1;
-		mtx_lock(&sc->sc_sessions_mtx);
+		rw_wlock(&sc->sc_sessions_lock);
 		ses->ses_id = sc->sc_sid++;
 		TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next);
-		mtx_unlock(&sc->sc_sessions_mtx);
+		rw_wunlock(&sc->sc_sessions_lock);
 	}
 
 	error = padlock_cipher_setup(ses, encini);
@@ -258,21 +258,21 @@
 	struct padlock_session *ses;
 	uint32_t sid = ((uint32_t)tid) & 0xffffffff;
 
-	mtx_lock(&sc->sc_sessions_mtx);
+	rw_wlock(&sc->sc_sessions_lock);
 	TAILQ_FOREACH(ses, &sc->sc_sessions, ses_next) {
 		if (ses->ses_id == sid)
 			break;
 	}
 	if (ses == NULL) {
-		mtx_unlock(&sc->sc_sessions_mtx);
+		rw_wunlock(&sc->sc_sessions_lock);
 		return (EINVAL);
 	}
 	TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next);
 	padlock_hash_free(ses);
 	bzero(ses, sizeof(*ses));
 	ses->ses_used = 0;
-	TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next);
-	mtx_unlock(&sc->sc_sessions_mtx);
+	TAILQ_INSERT_HEAD(&sc->sc_sessions, ses, ses_next);
+	rw_wunlock(&sc->sc_sessions_lock);
 	return (0);
 }
 
@@ -322,12 +322,12 @@
 		goto out;
 	}
 
-	mtx_lock(&sc->sc_sessions_mtx);
+	rw_rlock(&sc->sc_sessions_lock);
 	TAILQ_FOREACH(ses, &sc->sc_sessions, ses_next) {
 		if (ses->ses_id == (crp->crp_sid & 0xffffffff))
 			break;
 	}
-	mtx_unlock(&sc->sc_sessions_mtx);
+	rw_runlock(&sc->sc_sessions_lock);
 	if (ses == NULL) {
 		error = EINVAL;
 		goto out;

==== //depot/projects/vimage-commit/src/sys/dev/amr/amr.c#2 (text+ko) ====

@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.85 2008/01/24 07:26:53 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.86 2008/07/20 16:50:14 scottl Exp $");
 
 /*
  * Driver for the AMI MegaRaid family of controllers.
@@ -2082,8 +2082,11 @@
     int			i = 0;
   
     mtx_lock(&sc->amr_hw_lock);
-    while (sc->amr_mailbox->mb_busy && (i++ < 10))
+    while (sc->amr_mailbox->mb_busy && (i++ < 10)) {
         DELAY(1);
+	/* This is a no-op read that flushes pending mailbox updates */
+	AMR_QGET_ODB(sc);
+    }
     if (sc->amr_mailbox->mb_busy) {
 	mtx_unlock(&sc->amr_hw_lock);
 	if (ac->ac_retries++ > 1000) {

==== //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#5 (text+ko) ====

@@ -28,7 +28,7 @@
 ***************************************************************************/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.12 2008/07/18 06:12:31 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.15 2008/07/21 21:23:43 kmacy Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -410,13 +410,18 @@
 		snd->sb_sndptroff += bytes;
 		total_bytes += bytes;
 		toep->tp_write_seq += bytes;
-		CTR6(KTR_TOM, "t3_push_frames: wr_avail=%d mbuf_wrs[%d]=%d tail=%p sndptr=%p sndptroff=%d",
-		    toep->tp_wr_avail, count, mbuf_wrs[count], tail, snd->sb_sndptr, snd->sb_sndptroff);	
+		CTR6(KTR_TOM, "t3_push_frames: wr_avail=%d mbuf_wrs[%d]=%d"
+		    " tail=%p sndptr=%p sndptroff=%d",
+		    toep->tp_wr_avail, count, mbuf_wrs[count],
+		    tail, snd->sb_sndptr, snd->sb_sndptroff);	
 		if (tail)
-			CTR4(KTR_TOM, "t3_push_frames: total_bytes=%d tp_m_last=%p tailbuf=%p snd_una=0x%08x",
-			    total_bytes, toep->tp_m_last, tail->m_data, tp->snd_una);
+			CTR4(KTR_TOM, "t3_push_frames: total_bytes=%d"
+			    " tp_m_last=%p tailbuf=%p snd_una=0x%08x",
+			    total_bytes, toep->tp_m_last, tail->m_data,
+			    tp->snd_una);
 		else
-			CTR3(KTR_TOM, "t3_push_frames: total_bytes=%d tp_m_last=%p snd_una=0x%08x",
+			CTR3(KTR_TOM, "t3_push_frames: total_bytes=%d"
+			    " tp_m_last=%p snd_una=0x%08x",
 			    total_bytes, toep->tp_m_last, tp->snd_una);
 
 
@@ -428,14 +433,18 @@
 		while (i < count && m_get_sgllen(m0)) {
 			if ((count - i) >= 3) {
 				CTR6(KTR_TOM,
-				    "t3_push_frames: pa=0x%zx len=%d pa=0x%zx len=%d pa=0x%zx len=%d",
-				    segs[i].ds_addr, segs[i].ds_len, segs[i + 1].ds_addr, segs[i + 1].ds_len,
+				    "t3_push_frames: pa=0x%zx len=%d pa=0x%zx"
+				    " len=%d pa=0x%zx len=%d",
+				    segs[i].ds_addr, segs[i].ds_len,
+				    segs[i + 1].ds_addr, segs[i + 1].ds_len,
 				    segs[i + 2].ds_addr, segs[i + 2].ds_len);
 				    i += 3;
 			} else if ((count - i) == 2) {
 				CTR4(KTR_TOM, 
-				    "t3_push_frames: pa=0x%zx len=%d pa=0x%zx len=%d",
-				    segs[i].ds_addr, segs[i].ds_len, segs[i + 1].ds_addr, segs[i + 1].ds_len);
+				    "t3_push_frames: pa=0x%zx len=%d pa=0x%zx"
+				    " len=%d",
+				    segs[i].ds_addr, segs[i].ds_len,
+				    segs[i + 1].ds_addr, segs[i + 1].ds_len);
 				    i += 2;
 			} else {
 				CTR2(KTR_TOM, "t3_push_frames: pa=0x%zx len=%d",
@@ -2418,25 +2427,6 @@
 	tcp_offload_twstart(tp);
 }
 
-static void
-enter_timewait_disconnect(struct tcpcb *tp)
-{
-	/*
-	 * Bump rcv_nxt for the peer FIN.  We don't do this at the time we
-	 * process peer_close because we don't want to carry the peer FIN in
-	 * the socket's receive queue and if we increment rcv_nxt without
-	 * having the FIN in the receive queue we'll confuse facilities such
-	 * as SIOCINQ.
-	 */
-	inp_wlock(tp->t_inpcb);	
-	tp->rcv_nxt++;
-
-	tp->ts_recent_age = 0;	     /* defeat recycling */
-	tp->t_srtt = 0;                        /* defeat tcp_update_metrics */
-	inp_wunlock(tp->t_inpcb);
-	tcp_offload_twstart_disconnect(tp);
-}
-
 /*
  * For TCP DDP a PEER_CLOSE may also be an implicit RX_DDP_COMPLETE.  This
  * function deals with the data that may be reported along with the FIN.
@@ -2704,7 +2694,7 @@
 
 
 	if (action == TCP_TIMEWAIT) {
-		enter_timewait_disconnect(tp);
+		enter_timewait(tp);
 	} else if (action == TCP_DROP) {
 		tcp_offload_drop(tp, 0);		
 	} else if (action == TCP_CLOSE) {
@@ -3277,7 +3267,7 @@
 	to.to_mss = mss;
 	to.to_wscale = wsf;
 	to.to_flags = (mss ? TOF_MSS : 0) | (wsf ? TOF_SCALE : 0) | (ts ? TOF_TS : 0) | (sack ? TOF_SACKPERM : 0);
-	syncache_offload_add(&inc, &to, &th, inp, &lso, &cxgb_toe_usrreqs, toep);
+	tcp_offload_syncache_add(&inc, &to, &th, inp, &lso, &cxgb_toe_usrreqs, toep);
 }
 
 
@@ -3620,7 +3610,7 @@
 	    ntohl(req->local_ip), ntohs(req->local_port),
 	    ntohl(req->peer_ip), ntohs(req->peer_port),
 	    mss, wsf, ts, sack);
-	return syncache_offload_expand(&inc, &to, &th, so, m);
+	return tcp_offload_syncache_expand(&inc, &to, &th, so, m);
 }
 
 

==== //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c,v 1.1 2008/04/19 03:22:42 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c,v 1.4 2008/07/21 02:29:40 kmacy Exp $");
 
 /*
  * grab bag of accessor routines that will either be moved to netinet
@@ -66,259 +66,6 @@
  */
 
 void
-tcp_offload_twstart(struct tcpcb *tp)
-{
-
-	INP_INFO_WLOCK(&tcbinfo);
-	inp_wlock(tp->t_inpcb);
-	tcp_twstart(tp);
-	INP_INFO_WUNLOCK(&tcbinfo);
-}
-
-void
-tcp_offload_twstart_disconnect(struct tcpcb *tp)
-{
-	struct socket *so;
-	
-	INP_INFO_WLOCK(&tcbinfo);
-	inp_wlock(tp->t_inpcb);
-	so = tp->t_inpcb->inp_socket;	
-	tcp_twstart(tp);
-	if (so)
-		soisdisconnected(so);	
-	INP_INFO_WUNLOCK(&tcbinfo);
-}
-
-struct tcpcb *
-tcp_offload_close(struct tcpcb *tp)
-{
-	
-	INP_INFO_WLOCK(&tcbinfo);
-	INP_WLOCK(tp->t_inpcb);
-	tp = tcp_close(tp);
-	INP_INFO_WUNLOCK(&tcbinfo);
-	if (tp)
-		INP_WUNLOCK(tp->t_inpcb);
-
-	return (tp);
-}
-
-struct tcpcb *
-tcp_offload_drop(struct tcpcb *tp, int error)
-{
-	
-	INP_INFO_WLOCK(&tcbinfo);
-	INP_WLOCK(tp->t_inpcb);
-	tp = tcp_drop(tp, error);
-	INP_INFO_WUNLOCK(&tcbinfo);
-	if (tp)
-		INP_WUNLOCK(tp->t_inpcb);
-
-	return (tp);
-}
-
-void
-inp_apply_all(void (*func)(struct inpcb *, void *), void *arg)
-{
-	struct inpcb *inp;
-	
-	INP_INFO_RLOCK(&tcbinfo);
-	LIST_FOREACH(inp, tcbinfo.ipi_listhead, inp_list) {
-		INP_WLOCK(inp);
-		func(inp, arg);		
-		INP_WUNLOCK(inp);		
-	}
-	INP_INFO_RUNLOCK(&tcbinfo);
-}
-
-struct socket *
-inp_inpcbtosocket(struct inpcb *inp)
-{
-
-	INP_WLOCK_ASSERT(inp);	
-	return (inp->inp_socket);	
-}
-
-struct tcpcb *
-inp_inpcbtotcpcb(struct inpcb *inp)
-{
-
-	INP_WLOCK_ASSERT(inp);	
-	return ((struct tcpcb *)inp->inp_ppcb);
-}
-
-int
-inp_ip_tos_get(const struct inpcb *inp)
-{
-
-	return (inp->inp_ip_tos);
-}
-
-void
-inp_ip_tos_set(struct inpcb *inp, int val)
-{
-
-	inp->inp_ip_tos = val;
-}
-
-void 
-inp_4tuple_get(const struct inpcb *inp, uint32_t *laddr, uint16_t *lp, uint32_t *faddr, uint16_t *fp)
-{
-
-	memcpy(laddr, &inp->inp_laddr, 4);
-	memcpy(faddr, &inp->inp_faddr, 4);
-
-	*lp = inp->inp_lport;
-	*fp = inp->inp_fport;
-}
-
-void
-so_listeners_apply_all(struct socket *so, void (*func)(struct socket *, void *), void *arg)
-{
-	
-	TAILQ_FOREACH(so, &so->so_comp, so_list)
-		func(so, arg);
-}
-
-struct tcpcb *
-so_sototcpcb(struct socket *so)
-{
-
-	return (sototcpcb(so));
-}
-
-struct inpcb *
-so_sotoinpcb(struct socket *so)
-{
-
-	return (sotoinpcb(so));
-}
-
-struct sockbuf *
-so_sockbuf_rcv(struct socket *so)
-{
-
-	return (&so->so_rcv);
-}
-
-struct sockbuf *
-so_sockbuf_snd(struct socket *so)
-{
-
-	return (&so->so_snd);
-}
-
-int
-so_state_get(const struct socket *so)
-{
-
-	return (so->so_state);
-}
-
-void
-so_state_set(struct socket *so, int val)
-{
-
-	so->so_state = val;
-}
-
-int
-so_options_get(const struct socket *so)
-{
-
-	return (so->so_options);
-}
-
-void
-so_options_set(struct socket *so, int val)
-{
-
-	so->so_options = val;
-}
-
-int
-so_error_get(const struct socket *so)
-{
-
-	return (so->so_error);
-}
-
-void
-so_error_set(struct socket *so, int val)
-{
-
-	so->so_error = val;
-}
-
-int
-so_linger_get(const struct socket *so)
-{
-
-	return (so->so_linger);
-}
-
-void
-so_linger_set(struct socket *so, int val)
-{
-
-	so->so_linger = val;
-}
-
-struct protosw *
-so_protosw_get(const struct socket *so)
-{
-
-	return (so->so_proto);
-}
-
-void
-so_protosw_set(struct socket *so, struct protosw *val)
-{
-
-	so->so_proto = val;
-}
-
-void
-so_sorwakeup(struct socket *so)
-{
-
-	sorwakeup(so);
-}
-
-void
-so_sowwakeup(struct socket *so)
-{
-
-	sowwakeup(so);
-}
-
-void
-so_sorwakeup_locked(struct socket *so)
-{
-
-	sorwakeup_locked(so);
-}
-
-void
-so_sowwakeup_locked(struct socket *so)
-{
-
-	sowwakeup_locked(so);
-}
-
-void
-so_lock(struct socket *so)
-{
-	SOCK_LOCK(so);
-}
-
-void
-so_unlock(struct socket *so)
-{
-	SOCK_UNLOCK(so);
-}
-
-void
 sockbuf_lock(struct sockbuf *sb)
 {
 
@@ -346,15 +93,3 @@
 	return (sbspace(sb));
 }
 
-int
-syncache_offload_expand(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,
-    struct socket **lsop, struct mbuf *m)
-{
-	int rc;
-	
-	INP_INFO_WLOCK(&tcbinfo);
-	rc = syncache_expand(inc, to, th, lsop, m);
-	INP_INFO_WUNLOCK(&tcbinfo);
-
-	return (rc);
-}

==== //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#2 (text+ko) ====

@@ -1,67 +1,16 @@
-/* $FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h,v 1.2 2008/05/05 01:41:53 kmacy Exp $ */

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list