PERFORCE change 118856 for review

Kip Macy kmacy at FreeBSD.org
Fri Apr 27 04:27:22 UTC 2007


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

Change 118856 by kmacy at kmacy_vt-x:opentoe_init on 2007/04/27 04:26:27

	IFC

Affected files ...

.. //depot/projects/opentoe/ObsoleteFiles.inc#6 integrate
.. //depot/projects/opentoe/lib/libexpat/expat_config.h#2 integrate
.. //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 integrate
.. //depot/projects/opentoe/share/examples/Makefile#2 integrate
.. //depot/projects/opentoe/share/examples/netgraph/bluetooth/rc.bluetooth#2 delete
.. //depot/projects/opentoe/share/man/man4/led.4#2 integrate
.. //depot/projects/opentoe/share/man/man4/vlan.4#2 integrate
.. //depot/projects/opentoe/share/misc/committers-ports.dot#5 integrate
.. //depot/projects/opentoe/sys/amd64/amd64/local_apic.c#3 integrate
.. //depot/projects/opentoe/sys/amd64/amd64/pmap.c#4 integrate
.. //depot/projects/opentoe/sys/amd64/amd64/vm_machdep.c#2 integrate
.. //depot/projects/opentoe/sys/conf/files#5 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#3 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#4 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate
.. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate
.. //depot/projects/opentoe/sys/dev/acpi_support/acpi_ibm.c#3 integrate
.. //depot/projects/opentoe/sys/dev/acpica/acpi.c#4 integrate
.. //depot/projects/opentoe/sys/dev/ata/ata-disk.c#2 integrate
.. //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#7 integrate
.. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#19 integrate
.. //depot/projects/opentoe/sys/dev/firewire/firewire.h#2 integrate
.. //depot/projects/opentoe/sys/dev/firewire/fwdev.c#2 integrate
.. //depot/projects/opentoe/sys/dev/msk/if_msk.c#3 integrate
.. //depot/projects/opentoe/sys/dev/msk/if_mskreg.h#2 integrate
.. //depot/projects/opentoe/sys/dev/pci/pci.c#4 integrate
.. //depot/projects/opentoe/sys/dev/pci/pcireg.h#3 integrate
.. //depot/projects/opentoe/sys/dev/usb/if_ural.c#4 integrate
.. //depot/projects/opentoe/sys/i386/i386/local_apic.c#3 integrate
.. //depot/projects/opentoe/sys/i386/i386/pmap.c#5 integrate
.. //depot/projects/opentoe/sys/i386/i386/vm_machdep.c#3 integrate
.. //depot/projects/opentoe/sys/kern/kern_descrip.c#3 integrate
.. //depot/projects/opentoe/sys/kern/vfs_bio.c#3 integrate
.. //depot/projects/opentoe/sys/kern/vfs_mount.c#5 integrate
.. //depot/projects/opentoe/sys/modules/zfs/Makefile#2 integrate
.. //depot/projects/opentoe/sys/netgraph/ng_l2tp.c#3 integrate
.. //depot/projects/opentoe/sys/nfsclient/nfs_bio.c#2 integrate
.. //depot/projects/opentoe/sys/nfsclient/nfs_vnops.c#2 integrate
.. //depot/projects/opentoe/sys/sys/proc.h#4 integrate
.. //depot/projects/opentoe/sys/vm/vm_map.c#3 integrate
.. //depot/projects/opentoe/usr.bin/calendar/calendars/calendar.freebsd#4 integrate
.. //depot/projects/opentoe/usr.sbin/pciconf/cap.c#2 integrate

Differences ...

==== //depot/projects/opentoe/ObsoleteFiles.inc#6 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.81 2007/04/24 16:58:54 emax Exp $
 #
 # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
 # directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20070423: rc.bluetooth (examples) removed
+OLD_FILES+=usr/share/examples/netgraph/bluetooth/rc.bluetooth 
 # 20070421: worm.4 removed
 OLD_FILES+=usr/share/man/man4/worm.4.gz
 # 20070417: trunk(4) renamed to lagg(4)

==== //depot/projects/opentoe/lib/libexpat/expat_config.h#2 (text+ko) ====

@@ -1,7 +1,13 @@
-/* $FreeBSD: src/lib/libexpat/expat_config.h,v 1.1 2002/10/02 07:35:35 phk Exp $ */
+/* $FreeBSD: src/lib/libexpat/expat_config.h,v 1.2 2007/04/24 06:29:27 phk Exp $ */
+
+#include <machine/endian.h>
 
 /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+#if BYTE_ORDER == LITTLE_ENDIAN
 #define BYTEORDER 1234
+#else
+#define BYTEORDER 4321
+#endif
 
 /* Define to 1 if you have the `bcopy' function. */
 #define HAVE_BCOPY 1
