Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Jul 2006 22:51:33 GMT
From:      Olivier Houchard <cognet@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 100665 for review
Message-ID:  <200607052251.k65MpXN2079129@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=100665

Change 100665 by cognet@cognet on 2006/07/05 22:51:17

	IFC

Affected files ...

.. //depot/projects/mips2/src/MAINTAINERS#2 integrate
.. //depot/projects/mips2/src/bin/cp/cp.c#2 integrate
.. //depot/projects/mips2/src/lib/libc/posix1e/mac_is_present.3#1 branch
.. //depot/projects/mips2/src/lib/msun/i387/Makefile.inc#2 integrate
.. //depot/projects/mips2/src/lib/msun/i387/e_scalb.S#2 delete
.. //depot/projects/mips2/src/lib/msun/i387/e_scalbf.S#2 delete
.. //depot/projects/mips2/src/lib/msun/src/e_scalbf.c#2 integrate
.. //depot/projects/mips2/src/sbin/dhclient/dhclient.c#2 integrate
.. //depot/projects/mips2/src/share/man/man4/ata.4#2 integrate
.. //depot/projects/mips2/src/share/man/man7/ports.7#2 integrate
.. //depot/projects/mips2/src/sys/Makefile#3 integrate
.. //depot/projects/mips2/src/sys/amd64/amd64/pmap.c#3 integrate
.. //depot/projects/mips2/src/sys/amd64/conf/GENERIC#2 integrate
.. //depot/projects/mips2/src/sys/bsm/audit_kevents.h#2 integrate
.. //depot/projects/mips2/src/sys/bsm/audit_record.h#2 integrate
.. //depot/projects/mips2/src/sys/dev/ata/ata-chipset.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/ata/ata-lowlevel.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/ata/ata-pci.h#2 integrate
.. //depot/projects/mips2/src/sys/dev/atkbdc/atkbdc_isa.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/isp/isp.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/isp/isp_pci.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/isp/ispmbox.h#2 integrate
.. //depot/projects/mips2/src/sys/dev/isp/ispreg.h#2 integrate
.. //depot/projects/mips2/src/sys/dev/isp/ispvar.h#2 integrate
.. //depot/projects/mips2/src/sys/dev/ispfw/asm_2322.h#1 branch
.. //depot/projects/mips2/src/sys/dev/ispfw/ispfw.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/mii/brgphy.c#3 integrate
.. //depot/projects/mips2/src/sys/dev/mii/mii_physubr.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/sk/if_sk.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/usb/if_aue.c#2 integrate
.. //depot/projects/mips2/src/sys/geom/mirror/g_mirror.c#2 integrate
.. //depot/projects/mips2/src/sys/geom/raid3/g_raid3.c#2 integrate
.. //depot/projects/mips2/src/sys/i386/conf/GENERIC#2 integrate
.. //depot/projects/mips2/src/sys/ia64/include/ieeefp.h#2 integrate
.. //depot/projects/mips2/src/sys/kern/init_sysent.c#2 integrate
.. //depot/projects/mips2/src/sys/kern/subr_acl_posix1e.c#1 branch
.. //depot/projects/mips2/src/sys/kern/syscalls.c#2 integrate
.. //depot/projects/mips2/src/sys/kern/syscalls.master#2 integrate
.. //depot/projects/mips2/src/sys/kern/vfs_subr.c#2 integrate
.. //depot/projects/mips2/src/sys/net/bpf.c#2 integrate
.. //depot/projects/mips2/src/sys/net/if_enc.c#2 integrate
.. //depot/projects/mips2/src/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c#2 integrate
.. //depot/projects/mips2/src/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h#2 integrate
.. //depot/projects/mips2/src/sys/netinet/libalias/libalias.3#2 integrate
.. //depot/projects/mips2/src/sys/security/audit/audit.h#2 integrate
.. //depot/projects/mips2/src/sys/security/audit/audit_arg.c#2 integrate
.. //depot/projects/mips2/src/sys/sys/syscall.h#2 integrate
.. //depot/projects/mips2/src/sys/sys/syscall.mk#2 integrate
.. //depot/projects/mips2/src/sys/sys/sysproto.h#2 integrate
.. //depot/projects/mips2/src/tools/kerneldoc/Doxyfile#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/Makefile#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Dependencies#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-cam#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-crypto#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-dev_pci#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-dev_sound#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-dev_usb#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-geom#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-i4b#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-kern#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-libkern#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-linux#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-net80211#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-netgraph#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-netinet#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-netinet6#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-netipsec#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-opencrypto#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Doxyfile-vm#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/Makefile#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/README#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/common-Doxyfile#1 branch
.. //depot/projects/mips2/src/tools/kerneldoc/subsys/notreviewed.dox#1 branch
.. //depot/projects/mips2/src/usr.bin/calendar/calendars/calendar.freebsd#2 integrate
.. //depot/projects/mips2/src/usr.sbin/mtree/misc.c#2 integrate
.. //depot/projects/mips2/src/usr.sbin/mtree/mtree.8#2 integrate
.. //depot/projects/mips2/src/usr.sbin/mtree/mtree.h#2 integrate
.. //depot/projects/mips2/src/usr.sbin/mtree/spec.c#2 integrate
.. //depot/projects/mips2/src/usr.sbin/mtree/test/test05.sh#1 branch
.. //depot/projects/mips2/src/usr.sbin/mtree/verify.c#2 integrate
.. //depot/projects/mips2/src/usr.sbin/sade/Makefile#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/command.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/config.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/devices.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/disks.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/dispatch.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/dmenu.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/globals.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/help/partition.hlp#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/help/slice.hlp#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/install.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/keymap.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/label.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/list.h#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/main.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/menus.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/misc.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/msg.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/rtermcap.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/sade.8#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/sade.h#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/system.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/termcap.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/usb.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/variable.c#1 branch
.. //depot/projects/mips2/src/usr.sbin/sade/wizard.c#1 branch

