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>