@@ -67,7 +73,11 @@
 #define STDC_HEADERS 1
 
 /* whether byteorder is bigendian */
-/* #undef WORDS_BIGENDIAN */
+#if BYTE_ORDER == BIG_ENDIAN
+#define WORDS_BIGENDIAN
+#else
+#undef WORDS_BIGENDIAN 
+#endif
 
 /* Define to specify how much context to retain around the current parse
    point. */

==== //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 (text+ko) ====

@@ -30,7 +30,7 @@
 
   <corpauthor>The &os; Project</corpauthor>
 
-  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1022 2007/04/23 22:48:13 gshapiro Exp $</pubdate>
+  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1023 2007/04/24 08:58:09 yar Exp $</pubdate>
 
   <copyright>
     <year>2000</year>
@@ -1356,7 +1356,7 @@
 
     <para>The &man.arp.8; utility now allows the <option>-i</option>
       option together with the <option>-d</option> and <option>-a</option> options
-      to allow all entries for a given interface to be removed.</para>
+      to allow all entries for a given interface to be removed. &merged;</para>
 
     <para>The OpenBSM userland tools, including &man.audit.8;,
       &man.auditd.8;,
@@ -1490,16 +1490,17 @@
     <para>The &man.ifconfig.8; utility now supports
       a <option>-k</option> flag to allow printing
       potentially sensitive keying material to standard output.
-      This sensitive information will not be printed by default.</para>
+      This sensitive information will not be printed by default.
+      &merged;</para>
 
     <para>The &man.ifconfig.8; utility now supports a <option>-tunnel</option>
       parameter, which is just an alias for <option>deletetunnel</option>,
-      yet is more convenient and easier to type.</para>
+      yet is more convenient and easier to type. &merged;</para>
 
     <para>The <option>-vlandev</option> parameter to &man.ifconfig.8;
       no longer requires a network interface as its argument.  The
       argument still is supported for backward compatibility, but
-      is now deprecated and its use is discouraged.</para>
+      is now deprecated and its use is discouraged. &merged;</para>
 
     <para>The &man.iostat.8; utility now supports
       a <option>-x</option> flag (inspired by Solaris) to print

==== //depot/projects/opentoe/share/examples/Makefile#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/examples/Makefile,v 1.49 2006/03/17 18:54:33 ru Exp $
+# $FreeBSD: src/share/examples/Makefile,v 1.50 2007/04/24 16:58:54 emax Exp $
 #
 # Doing a make install builds /usr/share/examples
 
@@ -141,7 +141,6 @@
 	mdoc/example.3 \
 	mdoc/example.4 \
 	mdoc/example.9 \
-	netgraph/bluetooth/rc.bluetooth \
 	netgraph/ether.bridge \
 	netgraph/frame_relay \
 	netgraph/ngctl \

==== //depot/projects/opentoe/share/man/man4/led.4#2 (text+ko) ====

@@ -22,9 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/led.4,v 1.12 2005/07/21 08:55:46 phk Exp $
+.\" $FreeBSD: src/share/man/man4/led.4,v 1.14 2007/04/24 07:10:10 phk Exp $
 .\"
-.Dd May 29, 2005
+.Dd April 24, 2007
 .Dt LED 4
 .Os
 .Sh NAME
@@ -35,6 +35,8 @@
 .Pp
 .Fd "typedef void led_t(void *priv, int onoff);"
 .Ft struct cdev *
+.Fn led_create_state "led_t *func" "void *priv" "char const *name" "int state"
+.Ft struct cdev *
 .Fn led_create "led_t *func" "void *priv" "char const *name"
 .Ft void
 .Fn led_destroy "struct cdev *"

==== //depot/projects/opentoe/share/man/man4/vlan.4#2 (text+ko) ====

@@ -23,9 +23,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/vlan.4,v 1.33 2006/12/13 02:42:01 yongari Exp $
+.\" $FreeBSD: src/share/man/man4/vlan.4,v 1.41 2007/04/24 11:48:49 yar Exp $
 .\"
-.Dd December 13, 2006
+.Dd April 24, 2007
 .Dt VLAN 4
 .Os
 .Sh NAME
@@ -108,8 +108,8 @@
 Such interfaces are automatically recognized by their capabilities.
 Depending on the level of sophistication found in a physical
 interface, it may do full VLAN processing or just be able to
-receive and transmit frames exceeding the maximum Ethernet frame size
-by the length of a 802.1Q header.
+receive and transmit long frames (up to 1522 bytes including an Ethernet
+header and FCS).
 The capabilities may be user-controlled by the respective parameters to
 .Xr ifconfig 8 ,
 .Cm vlanhwtag
@@ -138,8 +138,8 @@
 VLANs using software emulation in the
 .Nm
 driver.