Differences ...

==== //depot/projects/mips2/src/MAINTAINERS#2 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/MAINTAINERS,v 1.136 2006/07/01 10:51:54 markm Exp $
+$FreeBSD: src/MAINTAINERS,v 1.137 2006/07/04 02:01:48 brooks Exp $
 
 Please note that the content of this file is strictly advisory.
 No locks listed here are valid.  The only strict review requirements
@@ -59,8 +59,6 @@
 				Keep in sync with -STABLE.
 etc/sendmail	gshapiro	Pre-commit review requested.
 				Keep in sync with -STABLE.
-dhcp		mbr	Needs to pre-approve commits to contrib/isc-dhcp, so
-			changes can be made to the isc.org CVS repository.
 libfetch	des	Advance notification requested.
 fetch		des	Advance notification requested.
 libpam		des	Pre-commit review requested.
@@ -140,7 +138,6 @@
 bin/dd/Makefile:MAINTAINER=	green@FreeBSD.org
 games/fortune/datfiles/Makefile:MAINTAINER=	jkh
 gnu/usr.bin/man/apropos/Makefile:MAINTAINER= wosch
-sbin/dhclient/Makefile.inc:MAINTAINER=     mbr
 sys/modules/3dfx/Makefile:MAINTAINER=	cokane@FreeBSD.org
 sys/modules/urio/Makefile:MAINTAINER=	Iwasa Kazmi <kzmi@ca2.so-net.ne.jp>
 tools/tools/sysdoc/Makefile:MAINTAINER=	trhodes@FreeBSD.org

==== //depot/projects/mips2/src/bin/cp/cp.c#2 (text+ko) ====

@@ -42,7 +42,7 @@
 #endif /* not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/cp/cp.c,v 1.52 2005/09/05 04:36:08 csjp Exp $");
+__FBSDID("$FreeBSD: src/bin/cp/cp.c,v 1.53 2006/07/04 20:52:36 maxim Exp $");
 
 /*
  * Cp copies source files to target files.
@@ -476,6 +476,7 @@
 	}
 	if (errno)
 		err(1, "fts_read");
+	fts_close(ftsp);
 	return (rval);
 }
 

==== //depot/projects/mips2/src/lib/msun/i387/Makefile.inc#2 (text+ko) ====

@@ -1,13 +1,13 @@
-# $FreeBSD: src/lib/msun/i387/Makefile.inc,v 1.8 2006/03/27 23:59:45 deischen Exp $
+# $FreeBSD: src/lib/msun/i387/Makefile.inc,v 1.9 2006/07/05 20:06:42 bde Exp $
 
 ARCH_SRCS = e_exp.S e_fmod.S e_log.S e_log10.S \
-	    e_remainder.S e_scalb.S e_sqrt.S s_ceil.S s_copysign.S \
+	    e_remainder.S e_sqrt.S s_ceil.S s_copysign.S \
 	    s_cos.S s_finite.S s_floor.S s_llrint.S s_logb.S s_lrint.S \
 	    s_remquo.S s_rint.S s_scalbn.S s_significand.S s_sin.S s_tan.S \
 	    s_trunc.S
 
 # float counterparts
-ARCH_SRCS+= e_log10f.S e_logf.S e_remainderf.S e_scalbf.S \
+ARCH_SRCS+= e_log10f.S e_logf.S e_remainderf.S \
 	    e_sqrtf.S s_ceilf.S s_copysignf.S s_floorf.S \
 	    s_llrintf.S s_logbf.S s_lrintf.S \
 	    s_remquof.S s_rintf.S s_scalbnf.S s_significandf.S s_truncf.S

==== //depot/projects/mips2/src/lib/msun/src/e_scalbf.c#2 (text+ko) ====

@@ -14,7 +14,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$FreeBSD: src/lib/msun/src/e_scalbf.c,v 1.10 2005/12/06 20:12:38 obrien Exp $";
+static char rcsid[] = "$FreeBSD: src/lib/msun/src/e_scalbf.c,v 1.12 2006/07/05 17:34:57 bde Exp $";
 #endif
 
 #include "math.h"
@@ -42,5 +42,3 @@
 	return scalbnf(x,(int)fn);
 #endif
 }
-
-__weak_reference(scalbf, ldexpf);

==== //depot/projects/mips2/src/sbin/dhclient/dhclient.c#2 (text+ko) ====

@@ -54,7 +54,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/dhclient/dhclient.c,v 1.15 2006/05/23 16:57:47 imp Exp $");
+__FBSDID("$FreeBSD: src/sbin/dhclient/dhclient.c,v 1.16 2006/07/03 22:05:38 jkim Exp $");
 
 #include "dhcpd.h"
 #include "privsep.h"
@@ -1480,7 +1480,6 @@
 		}
 	}
 
-#ifdef SEND_CLIENT_IDENTIFIER	
 	/* set unique client identifier */
 	char client_ident[sizeof(struct hardware)];
 	if (!options[DHO_DHCP_CLIENT_IDENTIFIER]) {
@@ -1494,7 +1493,6 @@
 		options[DHO_DHCP_CLIENT_IDENTIFIER]->buf_size = hwlen+1;
 		options[DHO_DHCP_CLIENT_IDENTIFIER]->timeout = 0xFFFFFFFF;
 	}
