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/...
Neel Natu
neel at FreeBSD.org
Fri Aug 23 18:38:52 UTC 2013
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 at 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__,
More information about the svn-src-projects
mailing list