-However, most of them lack the capability
-of transmitting and receiving oversized frames.
+However, some of them lack the capability
+of transmitting and receiving long frames.
 Assigning such an interface as the parent to
 .Nm
 will result in a reduced MTU on the corresponding
@@ -151,79 +151,36 @@
 .Xr icmp 4
 filtering that breaks the Path MTU Discovery mechanism.
 .Pp
-The interfaces that support oversized frames are as follows:
-.Bl -tag -width ".Xr fxp 4 " -offset indent
-.It Xr bfe 4
-supports long frames for
+The following interfaces support long frames for
 .Nm
-natively.
-.It Xr dc 4
-supports long frames for
-.Nm
-natively.
-.It Xr de 4
-requires defining
-.Dv BIG_PACKET
-in the
-.Pa /usr/src/sys/pci/if_de.c
-source file and rebuilding the kernel
-or module.
-The hack works only for the 21041, 21140, and 21140A chips.
-.It Xr fxp 4
-supports long frames for
-.Nm
-natively.
-.It Xr gem 4
-supports long frames for
-.Nm
-natively.
-.It Xr hme 4
-supports long frames for
-.Nm
-natively.
-.It Xr le 4
-supports long frames for
-.Nm
-natively.
-.It Xr rl 4
-supports long frames for
-.Nm
-natively.
-.It Xr sis 4
-supports long frames for
-.Nm
-natively.
-.It Xr sk 4
-supports long frames for
-.Nm
-natively.
-.It Xr ste 4
-supports long frames for
-.Nm
-natively.
-.It Xr tl 4
-has support for long frames.
-.It Xr tx 4
-supports long frames for
-.Nm
-natively.
-.It Xr xl 4
-supports long frames only if the card is built on a newer chip
-(Cyclone and above).
-.El
+natively:
+.Xr bfe 4 ,
+.Xr dc 4 ,
+.Xr fxp 4 ,
+.Xr gem 4 ,
+.Xr hme 4 ,
+.Xr le 4 ,
+.Xr rl 4 ,
+.Xr sis 4 ,
+.Xr sk 4 ,
+.Xr ste 4 ,
+.Xr tx 4 ,
+.Xr vr 4 ,
+and
+.Xr xl 4 .
 .Pp
 The
 .Nm
-driver automatically recognizes devices that natively support oversized frames
+driver automatically recognizes devices that natively support long frames
 for
 .Nm
 use and calculates the appropriate frame MTU based on the
 capabilities of the parent interface.
-The other interfaces listed above can handle oversized frames,
+Some other interfaces not listed above may handle long frames,
 but they do not advertise this ability of theirs.
 The MTU setting on
 .Nm
-can be corrected manually if used in conjunction with such parent interface.
+can be corrected manually if used in conjunction with such a parent interface.
 .Sh SEE ALSO
 .Xr kqueue 2 ,
 .Xr miibus 4 ,

==== //depot/projects/opentoe/share/misc/committers-ports.dot#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/misc/committers-ports.dot,v 1.51 2007/04/22 02:36:08 tmclaugh Exp $
+# $FreeBSD: src/share/misc/committers-ports.dot,v 1.53 2007/04/25 11:59:09 nemoliu Exp $
 
 # This file is meant to list all FreeBSD ports committers and describe the
 # mentor-mentee relationships between them.
@@ -96,6 +96,7 @@
 miwi [label="Martin Wilke\nmiwi at FreeBSD.org\n2006/06/04"]
 mm [label="Martin Matuska\nmm at FreeBSD.org\n2007/04/04"]
 mnag [label="Marcus Alves Grando\nmnag at FreeBSD.org\n2005/09/15"]
+nemoliu [label="Tong Liu\nnemoliu at FreeBSD.org\n2007/04/25"]
 netchild [label="Alexander Leidinger\nnetchild at FreeBSD.org\n2002/03/19"]
 nobutaka [label="Nobutaka Mantani\nnobutaka at FreeBSD.org\n2001/11/02"]
 nork [label="Norikatsu Shigemura\nnork at FreeBSD.org\n2002/04/01"]
@@ -114,6 +115,7 @@
 stas [label="Stanislav Sedov\nstas at FreeBSD.org\n2006/09/18"]
 stefan [label="Stefan Walter\nstefan at FreeBSD.org\n2006/05/07"]
 tdb [label="Tim Bishop\ntdb at FreeBSD.org\n2005/11/30"]
+trasz [label="Edward Tomasz Napierala\ntrasz at FreeBSD.org\n2007/04/12"]
 trhodes [label="Tom Rhodes\ntrhodes at FreeBSD.org\n2004/07/06"]
 thierry [label="Thierry Thomas\nthierry at FreeBSD.org\n2004/03/15"]
 tmclaugh [label="Tom McLaughlin\ntmclaugh at FreeBSD.org\n2005/09/15"]