-#endif	
 
 	/* Set up the option buffer... */
 	ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0,
@@ -1606,7 +1604,6 @@
 		}
 	}
 
-#ifdef SEND_CLIENT_IDENTIFIER	
 	/* set unique client identifier */
 	char client_ident[sizeof(struct hardware)];
 	if (!options[DHO_DHCP_CLIENT_IDENTIFIER]) {
@@ -1620,7 +1617,6 @@
 		options[DHO_DHCP_CLIENT_IDENTIFIER]->buf_size = hwlen+1;
 		options[DHO_DHCP_CLIENT_IDENTIFIER]->timeout = 0xFFFFFFFF;
 	}
-#endif	
 
 	/* Set up the option buffer... */
 	ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0,

==== //depot/projects/mips2/src/share/man/man4/ata.4#2 (text+ko) ====

@@ -25,9 +25,9 @@
 .\" (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: src/share/man/man4/ata.4,v 1.64 2006/03/16 22:20:39 brueffer Exp $
+.\" $FreeBSD: src/share/man/man4/ata.4,v 1.65 2006/07/05 08:26:50 brueffer Exp $
 .\"
-.Dd March 16, 2006
+.Dd July 5, 2006
 .Dt ATA 4
 .Os
 .Sh NAME
@@ -133,7 +133,7 @@
 .It Promise:
 PDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270, PDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375, PDC20376, PDC20377, PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580, PDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622, PDC40518, PDC40519, PDC40718, PDC40719.
 .It ServerWorks:
-ROSB4, CSB5, CSB6.
+HT1000, ROSB4, CSB5, CSB6.
 .It Silicon Image:
 SiI0680, SiI3112, SiI3114, SiI3512.
 .It SiS:

==== //depot/projects/mips2/src/share/man/man7/ports.7#2 (text+ko) ====

@@ -23,9 +23,9 @@
 .\" (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: src/share/man/man7/ports.7,v 1.52 2005/07/20 22:22:53 jcamou Exp $
+.\" $FreeBSD: src/share/man/man7/ports.7,v 1.54 2006/07/05 20:38:54 pav Exp $
 .\"
-.Dd February 8, 2005
+.Dd July 5, 2006
 .Dt PORTS 7
 .Os
 .Sh NAME
@@ -199,6 +199,8 @@
 .It Cm pretty-print-run-depends-list , pretty-print-build-depends-list
 Print a list of all the compile and run dependencies, and dependencies
 of those dependencies.
+.It Cm missing
+Print a list of missing dependencies to be installed for the port.
 .It Cm clean
 Remove the expanded source code.
 This recurses to dependencies unless
@@ -399,6 +401,12 @@
 Try going to these sites for all files and patches, first.
 .It Va MASTER_SITE_BACKUP
 Try going to these sites for all files and patches, last.
+.It Va RANDOMIZE_MASTER_SITES
+Try the download locations in a random order.
+.It Va MASTER_SORT
+Sort the download locations according to user supplied pattern.
+Example:
+.Dl .dk .sunet.se .se dk.php.net .no .de heanet.dl.sourceforge.net
 .It Va MASTER_SITE_INDEX
 Where to get
 .Pa INDEX
@@ -434,18 +442,6 @@
 If defined, only operate on a port if it requires interaction.
 .It Va BATCH
 If defined, only operate on a port if it can be installed 100% automatically.
-.It Va OPTIONS
-If defined, list of what
-.Va WITH_*
-options this port accepts.
-.Em Note :
-to make
-.Va OPTIONS
-actually work, it is necessary to include
-.Pa bsd.port.pre.mk
-before starting to test the
-.Va WITH_*
-variables.
 .It Va DISABLE_VULNERABILITIES
 If defined, disable check for security vulnerabilities using
 .Xr portaudit 1 Pq Pa ports/security/portaudit

==== //depot/projects/mips2/src/sys/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.36 2006/05/29 19:29:41 maxim Exp $
+# $FreeBSD: src/sys/Makefile,v 1.37 2006/07/04 14:14:16 maxim Exp $
 
 .include <bsd.own.mk>
 
@@ -10,7 +10,7 @@
 .endif
 
 # Directories to include in cscope name file and TAGS.
-CSCOPEDIRS=	coda compat conf contrib crypto ddb dev fs gnu i4b isa \
+CSCOPEDIRS=	coda compat conf contrib crypto ddb dev fs geom gnu i4b isa \
 		isofs kern libkern modules net net80211 netatalk netatm \
 		netgraph netinet netinet6 netipx netkey netnatm netncp \
 		netsmb nfs nfsclient nfs4client rpc pccard pci posix4 sys \

==== //depot/projects/mips2/src/sys/amd64/amd64/pmap.c#3 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.563 2006/07/02 18:22:46 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.564 2006/07/05 07:04:31 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -207,7 +207,7 @@
 
 static void	free_pv_entry(pmap_t pmap, pv_entry_t pv);
 static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try);
