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