@@ -143,6 +145,7 @@
 
 clsung -> lwhsu
 
+delphij -> nemoliu
 delphij -> rafan
 
 demon -> mat
@@ -210,6 +213,7 @@
 
 miwi -> farrokhi
 miwi -> nox
+miwi -> trasz
 
 mnag -> jmelo
 

==== //depot/projects/opentoe/sys/amd64/amd64/local_apic.c#3 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.37 2007/03/20 21:53:30 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.38 2007/04/25 19:58:41 ariff Exp $");
 
 #include "opt_hwpmc_hooks.h"
 
@@ -326,6 +326,29 @@
 
 	/* XXX: Error and thermal LVTs */
 
+	if (strcmp(cpu_vendor, "AuthenticAMD") == 0) {
+		/*
+		 * Detect the presence of C1E capability mostly on latest
+		 * dual-cores (or future) k8 family.  This feature renders
+		 * the local APIC timer dead, so we disable it by reading
+		 * the Interrupt Pending Message register and clearing both
+		 * C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27).
+		 * 
+		 * Reference:
+		 *   "BIOS and Kernel Developer's Guide for AMD NPT
+		 *    Family 0Fh Processors"
+		 *   #32559 revision 3.00
+		 */
+		if ((cpu_id & 0x00000f00) == 0x00000f00 &&
+		    (cpu_id & 0x0fff0000) >=  0x00040000) {
+			uint64_t msr;
+
+			msr = rdmsr(0xc0010055);
+			if (msr & 0x18000000)
+				wrmsr(0xc0010055, msr & ~0x18000000ULL);
+		}
+	}
+
 	intr_restore(eflags);
 }
 

==== //depot/projects/opentoe/sys/amd64/amd64/pmap.c#4 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.583 2007/04/21 14:17:29 ups Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.584 2007/04/25 18:10:43 ups Exp $");
 
 /*
  *	Manages physical address maps.

==== //depot/projects/opentoe/sys/amd64/amd64/vm_machdep.c#2 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
@@ -457,6 +457,10 @@
 static void
 cpu_reset_real()
 {
+	struct region_descriptor null_idt;
+	int b;
+
+	disable_intr();
 
 	/*
 	 * Attempt to do a CPU reset via the keyboard controller,
@@ -465,14 +469,44 @@
 	 */
 	outb(IO_KBD + 4, 0xFE);
 	DELAY(500000);	/* wait 0.5 sec to see if that did it */
-	printf("Keyboard reset did not work, attempting CPU shutdown\n");
+
+	/*
+	 * Attempt to force a reset via the Reset Control register at
+	 * I/O port 0xcf9.  Bit 2 forces a system reset when it is
+	 * written as 1.  Bit 1 selects the type of reset to attempt:
+	 * 0 selects a "soft" reset, and 1 selects a "hard" reset.  We
+	 * try to do a "soft" reset first, and then a "hard" reset.
+	 */
+	outb(0xcf9, 0x2);
+	outb(0xcf9, 0x6);
+	DELAY(500000);  /* wait 0.5 sec to see if that did it */
+
+	/*
+	 * Attempt to force a reset via the Fast A20 and Init register
+	 * at I/O port 0x92.  Bit 1 serves as an alternate A20 gate.
+	 * Bit 0 asserts INIT# when set to 1.  We are careful to only
+	 * preserve bit 1 while setting bit 0.  We also must clear bit
+	 * 0 before setting it if it isn't already clear.
+	 */
+	b = inb(0x92);
+	if (b != 0xff) {
+		if ((b & 0x1) != 0)
+			outb(0x92, b & 0xfe);
+		outb(0x92, b | 0x1);
+		DELAY(500000);  /* wait 0.5 sec to see if that did it */
+	}
+
+	printf("No known reset method worked, attempting CPU shutdown\n");
 	DELAY(1000000);	/* wait 1 sec for printf to complete */
 
-	/* Force a shutdown by unmapping entire address space. */
-	bzero((caddr_t)PML4map, PAGE_SIZE);
+	/* Wipe the IDT. */
+	null_idt.rd_limit = 0;
+	null_idt.rd_base = 0;
+	lidt(&null_idt);
 
 	/* "good night, sweet prince .... <THUNK!>" */
-	invltlb();
+	breakpoint();
+
 	/* NOTREACHED */
 	while(1);
 }

==== //depot/projects/opentoe/sys/conf/files#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1197 2007/04/21 22:08:47 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1198 2007/04/25 15:30:17 mav Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1550,8 +1550,8 @@
 net/if_mib.c			standard
 net/if_ppp.c			optional ppp
 net/if_sl.c			optional sl