-static void	pmap_clear_ptes(vm_page_t m, long bit);
+static void	pmap_clear_write(vm_page_t m);
 
 static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va,
     vm_page_t m, vm_prot_t prot, vm_page_t mpte);
@@ -2969,47 +2969,36 @@
 }
 
 /*
- *	Clear the given bit in each of the given page's ptes.
+ * Clear the write and modified bits in each of the given page's mappings.
  */
 static __inline void
-pmap_clear_ptes(vm_page_t m, long bit)
+pmap_clear_write(vm_page_t m)
 {
 	pv_entry_t pv;
 	pmap_t pmap;
-	pt_entry_t pbits, *pte;
+	pt_entry_t oldpte, *pte;
 
-	if ((m->flags & PG_FICTITIOUS) ||
-	    (bit == PG_RW && (m->flags & PG_WRITEABLE) == 0))
+	if ((m->flags & PG_FICTITIOUS) != 0 ||
+	    (m->flags & PG_WRITEABLE) == 0)
 		return;
-
 	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
-	/*
-	 * Loop over all current mappings setting/clearing as appropos If
-	 * setting RO do we need to clear the VAC?
-	 */
 	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
 		pmap = PV_PMAP(pv);
 		PMAP_LOCK(pmap);
 		pte = pmap_pte(pmap, pv->pv_va);
 retry:
-		pbits = *pte;
-		if (pbits & bit) {
-			if (bit == PG_RW) {
-				if (!atomic_cmpset_long(pte, pbits,
-				    pbits & ~(PG_RW | PG_M)))
-					goto retry;
-				if (pbits & PG_M) {
-					vm_page_dirty(m);
-				}
-			} else {
-				atomic_clear_long(pte, bit);
-			}
+		oldpte = *pte;
+		if (oldpte & PG_RW) {
+			if (!atomic_cmpset_long(pte, oldpte, oldpte &
+			    ~(PG_RW | PG_M)))
+				goto retry;
+			if ((oldpte & PG_M) != 0)
+				vm_page_dirty(m);
 			pmap_invalidate_page(pmap, pv->pv_va);
 		}
 		PMAP_UNLOCK(pmap);
 	}
-	if (bit == PG_RW)
-		vm_page_flag_clear(m, PG_WRITEABLE);
+	vm_page_flag_clear(m, PG_WRITEABLE);
 }
 
 /*
@@ -3022,7 +3011,7 @@
 {
 	if ((prot & VM_PROT_WRITE) == 0) {
 		if (prot & (VM_PROT_READ | VM_PROT_EXECUTE)) {
-			pmap_clear_ptes(m, PG_RW);
+			pmap_clear_write(m);
 		} else {
 			pmap_remove_all(m);
 		}
@@ -3082,7 +3071,23 @@
 void
 pmap_clear_modify(vm_page_t m)
 {
-	pmap_clear_ptes(m, PG_M);
+	pv_entry_t pv;
+	pmap_t pmap;
+	pt_entry_t *pte;
+
+	if ((m->flags & PG_FICTITIOUS) != 0)
+		return;
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+		pmap = PV_PMAP(pv);
+		PMAP_LOCK(pmap);
+		pte = pmap_pte(pmap, pv->pv_va);
+		if (*pte & PG_M) {
+			atomic_clear_long(pte, PG_M);
+			pmap_invalidate_page(pmap, pv->pv_va);
+		}
+		PMAP_UNLOCK(pmap);
+	}
 }
 
 /*
@@ -3093,7 +3098,23 @@
 void
 pmap_clear_reference(vm_page_t m)
 {
-	pmap_clear_ptes(m, PG_A);
+	pv_entry_t pv;
+	pmap_t pmap;
+	pt_entry_t *pte;
+
+	if ((m->flags & PG_FICTITIOUS) != 0)
+		return;
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+		pmap = PV_PMAP(pv);
+		PMAP_LOCK(pmap);
+		pte = pmap_pte(pmap, pv->pv_va);
+		if (*pte & PG_A) {
+			atomic_clear_long(pte, PG_A);
+			pmap_invalidate_page(pmap, pv->pv_va);
+		}
+		PMAP_UNLOCK(pmap);
+	}
 }
 
 /*

==== //depot/projects/mips2/src/sys/amd64/conf/GENERIC#2 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.462 2006/06/26 22:03:20 babkin Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.463 2006/07/05 02:32:55 davidxu Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -28,7 +28,6 @@
 
 #options 	SCHED_ULE		# ULE scheduler
 options 	SCHED_4BSD		# 4BSD scheduler
-#options 	SCHED_CORE		# CORE scheduler
 options 	PREEMPTION		# Enable kernel thread preemption
 options 	INET			# InterNETworking
 options 	INET6			# IPv6 communications protocols

==== //depot/projects/mips2/src/sys/bsm/audit_kevents.h#2 (text) ====

@@ -30,8 +30,8 @@
  *
  * @APPLE_BSD_LICENSE_HEADER_END@
  *
- * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#20 $
- * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.5 2006/02/06 01:12:46 rwatson Exp $
+ * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#23 $
+ * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.6 2006/07/03 14:45:43 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_KEVENTS_H_
@@ -384,7 +384,24 @@
 #define	AUE_ACL_DELETE_FD		403	/* FreeBSD. */
 #define	AUE_ACL_CHECK_FILE		404	/* FreeBSD. */
 #define	AUE_ACL_CHECK_FD		405	/* FreeBSD. */
