Date: Fri, 23 Aug 2013 18:50:48 +0000 (UTC) From: Mark Murray <markm@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r254732 - in projects/random_number_generator: contrib/libexecinfo contrib/llvm/tools/lldb lib/libc/include lib/libc/net lib/libc/posix1e lib/libc/resolv lib/libexecinfo share/man/man9 ... Message-ID: <201308231850.r7NIombv021199@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: markm Date: Fri Aug 23 18:50:47 2013 New Revision: 254732 URL: http://svnweb.freebsd.org/changeset/base/254732 Log: IFC Added: projects/random_number_generator/contrib/libexecinfo/ - copied from r254731, head/contrib/libexecinfo/ projects/random_number_generator/contrib/llvm/tools/lldb/ - copied from r254731, head/contrib/llvm/tools/lldb/ projects/random_number_generator/lib/libexecinfo/ - copied from r254731, head/lib/libexecinfo/ Modified: projects/random_number_generator/lib/libc/include/libc_private.h projects/random_number_generator/lib/libc/net/ether_addr.c projects/random_number_generator/lib/libc/net/eui64.c projects/random_number_generator/lib/libc/net/getaddrinfo.c projects/random_number_generator/lib/libc/net/gethostbyht.c projects/random_number_generator/lib/libc/net/getnetbyht.c projects/random_number_generator/lib/libc/net/getprotoent.c projects/random_number_generator/lib/libc/net/getservent.c projects/random_number_generator/lib/libc/net/hesiod.c projects/random_number_generator/lib/libc/net/nsdispatch.c projects/random_number_generator/lib/libc/net/rcmd.c projects/random_number_generator/lib/libc/posix1e/mac.c projects/random_number_generator/lib/libc/resolv/res_init.c projects/random_number_generator/lib/libc/resolv/res_query.c projects/random_number_generator/share/man/man9/timeout.9 projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/random_number_generator/sys/cddl/dev/fbt/fbt.c projects/random_number_generator/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c projects/random_number_generator/sys/dev/cxgbe/t4_sge.c projects/random_number_generator/sys/dev/mmc/mmc.c projects/random_number_generator/sys/kern/uipc_socket.c projects/random_number_generator/sys/kern/uipc_syscalls.c projects/random_number_generator/sys/kern/vfs_cluster.c projects/random_number_generator/sys/mips/atheros/if_arge.c projects/random_number_generator/sys/mips/conf/DIR-825.hints projects/random_number_generator/sys/sys/callout.h projects/random_number_generator/sys/vm/vm_page.c projects/random_number_generator/sys/vm/vm_radix.c projects/random_number_generator/sys/vm/vm_radix.h projects/random_number_generator/usr.sbin/rtadvd/config.c Directory Properties: projects/random_number_generator/ (props changed) projects/random_number_generator/contrib/llvm/ (props changed) projects/random_number_generator/lib/libc/ (props changed) projects/random_number_generator/sys/ (props changed) projects/random_number_generator/sys/cddl/contrib/opensolaris/ (props changed) projects/random_number_generator/usr.sbin/rtadvd/ (props changed) Modified: projects/random_number_generator/lib/libc/include/libc_private.h ============================================================================== --- projects/random_number_generator/lib/libc/include/libc_private.h Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/include/libc_private.h Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/ether_addr.c ============================================================================== --- projects/random_number_generator/lib/libc/net/ether_addr.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/ether_addr.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/eui64.c ============================================================================== --- projects/random_number_generator/lib/libc/net/eui64.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/eui64.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/getaddrinfo.c ============================================================================== --- projects/random_number_generator/lib/libc/net/getaddrinfo.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/getaddrinfo.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/gethostbyht.c ============================================================================== --- projects/random_number_generator/lib/libc/net/gethostbyht.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/gethostbyht.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/getnetbyht.c ============================================================================== --- projects/random_number_generator/lib/libc/net/getnetbyht.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/getnetbyht.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/getprotoent.c ============================================================================== --- projects/random_number_generator/lib/libc/net/getprotoent.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/getprotoent.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/getservent.c ============================================================================== --- projects/random_number_generator/lib/libc/net/getservent.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/getservent.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/hesiod.c ============================================================================== --- projects/random_number_generator/lib/libc/net/hesiod.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/hesiod.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/nsdispatch.c ============================================================================== --- projects/random_number_generator/lib/libc/net/nsdispatch.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/nsdispatch.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/net/rcmd.c ============================================================================== --- projects/random_number_generator/lib/libc/net/rcmd.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/net/rcmd.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/posix1e/mac.c ============================================================================== --- projects/random_number_generator/lib/libc/posix1e/mac.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/posix1e/mac.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/resolv/res_init.c ============================================================================== --- projects/random_number_generator/lib/libc/resolv/res_init.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/resolv/res_init.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/lib/libc/resolv/res_query.c ============================================================================== --- projects/random_number_generator/lib/libc/resolv/res_query.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/lib/libc/resolv/res_query.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/share/man/man9/timeout.9 ============================================================================== --- projects/random_number_generator/share/man/man9/timeout.9 Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/share/man/man9/timeout.9 Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h ============================================================================== --- projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c ============================================================================== --- projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/cddl/dev/fbt/fbt.c ============================================================================== --- projects/random_number_generator/sys/cddl/dev/fbt/fbt.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/cddl/dev/fbt/fbt.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c ============================================================================== --- projects/random_number_generator/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c Fri Aug 23 18:50:47 2013 (r254732) @@ -1097,9 +1097,8 @@ out: * If free is 1, then we've disassociated the EP from the QP * and we need to dereference the EP. */ - if (free) + if (free) put_ep(&ep->com); - CTR2(KTR_IW_CXGB, "%s exit state %d", __FUNCTION__, qhp->attr.state); return ret; Modified: projects/random_number_generator/sys/dev/cxgbe/t4_sge.c ============================================================================== --- projects/random_number_generator/sys/dev/cxgbe/t4_sge.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/dev/cxgbe/t4_sge.c Fri Aug 23 18:50:47 2013 (r254732) @@ -1802,9 +1802,7 @@ alloc_iq_fl(struct port_info *pi, struct /* Allocate space for one software descriptor per buffer. */ fl->cap = (fl->qsize - spg_len / RX_FL_ESIZE) * 8; - FL_LOCK(fl); rc = alloc_fl_sdesc(fl); - FL_UNLOCK(fl); if (rc != 0) { device_printf(sc->dev, "failed to setup fl software descriptors: %d\n", @@ -1937,11 +1935,8 @@ free_iq_fl(struct port_info *pi, struct free_ring(sc, fl->desc_tag, fl->desc_map, fl->ba, fl->desc); - if (fl->sdesc) { - FL_LOCK(fl); + if (fl->sdesc) free_fl_sdesc(fl); - FL_UNLOCK(fl); - } if (mtx_initialized(&fl->fl_lock)) mtx_destroy(&fl->fl_lock); @@ -2788,8 +2783,6 @@ alloc_fl_sdesc(struct sge_fl *fl) bus_dma_tag_t tag; int i, rc; - FL_LOCK_ASSERT_OWNED(fl); - fl->sdesc = malloc(fl->cap * sizeof(struct fl_sdesc), M_CXGBE, M_ZERO | M_WAITOK); @@ -2828,8 +2821,6 @@ free_fl_sdesc(struct sge_fl *fl) struct fl_sdesc *sd; int i; - FL_LOCK_ASSERT_OWNED(fl); - sd = fl->sdesc; for (i = 0; i < fl->cap; i++, sd++) { Modified: projects/random_number_generator/sys/dev/mmc/mmc.c ============================================================================== --- projects/random_number_generator/sys/dev/mmc/mmc.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/dev/mmc/mmc.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/kern/uipc_socket.c ============================================================================== --- projects/random_number_generator/sys/kern/uipc_socket.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/kern/uipc_socket.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/kern/uipc_syscalls.c ============================================================================== --- projects/random_number_generator/sys/kern/uipc_syscalls.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/kern/uipc_syscalls.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/kern/vfs_cluster.c ============================================================================== --- projects/random_number_generator/sys/kern/vfs_cluster.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/kern/vfs_cluster.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/mips/atheros/if_arge.c ============================================================================== --- projects/random_number_generator/sys/mips/atheros/if_arge.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/mips/atheros/if_arge.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/mips/conf/DIR-825.hints ============================================================================== --- projects/random_number_generator/sys/mips/conf/DIR-825.hints Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/mips/conf/DIR-825.hints Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/sys/callout.h ============================================================================== --- projects/random_number_generator/sys/sys/callout.h Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/sys/callout.h Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/vm/vm_page.c ============================================================================== --- projects/random_number_generator/sys/vm/vm_page.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/vm/vm_page.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/vm/vm_radix.c ============================================================================== --- projects/random_number_generator/sys/vm/vm_radix.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/vm/vm_radix.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/sys/vm/vm_radix.h ============================================================================== --- projects/random_number_generator/sys/vm/vm_radix.h Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/sys/vm/vm_radix.h Fri Aug 23 18:50:47 2013 (r254732) @@ -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/random_number_generator/usr.sbin/rtadvd/config.c ============================================================================== --- projects/random_number_generator/usr.sbin/rtadvd/config.c Fri Aug 23 18:45:39 2013 (r254731) +++ projects/random_number_generator/usr.sbin/rtadvd/config.c Fri Aug 23 18:50:47 2013 (r254732) @@ -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?201308231850.r7NIombv021199>