Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Aug 2013 18:38:44 +0000 (UTC)
From:      Neel Natu <neel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r254730 - in projects/bhyve_npt_pmap: contrib/libexecinfo lib/libc/include lib/libc/net lib/libc/posix1e lib/libc/resolv lib/libexecinfo share/man/man9 sys/cddl/contrib/opensolaris/uts/...
Message-ID:  <201308231838.r7NIci7n013491@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: neel
Date: Fri Aug 23 18:38:43 2013
New Revision: 254730
URL: http://svnweb.freebsd.org/changeset/base/254730

Log:
  IFC @r254719

Added:
  projects/bhyve_npt_pmap/contrib/libexecinfo/
     - copied from r254719, head/contrib/libexecinfo/
  projects/bhyve_npt_pmap/lib/libexecinfo/
     - copied from r254719, head/lib/libexecinfo/
Modified:
  projects/bhyve_npt_pmap/lib/libc/include/libc_private.h
  projects/bhyve_npt_pmap/lib/libc/net/ether_addr.c
  projects/bhyve_npt_pmap/lib/libc/net/eui64.c
  projects/bhyve_npt_pmap/lib/libc/net/getaddrinfo.c
  projects/bhyve_npt_pmap/lib/libc/net/gethostbyht.c
  projects/bhyve_npt_pmap/lib/libc/net/getnetbyht.c
  projects/bhyve_npt_pmap/lib/libc/net/getprotoent.c
  projects/bhyve_npt_pmap/lib/libc/net/getservent.c
  projects/bhyve_npt_pmap/lib/libc/net/hesiod.c
  projects/bhyve_npt_pmap/lib/libc/net/nsdispatch.c
  projects/bhyve_npt_pmap/lib/libc/net/rcmd.c
  projects/bhyve_npt_pmap/lib/libc/posix1e/mac.c
  projects/bhyve_npt_pmap/lib/libc/resolv/res_init.c
  projects/bhyve_npt_pmap/lib/libc/resolv/res_query.c
  projects/bhyve_npt_pmap/share/man/man9/timeout.9
  projects/bhyve_npt_pmap/share/man/man9/vm_page_grab.9
  projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h
  projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  projects/bhyve_npt_pmap/sys/cddl/dev/fbt/fbt.c
  projects/bhyve_npt_pmap/sys/dev/mmc/mmc.c
  projects/bhyve_npt_pmap/sys/i386/i386/genassym.c
  projects/bhyve_npt_pmap/sys/i386/xen/locore.s
  projects/bhyve_npt_pmap/sys/kern/uipc_socket.c
  projects/bhyve_npt_pmap/sys/kern/uipc_syscalls.c
  projects/bhyve_npt_pmap/sys/kern/vfs_cluster.c
  projects/bhyve_npt_pmap/sys/mips/atheros/if_arge.c
  projects/bhyve_npt_pmap/sys/mips/conf/DIR-825.hints
  projects/bhyve_npt_pmap/sys/netinet/sctp_structs.h
  projects/bhyve_npt_pmap/sys/netinet/sctp_uio.h
  projects/bhyve_npt_pmap/sys/sys/callout.h
  projects/bhyve_npt_pmap/sys/sys/param.h
  projects/bhyve_npt_pmap/sys/vm/vm_page.c
  projects/bhyve_npt_pmap/sys/vm/vm_radix.c
  projects/bhyve_npt_pmap/sys/vm/vm_radix.h
  projects/bhyve_npt_pmap/usr.sbin/rtadvd/config.c
Directory Properties:
  projects/bhyve_npt_pmap/   (props changed)
  projects/bhyve_npt_pmap/lib/libc/   (props changed)
  projects/bhyve_npt_pmap/sys/   (props changed)
  projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/   (props changed)
  projects/bhyve_npt_pmap/usr.sbin/rtadvd/   (props changed)

Modified: projects/bhyve_npt_pmap/lib/libc/include/libc_private.h
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/include/libc_private.h	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/include/libc_private.h	Fri Aug 23 18:38:43 2013	(r254730)
@@ -83,7 +83,7 @@ void _rtld_error(const char *fmt, ...);
 #define	FUNLOCKFILE(fp)		if (__isthreaded) _funlockfile(fp)
 
 struct _spinlock;