-#define	AUE_SYSARCH			406	/* FreeBSD. */
+#define	AUE_ACL_GET_LINK		406	/* FreeBSD. */
+#define	AUE_ACL_SET_LINK		407	/* FreeBSD. */
+#define	AUE_ACL_DELETE_LINK		408	/* FreeBSD. */
+#define	AUE_ACL_CHECK_LINK		409	/* FreeBSD. */
+#define	AUE_SYSARCH			410	/* FreeBSD. */
+#define	AUE_EXTATTRCTL			411	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_FILE		412	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_FILE		413	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_FILE		414	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_FILE		415	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_FD		416	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_FD		417	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_FD		418	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_FD		419	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_LINK		420	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_LINK		421	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_LINK		422	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_LINK		423	/* FreeBSD. */
 
 /*
  * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the

==== //depot/projects/mips2/src/sys/bsm/audit_record.h#2 (text) ====

@@ -31,12 +31,14 @@
  * @APPLE_BSD_LICENSE_HEADER_END@
  *
  * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_record.h#13 $
- * $FreeBSD: src/sys/bsm/audit_record.h,v 1.2 2006/06/05 13:00:52 rwatson Exp $
+ * $FreeBSD: src/sys/bsm/audit_record.h,v 1.3 2006/07/03 14:44:13 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_RECORD_H_
 #define _BSM_AUDIT_RECORD_H_
 
+#include <sys/time.h>			/* struct timeval */
+
 /*
  * Token type identifiers.
  */

==== //depot/projects/mips2/src/sys/dev/ata/ata-chipset.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.164 2006/06/28 09:59:09 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.165 2006/07/04 20:36:03 sos Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -142,6 +142,7 @@
 static void ata_promise_queue_hpkt(struct ata_pci_controller *ctlr, u_int32_t hpkt);
 static void ata_promise_next_hpkt(struct ata_pci_controller *ctlr);
 static int ata_serverworks_chipinit(device_t dev);
+static int ata_serverworks_allocate(device_t dev);
 static void ata_serverworks_setmode(device_t dev, int mode);
 static int ata_sii_chipinit(device_t dev);
 static int ata_cmd_allocate(device_t dev);
@@ -1894,6 +1895,8 @@
 
     for (i = ATA_DATA; i < ATA_MAX_RES; i++)
 	ch->r_io[i].res = ctlr->r_res2;
+
+    /* setup ATA registers */
     ch->r_io[ATA_DATA].offset = ch_offset + 0x00;
     ch->r_io[ATA_FEATURE].offset = ch_offset + 0x06;
     ch->r_io[ATA_COUNT].offset = ch_offset + 0x08;
@@ -1906,9 +1909,13 @@
     ch->r_io[ATA_STATUS].offset = ch_offset + 0x1c;
     ch->r_io[ATA_ALTSTAT].offset = ch_offset + 0x28;
     ch->r_io[ATA_CONTROL].offset = ch_offset + 0x29;
+
+    /* setup DMA registers */
     ch->r_io[ATA_SSTATUS].offset = ch_offset + 0x100;
     ch->r_io[ATA_SERROR].offset = ch_offset + 0x104;
     ch->r_io[ATA_SCONTROL].offset = ch_offset + 0x108;
+
+    /* setup SATA registers */
     ch->r_io[ATA_BMCMD_PORT].offset = ch_offset + 0x70;
     ch->r_io[ATA_BMSTAT_PORT].offset = ch_offset + 0x72;
     ch->r_io[ATA_BMDTP_PORT].offset = ch_offset + 0x74;
@@ -3890,11 +3897,14 @@
     struct ata_pci_controller *ctlr = device_get_softc(dev);
     struct ata_chip_id *idx;
     static struct ata_chip_id ids[] =