-net/if_spppfr.c			optional i4bisppp | sppp
-net/if_spppsubr.c		optional i4bisppp | sppp
+net/if_spppfr.c			optional i4bisppp | sppp | netgraph_sppp
+net/if_spppsubr.c		optional i4bisppp | sppp | netgraph_sppp
 net/if_stf.c			optional stf
 net/if_tun.c			optional tun
 net/if_tap.c			optional tap
@@ -1565,9 +1565,10 @@
 net/raw_usrreq.c		standard
 net/route.c			standard
 net/rtsock.c			standard
-net/slcompress.c		optional netgraph_vjc | ppp | sl | sppp
+net/slcompress.c		optional netgraph_vjc | ppp | sl | sppp | \
+					 netgraph_sppp
 net/zlib.c			optional crypto | geom_uzip | ipsec | \
-					 ppp_deflate
+					 ppp_deflate | netgraph_deflate
 net80211/ieee80211.c		optional wlan
 net80211/ieee80211_acl.c	optional wlan_acl
 net80211/ieee80211_amrr.c	optional wlan_amrr
@@ -1800,11 +1801,11 @@
 netinet/tcp_timer.c		optional inet
 netinet/tcp_usrreq.c		optional inet
 netinet/udp_usrreq.c		optional inet
-netinet/libalias/alias.c	optional libalias
-netinet/libalias/alias_db.c	optional libalias
-netinet/libalias/alias_mod.c	optional libalias
-netinet/libalias/alias_proxy.c	optional libalias
-netinet/libalias/alias_util.c	optional libalias
+netinet/libalias/alias.c	optional libalias | netgraph_nat
+netinet/libalias/alias_db.c	optional libalias | netgraph_nat
+netinet/libalias/alias_mod.c	optional libalias | netgraph_nat
+netinet/libalias/alias_proxy.c	optional libalias | netgraph_nat
+netinet/libalias/alias_util.c	optional libalias | netgraph_nat
 netinet6/ah_aesxcbcmac.c	optional ipsec
 netinet6/ah_core.c		optional ipsec
 netinet6/ah_input.c		optional ipsec

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 (text+ko) ====

@@ -203,7 +203,11 @@
 	{ "pick_last",			KSTAT_DATA_UINT64 },
 };
 
+#ifdef FREEBSD_NAMECACHE
+static int doingcache = 0;
+#else
 static int doingcache = 1;
+#endif
 TUNABLE_INT("vfs.zfs.dnlc.enable", &doingcache);
 SYSCTL_INT(_vfs_zfs_dnlc, OID_AUTO, enable, CTLFLAG_RDTUN, &doingcache, 0,
     "Enable/disable name cache");

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#3 (text+ko) ====

@@ -1262,7 +1262,6 @@
 		vdev_config_dirty(vd->vdev_top);
 	}
 
-	bzero(&smlock, sizeof(smlock));
 	mutex_init(&smlock, NULL, MUTEX_DEFAULT, NULL);
 
 	space_map_create(&smsync, sm->sm_start, sm->sm_size, sm->sm_shift,

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 (text+ko) ====

@@ -41,6 +41,7 @@
 #include <sys/unistd.h>
 #include <sys/sdt.h>
 #include <sys/fs/zfs.h>
+#include <sys/policy.h>
 #include <sys/zfs_znode.h>
 #include <sys/zfs_acl.h>
 #include <sys/zfs_dir.h>

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 (text+ko) ====

@@ -41,6 +41,7 @@
 #include <sys/stat.h>
 #include <sys/unistd.h>
 #include <sys/random.h>
+#include <sys/policy.h>
 #include <sys/kcondvar.h>
 #include <sys/callb.h>
 #include <sys/smp.h>

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 (text+ko) ====

@@ -1085,7 +1085,7 @@
 }
 
 static int
-zfs_ioc_pool_props_set(zfs_cmd_t *zc)
+zfs_ioc_pool_set_props(zfs_cmd_t *zc)
 {
 	nvlist_t *nvl;
 	int error, reset_bootfs = 0;
@@ -1181,7 +1181,7 @@
 }
 
 static int
-zfs_ioc_pool_props_get(zfs_cmd_t *zc)
+zfs_ioc_pool_get_props(zfs_cmd_t *zc)
 {
 	spa_t *spa;
 	int error;
@@ -1692,8 +1692,8 @@
 	{ zfs_ioc_snapshot,		zfs_secpolicy_operator,	dataset_name },
 	{ zfs_ioc_dsobj_to_dsname,	zfs_secpolicy_config,	pool_name },
 	{ zfs_ioc_obj_to_path,		zfs_secpolicy_config,	no_name },
-	{ zfs_ioc_pool_props_set,	zfs_secpolicy_config,	pool_name },
-	{ zfs_ioc_pool_props_get,	zfs_secpolicy_read,	pool_name },
+	{ zfs_ioc_pool_set_props,	zfs_secpolicy_config,	pool_name },
+	{ zfs_ioc_pool_get_props,	zfs_secpolicy_read,	pool_name },
 	{ zfs_ioc_jail,			zfs_secpolicy_config,	dataset_name },
 	{ zfs_ioc_unjail,		zfs_secpolicy_config,	dataset_name }
 };

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#4 (text+ko) ====