-extern struct _spinlock __stdio_thread_lock;
+extern struct _spinlock __stdio_thread_lock __hidden;
 #define STDIO_THREAD_LOCK()				\
 do {							\
 	if (__isthreaded)				\
@@ -218,7 +218,7 @@ void _malloc_postfork(void);
 /*
  * Function to clean up streams, called from abort() and exit().
  */
-extern void (*__cleanup)(void);
+extern void (*__cleanup)(void) __hidden;
 
 /*
  * Get kern.osreldate to detect ABI revisions.  Explicitly

Modified: projects/bhyve_npt_pmap/lib/libc/net/ether_addr.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/ether_addr.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/ether_addr.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -148,7 +148,7 @@ ether_ntohost(char *hostname, const stru
 	char *yp_domain;
 #endif
 
-	if ((fp = fopen(_PATH_ETHERS, "r")) == NULL)
+	if ((fp = fopen(_PATH_ETHERS, "re")) == NULL)
 		return (1);
 	while (fgets(buf,BUFSIZ,fp)) {
 		if (buf[0] == '#')
@@ -197,7 +197,7 @@ ether_hostton(const char *hostname, stru
 	char *yp_domain;
 #endif
 
-	if ((fp = fopen(_PATH_ETHERS, "r")) == NULL)
+	if ((fp = fopen(_PATH_ETHERS, "re")) == NULL)
 		return (1);
 	while (fgets(buf,BUFSIZ,fp)) {
 		if (buf[0] == '#')

Modified: projects/bhyve_npt_pmap/lib/libc/net/eui64.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/eui64.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/eui64.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -227,7 +227,7 @@ eui64_ntohost(char *hostname, size_t len
 	char eui64_a[24];
 	char *yp_domain;
 #endif
-	if ((fp = fopen(_PATH_EUI64, "r")) == NULL)
+	if ((fp = fopen(_PATH_EUI64, "re")) == NULL)
 		return (1);
 
 	while (fgets(buf,BUFSIZ,fp)) {
@@ -277,7 +277,7 @@ eui64_hostton(const char *hostname, stru
 	int resultlen;
 	char *yp_domain;
 #endif
-	if ((fp = fopen(_PATH_EUI64, "r")) == NULL)
+	if ((fp = fopen(_PATH_EUI64, "re")) == NULL)
 		return (1);
 
 	while (fgets(buf,BUFSIZ,fp)) {

Modified: projects/bhyve_npt_pmap/lib/libc/net/getaddrinfo.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/getaddrinfo.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/getaddrinfo.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -2240,7 +2240,7 @@ static void
 _sethtent(FILE **hostf)
 {
 	if (!*hostf)
-		*hostf = fopen(_PATH_HOSTS, "r");
+		*hostf = fopen(_PATH_HOSTS, "re");
 	else
 		rewind(*hostf);
 }
@@ -2264,7 +2264,7 @@ _gethtent(FILE **hostf, const char *name
 	const char *addr;
 	char hostbuf[8*1024];
 
-	if (!*hostf && !(*hostf = fopen(_PATH_HOSTS, "r")))
+	if (!*hostf && !(*hostf = fopen(_PATH_HOSTS, "re")))
 		return (NULL);
 again:
 	if (!(p = fgets(hostbuf, sizeof hostbuf, *hostf)))

Modified: projects/bhyve_npt_pmap/lib/libc/net/gethostbyht.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/gethostbyht.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/gethostbyht.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -72,7 +72,7 @@ void
 _sethosthtent(int f, struct hostent_data *hed)
 {
 	if (!hed->hostf)
-		hed->hostf = fopen(_PATH_HOSTS, "r");
+		hed->hostf = fopen(_PATH_HOSTS, "re");
 	else
 		rewind(hed->hostf);
 	hed->stayopen = f;
@@ -96,7 +96,7 @@ gethostent_p(struct hostent *he, struct 
 	int af, len;
 	char hostbuf[BUFSIZ + 1];
 
-	if (!hed->hostf && !(hed->hostf = fopen(_PATH_HOSTS, "r"))) {
+	if (!hed->hostf && !(hed->hostf = fopen(_PATH_HOSTS, "re"))) {
 		RES_SET_H_ERRNO(statp, NETDB_INTERNAL);
 		return (-1);
 	}

Modified: projects/bhyve_npt_pmap/lib/libc/net/getnetbyht.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/getnetbyht.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/getnetbyht.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -63,7 +63,7 @@ _setnethtent(int f, struct netent_data *
 {
 
 	if (ned->netf == NULL)
-		ned->netf = fopen(_PATH_NETWORKS, "r");
+		ned->netf = fopen(_PATH_NETWORKS, "re");
 	else
 		rewind(ned->netf);
 	ned->stayopen |= f;
@@ -89,7 +89,7 @@ getnetent_p(struct netent *ne, struct ne
 	char line[BUFSIZ + 1];
 
 	if (ned->netf == NULL &&
-	    (ned->netf = fopen(_PATH_NETWORKS, "r")) == NULL)
+	    (ned->netf = fopen(_PATH_NETWORKS, "re")) == NULL)
 		return (-1);
 again:
 	p = fgets(line, sizeof line, ned->netf);

Modified: projects/bhyve_npt_pmap/lib/libc/net/getprotoent.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/getprotoent.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/getprotoent.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -342,7 +342,7 @@ void
 __setprotoent_p(int f, struct protoent_data *ped)
 {
 	if (ped->fp == NULL)
-		ped->fp = fopen(_PATH_PROTOCOLS, "r");
+		ped->fp = fopen(_PATH_PROTOCOLS, "re");
 	else
 		rewind(ped->fp);
 	ped->stayopen |= f;
@@ -365,7 +365,7 @@ __getprotoent_p(struct protoent *pe, str
 	char *cp, **q, *endp;
 	long l;
 
-	if (ped->fp == NULL && (ped->fp = fopen(_PATH_PROTOCOLS, "r")) == NULL)
+	if (ped->fp == NULL && (ped->fp = fopen(_PATH_PROTOCOLS, "re")) == NULL)
 		return (-1);
 again:
 	if ((p = fgets(ped->line, sizeof ped->line, ped->fp)) == NULL)

Modified: projects/bhyve_npt_pmap/lib/libc/net/getservent.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/getservent.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/getservent.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -335,7 +335,7 @@ files_servent(void *retval, void *mdata,
 	if (st->fp == NULL)
 		st->compat_mode_active = 0;
 
-	if (st->fp == NULL && (st->fp = fopen(_PATH_SERVICES, "r")) == NULL) {
+	if (st->fp == NULL && (st->fp = fopen(_PATH_SERVICES, "re")) == NULL) {
 		*errnop = errno;
 		return (NS_UNAVAIL);
 	}
@@ -449,7 +449,7 @@ files_setservent(void *retval, void *mda
 	case SETSERVENT:
 		f = va_arg(ap,int);
 		if (st->fp == NULL)
-			st->fp = fopen(_PATH_SERVICES, "r");
+			st->fp = fopen(_PATH_SERVICES, "re");
 		else
 			rewind(st->fp);
 		st->stayopen |= f;

Modified: projects/bhyve_npt_pmap/lib/libc/net/hesiod.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/hesiod.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/hesiod.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -286,7 +286,7 @@ read_config_file(ctx, filename)
 	ctx->classes[1] = C_HS;
 
 		/* Try to open the configuration file. */
-	fp = fopen(filename, "r");
+	fp = fopen(filename, "re");
 	if (!fp) {
 		/* Use compiled in default domain names. */
 		ctx->lhs = strdup(DEF_LHS);

Modified: projects/bhyve_npt_pmap/lib/libc/net/nsdispatch.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/nsdispatch.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/nsdispatch.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -361,7 +361,7 @@ nss_configure(void)
 	    if (result != 0)
 		    goto fin2;
 	}
-	_nsyyin = fopen(path, "r");
+	_nsyyin = fopen(path, "re");
 	if (_nsyyin == NULL)
 		goto fin;
 	VECTOR_FREE(_nsmap, &_nsmapsize, sizeof(*_nsmap),

Modified: projects/bhyve_npt_pmap/lib/libc/net/rcmd.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/net/rcmd.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/net/rcmd.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -458,7 +458,7 @@ iruserok_sa(ra, rlen, superuser, ruser, 
 	raddr = (struct sockaddr *)&ss;
 
 	first = 1;
-	hostf = superuser ? NULL : fopen(_PATH_HEQUIV, "r");
+	hostf = superuser ? NULL : fopen(_PATH_HEQUIV, "re");
 again:
 	if (hostf) {
 		if (__ivaliduser_sa(hostf, raddr, rlen, luser, ruser) == 0) {
@@ -481,7 +481,7 @@ again:
 		 */
 		uid = geteuid();
 		(void)seteuid(pwd->pw_uid);
-		hostf = fopen(pbuf, "r");
+		hostf = fopen(pbuf, "re");
 		(void)seteuid(uid);
 
 		if (hostf == NULL)

Modified: projects/bhyve_npt_pmap/lib/libc/posix1e/mac.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/posix1e/mac.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/posix1e/mac.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -179,7 +179,7 @@ mac_init_internal(int ignore_errors)
 		filename = getenv("MAC_CONFFILE");
 	else
 		filename = MAC_CONFFILE;
-	file = fopen(filename, "r");
+	file = fopen(filename, "re");
 	if (file == NULL)
 		return (0);
 

Modified: projects/bhyve_npt_pmap/lib/libc/resolv/res_init.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/resolv/res_init.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/resolv/res_init.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -304,7 +304,7 @@ __res_vinit(res_state statp, int preinit
 	 line[sizeof(name) - 1] == '\t'))
 
 	nserv = 0;
-	if ((fp = fopen(_PATH_RESCONF, "r")) != NULL) {
+	if ((fp = fopen(_PATH_RESCONF, "re")) != NULL) {
 	    /* read the config file */
 	    while (fgets(buf, sizeof(buf), fp) != NULL) {
 		/* skip comments */

Modified: projects/bhyve_npt_pmap/lib/libc/resolv/res_query.c
==============================================================================
--- projects/bhyve_npt_pmap/lib/libc/resolv/res_query.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/lib/libc/resolv/res_query.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -457,7 +457,7 @@ res_hostalias(const res_state statp, con
 	if (issetugid())
 		return (NULL);
 	file = getenv("HOSTALIASES");
-	if (file == NULL || (fp = fopen(file, "r")) == NULL)
+	if (file == NULL || (fp = fopen(file, "re")) == NULL)
 		return (NULL);
 	setbuf(fp, NULL);
 	buf[sizeof(buf) - 1] = '\0';

Modified: projects/bhyve_npt_pmap/share/man/man9/timeout.9
==============================================================================
--- projects/bhyve_npt_pmap/share/man/man9/timeout.9	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/share/man/man9/timeout.9	Fri Aug 23 18:38:43 2013	(r254730)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 19, 2013
+.Dd August 23, 2013
 .Dt TIMEOUT 9
 .Os
 .Sh NAME
@@ -38,6 +38,7 @@
 .Nm callout_handle_init ,
 .Nm callout_init ,
 .Nm callout_init_mtx ,
+.Nm callout_init_rm ,
 .Nm callout_init_rw ,
 .Nm callout_stop ,
 .Nm callout_drain ,
@@ -73,6 +74,8 @@ struct callout_handle handle = CALLOUT_H
 .Fn callout_init "struct callout *c" "int mpsafe"
 .Ft void
 .Fn callout_init_mtx "struct callout *c" "struct mtx *mtx" "int flags"
+.Fn void
+.Fn callout_init_rm "struct callout *c" "struct rmlock *rm" "int flags"
 .Ft void
 .Fn callout_init_rw "struct callout *c" "struct rwlock *rw" "int flags"
 .Ft int
@@ -203,6 +206,7 @@ Thus they are protected from re-entrancy
 The functions
 .Fn callout_init ,
 .Fn callout_init_mtx ,
+.Fn callout_init_rm ,
 .Fn callout_init_rw ,
 .Fn callout_stop ,
 .Fn callout_drain ,
@@ -252,15 +256,25 @@ after the callout function returns.
 .Pp
 The
 .Fn callout_init_rw
-function serves the need of using rwlocks in conjunction with callouts.
-The function does basically the same as
-.Fn callout_init_mtx
+and the 
+.Fn callout_init_rm
+fuctions serve the need of using rwlocks and rmlocks in conjunction
+with callouts.
+The functions do the same as
+.Fn callout_init
 with the possibility of specifying an extra
 .Fa rw
+or
+.Fa rm
 argument.
-The usable lock classes are currently limited to mutexes and rwlocks,
-because callout handlers run in softclock swi, so they cannot sleep nor
-acquire sleepable locks like sx or lockmgr.
+If an
+.Fa rm
+argument is specified, the lock should be created without passing the
+.Dv RM_SLEEPABLE
+flag.
+The usable lock classes are currently limited to mutexes, rwlocks and
+non-sleepable rmlocks, because callout handlers run in softclock swi,
+so they cannot sleep nor acquire sleepable locks like sx or lockmgr.
 The following
 .Fa flags
 may be specified:

Modified: projects/bhyve_npt_pmap/share/man/man9/vm_page_grab.9
==============================================================================
--- projects/bhyve_npt_pmap/share/man/man9/vm_page_grab.9	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/share/man/man9/vm_page_grab.9	Fri Aug 23 18:38:43 2013	(r254730)
@@ -1,5 +1,9 @@
 .\"
 .\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
+.\" Copyright (c) 2013 The FreeBSD Foundation
+.\"
+.\" Portions of this documentation were written by Konstantin Belousov
+.\" 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
@@ -26,7 +30,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd August 7, 2001
+.Dd August 23, 2013
 .Dt VM_PAGE_GRAB 9
 .Os
 .Sh NAME
@@ -48,21 +52,31 @@ If the page exists and is busy,
 .Fn vm_page_grab
 will sleep while waiting for it.
 If the page does not exist, it is allocated.
+The function sleeps until the allocation request can be satisfied.
+.Pp
+The function requires the
+.Fa object
+to be locked on entry, and returns with the object locked.
+If the
+.Fn vm_page_grab
+function sleeps for any reason, the object lock is temporary dropped.
 .Pp
-If
-.Dv VM_ALLOC_RETRY
-is not set in
-.Fa allocflags
-and the function sleeps, either getting the page from the object
-or while allocating it,
-.Dv NULL
-is returned.
+The
+.Fn vm_page_grab
+supports all of the flags supported by
+.Xr vm_page_alloc .
+In addition,
+.Fn vm_page_grab
+supports the following flags:
+.Bl -tag -width ".Dv VM_ALLOC_IGN_SBUSY"
+.It Dv VM_ALLOC_IGN_SBUSY
+When waiting for the busy state of the existing page to drain,
+only test for exclusive busy; ignore the shared busy counter.
+.El
 .Sh RETURN VALUES
-If successful,
+The
 .Fn vm_page_grab
-returns the page; otherwise,
-.Dv NULL
-is returned.
+always returns the page.
 .Sh SEE ALSO
 .Xr vm_page_alloc 9
 .Sh AUTHORS

Modified: projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h
==============================================================================
--- projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h	Fri Aug 23 18:38:43 2013	(r254730)
@@ -156,7 +156,6 @@ extern int zfs_set_version(zfsvfs_t *zfs
 extern int zfsvfs_create(const char *name, zfsvfs_t **zfvp);
 extern void zfsvfs_free(zfsvfs_t *zfsvfs);
 extern int zfs_check_global_label(const char *dsname, const char *hexsl);
-extern int zfs_vnode_lock(vnode_t *vp, int flags);
 
 #ifdef _KERNEL
 extern void zfsvfs_update_fromname(const char *oldname, const char *newname);

Modified: projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -1828,6 +1828,7 @@ zfs_ioc_vdev_add(zfs_cmd_t *zc)
 	(void) nvlist_lookup_nvlist_array(config, ZPOOL_CONFIG_SPARES,
 	    &spares, &nspares);
 
+#ifdef illumos
 	/*
 	 * A root pool with concatenated devices is not supported.
 	 * Thus, can not add a device to a root pool.
@@ -1843,6 +1844,7 @@ zfs_ioc_vdev_add(zfs_cmd_t *zc)
 		spa_close(spa, FTAG);
 		return (SET_ERROR(EDOM));
 	}
+#endif /* illumos */
 
 	if (error == 0) {
 		error = spa_vdev_add(spa, config);

Modified: projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -1796,15 +1796,6 @@ zfs_statfs(vfs_t *vfsp, struct statfs *s
 	return (0);
 }
 
-int
-zfs_vnode_lock(vnode_t *vp, int flags)
-{
-
-	ASSERT(vp != NULL);
-
-	return (vn_lock(vp, flags));
-}
-
 static int
 zfs_root(vfs_t *vfsp, int flags, vnode_t **vpp)
 {
@@ -1821,7 +1812,7 @@ zfs_root(vfs_t *vfsp, int flags, vnode_t
 	ZFS_EXIT(zfsvfs);
 
 	if (error == 0) {
-		error = zfs_vnode_lock(*vpp, flags);
+		error = vn_lock(*vpp, flags);
 		if (error == 0)
 			(*vpp)->v_vflag |= VV_ROOT;
 	}
@@ -2082,7 +2073,7 @@ zfs_vget(vfs_t *vfsp, ino_t ino, int fla
 		*vpp = ZTOV(zp);
 	ZFS_EXIT(zfsvfs);
 	if (err == 0)
-		err = zfs_vnode_lock(*vpp, flags);
+		err = vn_lock(*vpp, flags);
 	if (err != 0)
 		*vpp = NULL;
 	else
@@ -2181,7 +2172,7 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, int
 			VN_HOLD(*vpp);
 		}
 		ZFS_EXIT(zfsvfs);
-		err = zfs_vnode_lock(*vpp, flags);
+		err = vn_lock(*vpp, flags);
 		if (err != 0)
 			*vpp = NULL;
 		return (err);
@@ -2208,7 +2199,7 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, int
 
 	*vpp = ZTOV(zp);
 	ZFS_EXIT(zfsvfs);
-	err = zfs_vnode_lock(*vpp, flags | LK_RETRY);
+	err = vn_lock(*vpp, flags | LK_RETRY);
 	if (err == 0)
 		vnode_create_vobject(*vpp, zp->z_size, curthread);
 	else

Modified: projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -1526,7 +1526,7 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode
 			VOP_UNLOCK(dvp, 0);
 		}
 		ZFS_EXIT(zfsvfs);
-		error = zfs_vnode_lock(*vpp, cnp->cn_lkflags);
+		error = vn_lock(*vpp, cnp->cn_lkflags);
 		if (cnp->cn_flags & ISDOTDOT)
 			vn_lock(dvp, ltype | LK_RETRY);
 		if (error != 0) {

Modified: projects/bhyve_npt_pmap/sys/cddl/dev/fbt/fbt.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/cddl/dev/fbt/fbt.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/cddl/dev/fbt/fbt.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -574,7 +574,6 @@ static int
 fbt_ctfoff_init(modctl_t *lf, linker_ctf_t *lc)
 {
 	const Elf_Sym *symp = lc->symtab;;
-	const char *name;
 	const ctf_header_t *hp = (const ctf_header_t *) lc->ctftab;
 	const uint8_t *ctfdata = lc->ctftab + sizeof(ctf_header_t);
 	int i;
@@ -606,11 +605,6 @@ fbt_ctfoff_init(modctl_t *lf, linker_ctf
 			continue;
 		}
 
-		if (symp->st_name < lc->strcnt)
-			name = lc->strtab + symp->st_name;
-		else
-			name = "(?)";
-
 		switch (ELF_ST_TYPE(symp->st_info)) {
 		case STT_OBJECT:
 			if (objtoff >= hp->cth_funcoff ||

Modified: projects/bhyve_npt_pmap/sys/dev/mmc/mmc.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/dev/mmc/mmc.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/dev/mmc/mmc.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -106,7 +106,7 @@ struct mmc_ivars {
 
 #define CMD_RETRIES	3
 
-#define	CARD_ID_FREQUENCY 400000 /* Spec requires 400KHz max during ID phase. */
+#define	CARD_ID_FREQUENCY 400000 /* Spec requires 400kHz max during ID phase. */
 
 static SYSCTL_NODE(_hw, OID_AUTO, mmc, CTLFLAG_RD, NULL, "mmc driver");
 
@@ -447,8 +447,8 @@ mmc_wait_for_app_cmd(struct mmc_softc *s
 			err = appcmd.error;
 		if (err == MMC_ERR_NONE) {
 			if (!(appcmd.resp[0] & R1_APP_CMD))
-				return MMC_ERR_FAILED; /* Retries won't help. */
-			if (mmc_wait_for_cmd(sc, cmd, 0) != 0)
+				err = MMC_ERR_FAILED;
+			else if (mmc_wait_for_cmd(sc, cmd, 0) != 0)
 				err = MMC_ERR_FAILED;
 			else
 				err = cmd->error;

Modified: projects/bhyve_npt_pmap/sys/i386/i386/genassym.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/i386/i386/genassym.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/i386/i386/genassym.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -246,9 +246,8 @@ ASSYM(BUS_SPACE_HANDLE_IAT, offsetof(str
 #endif
 
 #ifdef XEN
-#include <xen/hypervisor.h>
 ASSYM(PC_CR3, offsetof(struct pcpu, pc_cr3));
-ASSYM(HYPERVISOR_VIRT_START, __HYPERVISOR_VIRT_START);
+ASSYM(XEN_HYPERVISOR_VIRT_START, HYPERVISOR_VIRT_START);
 #endif
 
 #ifdef	HWPMC_HOOKS

Modified: projects/bhyve_npt_pmap/sys/i386/xen/locore.s
==============================================================================
--- projects/bhyve_npt_pmap/sys/i386/xen/locore.s	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/i386/xen/locore.s	Fri Aug 23 18:38:43 2013	(r254730)
@@ -76,7 +76,7 @@
 	ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET,   .long,  KERNBASE)
 	ELFNOTE(Xen, XEN_ELFNOTE_ENTRY,          .long,  btext)
 	ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .long,  hypercall_page)
-	ELFNOTE(Xen, XEN_ELFNOTE_HV_START_LOW,   .long,  HYPERVISOR_VIRT_START)
+	ELFNOTE(Xen, XEN_ELFNOTE_HV_START_LOW,   .long,  XEN_HYPERVISOR_VIRT_START)
 #if 0
 	ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,       .asciz, "writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel")
 #endif

Modified: projects/bhyve_npt_pmap/sys/kern/uipc_socket.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/kern/uipc_socket.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/kern/uipc_socket.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -2699,21 +2699,16 @@ sosetopt(struct socket *so, struct socko
 			if (error)
 				goto bad;
 
-			/* assert(hz > 0); */
 			if (tv.tv_sec < 0 || tv.tv_sec > INT_MAX / hz ||
 			    tv.tv_usec < 0 || tv.tv_usec >= 1000000) {
 				error = EDOM;
 				goto bad;
 			}
-			/* assert(tick > 0); */
-			/* assert(ULONG_MAX - INT_MAX >= 1000000); */
-			val = (u_long)(tv.tv_sec * hz) + tv.tv_usec / tick;
-			if (val > INT_MAX) {
+			val = tvtohz(&tv);
+			if (val == INT_MAX) {
 				error = EDOM;
 				goto bad;
 			}
-			if (val == 0 && tv.tv_usec != 0)
-				val = 1;
 
 			switch (sopt->sopt_name) {
 			case SO_SNDTIMEO:

Modified: projects/bhyve_npt_pmap/sys/kern/uipc_syscalls.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/kern/uipc_syscalls.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/kern/uipc_syscalls.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -2230,7 +2230,8 @@ retry_space:
 			pindex = OFF_TO_IDX(off);
 			VM_OBJECT_WLOCK(obj);
 			pg = vm_page_grab(obj, pindex, VM_ALLOC_NOBUSY |
-			    VM_ALLOC_NORMAL | VM_ALLOC_WIRED);
+			    VM_ALLOC_IGN_SBUSY | VM_ALLOC_NORMAL |
+			    VM_ALLOC_WIRED);
 
 			/*
 			 * Check if page is valid for what we need,

Modified: projects/bhyve_npt_pmap/sys/kern/vfs_cluster.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/kern/vfs_cluster.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/kern/vfs_cluster.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -961,7 +961,7 @@ cluster_wbuild(struct vnode *vp, long si
 				VM_OBJECT_WLOCK(tbp->b_bufobj->bo_object);
 				if (i == 0) {
 					vfs_drain_busy_pages(tbp);
-				} else  { /* if not first buffer */
+				} else { /* if not first buffer */
 					for (j = 0; j < tbp->b_npages; j += 1) {
 						m = tbp->b_pages[j];
 						if (vm_page_xbusied(m)) {

Modified: projects/bhyve_npt_pmap/sys/mips/atheros/if_arge.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/mips/atheros/if_arge.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/mips/atheros/if_arge.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -371,6 +371,7 @@ arge_attach(device_t dev)
 	uint32_t		hint;
 	long			eeprom_mac_addr = 0;
 	int			miicfg = 0;
+	int			readascii = 0;
 
 	sc = device_get_softc(dev);
 	sc->arge_dev = dev;
@@ -384,16 +385,28 @@ arge_attach(device_t dev)
 	 * Since multiple units seem to use this feature, include
 	 * a method of setting the MAC address based on an flash location
 	 * in CPU address space.
+	 *
+	 * Some vendors have decided to store the mac address as a literal
+	 * string of 18 characters in xx:xx:xx:xx:xx:xx format instead of
+	 * an array of numbers.  Expose a hint to turn on this conversion
+	 * feature via strtol()
 	 */
-	if (sc->arge_mac_unit == 0 &&
-	    resource_long_value(device_get_name(dev), device_get_unit(dev),
+	 if (resource_long_value(device_get_name(dev), device_get_unit(dev),
 	    "eeprommac", &eeprom_mac_addr) == 0) {
 		int i;
 		const char *mac =
 		    (const char *) MIPS_PHYS_TO_KSEG1(eeprom_mac_addr);
 		device_printf(dev, "Overriding MAC from EEPROM\n");
-		for (i = 0; i < 6; i++) {
-			ar711_base_mac[i] = mac[i];
+		if (resource_int_value(device_get_name(dev), device_get_unit(dev),
+			"readascii", &readascii) == 0) {
+			device_printf(dev, "Vendor stores MAC in ASCII format\n");
+			for (i = 0; i < 6; i++) {
+				ar711_base_mac[i] = strtol(&(mac[i*3]), NULL, 16);
+			}
+		} else {
+			for (i = 0; i < 6; i++) {
+				ar711_base_mac[i] = mac[i];
+			}
 		}
 	}
 

Modified: projects/bhyve_npt_pmap/sys/mips/conf/DIR-825.hints
==============================================================================
--- projects/bhyve_npt_pmap/sys/mips/conf/DIR-825.hints	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/mips/conf/DIR-825.hints	Fri Aug 23 18:38:43 2013	(r254730)
@@ -6,13 +6,14 @@
 hint.arge.0.phymask=0x0
 hint.arge.0.media=1000
 hint.arge.0.fduplex=1
-
-# XXX grab these from uboot?
-# hint.arge.0.eeprommac=0x1f01fc00
+hint.arge.0.eeprommac=0x1f66ffa0
+hint.arge.0.readascii=1
 
 hint.arge.1.phymask=0x0
 hint.arge.1.media=1000
 hint.arge.1.fduplex=1
+hint.arge.1.eeprommac=0x1f66ffb4
+hint.arge.1.readascii=1
 
 # ath0 - slot 17
 hint.pcib.0.bus.0.17.0.ath_fixup_addr=0x1f661000

Modified: projects/bhyve_npt_pmap/sys/netinet/sctp_structs.h
==============================================================================
--- projects/bhyve_npt_pmap/sys/netinet/sctp_structs.h	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/netinet/sctp_structs.h	Fri Aug 23 18:38:43 2013	(r254730)
@@ -1205,7 +1205,7 @@ struct sctp_association {
 	/* JRS 5/21/07 - CMT PF variable */
 	uint8_t sctp_cmt_pf;
 	uint8_t use_precise_time;
-	uint32_t sctp_features;
+	uint64_t sctp_features;
 	uint16_t port;		/* remote UDP encapsulation port */
 	/*
 	 * The mapping array is used to track out of order sequences above

Modified: projects/bhyve_npt_pmap/sys/netinet/sctp_uio.h
==============================================================================
--- projects/bhyve_npt_pmap/sys/netinet/sctp_uio.h	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/netinet/sctp_uio.h	Fri Aug 23 18:38:43 2013	(r254730)
@@ -1149,7 +1149,7 @@ union sctp_sockstore {
 struct xsctp_inpcb {
 	uint32_t last;
 	uint32_t flags;
-	uint32_t features;
+	uint64_t features;
 	uint32_t total_sends;
 	uint32_t total_recvs;
 	uint32_t total_nospaces;
@@ -1157,7 +1157,7 @@ struct xsctp_inpcb {
 	uint16_t local_port;
 	uint16_t qlen;
 	uint16_t maxqlen;
-	uint32_t extra_padding[32];	/* future */
+	uint32_t extra_padding[31];	/* future */
 };
 
 struct xsctp_tcb {

Modified: projects/bhyve_npt_pmap/sys/sys/callout.h
==============================================================================
--- projects/bhyve_npt_pmap/sys/sys/callout.h	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/sys/callout.h	Fri Aug 23 18:38:43 2013	(r254730)
@@ -71,6 +71,9 @@ void	_callout_init_lock(struct callout *
 #define	callout_init_mtx(c, mtx, flags)					\
 	_callout_init_lock((c), ((mtx) != NULL) ? &(mtx)->lock_object :	\
 	    NULL, (flags))
+#define	callout_init_rm(c, rm, flags)					\
+	_callout_init_lock((c), ((rm != NULL) ? &(rm)->lock_object : 	\
+	    NULL, (flags))
 #define	callout_init_rw(c, rw, flags)					\
 	_callout_init_lock((c), ((rw) != NULL) ? &(rw)->lock_object :	\
 	   NULL, (flags))

Modified: projects/bhyve_npt_pmap/sys/sys/param.h
==============================================================================
--- projects/bhyve_npt_pmap/sys/sys/param.h	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/sys/param.h	Fri Aug 23 18:38:43 2013	(r254730)
@@ -58,7 +58,7 @@
  *		in the range 5 to 9.
  */
 #undef __FreeBSD_version
-#define __FreeBSD_version 1000047	/* Master, propagated to newvers */
+#define __FreeBSD_version 1000048	/* Master, propagated to newvers */
 
 /*
  * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,

Modified: projects/bhyve_npt_pmap/sys/vm/vm_page.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/vm/vm_page.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/vm/vm_page.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -2558,6 +2558,15 @@ vm_page_cache(vm_page_t m)
 		vm_page_free(m);
 		return;
 	}
+
+	/*
+	 * The above call to vm_radix_insert() could reclaim the one pre-
+	 * existing cached page from this object, resulting in a call to
+	 * vdrop().
+	 */
+	if (!cache_was_empty)
+		cache_was_empty = vm_radix_is_singleton(&object->cache);
+
 	m->flags |= PG_CACHED;
 	cnt.v_cache_count++;
 	PCPU_INC(cnt.v_tcached);

Modified: projects/bhyve_npt_pmap/sys/vm/vm_radix.c
==============================================================================
--- projects/bhyve_npt_pmap/sys/vm/vm_radix.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/vm/vm_radix.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -432,6 +432,21 @@ restart:
 }
 
 /*
+ * Returns TRUE if the specified radix tree contains a single leaf and FALSE
+ * otherwise.
+ */
+boolean_t
+vm_radix_is_singleton(struct vm_radix *rtree)
+{
+	struct vm_radix_node *rnode;
+
+	rnode = vm_radix_getroot(rtree);
+	if (rnode == NULL)
+		return (FALSE);
+	return (vm_radix_isleaf(rnode));
+}
+
+/*
  * Returns the value stored at the index.  If the index is not present,
  * NULL is returned.
  */

Modified: projects/bhyve_npt_pmap/sys/vm/vm_radix.h
==============================================================================
--- projects/bhyve_npt_pmap/sys/vm/vm_radix.h	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/sys/vm/vm_radix.h	Fri Aug 23 18:38:43 2013	(r254730)
@@ -37,6 +37,7 @@
 
 void		vm_radix_init(void);
 int		vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
+boolean_t	vm_radix_is_singleton(struct vm_radix *rtree);
 vm_page_t	vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index);
 vm_page_t	vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index);
 vm_page_t	vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);

Modified: projects/bhyve_npt_pmap/usr.sbin/rtadvd/config.c
==============================================================================
--- projects/bhyve_npt_pmap/usr.sbin/rtadvd/config.c	Fri Aug 23 18:06:42 2013	(r254729)
+++ projects/bhyve_npt_pmap/usr.sbin/rtadvd/config.c	Fri Aug 23 18:38:43 2013	(r254730)
@@ -1125,9 +1125,9 @@ add_prefix(struct rainfo *rai, struct in
 	pfx->pfx_onlinkflg = ipr->ipr_raf_onlink;
 	pfx->pfx_autoconfflg = ipr->ipr_raf_auto;
 	pfx->pfx_origin = PREFIX_FROM_DYNAMIC;
+	pfx->pfx_rainfo = rai;
 
 	TAILQ_INSERT_TAIL(&rai->rai_prefix, pfx, pfx_next);
-	pfx->pfx_rainfo = rai;
 
 	syslog(LOG_DEBUG, "<%s> new prefix %s/%d was added on %s",
 	    __func__,



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