-    {{ ATA_ROSB4,  0x00, SWKS33,  0x00, ATA_UDMA2, "ROSB4" },
-     { ATA_CSB5,   0x92, SWKS100, 0x00, ATA_UDMA5, "CSB5" },
-     { ATA_CSB5,   0x00, SWKS66,  0x00, ATA_UDMA4, "CSB5" },
-     { ATA_CSB6,   0x00, SWKS100, 0x00, ATA_UDMA5, "CSB6" },
-     { ATA_CSB6_1, 0x00, SWKS66,  0x00, ATA_UDMA4, "CSB6" },
+    {{ ATA_ROSB4,     0x00, SWKS33,  0x00, ATA_UDMA2, "ROSB4" },
+     { ATA_CSB5,      0x92, SWKS100, 0x00, ATA_UDMA5, "CSB5" },
+     { ATA_CSB5,      0x00, SWKS66,  0x00, ATA_UDMA4, "CSB5" },
+     { ATA_CSB6,      0x00, SWKS100, 0x00, ATA_UDMA5, "CSB6" },
+     { ATA_CSB6_1,    0x00, SWKS66,  0x00, ATA_UDMA4, "CSB6" },
+     { ATA_HT1000,    0x00, SWKS100, 0x00, ATA_UDMA5, "HT1000" },
+     { ATA_HT1000_S1, 0x00, SWKS100, 0x00, ATA_SA150, "HT1000 SATA" },
+     { ATA_HT1000_S2, 0x00, SWKSMIO, 0x00, ATA_SA150, "HT1000 SATA mmio" },
      { 0, 0, 0, 0, 0, 0}};
     char buffer[64];
 
@@ -3917,7 +3927,19 @@
     if (ata_setup_interrupt(dev))
 	return ENXIO;
 
-    if (ctlr->chip->cfg1 == SWKS33) {
+    if (ctlr->chip->cfg1 == SWKSMIO) {
+	ctlr->r_type2 = SYS_RES_MEMORY;
+	ctlr->r_rid2 = PCIR_BAR(5);
+	if (!(ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
+						    &ctlr->r_rid2, RF_ACTIVE)))
+	    return ENXIO;
+
+	ctlr->channels = 4;
+	ctlr->allocate = ata_serverworks_allocate;
+	ctlr->setmode = ata_sata_setmode;
+	return 0;
+    }
+    else if (ctlr->chip->cfg1 == SWKS33) {
 	device_t *children;
 	int nchildren, i;
 
@@ -3943,6 +3965,46 @@
     return 0;
 }
 
+static int
+ata_serverworks_allocate(device_t dev)
+{
+    struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(dev));
+    struct ata_channel *ch = device_get_softc(dev);
+    int ch_offset;
+    int i;
+
+    ch_offset = ch->unit * 0x100;
+
+    for (i = ATA_DATA; i < ATA_MAX_RES; i++)
+	ch->r_io[i].res = ctlr->r_res2;
+
+    /* setup ATA registers */
+    ch->r_io[ATA_DATA].offset = ch_offset + 0x00;
+    ch->r_io[ATA_FEATURE].offset = ch_offset + 0x04;
+    ch->r_io[ATA_COUNT].offset = ch_offset + 0x08;
+    ch->r_io[ATA_SECTOR].offset = ch_offset + 0x0c;
+    ch->r_io[ATA_CYL_LSB].offset = ch_offset + 0x10;
+    ch->r_io[ATA_CYL_MSB].offset = ch_offset + 0x14;
+    ch->r_io[ATA_DRIVE].offset = ch_offset + 0x18;
+    ch->r_io[ATA_COMMAND].offset = ch_offset + 0x1c;
+    ch->r_io[ATA_CONTROL].offset = ch_offset + 0x20;
+    ata_default_registers(dev);
+
+    /* setup DMA registers */
+    ch->r_io[ATA_BMCMD_PORT].offset = ch_offset + 0x30;
+    ch->r_io[ATA_BMSTAT_PORT].offset = ch_offset + 0x32;
+    ch->r_io[ATA_BMDTP_PORT].offset = ch_offset + 0x34;
+
+    /* setup SATA registers */
+    ch->r_io[ATA_SSTATUS].offset = ch_offset + 0x40;
+    ch->r_io[ATA_SERROR].offset = ch_offset + 0x44;
+    ch->r_io[ATA_SCONTROL].offset = ch_offset + 0x48;
+
+    ch->flags |= ATA_NO_SLAVE;
+    ata_pci_hw(dev);
+    return 0;
+}
+
 static void
 ata_serverworks_setmode(device_t dev, int mode)
 {
@@ -4200,6 +4262,7 @@
     ch->r_io[ATA_CONTROL].offset = 0x8a + (unit01 << 6) + (unit10 << 8);
     ch->r_io[ATA_IDX_ADDR].res = ctlr->r_res2;
     ata_default_registers(dev);
+
     ch->r_io[ATA_BMCMD_PORT].res = ctlr->r_res2;
     ch->r_io[ATA_BMCMD_PORT].offset = 0x00 + (unit01 << 3) + (unit10 << 8);
     ch->r_io[ATA_BMSTAT_PORT].res = ctlr->r_res2;

==== //depot/projects/mips2/src/sys/dev/ata/ata-lowlevel.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.76 2006/01/18 09:14:55 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.77 2006/07/04 20:36:03 sos Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -719,7 +719,7 @@
 	    DELAY(20);
 	}
 	if (timeout <= 0) {
-	    device_printf(request->dev,"timeout waiting for ATAPI ready\n");
+	    device_printf(request->dev, "timeout waiting for ATAPI ready\n");
 	    request->result = EIO;
 	    return -1;
 	}

==== //depot/projects/mips2/src/sys/dev/ata/ata-pci.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * (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: src/sys/dev/ata/ata-pci.h,v 1.64 2006/03/13 14:01:37 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.65 2006/07/04 20:36:03 sos Exp $
  */
 
 /* structure holding chipset config info */
@@ -249,6 +249,9 @@
 #define ATA_CSB5                0x02121166
 #define ATA_CSB6                0x02131166
 #define ATA_CSB6_1              0x02171166
+#define ATA_HT1000 		0x02141166
+#define ATA_HT1000_S1 		0x024b1166
+#define ATA_HT1000_S2 		0x024a1166
 
 #define ATA_SILICON_IMAGE_ID    0x1095
 #define ATA_SII3114             0x31141095
@@ -362,6 +365,7 @@
 #define SWKS33          0
 #define SWKS66          1
 #define SWKS100         2
+#define SWKSMIO         3
 
 #define SIIMEMIO        1
 #define SIIINTR         0x01

