PERFORCE change 145691 for review
Marko Zec
zec at FreeBSD.org
Wed Jul 23 09:28:15 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=145691
Change 145691 by zec at zec_tpx32 on 2008/07/23 09:27:24
IFC @ 145685
Affected files ...
.. //depot/projects/vimage/src/sys/Makefile#10 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#19 integrate
.. //depot/projects/vimage/src/sys/amd64/include/param.h#3 integrate
.. //depot/projects/vimage/src/sys/arm/at91/at91_pmc.c#4 integrate
.. //depot/projects/vimage/src/sys/boot/Makefile#3 integrate
.. //depot/projects/vimage/src/sys/boot/forth/loader.conf#11 integrate
.. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#2 integrate
.. //depot/projects/vimage/src/sys/conf/NOTES#27 integrate
.. //depot/projects/vimage/src/sys/conf/files#32 integrate
.. //depot/projects/vimage/src/sys/conf/kern.mk#6 integrate
.. //depot/projects/vimage/src/sys/conf/options#26 integrate
.. //depot/projects/vimage/src/sys/crypto/via/padlock.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/amr/amr.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/esp/esp_sbus.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/esp/ncr53c9x.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/esp/ncr53c9xvar.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/mpt/mpt_raid.c#6 integrate
.. //depot/projects/vimage/src/sys/geom/eli/g_eli.c#6 integrate
.. //depot/projects/vimage/src/sys/geom/part/g_part_apm.c#7 integrate
.. //depot/projects/vimage/src/sys/geom/vinum/geom_vinum_rename.c#2 integrate
.. //depot/projects/vimage/src/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c#6 integrate
.. //depot/projects/vimage/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.c#3 integrate
.. //depot/projects/vimage/src/sys/i386/i386/pmap.c#17 integrate
.. //depot/projects/vimage/src/sys/kern/kern_environment.c#5 integrate
.. //depot/projects/vimage/src/sys/kern/kern_fork.c#19 integrate
.. //depot/projects/vimage/src/sys/kern/kern_timeout.c#14 integrate
.. //depot/projects/vimage/src/sys/kern/sched_ule.c#24 integrate
.. //depot/projects/vimage/src/sys/kern/subr_autoconf.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/subr_witness.c#11 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_socket.c#19 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_bio.c#13 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_subr.c#13 integrate
.. //depot/projects/vimage/src/sys/libkern/arc4random.c#2 integrate
.. //depot/projects/vimage/src/sys/modules/Makefile#24 integrate
.. //depot/projects/vimage/src/sys/modules/accf_dns/Makefile#1 branch
.. //depot/projects/vimage/src/sys/modules/mem/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/net/if_gre.c#7 integrate
.. //depot/projects/vimage/src/sys/netinet/accf_dns.c#1 branch
.. //depot/projects/vimage/src/sys/netinet/in_pcb.c#24 integrate
.. //depot/projects/vimage/src/sys/netinet/in_pcb.h#15 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_offload.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_offload.h#3 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_syncache.c#28 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_syncache.h#12 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_timer.c#17 integrate
.. //depot/projects/vimage/src/sys/netinet/toedev.h#2 integrate
.. //depot/projects/vimage/src/sys/netinet/udp_usrreq.c#26 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec.c#22 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec6.h#4 integrate
.. //depot/projects/vimage/src/sys/netipx/ipx_input.c#5 integrate
.. //depot/projects/vimage/src/sys/netipx/ipx_usrreq.c#5 integrate
.. //depot/projects/vimage/src/sys/nfs4client/nfs4_socket.c#2 integrate
.. //depot/projects/vimage/src/sys/nfs4client/nfs4_vfsops.c#7 integrate
.. //depot/projects/vimage/src/sys/nfsclient/nfs_socket.c#11 integrate
.. //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#15 integrate
.. //depot/projects/vimage/src/sys/rpc/rpcclnt.c#6 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit.c#12 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit.h#7 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_arg.c#9 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_bsm.c#8 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_bsm_klib.c#8 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_bsm_token.c#7 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_private.h#6 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_syscalls.c#11 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_trigger.c#5 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_worker.c#9 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/autoconf.c#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/mem.c#3 integrate
.. //depot/projects/vimage/src/sys/sys/kernel.h#13 integrate
.. //depot/projects/vimage/src/sys/sys/param.h#22 integrate
.. //depot/projects/vimage/src/sys/sys/socket.h#8 integrate
.. //depot/projects/vimage/src/sys/sys/sysctl.h#20 integrate
.. //depot/projects/vimage/src/sys/sys/vmmeter.h#6 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_vfsops.c#9 integrate
.. //depot/projects/vimage/src/sys/vm/vm_kern.c#10 integrate
Differences ...
==== //depot/projects/vimage/src/sys/Makefile#10 (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/src/sys/amd64/amd64/pmap.c#19 (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/src/sys/amd64/include/param.h#3 (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/src/sys/arm/at91/at91_pmc.c#4 (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/src/sys/boot/Makefile#3 (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/src/sys/boot/forth/loader.conf#11 (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/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/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/src/sys/conf/NOTES#27 (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/src/sys/conf/files#32 (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
@@ -1905,6 +1905,7 @@
netgraph/ng_vjc.c optional netgraph_vjc
netgraph/ng_wormhole.c optional netgraph_wormhole vimage
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/src/sys/conf/kern.mk#6 (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/src/sys/conf/options#26 (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/src/sys/crypto/via/padlock.c#4 (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/src/sys/dev/amr/amr.c#5 (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/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/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/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