@@ -288,6 +288,7 @@
 	int64_t start, off;
 	int len = nbytes;
 	int error = 0;
+	uint64_t dirbytes;
 
 	ASSERT(vp->v_mount != NULL);
 	obj = vp->v_object;
@@ -295,34 +296,46 @@
 
 	start = uio->uio_loffset;
 	off = start & PAGEOFFSET;
+	dirbytes = 0;
 	VM_OBJECT_LOCK(obj);
 	for (start &= PAGEMASK; len > 0; start += PAGESIZE) {
 		uint64_t bytes = MIN(PAGESIZE - off, len);
-		uint64_t woff = uio->uio_loffset;
+		uint64_t fsize;
 
 again:
 		if ((m = vm_page_lookup(obj, OFF_TO_IDX(start))) != NULL &&
 		    vm_page_is_valid(m, (vm_offset_t)off, bytes)) {
+			uint64_t woff;
 			caddr_t va;
 
 			if (vm_page_sleep_if_busy(m, FALSE, "zfsmwb"))
 				goto again;
+			fsize = obj->un_pager.vnp.vnp_size;
 			vm_page_busy(m);
+			vm_page_lock_queues();
+			vm_page_undirty(m);
+			vm_page_unlock_queues();
 			VM_OBJECT_UNLOCK(obj);
-			sched_pin();
-			sf = sf_buf_alloc(m, SFB_CPUPRIVATE);
-			va = (caddr_t)sf_buf_kva(sf);
-			error = uiomove(va+off, bytes, UIO_WRITE, uio);
-			if (error == 0)
-				dmu_write(os, zp->z_id, woff, bytes, va+off, tx);
-			sf_buf_free(sf);
-			sched_unpin();
+			if (dirbytes > 0) {
+				error = dmu_write_uio(os, zp->z_id, uio,
+				    dirbytes, tx);
+				dirbytes = 0;
+			}
+			if (error == 0) {
+				sched_pin();
+				sf = sf_buf_alloc(m, SFB_CPUPRIVATE);
+				va = (caddr_t)sf_buf_kva(sf);
+				woff = uio->uio_loffset - off;
+				error = uiomove(va + off, bytes, UIO_WRITE, uio);
+				dmu_write(os, zp->z_id, woff,
+				    MIN(PAGESIZE, fsize - woff), va, tx);
+				sf_buf_free(sf);
+				sched_unpin();
+			}
 			VM_OBJECT_LOCK(obj);
 			vm_page_wakeup(m);
 		} else {
-			VM_OBJECT_UNLOCK(obj);
-			error = dmu_write_uio(os, zp->z_id, uio, bytes, tx);
-			VM_OBJECT_LOCK(obj);
+			dirbytes += bytes;
 		}
 		len -= bytes;
 		off = 0;
@@ -330,6 +343,8 @@
 			break;
 	}
 	VM_OBJECT_UNLOCK(obj);
+	if (error == 0 && dirbytes > 0)
+		error = dmu_write_uio(os, zp->z_id, uio, dirbytes, tx);
 	return (error);
 }
 
@@ -355,6 +370,7 @@
 	caddr_t va;
 	int len = nbytes;
 	int error = 0;
+	uint64_t dirbytes;
 
 	ASSERT(vp->v_mount != NULL);
 	obj = vp->v_object;
@@ -362,6 +378,7 @@
 
 	start = uio->uio_loffset;
 	off = start & PAGEOFFSET;