==== //depot/projects/mips2/src/sys/dev/atkbdc/atkbdc_isa.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbdc_isa.c,v 1.35 2006/06/12 14:46:44 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbdc_isa.c,v 1.36 2006/07/03 23:40:58 jkim Exp $");
 
 #include "opt_kbd.h"
 
@@ -112,15 +112,21 @@
 	 * The AT keyboard controller uses two ports (a command/data port
 	 * 0x60 and a status port 0x64), which may be given to us in 
 	 * one resource (0x60 through 0x64) or as two separate resources
-	 * (0x60 and 0x64). Furthermore, /boot/device.hints may contain
-	 * just one port, 0x60. We shall adjust resource settings 
-	 * so that these two ports are available as two separate resources.
+	 * (0x60 and 0x64). Some brain-damaged ACPI BIOS has reversed
+	 * command/data port and status port. Furthermore, /boot/device.hints
+	 * may contain just one port, 0x60. We shall adjust resource settings
+	 * so that these two ports are available as two separate resources
+	 * in correct order.
 	 */
 	device_quiet(dev);
 	rid = 0;
 	if (bus_get_resource(dev, SYS_RES_IOPORT, rid, &start, &count) != 0)
 		return ENXIO;
-	if (count > 1)	/* adjust the count */
+	if (start == IO_KBD + KBD_STATUS_PORT) {
+		start = IO_KBD;
+		count++;
+	}
+	if (count > 1)	/* adjust the count and/or start port */
 		bus_set_resource(dev, SYS_RES_IOPORT, rid, start, 1);
 	port0 = bus_alloc_resource_any(dev, SYS_RES_IOPORT, &rid, RF_ACTIVE);
 	if (port0 == NULL)

==== //depot/projects/mips2/src/sys/dev/isp/isp.c#2 (text+ko) ====

@@ -34,7 +34,7 @@
  */
 #ifdef	__FreeBSD__
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.119 2006/04/21 18:46:35 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.121 2006/07/03 20:56:48 mjacob Exp $");
 #endif
 
 /*
@@ -100,7 +100,7 @@
 static const char swrej[] =
     "Fabric Nameserver rejected %s (Reason=0x%x Expl=0x%x) for Port ID 0x%x";
 static const char finmsg[] =
-    "(%d.%d.%d): FIN dl%d resid %d STS 0x%x SKEY %c XS_ERR=0x%x";
+    "%d.%d.%d: FIN dl%d resid %d STS 0x%x SKEY %c XS_ERR=0x%x";
 static const char sc0[] =
     "%s CHAN %d FTHRSH %d IID %d RESETD %d RETRYC %d RETRYD %d ASD 0x%x";
 static const char sc1[] =
@@ -129,7 +129,7 @@
 static int isp_getpdb(ispsoftc_t *, int, isp_pdb_t *);
 static uint64_t isp_get_portname(ispsoftc_t *, int, int);
 static int isp_fclink_test(ispsoftc_t *, int);
-static char *isp2100_fw_statename(int);
+static const char *isp2100_fw_statename(int);
 static int isp_pdb_sync(ispsoftc_t *);
 static int isp_scan_loop(ispsoftc_t *);
 static int isp_fabric_mbox_cmd(ispsoftc_t *, mbreg_t *);
@@ -639,18 +639,20 @@
 		dodnld = 0;
 	}
 
-	if (IS_23XX(isp))
+	if (IS_23XX(isp)) {
 		code_org = ISP_CODE_ORG_2300;
-	else
+	} else {
 		code_org = ISP_CODE_ORG;
+	}
+	if (dodnld) {
+		uint16_t *ptr = isp->isp_mdvec->dv_ispfw;
 
-	if (dodnld) {
-		isp->isp_mbxworkp = (void *) &isp->isp_mdvec->dv_ispfw[1];
-		isp->isp_mbxwrk0 = isp->isp_mdvec->dv_ispfw[3] - 1;
+		isp->isp_mbxworkp = &ptr[1];
+		isp->isp_mbxwrk0 = ptr[3] - 1;
 		isp->isp_mbxwrk1 = code_org + 1;
 		mbs.param[0] = MBOX_WRITE_RAM_WORD;
 		mbs.param[1] = code_org;
-		mbs.param[2] = isp->isp_mdvec->dv_ispfw[0];
+		mbs.param[2] = ptr[0];
 		isp_mboxcmd(isp, &mbs, MBLOGNONE);
 		if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
 			isp_prt(isp, ISP_LOGERR,
@@ -659,6 +661,7 @@
 			dodnld = 0;
 			goto again;
 		}
+
 		/*
 		 * Verify that it downloaded correctly.
 		 */
@@ -669,6 +672,49 @@
 			isp_prt(isp, ISP_LOGERR, "Ram Checksum Failure");
 			return;
 		}
