svn commit: r247679 - in user/attilio/vmcontention: . contrib/openbsm/etc etc lib/libc/sys lib/libprocstat sbin/ipfw sbin/mount_hpfs sbin/mount_ntfs share/examples/portal share/man/man4 share/man/m...
Attilio Rao
attilio at FreeBSD.org
Sun Mar 3 01:06:28 UTC 2013
Author: attilio
Date: Sun Mar 3 01:06:24 2013
New Revision: 247679
URL: http://svnweb.freebsd.org/changeset/base/247679
Log:
MFC
Added:
user/attilio/vmcontention/lib/libc/sys/bindat.2
- copied unchanged from r247678, head/lib/libc/sys/bindat.2
user/attilio/vmcontention/lib/libc/sys/connectat.2
- copied unchanged from r247678, head/lib/libc/sys/connectat.2
Deleted:
user/attilio/vmcontention/lib/libprocstat/ntfs.c
user/attilio/vmcontention/sbin/mount_hpfs/
user/attilio/vmcontention/sbin/mount_ntfs/
user/attilio/vmcontention/share/examples/portal/
user/attilio/vmcontention/share/man/man4/coda.4
user/attilio/vmcontention/share/man/man5/xfs.5
user/attilio/vmcontention/sys/fs/coda/
user/attilio/vmcontention/sys/fs/hpfs/
user/attilio/vmcontention/sys/fs/ntfs/
user/attilio/vmcontention/sys/fs/portalfs/
user/attilio/vmcontention/sys/gnu/fs/xfs/
user/attilio/vmcontention/sys/modules/coda/
user/attilio/vmcontention/sys/modules/coda5/
user/attilio/vmcontention/sys/modules/hpfs/
user/attilio/vmcontention/sys/modules/ntfs/
user/attilio/vmcontention/sys/modules/ntfs_iconv/
user/attilio/vmcontention/sys/modules/portalfs/
user/attilio/vmcontention/sys/modules/xfs/
user/attilio/vmcontention/usr.sbin/mount_portalfs/
Modified:
user/attilio/vmcontention/ObsoleteFiles.inc
user/attilio/vmcontention/contrib/openbsm/etc/audit_event
user/attilio/vmcontention/etc/devd.conf
user/attilio/vmcontention/lib/libc/sys/Makefile.inc
user/attilio/vmcontention/lib/libc/sys/Symbol.map
user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2
user/attilio/vmcontention/sbin/ipfw/ipfw2.c
user/attilio/vmcontention/sys/bsm/audit_kevents.h
user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_proto.h
user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscall.h
user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscalls.c
user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_sysent.c
user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_systrace_args.c
user/attilio/vmcontention/sys/compat/freebsd32/syscalls.master
user/attilio/vmcontention/sys/dev/pci/pci.c
user/attilio/vmcontention/sys/geom/label/g_label_ntfs.c
user/attilio/vmcontention/sys/i386/xen/pmap.c
user/attilio/vmcontention/sys/kern/capabilities.conf
user/attilio/vmcontention/sys/kern/init_sysent.c
user/attilio/vmcontention/sys/kern/syscalls.c
user/attilio/vmcontention/sys/kern/syscalls.master
user/attilio/vmcontention/sys/kern/systrace_args.c
user/attilio/vmcontention/sys/kern/uipc_domain.c
user/attilio/vmcontention/sys/kern/uipc_socket.c
user/attilio/vmcontention/sys/kern/uipc_syscalls.c
user/attilio/vmcontention/sys/kern/uipc_usrreq.c
user/attilio/vmcontention/sys/netpfil/ipfw/ip_fw_dynamic.c
user/attilio/vmcontention/sys/ofed/include/linux/timer.h
user/attilio/vmcontention/sys/security/audit/audit.h
user/attilio/vmcontention/sys/security/audit/audit_arg.c
user/attilio/vmcontention/sys/security/audit/audit_bsm.c
user/attilio/vmcontention/sys/sys/capability.h
user/attilio/vmcontention/sys/sys/protosw.h
user/attilio/vmcontention/sys/sys/socket.h
user/attilio/vmcontention/sys/sys/socketvar.h
user/attilio/vmcontention/sys/sys/syscall.h
user/attilio/vmcontention/sys/sys/syscall.mk
user/attilio/vmcontention/sys/sys/sysproto.h
user/attilio/vmcontention/sys/sys/time.h
user/attilio/vmcontention/sys/vm/vm_object.c
user/attilio/vmcontention/tools/regression/capsicum/syscalls/cap_ioctls_limit.c
user/attilio/vmcontention/tools/regression/pjdfstest/Makefile
user/attilio/vmcontention/tools/regression/pjdfstest/pjdfstest.c
user/attilio/vmcontention/usr.bin/procstat/procstat_files.c
Directory Properties:
user/attilio/vmcontention/ (props changed)
user/attilio/vmcontention/contrib/openbsm/ (props changed)
user/attilio/vmcontention/lib/libc/ (props changed)
user/attilio/vmcontention/sbin/ (props changed)
user/attilio/vmcontention/sbin/ipfw/ (props changed)
user/attilio/vmcontention/share/man/man4/ (props changed)
user/attilio/vmcontention/sys/ (props changed)
user/attilio/vmcontention/usr.bin/procstat/ (props changed)
Modified: user/attilio/vmcontention/ObsoleteFiles.inc
==============================================================================
--- user/attilio/vmcontention/ObsoleteFiles.inc Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/ObsoleteFiles.inc Sun Mar 3 01:06:24 2013 (r247679)
@@ -38,6 +38,27 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20130302: NTFS support removed
+OLD_FILES+=usr/include/fs/ntfs/ntfs.h
+OLD_FILES+=usr/include/fs/ntfs/ntfs_compr.h
+OLD_FILES+=usr/include/fs/ntfs/ntfs_ihash.h
+OLD_FILES+=usr/include/fs/ntfs/ntfs_inode.h
+OLD_FILES+=usr/include/fs/ntfs/ntfs_subr.h
+OLD_FILES+=usr/include/fs/ntfs/ntfs_vfsops.h
+OLD_FILES+=usr/include/fs/ntfs/ntfsmount.h
+OLD_DIRS+=usr/include/fs/ntfs
+OLD_FILES+=usr/share/man/man8/mount_ntfs.8.gz
+# 20130302: PORTALFS support removed
+OLD_FILES+=usr/include/fs/portalfs/portal.h
+OLD_DIRS+=usr/include/fs/portalfs
+OLD_FILES+=usr/share/examples/portal/README
+OLD_FILES+=usr/share/examples/portal/portal.conf
+OLD_DIRS+=usr/share/examples/portal
+OLD_FILES+=usr/share/man/man8/mount_portalfs.8.gz
+# 20130302: CODAFS support removed
+OLD_FILES+=usr/share/man/man4/coda.4.gz
+# 20130302: XFS support removed
+OLD_FILES+=usr/share/man/man5/xfs.5.gz
# 20130116: removed long unused directories for .1aout section manpages
OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout
OLD_FILES+=usr/share/man/en.UTF-8/man1aout
Modified: user/attilio/vmcontention/contrib/openbsm/etc/audit_event
==============================================================================
--- user/attilio/vmcontention/contrib/openbsm/etc/audit_event Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/contrib/openbsm/etc/audit_event Sun Mar 3 01:06:24 2013 (r247679)
@@ -568,6 +568,8 @@
43204:AUE_CAP_IOCTLS_GET:cap_ioctls_get(2):fm
43205:AUE_CAP_FCNTLS_LIMIT:cap_fcntls_limit(2):fm
43206:AUE_CAP_FCNTLS_GET:cap_fcntls_get(2):fm
+43207:AUE_BINDAT:bindat(2):nt
+43208:AUE_CONNECTAT:connectat(2):nt
#
# Solaris userspace events.
#
Modified: user/attilio/vmcontention/etc/devd.conf
==============================================================================
--- user/attilio/vmcontention/etc/devd.conf Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/etc/devd.conf Sun Mar 3 01:06:24 2013 (r247679)
@@ -34,7 +34,7 @@ options {
# NB: DETACH events are ignored; the kernel should handle all cleanup
# (routes, arp cache). Beware of races against immediate create
# of a device with the same name; e.g.
-# ifconfig bridge0 destroy; ifconfig bridge0 create
+# ifconfig bridge0 destroy; ifconfig bridge0 create
#
notify 0 {
match "system" "IFNET";
@@ -165,7 +165,7 @@ notify 100 {
};
#
-# Rescan scsi device-names on attach, but not detach. However, it is
+# Rescan SCSI device-names on attach, but not detach. However, it is
# disabled by default due to reports of problems.
#
attach 0 {
@@ -305,13 +305,13 @@ detach 10 {
# events. See the ACPI specification for more information about
# notifies. Here is the information returned for each subsystem:
#
-# ACAD: AC line state (0 is offline, 1 is online)
-# Button: Button pressed (0 for power, 1 for sleep)
-# CMBAT: ACPI battery events
-# Lid: Lid state (0 is closed, 1 is open)
-# RCTL: Resource limits
+# ACAD: AC line state (0 is offline, 1 is online)
+# Button: Button pressed (0 for power, 1 for sleep)
+# CMBAT: ACPI battery events
+# Lid: Lid state (0 is closed, 1 is open)
+# RCTL: Resource limits
# Suspend, Resume: Suspend and resume notification
-# Thermal: ACPI thermal zone events
+# Thermal: ACPI thermal zone events
#
# This example calls a script when the AC state changes, passing the
# notify value as the first argument. If the state is 0x00, it might
Modified: user/attilio/vmcontention/lib/libc/sys/Makefile.inc
==============================================================================
--- user/attilio/vmcontention/lib/libc/sys/Makefile.inc Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/lib/libc/sys/Makefile.inc Sun Mar 3 01:06:24 2013 (r247679)
@@ -91,6 +91,7 @@ MAN+= abort2.2 \
aio_waitcomplete.2 \
aio_write.2 \
bind.2 \
+ bindat.2 \
brk.2 \
cap_enter.2 \
cap_fcntls_limit.2 \
@@ -105,6 +106,7 @@ MAN+= abort2.2 \
close.2 \
closefrom.2 \
connect.2 \
+ connectat.2 \
cpuset.2 \
cpuset_getaffinity.2 \
dup.2 \
Modified: user/attilio/vmcontention/lib/libc/sys/Symbol.map
==============================================================================
--- user/attilio/vmcontention/lib/libc/sys/Symbol.map Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/lib/libc/sys/Symbol.map Sun Mar 3 01:06:24 2013 (r247679)
@@ -378,6 +378,7 @@ FBSD_1.2 {
};
FBSD_1.3 {
+ bindat;
cap_fcntls_get;
cap_fcntls_limit;
cap_ioctls_get;
@@ -386,6 +387,7 @@ FBSD_1.3 {
cap_rights_limit;
cap_sandboxed;
clock_getcpuclockid2;
+ connectat;
ffclock_getcounter;
ffclock_getestimate;
ffclock_setestimate;
Copied: user/attilio/vmcontention/lib/libc/sys/bindat.2 (from r247678, head/lib/libc/sys/bindat.2)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/attilio/vmcontention/lib/libc/sys/bindat.2 Sun Mar 3 01:06:24 2013 (r247679, copy of r247678, head/lib/libc/sys/bindat.2)
@@ -0,0 +1,109 @@
+.\" Copyright (c) 2013 The FreeBSD Foundation
+.\" All rights reserved.
+.\"
+.\" This documentation was written by Pawel Jakub Dawidek under sponsorship from
+.\" the FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (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$
+.\"
+.Dd February 13, 2013
+.Dt BINDAT 2
+.Os
+.Sh NAME
+.Nm bindat
+.Nd assign a local protocol address to a socket
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In sys/types.h
+.In sys/socket.h
+.Pp
+.In fcntl.h
+.Ft int
+.Fn bindat "int fd" "int s" "const struct sockaddr *addr" "socklen_t addrlen"
+.Sh DESCRIPTION
+The
+.Fn bindat
+system call assigns the local protocol address to a socket.
+It works just like the
+.Xr bind 2
+system call with two exceptions:
+.Pp
+.Bl -enum -offset indent -compact
+.It
+It is limited to sockets in the PF_LOCAL domain.
+.Pp
+.It
+If the file path stored in the
+.Fa sun_path
+field of the sockaddr_un structure is a relative path, it is located relative
+to the directory associated with the file descriptor
+.Fa fd .
+If
+.Fn bindat
+is passed the special value
+.Dv AT_FDCWD
+in the
+.Fa fd
+parameter, the current working directory is used and the behavior is identical
+to a call to
+.Xr bind 2 .
+.El
+.Sh RETURN VALUES
+.Rv -std bindat
+.Sh ERRORS
+The
+.Fn bindat
+system call may fail with the same errors as the
+.Xr bind 2
+system call for a UNIX domain socket or with the following errors:
+.Bl -tag -width Er
+.It Bq Er EBADF
+The
+.Fa sun_path
+field does not specify an absolute path and the
+.Fa fd
+argument is neither
+.Dv AT_FDCWD
+nor a valid file descriptor.
+.It Bq Er ENOTDIR
+The
+.Fa sun_path
+field is not an absolute path and
+.Fa fd
+is neither
+.Dv AT_FDCWD
+nor a file descriptor associated with a directory.
+.El
+.Sh SEE ALSO
+.Xr bind 2 ,
+.Xr connectat 2 ,
+.Xr socket 2 ,
+.Xr unix 4
+.Sh AUTHORS
+The
+.Nm
+was developed by
+.An Pawel Jakub Dawidek Aq pawel at dawidek.net
+under sponsorship from the FreeBSD Foundation.
Modified: user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2
==============================================================================
--- user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2 Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2 Sun Mar 3 01:06:24 2013 (r247679)
@@ -104,12 +104,20 @@ or
and that socket options set with
.Xr setsockopt 2
may also affect binding behavior.
+.It Dv CAP_BINDAT
+Permit
+.Xr bindat 2 .
+This right has to be present on the directory descriptor.
.It Dv CAP_CONNECT
Permit
.Xr connect 2 ;
also required for
.Xr sendto 2
with a non-NULL destination address.
+.It Dv CAP_CONNECTAT
+Permit
+.Xr connectat 2 .
+This right has to be present on the directory descriptor.
.It Dv CAP_CREATE
Permit
.Xr openat 2
@@ -511,11 +519,13 @@ argument points at an invalid address.
.Xr aio_read 2 ,
.Xr aio_write 2 ,
.Xr bind 2 ,
+.Xr bindat 2 ,
.Xr cap_enter 2 ,
.Xr cap_fcntls_limit 2 ,
.Xr cap_ioctls_limit 2 ,
.Xr cap_rights_limit 2 ,
.Xr connect 2 ,
+.Xr connectat 2 ,
.Xr dup 2 ,
.Xr dup2 2 ,
.Xr extattr_delete_fd 2 ,
Copied: user/attilio/vmcontention/lib/libc/sys/connectat.2 (from r247678, head/lib/libc/sys/connectat.2)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/attilio/vmcontention/lib/libc/sys/connectat.2 Sun Mar 3 01:06:24 2013 (r247679, copy of r247678, head/lib/libc/sys/connectat.2)
@@ -0,0 +1,109 @@
+.\" Copyright (c) 2013 The FreeBSD Foundation
+.\" All rights reserved.
+.\"
+.\" This documentation was written by Pawel Jakub Dawidek under sponsorship from
+.\" the FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (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$
+.\"
+.Dd February 13, 2013
+.Dt CONNECTAT 2
+.Os
+.Sh NAME
+.Nm connectat
+.Nd initiate a connection on a socket
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In sys/types.h
+.In sys/socket.h
+.Pp
+.In fcntl.h
+.Ft int
+.Fn connectat "int fd" "int s" "const struct sockaddr *name" "socklen_t namelen"
+.Sh DESCRIPTION
+The
+.Fn connectat
+system call initiates a connection on a socket.
+It works just like the
+.Xr connect 2
+system call with two exceptions:
+.Pp
+.Bl -enum -offset indent -compact
+.It
+It is limited to sockets in the PF_LOCAL domain.
+.Pp
+.It
+If the file path stored in the
+.Fa sun_path
+field of the sockaddr_un structure is a relative path, it is located relative
+to the directory associated with the file descriptor
+.Fa fd .
+If
+.Fn connectat
+is passed the special value
+.Dv AT_FDCWD
+in the
+.Fa fd
+parameter, the current working directory is used and the behavior is identical
+to a call to
+.Xr connect 2 .
+.El
+.Sh RETURN VALUES
+.Rv -std connectat
+.Sh ERRORS
+The
+.Fn connectat
+system call may fail with the same errors as the
+.Xr connect 2
+system call for a UNIX domain socket or with the following errors:
+.Bl -tag -width Er
+.It Bq Er EBADF
+The
+.Fa sun_path
+field does not specify an absolute path and the
+.Fa fd
+argument is neither
+.Dv AT_FDCWD
+nor a valid file descriptor.
+.It Bq Er ENOTDIR
+The
+.Fa sun_path
+field is not an absolute path and
+.Fa fd
+is neither
+.Dv AT_FDCWD
+nor a file descriptor associated with a directory.
+.El
+.Sh SEE ALSO
+.Xr bindat 2 ,
+.Xr connect 2 ,
+.Xr socket 2 ,
+.Xr unix 4
+.Sh AUTHORS
+The
+.Nm
+was developed by
+.An Pawel Jakub Dawidek Aq pawel at dawidek.net
+under sponsorship from the FreeBSD Foundation.
Modified: user/attilio/vmcontention/sbin/ipfw/ipfw2.c
==============================================================================
--- user/attilio/vmcontention/sbin/ipfw/ipfw2.c Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sbin/ipfw/ipfw2.c Sun Mar 3 01:06:24 2013 (r247679)
@@ -3912,6 +3912,7 @@ ipfw_flush(int force)
static void table_list(uint16_t num, int need_header);
+static void table_fill_xentry(char *arg, ipfw_table_xentry *xent);
/*
* This one handles all table-related commands
@@ -3927,8 +3928,7 @@ ipfw_table_handler(int ac, char *av[])
int do_add;
int is_all;
size_t len;
- char *p;
- uint32_t a, type, mask, addrlen;
+ uint32_t a, mask;
uint32_t tables_max;
mask = 0; // XXX uninitialized ?
@@ -3965,57 +3965,8 @@ ipfw_table_handler(int ac, char *av[])
ac--; av++;
if (!ac)
errx(EX_USAGE, "address required");
- /*
- * Let's try to guess type by agrument.
- * Possible types:
- * 1) IPv4[/mask]
- * 2) IPv6[/mask]
- * 3) interface name
- * 4) port ?
- */
- type = 0;
- if (ishexnumber(*av[0])) {
- /* Remove / if exists */
- if ((p = strchr(*av, '/')) != NULL) {
- *p = '\0';
- mask = atoi(p + 1);
- }
-
- if (inet_pton(AF_INET, *av, &xent.k.addr6) == 1) {
- type = IPFW_TABLE_CIDR;
- if ((p != NULL) && (mask > 32))
- errx(EX_DATAERR, "bad IPv4 mask width: %s", p + 1);
- xent.masklen = p ? mask : 32;
- addrlen = sizeof(struct in_addr);
- } else if (inet_pton(AF_INET6, *av, &xent.k.addr6) == 1) {
- type = IPFW_TABLE_CIDR;
- if ((p != NULL) && (mask > 128))
- errx(EX_DATAERR, "bad IPv6 mask width: %s", p + 1);
- xent.masklen = p ? mask : 128;
- addrlen = sizeof(struct in6_addr);
- }
- }
-
- if ((type == 0) && (strchr(*av, '.') == NULL)) {
- /* Assume interface name. Copy significant data only */
- mask = MIN(strlen(*av), IF_NAMESIZE - 1);
- memcpy(xent.k.iface, *av, mask);
- /* Set mask to exact match */
- xent.masklen = 8 * IF_NAMESIZE;
- type = IPFW_TABLE_INTERFACE;
- addrlen = IF_NAMESIZE;
- }
- if (type == 0) {
- if (lookup_host(*av, (struct in_addr *)&xent.k.addr6) != 0)
- errx(EX_NOHOST, "hostname ``%s'' unknown", *av);
- xent.masklen = 32;
- type = IPFW_TABLE_CIDR;
- addrlen = sizeof(struct in_addr);
- }
-
- xent.type = type;
- xent.len = offsetof(ipfw_table_xentry, k) + addrlen;
+ table_fill_xentry(*av, &xent);
ac--; av++;
if (do_add && ac) {
@@ -4065,6 +4016,93 @@ ipfw_table_handler(int ac, char *av[])
}
static void
+table_fill_xentry(char *arg, ipfw_table_xentry *xent)
+{
+ int addrlen, mask, masklen, type;
+ struct in6_addr *paddr;
+ uint32_t *pkey;
+ char *p;
+ uint32_t key;
+
+ mask = 0;
+ type = 0;
+ addrlen = 0;
+ masklen = 0;
+
+ /*
+ * Let's try to guess type by agrument.
+ * Possible types:
+ * 1) IPv4[/mask]
+ * 2) IPv6[/mask]
+ * 3) interface name
+ * 4) port, uid/gid or other u32 key (base 10 format)
+ * 5) hostname
+ */
+ paddr = &xent->k.addr6;
+ if (ishexnumber(*arg) != 0 || *arg == ':') {
+ /* Remove / if exists */
+ if ((p = strchr(arg, '/')) != NULL) {
+ *p = '\0';
+ mask = atoi(p + 1);
+ }
+
+ if (inet_pton(AF_INET, arg, paddr) == 1) {
+ if (p != NULL && mask > 32)
+ errx(EX_DATAERR, "bad IPv4 mask width: %s",
+ p + 1);
+
+ type = IPFW_TABLE_CIDR;
+ masklen = p ? mask : 32;
+ addrlen = sizeof(struct in_addr);
+ } else if (inet_pton(AF_INET6, arg, paddr) == 1) {
+ if (IN6_IS_ADDR_V4COMPAT(paddr))
+ errx(EX_DATAERR,
+ "Use IPv4 instead of v4-compatible");
+ if (p != NULL && mask > 128)
+ errx(EX_DATAERR, "bad IPv6 mask width: %s",
+ p + 1);
+
+ type = IPFW_TABLE_CIDR;
+ masklen = p ? mask : 128;
+ addrlen = sizeof(struct in6_addr);
+ } else {
+ /* Port or any other key */
+ key = strtol(arg, &p, 10);
+ /* Skip non-base 10 entries like 'fa1' */
+ if (p != arg) {
+ pkey = (uint32_t *)paddr;
+ *pkey = htonl(key);
+ type = IPFW_TABLE_CIDR;
+ addrlen = sizeof(uint32_t);
+ }
+ }
+ }
+
+ if (type == 0 && strchr(arg, '.') == NULL) {
+ /* Assume interface name. Copy significant data only */
+ mask = MIN(strlen(arg), IF_NAMESIZE - 1);
+ memcpy(xent->k.iface, arg, mask);
+ /* Set mask to exact match */
+ masklen = 8 * IF_NAMESIZE;
+ type = IPFW_TABLE_INTERFACE;
+ addrlen = IF_NAMESIZE;
+ }
+
+ if (type == 0) {
+ if (lookup_host(arg, (struct in_addr *)paddr) != 0)
+ errx(EX_NOHOST, "hostname ``%s'' unknown", arg);
+
+ masklen = 32;
+ type = IPFW_TABLE_CIDR;
+ addrlen = sizeof(struct in_addr);
+ }
+
+ xent->type = type;
+ xent->masklen = masklen;
+ xent->len = offsetof(ipfw_table_xentry, k) + addrlen;
+}
+
+static void
table_list(uint16_t num, int need_header)
{
ipfw_xtable *tbl;
@@ -4107,8 +4145,8 @@ table_list(uint16_t num, int need_header
tval = xent->value;
addr6 = &xent->k.addr6;
- if ((addr6->s6_addr32[0] == 0) && (addr6->s6_addr32[1] == 0) &&
- (addr6->s6_addr32[2] == 0)) {
+
+ if (IN6_IS_ADDR_V4COMPAT(addr6)) {
/* IPv4 address */
inet_ntop(AF_INET, &addr6->s6_addr32[3], tbuf, sizeof(tbuf));
} else {
Modified: user/attilio/vmcontention/sys/bsm/audit_kevents.h
==============================================================================
--- user/attilio/vmcontention/sys/bsm/audit_kevents.h Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/bsm/audit_kevents.h Sun Mar 3 01:06:24 2013 (r247679)
@@ -608,6 +608,8 @@
#define AUE_CAP_IOCTLS_GET 43204 /* TrustedBSD. */
#define AUE_CAP_FCNTLS_LIMIT 43205 /* TrustedBSD. */
#define AUE_CAP_FCNTLS_GET 43206 /* TrustedBSD. */
+#define AUE_BINDAT 43207 /* TrustedBSD. */
+#define AUE_CONNECTAT 43208 /* TrustedBSD. */
/*
* Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the
Modified: user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_proto.h
==============================================================================
--- user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_proto.h Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_proto.h Sun Mar 3 01:06:24 2013 (r247679)
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247602 2013-03-02 00:53:12Z pjd
+ * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247667 2013-03-02 21:11:30Z pjd
*/
#ifndef _FREEBSD32_SYSPROTO_H_
Modified: user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscall.h
==============================================================================
--- user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscall.h Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscall.h Sun Mar 3 01:06:24 2013 (r247679)
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247602 2013-03-02 00:53:12Z pjd
+ * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247667 2013-03-02 21:11:30Z pjd
*/
#define FREEBSD32_SYS_syscall 0
@@ -435,4 +435,6 @@
#define FREEBSD32_SYS_cap_ioctls_get 535
#define FREEBSD32_SYS_cap_fcntls_limit 536
#define FREEBSD32_SYS_cap_fcntls_get 537
-#define FREEBSD32_SYS_MAXSYSCALL 538
+#define FREEBSD32_SYS_bindat 538
+#define FREEBSD32_SYS_connectat 539
+#define FREEBSD32_SYS_MAXSYSCALL 540
Modified: user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscalls.c
==============================================================================
--- user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscalls.c Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscalls.c Sun Mar 3 01:06:24 2013 (r247679)
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247602 2013-03-02 00:53:12Z pjd
+ * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247667 2013-03-02 21:11:30Z pjd
*/
const char *freebsd32_syscallnames[] = {
@@ -561,4 +561,6 @@ const char *freebsd32_syscallnames[] = {
"cap_ioctls_get", /* 535 = cap_ioctls_get */
"cap_fcntls_limit", /* 536 = cap_fcntls_limit */
"cap_fcntls_get", /* 537 = cap_fcntls_get */
+ "bindat", /* 538 = bindat */
+ "connectat", /* 539 = connectat */
};
Modified: user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_sysent.c
==============================================================================
--- user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_sysent.c Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_sysent.c Sun Mar 3 01:06:24 2013 (r247679)
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247602 2013-03-02 00:53:12Z pjd
+ * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 247667 2013-03-02 21:11:30Z pjd
*/
#include "opt_compat.h"
@@ -598,4 +598,6 @@ struct sysent freebsd32_sysent[] = {
{ AS(cap_ioctls_get_args), (sy_call_t *)sys_cap_ioctls_get, AUE_CAP_IOCTLS_GET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 535 = cap_ioctls_get */
{ AS(cap_fcntls_limit_args), (sy_call_t *)sys_cap_fcntls_limit, AUE_CAP_FCNTLS_LIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 536 = cap_fcntls_limit */
{ AS(cap_fcntls_get_args), (sy_call_t *)sys_cap_fcntls_get, AUE_CAP_FCNTLS_GET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 537 = cap_fcntls_get */
+ { AS(bindat_args), (sy_call_t *)sys_bindat, AUE_BINDAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 538 = bindat */
+ { AS(connectat_args), (sy_call_t *)sys_connectat, AUE_CONNECTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 539 = connectat */
};
Modified: user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_systrace_args.c
==============================================================================
--- user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_systrace_args.c Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_systrace_args.c Sun Mar 3 01:06:24 2013 (r247679)
@@ -3130,6 +3130,26 @@ systrace_args(int sysnum, void *params,
*n_args = 2;
break;
}
+ /* bindat */
+ case 538: {
+ struct bindat_args *p = params;
+ iarg[0] = p->fd; /* int */
+ iarg[1] = p->s; /* int */
+ uarg[2] = (intptr_t) p->name; /* caddr_t */
+ iarg[3] = p->namelen; /* int */
+ *n_args = 4;
+ break;
+ }
+ /* connectat */
+ case 539: {
+ struct connectat_args *p = params;
+ iarg[0] = p->fd; /* int */
+ iarg[1] = p->s; /* int */
+ uarg[2] = (intptr_t) p->name; /* caddr_t */
+ iarg[3] = p->namelen; /* int */
+ *n_args = 4;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -8356,6 +8376,44 @@ systrace_entry_setargdesc(int sysnum, in
break;
};
break;
+ /* bindat */
+ case 538:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "caddr_t";
+ break;
+ case 3:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* connectat */
+ case 539:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "caddr_t";
+ break;
+ case 3:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -10143,6 +10201,16 @@ systrace_return_setargdesc(int sysnum, i
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* bindat */
+ case 538:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* connectat */
+ case 539:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
Modified: user/attilio/vmcontention/sys/compat/freebsd32/syscalls.master
==============================================================================
--- user/attilio/vmcontention/sys/compat/freebsd32/syscalls.master Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/compat/freebsd32/syscalls.master Sun Mar 3 01:06:24 2013 (r247679)
@@ -1015,3 +1015,7 @@
uint32_t fcntlrights); }
537 AUE_CAP_FCNTLS_GET NOPROTO { int cap_fcntls_get(int fd, \
uint32_t *fcntlrightsp); }
+538 AUE_BINDAT NOPROTO { int bindat(int fd, int s, caddr_t name, \
+ int namelen); }
+539 AUE_CONNECTAT NOPROTO { int connectat(int fd, int s, caddr_t name, \
+ int namelen); }
Modified: user/attilio/vmcontention/sys/dev/pci/pci.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/pci/pci.c Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/dev/pci/pci.c Sun Mar 3 01:06:24 2013 (r247679)
@@ -234,10 +234,11 @@ static const struct pci_quirk pci_quirks
{ 0x74501022, PCI_QUIRK_DISABLE_MSI, 0, 0 },
/*
- * MSI-X doesn't work with at least LSI SAS1068E passed through by
- * VMware.
+ * MSI-X allocation doesn't work properly for devices passed through
+ * by VMware up to at least ESXi 5.1.
*/
- { 0x079015ad, PCI_QUIRK_DISABLE_MSI, 0, 0 },
+ { 0x079015ad, PCI_QUIRK_DISABLE_MSI, 0, 0 }, /* PCI/PCI-X */
+ { 0x07a015ad, PCI_QUIRK_DISABLE_MSI, 0, 0 }, /* PCIe */
/*
* Some virtualization environments emulate an older chipset
@@ -3643,11 +3644,11 @@ pci_print_child(device_t dev, device_t c
return (retval);
}
-static struct
+static const struct
{
- int class;
- int subclass;
- char *desc;
+ int class;
+ int subclass;
+ const char *desc;
} pci_nomatch_tab[] = {
{PCIC_OLD, -1, "old"},
{PCIC_OLD, PCIS_OLD_NONVGA, "non-VGA display device"},
@@ -3739,8 +3740,9 @@ static struct
void
pci_probe_nomatch(device_t dev, device_t child)
{
- int i;
- char *cp, *scp, *device;
+ int i;
+ const char *cp, *scp;
+ char *device;
/*
* Look for a listing for this device in a loaded device database.
@@ -3773,7 +3775,6 @@ pci_probe_nomatch(device_t dev, device_t
printf(" at device %d.%d (no driver attached)\n",
pci_get_slot(child), pci_get_function(child));
pci_cfg_save(child, device_get_ivars(child), 1);
- return;
}
/*
Modified: user/attilio/vmcontention/sys/geom/label/g_label_ntfs.c
==============================================================================
--- user/attilio/vmcontention/sys/geom/label/g_label_ntfs.c Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/geom/label/g_label_ntfs.c Sun Mar 3 01:06:24 2013 (r247679)
@@ -32,21 +32,72 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/malloc.h>
-#include <fs/ntfs/ntfs.h>
-
#include <geom/geom.h>
#include <geom/label/g_label.h>
+#define NTFS_A_VOLUMENAME 0x60
+#define NTFS_FILEMAGIC ((uint32_t)(0x454C4946))
+#define NTFS_VOLUMEINO 3
+
#define G_LABEL_NTFS_DIR "ntfs"
+struct ntfs_attr {
+ uint32_t a_type;
+ uint32_t reclen;
+ uint8_t a_flag;
+ uint8_t a_namelen;
+ uint8_t a_nameoff;
+ uint8_t reserved1;
+ uint8_t a_compression;
+ uint8_t reserved2;
+ uint16_t a_index;
+ uint16_t a_datalen;
+ uint16_t reserved3;
+ uint16_t a_dataoff;
+ uint16_t a_indexed;
+};
+
+struct ntfs_filerec {
+ uint32_t fr_hdrmagic;
+ uint16_t fr_hdrfoff;
+ uint16_t fr_hdrfnum;
+ uint8_t reserved[8];
+ uint16_t fr_seqnum;
+ uint16_t fr_nlink;
+ uint16_t fr_attroff;
+ uint16_t fr_flags;
+ uint32_t fr_size;
+ uint32_t fr_allocated;
+ uint64_t fr_mainrec;
+ uint16_t fr_attrnum;
+};
+
+struct ntfs_bootfile {
+ uint8_t reserved1[3];
+ uint8_t bf_sysid[8];
+ uint16_t bf_bps;
+ uint8_t bf_spc;
+ uint8_t reserved2[7];
+ uint8_t bf_media;
+ uint8_t reserved3[2];
+ uint16_t bf_spt;
+ uint16_t bf_heads;
+ uint8_t reserver4[12];
+ uint64_t bf_spv;
+ uint64_t bf_mftcn;
+ uint64_t bf_mftmirrcn;
+ uint8_t bf_mftrecsz;
+ uint32_t bf_ibsz;
+ uint32_t bf_volsn;
+};
static void
g_label_ntfs_taste(struct g_consumer *cp, char *label, size_t size)
{
struct g_provider *pp;
- struct bootfile *bf;
- struct filerec *fr;
- struct attr *atr;
+ struct ntfs_bootfile *bf;
+ struct ntfs_filerec *fr;
+ struct ntfs_attr *atr;
off_t voloff;
char *filerecp, *ap;
char mftrecsz, vnchar;
@@ -58,7 +109,7 @@ g_label_ntfs_taste(struct g_consumer *cp
pp = cp->provider;
filerecp = NULL;
- bf = (struct bootfile *)g_read_data(cp, 0, pp->sectorsize, NULL);
+ bf = (struct ntfs_bootfile *)g_read_data(cp, 0, pp->sectorsize, NULL);
if (bf == NULL || strncmp(bf->bf_sysid, "NTFS ", 8) != 0)
goto done;
@@ -75,16 +126,16 @@ g_label_ntfs_taste(struct g_consumer *cp
filerecp = g_read_data(cp, voloff, recsize, NULL);
if (filerecp == NULL)
goto done;
- fr = (struct filerec *)filerecp;
+ fr = (struct ntfs_filerec *)filerecp;
- if (fr->fr_fixup.fh_magic != NTFS_FILEMAGIC)
+ if (fr->fr_hdrmagic != NTFS_FILEMAGIC)
goto done;
for (ap = filerecp + fr->fr_attroff;
- atr = (struct attr *)ap, atr->a_hdr.a_type != -1;
- ap += atr->a_hdr.reclen) {
- if (atr->a_hdr.a_type == NTFS_A_VOLUMENAME) {
- if(atr->a_r.a_datalen >= size *2){
+ atr = (struct ntfs_attr *)ap, atr->a_type != -1;
+ ap += atr->reclen) {
+ if (atr->a_type == NTFS_A_VOLUMENAME) {
+ if(atr->a_datalen >= size *2){
label[0] = 0;
goto done;
}
@@ -92,8 +143,8 @@ g_label_ntfs_taste(struct g_consumer *cp
*UNICODE to ASCII.
* Should we need to use iconv(9)?
*/
- for (j = 0; j < atr->a_r.a_datalen; j++) {
- vnchar = *(ap + atr->a_r.a_dataoff + j);
+ for (j = 0; j < atr->a_datalen; j++) {
+ vnchar = *(ap + atr->a_dataoff + j);
if (j & 1) {
if (vnchar) {
label[0] = 0;
Modified: user/attilio/vmcontention/sys/i386/xen/pmap.c
==============================================================================
--- user/attilio/vmcontention/sys/i386/xen/pmap.c Sun Mar 3 01:02:57 2013 (r247678)
+++ user/attilio/vmcontention/sys/i386/xen/pmap.c Sun Mar 3 01:06:24 2013 (r247679)
@@ -2038,7 +2038,7 @@ pmap_pv_reclaim(pmap_t locked_pmap)
vm_page_dirty(m);
if ((tpte & PG_A) != 0)
vm_page_aflag_set(m, PGA_REFERENCED);
- TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
+ TAILQ_REMOVE(&m->md.pv_list, pv, pv_next);
if (TAILQ_EMPTY(&m->md.pv_list))
vm_page_aflag_clear(m, PGA_WRITEABLE);
pc->pc_map[field] |= 1UL << bit;
@@ -2239,9 +2239,9 @@ pmap_pvh_remove(struct md_page *pvh, pma
pv_entry_t pv;
rw_assert(&pvh_global_lock, RA_WLOCKED);
- TAILQ_FOREACH(pv, &pvh->pv_list, pv_list) {
+ TAILQ_FOREACH(pv, &pvh->pv_list, pv_next) {
if (pmap == PV_PMAP(pv) && va == pv->pv_va) {
- TAILQ_REMOVE(&pvh->pv_list, pv, pv_list);
+ TAILQ_REMOVE(&pvh->pv_list, pv, pv_next);
break;
}
}
@@ -2281,7 +2281,7 @@ pmap_try_insert_pv_entry(pmap_t pmap, vm
if (pv_entry_count < pv_entry_high_water &&
(pv = get_pv_entry(pmap, TRUE)) != NULL) {
pv->pv_va = va;
- TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list);
+ TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_next);
return (TRUE);
} else
return (FALSE);
@@ -2503,7 +2503,7 @@ pmap_remove_all(vm_page_t m)
vm_page_dirty(m);
pmap_unuse_pt(pmap, pv->pv_va, &free);
pmap_invalidate_page(pmap, pv->pv_va);
- TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
+ TAILQ_REMOVE(&m->md.pv_list, pv, pv_next);
free_pv_entry(pmap, pv);
PMAP_UNLOCK(pmap);
}
@@ -2770,7 +2770,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va,
if (pv == NULL)
pv = get_pv_entry(pmap, FALSE);
pv->pv_va = va;
- TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list);
+ TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_next);
pa |= PG_MANAGED;
} else if (pv != NULL)
free_pv_entry(pmap, pv);
@@ -3465,7 +3465,7 @@ pmap_page_exists_quick(pmap_t pmap, vm_p
("pmap_page_exists_quick: page %p is not managed", m));
rv = FALSE;
rw_wlock(&pvh_global_lock);
- TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+ TAILQ_FOREACH(pv, &m->md.pv_list, pv_next) {
if (PV_PMAP(pv) == pmap) {
rv = TRUE;
break;
@@ -3497,7 +3497,7 @@ pmap_page_wired_mappings(vm_page_t m)
return (count);
rw_wlock(&pvh_global_lock);
sched_pin();
- TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+ TAILQ_FOREACH(pv, &m->md.pv_list, pv_next) {
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
pte = pmap_pte_quick(pmap, pv->pv_va);
@@ -3602,7 +3602,7 @@ pmap_remove_pages(pmap_t pmap)
if (tpte & PG_M)
vm_page_dirty(m);
- TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
+ TAILQ_REMOVE(&m->md.pv_list, pv, pv_next);
if (TAILQ_EMPTY(&m->md.pv_list))
vm_page_aflag_clear(m, PGA_WRITEABLE);
@@ -3662,7 +3662,7 @@ pmap_is_modified(vm_page_t m)
return (rv);
rw_wlock(&pvh_global_lock);
sched_pin();
- TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+ TAILQ_FOREACH(pv, &m->md.pv_list, pv_next) {
pmap = PV_PMAP(pv);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list