+	dirbytes = 0;
 	VM_OBJECT_LOCK(obj);
 	for (start &= PAGEMASK; len > 0; start += PAGESIZE) {
 		uint64_t bytes = MIN(PAGESIZE - off, len);
@@ -373,12 +390,19 @@
 				goto again;
 			vm_page_busy(m);
 			VM_OBJECT_UNLOCK(obj);
-			sched_pin();
-			sf = sf_buf_alloc(m, SFB_CPUPRIVATE);
-			va = (caddr_t)sf_buf_kva(sf);
-			error = uiomove(va + off, bytes, UIO_READ, uio);
-			sf_buf_free(sf);
-			sched_unpin();
+			if (dirbytes > 0) {
+				error = dmu_read_uio(os, zp->z_id, uio,
+				    dirbytes);
+				dirbytes = 0;
+			}
+			if (error == 0) {
+				sched_pin();
+				sf = sf_buf_alloc(m, SFB_CPUPRIVATE);
+				va = (caddr_t)sf_buf_kva(sf);
+				error = uiomove(va + off, bytes, UIO_READ, uio);
+				sf_buf_free(sf);
+				sched_unpin();
+			}
 			VM_OBJECT_LOCK(obj);
 			vm_page_wakeup(m);
 		} else if (m != NULL && uio->uio_segflg == UIO_NOCOPY) {
@@ -393,20 +417,26 @@
 				goto again;
 			vm_page_busy(m);
 			VM_OBJECT_UNLOCK(obj);
-			sched_pin();
-			sf = sf_buf_alloc(m, SFB_CPUPRIVATE);
-			va = (caddr_t)sf_buf_kva(sf);
-			error = dmu_read(os, zp->z_id, start + off, bytes,
-			    (void *)(va + off));
-			sf_buf_free(sf);
-			sched_unpin();
+			if (dirbytes > 0) {
+				error = dmu_read_uio(os, zp->z_id, uio,
+				    dirbytes);
+				dirbytes = 0;
+			}
+			if (error == 0) {
+				sched_pin();
+				sf = sf_buf_alloc(m, SFB_CPUPRIVATE);
+				va = (caddr_t)sf_buf_kva(sf);
+				error = dmu_read(os, zp->z_id, start + off,
+				    bytes, (void *)(va + off));
+				sf_buf_free(sf);
+				sched_unpin();
+			}
 			VM_OBJECT_LOCK(obj);
 			vm_page_wakeup(m);
-			uio->uio_resid -= bytes;
+			if (error == 0)
+				uio->uio_resid -= bytes;
 		} else {
-			VM_OBJECT_UNLOCK(obj);
-			error = dmu_read_uio(os, zp->z_id, uio, bytes);
-			VM_OBJECT_LOCK(obj);
+			dirbytes += bytes;
 		}
 		len -= bytes;
 		off = 0;
@@ -414,6 +444,8 @@
 			break;
 	}
 	VM_OBJECT_UNLOCK(obj);
+	if (error == 0 && dirbytes > 0)
+		error = dmu_read_uio(os, zp->z_id, uio, dirbytes);
 	return (error);
 }
 