+
+		/*
+		 * If we're a 2322 or 2422, the firmware actually comes
+		 * in three chunks. We loaded the first at the code_org
+		 * address. The other two chunks, which follow right
+		 * after each other in memory here, get loaded at addresses
+		 * specfied at offset 0x9..0xB.
+		 */
+		if (IS_2322(isp)) {
+
+			ptr = &ptr[ptr[3]];
+			isp->isp_mbxworkp = &ptr[1];
+			isp->isp_mbxwrk0 = ptr[3] - 1;
+			isp->isp_mbxwrk1 = ptr[5] + 1;
+			isp->isp_mbxwrk8 = ptr[4];
+			mbs.param[0] = MBOX_WRITE_RAM_WORD_EXTENDED;
+			mbs.param[8] = ptr[4];
+			mbs.param[1] = ptr[5];
+			mbs.param[2] = ptr[0];
+			isp_mboxcmd(isp, &mbs, MBLOGNONE);
+			if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
+				isp_prt(isp, ISP_LOGERR,
+				    "Receive Sequencer F/W Load Failed");
+				return;
+			}
+
+			ptr = &ptr[ptr[3]];
+			isp->isp_mbxworkp = &ptr[1];
+			isp->isp_mbxwrk0 = ptr[3] - 1;
+			isp->isp_mbxwrk1 = ptr[5] + 1;
+			isp->isp_mbxwrk8 = ptr[4];
+			mbs.param[0] = MBOX_WRITE_RAM_WORD_EXTENDED;
+			mbs.param[8] = ptr[4];
+			mbs.param[1] = ptr[5];
+			mbs.param[2] = ptr[0];
+			isp_mboxcmd(isp, &mbs, MBLOGNONE);
+			if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
+				isp_prt(isp, ISP_LOGERR,
+				    "Transmit Sequencer F/W Load Failed");
+				return;
+			}
+		}
+
 		isp->isp_loaded_fw = 1;
 	} else {
 		isp->isp_loaded_fw = 0;
@@ -687,9 +733,9 @@
 	mbs.param[1] = code_org;
 	if (IS_2322(isp) || IS_24XX(isp)) {
 		if (isp->isp_loaded_fw) {
+			mbs.param[2] = 0;
+		} else {
 			mbs.param[2] = 1;
-		} else {
-			mbs.param[2] = 0;
 		}
 		mbs.obits |= 2;
 	}
@@ -1032,11 +1078,9 @@
 	if (IS_ULTRA2(isp) || IS_1240(isp))
 		mbs.param[1] |= FW_FEATURE_RIO_16BIT;
 #else
-#ifndef	ISP_NO_FASTPOST
 	if (IS_ULTRA2(isp) || IS_1240(isp))
 		mbs.param[1] |= FW_FEATURE_FAST_POST;
 #endif
-#endif
 	if (mbs.param[1] != 0) {
 		uint16_t sfeat = mbs.param[1];
 		isp_mboxcmd(isp, &mbs, MBLOGALL);
@@ -1273,7 +1317,7 @@
 	icbp->icb_retry_delay = fcp->isp_retry_delay;
 	icbp->icb_retry_count = fcp->isp_retry_count;
 	icbp->icb_hardaddr = loopid;
-	if (icbp->icb_hardaddr >= 125) {
+	if (icbp->icb_hardaddr > 125) {
 		/*
 		 * We end up with these Loop IDs for F-Port topologies
 		 */
@@ -1284,6 +1328,15 @@
 		}
 		icbp->icb_hardaddr = 0;
 	}
+
+	/*
+	 * Our life seems so much better with 2200s and later with
+	 * the latest f/w if we set Hard Address.
+	 */
+	if (ISP_FW_NEWER_THAN(isp, 2, 2, 5)) {
+		icbp->icb_fwoptions |= ICBOPT_HARD_ADDRESS;
+	}
+
 	/*
 	 * Right now we just set extended options to prefer point-to-point
 	 * over loop based upon some soft config options.
@@ -1309,38 +1362,26 @@
 			icbp->icb_xfwoptions |= ICBXOPT_LOOP_2_PTP;
 			break;
 		}
-		if (IS_23XX(isp)) {
+		if (IS_2200(isp)) {
+			if (ISP_FW_NEWER_THAN(isp, 1, 17, 0)) {
+				icbp->icb_xfwoptions |= ICBXOPT_RIO_16BIT;
+				icbp->icb_racctimer = 4;
+				icbp->icb_idelaytimer = 8;
+			}
+			icbp->icb_fwoptions |= ICBOPT_FAST_POST;
+		} else {
 			/*
 			 * QLogic recommends that FAST Posting be turned
 			 * off for 23XX cards and instead allow the HBA
 			 * to write response queue entries and interrupt
 			 * after a delay (ZIO).
-			 *
-			 * If we set ZIO, it will disable fast posting,
-			 * so we don't need to clear it in fwoptions.
-			 *
-			 * Depending on the role we're selecting, we
-			 * chose fast posting or not as it still is
-			 * a win for target mode.
 			 */
-#ifndef	ISP_NO_ZIO
-			if (isp->isp_role == ISP_ROLE_TARGET) {
-				icbp->icb_fwoptions |= ICBOPT_FAST_POST;
-			} else {
+			icbp->icb_fwoptions &= ~ICBOPT_FAST_POST;
+			if ((fcp->isp_xfwoptions & ICBXOPT_TIMER_MASK) ==
+			    ICBXOPT_ZIO) {
 				icbp->icb_xfwoptions |= ICBXOPT_ZIO;
+				icbp->icb_idelaytimer = 10;
 			}
-#else
-			icbp->icb_fwoptions |= ICBOPT_FAST_POST;
-#endif
-#if	0
-			/*
-			 * Values, in 100us increments. The default
-			 * is 2 (200us) if a value 0 (default) is
-			 * selected.
-			 */
-			icbp->icb_idelaytimer = 2;
-#endif
-

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607052251.k65MpXN2079129>