@@ -2963,7 +2995,7 @@
 
 	if (size == LONG_FID_LEN) {
 		uint64_t	objsetid = dmu_objset_id(zfsvfs->z_os);
-		zfid_long_t     *zlfid;
+		zfid_long_t	*zlfid;
 
 		zlfid = (zfid_long_t *)fidp;
 
@@ -3397,11 +3429,6 @@
 {
 	vnode_t *vp = ap->a_vp;
 
-	/*
-	 * Destroy the vm object and flush associated pages.
-	 */
-	vnode_destroy_vobject(vp);
-
 	zfs_inactive(vp, ap->a_td->td_ucred);
 	return (0);
 }
@@ -3415,26 +3442,36 @@
 {
         vnode_t	*vp = ap->a_vp;
 	znode_t	*zp = VTOZ(vp);
+	zfsvfs_t *zfsvfs;
+	int rele = 1;
+
+	ASSERT(zp != NULL);
 
-	if (zp != NULL)
-		mutex_enter(&zp->z_lock);
-#if 0	/*
-	 * We do it from zfs_inactive(), because after zfs_inactive() we can't
-	 * VOP_WRITE() to the vnode.
-	 */
 	/*
 	 * Destroy the vm object and flush associated pages.
 	 */
 	vnode_destroy_vobject(vp);
-#endif
+
+	mutex_enter(&zp->z_lock);
+	ASSERT(zp->z_phys);
+	ASSERT(zp->z_dbuf_held);
+	zfsvfs = zp->z_zfsvfs;
+	if (!zp->z_unlinked) {
+		zp->z_dbuf_held = 0;
+		ZTOV(zp) = NULL;
+		mutex_exit(&zp->z_lock);
+		dmu_buf_rele(zp->z_dbuf, NULL);
+	} else {
+		mutex_exit(&zp->z_lock);
+	}
 	VI_LOCK(vp);
+	if (vp->v_count > 0)
+		rele = 0;
 	vp->v_data = NULL;
-	if (zp != NULL)
-		zp->z_vnode = NULL;
 	ASSERT(vp->v_holdcnt > 1);
 	vdropl(vp);
-	if (zp != NULL)
-		mutex_exit(&zp->z_lock);
+	if (!zp->z_unlinked && rele)
+		VFS_RELE(zfsvfs->z_vfs);
 	return (0);
 }
 

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 (text+ko) ====

@@ -369,7 +369,7 @@
 
 	mutex_enter(&zp->z_lock);
 
-	nzp = dmu_buf_set_user(db, zp, &zp->z_phys, znode_pageout_func);
+	nzp = dmu_buf_set_user_ie(db, zp, &zp->z_phys, znode_pageout_func);
 
 	/*
 	 * there should be no
@@ -683,12 +683,8 @@
 	}
 	ASSERT(zp->z_phys);
 	ASSERT(zp->z_dbuf_held);
-
-	zp->z_dbuf_held = 0;
 	mutex_exit(&zp->z_lock);
-	dmu_buf_rele(zp->z_dbuf, NULL);
 	ZFS_OBJ_HOLD_EXIT(zfsvfs, z_id);
-	VFS_RELE(zfsvfs->z_vfs);
 }
 
 /*

==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 (text+ko) ====

@@ -70,7 +70,7 @@
 int zil_disable = 0;	/* disable intent logging */
 SYSCTL_DECL(_vfs_zfs);
 TUNABLE_INT("vfs.zfs.zil_disable", &zil_disable);
-SYSCTL_INT(_vfs_zfs, OID_AUTO, zil_disable, CTLFLAG_RDTUN, &zil_disable, 0,
+SYSCTL_INT(_vfs_zfs, OID_AUTO, zil_disable, CTLFLAG_RW, &zil_disable, 0,
     "Disable ZFS Intent Log (ZIL)");
 
 /*

==== //depot/projects/opentoe/sys/dev/acpi_support/acpi_ibm.c#3 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_ibm.c,v 1.13 2007/03/22 18:16:40 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_ibm.c,v 1.14 2007/04/24 23:09:37 markus Exp $");
 
 /*
  * Driver for extra ACPI-controlled gadgets found on IBM ThinkPad laptops.
@@ -412,7 +412,7 @@
 
 	/* Hook up light to led(4) */
 	if (sc->light_set_supported)
-		sc->led_dev = led_create(ibm_led, sc, "thinklight");
+		sc->led_dev = led_create_state(ibm_led, sc, "thinklight", sc->light_val);
 
 	return (0);
 }
@@ -810,7 +810,8 @@
 
 	case ACPI_IBM_METHOD_THINKLIGHT:
 		sc->cmos_handle = NULL;
-		sc->light_get_supported = ACPI_SUCCESS(acpi_GetInteger(sc->ec_handle, IBM_NAME_KEYLIGHT, &dummy));
+		sc->light_get_supported = ACPI_SUCCESS(acpi_GetInteger(
+		    sc->ec_handle, IBM_NAME_KEYLIGHT, &sc->light_val));
 
 		if ((ACPI_SUCCESS(AcpiGetHandle(sc->handle, "\\UCMS", &sc->light_handle)) ||
 		     ACPI_SUCCESS(AcpiGetHandle(sc->handle, "\\CMOS", &sc->light_handle)) ||
@@ -831,12 +832,15 @@
 		sc->light_set_supported = (sc->light_handle &&
 		    ACPI_FAILURE(AcpiGetHandle(sc->ec_handle, "LEDB", &ledb_handle)));
 
-		if (sc->light_get_supported || sc->light_set_supported) {
+		if (sc->light_get_supported)
+			return (TRUE);
+
+		if (sc->light_set_supported) {
 			sc->light_val = 0;
 			return (TRUE);
 		}
-		else
-			return (FALSE);
+
+		return (FALSE);
 
 	case ACPI_IBM_METHOD_BLUETOOTH:
 	case ACPI_IBM_METHOD_WLAN:

==== //depot/projects/opentoe/sys/dev/acpica/acpi.c#4 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.234 2007/03/22 18:16:40 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.235 2007/04/25 16:22:18 jhb Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -1034,7 +1034,7 @@
      * the request from our system resource regions.  If we can't, pass the
      * request up to the parent.
      */
-    if (!(start == 0UL && end == ~0UL) && rm != NULL)
+    if (start + count - 1 == end && rm != NULL)
 	res = rman_reserve_resource(rm, start, end, count, flags & ~RF_ACTIVE,
 	    child);
     if (res == NULL) {

==== //depot/projects/opentoe/sys/dev/ata/ata-disk.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.201 2007/02/21 19:07:18 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.202 2007/04/26 12:59:20 roberto Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -277,8 +277,6 @@
 	request->u.ata.feature = 0;
 	request->bytecount = 0;
 	request->transfersize = 0;
-	request->timeout = 1;
-	request->retries = 0;
 	request->flags = ATA_R_CONTROL;
 	request->u.ata.command = ATA_FLUSHCACHE;
 	break;

==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#7 (text+ko) ====

@@ -32,7 +32,7 @@
 ***************************************************************************/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.14 2007/04/15 05:45:09 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.15 2007/04/26 08:38:00 kmacy Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -188,6 +188,10 @@
 SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD, 0, "CXGB driver parameters");

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


More information about the p4-projects mailing list