From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 01:16:05 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9B79FE0; Sun, 2 Dec 2012 01:16:05 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7586C8FC12; Sun, 2 Dec 2012 01:16:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB21G5Fm040286; Sun, 2 Dec 2012 01:16:05 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB21G51X040251; Sun, 2 Dec 2012 01:16:05 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201212020116.qB21G51X040251@svn.freebsd.org> From: Rick Macklem Date: Sun, 2 Dec 2012 01:16:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243782 - in head/sys: fs/nfs fs/nfsclient nfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 01:16:05 -0000 Author: rmacklem Date: Sun Dec 2 01:16:04 2012 New Revision: 243782 URL: http://svnweb.freebsd.org/changeset/base/243782 Log: Add an nfssvc() option to the kernel for the new NFS client which dumps out the actual options being used by an NFS mount. This will be used to implement a "-m" option for nfsstat(1). Reviewed by: alfred MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsclient/nfs_clport.c head/sys/fs/nfsclient/nfs_clvfsops.c head/sys/nfs/nfs_nfssvc.c head/sys/nfs/nfssvc.h Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Sun Dec 2 00:31:23 2012 (r243781) +++ head/sys/fs/nfs/nfs_var.h Sun Dec 2 01:16:04 2012 (r243782) @@ -313,6 +313,7 @@ void nfsd_init(void); int nfsd_checkrootexp(struct nfsrv_descript *); /* nfs_clvfsops.c */ +void nfscl_retopts(struct nfsmount *, char *, size_t); /* nfs_commonport.c */ int nfsrv_checksockseqnum(struct socket *, tcp_seq); Modified: head/sys/fs/nfsclient/nfs_clport.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clport.c Sun Dec 2 00:31:23 2012 (r243781) +++ head/sys/fs/nfsclient/nfs_clport.c Sun Dec 2 01:16:04 2012 (r243782) @@ -1201,6 +1201,9 @@ nfssvc_nfscl(struct thread *td, struct n struct nfscbd_args nfscbdarg; struct nfsd_nfscbd_args nfscbdarg2; int error; + struct nameidata nd; + struct nfscl_dumpmntopts dumpmntopts; + char *buf; if (uap->flag & NFSSVC_CBADDSOCK) { error = copyin(uap->argp, (caddr_t)&nfscbdarg, sizeof(nfscbdarg)); @@ -1233,6 +1236,28 @@ nfssvc_nfscl(struct thread *td, struct n if (error) return (error); error = nfscbd_nfsd(td, &nfscbdarg2); + } else if (uap->flag & NFSSVC_DUMPMNTOPTS) { + error = copyin(uap->argp, &dumpmntopts, sizeof(dumpmntopts)); + if (error == 0 && (dumpmntopts.ndmnt_blen < 256 || + dumpmntopts.ndmnt_blen > 1024)) + error = EINVAL; + if (error == 0) + error = nfsrv_lookupfilename(&nd, + dumpmntopts.ndmnt_fname, td); + if (error == 0 && strcmp(nd.ni_vp->v_mount->mnt_vfc->vfc_name, + "nfs") != 0) { + vput(nd.ni_vp); + error = EINVAL; + } + if (error == 0) { + buf = malloc(dumpmntopts.ndmnt_blen, M_TEMP, M_WAITOK); + nfscl_retopts(VFSTONFS(nd.ni_vp->v_mount), buf, + dumpmntopts.ndmnt_blen); + vput(nd.ni_vp); + error = copyout(buf, dumpmntopts.ndmnt_buf, + dumpmntopts.ndmnt_blen); + free(buf, M_TEMP); + } } else { error = EINVAL; } Modified: head/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvfsops.c Sun Dec 2 00:31:23 2012 (r243781) +++ head/sys/fs/nfsclient/nfs_clvfsops.c Sun Dec 2 01:16:04 2012 (r243782) @@ -1627,3 +1627,105 @@ nfs_getnlminfo(struct vnode *vp, uint8_t } } +/* + * This function prints out an option name, based on the conditional + * argument. + */ +static __inline void nfscl_printopt(struct nfsmount *nmp, int testval, + char *opt, char **buf, size_t *blen) +{ + int len; + + if (testval != 0 && *blen > strlen(opt)) { + len = snprintf(*buf, *blen, "%s", opt); + if (len != strlen(opt)) + printf("EEK!!\n"); + *buf += len; + *blen -= len; + } +} + +/* + * This function printf out an options integer value. + */ +static __inline void nfscl_printoptval(struct nfsmount *nmp, int optval, + char *opt, char **buf, size_t *blen) +{ + int len; + + if (*blen > strlen(opt) + 1) { + /* Could result in truncated output string. */ + len = snprintf(*buf, *blen, "%s=%d", opt, optval); + if (len < *blen) { + *buf += len; + *blen -= len; + } + } +} + +/* + * Load the option flags and values into the buffer. + */ +void nfscl_retopts(struct nfsmount *nmp, char *buffer, size_t buflen) +{ + char *buf; + size_t blen; + + buf = buffer; + blen = buflen; + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_NFSV4) != 0, "nfsv4", &buf, + &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_NFSV3) != 0, "nfsv3", &buf, + &blen); + nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_NFSV3 | NFSMNT_NFSV4)) == 0, + "nfsv2", &buf, &blen); + nfscl_printopt(nmp, nmp->nm_sotype == SOCK_STREAM, ",tcp", &buf, &blen); + nfscl_printopt(nmp, nmp->nm_sotype != SOCK_STREAM, ",udp", &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_RESVPORT) != 0, ",resvport", + &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_NOCONN) != 0, ",noconn", + &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_SOFT) == 0, ",hard", &buf, + &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_SOFT) != 0, ",soft", &buf, + &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_INT) != 0, ",intr", &buf, + &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_NOCTO) == 0, ",cto", &buf, + &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_NOCTO) != 0, ",nocto", &buf, + &blen); + nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_NOLOCKD | NFSMNT_NFSV4)) == + 0, ",lockd", &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_NOLOCKD | NFSMNT_NFSV4)) == + NFSMNT_NOLOCKD, ",nolockd", &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_RDIRPLUS) != 0, ",rdirplus", + &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_KERB) == 0, ",sec=sys", + &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_KERB | NFSMNT_INTEGRITY | + NFSMNT_PRIVACY)) == NFSMNT_KERB, ",sec=krb5", &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_KERB | NFSMNT_INTEGRITY | + NFSMNT_PRIVACY)) == (NFSMNT_KERB | NFSMNT_INTEGRITY), ",sec=krb5i", + &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_KERB | NFSMNT_INTEGRITY | + NFSMNT_PRIVACY)) == (NFSMNT_KERB | NFSMNT_PRIVACY), ",sec=krb5p", + &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_acdirmin, ",acdirmin", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_acdirmax, ",acdirmax", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_acregmin, ",acregmin", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_acregmax, ",acregmax", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_nametimeo, ",nametimeo", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_negnametimeo, ",negnametimeo", &buf, + &blen); + nfscl_printoptval(nmp, nmp->nm_rsize, ",rsize", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_wsize, ",wsize", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_readdirsize, ",readdirsize", &buf, + &blen); + nfscl_printoptval(nmp, nmp->nm_readahead, ",readahead", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_wcommitsize, ",wcommitsize", &buf, + &blen); + nfscl_printoptval(nmp, nmp->nm_timeo, ",timeout", &buf, &blen); + nfscl_printoptval(nmp, nmp->nm_retry, ",retrans", &buf, &blen); +} + Modified: head/sys/nfs/nfs_nfssvc.c ============================================================================== --- head/sys/nfs/nfs_nfssvc.c Sun Dec 2 00:31:23 2012 (r243781) +++ head/sys/nfs/nfs_nfssvc.c Sun Dec 2 01:16:04 2012 (r243782) @@ -91,8 +91,8 @@ sys_nfssvc(struct thread *td, struct nfs if ((uap->flag & (NFSSVC_ADDSOCK | NFSSVC_OLDNFSD | NFSSVC_NFSD)) && nfsd_call_nfsserver != NULL) error = (*nfsd_call_nfsserver)(td, uap); - else if ((uap->flag & (NFSSVC_CBADDSOCK | NFSSVC_NFSCBD)) && - nfsd_call_nfscl != NULL) + else if ((uap->flag & (NFSSVC_CBADDSOCK | NFSSVC_NFSCBD | + NFSSVC_DUMPMNTOPTS)) && nfsd_call_nfscl != NULL) error = (*nfsd_call_nfscl)(td, uap); else if ((uap->flag & (NFSSVC_IDNAME | NFSSVC_GETSTATS | NFSSVC_GSSDADDPORT | NFSSVC_GSSDADDFIRST | NFSSVC_GSSDDELETEALL | Modified: head/sys/nfs/nfssvc.h ============================================================================== --- head/sys/nfs/nfssvc.h Sun Dec 2 00:31:23 2012 (r243781) +++ head/sys/nfs/nfssvc.h Sun Dec 2 01:16:04 2012 (r243782) @@ -68,5 +68,13 @@ #define NFSSVC_ZEROSRVSTATS 0x02000000 /* modifier for GETSTATS */ #define NFSSVC_SUSPENDNFSD 0x04000000 #define NFSSVC_RESUMENFSD 0x08000000 +#define NFSSVC_DUMPMNTOPTS 0x10000000 + +/* Argument structure for NFSSVC_DUMPMNTOPTS. */ +struct nfscl_dumpmntopts { + char *ndmnt_fname; /* File Name */ + size_t ndmnt_blen; /* Size of buffer */ + void *ndmnt_buf; /* and the buffer */ +}; #endif /* _NFS_NFSSVC_H */ From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 01:20:44 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6A8BF3A4; Sun, 2 Dec 2012 01:20:44 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3432E8FC13; Sun, 2 Dec 2012 01:20:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB21Ki5F041152; Sun, 2 Dec 2012 01:20:44 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB21KibQ041151; Sun, 2 Dec 2012 01:20:44 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201212020120.qB21KibQ041151@svn.freebsd.org> From: Rick Macklem Date: Sun, 2 Dec 2012 01:20:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243783 - head/usr.bin/nfsstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 01:20:44 -0000 Author: rmacklem Date: Sun Dec 2 01:20:43 2012 New Revision: 243783 URL: http://svnweb.freebsd.org/changeset/base/243783 Log: Add a "-m" option to nfsstat, which dumps out the actual options used by all NFS mounts. Works for the new/default NFS client only. Reviewed by: alfred MFC after: 2 weeks Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c ============================================================================== --- head/usr.bin/nfsstat/nfsstat.c Sun Dec 2 01:16:04 2012 (r243782) +++ head/usr.bin/nfsstat/nfsstat.c Sun Dec 2 01:20:43 2012 (r243783) @@ -107,14 +107,36 @@ main(int argc, char **argv) int ch; char *memf, *nlistf; char errbuf[_POSIX2_LINE_MAX]; + int mntlen, i; + char buf[1024]; + struct statfs *mntbuf; + struct nfscl_dumpmntopts dumpmntopts; interval = 0; memf = nlistf = NULL; - while ((ch = getopt(argc, argv, "cesWM:N:ow:z")) != -1) + while ((ch = getopt(argc, argv, "cesWM:mN:ow:z")) != -1) switch(ch) { case 'M': memf = optarg; break; + case 'm': + /* Display mount options for NFS mount points. */ + mntlen = getmntinfo(&mntbuf, MNT_NOWAIT); + for (i = 0; i < mntlen; i++) { + if (strcmp(mntbuf->f_fstypename, "nfs") == 0) { + dumpmntopts.ndmnt_fname = + mntbuf->f_mntonname; + dumpmntopts.ndmnt_buf = buf; + dumpmntopts.ndmnt_blen = sizeof(buf); + if (nfssvc(NFSSVC_DUMPMNTOPTS, + &dumpmntopts) >= 0) + printf("%s on %s\n%s\n", + mntbuf->f_mntfromname, + mntbuf->f_mntonname, buf); + } + mntbuf++; + } + exit(0); case 'N': nlistf = optarg; break; @@ -646,7 +668,7 @@ void usage(void) { (void)fprintf(stderr, - "usage: nfsstat [-ceoszW] [-M core] [-N system] [-w wait]\n"); + "usage: nfsstat [-cemoszW] [-M core] [-N system] [-w wait]\n"); exit(1); } From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 01:25:19 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CEFB4527; Sun, 2 Dec 2012 01:25:19 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B21478FC0C; Sun, 2 Dec 2012 01:25:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB21PJKm041959; Sun, 2 Dec 2012 01:25:19 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB21PJcG041957; Sun, 2 Dec 2012 01:25:19 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201212020125.qB21PJcG041957@svn.freebsd.org> From: Rick Macklem Date: Sun, 2 Dec 2012 01:25:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243784 - head/usr.bin/nfsstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 01:25:20 -0000 Author: rmacklem Date: Sun Dec 2 01:25:19 2012 New Revision: 243784 URL: http://svnweb.freebsd.org/changeset/base/243784 Log: Document the "-m" option added by r243783. This is a content change. Reviewed by: alfred MFC after: 2 weeks Modified: head/usr.bin/nfsstat/nfsstat.1 Modified: head/usr.bin/nfsstat/nfsstat.1 ============================================================================== --- head/usr.bin/nfsstat/nfsstat.1 Sun Dec 2 01:20:43 2012 (r243783) +++ head/usr.bin/nfsstat/nfsstat.1 Sun Dec 2 01:25:19 2012 (r243784) @@ -28,7 +28,7 @@ .\" From: @(#)nfsstat.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd May 4, 2011 +.Dd November 14, 2012 .Dt NFSSTAT 1 .Os .Sh NAME @@ -38,7 +38,7 @@ statistics .Sh SYNOPSIS .Nm -.Op Fl ceoszW +.Op Fl cemoszW .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait @@ -62,6 +62,12 @@ This option is incompatible with Extract values associated with the name list from the specified core instead of the default .Pa /dev/kmem . +.It Fl m +Report the mount options for all new NFS client mounts. +This option overrides all others and +.Nm +will exit after completing the report. +This option is only supported by the new NFS client. .It Fl N Extract the name list from the specified system instead of the default .Pa /boot/kernel/kernel . From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 05:57:54 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 280E1FB4; Sun, 2 Dec 2012 05:57:54 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 074738FC12; Sun, 2 Dec 2012 05:57:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB25vrhC092578; Sun, 2 Dec 2012 05:57:53 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB25vre1092577; Sun, 2 Dec 2012 05:57:53 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201212020557.qB25vre1092577@svn.freebsd.org> From: Alfred Perlstein Date: Sun, 2 Dec 2012 05:57:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243785 - head/usr.sbin/nfsd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 05:57:54 -0000 Author: alfred Date: Sun Dec 2 05:57:53 2012 New Revision: 243785 URL: http://svnweb.freebsd.org/changeset/base/243785 Log: Document maxthreads and minthreads arguments Modified: head/usr.sbin/nfsd/nfsd.8 Modified: head/usr.sbin/nfsd/nfsd.8 ============================================================================== --- head/usr.sbin/nfsd/nfsd.8 Sun Dec 2 01:25:19 2012 (r243784) +++ head/usr.sbin/nfsd/nfsd.8 Sun Dec 2 05:57:53 2012 (r243785) @@ -41,6 +41,8 @@ server .Op Fl arduteo .Op Fl n Ar num_servers .Op Fl h Ar bindip +.Op Fl maxthreads Ar max_threads +.Op Fl minthreads Ar min_threads .Sh DESCRIPTION The .Nm @@ -74,8 +76,17 @@ Unregister the service with .Xr rpcbind 8 without creating any servers. -.It Fl n -Specifies how many servers to create. +.It Fl n Ar threads +Specifies how many servers to create. This option is equivalent to specifying +.Fl maxthreads +and +.Fl minthreads +with their respective arguments to +.Ar threads . +.It Fl maxthreads Ar threads +Specifies the maximum servers that will be kept around to service requests. +.It Fl minthreads Ar threads +Specifies the minimum servers that will be kept around to service requests. .It Fl h Ar bindip Specifies which IP address or hostname to bind to on the local host. This option is recommended when a host has multiple interfaces. From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 06:24:09 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F18554EC; Sun, 2 Dec 2012 06:24:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D3DF48FC08; Sun, 2 Dec 2012 06:24:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB26O8qH097809; Sun, 2 Dec 2012 06:24:08 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB26O81n097804; Sun, 2 Dec 2012 06:24:08 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212020624.qB26O81n097804@svn.freebsd.org> From: Adrian Chadd Date: Sun, 2 Dec 2012 06:24:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243786 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 06:24:09 -0000 Author: adrian Date: Sun Dec 2 06:24:08 2012 New Revision: 243786 URL: http://svnweb.freebsd.org/changeset/base/243786 Log: Delete the per-TXQ locks and replace them with a single TX lock. I couldn't think of a way to maintain the hardware TXQ locks _and_ layer on top of that per-TXQ software queuing and any other kind of fine-grained locks (eg per-TID, or per-node locks.) So for now, to facilitate some further code refactoring and development as part of the final push to get software queue ps-poll and u-apsd handling into this driver, just do away with them entirely. I may eventually bring them back at some point, when it looks slightly more architectually cleaner to do so. But as it stands at the present, it's not really buying us much: * in order to properly serialise things and not get bitten by scheduling and locking interactions with things higher up in the stack, we need to wrap the whole TX path in a long held lock. Otherwise we can end up being pre-empted during frame handling, resulting in some out of order frame handling between sequence number allocation and encryption handling (ie, the seqno and the CCMP IV get out of sequence); * .. so whilst that's the case, holding the lock for that long means that we're acquiring and releasing the TXQ lock _inside_ that context; * And we also acquire it per-frame during frame completion, but we currently can't hold the lock for the duration of the TX completion as we need to call net80211 layer things with the locks _unheld_ to avoid LOR. * .. the other places were grab that lock are reset/flush, which don't happen often. My eventual aim is to change the TX path so all rejected frame transmissions and all frame completions result in any ieee80211_free_node() calls to occur outside of the TX lock; then I can cut back on the amount of locking that goes on here. There may be some LORs that occur when ieee80211_free_node() is called when the TX queue path fails; I'll begin to address these in follow-up commits. Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_beacon.c head/sys/dev/ath/if_ath_tx.c head/sys/dev/ath/if_ath_tx_edma.c head/sys/dev/ath/if_ath_tx_ht.c head/sys/dev/ath/if_athvar.h Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Sun Dec 2 05:57:53 2012 (r243785) +++ head/sys/dev/ath/if_ath.c Sun Dec 2 06:24:08 2012 (r243786) @@ -1369,7 +1369,6 @@ ath_vap_delete(struct ieee80211vap *vap) * Reclaim any pending mcast frames for the vap. */ ath_tx_draintxq(sc, &avp->av_mcastq); - ATH_TXQ_LOCK_DESTROY(&avp->av_mcastq); } /* * Update bookkeeping. @@ -2271,16 +2270,16 @@ ath_reset(struct ifnet *ifp, ATH_RESET_T /* Restart TX/RX as needed */ ath_txrx_start(sc); - /* XXX Restart TX completion and pending TX */ + /* Restart TX completion and pending TX */ if (reset_type == ATH_RESET_NOLOSS) { + ATH_TX_LOCK(sc); for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { if (ATH_TXQ_SETUP(sc, i)) { - ATH_TXQ_LOCK(&sc->sc_txq[i]); ath_txq_restart_dma(sc, &sc->sc_txq[i]); ath_txq_sched(sc, &sc->sc_txq[i]); - ATH_TXQ_UNLOCK(&sc->sc_txq[i]); } } + ATH_TX_UNLOCK(sc); } /* @@ -2513,7 +2512,9 @@ ath_start_task(void *arg, int npending) sc->sc_txstart_cnt++; ATH_PCU_UNLOCK(sc); + ATH_TX_LOCK(sc); ath_start(sc->sc_ifp); + ATH_TX_UNLOCK(sc); ATH_PCU_LOCK(sc); sc->sc_txstart_cnt--; @@ -2534,6 +2535,8 @@ ath_start(struct ifnet *ifp) if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || sc->sc_invalid) return; + ATH_TX_LOCK_ASSERT(sc); + ATH_KTR(sc, ATH_KTR_TX, 0, "ath_start: called"); for (;;) { @@ -2605,6 +2608,10 @@ ath_start(struct ifnet *ifp) ath_returnbuf_head(sc, bf); ath_txfrag_cleanup(sc, &frags, ni); ATH_TXBUF_UNLOCK(sc); + /* + * XXX todo, free the node outside of + * the TX lock context! + */ if (ni != NULL) ieee80211_free_node(ni); continue; @@ -2816,9 +2823,6 @@ void ath_txqmove(struct ath_txq *dst, struct ath_txq *src) { - ATH_TXQ_LOCK_ASSERT(dst); - ATH_TXQ_LOCK_ASSERT(src); - TAILQ_CONCAT(&dst->axq_q, &src->axq_q, bf_list); dst->axq_link = src->axq_link; src->axq_link = NULL; @@ -3298,7 +3302,6 @@ ath_txq_init(struct ath_softc *sc, struc txq->axq_softc = sc; TAILQ_INIT(&txq->axq_q); TAILQ_INIT(&txq->axq_tidq); - ATH_TXQ_LOCK_INIT(sc, txq); } /* @@ -3482,7 +3485,6 @@ ath_tx_cleanupq(struct ath_softc *sc, st { ath_hal_releasetxqueue(sc->sc_ah, txq->axq_qnum); - ATH_TXQ_LOCK_DESTROY(txq); sc->sc_txqsetup &= ~(1<axq_qnum); } @@ -3691,7 +3693,7 @@ ath_tx_process_buf_completion(struct ath struct ieee80211_node *ni = bf->bf_node; struct ath_node *an = NULL; - ATH_TXQ_UNLOCK_ASSERT(txq); + ATH_TX_UNLOCK_ASSERT(sc); /* If unicast frame, update general statistics */ if (ni != NULL) { @@ -3760,11 +3762,11 @@ ath_tx_processq(struct ath_softc *sc, st nacked = 0; for (;;) { - ATH_TXQ_LOCK(txq); + ATH_TX_LOCK(sc); txq->axq_intrcnt = 0; /* reset periodic desc intr count */ bf = TAILQ_FIRST(&txq->axq_q); if (bf == NULL) { - ATH_TXQ_UNLOCK(txq); + ATH_TX_UNLOCK(sc); break; } ds = bf->bf_lastds; /* XXX must be setup correctly! */ @@ -3792,7 +3794,7 @@ ath_tx_processq(struct ath_softc *sc, st ATH_KTR(sc, ATH_KTR_TXCOMP, 3, "ath_tx_processq: txq=%u, bf=%p ds=%p, HAL_EINPROGRESS", txq->axq_qnum, bf, ds); - ATH_TXQ_UNLOCK(txq); + ATH_TX_UNLOCK(sc); break; } ATH_TXQ_REMOVE(txq, bf, bf_list); @@ -3833,7 +3835,7 @@ ath_tx_processq(struct ath_softc *sc, st ATH_RSSI_LPF(sc->sc_halstats.ns_avgtxrssi, ts->ts_rssi); } - ATH_TXQ_UNLOCK(txq); + ATH_TX_UNLOCK(sc); /* * Update statistics and call completion @@ -3852,9 +3854,9 @@ ath_tx_processq(struct ath_softc *sc, st /* Kick the TXQ scheduler */ if (dosched) { - ATH_TXQ_LOCK(txq); + ATH_TX_LOCK(sc); ath_txq_sched(sc, txq); - ATH_TXQ_UNLOCK(txq); + ATH_TX_UNLOCK(sc); } ATH_KTR(sc, ATH_KTR_TXCOMP, 1, @@ -4027,13 +4029,13 @@ ath_txq_sched_tasklet(void *arg, int npe sc->sc_txproc_cnt++; ATH_PCU_UNLOCK(sc); + ATH_TX_LOCK(sc); for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { if (ATH_TXQ_SETUP(sc, i)) { - ATH_TXQ_LOCK(&sc->sc_txq[i]); ath_txq_sched(sc, &sc->sc_txq[i]); - ATH_TXQ_UNLOCK(&sc->sc_txq[i]); } } + ATH_TX_UNLOCK(sc); ATH_PCU_LOCK(sc); sc->sc_txproc_cnt--; @@ -4166,7 +4168,7 @@ ath_tx_draintxq(struct ath_softc *sc, st ATH_TXBUF_UNLOCK(sc); for (ix = 0;; ix++) { - ATH_TXQ_LOCK(txq); + ATH_TX_LOCK(sc); bf = TAILQ_FIRST(&txq->axq_q); if (bf == NULL) { txq->axq_link = NULL; @@ -4181,7 +4183,7 @@ ath_tx_draintxq(struct ath_softc *sc, st * very fruity very quickly. */ txq->axq_fifo_depth = 0; - ATH_TXQ_UNLOCK(txq); + ATH_TX_UNLOCK(sc); break; } ATH_TXQ_REMOVE(txq, bf, bf_list); @@ -4217,7 +4219,7 @@ ath_tx_draintxq(struct ath_softc *sc, st * Clear ATH_BUF_BUSY; the completion handler * will free the buffer. */ - ATH_TXQ_UNLOCK(txq); + ATH_TX_UNLOCK(sc); bf->bf_flags &= ~ATH_BUF_BUSY; if (bf->bf_comp) bf->bf_comp(sc, bf, 1); Modified: head/sys/dev/ath/if_ath_beacon.c ============================================================================== --- head/sys/dev/ath/if_ath_beacon.c Sun Dec 2 05:57:53 2012 (r243785) +++ head/sys/dev/ath/if_ath_beacon.c Sun Dec 2 06:24:08 2012 (r243786) @@ -564,8 +564,7 @@ ath_beacon_generate(struct ath_softc *sc struct ath_hal *ah = sc->sc_ah; /* NB: only at DTIM */ - ATH_TXQ_LOCK(cabq); - ATH_TXQ_LOCK(&avp->av_mcastq); + ATH_TX_LOCK(sc); if (nmcastq) { struct ath_buf *bfm; @@ -586,8 +585,7 @@ ath_beacon_generate(struct ath_softc *sc /* NB: gated by beacon so safe to start here */ if (! TAILQ_EMPTY(&(cabq->axq_q))) ath_hal_txstart(ah, cabq->axq_qnum); - ATH_TXQ_UNLOCK(&avp->av_mcastq); - ATH_TXQ_UNLOCK(cabq); + ATH_TX_UNLOCK(sc); } return bf; } Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Sun Dec 2 05:57:53 2012 (r243785) +++ head/sys/dev/ath/if_ath_tx.c Sun Dec 2 06:24:08 2012 (r243786) @@ -708,7 +708,8 @@ static void ath_tx_handoff_mcast(struct ath_softc *sc, struct ath_txq *txq, struct ath_buf *bf) { - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); + KASSERT((bf->bf_flags & ATH_BUF_BUSY) == 0, ("%s: busy status 0x%x", __func__, bf->bf_flags)); if (txq->axq_link != NULL) { @@ -745,7 +746,7 @@ ath_tx_handoff_hw(struct ath_softc *sc, * the SWBA handler since frames only go out on DTIM and * to avoid possible races. */ - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); KASSERT((bf->bf_flags & ATH_BUF_BUSY) == 0, ("%s: busy status 0x%x", __func__, bf->bf_flags)); KASSERT(txq->axq_qnum != ATH_TXQ_SWQ, @@ -924,7 +925,7 @@ ath_legacy_tx_dma_restart(struct ath_sof struct ath_hal *ah = sc->sc_ah; struct ath_buf *bf, *bf_last; - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); /* This is always going to be cleared, empty or not */ txq->axq_flags &= ~ATH_TXQ_PUTPENDING; @@ -950,7 +951,7 @@ static void ath_legacy_xmit_handoff(struct ath_softc *sc, struct ath_txq *txq, struct ath_buf *bf) { - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); #ifdef ATH_DEBUG_ALQ if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_EDMA_TXDESC)) @@ -1395,7 +1396,7 @@ ath_tx_update_clrdmask(struct ath_softc struct ath_buf *bf) { - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); if (tid->clrdmask == 1) { bf->bf_state.bfs_txflags |= HAL_TXDESC_CLRDMASK; @@ -1421,7 +1422,7 @@ ath_tx_xmit_normal(struct ath_softc *sc, struct ath_node *an = ATH_NODE(bf->bf_node); struct ath_tid *tid = &an->an_tid[bf->bf_state.bfs_tid]; - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); /* * For now, just enable CLRDMASK. ath_tx_xmit_normal() does @@ -1492,7 +1493,7 @@ ath_tx_normal_setup(struct ath_softc *sc * re-ordered frames to have out of order CCMP PN's, resulting * in many, many frame drops. */ - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); wh = mtod(m0, struct ieee80211_frame *); iswep = wh->i_fc[1] & IEEE80211_FC1_WEP; @@ -1788,6 +1789,8 @@ ath_tx_start(struct ath_softc *sc, struc ieee80211_seq seqno; uint8_t type, subtype; + ATH_TX_LOCK_ASSERT(sc); + /* * Determine the target hardware queue. * @@ -1817,15 +1820,10 @@ ath_tx_start(struct ath_softc *sc, struc * XXX duplicated in ath_raw_xmit(). */ if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { - ATH_TXQ_LOCK(sc->sc_cabq); - if (sc->sc_cabq->axq_depth > sc->sc_txq_mcastq_maxdepth) { sc->sc_stats.ast_tx_mcastq_overflow++; r = ENOBUFS; } - - ATH_TXQ_UNLOCK(sc->sc_cabq); - if (r != 0) { m_freem(m0); return r; @@ -1867,16 +1865,6 @@ ath_tx_start(struct ath_softc *sc, struc /* XXX should just bzero the bf_state? */ bf->bf_state.bfs_dobaw = 0; - /* - * Acquire the TXQ lock early, so both the encap and seqno - * are allocated together. - * - * XXX should TXQ for CABQ traffic be the multicast queue, - * or the TXQ the given PRI would allocate from? (eg for - * sequence number allocation locking.) - */ - ATH_TXQ_LOCK(txq); - /* A-MPDU TX? Manually set sequence number */ /* * Don't do it whilst pending; the net80211 layer still @@ -1964,8 +1952,6 @@ ath_tx_start(struct ath_softc *sc, struc ath_tx_xmit_normal(sc, txq, bf); #endif done: - ATH_TXQ_UNLOCK(txq); - return 0; } @@ -1990,6 +1976,8 @@ ath_tx_raw_start(struct ath_softc *sc, s int o_tid = -1; int do_override; + ATH_TX_LOCK_ASSERT(sc); + wh = mtod(m0, struct ieee80211_frame *); ismcast = IEEE80211_IS_MULTICAST(wh->i_addr1); hdrlen = ieee80211_anyhdrsize(wh); @@ -2024,8 +2012,6 @@ ath_tx_raw_start(struct ath_softc *sc, s pri = TID_TO_WME_AC(o_tid); } - ATH_TXQ_LOCK(sc->sc_ac2q[pri]); - /* Handle encryption twiddling if needed */ if (! ath_tx_tag_crypto(sc, ni, m0, params->ibp_flags & IEEE80211_BPF_CRYPTO, 0, @@ -2188,8 +2174,6 @@ ath_tx_raw_start(struct ath_softc *sc, s bf->bf_state.bfs_txflags |= HAL_TXDESC_CLRDMASK; ath_tx_xmit_normal(sc, sc->sc_ac2q[pri], bf); #endif - ATH_TXQ_UNLOCK(sc->sc_ac2q[pri]); - return 0; } @@ -2237,15 +2221,11 @@ ath_raw_xmit(struct ieee80211_node *ni, * XXX duplicated in ath_tx_start(). */ if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { - ATH_TXQ_LOCK(sc->sc_cabq); - if (sc->sc_cabq->axq_depth > sc->sc_txq_mcastq_maxdepth) { sc->sc_stats.ast_tx_mcastq_overflow++; error = ENOBUFS; } - ATH_TXQ_UNLOCK(sc->sc_cabq); - if (error != 0) { m_freem(m); goto bad; @@ -2435,8 +2415,7 @@ ath_tx_addto_baw(struct ath_softc *sc, s int index, cindex; struct ieee80211_tx_ampdu *tap; - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); if (bf->bf_state.bfs_isretried) return; @@ -2531,8 +2510,7 @@ ath_tx_switch_baw_buf(struct ath_softc * struct ieee80211_tx_ampdu *tap; int seqno = SEQNO(old_bf->bf_state.bfs_seqno); - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); tap = ath_tx_get_tx_tid(an, tid->tid); index = ATH_BA_INDEX(tap->txa_start, seqno); @@ -2580,8 +2558,7 @@ ath_tx_update_baw(struct ath_softc *sc, struct ieee80211_tx_ampdu *tap; int seqno = SEQNO(bf->bf_state.bfs_seqno); - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); tap = ath_tx_get_tx_tid(an, tid->tid); index = ATH_BA_INDEX(tap->txa_start, seqno); @@ -2637,7 +2614,7 @@ ath_tx_tid_sched(struct ath_softc *sc, s { struct ath_txq *txq = sc->sc_ac2q[tid->ac]; - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); if (tid->paused) return; /* paused, can't schedule yet */ @@ -2661,7 +2638,7 @@ ath_tx_tid_unsched(struct ath_softc *sc, { struct ath_txq *txq = sc->sc_ac2q[tid->ac]; - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); if (tid->sched == 0) return; @@ -2697,7 +2674,7 @@ ath_tx_tid_seqno_assign(struct ath_softc if (! IEEE80211_QOS_HAS_SEQ(wh)) return -1; - ATH_TID_LOCK_ASSERT(sc, &(ATH_NODE(ni)->an_tid[tid])); + ATH_TX_LOCK_ASSERT(sc); /* * Is it a QOS NULL Data frame? Give it a sequence number from @@ -2746,8 +2723,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s bf->bf_state.bfs_txq->axq_qnum); } - ATH_TXQ_LOCK_ASSERT(txq); - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); tap = ath_tx_get_tx_tid(an, tid->tid); @@ -2832,7 +2808,7 @@ ath_tx_swq(struct ath_softc *sc, struct int pri, tid; struct mbuf *m0 = bf->bf_m; - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); /* Fetch the TID - non-QoS frames get assigned to TID 16 */ wh = mtod(m0, struct ieee80211_frame *); @@ -2840,8 +2816,6 @@ ath_tx_swq(struct ath_softc *sc, struct tid = ath_tx_gettid(sc, m0); atid = &an->an_tid[tid]; - ATH_TID_LOCK_ASSERT(sc, atid); - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p, pri=%d, tid=%d, qos=%d\n", __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); @@ -2970,7 +2944,7 @@ static void ath_tx_tid_pause(struct ath_softc *sc, struct ath_tid *tid) { - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + ATH_TX_LOCK_ASSERT(sc); tid->paused++; DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, "%s: paused = %d\n", __func__, tid->paused); @@ -2982,7 +2956,8 @@ ath_tx_tid_pause(struct ath_softc *sc, s static void ath_tx_tid_resume(struct ath_softc *sc, struct ath_tid *tid) { - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + + ATH_TX_LOCK_ASSERT(sc); tid->paused--; @@ -3022,7 +2997,8 @@ ath_tx_tid_filt_addbuf(struct ath_softc struct ath_buf *bf) { - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); + if (! tid->isfiltered) device_printf(sc->sc_dev, "%s: not filtered?!\n", __func__); @@ -3045,7 +3021,7 @@ ath_tx_tid_filt_comp_buf(struct ath_soft struct ath_buf *bf) { - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); if (! tid->isfiltered) { DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: filter transition\n", @@ -3070,7 +3046,7 @@ ath_tx_tid_filt_comp_complete(struct ath { struct ath_buf *bf; - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); if (tid->hwq_depth != 0) return; @@ -3104,7 +3080,7 @@ ath_tx_tid_filt_comp_single(struct ath_s struct ath_buf *nbf; int retval; - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); /* * Don't allow a filtered frame to live forever. @@ -3152,7 +3128,7 @@ ath_tx_tid_filt_comp_aggr(struct ath_sof { struct ath_buf *bf, *bf_next, *nbf; - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); bf = bf_first; while (bf) { @@ -3207,7 +3183,8 @@ next: static void ath_tx_tid_bar_suspend(struct ath_softc *sc, struct ath_tid *tid) { - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + + ATH_TX_LOCK_ASSERT(sc); DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, "%s: tid=%p, bar_wait=%d, bar_tx=%d, called\n", @@ -3240,7 +3217,8 @@ ath_tx_tid_bar_suspend(struct ath_softc static void ath_tx_tid_bar_unsuspend(struct ath_softc *sc, struct ath_tid *tid) { - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + + ATH_TX_LOCK_ASSERT(sc); DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, "%s: tid=%p, called\n", @@ -3265,7 +3243,7 @@ static int ath_tx_tid_bar_tx_ready(struct ath_softc *sc, struct ath_tid *tid) { - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + ATH_TX_LOCK_ASSERT(sc); if (tid->bar_wait == 0 || tid->hwq_depth > 0) return (0); @@ -3293,7 +3271,7 @@ ath_tx_tid_bar_tx(struct ath_softc *sc, { struct ieee80211_tx_ampdu *tap; - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + ATH_TX_LOCK_ASSERT(sc); DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, "%s: tid=%p, called\n", @@ -3349,15 +3327,15 @@ ath_tx_tid_bar_tx(struct ath_softc *sc, /* Try sending the BAR frame */ /* We can't hold the lock here! */ - ATH_TXQ_UNLOCK(sc->sc_ac2q[tid->ac]); + ATH_TX_UNLOCK(sc); if (ieee80211_send_bar(&tid->an->an_node, tap, tap->txa_start) == 0) { /* Success? Now we wait for notification that it's done */ - ATH_TXQ_LOCK(sc->sc_ac2q[tid->ac]); + ATH_TX_LOCK(sc); return; } /* Failure? For now, warn loudly and continue */ - ATH_TXQ_LOCK(sc->sc_ac2q[tid->ac]); + ATH_TX_LOCK(sc); device_printf(sc->sc_dev, "%s: tid=%p, failed to TX BAR, continue!\n", __func__, tid); ath_tx_tid_bar_unsuspend(sc, tid); @@ -3368,7 +3346,7 @@ ath_tx_tid_drain_pkt(struct ath_softc *s struct ath_tid *tid, ath_bufhead *bf_cq, struct ath_buf *bf) { - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); /* * If the current TID is running AMPDU, update @@ -3471,7 +3449,7 @@ ath_tx_tid_drain(struct ath_softc *sc, s tap = ath_tx_get_tx_tid(an, tid->tid); - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); /* Walk the queue, free frames */ t = 0; @@ -3559,17 +3537,16 @@ ath_tx_node_flush(struct ath_softc *sc, ATH_KTR(sc, ATH_KTR_NODE, 1, "ath_tx_node_flush: flush node; ni=%p", &an->an_node); + ATH_TX_LOCK(sc); for (tid = 0; tid < IEEE80211_TID_SIZE; tid++) { struct ath_tid *atid = &an->an_tid[tid]; - struct ath_txq *txq = sc->sc_ac2q[atid->ac]; - ATH_TXQ_LOCK(txq); /* Free packets */ ath_tx_tid_drain(sc, an, atid, &bf_cq); /* Remove this tid from the list of active tids */ ath_tx_tid_unsched(sc, atid); - ATH_TXQ_UNLOCK(txq); } + ATH_TX_UNLOCK(sc); /* Handle completed frames */ while ((bf = TAILQ_FIRST(&bf_cq)) != NULL) { @@ -3589,7 +3566,7 @@ ath_tx_txq_drain(struct ath_softc *sc, s struct ath_buf *bf; TAILQ_INIT(&bf_cq); - ATH_TXQ_LOCK(txq); + ATH_TX_LOCK(sc); /* * Iterate over all active tids for the given txq, @@ -3601,7 +3578,7 @@ ath_tx_txq_drain(struct ath_softc *sc, s ath_tx_tid_unsched(sc, tid); } - ATH_TXQ_UNLOCK(txq); + ATH_TX_UNLOCK(sc); while ((bf = TAILQ_FIRST(&bf_cq)) != NULL) { TAILQ_REMOVE(&bf_cq, bf, bf_list); @@ -3635,7 +3612,7 @@ ath_tx_normal_comp(struct ath_softc *sc, struct ath_tx_status *ts = &bf->bf_status.ds_txstat; /* The TID state is protected behind the TXQ lock */ - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: fail=%d, hwq_depth now %d\n", __func__, bf, fail, atid->hwq_depth - 1); @@ -3676,7 +3653,7 @@ ath_tx_normal_comp(struct ath_softc *sc, */ if (atid->isfiltered) ath_tx_tid_filt_comp_complete(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* * punt to rate control if we're not being cleaned up @@ -3708,7 +3685,7 @@ ath_tx_comp_cleanup_unaggr(struct ath_so DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, "%s: TID %d: incomp=%d\n", __func__, tid, atid->incomp); - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); atid->incomp--; if (atid->incomp == 0) { DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, @@ -3717,7 +3694,7 @@ ath_tx_comp_cleanup_unaggr(struct ath_so atid->cleanup_inprogress = 0; ath_tx_tid_resume(sc, atid); } - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); ath_tx_default_comp(sc, bf, 0); } @@ -3745,7 +3722,7 @@ ath_tx_tid_cleanup(struct ath_softc *sc, "%s: TID %d: called\n", __func__, tid); TAILQ_INIT(&bf_cq); - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); /* * Move the filtered frames to the TX queue, before @@ -3827,7 +3804,7 @@ ath_tx_tid_cleanup(struct ath_softc *sc, DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, "%s: TID %d: cleanup needed: %d packets\n", __func__, tid, atid->incomp); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* Handle completing frames and fail them */ while ((bf = TAILQ_FIRST(&bf_cq)) != NULL) { @@ -3907,7 +3884,7 @@ ath_tx_aggr_retry_unaggr(struct ath_soft struct ath_tid *atid = &an->an_tid[tid]; struct ieee80211_tx_ampdu *tap; - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); tap = ath_tx_get_tx_tid(an, tid); @@ -3953,7 +3930,7 @@ ath_tx_aggr_retry_unaggr(struct ath_soft if (ath_tx_tid_bar_tx_ready(sc, atid)) ath_tx_tid_bar_tx(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* Free buffer, bf is free after this call */ ath_tx_default_comp(sc, bf, 0); @@ -3978,7 +3955,7 @@ ath_tx_aggr_retry_unaggr(struct ath_soft if (ath_tx_tid_bar_tx_ready(sc, atid)) ath_tx_tid_bar_tx(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); } /* @@ -3997,7 +3974,7 @@ ath_tx_retry_subframe(struct ath_softc * int tid = bf->bf_state.bfs_tid; struct ath_tid *atid = &an->an_tid[tid]; - ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK_ASSERT(sc); /* XXX clr11naggr should be done for all subframes */ ath_hal_clr11n_aggr(sc->sc_ah, bf->bf_desc); @@ -4080,7 +4057,7 @@ ath_tx_comp_aggr_error(struct ath_softc bf_first->bf_state.bfs_pktlen, bf_first->bf_state.bfs_nframes, bf_first->bf_state.bfs_nframes); - ATH_TXQ_LOCK(sc->sc_ac2q[tid->ac]); + ATH_TX_LOCK(sc); tap = ath_tx_get_tx_tid(an, tid->tid); sc->sc_stats.ast_tx_aggr_failall++; @@ -4127,7 +4104,7 @@ ath_tx_comp_aggr_error(struct ath_softc if (ath_tx_tid_bar_tx_ready(sc, tid)) ath_tx_tid_bar_tx(sc, tid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[tid->ac]); + ATH_TX_UNLOCK(sc); /* Complete frames which errored out */ while ((bf = TAILQ_FIRST(&bf_cq)) != NULL) { @@ -4153,7 +4130,7 @@ ath_tx_comp_cleanup_aggr(struct ath_soft bf = bf_first; - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); /* update incomp */ while (bf) { @@ -4174,7 +4151,7 @@ ath_tx_comp_cleanup_aggr(struct ath_soft if (ath_tx_tid_bar_tx_ready(sc, atid)) ath_tx_tid_bar_tx(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* Handle frame completion */ while (bf) { @@ -4230,7 +4207,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * TAILQ_INIT(&bf_cq); /* The TID state is kept behind the TXQ lock */ - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); atid->hwq_depth--; if (atid->hwq_depth < 0) @@ -4255,7 +4232,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * device_printf(sc->sc_dev, "%s: isfiltered=1, normal_comp?\n", __func__); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); ath_tx_comp_cleanup_aggr(sc, bf_first); return; } @@ -4319,7 +4296,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * if (ts.ts_status & HAL_TXERR_XRETRY) { #endif if (ts.ts_status != 0) { - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); ath_tx_comp_aggr_error(sc, bf_first, atid); return; } @@ -4438,7 +4415,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * * TXed. */ txseq = tap->txa_start; - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); if (nframes != nf) device_printf(sc->sc_dev, @@ -4458,15 +4435,15 @@ ath_tx_aggr_comp_aggr(struct ath_softc * */ if (drops) { /* Suspend the TX queue and get ready to send the BAR */ - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); ath_tx_tid_bar_suspend(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); } DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: txa_start now %d\n", __func__, tap->txa_start); - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); /* Prepend all frames to the beginning of the queue */ while ((bf = TAILQ_LAST(&bf_q, ath_bufhead_s)) != NULL) { @@ -4500,7 +4477,7 @@ finish_send_bar: if (ath_tx_tid_bar_tx_ready(sc, atid)) ath_tx_tid_bar_tx(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* Do deferred completion */ while ((bf = TAILQ_FIRST(&bf_cq)) != NULL) { @@ -4549,7 +4526,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc * This unfortunately means that it's released and regrabbed * during retry and cleanup. That's rather inefficient. */ - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); if (tid == IEEE80211_NONQOS_TID) device_printf(sc->sc_dev, "%s: TID=16!\n", __func__); @@ -4583,7 +4560,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc device_printf(sc->sc_dev, "%s: isfiltered=1, normal_comp?\n", __func__); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: cleanup_unaggr\n", __func__); ath_tx_comp_cleanup_unaggr(sc, bf); @@ -4639,7 +4616,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc if (ath_tx_tid_bar_tx_ready(sc, atid)) ath_tx_tid_bar_tx(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* * If freeframe is set, then the frame couldn't be * cloned and bf is still valid. Just complete/free it. @@ -4658,7 +4635,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc if (fail == 0 && ts->ts_status & HAL_TXERR_XRETRY) { #endif if (fail == 0 && ts.ts_status != 0) { - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: retry_unaggr\n", __func__); ath_tx_aggr_retry_unaggr(sc, bf); @@ -4696,7 +4673,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc if (ath_tx_tid_bar_tx_ready(sc, atid)) ath_tx_tid_bar_tx(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); ath_tx_default_comp(sc, bf, fail); /* bf is freed at this point */ @@ -4727,7 +4704,7 @@ ath_tx_tid_hw_queue_aggr(struct ath_soft ath_bufhead bf_q; DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: tid=%d\n", __func__, tid->tid); - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); tap = ath_tx_get_tx_tid(an, tid->tid); @@ -4933,7 +4910,7 @@ ath_tx_tid_hw_queue_norm(struct ath_soft DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: node %p: TID %d: called\n", __func__, an, tid->tid); - ATH_TID_LOCK_ASSERT(sc, tid); + ATH_TX_LOCK_ASSERT(sc); /* Check - is AMPDU pending or running? then print out something */ if (ath_tx_ampdu_pending(sc, an, tid->tid)) @@ -5012,7 +4989,7 @@ ath_txq_sched(struct ath_softc *sc, stru { struct ath_tid *tid, *next, *last; - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); /* * Don't schedule if the hardware queue is busy. @@ -5162,7 +5139,7 @@ ath_addba_request(struct ieee80211_node * it'll be "after" the left edge of the BAW and thus it'll * fall within it. */ - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); /* * This is a bit annoying. Until net80211 HT code inherits some * (any) locking, we may have this called in parallel BUT only @@ -5172,7 +5149,7 @@ ath_addba_request(struct ieee80211_node ath_tx_tid_pause(sc, atid); atid->addba_tx_pending = 1; } - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, "%s: called; dialogtoken=%d, baparamset=%d, batimeout=%d\n", @@ -5231,7 +5208,7 @@ ath_addba_response(struct ieee80211_node */ r = sc->sc_addba_response(ni, tap, status, code, batimeout); - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); atid->addba_tx_pending = 0; /* * XXX dirty! @@ -5240,7 +5217,7 @@ ath_addba_response(struct ieee80211_node */ tap->txa_start = ni->ni_txseqs[tid]; ath_tx_tid_resume(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); return r; } @@ -5265,7 +5242,7 @@ ath_addba_stop(struct ieee80211_node *ni * Pause TID traffic early, so there aren't any races * Unblock the pending BAR held traffic, if it's currently paused. */ - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); ath_tx_tid_pause(sc, atid); if (atid->bar_wait) { /* @@ -5276,7 +5253,7 @@ ath_addba_stop(struct ieee80211_node *ni atid->bar_tx = 1; ath_tx_tid_bar_unsuspend(sc, atid); } - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* There's no need to hold the TXQ lock here */ sc->sc_addba_stop(ni, tap); @@ -5332,7 +5309,7 @@ ath_bar_response(struct ieee80211_node * * has beaten us to the punch? (XXX figure out what?) */ if (status == 0 || attempts == 50) { - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); if (atid->bar_tx == 0 || atid->bar_wait == 0) device_printf(sc->sc_dev, "%s: huh? bar_tx=%d, bar_wait=%d\n", @@ -5340,7 +5317,7 @@ ath_bar_response(struct ieee80211_node * atid->bar_tx, atid->bar_wait); else ath_tx_tid_bar_unsuspend(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); } } @@ -5360,17 +5337,17 @@ ath_addba_response_timeout(struct ieee80 DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, "%s: called; resuming\n", __func__); - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); atid->addba_tx_pending = 0; - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); /* Note: This updates the aggregate state to (again) pending */ sc->sc_addba_response_timeout(ni, tap); /* Unpause the TID; which reschedules it */ - ATH_TXQ_LOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_LOCK(sc); ath_tx_tid_resume(sc, atid); - ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]); + ATH_TX_UNLOCK(sc); } /* @@ -5438,14 +5415,14 @@ ath_tx_node_sleep(struct ath_softc *sc, */ /* Suspend all traffic on the node */ + ATH_TX_LOCK(sc); for (tid = 0; tid < IEEE80211_TID_SIZE; tid++) { atid = &an->an_tid[tid]; txq = sc->sc_ac2q[atid->ac]; - ATH_TXQ_LOCK(txq); ath_tx_tid_pause(sc, atid); - ATH_TXQ_UNLOCK(txq); } + ATH_TX_UNLOCK(sc); ATH_NODE_LOCK(an); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 06:50:27 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DDB1AA4B; Sun, 2 Dec 2012 06:50:27 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C14A98FC1F; Sun, 2 Dec 2012 06:50:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB26oR9f002530; Sun, 2 Dec 2012 06:50:27 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB26oRxT002529; Sun, 2 Dec 2012 06:50:27 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212020650.qB26oRxT002529@svn.freebsd.org> From: Adrian Chadd Date: Sun, 2 Dec 2012 06:50:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243787 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 06:50:27 -0000 Author: adrian Date: Sun Dec 2 06:50:27 2012 New Revision: 243787 URL: http://svnweb.freebsd.org/changeset/base/243787 Log: Don't grab the PCU lock inside the TX lock. Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Sun Dec 2 06:24:08 2012 (r243786) +++ head/sys/dev/ath/if_ath_tx.c Sun Dec 2 06:50:27 2012 (r243787) @@ -2275,12 +2275,12 @@ ath_raw_xmit(struct ieee80211_node *ni, */ ath_tx_update_tim(sc, ni, 1); + ATH_TX_UNLOCK(sc); + ATH_PCU_LOCK(sc); sc->sc_txstart_cnt--; ATH_PCU_UNLOCK(sc); - ATH_TX_UNLOCK(sc); - return 0; bad2: ATH_KTR(sc, ATH_KTR_TX, 3, "ath_raw_xmit: bad2: m=%p, params=%p, " From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 17:02:02 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DF69B29B; Sun, 2 Dec 2012 17:02:02 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.dawidek.net (garage.dawidek.net [91.121.88.72]) by mx1.freebsd.org (Postfix) with ESMTP id 9A7D08FC0C; Sun, 2 Dec 2012 17:02:02 +0000 (UTC) Received: from localhost (89-73-195-149.dynamic.chello.pl [89.73.195.149]) by mail.dawidek.net (Postfix) with ESMTPSA id B4CD8190; Sun, 2 Dec 2012 18:00:01 +0100 (CET) Date: Sun, 2 Dec 2012 18:03:12 +0100 From: Pawel Jakub Dawidek To: Andriy Gapon Subject: Re: svn commit: r243762 - head/sys/cddl/contrib/opensolaris/uts/common/fs Message-ID: <20121202170312.GG1399@garage.freebsd.pl> References: <201212011812.qB1ICt7O063719@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="DWg365Y4B18r8evw" Content-Disposition: inline In-Reply-To: <201212011812.qB1ICt7O063719@svn.freebsd.org> X-OS: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 17:02:03 -0000 --DWg365Y4B18r8evw Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Dec 01, 2012 at 06:12:55PM +0000, Andriy Gapon wrote: > Author: avg > Date: Sat Dec 1 18:12:55 2012 > New Revision: 243762 > URL: http://svnweb.freebsd.org/changeset/base/243762 >=20 > Log: > gfs_file_inactive: replace bad code with ugly code > =20 > Also, make it explicit that V_XATTRDIR is not properly supported in gfs > code yet. > =20 > The bad code was plain incorrect: (a) it spoiled handling of v_usecount > reaching zero and (b) it leaked v_holdcnt. > =20 > The ugly code employs potentially unsafe locking tricks. > =20 > Ideally we should separate vnode lifecycle and gfs node lifecycle. > A gfs node should have its own reference count where its child nodes > should be accounted. Very good you are touching this:) If you verify if it works, you should try .zfs/ directory when it is visible and not visible through local file system and through NFS. All those cases have their own bugs in the past. --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://tupytaj.pl --DWg365Y4B18r8evw Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlC7ic8ACgkQForvXbEpPzSr5gCdGn7Fp8EmPpy3lJDUYUqX7ZAK F3MAn1ARoVCS1WO9ekxtjyJCIXkBBmOU =WcP1 -----END PGP SIGNATURE----- --DWg365Y4B18r8evw-- From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 17:54:52 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A636B8AE; Sun, 2 Dec 2012 17:54:52 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 703308FC08; Sun, 2 Dec 2012 17:54:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2HsqDL025752; Sun, 2 Dec 2012 17:54:52 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2HsqQU025750; Sun, 2 Dec 2012 17:54:52 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212021754.qB2HsqQU025750@svn.freebsd.org> From: Eitan Adler Date: Sun, 2 Dec 2012 17:54:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243793 - head/sys/dev/sound/pci/hda X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 17:54:52 -0000 Author: eadler Date: Sun Dec 2 17:54:52 2012 New Revision: 243793 URL: http://svnweb.freebsd.org/changeset/base/243793 Log: Add support for hdmi hda codec onboard nvidia gt 440 graphics card PR: kern/174059 Submitted by: "4721@hushmail.com" <4721@hushmail.com> Approved by: cperciva (implicit) MFC after: 2 weeks Modified: head/sys/dev/sound/pci/hda/hdac.h head/sys/dev/sound/pci/hda/hdacc.c Modified: head/sys/dev/sound/pci/hda/hdac.h ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.h Sun Dec 2 13:22:23 2012 (r243792) +++ head/sys/dev/sound/pci/hda/hdac.h Sun Dec 2 17:54:52 2012 (r243793) @@ -573,6 +573,7 @@ #define HDA_CODEC_NVIDIAGT21X HDA_CODEC_CONSTRUCT(NVIDIA, 0x000b) #define HDA_CODEC_NVIDIAMCP89 HDA_CODEC_CONSTRUCT(NVIDIA, 0x000c) #define HDA_CODEC_NVIDIAGT240 HDA_CODEC_CONSTRUCT(NVIDIA, 0x000d) +#define HDA_CODEC_NVIDIAGT440 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0014) #define HDA_CODEC_NVIDIAMCP67 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0067) #define HDA_CODEC_NVIDIAMCP73 HDA_CODEC_CONSTRUCT(NVIDIA, 0x8001) #define HDA_CODEC_NVIDIAXXXX HDA_CODEC_CONSTRUCT(NVIDIA, 0xffff) Modified: head/sys/dev/sound/pci/hda/hdacc.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdacc.c Sun Dec 2 13:22:23 2012 (r243792) +++ head/sys/dev/sound/pci/hda/hdacc.c Sun Dec 2 17:54:52 2012 (r243793) @@ -307,6 +307,7 @@ static const struct { { HDA_CODEC_NVIDIAGT21X, 0, "NVIDIA GT21x" }, { HDA_CODEC_NVIDIAMCP89, 0, "NVIDIA MCP89" }, { HDA_CODEC_NVIDIAGT240, 0, "NVIDIA GT240" }, + { HDA_CODEC_NVIDIAGT440, 0, "NVIDIA GT440" }, { HDA_CODEC_INTELIP, 0, "Intel Ibex Peak" }, { HDA_CODEC_INTELBL, 0, "Intel Bearlake" }, { HDA_CODEC_INTELCA, 0, "Intel Cantiga" }, From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 18:41:23 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2F370B6; Sun, 2 Dec 2012 18:41:23 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id EC8588FC12; Sun, 2 Dec 2012 18:41:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2IfMV1034585; Sun, 2 Dec 2012 18:41:22 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2IfMVP034583; Sun, 2 Dec 2012 18:41:22 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212021841.qB2IfMVP034583@svn.freebsd.org> From: Eitan Adler Date: Sun, 2 Dec 2012 18:41:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243794 - head/sys/dev/sound/pci/hda X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 18:41:23 -0000 Author: eadler Date: Sun Dec 2 18:41:22 2012 New Revision: 243794 URL: http://svnweb.freebsd.org/changeset/base/243794 Log: Add a few more translations from IDs to model name. Submitted by: "4721@hushmail.com" <4721@hushmail.com> Approved by: cperciva (implicit) MFC after: 2 weeks Modified: head/sys/dev/sound/pci/hda/hdac.h head/sys/dev/sound/pci/hda/hdacc.c Modified: head/sys/dev/sound/pci/hda/hdac.h ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.h Sun Dec 2 17:54:52 2012 (r243793) +++ head/sys/dev/sound/pci/hda/hdac.h Sun Dec 2 18:41:22 2012 (r243794) @@ -573,7 +573,10 @@ #define HDA_CODEC_NVIDIAGT21X HDA_CODEC_CONSTRUCT(NVIDIA, 0x000b) #define HDA_CODEC_NVIDIAMCP89 HDA_CODEC_CONSTRUCT(NVIDIA, 0x000c) #define HDA_CODEC_NVIDIAGT240 HDA_CODEC_CONSTRUCT(NVIDIA, 0x000d) +#define HDA_CODEC_NVIDIAGTS450 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0011) #define HDA_CODEC_NVIDIAGT440 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0014) +#define HDA_CODEC_NVIDIAGTX550 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0015) +#define HDA_CODEC_NVIDIAGTX570 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0018) #define HDA_CODEC_NVIDIAMCP67 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0067) #define HDA_CODEC_NVIDIAMCP73 HDA_CODEC_CONSTRUCT(NVIDIA, 0x8001) #define HDA_CODEC_NVIDIAXXXX HDA_CODEC_CONSTRUCT(NVIDIA, 0xffff) Modified: head/sys/dev/sound/pci/hda/hdacc.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdacc.c Sun Dec 2 17:54:52 2012 (r243793) +++ head/sys/dev/sound/pci/hda/hdacc.c Sun Dec 2 18:41:22 2012 (r243794) @@ -307,7 +307,10 @@ static const struct { { HDA_CODEC_NVIDIAGT21X, 0, "NVIDIA GT21x" }, { HDA_CODEC_NVIDIAMCP89, 0, "NVIDIA MCP89" }, { HDA_CODEC_NVIDIAGT240, 0, "NVIDIA GT240" }, + { HDA_CODEC_NVIDIAGTS450, 0, "NVIDIA GTS450" }, { HDA_CODEC_NVIDIAGT440, 0, "NVIDIA GT440" }, + { HDA_CODEC_NVIDIAGTX550, 0, "NVIDIA GTX550" }, + { HDA_CODEC_NVIDIAGTX570, 0, "NVIDIA GTX570" }, { HDA_CODEC_INTELIP, 0, "Intel Ibex Peak" }, { HDA_CODEC_INTELBL, 0, "Intel Bearlake" }, { HDA_CODEC_INTELCA, 0, "Intel Cantiga" }, From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 18:57:03 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6BBE3635; Sun, 2 Dec 2012 18:57:03 +0000 (UTC) (envelope-from antoine@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 4FA7E8FC0C; Sun, 2 Dec 2012 18:57:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2Iv3fQ037402; Sun, 2 Dec 2012 18:57:03 GMT (envelope-from antoine@svn.freebsd.org) Received: (from antoine@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2Iv3m2037401; Sun, 2 Dec 2012 18:57:03 GMT (envelope-from antoine@svn.freebsd.org) Message-Id: <201212021857.qB2Iv3m2037401@svn.freebsd.org> From: Antoine Brodin Date: Sun, 2 Dec 2012 18:57:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243795 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 18:57:03 -0000 Author: antoine Date: Sun Dec 2 18:57:02 2012 New Revision: 243795 URL: http://svnweb.freebsd.org/changeset/base/243795 Log: Add more obsolete files. Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sun Dec 2 18:41:22 2012 (r243794) +++ head/ObsoleteFiles.inc Sun Dec 2 18:57:02 2012 (r243795) @@ -52,6 +52,9 @@ OLD_FILES+=usr/include/clang/3.2/unwind. # 20120910: NetBSD compat shims removed OLD_FILES+=usr/include/cam/scsi/scsi_low_pisa.h OLD_FILES+=usr/include/sys/device_port.h +# 20120909: doc and www supfiles removed +OLD_FILES+=usr/share/examples/cvsup/doc-supfile +OLD_FILES+=usr/share/examples/cvsup/www-supfile # 20120908: pf cleanup OLD_FILES+=usr/include/net/if_pflow.h # 20120816: new clang import which bumps version from 3.1 to 3.2 From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 19:25:53 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 01333BF1; Sun, 2 Dec 2012 19:25:53 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from mp2.macomnet.net (ipv6.irc.int.ru [IPv6:2a02:28:1:2::1b:2]) by mx1.freebsd.org (Postfix) with ESMTP id B23D98FC14; Sun, 2 Dec 2012 19:25:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mp2.macomnet.net (8.14.5/8.14.5) with ESMTP id qB2JPbPb064251; Sun, 2 Dec 2012 23:25:38 +0400 (MSK) (envelope-from maxim.konovalov@gmail.com) Date: Sun, 2 Dec 2012 23:25:37 +0400 (MSK) From: Maxim Konovalov To: Marcel Moolenaar Subject: Re: svn commit: r243779 - head/lib/libc/gen In-Reply-To: <201212012126.qB1LQkjo098232@svn.freebsd.org> Message-ID: References: <201212012126.qB1LQkjo098232@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, src-committers@FreeBSD.ORG X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 19:25:53 -0000 Hi Marcel, On Sat, 1 Dec 2012, 21:26-0000, Marcel Moolenaar wrote: > Author: marcel > Date: Sat Dec 1 21:26:46 2012 > New Revision: 243779 > URL: http://svnweb.freebsd.org/changeset/base/243779 > > Log: > Protect against DoS attacks, such as being described in CVE-2010-2632. > The changes were derived from what has been committed to NetBSD, with > modifications. These are: [..] Do you have any plans to MFC this code eventually? -- Maxim Konovalov From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 20:51:24 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 953E78E7; Sun, 2 Dec 2012 20:51:24 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 780D58FC13; Sun, 2 Dec 2012 20:51:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2KpOLG058734; Sun, 2 Dec 2012 20:51:24 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2KpO4e058733; Sun, 2 Dec 2012 20:51:24 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201212022051.qB2KpO4e058733@svn.freebsd.org> From: Rui Paulo Date: Sun, 2 Dec 2012 20:51:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243796 - head/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 20:51:24 -0000 Author: rpaulo Date: Sun Dec 2 20:51:24 2012 New Revision: 243796 URL: http://svnweb.freebsd.org/changeset/base/243796 Log: Run cscope with the -v parameter to make it more user-friendly. Modified: head/sys/Makefile Modified: head/sys/Makefile ============================================================================== --- head/sys/Makefile Sun Dec 2 18:57:02 2012 (r243795) +++ head/sys/Makefile Sun Dec 2 20:51:24 2012 (r243796) @@ -38,7 +38,7 @@ HTAGSFLAGS+= -at `awk -F= '/^RELEASE *=/ # You need the devel/cscope port for this. cscope: cscope.out cscope.out: ${.CURDIR}/cscope.files - cd ${.CURDIR}; cscope -k -buq -p4 + cd ${.CURDIR}; cscope -k -buq -p4 -v ${.CURDIR}/cscope.files: .PHONY cd ${.CURDIR}; \ From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 21:32:46 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 601F92AD; Sun, 2 Dec 2012 21:32:46 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 44BF68FC16; Sun, 2 Dec 2012 21:32:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2LWk5v066692; Sun, 2 Dec 2012 21:32:46 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2LWkiX066691; Sun, 2 Dec 2012 21:32:46 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201212022132.qB2LWkiX066691@svn.freebsd.org> From: Peter Wemm Date: Sun, 2 Dec 2012 21:32:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243798 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 21:32:46 -0000 Author: peter Date: Sun Dec 2 21:32:45 2012 New Revision: 243798 URL: http://svnweb.freebsd.org/changeset/base/243798 Log: Add auditdistd to the pre-install required uid check list. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sun Dec 2 21:00:52 2012 (r243797) +++ head/Makefile.inc1 Sun Dec 2 21:32:45 2012 (r243798) @@ -611,7 +611,7 @@ installcheck_DESTDIR: # # Check for missing UIDs/GIDs. # -CHECK_UIDS= +CHECK_UIDS= auditdistd CHECK_GIDS= audit .if ${MK_SENDMAIL} != "no" CHECK_UIDS+= smmsp From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 21:43:37 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C2FD0478; Sun, 2 Dec 2012 21:43:37 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9ABA58FC0C; Sun, 2 Dec 2012 21:43:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2Lhb8M068203; Sun, 2 Dec 2012 21:43:37 GMT (envelope-from melifaro@svn.freebsd.org) Received: (from melifaro@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2LhbwE068202; Sun, 2 Dec 2012 21:43:37 GMT (envelope-from melifaro@svn.freebsd.org) Message-Id: <201212022143.qB2LhbwE068202@svn.freebsd.org> From: "Alexander V. Chernikov" Date: Sun, 2 Dec 2012 21:43:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243799 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 21:43:38 -0000 Author: melifaro Date: Sun Dec 2 21:43:37 2012 New Revision: 243799 URL: http://svnweb.freebsd.org/changeset/base/243799 Log: Fix bpf_if structure leak introduced in r235745. Move all such structures to delayed-free lists and delete all matching on interface departure event. MFC after: 1 week Modified: head/sys/net/bpf.c Modified: head/sys/net/bpf.c ============================================================================== --- head/sys/net/bpf.c Sun Dec 2 21:32:45 2012 (r243798) +++ head/sys/net/bpf.c Sun Dec 2 21:43:37 2012 (r243799) @@ -141,7 +141,7 @@ struct bpf_dltlist32 { * structures registered by different layers in the stack (i.e., 802.11 * frames, ethernet frames, etc). */ -static LIST_HEAD(, bpf_if) bpf_iflist; +static LIST_HEAD(, bpf_if) bpf_iflist, bpf_freelist; static struct mtx bpf_mtx; /* bpf global lock */ static int bpf_bpfd_cnt; @@ -2491,52 +2491,51 @@ bpfattach2(struct ifnet *ifp, u_int dlt, void bpfdetach(struct ifnet *ifp) { - struct bpf_if *bp; + struct bpf_if *bp, *bp_temp; struct bpf_d *d; -#ifdef INVARIANTS int ndetached; ndetached = 0; -#endif BPF_LOCK(); /* Find all bpf_if struct's which reference ifp and detach them. */ - do { - LIST_FOREACH(bp, &bpf_iflist, bif_next) { - if (ifp == bp->bif_ifp) - break; - } - if (bp != NULL) - LIST_REMOVE(bp, bif_next); + LIST_FOREACH_SAFE(bp, &bpf_iflist, bif_next, bp_temp) { + if (ifp != bp->bif_ifp) + continue; - if (bp != NULL) { -#ifdef INVARIANTS - ndetached++; -#endif - while ((d = LIST_FIRST(&bp->bif_dlist)) != NULL) { - bpf_detachd_locked(d); - BPFD_LOCK(d); - bpf_wakeup(d); - BPFD_UNLOCK(d); - } - /* Free writer-only descriptors */ - while ((d = LIST_FIRST(&bp->bif_wlist)) != NULL) { - bpf_detachd_locked(d); - BPFD_LOCK(d); - bpf_wakeup(d); - BPFD_UNLOCK(d); - } + LIST_REMOVE(bp, bif_next); + /* Add to to-be-freed list */ + LIST_INSERT_HEAD(&bpf_freelist, bp, bif_next); - /* - * Delay freing bp till interface is detached - * and all routes through this interface are removed. - * Mark bp as detached to restrict new consumers. - */ - BPFIF_WLOCK(bp); - bp->flags |= BPFIF_FLAG_DYING; - BPFIF_WUNLOCK(bp); + ndetached++; + /* + * Delay freeing bp till interface is detached + * and all routes through this interface are removed. + * Mark bp as detached to restrict new consumers. + */ + BPFIF_WLOCK(bp); + bp->flags |= BPFIF_FLAG_DYING; + BPFIF_WUNLOCK(bp); + + CTR4(KTR_NET, "%s: sheduling free for encap %d (%p) for if %p", + __func__, bp->bif_dlt, bp, ifp); + + /* Free common descriptors */ + while ((d = LIST_FIRST(&bp->bif_dlist)) != NULL) { + bpf_detachd_locked(d); + BPFD_LOCK(d); + bpf_wakeup(d); + BPFD_UNLOCK(d); } - } while (bp != NULL); + + /* Free writer-only descriptors */ + while ((d = LIST_FIRST(&bp->bif_wlist)) != NULL) { + bpf_detachd_locked(d); + BPFD_LOCK(d); + bpf_wakeup(d); + BPFD_UNLOCK(d); + } + } BPF_UNLOCK(); #ifdef INVARIANTS @@ -2548,32 +2547,46 @@ bpfdetach(struct ifnet *ifp) /* * Interface departure handler. * Note departure event does not guarantee interface is going down. + * Interface renaming is currently done via departure/arrival event set. + * + * Departure handled is called after all routes pointing to + * given interface are removed and interface is in down state + * restricting any packets to be sent/received. We assume it is now safe + * to free data allocated by BPF. */ static void bpf_ifdetach(void *arg __unused, struct ifnet *ifp) { - struct bpf_if *bp; + struct bpf_if *bp, *bp_temp; + int nmatched = 0; BPF_LOCK(); - if ((bp = ifp->if_bpf) == NULL) { - BPF_UNLOCK(); - return; - } + /* + * Find matching entries in free list. + * Nothing should be found if bpfdetach() was not called. + */ + LIST_FOREACH_SAFE(bp, &bpf_freelist, bif_next, bp_temp) { + if (ifp != bp->bif_ifp) + continue; - /* Check if bpfdetach() was called previously */ - if ((bp->flags & BPFIF_FLAG_DYING) == 0) { - BPF_UNLOCK(); - return; - } + CTR3(KTR_NET, "%s: freeing BPF instance %p for interface %p", + __func__, bp, ifp); + + LIST_REMOVE(bp, bif_next); - CTR3(KTR_NET, "%s: freing BPF instance %p for interface %p", - __func__, bp, ifp); + rw_destroy(&bp->bif_lock); + free(bp, M_BPF); - ifp->if_bpf = NULL; + nmatched++; + } BPF_UNLOCK(); - rw_destroy(&bp->bif_lock); - free(bp, M_BPF); + /* + * Note that we cannot zero other pointers to + * custom DLTs possibly used by given interface. + */ + if (nmatched != 0) + ifp->if_bpf = NULL; } /* @@ -2653,6 +2666,7 @@ bpf_drvinit(void *unused) mtx_init(&bpf_mtx, "bpf global lock", NULL, MTX_DEF); LIST_INIT(&bpf_iflist); + LIST_INIT(&bpf_freelist); dev = make_dev(&bpf_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "bpf"); /* For compatibility */ From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 22:04:58 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 637358A4; Sun, 2 Dec 2012 22:04:58 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id EBCBB8FC08; Sun, 2 Dec 2012 22:04:57 +0000 (UTC) Received: by mail-ob0-f182.google.com with SMTP id 16so2476199obc.13 for ; Sun, 02 Dec 2012 14:04:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=/4EkINStZhsO85gxylnFsx/WfXMZB4tXnJ9zcCIrisA=; b=xOValt4xeCCqfTFUko4mqZ+wlQI4qB5vSSJJh4bOPX+DjKY2yjsfXK5wu/M/9FYH2D gtbOdQRwXgKP296hKdgr63V6joFf9qQBAJMIL5yMvwV7E1puLX3rK2ckSAZUzxbz4Tnk 2HtFLX8mzH7BaV6VmkIA+DAcCH23ZA5OOjvvDgNrWYuwzAL8LKLlDbK7b7Xn/UIfN+fN TKIpF3qxgkPdXYzM535feXI8c+8EroEKB70XePkKtRwmdwkHZLrFDCjNrHrjo1AoryQw 3Y+Ag7WnrUR8e4voBqi9kA28bO2p+/dBXQq1oSLG6EnnQ3j6WrcKz6u7GClhp59Xg2nk H0UA== MIME-Version: 1.0 Received: by 10.60.25.227 with SMTP id f3mr6783554oeg.17.1354485897198; Sun, 02 Dec 2012 14:04:57 -0800 (PST) Received: by 10.76.143.33 with HTTP; Sun, 2 Dec 2012 14:04:56 -0800 (PST) In-Reply-To: <201212022132.qB2LWkiX066691@svn.freebsd.org> References: <201212022132.qB2LWkiX066691@svn.freebsd.org> Date: Sun, 2 Dec 2012 14:04:56 -0800 Message-ID: Subject: Re: svn commit: r243798 - head From: Garrett Cooper To: Peter Wemm Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 22:04:58 -0000 On Sun, Dec 2, 2012 at 1:32 PM, Peter Wemm wrote: > Author: peter > Date: Sun Dec 2 21:32:45 2012 > New Revision: 243798 > URL: http://svnweb.freebsd.org/changeset/base/243798 > > Log: > Add auditdistd to the pre-install required uid check list. Thanks :). From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 22:09:17 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 81357A63; Sun, 2 Dec 2012 22:09:17 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3D4388FC0C; Sun, 2 Dec 2012 22:09:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2M9HXx072244; Sun, 2 Dec 2012 22:09:17 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2M9HiV072243; Sun, 2 Dec 2012 22:09:17 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <201212022209.qB2M9HiV072243@svn.freebsd.org> From: Robert Watson Date: Sun, 2 Dec 2012 22:09:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243800 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 22:09:17 -0000 Author: rwatson Date: Sun Dec 2 22:09:16 2012 New Revision: 243800 URL: http://svnweb.freebsd.org/changeset/base/243800 Log: Specifically point at the Handbook instructions for world updates in UPDATING by URL. As there has been some confusion over the need to run "mergemaster -p", part of our standard upgrade procedure, following the recent addition of an "auditdistd" user, add a note about it to UPDATING explicitly. Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Sun Dec 2 21:43:37 2012 (r243799) +++ head/UPDATING Sun Dec 2 22:09:16 2012 (r243800) @@ -4,7 +4,9 @@ This file is maintained and copyrighted See end of file for further details. For commonly done items, please see the COMMON ITEMS: section later in the file. These instructions assume that you basically know what you are doing. If not, then please consult the FreeBSD -handbook. +handbook: + + http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before running portupgrade. @@ -24,6 +26,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20121201: + With the addition of auditdistd(8), a new auditdistd user is now + depended on during installworld. "mergemaster -p" can be used to add + the user prior to installworld, as documented in the handbook. + 20121117: The sin6_scope_id member variable in struct sockaddr_in6 is now filled by the kernel before passing the structure to the userland via From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 22:13:36 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A8552C70; Sun, 2 Dec 2012 22:13:36 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 796838FC0C; Sun, 2 Dec 2012 22:13:36 +0000 (UTC) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id A3A8C46B17; Sun, 2 Dec 2012 17:13:35 -0500 (EST) Date: Sun, 2 Dec 2012 22:13:35 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Garrett Cooper Subject: Re: svn commit: r243798 - head In-Reply-To: Message-ID: References: <201212022132.qB2LWkiX066691@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Peter Wemm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 22:13:36 -0000 On Sun, 2 Dec 2012, Garrett Cooper wrote: > On Sun, Dec 2, 2012 at 1:32 PM, Peter Wemm wrote: >> Author: peter >> Date: Sun Dec 2 21:32:45 2012 >> New Revision: 243798 >> URL: http://svnweb.freebsd.org/changeset/base/243798 >> >> Log: >> Add auditdistd to the pre-install required uid check list. > > Thanks :). I've also added an UPDATING entry. Note that running "mergemaster -p" is a documented (and necessary) part of the world upgrade process. Normally I wouldn't add an UPDATING entry, and in general we haven't done it for new users in the past, but it seems an inordinate number of people are running into this due to not using "mergemaster -p" (and on the whole not removing their feet), so a reminder was necessary. Robert From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 22:16:39 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 74882E2F; Sun, 2 Dec 2012 22:16:39 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-oa0-f54.google.com (mail-oa0-f54.google.com [209.85.219.54]) by mx1.freebsd.org (Postfix) with ESMTP id E7B4C8FC0C; Sun, 2 Dec 2012 22:16:38 +0000 (UTC) Received: by mail-oa0-f54.google.com with SMTP id n9so2740462oag.13 for ; Sun, 02 Dec 2012 14:16:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=3iFBpO59CZuWUDJEp/YMTSiiOc1oNp6ma1DG9vDsIrU=; b=JfgTwttYjRgQtZwdnGbS1FOFv1EUK8nkjCs1+fs0q+uwf1SmarKEAfcgfLs9BzrQWW B2c53za+aGuJFMx8WjK8aCjaW9xhVrQJk7G/riqnPJgZZA+6lwWfQlNArDzjWFxgMwJv dkW5jMg/vpg/Nk2ZOH85B7mnq87EgwhBbekQrAtKa0nj4NsgoHl+3pI0YV8NMZB3nzEK zel9iB0LrIL0abe/xSiBPbrL3TBNpJ9025JfwKMXli4KDhD+pjpjV/XC3FVlwYtq0Q2t LffhYD9mRilZCPQDsCuh6dXNnPNSpceQFSEtDf03TirxkVZlbNye2tTcePAjIfKODH+X R6Ag== MIME-Version: 1.0 Received: by 10.60.11.105 with SMTP id p9mr6806933oeb.128.1354486598308; Sun, 02 Dec 2012 14:16:38 -0800 (PST) Received: by 10.76.143.33 with HTTP; Sun, 2 Dec 2012 14:16:38 -0800 (PST) In-Reply-To: References: <201212022132.qB2LWkiX066691@svn.freebsd.org> Date: Sun, 2 Dec 2012 14:16:38 -0800 Message-ID: Subject: Re: svn commit: r243798 - head From: Garrett Cooper To: Robert Watson Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Peter Wemm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 22:16:39 -0000 On Sun, Dec 2, 2012 at 2:13 PM, Robert Watson wrote: ... > I've also added an UPDATING entry. > > Note that running "mergemaster -p" is a documented (and necessary) part of > the world upgrade process. Normally I wouldn't add an UPDATING entry, and > in general we haven't done it for new users in the past, but it seems an > inordinate number of people are running into this due to not using > "mergemaster -p" (and on the whole not removing their feet), so a reminder > was necessary. Unfortunately I also propogated this fallacy (not needing mergemaster -p) as well. I'm rerunning a build with nanobsd on my 9/stable workstation, as I ran into problems in the last go-around with the user/group being missing, but we'll see if I run into it again (seems like we should have a slightly more intelligent mechanism for dealing with this issue in the build system itself instead of mergemaster). Thanks! -Garrett From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 22:18:03 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 49E90F9D; Sun, 2 Dec 2012 22:18:03 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 2BB458FC0C; Sun, 2 Dec 2012 22:18:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB2MI2mV073861; Sun, 2 Dec 2012 22:18:02 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB2MI2SA073860; Sun, 2 Dec 2012 22:18:02 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201212022218.qB2MI2SA073860@svn.freebsd.org> From: Ulrich Spoerlein Date: Sun, 2 Dec 2012 22:18:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243801 - head/sys/modules/iwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 22:18:03 -0000 Author: uqs Date: Sun Dec 2 22:18:01 2012 New Revision: 243801 URL: http://svnweb.freebsd.org/changeset/base/243801 Log: Fix make depend. Modified: head/sys/modules/iwn/Makefile Modified: head/sys/modules/iwn/Makefile ============================================================================== --- head/sys/modules/iwn/Makefile Sun Dec 2 22:09:16 2012 (r243800) +++ head/sys/modules/iwn/Makefile Sun Dec 2 22:18:01 2012 (r243801) @@ -3,6 +3,6 @@ .PATH: ${.CURDIR}/../../dev/iwn KMOD = if_iwn -SRCS = if_iwn.c device_if.h bus_if.h pci_if.h +SRCS = if_iwn.c device_if.h bus_if.h pci_if.h opt_wlan.h .include From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 22:36:20 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 83400435; Sun, 2 Dec 2012 22:36:20 +0000 (UTC) (envelope-from freebsd@damnhippie.dyndns.org) Received: from duck.symmetricom.us (duck.symmetricom.us [206.168.13.214]) by mx1.freebsd.org (Postfix) with ESMTP id 3FF468FC12; Sun, 2 Dec 2012 22:36:19 +0000 (UTC) Received: from damnhippie.dyndns.org (daffy.symmetricom.us [206.168.13.218]) by duck.symmetricom.us (8.14.5/8.14.5) with ESMTP id qB2MaIit038426; Sun, 2 Dec 2012 15:36:19 -0700 (MST) (envelope-from freebsd@damnhippie.dyndns.org) Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id qB2Ma65E044929; Sun, 2 Dec 2012 15:36:06 -0700 (MST) (envelope-from freebsd@damnhippie.dyndns.org) Subject: Re: svn commit: r243798 - head From: Ian Lepore To: Robert Watson In-Reply-To: References: <201212022132.qB2LWkiX066691@svn.freebsd.org> Content-Type: text/plain; charset="us-ascii" Date: Sun, 02 Dec 2012 15:36:06 -0700 Message-ID: <1354487766.1140.16.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: Garrett Cooper , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Peter Wemm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 22:36:20 -0000 On Sun, 2012-12-02 at 22:13 +0000, Robert Watson wrote: > On Sun, 2 Dec 2012, Garrett Cooper wrote: > > > On Sun, Dec 2, 2012 at 1:32 PM, Peter Wemm wrote: > >> Author: peter > >> Date: Sun Dec 2 21:32:45 2012 > >> New Revision: 243798 > >> URL: http://svnweb.freebsd.org/changeset/base/243798 > >> > >> Log: > >> Add auditdistd to the pre-install required uid check list. > > > > Thanks :). > > I've also added an UPDATING entry. > > Note that running "mergemaster -p" is a documented (and necessary) part of the > world upgrade process. Normally I wouldn't add an UPDATING entry, and in > general we haven't done it for new users in the past, but it seems an > inordinate number of people are running into this due to not using > "mergemaster -p" (and on the whole not removing their feet), so a reminder was > necessary. I wonder if more people are running into it also because of more cross-building these days? I had to manually add the new user to my 8.3 system that I use to cross-build 10.0 ARM stuff. -- Ian From owner-svn-src-head@FreeBSD.ORG Sun Dec 2 23:20:58 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 790A4CD3; Sun, 2 Dec 2012 23:20:58 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id EDEAD8FC12; Sun, 2 Dec 2012 23:20:57 +0000 (UTC) Received: by mail-ob0-f182.google.com with SMTP id 16so2514359obc.13 for ; Sun, 02 Dec 2012 15:20:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=oQ4CZOwjN9Ti8WCzMmfjZCEDhZSCDFsA2bG1Sg15ZRw=; b=vBEtcX2twbsKelzAcCbA+wlKnA54XvLYrHOurQkUK1jjnJxW7kq+hLiI+QOieLPhtP 8IsJnXF92SR9XZUn12lCeVSm0JxXfbcLIGIRVN0GE5iZ+o+7G9FkFd+XjpU6yV9/qfrb w6flyWANjuB00/KPKGhohNeF9ZZIbvk2QtnuwJvye6O2Gn7kEO35XPmHjqvJpOtfUXLg 2KCs9XA5HC9r20N/nZ5rOBaV2JwED6hvTilapfhfwbKMMnByihzAKh1840j4ssr7x48C oB3I7htvaTSUntWikOWyeszsEFAm9vJFzpRfb0YnAOwhMVFT8UQRKmooO6HB8EpGmhEF irlw== MIME-Version: 1.0 Received: by 10.182.95.205 with SMTP id dm13mr3011975obb.9.1354490457137; Sun, 02 Dec 2012 15:20:57 -0800 (PST) Received: by 10.76.143.33 with HTTP; Sun, 2 Dec 2012 15:20:56 -0800 (PST) In-Reply-To: References: <201212022132.qB2LWkiX066691@svn.freebsd.org> Date: Sun, 2 Dec 2012 15:20:56 -0800 Message-ID: Subject: Re: svn commit: r243798 - head From: Garrett Cooper To: Robert Watson Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Peter Wemm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 23:20:58 -0000 On Sun, Dec 2, 2012 at 2:16 PM, Garrett Cooper wrote: > On Sun, Dec 2, 2012 at 2:13 PM, Robert Watson wrote: > > ... > >> I've also added an UPDATING entry. >> >> Note that running "mergemaster -p" is a documented (and necessary) part of >> the world upgrade process. Normally I wouldn't add an UPDATING entry, and >> in general we haven't done it for new users in the past, but it seems an >> inordinate number of people are running into this due to not using >> "mergemaster -p" (and on the whole not removing their feet), so a reminder >> was necessary. > > Unfortunately I also propogated this fallacy (not needing mergemaster > -p) as well. > > I'm rerunning a build with nanobsd on my 9/stable workstation, as I > ran into problems in the last go-around with the user/group being > missing, but we'll see if I run into it again (seems like we should > have a slightly more intelligent mechanism for dealing with this issue > in the build system itself instead of mergemaster). e-yup... same error. I'll see if I can hack this because it's a bit annoying. Thanks, -Garrett From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 00:04:28 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9BD88655; Mon, 3 Dec 2012 00:04:28 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [70.36.220.4]) by mx1.freebsd.org (Postfix) with ESMTP id 7200E8FC08; Mon, 3 Dec 2012 00:04:28 +0000 (UTC) Received: from sa-nc-it-77.static.jnpr.net (natint3.juniper.net [66.129.224.36]) (authenticated bits=0) by mail.xcllnt.net (8.14.5/8.14.5) with ESMTP id qB304LFU000373 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sun, 2 Dec 2012 16:04:21 -0800 (PST) (envelope-from marcel@xcllnt.net) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: svn commit: r243779 - head/lib/libc/gen From: Marcel Moolenaar In-Reply-To: Date: Sun, 2 Dec 2012 16:04:15 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201212012126.qB1LQkjo098232@svn.freebsd.org> To: Maxim Konovalov X-Mailer: Apple Mail (2.1499) Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, Marcel Moolenaar , src-committers@FreeBSD.ORG X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 00:04:28 -0000 On Dec 2, 2012, at 11:25 AM, Maxim Konovalov = wrote: > Hi Marcel, >=20 > On Sat, 1 Dec 2012, 21:26-0000, Marcel Moolenaar wrote: >=20 >> Author: marcel >> Date: Sat Dec 1 21:26:46 2012 >> New Revision: 243779 >> URL: http://svnweb.freebsd.org/changeset/base/243779 >>=20 >> Log: >> Protect against DoS attacks, such as being described in = CVE-2010-2632. >> The changes were derived from what has been committed to NetBSD, = with >> modifications. These are: > [..] >=20 > Do you have any plans to MFC this code eventually? Hi Maxim, I have not planned an MFC. What will happen eventually is an entirely different story :-) FYI, --=20 Marcel Moolenaar marcel@xcllnt.net From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 04:25:37 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id ED98188E; Mon, 3 Dec 2012 04:25:37 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D197B8FC13; Mon, 3 Dec 2012 04:25:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB34PbuF036145; Mon, 3 Dec 2012 04:25:37 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB34PbOI036144; Mon, 3 Dec 2012 04:25:37 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201212030425.qB34PbOI036144@svn.freebsd.org> From: Xin LI Date: Mon, 3 Dec 2012 04:25:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243807 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 04:25:38 -0000 Author: delphij Date: Mon Dec 3 04:25:37 2012 New Revision: 243807 URL: http://svnweb.freebsd.org/changeset/base/243807 Log: Use SA_ZPL_CRTIME instead of SA_ZPL_CTIME for creation time. Submitted by: phil.stone at gmx.com MFC after: 2 weeks Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Dec 3 01:05:36 2012 (r243806) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon Dec 3 04:25:37 2012 (r243807) @@ -2679,7 +2679,7 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, i SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MTIME(zfsvfs), NULL, &mtime, 16); SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_CTIME(zfsvfs), NULL, &ctime, 16); - SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_CTIME(zfsvfs), NULL, &crtime, 16); + SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_CRTIME(zfsvfs), NULL, &crtime, 16); if (vp->v_type == VBLK || vp->v_type == VCHR) SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_RDEV(zfsvfs), NULL, &rdev, 8); From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 05:00:32 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 919A642F; Mon, 3 Dec 2012 05:00:32 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 2340B8FC16; Mon, 3 Dec 2012 05:00:31 +0000 (UTC) Received: by mail-ob0-f182.google.com with SMTP id 16so2706078obc.13 for ; Sun, 02 Dec 2012 21:00:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WTj8V+d2upZEVmPdr4/h5+CNwzzzMiZnXrNm6O4TmRU=; b=nZX5qpOIdSqkouPBoFsPuOgOgCN+HzKsx+vMDw96GlrgLQOEBkVbpLaegwU796+d5D DsSzl98oQwZJT+Jodj+XujeAp/qGyw5dR8/yCmVmH4wmPx1RFPWAVDvv3H6JFTwiyUVy 37DJV/8YbNGmML/6r43x8JrfBeNy0GxjX10ss41jklabKPw8E+uMW9U1L8nmG5EG9MGY d3v0st2kw2thOaK3WhvmJ2EKLYI4HJUNo6eXTB27yBtrGSQJFCKZC8Qd+sVQsZ8Jn98a rsG9eLUv/Fu8JdJjrxrMfqFv+q9iUvgGyc9XqP7fyRWQeGNYK6hQ6K+F/nyiZnhfNP7h ajww== MIME-Version: 1.0 Received: by 10.60.21.167 with SMTP id w7mr7126473oee.18.1354510825420; Sun, 02 Dec 2012 21:00:25 -0800 (PST) Received: by 10.76.143.33 with HTTP; Sun, 2 Dec 2012 21:00:25 -0800 (PST) In-Reply-To: <201212030425.qB34PbOI036144@svn.freebsd.org> References: <201212030425.qB34PbOI036144@svn.freebsd.org> Date: Sun, 2 Dec 2012 21:00:25 -0800 Message-ID: Subject: Re: svn commit: r243807 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs From: Garrett Cooper To: Xin LI Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 05:00:32 -0000 On Sun, Dec 2, 2012 at 8:25 PM, Xin LI wrote: > Author: delphij > Date: Mon Dec 3 04:25:37 2012 > New Revision: 243807 > URL: http://svnweb.freebsd.org/changeset/base/243807 > > Log: > Use SA_ZPL_CRTIME instead of SA_ZPL_CTIME for creation time. > > Submitted by: phil.stone at gmx.com > MFC after: 2 weeks Could you please also take/close kern/174067? Thanks! -Garrett From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 18:12:05 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 20DA22EC; Mon, 3 Dec 2012 18:12:05 +0000 (UTC) (envelope-from zeising+freebsd@daemonic.se) Received: from mail.lysator.liu.se (mail.lysator.liu.se [IPv6:2001:6b0:17:f0a0::3]) by mx1.freebsd.org (Postfix) with ESMTP id 5E6738FC14; Mon, 3 Dec 2012 18:12:02 +0000 (UTC) Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id B904A40004; Mon, 3 Dec 2012 19:12:01 +0100 (CET) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id AE2EE40007; Mon, 3 Dec 2012 19:12:01 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on bernadotte.lysator.liu.se X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.3.1 X-Spam-Score: 0.0 Received: from mx.daemonic.se (mx.daemonic.se [IPv6:2001:470:dca9:0:1::3]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 6161A40004; Mon, 3 Dec 2012 19:12:01 +0100 (CET) Received: from mailscanner.daemonic.se (mailscanner.daemonic.se [IPv6:2001:470:dca9:0:1::6]) by mx.daemonic.se (Postfix) with ESMTPS id 3YFZ6S735qz8hVn; Mon, 3 Dec 2012 19:12:00 +0100 (CET) X-Virus-Scanned: amavisd-new at daemonic.se Received: from mx.daemonic.se ([10.1.0.3]) (using TLS with cipher CAMELLIA256-SHA) by mailscanner.daemonic.se (mailscanner.daemonic.se [10.1.0.6]) (amavisd-new, port 10025) with ESMTPS id DlesjGlclAAJ; Mon, 3 Dec 2012 19:11:55 +0100 (CET) Received: from mail.daemonic.se (mail.daemonic.se [10.1.0.4]) by mx.daemonic.se (Postfix) with ESMTPS id 3YFZ6M2t4Qz8hVm; Mon, 3 Dec 2012 19:11:55 +0100 (CET) Received: from vivi.daemonic.se (vivi.daemonic.se [IPv6:2001:470:dca9:1::4]) by mail.daemonic.se (Postfix) with ESMTPSA id 3YFZ6M1Ytkz9Ctj; Mon, 3 Dec 2012 19:11:55 +0100 (CET) Message-ID: <50BCEB6B.9030003@daemonic.se> Date: Mon, 03 Dec 2012 19:11:55 +0100 From: Niclas Zeising User-Agent: Mutt/1.5.21 MIME-Version: 1.0 To: Robert Watson Subject: Re: svn commit: r243752 - in head: etc etc/defaults etc/mail etc/mtree etc/rc.d share/man/man4 usr.sbin usr.sbin/auditdistd References: <201212011511.qB1FBkBA036816@svn.freebsd.org> In-Reply-To: <201212011511.qB1FBkBA036816@svn.freebsd.org> Content-Type: multipart/mixed; boundary="------------030109050500010909020109" X-Virus-Scanned: ClamAV using ClamSMTP Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 18:12:05 -0000 This is a multi-part message in MIME format. --------------030109050500010909020109 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 12/01/12 16:11, Robert Watson wrote: > Author: rwatson > Date: Sat Dec 1 15:11:46 2012 > New Revision: 243752 > URL: http://svnweb.freebsd.org/changeset/base/243752 > > Log: > Merge a number of changes required to hook up OpenBSM 1.2-alpha2's > auditdistd (distributed audit daemon) to the build: This should probably be documented in rc.conf(5) as well. Something like attached patch might work. As a bonus it also adds documentation for auditd_enable and friends. Regards! -- Niclas --------------030109050500010909020109 Content-Type: text/x-patch; name="rc.conf.5.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="rc.conf.5.diff" Index: share/man/man5/rc.conf.5 =================================================================== --- share/man/man5/rc.conf.5 (revision 243808) +++ share/man/man5/rc.conf.5 (working copy) @@ -3402,6 +3402,40 @@ will set the .Xr syscons 4 scrollback (history) buffer to 200 lines. +.It Va auditd_enable +.Pq Vt bool +If set to +.Dq Li YES , +run the +.Xr auditd 8 +daemon at system boot time. +.It Va auditd_program +.Pq Vt str +Path to +.Xr autitd 8 +(default +.Pa /usr/sbin/auditd ) . +.It Va auditd_flags +.Pq Vt str +Flags to pass to +.Xr audtid 8 . +.It Va auditdistd_enable +.Pq Vt bool +If set to +.Dq Li YES , +run the +.Xr auditdistd 8 +daemon at system boot time. +.It Va auditdistd_program +.Pq Vt str +Path to +.Xr auditdistd 8 +(default +.Pa /usr/sbin/auditdistd ) . +.It Va auditdistd_flags +.Pq Vt str +Flags to pass to +.Xr auditdistd 8 . .It Va cron_enable .Pq Vt bool If set to --------------030109050500010909020109-- From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 18:45:44 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5EBF334B; Mon, 3 Dec 2012 18:45:44 +0000 (UTC) (envelope-from stas@FreeBSD.org) Received: from mx0.deglitch.com (backbone.deglitch.com [78.110.53.255]) by mx1.freebsd.org (Postfix) with ESMTP id 49DBA8FC15; Mon, 3 Dec 2012 18:45:43 +0000 (UTC) Received: from freebsd (unknown [72.5.114.2]) by mx0.deglitch.com (Postfix) with ESMTPA id A0C9A8FC2B; Mon, 3 Dec 2012 22:45:29 +0400 (MSK) Date: Mon, 3 Dec 2012 10:45:26 -0800 From: Stanislav Sedov To: Chris Rees Subject: Re: svn commit: r243554 - in head/usr.sbin/pkg_install: add create delete info lib updating version Message-Id: <20121203104526.5041f0eefe10045375b77df1@FreeBSD.org> In-Reply-To: References: <201211260511.qAQ5B7DQ002346@svn.freebsd.org> <20121128170032.730be5fab68dba2a09aaa14e@FreeBSD.org> <20121128183422.714562856f27371c95d2a84e@FreeBSD.org> <20121129073846.GG97474@ithaqua.etoilebsd.net> <20121130144040.99559ed924a48b909cbd3c4b@FreeBSD.org> Organization: The FreeBSD Project X-Mailer: carrier-pigeon Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Baptiste Daroussin , src-committers@freebsd.org, Eitan Adler , svn-src-all@freebsd.org, Stanislav Sedov , svn-src-head@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 18:45:44 -0000 On Sat, 1 Dec 2012 08:52:52 +0000 Chris Rees mentioned: > > UPDATING, yes. Also as I reminded you in IRC last week, users of -CURRENT > are expected to follow -current@. Users of ports are also strongly > recommended to read -ports-announce. Repeating that several times does not make it true. > > What are you trying to achieve here? You discussed this previously, and > got exactly the same answer. There were extensive discussions over it in > ports@. I'm trying to point out, that this commit (and previous pkgng ones) was made without proper peer review and consulations, which is a recommended practice in THIS project. Doing so hurts not only the committer reputation (which I frankly do not care about), but the project image as a whole. I really don't want to go in and revert these changes, but I want to find a reasonable solution. It's not the first time an unreviewed ports-related change is being committed to a tree by that hurts us, who actually use FreeBSD and not consider it a personal playground. -- Stanislav Sedov ST4096-RIPE () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 19:00:24 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6D969C83; Mon, 3 Dec 2012 19:00:24 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 5080B8FC1C; Mon, 3 Dec 2012 19:00:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3J0Oei012339; Mon, 3 Dec 2012 19:00:24 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3J0N2v012326; Mon, 3 Dec 2012 19:00:23 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201212031900.qB3J0N2v012326@svn.freebsd.org> From: Xin LI Date: Mon, 3 Dec 2012 19:00:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243829 - head/contrib/less X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 19:00:24 -0000 Author: delphij Date: Mon Dec 3 19:00:23 2012 New Revision: 243829 URL: http://svnweb.freebsd.org/changeset/base/243829 Log: MFV: less v456. Modified: head/contrib/less/NEWS head/contrib/less/README head/contrib/less/configure.ac head/contrib/less/defines.h.in head/contrib/less/less.man head/contrib/less/less.nro head/contrib/less/lessecho.man head/contrib/less/lessecho.nro head/contrib/less/lesskey.man head/contrib/less/lesskey.nro head/contrib/less/option.c head/contrib/less/version.c Directory Properties: head/contrib/less/ (props changed) Modified: head/contrib/less/NEWS ============================================================================== --- head/contrib/less/NEWS Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/NEWS Mon Dec 3 19:00:23 2012 (r243829) @@ -11,7 +11,7 @@ ====================================================================== - Major changes between "less" versions 451 and 453 + Major changes between "less" versions 451 and 456 * Allow backslash escaping of metacharacters in LESS environment variable. Modified: head/contrib/less/README ============================================================================== --- head/contrib/less/README Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/README Mon Dec 3 19:00:23 2012 (r243829) @@ -7,9 +7,9 @@ ************************************************************************** ************************************************************************** - Less, version 453 + Less, version 456 - This is the distribution of less, version 453, released 27 Oct 2012. + This is the distribution of less, version 456, released 08 Nov 2012. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or Modified: head/contrib/less/configure.ac ============================================================================== --- head/contrib/less/configure.ac Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/configure.ac Mon Dec 3 19:00:23 2012 (r243829) @@ -669,7 +669,7 @@ AH_TOP([ /* * Sizes of various buffers. */ -#if 0 /* old sizes for small memory machines +#if 0 /* old sizes for small memory machines */ #define CMDBUF_SIZE 512 /* Buffer for multichar commands */ #define UNGOT_SIZE 100 /* Max chars to unget() */ #define LINEBUF_SIZE 1024 /* Max size of line in input file */ Modified: head/contrib/less/defines.h.in ============================================================================== --- head/contrib/less/defines.h.in Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/defines.h.in Mon Dec 3 19:00:23 2012 (r243829) @@ -182,7 +182,7 @@ /* * Sizes of various buffers. */ -#if 0 /* old sizes for small memory machines +#if 0 /* old sizes for small memory machines */ #define CMDBUF_SIZE 512 /* Buffer for multichar commands */ #define UNGOT_SIZE 100 /* Max chars to unget() */ #define LINEBUF_SIZE 1024 /* Max size of line in input file */ Modified: head/contrib/less/less.man ============================================================================== --- head/contrib/less/less.man Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/less.man Mon Dec 3 19:00:23 2012 (r243829) @@ -438,18 +438,14 @@ LESS(1) the command line by beginning the command line option with "-+". Some options like -k or -D require a string to follow the option let- - ter. The string for that option is considered to end when a space, - tab, dash or dollar sign ($) is found. For example, to set two -D - options on MS-DOS, you can separate them with a dollar sign, like this: + ter. The string for that option is considered to end when a dollar + sign ($) is found. For example, you can set two -D options on MS-DOS + like this: LESS="Dn9.1$Ds4.1" - or a space like this: - - LESS="Dn9.1 Ds4.1" - - Any character may be included literally in an option string by preced- - ing it with a backslash. + A dollar sign or backslash may be included literally in an option + string by preceding it with a backslash. -? or --help This option displays a summary of the commands accepted by less @@ -1612,4 +1608,4 @@ LESS(1) - Version 453: 27 Oct 2012 LESS(1) + Version 456: 08 Nov 2012 LESS(1) Modified: head/contrib/less/less.nro ============================================================================== --- head/contrib/less/less.nro Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/less.nro Mon Dec 3 19:00:23 2012 (r243829) @@ -1,4 +1,4 @@ -.TH LESS 1 "Version 453: 27 Oct 2012" +.TH LESS 1 "Version 456: 08 Nov 2012" .SH NAME less \- opposite of more .SH SYNOPSIS @@ -456,18 +456,12 @@ to its default value on the command line line option with "\-+". .sp Some options like \-k or \-D require a string to follow the option letter. -The string for that option is considered to end when a space, tab, -dash or dollar sign ($) is found. -For example, to set two \-D options on MS-DOS, -you can separate them with a dollar sign, like this: +The string for that option is considered to end when a dollar sign ($) is found. +For example, you can set two \-D options on MS-DOS like this: .sp LESS="Dn9.1$Ds4.1" .sp -or a space like this: -.sp -LESS="Dn9.1 Ds4.1" -.sp -Any character may be included literally in an option string +A dollar sign or backslash may be included literally in an option string by preceding it with a backslash. .IP "\-? or \-\-help" This option displays a summary of the commands accepted by Modified: head/contrib/less/lessecho.man ============================================================================== --- head/contrib/less/lessecho.man Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/lessecho.man Mon Dec 3 19:00:23 2012 (r243829) @@ -51,4 +51,4 @@ LESSECHO(1) - Version 453: 27 Oct 2012 LESSECHO(1) + Version 456: 08 Nov 2012 LESSECHO(1) Modified: head/contrib/less/lessecho.nro ============================================================================== --- head/contrib/less/lessecho.nro Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/lessecho.nro Mon Dec 3 19:00:23 2012 (r243829) @@ -1,4 +1,4 @@ -.TH LESSECHO 1 "Version 453: 27 Oct 2012" +.TH LESSECHO 1 "Version 456: 08 Nov 2012" .SH NAME lessecho \- expand metacharacters .SH SYNOPSIS Modified: head/contrib/less/lesskey.man ============================================================================== --- head/contrib/less/lesskey.man Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/lesskey.man Mon Dec 3 19:00:23 2012 (r243829) @@ -353,4 +353,4 @@ LESSKEY(1) - Version 453: 27 Oct 2012 LESSKEY(1) + Version 456: 08 Nov 2012 LESSKEY(1) Modified: head/contrib/less/lesskey.nro ============================================================================== --- head/contrib/less/lesskey.nro Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/lesskey.nro Mon Dec 3 19:00:23 2012 (r243829) @@ -1,4 +1,4 @@ -.TH LESSKEY 1 "Version 453: 27 Oct 2012" +.TH LESSKEY 1 "Version 456: 08 Nov 2012" .SH NAME lesskey \- specify key bindings for less .SH SYNOPSIS Modified: head/contrib/less/option.c ============================================================================== --- head/contrib/less/option.c Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/option.c Mon Dec 3 19:00:23 2012 (r243829) @@ -149,7 +149,7 @@ scan_option(s) if (s == NULL) return; if (*str == '+') - every_first_cmd = save(++str); + every_first_cmd = save(str+1); else ungetsc(str); free(str); @@ -585,7 +585,6 @@ optstring(s, p_str, printopt, validchars } else { if (*p == END_OPTION_STRING || - *p == ' ' || *p == '\t' || *p == '-' || (validchars != NULL && strchr(validchars, *p) == NULL)) /* End of option string. */ break; Modified: head/contrib/less/version.c ============================================================================== --- head/contrib/less/version.c Mon Dec 3 18:58:46 2012 (r243828) +++ head/contrib/less/version.c Mon Dec 3 19:00:23 2012 (r243829) @@ -757,6 +757,9 @@ v451 7/20/12 Fix typo. v452 10/19/12 Fix --with-regex=none, fix "stty 0", fix Win32. Don't quit if errors in cmd line options. v453 10/27/12 Increase buffer sizes. +v454 11/5/12 Fix typo. +v455 11/5/12 Fix typo. +v456 11/8/12 Fix option string incompatibility. */ -char version[] = "453"; +char version[] = "456"; From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 19:22:47 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 87BC4255; Mon, 3 Dec 2012 19:22:47 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-ea0-f182.google.com (mail-ea0-f182.google.com [209.85.215.182]) by mx1.freebsd.org (Postfix) with ESMTP id 42D478FC18; Mon, 3 Dec 2012 19:22:46 +0000 (UTC) Received: by mail-ea0-f182.google.com with SMTP id a14so1578354eaa.13 for ; Mon, 03 Dec 2012 11:22:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=KMbG5lF35Q8tQuV4sR6RQButgEh32rQncNUCI2OHIbM=; b=PQWZ78/9H26fogM9mGe3j2sPF2Crni4gCEnWtpeowFxJMb97YSAmIHFaInZf1uIXbb Zjzw1nQ3bVptFX89fvplqfEzGspWdVxigmH2Rs1t7D15dVpaQFduyx13na+pUYtbRIzu EVFv0zwsx7Gm4RC8iRseHT+15QIYrMguftuHHPTrTnc8uFIGnFf7AJBtPl7NbBImW1sJ 1u9tluZMWBEtaFDy5ASMctfL5dAiOhzlRR0H2k/6/0x6ok/ZC3F9rFDgSgvBLiZ8TQVl OP0/RXl1UyGB5zS/KY6Z3WNkTNL3NdmST6/8O0E7k90xFBotkbMGCCrNA4Vws/12gI3n 6dBA== Received: by 10.14.220.71 with SMTP id n47mr38861073eep.39.1354562565325; Mon, 03 Dec 2012 11:22:45 -0800 (PST) Received: from ithaqua.etoilebsd.net (ithaqua.etoilebsd.net. [37.59.37.188]) by mx.google.com with ESMTPS id y44sm32994603eel.14.2012.12.03.11.22.44 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 03 Dec 2012 11:22:44 -0800 (PST) Sender: Baptiste Daroussin Date: Mon, 3 Dec 2012 20:22:42 +0100 From: Baptiste Daroussin To: Stanislav Sedov Subject: Re: svn commit: r243554 - in head/usr.sbin/pkg_install: add create delete info lib updating version Message-ID: <20121203192242.GC5305@ithaqua.etoilebsd.net> References: <201211260511.qAQ5B7DQ002346@svn.freebsd.org> <20121128170032.730be5fab68dba2a09aaa14e@FreeBSD.org> <20121128183422.714562856f27371c95d2a84e@FreeBSD.org> <20121129073846.GG97474@ithaqua.etoilebsd.net> <20121130144040.99559ed924a48b909cbd3c4b@FreeBSD.org> <20121203104526.5041f0eefe10045375b77df1@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="DIOMP1UsTsWJauNi" Content-Disposition: inline In-Reply-To: <20121203104526.5041f0eefe10045375b77df1@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Eitan Adler , Chris Rees X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 19:22:47 -0000 --DIOMP1UsTsWJauNi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 03, 2012 at 10:45:26AM -0800, Stanislav Sedov wrote: > On Sat, 1 Dec 2012 08:52:52 +0000 > Chris Rees mentioned: >=20 > >=20 > > UPDATING, yes. Also as I reminded you in IRC last week, users of -CURR= ENT > > are expected to follow -current@. Users of ports are also strongly > > recommended to read -ports-announce. >=20 > Repeating that several times does not make it true. This was also sent to current@ >=20 > >=20 > > What are you trying to achieve here? You discussed this previously, and > > got exactly the same answer. There were extensive discussions over it = in > > ports@. >=20 > I'm trying to point out, that this commit (and previous pkgng ones) was m= ade > without proper peer review and consulations, which is a recommended pract= ice > in THIS project. Doing so hurts not only the committer reputation (which= I > frankly do not care about), but the project image as a whole. That is good I don't care about my reputation either. But I do care about t= he project image, and lots of very large companies with large freebsd setup se= nt me mails thank the pkgng people for our work and how much it simplifies their = life about managing their servers, because pkgng can reliably upgrade packages, = and fits nicely with puppet/chef/cfengine. they also appreciate how easy a new FreeBSD installation is with pkgng. Of course pkgng is far from perfect but it is actually better than pkg_inst= all and the bottleneck to improve the pkgng is now the ports tree which lacks l= ot of thing to be able to produce better binary packages. And for that we need pk= gng to be the default backend of the ports tree. >=20 > I really don't want to go in and revert these changes, but I want to find= a > reasonable solution. It's not the first time an unreviewed ports-related > change is being committed to a tree by that hurts us, who actually use Fr= eeBSD > and not consider it a personal playground. Sorry but I consider companies with 1K+ server using FreeBSD not a personnal playground, and lot's of them are really happy with the direction the ports= tree and package management on FreeBSD is taking Bapt --DIOMP1UsTsWJauNi Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlC8/AIACgkQ8kTtMUmk6EznhQCgnTaHasagdnQrx5JfGVqr+yzV 4XwAoIZALZ5grLd+qIgiV8rfkMNv/SyJ =sP9j -----END PGP SIGNATURE----- --DIOMP1UsTsWJauNi-- From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 19:24:10 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 081AF3E5; Mon, 3 Dec 2012 19:24:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D3FF98FC13; Mon, 3 Dec 2012 19:24:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3JO9uB018958; Mon, 3 Dec 2012 19:24:09 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3JO9CR018937; Mon, 3 Dec 2012 19:24:09 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201212031924.qB3JO9CR018937@svn.freebsd.org> From: Dimitry Andric Date: Mon, 3 Dec 2012 19:24:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243830 - in head: contrib/llvm/include/llvm contrib/llvm/include/llvm-c contrib/llvm/include/llvm-c/Transforms contrib/llvm/include/llvm/ADT contrib/llvm/include/llvm/Analysis contrib/... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 19:24:10 -0000 Author: dim Date: Mon Dec 3 19:24:08 2012 New Revision: 243830 URL: http://svnweb.freebsd.org/changeset/base/243830 Log: Upgrade our copy of llvm/clang to r168974, from upstream's release_32 branch. This is effectively llvm/clang 3.2 RC2; the 3.2 release is coming soon. Added: head/contrib/llvm/include/llvm/ADT/MapVector.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/ADT/MapVector.h head/contrib/llvm/include/llvm/AddressingMode.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/AddressingMode.h head/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Analysis/DependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/ProfileDataLoader.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Analysis/ProfileDataLoader.h head/contrib/llvm/include/llvm/Analysis/ProfileDataTypes.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Analysis/ProfileDataTypes.h head/contrib/llvm/include/llvm/CodeGen/CommandFlags.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/CodeGen/CommandFlags.h head/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/CodeGen/MachinePostDominators.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGILP.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGILP.h head/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/CodeGen/TargetSchedule.h head/contrib/llvm/include/llvm/DataLayout.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/DataLayout.h head/contrib/llvm/include/llvm/ExecutionEngine/ObjectBuffer.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/ExecutionEngine/ObjectBuffer.h head/contrib/llvm/include/llvm/ExecutionEngine/ObjectImage.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/ExecutionEngine/ObjectImage.h head/contrib/llvm/include/llvm/Object/RelocVisitor.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Object/RelocVisitor.h head/contrib/llvm/include/llvm/Target/TargetTransformImpl.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Target/TargetTransformImpl.h head/contrib/llvm/include/llvm/TargetTransformInfo.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/TargetTransformInfo.h head/contrib/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Transforms/Utils/BypassSlowDivision.h head/contrib/llvm/include/llvm/Transforms/Utils/IntegerDivision.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Transforms/Utils/IntegerDivision.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h - copied unchanged from r243792, vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyLibCalls.h head/contrib/llvm/lib/Analysis/CostModel.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Analysis/CostModel.cpp head/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Analysis/DependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/ProfileDataLoader.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Analysis/ProfileDataLoader.cpp head/contrib/llvm/lib/Analysis/ProfileDataLoaderPass.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Analysis/ProfileDataLoaderPass.cpp head/contrib/llvm/lib/CodeGen/MachinePostDominators.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/CodeGen/MachinePostDominators.cpp head/contrib/llvm/lib/CodeGen/StackColoring.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/CodeGen/StackColoring.cpp head/contrib/llvm/lib/CodeGen/TargetSchedule.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/CodeGen/TargetSchedule.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugRangeList.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/DebugInfo/DWARFDebugRangeList.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugRangeList.h - copied unchanged from r243792, vendor/llvm/dist/lib/DebugInfo/DWARFDebugRangeList.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h - copied unchanged from r243792, vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h - copied unchanged from r243792, vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_types.h - copied unchanged from r243792, vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/ittnotify_types.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c - copied unchanged from r243792, vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h - copied unchanged from r243792, vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/ObjectImageCommon.h - copied unchanged from r243792, vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/ObjectImageCommon.h head/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td - copied unchanged from r243792, vendor/llvm/dist/lib/Target/ARM/ARMScheduleSwift.td head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h - copied unchanged from r243792, vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsDirectObjLower.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsDirectObjLower.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsDirectObjLower.h - copied unchanged from r243792, vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsDirectObjLower.h head/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td - copied unchanged from r243792, vendor/llvm/dist/lib/Target/Mips/MipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td - copied unchanged from r243792, vendor/llvm/dist/lib/Target/Mips/MipsDSPInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td - copied unchanged from r243792, vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500mc.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE5500.td - copied unchanged from r243792, vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE5500.td head/contrib/llvm/lib/Target/TargetTransformImpl.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Target/TargetTransformImpl.cpp head/contrib/llvm/lib/Target/X86/X86InstrTSX.td - copied unchanged from r243792, vendor/llvm/dist/lib/Target/X86/X86InstrTSX.td head/contrib/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/IPO/BarrierNoopPass.cpp head/contrib/llvm/lib/Transforms/Instrumentation/BlackList.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Instrumentation/BlackList.cpp head/contrib/llvm/lib/Transforms/Instrumentation/BlackList.h - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Instrumentation/BlackList.h head/contrib/llvm/lib/Transforms/Scalar/SROA.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Scalar/SROA.cpp head/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Utils/BypassSlowDivision.cpp head/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Utils/IntegerDivision.cpp head/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Utils/MetaRenamer.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Utils/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp head/contrib/llvm/lib/VMCore/AttributesImpl.h - copied unchanged from r243792, vendor/llvm/dist/lib/VMCore/AttributesImpl.h head/contrib/llvm/lib/VMCore/DataLayout.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/VMCore/DataLayout.cpp head/contrib/llvm/lib/VMCore/TargetTransformInfo.cpp - copied unchanged from r243792, vendor/llvm/dist/lib/VMCore/TargetTransformInfo.cpp head/contrib/llvm/tools/clang/include/clang/AST/CommentCommands.td - copied unchanged from r243792, vendor/clang/dist/include/clang/AST/CommentCommands.td head/contrib/llvm/tools/clang/include/clang/AST/CommentHTMLTags.td - copied unchanged from r243792, vendor/clang/dist/include/clang/AST/CommentHTMLTags.td head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTTypeTraits.h - copied unchanged from r243792, vendor/clang/dist/include/clang/ASTMatchers/ASTTypeTraits.h head/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def - copied unchanged from r243792, vendor/clang/dist/include/clang/Basic/DiagnosticOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Basic/DiagnosticOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def - copied unchanged from r243792, vendor/clang/dist/include/clang/Basic/Sanitizers.def head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def - copied unchanged from r243792, vendor/clang/dist/include/clang/Frontend/CodeGenOptions.def head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Lex/HeaderSearchOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/PPMutationListener.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Lex/PPMutationListener.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Lex/PreprocessorOptions.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/ - copied from r243792, vendor/clang/dist/include/clang/Rewrite/Core/ head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/ - copied from r243792, vendor/clang/dist/include/clang/Rewrite/Frontend/ head/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Sema/MultiplexExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def - copied unchanged from r243792, vendor/clang/dist/include/clang/StaticAnalyzer/Core/Analyses.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h - copied unchanged from r243792, vendor/clang/dist/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h - copied unchanged from r243792, vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h head/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Tooling/CommonOptionsParser.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Tooling/CompilationDatabasePluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Tooling/FileMatchTrie.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Tooling/FileMatchTrie.h head/contrib/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h - copied unchanged from r243792, vendor/clang/dist/include/clang/Tooling/JSONCompilationDatabase.h head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Analysis/BodyFarm.cpp head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.h - copied unchanged from r243792, vendor/clang/dist/lib/Analysis/BodyFarm.h head/contrib/llvm/tools/clang/lib/Analysis/ObjCNoReturn.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Analysis/ObjCNoReturn.cpp head/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.h - copied unchanged from r243792, vendor/clang/dist/lib/Driver/SanitizerArgs.h head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_aes.h - copied unchanged from r243792, vendor/clang/dist/lib/Headers/__wmmintrin_aes.h head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_pclmul.h - copied unchanged from r243792, vendor/clang/dist/lib/Headers/__wmmintrin_pclmul.h head/contrib/llvm/tools/clang/lib/Headers/f16cintrin.h - copied unchanged from r243792, vendor/clang/dist/lib/Headers/f16cintrin.h head/contrib/llvm/tools/clang/lib/Headers/rtmintrin.h - copied unchanged from r243792, vendor/clang/dist/lib/Headers/rtmintrin.h head/contrib/llvm/tools/clang/lib/Rewrite/Core/ - copied from r243792, vendor/clang/dist/lib/Rewrite/Core/ head/contrib/llvm/tools/clang/lib/Rewrite/Frontend/ - copied from r243792, vendor/clang/dist/lib/Rewrite/Frontend/ head/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Sema/MultiplexExternalSemaSource.cpp head/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Sema/ScopeInfo.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Sema/SemaStmtAsm.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp - copied unchanged from r243792, vendor/clang/dist/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp - copied unchanged from r243792, vendor/clang/dist/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp - copied unchanged from r243792, vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp - copied unchanged from r243792, vendor/clang/dist/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp - copied unchanged from r243792, vendor/clang/dist/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp - copied unchanged from r243792, vendor/clang/dist/lib/StaticAnalyzer/Core/ConstraintManager.cpp head/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Tooling/CommonOptionsParser.cpp head/contrib/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Tooling/FileMatchTrie.cpp head/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp - copied unchanged from r243792, vendor/clang/dist/lib/Tooling/JSONCompilationDatabase.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp - copied unchanged from r243792, vendor/clang/dist/utils/TableGen/ClangCommentCommandInfoEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp - copied unchanged from r243792, vendor/clang/dist/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp head/contrib/llvm/tools/lli/RecordingMemoryManager.cpp - copied unchanged from r243792, vendor/llvm/dist/tools/lli/RecordingMemoryManager.cpp head/contrib/llvm/tools/lli/RecordingMemoryManager.h - copied unchanged from r243792, vendor/llvm/dist/tools/lli/RecordingMemoryManager.h head/contrib/llvm/tools/lli/RemoteTarget.cpp - copied unchanged from r243792, vendor/llvm/dist/tools/lli/RemoteTarget.cpp head/contrib/llvm/tools/lli/RemoteTarget.h - copied unchanged from r243792, vendor/llvm/dist/tools/lli/RemoteTarget.h head/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp - copied unchanged from r243792, vendor/llvm/dist/utils/TableGen/CodeGenMapTable.cpp head/lib/clang/include/MipsGenAsmMatcher.inc (contents, props changed) head/lib/clang/include/MipsGenMCPseudoLowering.inc (contents, props changed) head/lib/clang/include/clang/AST/CommentCommandInfo.inc (contents, props changed) head/lib/clang/include/clang/AST/CommentHTMLTags.inc (contents, props changed) head/lib/clang/include/clang/AST/CommentHTMLTagsProperties.inc (contents, props changed) head/lib/clang/libclangrewritecore/ head/lib/clang/libclangrewritecore/Makefile (contents, props changed) head/lib/clang/libclangrewritefrontend/ head/lib/clang/libclangrewritefrontend/Makefile (contents, props changed) Deleted: head/contrib/llvm/include/llvm/ADT/Trie.h head/contrib/llvm/include/llvm/Analysis/LoopDependenceAnalysis.h head/contrib/llvm/include/llvm/ExecutionEngine/IntelJITEventsWrapper.h head/contrib/llvm/include/llvm/TableGen/TableGenAction.h head/contrib/llvm/include/llvm/Target/TargetData.h head/contrib/llvm/include/llvm/Target/TargetELFWriterInfo.h head/contrib/llvm/lib/Analysis/LoopDependenceAnalysis.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/ObjectImage.h head/contrib/llvm/lib/TableGen/TableGenAction.cpp head/contrib/llvm/lib/Target/AMDGPU/ head/contrib/llvm/lib/Target/ARM/ARMELFWriterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMELFWriterInfo.h head/contrib/llvm/lib/Target/MBlaze/MBlazeELFWriterInfo.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeELFWriterInfo.h head/contrib/llvm/lib/Target/TargetData.cpp head/contrib/llvm/lib/Target/TargetELFWriterInfo.cpp head/contrib/llvm/lib/Target/X86/X86ELFWriterInfo.cpp head/contrib/llvm/lib/Target/X86/X86ELFWriterInfo.h head/contrib/llvm/lib/Target/X86/X86MCInstLower.h head/contrib/llvm/lib/Transforms/Instrumentation/FunctionBlackList.cpp head/contrib/llvm/lib/Transforms/Instrumentation/FunctionBlackList.h head/contrib/llvm/tools/clang/include/clang/Frontend/Analyses.def head/contrib/llvm/tools/clang/include/clang/Frontend/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/HeaderSearchOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOptions.h head/contrib/llvm/tools/clang/include/clang/Rewrite/ASTConsumers.h head/contrib/llvm/tools/clang/include/clang/Rewrite/DeltaTree.h head/contrib/llvm/tools/clang/include/clang/Rewrite/FixItRewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Rewrite/HTMLRewrite.h head/contrib/llvm/tools/clang/include/clang/Rewrite/RewriteRope.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Rewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Rewriters.h head/contrib/llvm/tools/clang/include/clang/Rewrite/TokenRewriter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/DereferenceChecker.h head/contrib/llvm/tools/clang/include/clang/Tooling/CommandLineClangTool.h head/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp head/contrib/llvm/tools/clang/lib/Rewrite/FixItRewriter.cpp head/contrib/llvm/tools/clang/lib/Rewrite/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Rewrite/HTMLPrint.cpp head/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp head/contrib/llvm/tools/clang/lib/Rewrite/InclusionRewriter.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteMacros.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteModernObjC.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteObjC.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteTest.cpp head/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp head/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AdjustedReturnValueChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSAtomicChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicConstraintManager.cpp head/contrib/llvm/tools/clang/lib/Tooling/CommandLineClangTool.cpp head/contrib/llvm/tools/clang/lib/Tooling/CustomCompilationDatabase.h head/lib/clang/libclangrewrite/ Modified: head/contrib/llvm/include/llvm-c/Core.h head/contrib/llvm/include/llvm-c/Disassembler.h head/contrib/llvm/include/llvm-c/Target.h head/contrib/llvm/include/llvm-c/TargetMachine.h head/contrib/llvm/include/llvm-c/Transforms/Vectorize.h head/contrib/llvm/include/llvm/ADT/APFloat.h head/contrib/llvm/include/llvm/ADT/APInt.h head/contrib/llvm/include/llvm/ADT/ArrayRef.h head/contrib/llvm/include/llvm/ADT/BitVector.h head/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h head/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h head/contrib/llvm/include/llvm/ADT/DenseMap.h head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h head/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h head/contrib/llvm/include/llvm/ADT/FoldingSet.h head/contrib/llvm/include/llvm/ADT/Hashing.h head/contrib/llvm/include/llvm/ADT/ImmutableList.h head/contrib/llvm/include/llvm/ADT/ImmutableMap.h head/contrib/llvm/include/llvm/ADT/ImmutableSet.h head/contrib/llvm/include/llvm/ADT/Optional.h head/contrib/llvm/include/llvm/ADT/OwningPtr.h head/contrib/llvm/include/llvm/ADT/PackedVector.h head/contrib/llvm/include/llvm/ADT/PointerIntPair.h head/contrib/llvm/include/llvm/ADT/ScopedHashTable.h head/contrib/llvm/include/llvm/ADT/SetVector.h head/contrib/llvm/include/llvm/ADT/SmallBitVector.h head/contrib/llvm/include/llvm/ADT/SmallPtrSet.h head/contrib/llvm/include/llvm/ADT/SmallString.h head/contrib/llvm/include/llvm/ADT/SmallVector.h head/contrib/llvm/include/llvm/ADT/SparseBitVector.h head/contrib/llvm/include/llvm/ADT/SparseSet.h head/contrib/llvm/include/llvm/ADT/StringExtras.h head/contrib/llvm/include/llvm/ADT/StringRef.h head/contrib/llvm/include/llvm/ADT/StringSet.h head/contrib/llvm/include/llvm/ADT/Triple.h head/contrib/llvm/include/llvm/ADT/Twine.h head/contrib/llvm/include/llvm/ADT/ValueMap.h head/contrib/llvm/include/llvm/ADT/ilist.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h head/contrib/llvm/include/llvm/Analysis/CallGraph.h head/contrib/llvm/include/llvm/Analysis/CaptureTracking.h head/contrib/llvm/include/llvm/Analysis/CodeMetrics.h head/contrib/llvm/include/llvm/Analysis/ConstantFolding.h head/contrib/llvm/include/llvm/Analysis/Dominators.h head/contrib/llvm/include/llvm/Analysis/IVUsers.h head/contrib/llvm/include/llvm/Analysis/InlineCost.h head/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h head/contrib/llvm/include/llvm/Analysis/IntervalPartition.h head/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h head/contrib/llvm/include/llvm/Analysis/Loads.h head/contrib/llvm/include/llvm/Analysis/LoopInfo.h head/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h head/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h head/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/PHITransAddr.h head/contrib/llvm/include/llvm/Analysis/Passes.h head/contrib/llvm/include/llvm/Analysis/ProfileInfoTypes.h head/contrib/llvm/include/llvm/Analysis/RegionInfo.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h head/contrib/llvm/include/llvm/Analysis/SparsePropagation.h head/contrib/llvm/include/llvm/Analysis/ValueTracking.h head/contrib/llvm/include/llvm/Argument.h head/contrib/llvm/include/llvm/Attributes.h head/contrib/llvm/include/llvm/BasicBlock.h head/contrib/llvm/include/llvm/Bitcode/Archive.h head/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h head/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h head/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h head/contrib/llvm/include/llvm/CallingConv.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h head/contrib/llvm/include/llvm/CodeGen/FastISel.h head/contrib/llvm/include/llvm/CodeGen/GCMetadata.h head/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h head/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h head/contrib/llvm/include/llvm/CodeGen/LiveVariables.h head/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h head/contrib/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h head/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineFunction.h head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h head/contrib/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h head/contrib/llvm/include/llvm/CodeGen/MachineOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h head/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Graph.h head/contrib/llvm/include/llvm/CodeGen/PBQP/HeuristicBase.h head/contrib/llvm/include/llvm/CodeGen/Passes.h head/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h head/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h head/contrib/llvm/include/llvm/CodeGen/RegisterClassInfo.h head/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h head/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h head/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.td head/contrib/llvm/include/llvm/Constant.h head/contrib/llvm/include/llvm/Constants.h head/contrib/llvm/include/llvm/DIBuilder.h head/contrib/llvm/include/llvm/DebugInfo.h head/contrib/llvm/include/llvm/DebugInfo/DIContext.h head/contrib/llvm/include/llvm/DefaultPasses.h head/contrib/llvm/include/llvm/DerivedTypes.h head/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h head/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h head/contrib/llvm/include/llvm/ExecutionEngine/JITMemoryManager.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h head/contrib/llvm/include/llvm/Function.h head/contrib/llvm/include/llvm/GlobalAlias.h head/contrib/llvm/include/llvm/GlobalValue.h head/contrib/llvm/include/llvm/GlobalVariable.h head/contrib/llvm/include/llvm/IRBuilder.h head/contrib/llvm/include/llvm/InitializePasses.h head/contrib/llvm/include/llvm/InlineAsm.h head/contrib/llvm/include/llvm/InstrTypes.h head/contrib/llvm/include/llvm/Instruction.h head/contrib/llvm/include/llvm/Instructions.h head/contrib/llvm/include/llvm/IntrinsicInst.h head/contrib/llvm/include/llvm/Intrinsics.h head/contrib/llvm/include/llvm/Intrinsics.td head/contrib/llvm/include/llvm/IntrinsicsARM.td head/contrib/llvm/include/llvm/IntrinsicsMips.td head/contrib/llvm/include/llvm/IntrinsicsX86.td head/contrib/llvm/include/llvm/LLVMContext.h head/contrib/llvm/include/llvm/LinkAllPasses.h head/contrib/llvm/include/llvm/MC/MCAsmBackend.h head/contrib/llvm/include/llvm/MC/MCAsmInfo.h head/contrib/llvm/include/llvm/MC/MCAssembler.h head/contrib/llvm/include/llvm/MC/MCCodeEmitter.h head/contrib/llvm/include/llvm/MC/MCContext.h head/contrib/llvm/include/llvm/MC/MCDwarf.h head/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCExpr.h head/contrib/llvm/include/llvm/MC/MCInst.h head/contrib/llvm/include/llvm/MC/MCInstPrinter.h head/contrib/llvm/include/llvm/MC/MCInstrDesc.h head/contrib/llvm/include/llvm/MC/MCLabel.h head/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h head/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h head/contrib/llvm/include/llvm/MC/MCObjectStreamer.h head/contrib/llvm/include/llvm/MC/MCObjectWriter.h head/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h head/contrib/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h head/contrib/llvm/include/llvm/MC/MCRegisterInfo.h head/contrib/llvm/include/llvm/MC/MCSchedule.h head/contrib/llvm/include/llvm/MC/MCSection.h head/contrib/llvm/include/llvm/MC/MCSectionCOFF.h head/contrib/llvm/include/llvm/MC/MCSectionELF.h head/contrib/llvm/include/llvm/MC/MCSectionMachO.h head/contrib/llvm/include/llvm/MC/MCStreamer.h head/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h head/contrib/llvm/include/llvm/MC/MCSymbol.h head/contrib/llvm/include/llvm/MC/MCTargetAsmLexer.h head/contrib/llvm/include/llvm/MC/MCTargetAsmParser.h head/contrib/llvm/include/llvm/MC/MCValue.h head/contrib/llvm/include/llvm/MC/SubtargetFeature.h head/contrib/llvm/include/llvm/MDBuilder.h head/contrib/llvm/include/llvm/Metadata.h head/contrib/llvm/include/llvm/Object/Archive.h head/contrib/llvm/include/llvm/Object/Binary.h head/contrib/llvm/include/llvm/Object/COFF.h head/contrib/llvm/include/llvm/Object/ELF.h head/contrib/llvm/include/llvm/Object/MachO.h head/contrib/llvm/include/llvm/Object/MachOFormat.h head/contrib/llvm/include/llvm/Object/ObjectFile.h head/contrib/llvm/include/llvm/Operator.h head/contrib/llvm/include/llvm/Pass.h head/contrib/llvm/include/llvm/PassAnalysisSupport.h head/contrib/llvm/include/llvm/PassSupport.h head/contrib/llvm/include/llvm/Support/AlignOf.h head/contrib/llvm/include/llvm/Support/Allocator.h head/contrib/llvm/include/llvm/Support/CallSite.h head/contrib/llvm/include/llvm/Support/Casting.h head/contrib/llvm/include/llvm/Support/CommandLine.h head/contrib/llvm/include/llvm/Support/Compiler.h head/contrib/llvm/include/llvm/Support/DataExtractor.h head/contrib/llvm/include/llvm/Support/ELF.h head/contrib/llvm/include/llvm/Support/FileOutputBuffer.h head/contrib/llvm/include/llvm/Support/FileSystem.h head/contrib/llvm/include/llvm/Support/Format.h head/contrib/llvm/include/llvm/Support/FormattedStream.h head/contrib/llvm/include/llvm/Support/GCOV.h head/contrib/llvm/include/llvm/Support/InstVisitor.h head/contrib/llvm/include/llvm/Support/IntegersSubset.h head/contrib/llvm/include/llvm/Support/IntegersSubsetMapping.h head/contrib/llvm/include/llvm/Support/LEB128.h head/contrib/llvm/include/llvm/Support/LockFileManager.h head/contrib/llvm/include/llvm/Support/MathExtras.h head/contrib/llvm/include/llvm/Support/Memory.h head/contrib/llvm/include/llvm/Support/MemoryBuffer.h head/contrib/llvm/include/llvm/Support/Mutex.h head/contrib/llvm/include/llvm/Support/MutexGuard.h head/contrib/llvm/include/llvm/Support/PathV1.h head/contrib/llvm/include/llvm/Support/PathV2.h head/contrib/llvm/include/llvm/Support/PrettyStackTrace.h head/contrib/llvm/include/llvm/Support/Program.h head/contrib/llvm/include/llvm/Support/RWMutex.h head/contrib/llvm/include/llvm/Support/Regex.h head/contrib/llvm/include/llvm/Support/Registry.h head/contrib/llvm/include/llvm/Support/SourceMgr.h head/contrib/llvm/include/llvm/Support/StreamableMemoryObject.h head/contrib/llvm/include/llvm/Support/TargetFolder.h head/contrib/llvm/include/llvm/Support/TargetRegistry.h head/contrib/llvm/include/llvm/Support/Threading.h head/contrib/llvm/include/llvm/Support/TimeValue.h head/contrib/llvm/include/llvm/Support/Timer.h head/contrib/llvm/include/llvm/Support/ValueHandle.h head/contrib/llvm/include/llvm/Support/YAMLParser.h head/contrib/llvm/include/llvm/Support/circular_raw_ostream.h head/contrib/llvm/include/llvm/Support/raw_os_ostream.h head/contrib/llvm/include/llvm/Support/raw_ostream.h head/contrib/llvm/include/llvm/Support/system_error.h head/contrib/llvm/include/llvm/Support/type_traits.h head/contrib/llvm/include/llvm/SymbolTableListTraits.h head/contrib/llvm/include/llvm/TableGen/Error.h head/contrib/llvm/include/llvm/TableGen/Main.h head/contrib/llvm/include/llvm/TableGen/Record.h head/contrib/llvm/include/llvm/Target/Mangler.h head/contrib/llvm/include/llvm/Target/Target.td head/contrib/llvm/include/llvm/Target/TargetCallingConv.h head/contrib/llvm/include/llvm/Target/TargetInstrInfo.h head/contrib/llvm/include/llvm/Target/TargetIntrinsicInfo.h head/contrib/llvm/include/llvm/Target/TargetLibraryInfo.h head/contrib/llvm/include/llvm/Target/TargetLowering.h head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/Target/TargetMachine.h head/contrib/llvm/include/llvm/Target/TargetOpcodes.h head/contrib/llvm/include/llvm/Target/TargetOptions.h head/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h head/contrib/llvm/include/llvm/Target/TargetSchedule.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAGInfo.h head/contrib/llvm/include/llvm/Target/TargetSubtargetInfo.h head/contrib/llvm/include/llvm/Transforms/IPO.h head/contrib/llvm/include/llvm/Transforms/IPO/InlinerPass.h head/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h head/contrib/llvm/include/llvm/Transforms/Instrumentation.h head/contrib/llvm/include/llvm/Transforms/Scalar.h head/contrib/llvm/include/llvm/Transforms/Utils/AddrModeMatcher.h head/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h head/contrib/llvm/include/llvm/Transforms/Utils/Local.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h head/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h head/contrib/llvm/include/llvm/Transforms/Vectorize.h head/contrib/llvm/include/llvm/Type.h head/contrib/llvm/include/llvm/Use.h head/contrib/llvm/include/llvm/User.h head/contrib/llvm/include/llvm/Value.h head/contrib/llvm/lib/Analysis/AliasAnalysis.cpp head/contrib/llvm/lib/Analysis/AliasSetTracker.cpp head/contrib/llvm/lib/Analysis/Analysis.cpp head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp head/contrib/llvm/lib/Analysis/CaptureTracking.cpp head/contrib/llvm/lib/Analysis/CodeMetrics.cpp head/contrib/llvm/lib/Analysis/ConstantFolding.cpp head/contrib/llvm/lib/Analysis/DominanceFrontier.cpp head/contrib/llvm/lib/Analysis/IPA/CallGraph.cpp head/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp head/contrib/llvm/lib/Analysis/IVUsers.cpp head/contrib/llvm/lib/Analysis/InlineCost.cpp head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm/lib/Analysis/Lint.cpp head/contrib/llvm/lib/Analysis/Loads.cpp head/contrib/llvm/lib/Analysis/LoopInfo.cpp head/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/NoAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/PHITransAddr.cpp head/contrib/llvm/lib/Analysis/ProfileEstimatorPass.cpp head/contrib/llvm/lib/Analysis/ProfileInfo.cpp head/contrib/llvm/lib/Analysis/RegionInfo.cpp head/contrib/llvm/lib/Analysis/RegionPass.cpp head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp head/contrib/llvm/lib/Analysis/Trace.cpp head/contrib/llvm/lib/Analysis/ValueTracking.cpp head/contrib/llvm/lib/Archive/ArchiveInternals.h head/contrib/llvm/lib/Archive/ArchiveReader.cpp head/contrib/llvm/lib/AsmParser/LLLexer.cpp head/contrib/llvm/lib/AsmParser/LLParser.cpp head/contrib/llvm/lib/AsmParser/LLParser.h head/contrib/llvm/lib/AsmParser/LLToken.h head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.h head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/AllocationOrder.cpp head/contrib/llvm/lib/CodeGen/Analysis.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h head/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/Win64Exception.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.cpp head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp head/contrib/llvm/lib/CodeGen/CallingConvLower.cpp head/contrib/llvm/lib/CodeGen/CodeGen.cpp head/contrib/llvm/lib/CodeGen/CodePlacementOpt.cpp head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp head/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp head/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp head/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp head/contrib/llvm/lib/CodeGen/GCStrategy.cpp head/contrib/llvm/lib/CodeGen/IfConversion.cpp head/contrib/llvm/lib/CodeGen/InlineSpiller.cpp head/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp head/contrib/llvm/lib/CodeGen/LiveInterval.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalUnion.h head/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp head/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp head/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp head/contrib/llvm/lib/CodeGen/LiveRegMatrix.h head/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp head/contrib/llvm/lib/CodeGen/LiveVariables.cpp head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp head/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp head/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp head/contrib/llvm/lib/CodeGen/MachineCSE.cpp head/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp head/contrib/llvm/lib/CodeGen/MachineFunction.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp head/contrib/llvm/lib/CodeGen/MachineInstr.cpp head/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp head/contrib/llvm/lib/CodeGen/MachineLICM.cpp head/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp head/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/MachineScheduler.cpp head/contrib/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp head/contrib/llvm/lib/CodeGen/MachineTraceMetrics.h head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp head/contrib/llvm/lib/CodeGen/Passes.cpp head/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp head/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp head/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp head/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp head/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp head/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.h head/contrib/llvm/lib/CodeGen/RegisterPressure.cpp head/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeOrdering.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetSelectionDAGInfo.cpp head/contrib/llvm/lib/CodeGen/ShrinkWrapping.cpp head/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp head/contrib/llvm/lib/CodeGen/SlotIndexes.cpp head/contrib/llvm/lib/CodeGen/SplitKit.cpp head/contrib/llvm/lib/CodeGen/StackProtector.cpp head/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp head/contrib/llvm/lib/CodeGen/StrongPHIElimination.cpp head/contrib/llvm/lib/CodeGen/TailDuplication.cpp head/contrib/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.h head/contrib/llvm/lib/DebugInfo/DIContext.cpp head/contrib/llvm/lib/DebugInfo/DWARFCompileUnit.cpp head/contrib/llvm/lib/DebugInfo/DWARFCompileUnit.h head/contrib/llvm/lib/DebugInfo/DWARFContext.cpp head/contrib/llvm/lib/DebugInfo/DWARFContext.h head/contrib/llvm/lib/DebugInfo/DWARFDebugAranges.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugInfoEntry.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugInfoEntry.h head/contrib/llvm/lib/DebugInfo/DWARFDebugLine.cpp head/contrib/llvm/lib/DebugInfo/DWARFDebugLine.h head/contrib/llvm/lib/DebugInfo/DWARFFormValue.cpp head/contrib/llvm/lib/DebugInfo/DWARFFormValue.h head/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h head/contrib/llvm/lib/ExecutionEngine/JIT/JIT.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.h head/contrib/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITRegistrar.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h head/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp head/contrib/llvm/lib/MC/ELFObjectWriter.cpp head/contrib/llvm/lib/MC/MCAsmBackend.cpp head/contrib/llvm/lib/MC/MCAsmInfo.cpp head/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp head/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp head/contrib/llvm/lib/MC/MCAsmStreamer.cpp head/contrib/llvm/lib/MC/MCAssembler.cpp head/contrib/llvm/lib/MC/MCContext.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp head/contrib/llvm/lib/MC/MCDwarf.cpp head/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp head/contrib/llvm/lib/MC/MCELFStreamer.cpp head/contrib/llvm/lib/MC/MCExpr.cpp head/contrib/llvm/lib/MC/MCInst.cpp head/contrib/llvm/lib/MC/MCInstPrinter.cpp head/contrib/llvm/lib/MC/MCLabel.cpp head/contrib/llvm/lib/MC/MCMachOStreamer.cpp head/contrib/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm/lib/MC/MCObjectStreamer.cpp head/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp head/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp head/contrib/llvm/lib/MC/MCRegisterInfo.cpp head/contrib/llvm/lib/MC/MCStreamer.cpp head/contrib/llvm/lib/MC/MCSubtargetInfo.cpp head/contrib/llvm/lib/MC/MCSymbol.cpp head/contrib/llvm/lib/MC/MCValue.cpp head/contrib/llvm/lib/MC/MachObjectWriter.cpp head/contrib/llvm/lib/MC/SubtargetFeature.cpp head/contrib/llvm/lib/MC/WinCOFFStreamer.cpp head/contrib/llvm/lib/Object/COFFObjectFile.cpp head/contrib/llvm/lib/Object/MachOObjectFile.cpp head/contrib/llvm/lib/Support/APFloat.cpp head/contrib/llvm/lib/Support/Atomic.cpp head/contrib/llvm/lib/Support/CommandLine.cpp head/contrib/llvm/lib/Support/DAGDeltaAlgorithm.cpp head/contrib/llvm/lib/Support/DataExtractor.cpp head/contrib/llvm/lib/Support/DataStream.cpp head/contrib/llvm/lib/Support/DynamicLibrary.cpp head/contrib/llvm/lib/Support/Errno.cpp head/contrib/llvm/lib/Support/FoldingSet.cpp head/contrib/llvm/lib/Support/Host.cpp head/contrib/llvm/lib/Support/LockFileManager.cpp head/contrib/llvm/lib/Support/Memory.cpp head/contrib/llvm/lib/Support/MemoryBuffer.cpp head/contrib/llvm/lib/Support/SmallVector.cpp head/contrib/llvm/lib/Support/StreamableMemoryObject.cpp head/contrib/llvm/lib/Support/StringMap.cpp head/contrib/llvm/lib/Support/StringRef.cpp head/contrib/llvm/lib/Support/Triple.cpp head/contrib/llvm/lib/Support/Unix/Memory.inc head/contrib/llvm/lib/Support/Unix/Path.inc head/contrib/llvm/lib/Support/Unix/Signals.inc head/contrib/llvm/lib/Support/Windows/Memory.inc head/contrib/llvm/lib/Support/Windows/PathV2.inc head/contrib/llvm/lib/Support/YAMLParser.cpp head/contrib/llvm/lib/Support/raw_ostream.cpp head/contrib/llvm/lib/Support/regexec.c head/contrib/llvm/lib/Support/system_error.cpp head/contrib/llvm/lib/TableGen/Error.cpp head/contrib/llvm/lib/TableGen/Main.cpp head/contrib/llvm/lib/TableGen/Record.cpp head/contrib/llvm/lib/TableGen/TGParser.cpp head/contrib/llvm/lib/TableGen/TGParser.h head/contrib/llvm/lib/Target/ARM/ARM.h head/contrib/llvm/lib/Target/ARM/ARM.td head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.td head/contrib/llvm/lib/Target/ARM/ARMCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h head/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h head/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td head/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td head/contrib/llvm/lib/Target/ARM/ARMJITInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td head/contrib/llvm/lib/Target/ARM/ARMSchedule.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.h head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp head/contrib/llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp head/contrib/llvm/lib/Target/CellSPU/SPUFrameLowering.cpp head/contrib/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp head/contrib/llvm/lib/Target/CellSPU/SPUSubtarget.h head/contrib/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp head/contrib/llvm/lib/Target/CellSPU/SPUTargetMachine.h head/contrib/llvm/lib/Target/CppBackend/CPPBackend.cpp head/contrib/llvm/lib/Target/CppBackend/CPPTargetMachine.h head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonCallingConvLower.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV4.td head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVarargsCallingConvention.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp head/contrib/llvm/lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeAsmPrinter.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeFrameLowering.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeTargetMachine.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeTargetMachine.h head/contrib/llvm/lib/Target/MBlaze/MBlazeTargetObjectFile.cpp head/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeMCCodeEmitter.cpp head/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.h head/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp head/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h head/contrib/llvm/lib/Target/Mangler.cpp head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp head/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/Mips.td head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.h head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.h head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h head/contrib/llvm/lib/Target/Mips/MipsCallingConv.td head/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTX.td head/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.h head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.h head/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp head/contrib/llvm/lib/Target/PowerPC/PPC.td head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule440.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleA2.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG3.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleG5.td head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h head/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h head/contrib/llvm/lib/Target/Target.cpp head/contrib/llvm/lib/Target/TargetLibraryInfo.cpp head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp head/contrib/llvm/lib/Target/TargetMachineC.cpp head/contrib/llvm/lib/Target/TargetRegisterInfo.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmLexer.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.h head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp head/contrib/llvm/lib/Target/X86/X86.td head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp head/contrib/llvm/lib/Target/X86/X86AsmPrinter.h head/contrib/llvm/lib/Target/X86/X86COFFMachineModuleInfo.h head/contrib/llvm/lib/Target/X86/X86CallingConv.td head/contrib/llvm/lib/Target/X86/X86CodeEmitter.cpp head/contrib/llvm/lib/Target/X86/X86FastISel.cpp head/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.h head/contrib/llvm/lib/Target/X86/X86InstrCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrControl.td head/contrib/llvm/lib/Target/X86/X86InstrFMA.td head/contrib/llvm/lib/Target/X86/X86InstrFormats.td head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp head/contrib/llvm/lib/Target/X86/X86InstrInfo.h head/contrib/llvm/lib/Target/X86/X86InstrInfo.td head/contrib/llvm/lib/Target/X86/X86InstrMMX.td head/contrib/llvm/lib/Target/X86/X86InstrSSE.td head/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td head/contrib/llvm/lib/Target/X86/X86InstrXOP.td head/contrib/llvm/lib/Target/X86/X86JITInfo.cpp head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.h head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.h head/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm/lib/Target/X86/X86TargetMachine.h head/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp head/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp head/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h head/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp head/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp head/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp head/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm/lib/Transforms/IPO/IPO.cpp head/contrib/llvm/lib/Transforms/IPO/InlineAlways.cpp head/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp head/contrib/llvm/lib/Transforms/IPO/Inliner.cpp head/contrib/llvm/lib/Transforms/IPO/Internalize.cpp head/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp head/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombine.h head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineWorklist.h head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp head/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/MaximumSpanningTree.h head/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp head/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp head/contrib/llvm/lib/Transforms/Scalar/DCE.cpp head/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp head/contrib/llvm/lib/Transforms/Scalar/GlobalMerge.cpp head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp head/contrib/llvm/lib/Transforms/Scalar/ObjCARC.cpp head/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp head/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/AddrModeMatcher.cpp head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp head/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp head/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp head/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp head/contrib/llvm/lib/Transforms/Utils/Local.cpp head/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp head/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp head/contrib/llvm/lib/Transforms/Utils/Utils.cpp head/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp head/contrib/llvm/lib/Transforms/Vectorize/BBVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp head/contrib/llvm/lib/VMCore/AsmWriter.cpp head/contrib/llvm/lib/VMCore/Attributes.cpp head/contrib/llvm/lib/VMCore/AutoUpgrade.cpp head/contrib/llvm/lib/VMCore/ConstantFold.cpp head/contrib/llvm/lib/VMCore/Constants.cpp head/contrib/llvm/lib/VMCore/ConstantsContext.h head/contrib/llvm/lib/VMCore/Core.cpp head/contrib/llvm/lib/VMCore/DIBuilder.cpp head/contrib/llvm/lib/VMCore/DebugInfo.cpp head/contrib/llvm/lib/VMCore/Dominators.cpp head/contrib/llvm/lib/VMCore/Function.cpp head/contrib/llvm/lib/VMCore/GCOV.cpp head/contrib/llvm/lib/VMCore/IRBuilder.cpp head/contrib/llvm/lib/VMCore/InlineAsm.cpp head/contrib/llvm/lib/VMCore/Instructions.cpp head/contrib/llvm/lib/VMCore/LLVMContext.cpp head/contrib/llvm/lib/VMCore/LLVMContextImpl.cpp head/contrib/llvm/lib/VMCore/LLVMContextImpl.h head/contrib/llvm/lib/VMCore/PassManager.cpp head/contrib/llvm/lib/VMCore/Type.cpp head/contrib/llvm/lib/VMCore/User.cpp head/contrib/llvm/lib/VMCore/Value.cpp head/contrib/llvm/lib/VMCore/ValueTypes.cpp head/contrib/llvm/lib/VMCore/Verifier.cpp head/contrib/llvm/tools/bugpoint/ExtractFunction.cpp head/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp head/contrib/llvm/tools/clang/include/clang-c/Index.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h head/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h head/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h head/contrib/llvm/tools/clang/include/clang/AST/Attr.h head/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def head/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h head/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h head/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h head/contrib/llvm/tools/clang/include/clang/AST/Comment.h head/contrib/llvm/tools/clang/include/clang/AST/CommentBriefParser.h head/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h head/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h head/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h head/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h head/contrib/llvm/tools/clang/include/clang/AST/Decl.h head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h head/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h head/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h head/contrib/llvm/tools/clang/include/clang/AST/Expr.h head/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h head/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h head/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h head/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h head/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h head/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h head/contrib/llvm/tools/clang/include/clang/AST/Stmt.h head/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h head/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h head/contrib/llvm/tools/clang/include/clang/AST/Type.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h head/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h head/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h head/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h head/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h head/contrib/llvm/tools/clang/include/clang/Basic/Attr.td head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsMips.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def head/contrib/llvm/tools/clang/include/clang/Basic/ConvertUTF.h head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/Module.h head/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h head/contrib/llvm/tools/clang/include/clang/Basic/OnDiskHashTable.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td head/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h head/contrib/llvm/tools/clang/include/clang/Driver/Action.h head/contrib/llvm/tools/clang/include/clang/Driver/Arg.h head/contrib/llvm/tools/clang/include/clang/Driver/ArgList.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td head/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h head/contrib/llvm/tools/clang/include/clang/Driver/Driver.h head/contrib/llvm/tools/clang/include/clang/Driver/Job.h head/contrib/llvm/tools/clang/include/clang/Driver/OptParser.td head/contrib/llvm/tools/clang/include/clang/Driver/OptTable.h head/contrib/llvm/tools/clang/include/clang/Driver/Option.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.td head/contrib/llvm/tools/clang/include/clang/Driver/Tool.h head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h head/contrib/llvm/tools/clang/include/clang/Driver/Types.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def head/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h head/contrib/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h head/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h head/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h head/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/Token.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h head/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h head/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h head/contrib/llvm/tools/clang/include/clang/Sema/LocInfoType.h head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h head/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h head/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h head/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/Template.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h head/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h head/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h head/contrib/llvm/tools/clang/include/clang/Serialization/Module.h head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring.h head/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h head/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Internals.h head/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp head/contrib/llvm/tools/clang/lib/AST/ASTConsumer.cpp head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp head/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp head/contrib/llvm/tools/clang/lib/AST/Comment.cpp head/contrib/llvm/tools/clang/lib/AST/CommentBriefParser.cpp head/contrib/llvm/tools/clang/lib/AST/CommentCommandTraits.cpp head/contrib/llvm/tools/clang/lib/AST/CommentDumper.cpp head/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp head/contrib/llvm/tools/clang/lib/AST/CommentParser.cpp head/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp head/contrib/llvm/tools/clang/lib/AST/Decl.cpp head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp head/contrib/llvm/tools/clang/lib/AST/DumpXML.cpp head/contrib/llvm/tools/clang/lib/AST/Expr.cpp head/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp head/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp head/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp head/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/Stmt.cpp head/contrib/llvm/tools/clang/lib/AST/StmtDumper.cpp head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp head/contrib/llvm/tools/clang/lib/AST/Type.cpp head/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp head/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp head/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp head/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp head/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp head/contrib/llvm/tools/clang/lib/Basic/ConvertUTF.c head/contrib/llvm/tools/clang/lib/Basic/ConvertUTFWrapper.cpp head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp head/contrib/llvm/tools/clang/lib/Basic/Module.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp head/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRTTI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Driver/Arg.cpp head/contrib/llvm/tools/clang/lib/Driver/ArgList.cpp head/contrib/llvm/tools/clang/lib/Driver/CC1AsOptions.cpp head/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp head/contrib/llvm/tools/clang/lib/Driver/DriverOptions.cpp head/contrib/llvm/tools/clang/lib/Driver/OptTable.cpp head/contrib/llvm/tools/clang/lib/Driver/Option.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.h head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp head/contrib/llvm/tools/clang/lib/Driver/Tools.h head/contrib/llvm/tools/clang/lib/Driver/Types.cpp head/contrib/llvm/tools/clang/lib/Driver/WindowsToolChain.cpp head/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedDiagnosticConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyGraph.cpp head/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp head/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp head/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/Warnings.cpp head/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Headers/altivec.h head/contrib/llvm/tools/clang/lib/Headers/bmi2intrin.h head/contrib/llvm/tools/clang/lib/Headers/cpuid.h head/contrib/llvm/tools/clang/lib/Headers/immintrin.h head/contrib/llvm/tools/clang/lib/Headers/module.map head/contrib/llvm/tools/clang/lib/Headers/unwind.h head/contrib/llvm/tools/clang/lib/Headers/wmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/x86intrin.h head/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h head/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp head/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp head/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp head/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp head/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.h head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp head/contrib/llvm/tools/clang/lib/Parse/RAIIObjectsForParser.h head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp head/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp head/contrib/llvm/tools/clang/lib/Serialization/Module.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp head/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring.cpp head/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp head/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/OptParserEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h head/contrib/llvm/tools/llc/llc.cpp head/contrib/llvm/tools/lli/lli.cpp head/contrib/llvm/tools/llvm-ar/llvm-ar.cpp head/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp head/contrib/llvm/tools/llvm-extract/llvm-extract.cpp head/contrib/llvm/tools/llvm-mc/llvm-mc.cpp head/contrib/llvm/tools/llvm-nm/llvm-nm.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp head/contrib/llvm/tools/llvm-ranlib/llvm-ranlib.cpp head/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp head/contrib/llvm/tools/llvm-stress/llvm-stress.cpp head/contrib/llvm/tools/opt/opt.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterInst.cpp head/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp head/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h head/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp head/contrib/llvm/utils/TableGen/CodeGenInstruction.h head/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.h head/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp head/contrib/llvm/utils/TableGen/CodeGenSchedule.h head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp head/contrib/llvm/utils/TableGen/CodeGenTarget.h head/contrib/llvm/utils/TableGen/DAGISelMatcher.h head/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp head/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp head/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/EDEmitter.cpp head/contrib/llvm/utils/TableGen/FastISelEmitter.cpp head/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp head/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp head/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.cpp head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp head/contrib/llvm/utils/TableGen/SequenceToOffsetTable.h head/contrib/llvm/utils/TableGen/SetTheory.cpp head/contrib/llvm/utils/TableGen/SetTheory.h head/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp head/contrib/llvm/utils/TableGen/TGValueTypes.cpp head/contrib/llvm/utils/TableGen/TableGen.cpp head/contrib/llvm/utils/TableGen/TableGenBackends.h head/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp head/contrib/llvm/utils/TableGen/X86ModRMFilters.h head/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp head/contrib/llvm/utils/TableGen/X86RecognizableInstr.h head/lib/clang/Makefile head/lib/clang/clang.build.mk head/lib/clang/include/Makefile head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/llvm/Config/config.h head/lib/clang/libclanganalysis/Makefile head/lib/clang/libclangast/Makefile head/lib/clang/libclangsema/Makefile head/lib/clang/libclangstaticanalyzercheckers/Makefile head/lib/clang/libclangstaticanalyzercore/Makefile head/lib/clang/libllvmanalysis/Makefile head/lib/clang/libllvmarmcodegen/Makefile head/lib/clang/libllvmcodegen/Makefile head/lib/clang/libllvmcore/Makefile head/lib/clang/libllvmdebuginfo/Makefile head/lib/clang/libllvminstrumentation/Makefile head/lib/clang/libllvmipo/Makefile head/lib/clang/libllvmmcjit/Makefile head/lib/clang/libllvmmipsasmparser/Makefile head/lib/clang/libllvmmipscodegen/Makefile head/lib/clang/libllvmmipsdesc/Makefile head/lib/clang/libllvmscalaropts/Makefile head/lib/clang/libllvmtablegen/Makefile head/lib/clang/libllvmtarget/Makefile head/lib/clang/libllvmtransformutils/Makefile head/lib/clang/libllvmvectorize/Makefile head/lib/clang/libllvmx86codegen/Makefile head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.bin/clang/clang-tblgen/Makefile head/usr.bin/clang/clang/Makefile head/usr.bin/clang/llc/Makefile head/usr.bin/clang/lli/Makefile head/usr.bin/clang/llvm-mc/Makefile head/usr.bin/clang/llvm-objdump/Makefile head/usr.bin/clang/llvm-rtdyld/Makefile head/usr.bin/clang/opt/Makefile head/usr.bin/clang/tblgen/Makefile Directory Properties: head/contrib/llvm/ (props changed) head/contrib/llvm/tools/clang/ (props changed) Modified: head/contrib/llvm/include/llvm-c/Core.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Core.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm-c/Core.h Mon Dec 3 19:24:08 2012 (r243830) @@ -173,10 +173,11 @@ typedef enum { LLVMUWTable = 1 << 30, LLVMNonLazyBind = 1 << 31 - // FIXME: This attribute is currently not included in the C API as - // a temporary measure until the API/ABI impact to the C API is understood - // and the path forward agreed upon. - //LLVMAddressSafety = 1ULL << 32 + /* FIXME: This attribute is currently not included in the C API as + a temporary measure until the API/ABI impact to the C API is understood + and the path forward agreed upon. + LLVMAddressSafety = 1ULL << 32 + */ } LLVMAttribute; typedef enum { @@ -282,6 +283,7 @@ typedef enum { LLVMLinkOnceAnyLinkage, /**< Keep one copy of function when linking (inline)*/ LLVMLinkOnceODRLinkage, /**< Same, but only replaced by something equivalent. */ + LLVMLinkOnceODRAutoHideLinkage, /**< Like LinkOnceODR, but possibly hidden. */ LLVMWeakAnyLinkage, /**< Keep one copy of function when linking (weak) */ LLVMWeakODRLinkage, /**< Same, but only replaced by something equivalent. */ @@ -295,9 +297,7 @@ typedef enum { LLVMGhostLinkage, /**< Obsolete */ LLVMCommonLinkage, /**< Tentative definitions */ LLVMLinkerPrivateLinkage, /**< Like Private, but linker removes. */ - LLVMLinkerPrivateWeakLinkage, /**< Like LinkerPrivate, but is weak. */ - LLVMLinkerPrivateWeakDefAutoLinkage /**< Like LinkerPrivateWeak, but possibly - hidden. */ + LLVMLinkerPrivateWeakLinkage /**< Like LinkerPrivate, but is weak. */ } LLVMLinkage; typedef enum { @@ -1803,7 +1803,7 @@ LLVMAttribute LLVMGetAttribute(LLVMValue * Set the alignment for a function parameter. * * @see llvm::Argument::addAttr() - * @see llvm::Attribute::constructAlignmentFromInt() + * @see llvm::AttrBuilder::addAlignmentAttr() */ void LLVMSetParamAlignment(LLVMValueRef Arg, unsigned align); @@ -1869,6 +1869,27 @@ LLVMValueRef LLVMMDNode(LLVMValueRef *Va const char *LLVMGetMDString(LLVMValueRef V, unsigned* Len); /** + * Obtain the number of operands from an MDNode value. + * + * @param V MDNode to get number of operands from. + * @return Number of operands of the MDNode. + */ +unsigned LLVMGetMDNodeNumOperands(LLVMValueRef V); + +/** + * Obtain the given MDNode's operands. + * + * The passed LLVMValueRef pointer should point to enough memory to hold all of + * the operands of the given MDNode (see LLVMGetMDNodeNumOperands) as + * LLVMValueRefs. This memory will be populated with the LLVMValueRefs of the + * MDNode's operands. + * + * @param V MDNode to get the operands from. + * @param Dest Destination array for operands. + */ +void LLVMGetMDNodeOperands(LLVMValueRef V, LLVMValueRef *Dest); + +/** * @} */ @@ -2688,7 +2709,7 @@ namespace llvm { template inline T **unwrap(LLVMValueRef *Vals, unsigned Length) { - #if DEBUG + #ifdef DEBUG for (LLVMValueRef *I = Vals, *E = Vals + Length; I != E; ++I) cast(*I); #endif Modified: head/contrib/llvm/include/llvm-c/Disassembler.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Disassembler.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm-c/Disassembler.h Mon Dec 3 19:24:08 2012 (r243830) @@ -146,6 +146,15 @@ LLVMDisasmContextRef LLVMCreateDisasm(co LLVMSymbolLookupCallback SymbolLookUp); /** + * Set the disassembler's options. Returns 1 if it can set the Options and 0 + * otherwise. + */ +int LLVMSetDisasmOptions(LLVMDisasmContextRef DC, uint64_t Options); + +/* The option to produce marked up assembly. */ +#define LLVMDisassembler_Option_UseMarkup 1 + +/** * Dispose of a disassembler context. */ void LLVMDisasmDispose(LLVMDisasmContextRef DC); Modified: head/contrib/llvm/include/llvm-c/Target.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Target.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm-c/Target.h Mon Dec 3 19:24:08 2012 (r243830) @@ -145,7 +145,7 @@ static inline LLVMBool LLVMInitializeNat /*===-- Target Data -------------------------------------------------------===*/ /** Creates target data from a target layout string. - See the constructor llvm::TargetData::TargetData. */ + See the constructor llvm::DataLayout::DataLayout. */ LLVMTargetDataRef LLVMCreateTargetData(const char *StringRep); /** Adds target data information to a pass manager. This does not take ownership @@ -160,48 +160,58 @@ void LLVMAddTargetLibraryInfo(LLVMTarget /** Converts target data to a target layout string. The string must be disposed with LLVMDisposeMessage. - See the constructor llvm::TargetData::TargetData. */ + See the constructor llvm::DataLayout::DataLayout. */ char *LLVMCopyStringRepOfTargetData(LLVMTargetDataRef); /** Returns the byte order of a target, either LLVMBigEndian or LLVMLittleEndian. - See the method llvm::TargetData::isLittleEndian. */ + See the method llvm::DataLayout::isLittleEndian. */ enum LLVMByteOrdering LLVMByteOrder(LLVMTargetDataRef); /** Returns the pointer size in bytes for a target. - See the method llvm::TargetData::getPointerSize. */ + See the method llvm::DataLayout::getPointerSize. */ unsigned LLVMPointerSize(LLVMTargetDataRef); +/** Returns the pointer size in bytes for a target for a specified + address space. + See the method llvm::DataLayout::getPointerSize. */ +unsigned LLVMPointerSizeForAS(LLVMTargetDataRef, unsigned AS); + /** Returns the integer type that is the same size as a pointer on a target. - See the method llvm::TargetData::getIntPtrType. */ + See the method llvm::DataLayout::getIntPtrType. */ LLVMTypeRef LLVMIntPtrType(LLVMTargetDataRef); +/** Returns the integer type that is the same size as a pointer on a target. + This version allows the address space to be specified. + See the method llvm::DataLayout::getIntPtrType. */ +LLVMTypeRef LLVMIntPtrTypeForAS(LLVMTargetDataRef, unsigned AS); + /** Computes the size of a type in bytes for a target. - See the method llvm::TargetData::getTypeSizeInBits. */ + See the method llvm::DataLayout::getTypeSizeInBits. */ unsigned long long LLVMSizeOfTypeInBits(LLVMTargetDataRef, LLVMTypeRef); /** Computes the storage size of a type in bytes for a target. - See the method llvm::TargetData::getTypeStoreSize. */ + See the method llvm::DataLayout::getTypeStoreSize. */ unsigned long long LLVMStoreSizeOfType(LLVMTargetDataRef, LLVMTypeRef); /** Computes the ABI size of a type in bytes for a target. - See the method llvm::TargetData::getTypeAllocSize. */ + See the method llvm::DataLayout::getTypeAllocSize. */ unsigned long long LLVMABISizeOfType(LLVMTargetDataRef, LLVMTypeRef); /** Computes the ABI alignment of a type in bytes for a target. - See the method llvm::TargetData::getTypeABISize. */ + See the method llvm::DataLayout::getTypeABISize. */ unsigned LLVMABIAlignmentOfType(LLVMTargetDataRef, LLVMTypeRef); /** Computes the call frame alignment of a type in bytes for a target. - See the method llvm::TargetData::getTypeABISize. */ + See the method llvm::DataLayout::getTypeABISize. */ unsigned LLVMCallFrameAlignmentOfType(LLVMTargetDataRef, LLVMTypeRef); /** Computes the preferred alignment of a type in bytes for a target. - See the method llvm::TargetData::getTypeABISize. */ + See the method llvm::DataLayout::getTypeABISize. */ unsigned LLVMPreferredAlignmentOfType(LLVMTargetDataRef, LLVMTypeRef); /** Computes the preferred alignment of a global variable in bytes for a target. - See the method llvm::TargetData::getPreferredAlignment. */ + See the method llvm::DataLayout::getPreferredAlignment. */ unsigned LLVMPreferredAlignmentOfGlobal(LLVMTargetDataRef, LLVMValueRef GlobalVar); @@ -216,7 +226,7 @@ unsigned long long LLVMOffsetOfElement(L unsigned Element); /** Deallocates a TargetData. - See the destructor llvm::TargetData::~TargetData. */ + See the destructor llvm::DataLayout::~DataLayout. */ void LLVMDisposeTargetData(LLVMTargetDataRef); /** @@ -227,15 +237,15 @@ void LLVMDisposeTargetData(LLVMTargetDat } namespace llvm { - class TargetData; + class DataLayout; class TargetLibraryInfo; - inline TargetData *unwrap(LLVMTargetDataRef P) { - return reinterpret_cast(P); + inline DataLayout *unwrap(LLVMTargetDataRef P) { + return reinterpret_cast(P); } - inline LLVMTargetDataRef wrap(const TargetData *P) { - return reinterpret_cast(const_cast(P)); + inline LLVMTargetDataRef wrap(const DataLayout *P) { + return reinterpret_cast(const_cast(P)); } inline TargetLibraryInfo *unwrap(LLVMTargetLibraryInfoRef P) { Modified: head/contrib/llvm/include/llvm-c/TargetMachine.h ============================================================================== --- head/contrib/llvm/include/llvm-c/TargetMachine.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm-c/TargetMachine.h Mon Dec 3 19:24:08 2012 (r243830) @@ -104,7 +104,7 @@ char *LLVMGetTargetMachineCPU(LLVMTarget LLVMDisposeMessage. */ char *LLVMGetTargetMachineFeatureString(LLVMTargetMachineRef T); -/** Returns the llvm::TargetData used for this llvm:TargetMachine. */ +/** Returns the llvm::DataLayout used for this llvm:TargetMachine. */ LLVMTargetDataRef LLVMGetTargetMachineData(LLVMTargetMachineRef T); /** Emits an asm or object file for the given module to the filename. This Modified: head/contrib/llvm/include/llvm-c/Transforms/Vectorize.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Transforms/Vectorize.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm-c/Transforms/Vectorize.h Mon Dec 3 19:24:08 2012 (r243830) @@ -36,6 +36,9 @@ extern "C" { /** See llvm::createBBVectorizePass function. */ void LLVMAddBBVectorizePass(LLVMPassManagerRef PM); +/** See llvm::createLoopVectorizePass function. */ +void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM); + /** * @} */ Modified: head/contrib/llvm/include/llvm/ADT/APFloat.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/APFloat.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/APFloat.h Mon Dec 3 19:24:08 2012 (r243830) @@ -455,14 +455,11 @@ namespace llvm { /* The sign bit of this number. */ unsigned int sign: 1; - - /* For PPCDoubleDouble, we have a second exponent and sign (the second - significand is appended to the first one, although it would be wrong to - regard these as a single number for arithmetic purposes). These fields - are not meaningful for any other type. */ - exponent_t exponent2 : 11; - unsigned int sign2: 1; }; + + // See friend declaration above. This additional declaration is required in + // order to compile LLVM with IBM xlC compiler. + hash_code hash_value(const APFloat &Arg); } /* namespace llvm */ #endif /* LLVM_FLOAT_H */ Modified: head/contrib/llvm/include/llvm/ADT/APInt.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/APInt.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/APInt.h Mon Dec 3 19:24:08 2012 (r243830) @@ -251,7 +251,7 @@ public: /// constructor. APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[]); - /// This constructor interprets the string \arg str in the given radix. The + /// This constructor interprets the string \p str in the given radix. The /// interpretation stops when the first character that is not suitable for the /// radix is encountered, or the end of the string. Acceptable radix values /// are 2, 8, 10, 16, and 36. It is an error for the value implied by the @@ -760,7 +760,7 @@ public: APInt shl(unsigned shiftAmt) const { assert(shiftAmt <= BitWidth && "Invalid shift amount"); if (isSingleWord()) { - if (shiftAmt == BitWidth) + if (shiftAmt >= BitWidth) return APInt(BitWidth, 0); // avoid undefined shift results return APInt(BitWidth, VAL << shiftAmt); } @@ -1231,15 +1231,15 @@ public: } /// This method determines how many bits are required to hold the APInt - /// equivalent of the string given by \arg str. + /// equivalent of the string given by \p str. /// @brief Get bits required for string value. static unsigned getBitsNeeded(StringRef str, uint8_t radix); /// countLeadingZeros - This function is an APInt version of the /// countLeadingZeros_{32,64} functions in MathExtras.h. It counts the number /// of zeros from the most significant bit to the first one bit. - /// @returns BitWidth if the value is zero. - /// @returns the number of zeros from the most significant bit to the first + /// @returns BitWidth if the value is zero, otherwise + /// returns the number of zeros from the most significant bit to the first /// one bits. unsigned countLeadingZeros() const { if (isSingleWord()) { @@ -1252,8 +1252,8 @@ public: /// countLeadingOnes - This function is an APInt version of the /// countLeadingOnes_{32,64} functions in MathExtras.h. It counts the number /// of ones from the most significant bit to the first zero bit. - /// @returns 0 if the high order bit is not set - /// @returns the number of 1 bits from the most significant to the least + /// @returns 0 if the high order bit is not set, otherwise + /// returns the number of 1 bits from the most significant to the least /// @brief Count the number of leading one bits. unsigned countLeadingOnes() const; @@ -1266,8 +1266,8 @@ public: /// countTrailingZeros - This function is an APInt version of the /// countTrailingZeros_{32,64} functions in MathExtras.h. It counts /// the number of zeros from the least significant bit to the first set bit. - /// @returns BitWidth if the value is zero. - /// @returns the number of zeros from the least significant bit to the first + /// @returns BitWidth if the value is zero, otherwise + /// returns the number of zeros from the least significant bit to the first /// one bit. /// @brief Count the number of trailing zero bits. unsigned countTrailingZeros() const; @@ -1275,8 +1275,8 @@ public: /// countTrailingOnes - This function is an APInt version of the /// countTrailingOnes_{32,64} functions in MathExtras.h. It counts /// the number of ones from the least significant bit to the first zero bit. - /// @returns BitWidth if the value is all ones. - /// @returns the number of ones from the least significant bit to the first + /// @returns BitWidth if the value is all ones, otherwise + /// returns the number of ones from the least significant bit to the first /// zero bit. /// @brief Count the number of trailing one bits. unsigned countTrailingOnes() const { @@ -1288,8 +1288,8 @@ public: /// countPopulation - This function is an APInt version of the /// countPopulation_{32,64} functions in MathExtras.h. It counts the number /// of 1 bits in the APInt value. - /// @returns 0 if the value is zero. - /// @returns the number of set bits. + /// @returns 0 if the value is zero, otherwise returns the number of set + /// bits. /// @brief Count the number of bits set. unsigned countPopulation() const { if (isSingleWord()) @@ -1780,6 +1780,9 @@ inline APInt Not(const APInt& APIVal) { } // End of APIntOps namespace + // See friend declaration above. This additional declaration is required in + // order to compile LLVM with IBM xlC compiler. + hash_code hash_value(const APInt &Arg); } // End of llvm namespace #endif Modified: head/contrib/llvm/include/llvm/ADT/ArrayRef.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/ArrayRef.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/ArrayRef.h Mon Dec 3 19:24:08 2012 (r243830) @@ -59,12 +59,17 @@ namespace llvm { ArrayRef(const T *begin, const T *end) : Data(begin), Length(end - begin) {} - /// Construct an ArrayRef from a SmallVector. - /*implicit*/ ArrayRef(const SmallVectorTemplateCommon &Vec) - : Data(Vec.data()), Length(Vec.size()) {} + /// Construct an ArrayRef from a SmallVector. This is templated in order to + /// avoid instantiating SmallVectorTemplateCommon whenever we + /// copy-construct an ArrayRef. + template + /*implicit*/ ArrayRef(const SmallVectorTemplateCommon &Vec) + : Data(Vec.data()), Length(Vec.size()) { + } /// Construct an ArrayRef from a std::vector. - /*implicit*/ ArrayRef(const std::vector &Vec) + template + /*implicit*/ ArrayRef(const std::vector &Vec) : Data(Vec.empty() ? (T*)0 : &Vec[0]), Length(Vec.size()) {} /// Construct an ArrayRef from a C array. Modified: head/contrib/llvm/include/llvm/ADT/BitVector.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/BitVector.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/BitVector.h Mon Dec 3 19:24:08 2012 (r243830) @@ -172,7 +172,7 @@ public: unsigned BitPos = Prev % BITWORD_SIZE; BitWord Copy = Bits[WordPos]; // Mask off previous bits. - Copy &= ~0L << BitPos; + Copy &= ~0UL << BitPos; if (Copy != 0) { if (sizeof(BitWord) == 4) @@ -237,6 +237,34 @@ public: return *this; } + /// set - Efficiently set a range of bits in [I, E) + BitVector &set(unsigned I, unsigned E) { + assert(I <= E && "Attempted to set backwards range!"); + assert(E <= size() && "Attempted to set out-of-bounds range!"); + + if (I == E) return *this; + + if (I / BITWORD_SIZE == E / BITWORD_SIZE) { + BitWord EMask = 1UL << (E % BITWORD_SIZE); + BitWord IMask = 1UL << (I % BITWORD_SIZE); + BitWord Mask = EMask - IMask; + Bits[I / BITWORD_SIZE] |= Mask; + return *this; + } + + BitWord PrefixMask = ~0UL << (I % BITWORD_SIZE); + Bits[I / BITWORD_SIZE] |= PrefixMask; + I = RoundUpToAlignment(I, BITWORD_SIZE); + + for (; I + BITWORD_SIZE <= E; I += BITWORD_SIZE) + Bits[I / BITWORD_SIZE] = ~0UL; + + BitWord PostfixMask = (1UL << (E % BITWORD_SIZE)) - 1; + Bits[I / BITWORD_SIZE] |= PostfixMask; + + return *this; + } + BitVector &reset() { init_words(Bits, Capacity, false); return *this; @@ -247,6 +275,34 @@ public: return *this; } + /// reset - Efficiently reset a range of bits in [I, E) + BitVector &reset(unsigned I, unsigned E) { + assert(I <= E && "Attempted to reset backwards range!"); + assert(E <= size() && "Attempted to reset out-of-bounds range!"); + + if (I == E) return *this; + + if (I / BITWORD_SIZE == E / BITWORD_SIZE) { + BitWord EMask = 1UL << (E % BITWORD_SIZE); + BitWord IMask = 1UL << (I % BITWORD_SIZE); + BitWord Mask = EMask - IMask; + Bits[I / BITWORD_SIZE] &= ~Mask; + return *this; + } + + BitWord PrefixMask = ~0UL << (I % BITWORD_SIZE); + Bits[I / BITWORD_SIZE] &= ~PrefixMask; + I = RoundUpToAlignment(I, BITWORD_SIZE); + + for (; I + BITWORD_SIZE <= E; I += BITWORD_SIZE) + Bits[I / BITWORD_SIZE] = 0UL; + + BitWord PostfixMask = (1UL << (E % BITWORD_SIZE)) - 1; + Bits[I / BITWORD_SIZE] &= ~PostfixMask; + + return *this; + } + BitVector &flip() { for (unsigned i = 0; i < NumBitWords(size()); ++i) Bits[i] = ~Bits[i]; @@ -311,7 +367,7 @@ public: return !(*this == RHS); } - // Intersection, union, disjoint union. + /// Intersection, union, disjoint union. BitVector &operator&=(const BitVector &RHS) { unsigned ThisWords = NumBitWords(size()); unsigned RHSWords = NumBitWords(RHS.size()); @@ -328,7 +384,7 @@ public: return *this; } - // reset - Reset bits that are set in RHS. Same as *this &= ~RHS. + /// reset - Reset bits that are set in RHS. Same as *this &= ~RHS. BitVector &reset(const BitVector &RHS) { unsigned ThisWords = NumBitWords(size()); unsigned RHSWords = NumBitWords(RHS.size()); @@ -338,6 +394,23 @@ public: return *this; } + /// test - Check if (This - RHS) is zero. + /// This is the same as reset(RHS) and any(). + bool test(const BitVector &RHS) const { + unsigned ThisWords = NumBitWords(size()); + unsigned RHSWords = NumBitWords(RHS.size()); + unsigned i; + for (i = 0; i != std::min(ThisWords, RHSWords); ++i) + if ((Bits[i] & ~RHS.Bits[i]) != 0) + return true; + + for (; i != ThisWords ; ++i) + if (Bits[i] != 0) + return true; + + return false; + } + BitVector &operator|=(const BitVector &RHS) { if (size() < RHS.size()) resize(RHS.size()); @@ -451,8 +524,11 @@ private: // Then set any stray high bits of the last used word. unsigned ExtraBits = Size % BITWORD_SIZE; if (ExtraBits) { - Bits[UsedWords-1] &= ~(~0L << ExtraBits); - Bits[UsedWords-1] |= (0 - (BitWord)t) << ExtraBits; + BitWord ExtraBitMask = ~0UL << ExtraBits; + if (t) + Bits[UsedWords-1] |= ExtraBitMask; + else + Bits[UsedWords-1] &= ~ExtraBitMask; } } Modified: head/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h Mon Dec 3 19:24:08 2012 (r243830) @@ -48,17 +48,18 @@ public: public: virtual ~DAGDeltaAlgorithm() {} - /// Run - Minimize the DAG formed by the \arg Changes vertices and the \arg - /// Dependencies edges by executing \see ExecuteOneTest() on subsets of + /// Run - Minimize the DAG formed by the \p Changes vertices and the + /// \p Dependencies edges by executing \see ExecuteOneTest() on subsets of /// changes and returning the smallest set which still satisfies the test - /// predicate and the input \arg Dependencies. + /// predicate and the input \p Dependencies. /// /// \param Changes The list of changes. /// /// \param Dependencies The list of dependencies amongst changes. For each - /// (x,y) in \arg Dependencies, both x and y must be in \arg Changes. The - /// minimization algorithm guarantees that for each tested changed set S, x - /// \in S implies y \in S. It is an error to have cyclic dependencies. + /// (x,y) in \p Dependencies, both x and y must be in \p Changes. The + /// minimization algorithm guarantees that for each tested changed set S, + /// \f$ x \in S \f$ implies \f$ y \in S \f$. It is an error to have cyclic + /// dependencies. changeset_ty Run(const changeset_ty &Changes, const std::vector &Dependencies); @@ -67,7 +68,7 @@ public: const changesetlist_ty &Sets, const changeset_ty &Required) {} - /// ExecuteOneTest - Execute a single test predicate on the change set \arg S. + /// ExecuteOneTest - Execute a single test predicate on the change set \p S. virtual bool ExecuteOneTest(const changeset_ty &S) = 0; }; Modified: head/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h Mon Dec 3 19:24:08 2012 (r243830) @@ -45,23 +45,23 @@ private: /// since we always reduce following a success. std::set FailedTestsCache; - /// GetTestResult - Get the test result for the \arg Changes from the + /// GetTestResult - Get the test result for the \p Changes from the /// cache, executing the test if necessary. /// /// \param Changes - The change set to test. /// \return - The test result. bool GetTestResult(const changeset_ty &Changes); - /// Split - Partition a set of changes \arg S into one or two subsets. + /// Split - Partition a set of changes \p S into one or two subsets. void Split(const changeset_ty &S, changesetlist_ty &Res); - /// Delta - Minimize a set of \arg Changes which has been partioned into + /// Delta - Minimize a set of \p Changes which has been partioned into /// smaller sets, by attempting to remove individual subsets. changeset_ty Delta(const changeset_ty &Changes, const changesetlist_ty &Sets); - /// Search - Search for a subset (or subsets) in \arg Sets which can be - /// removed from \arg Changes while still satisfying the predicate. + /// Search - Search for a subset (or subsets) in \p Sets which can be + /// removed from \p Changes while still satisfying the predicate. /// /// \param Res - On success, a subset of Changes which satisfies the /// predicate. @@ -74,13 +74,13 @@ protected: virtual void UpdatedSearchState(const changeset_ty &Changes, const changesetlist_ty &Sets) {} - /// ExecuteOneTest - Execute a single test predicate on the change set \arg S. + /// ExecuteOneTest - Execute a single test predicate on the change set \p S. virtual bool ExecuteOneTest(const changeset_ty &S) = 0; public: virtual ~DeltaAlgorithm(); - /// Run - Minimize the set \arg Changes by executing \see ExecuteOneTest() on + /// Run - Minimize the set \p Changes by executing \see ExecuteOneTest() on /// subsets of changes and returning the smallest set which still satisfies /// the test predicate. changeset_ty Run(const changeset_ty &Changes); Modified: head/contrib/llvm/include/llvm/ADT/DenseMap.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/DenseMap.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/DenseMap.h Mon Dec 3 19:24:08 2012 (r243830) @@ -420,9 +420,10 @@ private: NumBuckets = getNumBuckets(); } if (NumBuckets-(NewNumEntries+getNumTombstones()) <= NumBuckets/8) { - this->grow(NumBuckets); + this->grow(NumBuckets * 2); LookupBucketFor(Key, TheBucket); } + assert(TheBucket); // Only update the state after we've grown our bucket space appropriately // so that when growing buckets we have self-consistent entry count. @@ -599,7 +600,7 @@ public: unsigned OldNumBuckets = NumBuckets; BucketT *OldBuckets = Buckets; - allocateBuckets(std::max(64, NextPowerOf2(AtLeast))); + allocateBuckets(std::max(64, NextPowerOf2(AtLeast-1))); assert(Buckets); if (!OldBuckets) { this->BaseT::initEmpty(); @@ -825,11 +826,11 @@ public: } void grow(unsigned AtLeast) { - if (AtLeast > InlineBuckets) - AtLeast = std::max(64, NextPowerOf2(AtLeast)); + if (AtLeast >= InlineBuckets) + AtLeast = std::max(64, NextPowerOf2(AtLeast-1)); if (Small) { - if (AtLeast <= InlineBuckets) + if (AtLeast < InlineBuckets) return; // Nothing to do. // First move the inline buckets into a temporary storage. Modified: head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h Mon Dec 3 19:24:08 2012 (r243830) @@ -31,12 +31,12 @@ struct DenseMapInfo { template struct DenseMapInfo { static inline T* getEmptyKey() { - intptr_t Val = -1; + uintptr_t Val = static_cast(-1); Val <<= PointerLikeTypeTraits::NumLowBitsAvailable; return reinterpret_cast(Val); } static inline T* getTombstoneKey() { - intptr_t Val = -2; + uintptr_t Val = static_cast(-2); Val <<= PointerLikeTypeTraits::NumLowBitsAvailable; return reinterpret_cast(Val); } @@ -105,7 +105,7 @@ template<> struct DenseMapInfo { // Provide DenseMapInfo for longs. template<> struct DenseMapInfo { static inline long getEmptyKey() { - return (1UL << (sizeof(long) * 8 - 1)) - 1L; + return (1UL << (sizeof(long) * 8 - 1)) - 1UL; } static inline long getTombstoneKey() { return getEmptyKey() - 1L; } static unsigned getHashValue(const long& Val) { Modified: head/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h Mon Dec 3 19:24:08 2012 (r243830) @@ -33,6 +33,7 @@ namespace llvm { /// /// Here is a simple example using integers: /// +/// \code /// EquivalenceClasses EC; /// EC.unionSets(1, 2); // insert 1, 2 into the same set /// EC.insert(4); EC.insert(5); // insert 4, 5 into own sets @@ -46,6 +47,7 @@ namespace llvm { /// cerr << *MI << " "; // Print member. /// cerr << "\n"; // Finish set. /// } +/// \endcode /// /// This example prints: /// 4 Modified: head/contrib/llvm/include/llvm/ADT/FoldingSet.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/FoldingSet.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/FoldingSet.h Mon Dec 3 19:24:08 2012 (r243830) @@ -278,6 +278,10 @@ public: bool operator==(FoldingSetNodeIDRef) const; + /// Used to compare the "ordering" of two nodes as defined by the + /// profiled bits and their ordering defined by memcmp(). + bool operator<(FoldingSetNodeIDRef) const; + const unsigned *getData() const { return Data; } size_t getSize() const { return Size; } }; @@ -327,6 +331,11 @@ public: bool operator==(const FoldingSetNodeID &RHS) const; bool operator==(const FoldingSetNodeIDRef RHS) const; + /// Used to compare the "ordering" of two nodes as defined by the + /// profiled bits and their ordering defined by memcmp(). + bool operator<(const FoldingSetNodeID &RHS) const; + bool operator<(const FoldingSetNodeIDRef RHS) const; + /// Intern - Copy this node's data to a memory region allocated from the /// given allocator and return a FoldingSetNodeIDRef describing the /// interned data. Modified: head/contrib/llvm/include/llvm/ADT/Hashing.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/Hashing.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/Hashing.h Mon Dec 3 19:24:08 2012 (r243830) @@ -409,7 +409,6 @@ bool store_and_advance(char *&buffer_ptr /// combining them, this (as an optimization) directly combines the integers. template hash_code hash_combine_range_impl(InputIteratorT first, InputIteratorT last) { - typedef typename std::iterator_traits::value_type ValueT; const size_t seed = get_execution_seed(); char buffer[64], *buffer_ptr = buffer; char *const buffer_end = buffer_ptr + array_lengthof(buffer); @@ -711,7 +710,7 @@ hash_code hash_combine(const T1 &arg1) { #endif -// Implementation details for implementatinos of hash_value overloads provided +// Implementation details for implementations of hash_value overloads provided // here. namespace hashing { namespace detail { Modified: head/contrib/llvm/include/llvm/ADT/ImmutableList.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/ImmutableList.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/ImmutableList.h Mon Dec 3 19:24:08 2012 (r243830) @@ -33,9 +33,8 @@ class ImmutableListImpl : public Folding friend class ImmutableListFactory; - // Do not implement. - void operator=(const ImmutableListImpl&); - ImmutableListImpl(const ImmutableListImpl&); + void operator=(const ImmutableListImpl&) LLVM_DELETED_FUNCTION; + ImmutableListImpl(const ImmutableListImpl&) LLVM_DELETED_FUNCTION; public: const T& getHead() const { return Head; } Modified: head/contrib/llvm/include/llvm/ADT/ImmutableMap.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/ImmutableMap.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/ImmutableMap.h Mon Dec 3 19:24:08 2012 (r243830) @@ -122,8 +122,8 @@ public: } private: - Factory(const Factory& RHS); // DO NOT IMPLEMENT - void operator=(const Factory& RHS); // DO NOT IMPLEMENT + Factory(const Factory& RHS) LLVM_DELETED_FUNCTION; + void operator=(const Factory& RHS) LLVM_DELETED_FUNCTION; }; bool contains(key_type_ref K) const { Modified: head/contrib/llvm/include/llvm/ADT/ImmutableSet.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/ImmutableSet.h Mon Dec 3 19:00:23 2012 (r243829) +++ head/contrib/llvm/include/llvm/ADT/ImmutableSet.h Mon Dec 3 19:24:08 2012 (r243830) @@ -22,7 +22,6 @@ #include #include #include -#include namespace llvm { @@ -84,13 +83,13 @@ public: } return NULL; } - + /// getMaxElement - Find the subtree associated with the highest ranged /// key value. ImutAVLTree* getMaxElement() { ImutAVLTree *T = this; - ImutAVLTree *Right = T->getRight(); - while (Right) { T = right; right = T->getRight(); } + ImutAVLTree *Right = T->getRight(); + while (Right) { T = Right; Right = T->getRight(); } return T; } @@ -258,7 +257,7 @@ private: /// method returns false for an instance of ImutAVLTree, all subtrees /// will also have this method return false. The converse is not true. bool isMutable() const { return IsMutable; } - + /// hasCachedDigest - Returns true if the digest for this tree is cached. /// This can only be true if the tree is immutable. bool hasCachedDigest() const { return IsDigestCached; } @@ -280,7 +279,7 @@ private: assert(isMutable() && "Mutable flag already removed."); IsMutable = false; } - + /// markedCachedDigest - Clears the NoCachedDigest flag for a tree. void markedCachedDigest() { assert(!hasCachedDigest() && "NoCachedDigest flag already removed."); @@ -349,7 +348,7 @@ public: else factory->Cache[factory->maskCacheIndex(computeDigest())] = next; } - + // We need to clear the mutability bit in case we are // destroying the node as part of a sweep in ImutAVLFactory::recoverNodes(). IsMutable = false; @@ -415,7 +414,7 @@ public: TreeTy* getEmptyTree() const { return NULL; } protected: - + //===--------------------------------------------------===// // A bunch of quick helper functions used for reasoning // about the properties of trees and their children. @@ -461,7 +460,7 @@ protected: // returned to the caller. //===--------------------------------------------------===// - TreeTy* createNode(TreeTy* L, value_type_ref V, TreeTy* R) { + TreeTy* createNode(TreeTy* L, value_type_ref V, TreeTy* R) { BumpPtrAllocator& A = getAllocator(); TreeTy* T; if (!freeNodes.empty()) { @@ -469,8 +468,7 @@ protected: freeNodes.pop_back(); assert(T != L); assert(T != R); - } - else { + } else { T = (TreeTy*) A.Allocate(); } new (T) TreeTy(this, L, R, V, incrementHeight(L,R)); @@ -513,7 +511,8 @@ protected: return createNode(createNode(LL,L,LRL), LR, createNode(LRR,V,R)); } - else if (hr > hl + 2) { + + if (hr > hl + 2) { assert(!isEmpty(R) && "Right tree cannot be empty to have a height >= 2"); TreeTy *RL = getLeft(R); @@ -529,8 +528,8 @@ protected: return createNode(createNode(L,V,RLL), RL, createNode(RLR,R,RR)); } - else - return createNode(L,V,R); + + return createNode(L,V,R); } /// add_internal - Creates a new tree that includes the specified @@ -604,7 +603,7 @@ protected: markImmutable(getLeft(T)); markImmutable(getRight(T)); } - + public: TreeTy *getCanonicalTree(TreeTy *TNew) { if (!TNew) @@ -937,7 +936,7 @@ public: private: TreeTy *Root; - + public: /// Constructs a set from a pointer to a tree root. In general one /// should use a Factory object to create sets instead of directly @@ -1006,10 +1005,10 @@ public: typename TreeTy::Factory *getTreeFactory() const { return const_cast(&F); } - + private: - Factory(const Factory& RHS); // DO NOT IMPLEMENT - void operator=(const Factory& RHS); // DO NOT IMPLEMENT + Factory(const Factory& RHS) LLVM_DELETED_FUNCTION; + void operator=(const Factory& RHS) LLVM_DELETED_FUNCTION; }; friend class Factory; @@ -1027,11 +1026,11 @@ public: return Root && RHS.Root ? Root->isNotEqual(*RHS.Root) : Root != RHS.Root; } - TreeTy *getRoot() { + TreeTy *getRoot() { if (Root) { Root->retain(); } return Root; } - + TreeTy *getRootWithoutRetain() const { return Root; } @@ -1092,7 +1091,7 @@ public: void validateTree() const { if (Root) Root->validateTree(); } }; - + // NOTE: This may some day replace the current ImmutableSet. template > class ImmutableSetRef { @@ -1101,11 +1100,11 @@ public: typedef typename ValInfo::value_type_ref value_type_ref; typedef ImutAVLTree TreeTy; typedef typename TreeTy::Factory FactoryTy; - + private: TreeTy *Root; FactoryTy *Factory; - + public: /// Constructs a set from a pointer to a tree root. In general one /// should use a Factory object to create sets instead of directly @@ -1133,44 +1132,44 @@ public: ~ImmutableSetRef() { if (Root) { Root->release(); } } - + static inline ImmutableSetRef getEmptySet(FactoryTy *F) { return ImmutableSetRef(0, F); } - + ImmutableSetRef add(value_type_ref V) { return ImmutableSetRef(Factory->add(Root, V), Factory); } - + ImmutableSetRef remove(value_type_ref V) { return ImmutableSetRef(Factory->remove(Root, V), Factory); } - + /// Returns true if the set contains the specified value. bool contains(value_type_ref V) const { return Root ? Root->contains(V) : false; } - + ImmutableSet asImmutableSet(bool canonicalize = true) const { return ImmutableSet(canonicalize ? Factory->getCanonicalTree(Root) : Root); } - + TreeTy *getRootWithoutRetain() const { return Root; } - + bool operator==(const ImmutableSetRef &RHS) const { return Root && RHS.Root ? Root->isEqual(*RHS.Root) : Root == RHS.Root; } - + bool operator!=(const ImmutableSetRef &RHS) const { return Root && RHS.Root ? Root->isNotEqual(*RHS.Root) : Root != RHS.Root; } /// isEmpty - Return true if the set contains no elements. bool isEmpty() const { return !Root; } - + /// isSingleton - Return true if the set contains exactly one element. /// This method runs in constant time. bool isSingleton() const { return getHeight() == 1; } @@ -1178,7 +1177,7 @@ public: //===--------------------------------------------------===// // Iterators. //===--------------------------------------------------===// - + class iterator { typename TreeTy::iterator itr; iterator(TreeTy* t) : itr(t) {} @@ -1194,28 +1193,28 @@ public: inline bool operator!=(const iterator& RHS) const { return RHS.itr != itr; } inline value_type *operator->() const { return &(operator*()); } }; - + iterator begin() const { return iterator(Root); } iterator end() const { return iterator(); } - + //===--------------------------------------------------===// // Utility methods. //===--------------------------------------------------===// - + unsigned getHeight() const { return Root ? Root->getHeight() : 0; } - + static inline void Profile(FoldingSetNodeID& ID, const ImmutableSetRef& S) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 19:27:31 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A8DFB636; Mon, 3 Dec 2012 19:27:31 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 8BBD68FC08; Mon, 3 Dec 2012 19:27:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3JRVVl019805; Mon, 3 Dec 2012 19:27:31 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3JRVgN019802; Mon, 3 Dec 2012 19:27:31 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201212031927.qB3JRVgN019802@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 3 Dec 2012 19:27:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243831 - in head: share/examples/etc share/mk usr.bin/make X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 19:27:31 -0000 Author: jkim Date: Mon Dec 3 19:27:31 2012 New Revision: 243831 URL: http://svnweb.freebsd.org/changeset/base/243831 Log: Remove fictitious support for 80386-class CPUs from bsd.cpu.mk and make(1). It was removed from head more than 8 years ago (see r137784 and r137785). Reviewed by: imp, delphij, dim Modified: head/share/examples/etc/make.conf head/share/mk/bsd.cpu.mk head/usr.bin/make/main.c Modified: head/share/examples/etc/make.conf ============================================================================== --- head/share/examples/etc/make.conf Mon Dec 3 19:24:08 2012 (r243830) +++ head/share/examples/etc/make.conf Mon Dec 3 19:27:31 2012 (r243831) @@ -35,7 +35,7 @@ # athlon-tbird, athlon, k7, geode, k6-3, k6-2, k6, k5 # (Intel CPUs) core2, core, nocona, pentium4m, pentium4, prescott, # pentium3m, pentium3, pentium-m, pentium2, -# pentiumpro, pentium-mmx, pentium, i486, i386 +# pentiumpro, pentium-mmx, pentium, i486 # (VIA CPUs) c7, c3-2, c3 # AMD64 architecture: opteron-sse3, athlon64-sse3, k8-sse3, opteron, # athlon64, k8, core2, nocona, prescott Modified: head/share/mk/bsd.cpu.mk ============================================================================== --- head/share/mk/bsd.cpu.mk Mon Dec 3 19:24:08 2012 (r243830) +++ head/share/mk/bsd.cpu.mk Mon Dec 3 19:27:31 2012 (r243831) @@ -145,59 +145,54 @@ _CPUCFLAGS = -mcpu=ultrasparc3 . if ${MACHINE_CPUARCH} == "i386" . if ${CPUTYPE} == "bdver1" || ${CPUTYPE} == "bdver2" MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 -MACHINE_CPU += i486 i386 . elif ${CPUTYPE} == "btver1" -MACHINE_CPU = ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 i486 i386 +MACHINE_CPU = ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 . elif ${CPUTYPE} == "amdfam10" MACHINE_CPU = athlon-xp athlon k7 3dnow sse4a sse3 sse2 sse mmx k6 k5 i586 -MACHINE_CPU += i486 i386 . elif ${CPUTYPE} == "opteron-sse3" || ${CPUTYPE} == "athlon64-sse3" -MACHINE_CPU = athlon-xp athlon k7 3dnow sse3 sse2 sse mmx k6 k5 i586 i486 i386 +MACHINE_CPU = athlon-xp athlon k7 3dnow sse3 sse2 sse mmx k6 k5 i586 . elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" -MACHINE_CPU = athlon-xp athlon k7 3dnow sse2 sse mmx k6 k5 i586 i486 i386 +MACHINE_CPU = athlon-xp athlon k7 3dnow sse2 sse mmx k6 k5 i586 . elif ${CPUTYPE} == "athlon-mp" || ${CPUTYPE} == "athlon-xp" || \ ${CPUTYPE} == "athlon-4" -MACHINE_CPU = athlon-xp athlon k7 3dnow sse mmx k6 k5 i586 i486 i386 +MACHINE_CPU = athlon-xp athlon k7 3dnow sse mmx k6 k5 i586 . elif ${CPUTYPE} == "athlon" || ${CPUTYPE} == "athlon-tbird" -MACHINE_CPU = athlon k7 3dnow mmx k6 k5 i586 i486 i386 +MACHINE_CPU = athlon k7 3dnow mmx k6 k5 i586 . elif ${CPUTYPE} == "k6-3" || ${CPUTYPE} == "k6-2" || ${CPUTYPE} == "geode" -MACHINE_CPU = 3dnow mmx k6 k5 i586 i486 i386 +MACHINE_CPU = 3dnow mmx k6 k5 i586 . elif ${CPUTYPE} == "k6" -MACHINE_CPU = mmx k6 k5 i586 i486 i386 +MACHINE_CPU = mmx k6 k5 i586 . elif ${CPUTYPE} == "k5" -MACHINE_CPU = k5 i586 i486 i386 +MACHINE_CPU = k5 i586 . elif ${CPUTYPE} == "c3" -MACHINE_CPU = 3dnow mmx i586 i486 i386 +MACHINE_CPU = 3dnow mmx i586 . elif ${CPUTYPE} == "c3-2" -MACHINE_CPU = sse mmx i586 i486 i386 +MACHINE_CPU = sse mmx i586 . elif ${CPUTYPE} == "c7" -MACHINE_CPU = sse3 sse2 sse i686 mmx i586 i486 i386 +MACHINE_CPU = sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "corei7-avx" || ${CPUTYPE} == "core-avx-i" -MACHINE_CPU = avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 i486 i386 +MACHINE_CPU = avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "corei7" -MACHINE_CPU = sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 i486 i386 +MACHINE_CPU = sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "core2" -MACHINE_CPU = ssse3 sse3 sse2 sse i686 mmx i586 i486 i386 +MACHINE_CPU = ssse3 sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "prescott" -MACHINE_CPU = sse3 sse2 sse i686 mmx i586 i486 i386 +MACHINE_CPU = sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "pentium4" || ${CPUTYPE} == "pentium4m" || \ ${CPUTYPE} == "pentium-m" -MACHINE_CPU = sse2 sse i686 mmx i586 i486 i386 +MACHINE_CPU = sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "pentium3" || ${CPUTYPE} == "pentium3m" -MACHINE_CPU = sse i686 mmx i586 i486 i386 +MACHINE_CPU = sse i686 mmx i586 . elif ${CPUTYPE} == "pentium2" -MACHINE_CPU = i686 mmx i586 i486 i386 +MACHINE_CPU = i686 mmx i586 . elif ${CPUTYPE} == "pentiumpro" -MACHINE_CPU = i686 i586 i486 i386 +MACHINE_CPU = i686 i586 . elif ${CPUTYPE} == "pentium-mmx" -MACHINE_CPU = mmx i586 i486 i386 +MACHINE_CPU = mmx i586 . elif ${CPUTYPE} == "pentium" -MACHINE_CPU = i586 i486 i386 -. elif ${CPUTYPE} == "i486" -MACHINE_CPU = i486 i386 -. elif ${CPUTYPE} == "i386" -MACHINE_CPU = i386 +MACHINE_CPU = i586 . endif +MACHINE_CPU += i486 . elif ${MACHINE_CPUARCH} == "amd64" . if ${CPUTYPE} == "bdver1" || ${CPUTYPE} == "bdver2" MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3 Modified: head/usr.bin/make/main.c ============================================================================== --- head/usr.bin/make/main.c Mon Dec 3 19:24:08 2012 (r243830) +++ head/usr.bin/make/main.c Mon Dec 3 19:27:31 2012 (r243831) @@ -976,7 +976,7 @@ main(int argc, char **argv) */ if ((machine_cpu = getenv("MACHINE_CPU")) == NULL) { if (!strcmp(machine_arch, "i386")) - machine_cpu = "i386"; + machine_cpu = "i486"; else machine_cpu = "unknown"; } From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 19:47:36 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 432C9B41; Mon, 3 Dec 2012 19:47:36 +0000 (UTC) (envelope-from delphij@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id EFD508FC08; Mon, 3 Dec 2012 19:47:34 +0000 (UTC) Received: by mail-lb0-f182.google.com with SMTP id go10so3451540lbb.13 for ; Mon, 03 Dec 2012 11:47:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ubnsnAH+PcJXqn2nFoInG9SfvFxTM+YCLLOwHO51Z0w=; b=rQCXEeqrPuiHqY/gdzV5qXCra1KuvNBkcoJBNowgH0AQkCYSzrPL4Wwdh1Jd8hCCWD dE4LI8a1Ku3AQHDY1xh5Zx8myj9kFrSGGiqggTco/VmrwLFGOeySNHitNhmxJYlJpIOG jNeLvkyQvSSaxm670C/otVCw0kZXFVGGm6VyIFIr4ubaC2ZQmeDqMZtzN8V/wLbkqaKh zwHOKjGPgxNRaK3vv/hVkCenpw/ReG+m2gw5wzYxCaPi69U9GkGHFWVV3nln/oNbf1KJ C87NVHkbW/NA1NMLcRiUYa0LTpmo2echRT5p9iwP+SNwvU5jK1qRrKcoJ8yHsTDx7dnG +7SA== MIME-Version: 1.0 Received: by 10.152.111.166 with SMTP id ij6mr10592668lab.38.1354564052938; Mon, 03 Dec 2012 11:47:32 -0800 (PST) Received: by 10.152.111.100 with HTTP; Mon, 3 Dec 2012 11:47:32 -0800 (PST) In-Reply-To: <201211140805.qAE85MHU031099@svn.freebsd.org> References: <201211140805.qAE85MHU031099@svn.freebsd.org> Date: Mon, 3 Dec 2012 11:47:32 -0800 Message-ID: Subject: Re: svn commit: r243019 - head/sbin/route From: Xin LI To: Gleb Smirnoff Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 19:47:36 -0000 It seems that this commit breaks the following commands like this: route add -net 10.8/16 10.2.0.1 --- Script started on Mon Dec 3 11:36:49 2012 delphij has logged on ttyv0 from local. [delphij@epsilon] ~> netstat -anrafinet Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 10.2.0.1 UGS 0 37 alc0 10.2.0.0/16 link#1 U 0 32 alc0 10.2.2.130 link#1 UHS 0 0 lo0 127.0.0.1 link#2 UH 0 0 lo0 [delphij@epsilon] ~> sudo route add -net 10.8/16 10.2.0.1 add net 10.8: gateway 10.2.0.1 [delphij@epsilon] ~> netstat -anrafinet Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire 0.0.0.0/16 10.2.0.1 UGS 0 0 alc0 => default 10.2.0.1 UGS 0 40 alc0 10.2.0.0/16 link#1 U 0 32 alc0 10.2.2.130 link#1 UHS 0 0 lo0 127.0.0.1 link#2 UH 0 0 lo0 [delphij@epsilon] ~> sudo route delete 0.0.0.0/16 10.2.0.1 delete net 0.0.0.0: gateway 10.2.0.1 [delphij@epsilon] ~> exit Script done on Mon Dec 3 11:37:31 2012 --- If I reverted the changeset, it would add the right route. According to the commit message, this doesn't seem intentional? Could you please take a look at this and fix it? Thanks in advance! Cheers, On Wed, Nov 14, 2012 at 12:05 AM, Gleb Smirnoff wrote: > Author: glebius > Date: Wed Nov 14 08:05:21 2012 > New Revision: 243019 > URL: http://svnweb.freebsd.org/changeset/base/243019 > > Log: > Remove remnants of classful addressing. These magic transformations > of supplied arguments is not what a modern sysadmin expect. > > Modified: > head/sbin/route/route.c > > Modified: head/sbin/route/route.c > > ============================================================================== > --- head/sbin/route/route.c Wed Nov 14 06:37:43 2012 (r243018) > +++ head/sbin/route/route.c Wed Nov 14 08:05:21 2012 (r243019) > @@ -422,7 +422,7 @@ routename(struct sockaddr *sa) > > /* > * Return the name of the network whose address is given. > - * The address is assumed to be that of a net or subnet, not a host. > + * The address is assumed to be that of a net, not a host. > */ > const char * > netname(struct sockaddr *sa) > @@ -430,9 +430,8 @@ netname(struct sockaddr *sa) > const char *cp = NULL; > static char line[MAXHOSTNAMELEN + 1]; > struct netent *np = NULL; > - u_long net, mask; > u_long i; > - int n, subnetshift; > + int n; > > switch (sa->sa_family) { > > @@ -444,28 +443,7 @@ netname(struct sockaddr *sa) > if (in.s_addr == 0) > cp = "default"; > else if (!nflag) { > - if (IN_CLASSA(i)) { > - mask = IN_CLASSA_NET; > - subnetshift = 8; > - } else if (IN_CLASSB(i)) { > - mask = IN_CLASSB_NET; > - subnetshift = 8; > - } else { > - mask = IN_CLASSC_NET; > - subnetshift = 4; > - } > - /* > - * If there are more bits than the standard mask > - * would suggest, subnets must be in use. > - * Guess at the subnet mask, assuming reasonable > - * width subnet fields. > - */ > - while (in.s_addr & ~mask) > - mask |= mask >> subnetshift; > - net = in.s_addr & mask; > - while ((mask & 1) == 0) > - mask >>= 1, net >>= 1; > - np = getnetbyaddr(net, AF_INET); > + np = getnetbyaddr(i, AF_INET); > if (np != NULL) > cp = np->n_name; > } > @@ -810,30 +788,19 @@ newroute(int argc, char **argv) > static void > inet_makenetandmask(u_long net, struct sockaddr_in *sin, u_long bits) > { > - u_long addr, mask = 0; > + u_long mask = 0; > char *cp; > > rtm_addrs |= RTA_NETMASK; > - /* > - * XXX: This approach unable to handle 0.0.0.1/32 correctly > - * as inet_network() converts 0.0.0.1 and 1 equally. > - */ > - if (net <= 0xff) > - addr = net << IN_CLASSA_NSHIFT; > - else if (net <= 0xffff) > - addr = net << IN_CLASSB_NSHIFT; > - else if (net <= 0xffffff) > - addr = net << IN_CLASSC_NSHIFT; > - else > - addr = net; > + > /* > * If no /xx was specified we must calculate the > * CIDR address. > */ > - if ((bits == 0) && (addr != 0)) { > + if ((bits == 0) && (net != 0)) { > u_long i, j; > for(i=0,j=0xff; i<4; i++) { > - if (addr & j) { > + if (net & j) { > break; > } > j <<= 8; > @@ -844,7 +811,7 @@ inet_makenetandmask(u_long net, struct s > if (bits != 0) > mask = 0xffffffff << (32 - bits); > > - sin->sin_addr.s_addr = htonl(addr); > + sin->sin_addr.s_addr = htonl(net); > sin = &so_mask.sin; > sin->sin_addr.s_addr = htonl(mask); > sin->sin_len = 0; > -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 19:55:01 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3D8E2E58; Mon, 3 Dec 2012 19:55:01 +0000 (UTC) (envelope-from joel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 221078FC08; Mon, 3 Dec 2012 19:55:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3Jt1XZ026870; Mon, 3 Dec 2012 19:55:01 GMT (envelope-from joel@svn.freebsd.org) Received: (from joel@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3Jt0gD026869; Mon, 3 Dec 2012 19:55:00 GMT (envelope-from joel@svn.freebsd.org) Message-Id: <201212031955.qB3Jt0gD026869@svn.freebsd.org> From: Joel Dahl Date: Mon, 3 Dec 2012 19:55:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243832 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 19:55:01 -0000 Author: joel (doc committer) Date: Mon Dec 3 19:55:00 2012 New Revision: 243832 URL: http://svnweb.freebsd.org/changeset/base/243832 Log: - Remove snapshots.se.freebsd.org [1] - Add ftp6.se.freebsd.org Discussed with: brd [1] Modified: head/usr.sbin/bsdinstall/scripts/mirrorselect Modified: head/usr.sbin/bsdinstall/scripts/mirrorselect ============================================================================== --- head/usr.sbin/bsdinstall/scripts/mirrorselect Mon Dec 3 19:27:31 2012 (r243831) +++ head/usr.sbin/bsdinstall/scripts/mirrorselect Mon Dec 3 19:55:00 2012 (r243832) @@ -40,7 +40,6 @@ MIRROR=`dialog --backtitle "FreeBSD Inst 0 0 0 \ ftp://ftp.freebsd.org "Main Site"\ ftp://snapshots.jp.freebsd.org "Snapshots Server Japan"\ - ftp://snapshots.se.freebsd.org "Snapshots Server Sweden"\ ftp://ftp.freebsd.org "IPv6 Main Site"\ ftp://ftp3.ie.freebsd.org "IPv6 Ireland"\ ftp://ftp.il.freebsd.org "IPv6 Israel"\ @@ -151,6 +150,7 @@ MIRROR=`dialog --backtitle "FreeBSD Inst ftp://ftp3.se.freebsd.org "Sweden #3"\ ftp://ftp4.se.freebsd.org "Sweden #4"\ ftp://ftp5.se.freebsd.org "Sweden #5"\ + ftp://ftp6.se.freebsd.org "Sweden #6"\ ftp://ftp.ch.freebsd.org "Switzerland"\ ftp://ftp2.ch.freebsd.org "Switzerland #2"\ ftp://ftp.tw.freebsd.org "Taiwan"\ From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 21:38:02 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D5541B26; Mon, 3 Dec 2012 21:38:02 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B9B608FC08; Mon, 3 Dec 2012 21:38:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3Lc2OW053280; Mon, 3 Dec 2012 21:38:02 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3Lc2Jq053279; Mon, 3 Dec 2012 21:38:02 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201212032138.qB3Lc2Jq053279@svn.freebsd.org> From: Jack F Vogel Date: Mon, 3 Dec 2012 21:38:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243833 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 21:38:03 -0000 Author: jfv Date: Mon Dec 3 21:38:02 2012 New Revision: 243833 URL: http://svnweb.freebsd.org/changeset/base/243833 Log: Remove the sysctl process_limit interface, after some thought I've decided its overkill,a simple tuneable for each RX and TX limit, and then init sets the ring values based on that, should be sufficient. More importantly, fix a bug causing a panic, when changing the define style to IXGBE_LEGACY_TX a taskqueue init was inadvertently set #ifdef when it should be #ifndef. Modified: head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Mon Dec 3 19:55:00 2012 (r243832) +++ head/sys/dev/ixgbe/ixgbe.c Mon Dec 3 21:38:02 2012 (r243833) @@ -2329,7 +2329,7 @@ ixgbe_allocate_msix(struct adapter *adap if (adapter->num_queues > 1) bus_bind_intr(dev, que->res, i); -#ifdef IXGBE_LEGACY_TX +#ifndef IXGBE_LEGACY_TX TASK_INIT(&txr->txq_task, 0, ixgbe_deferred_mq_start, txr); #endif TASK_INIT(&que->que_task, 0, ixgbe_handle_que, que); @@ -3082,6 +3082,9 @@ ixgbe_initialize_transmit_units(struct a txr->txd_cmd = IXGBE_TXD_CMD_IFCS; txr->queue_status = IXGBE_QUEUE_IDLE; + /* Set the processing limit */ + txr->process_limit = ixgbe_tx_process_limit; + /* Disable Head Writeback */ switch (hw->mac.type) { case ixgbe_mac_82598EB: @@ -4130,6 +4133,9 @@ ixgbe_initialize_receive_units(struct ad /* Setup the HW Rx Head and Tail Descriptor Pointers */ IXGBE_WRITE_REG(hw, IXGBE_RDH(i), 0); IXGBE_WRITE_REG(hw, IXGBE_RDT(i), 0); + + /* Set the processing limit */ + rxr->process_limit = ixgbe_rx_process_limit; } if (adapter->hw.mac.type != ixgbe_mac_82598EB) { @@ -5173,23 +5179,6 @@ ixgbe_sysctl_tdt_handler(SYSCTL_HANDLER_ return 0; } -/** ixgbe_sysctl_tx_process_limit - Handler function - * Set the limit value for TX processing - */ -static int -ixgbe_sysctl_tx_process_limit(SYSCTL_HANDLER_ARGS) -{ - int error; - - struct tx_ring *txr = ((struct tx_ring *)oidp->oid_arg1); - if (!txr) return 0; - - error = sysctl_handle_int(oidp, &ixgbe_tx_process_limit, 0, req); - if (error || !req->newptr) - return error; - return 0; -} - /** ixgbe_sysctl_rdh_handler - Handler function * Retrieves the RDH value from the hardware */ @@ -5226,23 +5215,6 @@ ixgbe_sysctl_rdt_handler(SYSCTL_HANDLER_ return 0; } -/** ixgbe_sysctl_rx_process_limit - Handler function - * Set the limit value for RX processing - */ -static int -ixgbe_sysctl_rx_process_limit(SYSCTL_HANDLER_ARGS) -{ - int error; - - struct rx_ring *rxr = ((struct rx_ring *)oidp->oid_arg1); - if (!rxr) return 0; - - error = sysctl_handle_int(oidp, &ixgbe_rx_process_limit, 0, req); - if (error || !req->newptr) - return error; - return 0; -} - static int ixgbe_sysctl_interrupt_rate_handler(SYSCTL_HANDLER_ARGS) { @@ -5330,10 +5302,6 @@ ixgbe_add_hw_stats(struct adapter *adapt CTLTYPE_UINT | CTLFLAG_RD, txr, sizeof(txr), ixgbe_sysctl_tdt_handler, "IU", "Transmit Descriptor Tail"); - SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "tx_process_limit", - CTLTYPE_UINT | CTLFLAG_RD, txr, sizeof(txr), - ixgbe_sysctl_tx_process_limit, "IU", - "Transmit Process Limit"); SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "tso_tx", CTLFLAG_RD, &txr->tso_tx, "TSO"); @@ -5369,10 +5337,6 @@ ixgbe_add_hw_stats(struct adapter *adapt CTLTYPE_UINT | CTLFLAG_RD, rxr, sizeof(rxr), ixgbe_sysctl_rdt_handler, "IU", "Receive Descriptor Tail"); - SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rx_process_limit", - CTLTYPE_UINT | CTLFLAG_RD, rxr, sizeof(rxr), - ixgbe_sysctl_rx_process_limit, "IU", - "Receive Process Limit"); SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "rx_packets", CTLFLAG_RD, &rxr->rx_packets, "Queue Packets Received"); From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 21:49:38 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 42039E76; Mon, 3 Dec 2012 21:49:38 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0E0E38FC18; Mon, 3 Dec 2012 21:49:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3Lnbld055990; Mon, 3 Dec 2012 21:49:37 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3LnbZV055989; Mon, 3 Dec 2012 21:49:37 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201212032149.qB3LnbZV055989@svn.freebsd.org> From: Xin LI Date: Mon, 3 Dec 2012 21:49:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243834 - head/usr.bin/less X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 21:49:38 -0000 Author: delphij Date: Mon Dec 3 21:49:37 2012 New Revision: 243834 URL: http://svnweb.freebsd.org/changeset/base/243834 Log: Note that the manual page of less(1) says: Note that a preprocessor cannot output an empty file, since that is interpreted as meaning there is no replacement, and the origi- nal file is used. To avoid this, if LESSOPEN starts with two ver- tical bars, the exit status of the script becomes meaningful. If the exit status is zero, the output is considered to be replace- ment text, even if it empty. If the exit status is nonzero, any output is ignored and the original file is used. For compatibil- ity with previous versions of less, if LESSOPEN starts with only one vertical bar, the exit status of the preprocessor is ignored. Use two pipe symbols for zless, so that zless'ing a compressed empty file will give output rather than being interpreted as its compressed form, which is typically a binary. Thanks Mark Nudelman for pointing out this difference and the suggested solution. Reported by: Matthias Meyser PR: bin/168839 MFC after: 2 weeks Modified: head/usr.bin/less/zless.sh Modified: head/usr.bin/less/zless.sh ============================================================================== --- head/usr.bin/less/zless.sh Mon Dec 3 21:38:02 2012 (r243833) +++ head/usr.bin/less/zless.sh Mon Dec 3 21:49:37 2012 (r243834) @@ -3,5 +3,5 @@ # $FreeBSD$ # -export LESSOPEN="|/usr/bin/lesspipe.sh %s" +export LESSOPEN="||/usr/bin/lesspipe.sh %s" exec /usr/bin/less "$@" From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 22:15:16 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B099D4FB; Mon, 3 Dec 2012 22:15:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9847C8FC15; Mon, 3 Dec 2012 22:15:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3MFGDA062682; Mon, 3 Dec 2012 22:15:16 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3MFGST062681; Mon, 3 Dec 2012 22:15:16 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201212032215.qB3MFGST062681@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 3 Dec 2012 22:15:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243835 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 22:15:16 -0000 Author: kib Date: Mon Dec 3 22:15:16 2012 New Revision: 243835 URL: http://svnweb.freebsd.org/changeset/base/243835 Log: The vnode_free_list_mtx is required unconditionally when iterating over the active list. The mount interlock is not enough to guarantee the validity of the tailq link pointers. The __mnt_vnode_next_active() and __mnt_vnode_first_active() active lists iterators helper functions did not provided the neccessary stability for the list, allowing the iterators to pick garbage. This was uncovered after the r243599 made the active list iterators non-nop. Since a vnode interlock is before the vnode_free_list_mtx, obtain the vnode ilock in the non-blocking manner when under vnode_free_list_mtx, and restart iteration after the yield if the lock attempt failed. Assert that a vnode found on the list is active, and assert that the helpers return the vnode with interlock owned. Reported and tested by: pho MFC after: 1 week Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Mon Dec 3 21:49:37 2012 (r243834) +++ head/sys/kern/vfs_subr.c Mon Dec 3 22:15:16 2012 (r243835) @@ -4718,10 +4718,20 @@ __mnt_vnode_next_active(struct vnode **m if (should_yield()) kern_yield(PRI_UNCHANGED); MNT_ILOCK(mp); +restart: + mtx_lock(&vnode_free_list_mtx); KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); vp = TAILQ_NEXT(*mvp, v_actfreelist); while (vp != NULL) { - VI_LOCK(vp); + if (vp->v_type == VMARKER) { + vp = TAILQ_NEXT(vp, v_actfreelist); + continue; + } + if (!VI_TRYLOCK(vp)) { + mtx_unlock(&vnode_free_list_mtx); + kern_yield(PRI_UNCHANGED); + goto restart; + } if (vp->v_mount == mp && vp->v_type != VMARKER && (vp->v_iflag & VI_DOOMED) == 0) break; @@ -4732,16 +4742,18 @@ __mnt_vnode_next_active(struct vnode **m /* Check if we are done */ if (vp == NULL) { + mtx_unlock(&vnode_free_list_mtx); __mnt_vnode_markerfree_active(mvp, mp); /* MNT_IUNLOCK(mp); -- done in above function */ mtx_assert(MNT_MTX(mp), MA_NOTOWNED); return (NULL); } - mtx_lock(&vnode_free_list_mtx); TAILQ_REMOVE(&mp->mnt_activevnodelist, *mvp, v_actfreelist); TAILQ_INSERT_AFTER(&mp->mnt_activevnodelist, vp, *mvp, v_actfreelist); mtx_unlock(&vnode_free_list_mtx); MNT_IUNLOCK(mp); + ASSERT_VI_LOCKED(vp, "active iter"); + KASSERT((vp->v_iflag & VI_ACTIVE) != 0, ("Non-active vp %p", vp)); return (vp); } @@ -4755,9 +4767,19 @@ __mnt_vnode_first_active(struct vnode ** MNT_REF(mp); (*mvp)->v_type = VMARKER; +restart: + mtx_lock(&vnode_free_list_mtx); vp = TAILQ_FIRST(&mp->mnt_activevnodelist); while (vp != NULL) { - VI_LOCK(vp); + if (vp->v_type == VMARKER) { + vp = TAILQ_NEXT(vp, v_actfreelist); + continue; + } + if (!VI_TRYLOCK(vp)) { + mtx_unlock(&vnode_free_list_mtx); + kern_yield(PRI_UNCHANGED); + goto restart; + } if (vp->v_mount == mp && vp->v_type != VMARKER && (vp->v_iflag & VI_DOOMED) == 0) break; @@ -4768,6 +4790,7 @@ __mnt_vnode_first_active(struct vnode ** /* Check if we are done */ if (vp == NULL) { + mtx_unlock(&vnode_free_list_mtx); MNT_REL(mp); MNT_IUNLOCK(mp); free(*mvp, M_VNODE_MARKER); @@ -4775,10 +4798,11 @@ __mnt_vnode_first_active(struct vnode ** return (NULL); } (*mvp)->v_mount = mp; - mtx_lock(&vnode_free_list_mtx); TAILQ_INSERT_AFTER(&mp->mnt_activevnodelist, vp, *mvp, v_actfreelist); mtx_unlock(&vnode_free_list_mtx); MNT_IUNLOCK(mp); + ASSERT_VI_LOCKED(vp, "active iter first"); + KASSERT((vp->v_iflag & VI_ACTIVE) != 0, ("Non-active vp %p", vp)); return (vp); } From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 22:16:51 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D755E6DA; Mon, 3 Dec 2012 22:16:51 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id BDD888FC20; Mon, 3 Dec 2012 22:16:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3MGprf063094; Mon, 3 Dec 2012 22:16:51 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3MGp3c063092; Mon, 3 Dec 2012 22:16:51 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201212032216.qB3MGp3c063092@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 3 Dec 2012 22:16:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243836 - in head/sys: amd64/amd64 i386/i386 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 22:16:51 -0000 Author: kib Date: Mon Dec 3 22:16:51 2012 New Revision: 243836 URL: http://svnweb.freebsd.org/changeset/base/243836 Log: Print the frame addresses for the backtraces on i386 and amd64. It allows both to inspect the frame sizes and to manually peek into the frames from ddb, if needed. Reviewed by: dim MFC after: 2 weeks Modified: head/sys/amd64/amd64/db_trace.c head/sys/i386/i386/db_trace.c Modified: head/sys/amd64/amd64/db_trace.c ============================================================================== --- head/sys/amd64/amd64/db_trace.c Mon Dec 3 22:15:16 2012 (r243835) +++ head/sys/amd64/amd64/db_trace.c Mon Dec 3 22:16:51 2012 (r243836) @@ -186,7 +186,8 @@ db_ss(struct db_variable *vp, db_expr_t static void db_nextframe(struct amd64_frame **, db_addr_t *, struct thread *); static int db_numargs(struct amd64_frame *); -static void db_print_stack_entry(const char *, int, char **, long *, db_addr_t); +static void db_print_stack_entry(const char *, int, char **, long *, db_addr_t, + void *); static void decode_syscall(int, struct thread *); static const char * watchtype_str(int type); @@ -230,12 +231,13 @@ db_numargs(fp) } static void -db_print_stack_entry(name, narg, argnp, argp, callpc) +db_print_stack_entry(name, narg, argnp, argp, callpc, frame) const char *name; int narg; char **argnp; long *argp; db_addr_t callpc; + void *frame; { db_printf("%s(", name); #if 0 @@ -250,6 +252,8 @@ db_print_stack_entry(name, narg, argnp, #endif db_printf(") at "); db_printsym(callpc, DB_STGY_PROC); + if (frame != NULL) + db_printf("/frame 0x%lx", (register_t)frame); db_printf("\n"); } @@ -341,7 +345,7 @@ db_nextframe(struct amd64_frame **fp, db return; } - db_print_stack_entry(name, 0, 0, 0, rip); + db_print_stack_entry(name, 0, 0, 0, rip, &(*fp)->f_frame); /* * Point to base of trapframe which is just above the @@ -437,7 +441,8 @@ db_backtrace(struct thread *td, struct t * Don't try to walk back on a stack for a * process that hasn't actually been run yet. */ - db_print_stack_entry(name, 0, 0, 0, pc); + db_print_stack_entry(name, 0, 0, 0, pc, + actframe); break; } first = FALSE; @@ -451,7 +456,7 @@ db_backtrace(struct thread *td, struct t narg = db_numargs(frame); } - db_print_stack_entry(name, narg, argnp, argp, pc); + db_print_stack_entry(name, narg, argnp, argp, pc, actframe); if (actframe != frame) { /* `frame' belongs to caller. */ @@ -465,7 +470,7 @@ db_backtrace(struct thread *td, struct t if (INKERNEL((long)pc) && !INKERNEL((long)frame)) { sym = db_search_symbol(pc, DB_STGY_ANY, &offset); db_symbol_values(sym, &name, NULL); - db_print_stack_entry(name, 0, 0, 0, pc); + db_print_stack_entry(name, 0, 0, 0, pc, frame); break; } if (!INKERNEL((long) frame)) { Modified: head/sys/i386/i386/db_trace.c ============================================================================== --- head/sys/i386/i386/db_trace.c Mon Dec 3 22:15:16 2012 (r243835) +++ head/sys/i386/i386/db_trace.c Mon Dec 3 22:16:51 2012 (r243836) @@ -176,7 +176,8 @@ db_ss(struct db_variable *vp, db_expr_t static void db_nextframe(struct i386_frame **, db_addr_t *, struct thread *); static int db_numargs(struct i386_frame *); -static void db_print_stack_entry(const char *, int, char **, int *, db_addr_t); +static void db_print_stack_entry(const char *, int, char **, int *, db_addr_t, + void *); static void decode_syscall(int, struct thread *); static const char * watchtype_str(int type); @@ -220,12 +221,13 @@ retry: } static void -db_print_stack_entry(name, narg, argnp, argp, callpc) +db_print_stack_entry(name, narg, argnp, argp, callpc, frame) const char *name; int narg; char **argnp; int *argp; db_addr_t callpc; + void *frame; { int n = narg >= 0 ? narg : 5; @@ -242,6 +244,8 @@ db_print_stack_entry(name, narg, argnp, db_printf(",..."); db_printf(") at "); db_printsym(callpc, DB_STGY_PROC); + if (frame != NULL) + db_printf("/frame 0x%r", (register_t)frame); db_printf("\n"); } @@ -326,7 +330,7 @@ db_nextframe(struct i386_frame **fp, db_ return; } - db_print_stack_entry(name, 0, 0, 0, eip); + db_print_stack_entry(name, 0, 0, 0, eip, &(*fp)->f_frame); /* * For a double fault, we have to snag the values from the @@ -467,7 +471,8 @@ db_backtrace(struct thread *td, struct t * Don't try to walk back on a stack for a * process that hasn't actually been run yet. */ - db_print_stack_entry(name, 0, 0, 0, pc); + db_print_stack_entry(name, 0, 0, 0, pc, + actframe); break; } first = FALSE; @@ -481,7 +486,7 @@ db_backtrace(struct thread *td, struct t narg = db_numargs(frame); } - db_print_stack_entry(name, narg, argnp, argp, pc); + db_print_stack_entry(name, narg, argnp, argp, pc, actframe); if (actframe != frame) { /* `frame' belongs to caller. */ @@ -495,7 +500,7 @@ db_backtrace(struct thread *td, struct t if (INKERNEL((int)pc) && !INKERNEL((int) frame)) { sym = db_search_symbol(pc, DB_STGY_ANY, &offset); db_symbol_values(sym, &name, NULL); - db_print_stack_entry(name, 0, 0, 0, pc); + db_print_stack_entry(name, 0, 0, 0, pc, frame); break; } if (!INKERNEL((int) frame)) { From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 23:33:29 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2916EC5C; Mon, 3 Dec 2012 23:33:29 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 36ED88FC13; Mon, 3 Dec 2012 23:33:27 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id BAA22723; Tue, 04 Dec 2012 01:33:25 +0200 (EET) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1TffVt-0008aN-CD; Tue, 04 Dec 2012 01:33:25 +0200 Message-ID: <50BD36C4.9080704@FreeBSD.org> Date: Tue, 04 Dec 2012 01:33:24 +0200 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Stanislav Sedov Subject: Re: svn commit: r243554 - in head/usr.sbin/pkg_install: add create delete info lib updating version References: <201211260511.qAQ5B7DQ002346@svn.freebsd.org> <20121128170032.730be5fab68dba2a09aaa14e@FreeBSD.org> <20121128183422.714562856f27371c95d2a84e@FreeBSD.org> <20121129073846.GG97474@ithaqua.etoilebsd.net> <20121130144040.99559ed924a48b909cbd3c4b@FreeBSD.org> <20121203104526.5041f0eefe10045375b77df1@FreeBSD.org> In-Reply-To: <20121203104526.5041f0eefe10045375b77df1@FreeBSD.org> X-Enigmail-Version: 1.4.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Baptiste Daroussin , src-committers@FreeBSD.org, Eitan Adler , svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org, Chris Rees X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 23:33:29 -0000 on 03/12/2012 20:45 Stanislav Sedov said the following: > I'm trying to point out, that this commit (and previous pkgng ones) was made > without proper peer review and consulations, which is a recommended practice > in THIS project. I'd like to chime in to point out that the proper peer review doesn't imply review by each and every member of the project (in THIS project). You seem to have been not very active for a while. Sorry if you missed influencing things while they were happening, but now they have happened and they have happened with both silent and vocal approval of the project members. -- Andriy Gapon From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 23:36:04 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5E2E8DE7; Mon, 3 Dec 2012 23:36:04 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3F6108FC08; Mon, 3 Dec 2012 23:36:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3Na47r083671; Mon, 3 Dec 2012 23:36:04 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3Na4ZL083670; Mon, 3 Dec 2012 23:36:04 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212032336.qB3Na4ZL083670@svn.freebsd.org> From: Adrian Chadd Date: Mon, 3 Dec 2012 23:36:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243837 - head/sys/modules/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 23:36:04 -0000 Author: adrian Date: Mon Dec 3 23:36:03 2012 New Revision: 243837 URL: http://svnweb.freebsd.org/changeset/base/243837 Log: Include if_ath_alq.c, which only gets actually compiled if ATH_DEBUG_ALQ is enabled. Modified: head/sys/modules/ath/Makefile Modified: head/sys/modules/ath/Makefile ============================================================================== --- head/sys/modules/ath/Makefile Mon Dec 3 22:16:51 2012 (r243836) +++ head/sys/modules/ath/Makefile Mon Dec 3 23:36:03 2012 (r243837) @@ -35,7 +35,7 @@ ATH_RATE?= sample # tx rate control alg .PATH: ${.CURDIR}/../../dev/ath/ath_hal KMOD= if_ath -SRCS= if_ath.c if_ath_debug.c if_ath_keycache.c if_ath_sysctl.c +SRCS= if_ath.c if_ath_alq.c if_ath_debug.c if_ath_keycache.c if_ath_sysctl.c SRCS+= if_ath_tx.c if_ath_tx_ht.c if_ath_led.c if_ath_rx.c if_ath_tdma.c SRCS+= if_ath_beacon.c if_ath_rx_edma.c if_ath_tx_edma.c # NB: v3 eeprom support used by both AR5211 and AR5212; just include it From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 23:38:08 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 93E4CF69; Mon, 3 Dec 2012 23:38:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 770428FC0C; Mon, 3 Dec 2012 23:38:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3Nc8OM084209; Mon, 3 Dec 2012 23:38:08 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3Nc8nt084208; Mon, 3 Dec 2012 23:38:08 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212032338.qB3Nc8nt084208@svn.freebsd.org> From: Adrian Chadd Date: Mon, 3 Dec 2012 23:38:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243838 - head/sys/modules/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 23:38:08 -0000 Author: adrian Date: Mon Dec 3 23:38:08 2012 New Revision: 243838 URL: http://svnweb.freebsd.org/changeset/base/243838 Log: Add the btcoex code into the module compilation. Modified: head/sys/modules/ath/Makefile Modified: head/sys/modules/ath/Makefile ============================================================================== --- head/sys/modules/ath/Makefile Mon Dec 3 23:36:03 2012 (r243837) +++ head/sys/modules/ath/Makefile Mon Dec 3 23:38:08 2012 (r243838) @@ -86,8 +86,8 @@ SRCS+= ar5413.c # + 5416 (Owl) .PATH: ${.CURDIR}/../../dev/ath/ath_hal/ar5416 SRCS+= ah_eeprom_v14.c ah_eeprom_v4k.c \ - ar5416_ani.c ar5416_attach.c ar5416_beacon.c ar5416_cal.c \ - ar5416_cal_iq.c ar5416_cal_adcgain.c ar5416_cal_adcdc.c \ + ar5416_ani.c ar5416_attach.c ar5416_beacon.c ar5416_btcoex.c \ + ar5416_cal.c ar5416_cal_iq.c ar5416_cal_adcgain.c ar5416_cal_adcdc.c \ ar5416_eeprom.c ar5416_gpio.c ar5416_interrupts.c ar5416_keycache.c \ ar5416_misc.c ar5416_phy.c ar5416_power.c ar5416_radar.c \ ar5416_recv.c ar5416_reset.c ar5416_xmit.c @@ -115,7 +115,7 @@ SRCS+= ar9280.c ar9280_attach.c ar9280_o # + AR9285 - Kite SRCS+= ar9285.c ar9285_reset.c ar9285_attach.c ar9285_cal.c ar9285_phy.c -SRCS+= ar9285_diversity.c +SRCS+= ar9285_diversity.c ar9285_btcoex.c # + AR9287 - Kiwi .PATH: ${.CURDIR}/../../dev/ath/ath_hal From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 23:43:23 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8A637276; Mon, 3 Dec 2012 23:43:23 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 6FEDD8FC08; Mon, 3 Dec 2012 23:43:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3NhNqv085544; Mon, 3 Dec 2012 23:43:23 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3NhNPa085542; Mon, 3 Dec 2012 23:43:23 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212032343.qB3NhNPa085542@svn.freebsd.org> From: Adrian Chadd Date: Mon, 3 Dec 2012 23:43:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243839 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 23:43:23 -0000 Author: adrian Date: Mon Dec 3 23:43:23 2012 New Revision: 243839 URL: http://svnweb.freebsd.org/changeset/base/243839 Log: Add the AR5416/AR9285 bluetooth coexistence code into the main kernel build. Modified: head/sys/conf/files Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Mon Dec 3 23:38:08 2012 (r243838) +++ head/sys/conf/files Mon Dec 3 23:43:23 2012 (r243839) @@ -858,6 +858,10 @@ dev/ath/ath_hal/ar5416/ar5416_beacon.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" +dev/ath/ath_hal/ar5416/ar5416_btcoex.c \ + optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ + ath_ar9287 \ + compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_cal.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ @@ -941,6 +945,8 @@ dev/ath/ath_hal/ar9002/ar9280_olc.c opti # ar9285 (depends on ar5416 and ar9280) dev/ath/ath_hal/ar9002/ar9285_attach.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" +dev/ath/ath_hal/ar9002/ar9285_btcoex.c optional ath_hal | ath_ar9285 \ + compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285_reset.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285_cal.c optional ath_hal | ath_ar9285 \ From owner-svn-src-head@FreeBSD.ORG Mon Dec 3 23:45:07 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 614493F7; Mon, 3 Dec 2012 23:45:07 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 2C8398FC08; Mon, 3 Dec 2012 23:45:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB3Nj7mH086069; Mon, 3 Dec 2012 23:45:07 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB3Nj7AT086067; Mon, 3 Dec 2012 23:45:07 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212032345.qB3Nj7AT086067@svn.freebsd.org> From: Adrian Chadd Date: Mon, 3 Dec 2012 23:45:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243840 - in head/sys/dev/ath/ath_hal: . ar5416 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 23:45:07 -0000 Author: adrian Date: Mon Dec 3 23:45:06 2012 New Revision: 243840 URL: http://svnweb.freebsd.org/changeset/base/243840 Log: Add and tie in the AR5416 bluetooth coexistence methods into the HAL. Modified: head/sys/dev/ath/ath_hal/ah.h head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Modified: head/sys/dev/ath/ath_hal/ah.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah.h Mon Dec 3 23:43:23 2012 (r243839) +++ head/sys/dev/ath/ath_hal/ah.h Mon Dec 3 23:45:06 2012 (r243840) @@ -1514,6 +1514,22 @@ struct ath_hal { HAL_BOOL __ahdecl(*ah_getPendingInterrupts)(struct ath_hal*, HAL_INT*); HAL_INT __ahdecl(*ah_getInterrupts)(struct ath_hal*); HAL_INT __ahdecl(*ah_setInterrupts)(struct ath_hal*, HAL_INT); + + /* Bluetooth Coexistence functions */ + void __ahdecl(*ah_btCoexSetInfo)(struct ath_hal *, + HAL_BT_COEX_INFO *); + void __ahdecl(*ah_btCoexSetConfig)(struct ath_hal *, + HAL_BT_COEX_CONFIG *); + void __ahdecl(*ah_btCoexSetQcuThresh)(struct ath_hal *, + int); + void __ahdecl(*ah_btCoexSetWeights)(struct ath_hal *, + uint32_t); + void __ahdecl(*ah_btCoexSetBmissThresh)(struct ath_hal *, + uint32_t); + void __ahdecl(*ah_btcoexSetParameter)(struct ath_hal *, + uint32_t, uint32_t); + void __ahdecl(*ah_btCoexDisable)(struct ath_hal *); + int __ahdecl(*ah_btCoexEnable)(struct ath_hal *); }; /* Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Dec 3 23:43:23 2012 (r243839) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Dec 3 23:45:06 2012 (r243840) @@ -191,6 +191,16 @@ ar5416InitState(struct ath_hal_5416 *ahp ah->ah_getPendingInterrupts = ar5416GetPendingInterrupts; ah->ah_setInterrupts = ar5416SetInterrupts; + /* Bluetooth Coexistence functions */ + ah->ah_btCoexSetInfo = ar5416SetBTCoexInfo; + ah->ah_btCoexSetConfig = ar5416BTCoexConfig; + ah->ah_btCoexSetQcuThresh = ar5416BTCoexSetQcuThresh; + ah->ah_btCoexSetWeights = ar5416BTCoexSetWeights; + ah->ah_btCoexSetBmissThresh = ar5416BTCoexSetupBmissThresh; + ah->ah_btcoexSetParameter = ar5416BTCoexSetParameter; + ah->ah_btCoexDisable = ar5416BTCoexDisable; + ah->ah_btCoexEnable = ar5416BTCoexEnable; + ahp->ah_priv.ah_getWirelessModes= ar5416GetWirelessModes; ahp->ah_priv.ah_eepromRead = ar5416EepromRead; #ifdef AH_SUPPORT_WRITE_EEPROM From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 00:01:25 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 695FFAD4; Tue, 4 Dec 2012 00:01:25 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 4FAF98FC15; Tue, 4 Dec 2012 00:01:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB401PGQ090453; Tue, 4 Dec 2012 00:01:25 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB401PO0090452; Tue, 4 Dec 2012 00:01:25 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212040001.qB401PO0090452@svn.freebsd.org> From: Adrian Chadd Date: Tue, 4 Dec 2012 00:01:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243841 - head/sys/dev/ath/ath_hal/ar9002 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 00:01:25 -0000 Author: adrian Date: Tue Dec 4 00:01:24 2012 New Revision: 243841 URL: http://svnweb.freebsd.org/changeset/base/243841 Log: Reformat/reindent. Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c Mon Dec 3 23:45:06 2012 (r243840) +++ head/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c Tue Dec 4 00:01:24 2012 (r243841) @@ -24,7 +24,7 @@ #include "ah_internal.h" #include "ah_devid.h" #ifdef AH_DEBUG -#include "ah_desc.h" /* NB: for HAL_PHYERR* */ +#include "ah_desc.h" /* NB: for HAL_PHYERR* */ #endif #include "ar5416/ar5416.h" @@ -47,64 +47,75 @@ ar9285BTCoexAntennaDiversity(struct ath_ u_int32_t regVal; u_int8_t ant_div_control1, ant_div_control2; - if ((ahp->ah_btCoexFlag & HAL_BT_COEX_FLAG_ANT_DIV_ALLOW) || - (AH5212(ah)->ah_diversity != HAL_ANT_VARIABLE)) { - if ((ahp->ah_btCoexFlag & HAL_BT_COEX_FLAG_ANT_DIV_ENABLE) && - (AH5212(ah)->ah_diversity == HAL_ANT_VARIABLE)) { - /* Enable antenna diversity */ - ant_div_control1 = HAL_BT_COEX_ANTDIV_CONTROL1_ENABLE; - ant_div_control2 = HAL_BT_COEX_ANTDIV_CONTROL2_ENABLE; - - /* Don't disable BT ant to allow BB to control SWCOM */ - ahp->ah_btCoexMode2 &= (~(AR_BT_DISABLE_BT_ANT)); - OS_REG_WRITE(ah, AR_BT_COEX_MODE2, ahp->ah_btCoexMode2); - - /* Program the correct SWCOM table */ - OS_REG_WRITE(ah, AR_PHY_SWITCH_COM, - HAL_BT_COEX_ANT_DIV_SWITCH_COM); - OS_REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0, 0xf0000000); - } else if (AH5212(ah)->ah_diversity == HAL_ANT_FIXED_B) { - /* Disable antenna diversity. Use antenna B(LNA2) only. */ - ant_div_control1 = HAL_BT_COEX_ANTDIV_CONTROL1_FIXED_B; - ant_div_control2 = HAL_BT_COEX_ANTDIV_CONTROL2_FIXED_B; - - /* Disable BT ant to allow concurrent BT and WLAN receive */ - ahp->ah_btCoexMode2 |= AR_BT_DISABLE_BT_ANT; - OS_REG_WRITE(ah, AR_BT_COEX_MODE2, ahp->ah_btCoexMode2); - - /* Program SWCOM talbe to make sure RF switch always parks at WLAN side */ - OS_REG_WRITE(ah, AR_PHY_SWITCH_COM, HAL_BT_COEX_ANT_DIV_SWITCH_COM); - OS_REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0x60000000, 0xf0000000); - } else { - /* Disable antenna diversity. Use antenna A(LNA1) only */ - ant_div_control1 = HAL_BT_COEX_ANTDIV_CONTROL1_FIXED_A; - ant_div_control2 = HAL_BT_COEX_ANTDIV_CONTROL2_FIXED_A; - - /* Disable BT ant to allow concurrent BT and WLAN receive */ - ahp->ah_btCoexMode2 |= AR_BT_DISABLE_BT_ANT; - OS_REG_WRITE(ah, AR_BT_COEX_MODE2, ahp->ah_btCoexMode2); - - /* Program SWCOM talbe to make sure RF switch always parks at BT side */ - OS_REG_WRITE(ah, AR_PHY_SWITCH_COM, 0); - OS_REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0, 0xf0000000); - } - - regVal = OS_REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL); - regVal &= (~(AR_PHY_9285_ANT_DIV_CTL_ALL)); - /* Clear ant_fast_div_bias [14:9] since for Janus the main LNA is always LNA1. */ - regVal &= (~(AR_PHY_9285_FAST_DIV_BIAS)); - - regVal |= SM(ant_div_control1, AR_PHY_9285_ANT_DIV_CTL); - regVal |= SM(ant_div_control2, AR_PHY_9285_ANT_DIV_ALT_LNACONF); - regVal |= SM((ant_div_control2 >> 2), AR_PHY_9285_ANT_DIV_MAIN_LNACONF); - regVal |= SM((ant_div_control1 >> 1), AR_PHY_9285_ANT_DIV_ALT_GAINTB); - regVal |= SM((ant_div_control1 >> 2), AR_PHY_9285_ANT_DIV_MAIN_GAINTB); - OS_REG_WRITE(ah, AR_PHY_MULTICHAIN_GAIN_CTL, regVal); - - regVal = OS_REG_READ(ah, AR_PHY_CCK_DETECT); - regVal &= (~AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV); - regVal |= SM((ant_div_control1 >> 3), AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV); - OS_REG_WRITE(ah, AR_PHY_CCK_DETECT, regVal); + if ((ahp->ah_btCoexFlag & HAL_BT_COEX_FLAG_ANT_DIV_ALLOW) || + (AH5212(ah)->ah_diversity != HAL_ANT_VARIABLE)) { + if ((ahp->ah_btCoexFlag & HAL_BT_COEX_FLAG_ANT_DIV_ENABLE) && + (AH5212(ah)->ah_diversity == HAL_ANT_VARIABLE)) { + /* Enable antenna diversity */ + ant_div_control1 = HAL_BT_COEX_ANTDIV_CONTROL1_ENABLE; + ant_div_control2 = HAL_BT_COEX_ANTDIV_CONTROL2_ENABLE; + + /* Don't disable BT ant to allow BB to control SWCOM */ + ahp->ah_btCoexMode2 &= (~(AR_BT_DISABLE_BT_ANT)); + OS_REG_WRITE(ah, AR_BT_COEX_MODE2, ahp->ah_btCoexMode2); + + /* Program the correct SWCOM table */ + OS_REG_WRITE(ah, AR_PHY_SWITCH_COM, + HAL_BT_COEX_ANT_DIV_SWITCH_COM); + OS_REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0, 0xf0000000); + } else if (AH5212(ah)->ah_diversity == HAL_ANT_FIXED_B) { + /* Disable antenna diversity. Use antenna B(LNA2) only. */ + ant_div_control1 = HAL_BT_COEX_ANTDIV_CONTROL1_FIXED_B; + ant_div_control2 = HAL_BT_COEX_ANTDIV_CONTROL2_FIXED_B; + + /* Disable BT ant to allow concurrent BT and WLAN receive */ + ahp->ah_btCoexMode2 |= AR_BT_DISABLE_BT_ANT; + OS_REG_WRITE(ah, AR_BT_COEX_MODE2, ahp->ah_btCoexMode2); + + /* + * Program SWCOM table to make sure RF switch always parks + * at WLAN side + */ + OS_REG_WRITE(ah, AR_PHY_SWITCH_COM, + HAL_BT_COEX_ANT_DIV_SWITCH_COM); + OS_REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0x60000000, 0xf0000000); + } else { + /* Disable antenna diversity. Use antenna A(LNA1) only */ + ant_div_control1 = HAL_BT_COEX_ANTDIV_CONTROL1_FIXED_A; + ant_div_control2 = HAL_BT_COEX_ANTDIV_CONTROL2_FIXED_A; + + /* Disable BT ant to allow concurrent BT and WLAN receive */ + ahp->ah_btCoexMode2 |= AR_BT_DISABLE_BT_ANT; + OS_REG_WRITE(ah, AR_BT_COEX_MODE2, ahp->ah_btCoexMode2); + + /* + * Program SWCOM table to make sure RF switch always + * parks at BT side + */ + OS_REG_WRITE(ah, AR_PHY_SWITCH_COM, 0); + OS_REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0, 0xf0000000); + } + + regVal = OS_REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL); + regVal &= (~(AR_PHY_9285_ANT_DIV_CTL_ALL)); + /* + * Clear ant_fast_div_bias [14:9] since for Janus the main LNA is + * always LNA1. + */ + regVal &= (~(AR_PHY_9285_FAST_DIV_BIAS)); + + regVal |= SM(ant_div_control1, AR_PHY_9285_ANT_DIV_CTL); + regVal |= SM(ant_div_control2, AR_PHY_9285_ANT_DIV_ALT_LNACONF); + regVal |= SM((ant_div_control2 >> 2), AR_PHY_9285_ANT_DIV_MAIN_LNACONF); + regVal |= SM((ant_div_control1 >> 1), AR_PHY_9285_ANT_DIV_ALT_GAINTB); + regVal |= SM((ant_div_control1 >> 2), AR_PHY_9285_ANT_DIV_MAIN_GAINTB); + OS_REG_WRITE(ah, AR_PHY_MULTICHAIN_GAIN_CTL, regVal); + + regVal = OS_REG_READ(ah, AR_PHY_CCK_DETECT); + regVal &= (~AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV); + regVal |= SM((ant_div_control1 >> 3), + AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV); + OS_REG_WRITE(ah, AR_PHY_CCK_DETECT, regVal); } } From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 00:01:42 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 99BBDC45; Tue, 4 Dec 2012 00:01:42 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 807ED8FC15; Tue, 4 Dec 2012 00:01:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB401gVR090606; Tue, 4 Dec 2012 00:01:42 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB401gor090605; Tue, 4 Dec 2012 00:01:42 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212040001.qB401gor090605@svn.freebsd.org> From: Adrian Chadd Date: Tue, 4 Dec 2012 00:01:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243842 - head/sys/dev/ath/ath_hal/ar9002 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 00:01:42 -0000 Author: adrian Date: Tue Dec 4 00:01:42 2012 New Revision: 243842 URL: http://svnweb.freebsd.org/changeset/base/243842 Log: Override the BT coex parameter function for the AR9285. Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Tue Dec 4 00:01:24 2012 (r243841) +++ head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Tue Dec 4 00:01:42 2012 (r243842) @@ -148,15 +148,16 @@ ar9285Attach(uint16_t devid, HAL_SOFTC s ah->ah_eepromdata = eepromdata; } - /* XXX override with 9285 specific state */ - /* override 5416 methods for our needs */ + /* override with 9285 specific state */ AH5416(ah)->ah_initPLL = ar9280InitPLL; + AH5416(ah)->ah_btCoexSetDiversity = ar5416BTCoexAntennaDiversity; ah->ah_setAntennaSwitch = ar9285SetAntennaSwitch; ah->ah_configPCIE = ar9285ConfigPCIE; ah->ah_disablePCIE = ar9285DisablePCIE; ah->ah_setTxPower = ar9285SetTransmitPower; ah->ah_setBoardValues = ar9285SetBoardValues; + ah->ah_btcoexSetParameter = ar9285BTCoexSetParameter; AH5416(ah)->ah_cal.iqCalData.calData = &ar9280_iq_cal; AH5416(ah)->ah_cal.adcGainCalData.calData = &ar9280_adc_gain_cal; From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 00:02:47 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 41B30DD5; Tue, 4 Dec 2012 00:02:47 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 1B02F8FC13; Tue, 4 Dec 2012 00:02:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB402k9g091131; Tue, 4 Dec 2012 00:02:46 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB402kEJ091128; Tue, 4 Dec 2012 00:02:46 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212040002.qB402kEJ091128@svn.freebsd.org> From: Adrian Chadd Date: Tue, 4 Dec 2012 00:02:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243843 - head/sys/dev/ath/ath_hal/ar5416 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 00:02:47 -0000 Author: adrian Date: Tue Dec 4 00:02:46 2012 New Revision: 243843 URL: http://svnweb.freebsd.org/changeset/base/243843 Log: Methodise the BT diversity configuration function; so the AR9285 can correctly override it. This was missed in the previous commit. Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416.h head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c head/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416.h Tue Dec 4 00:01:42 2012 (r243842) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416.h Tue Dec 4 00:02:46 2012 (r243843) @@ -107,6 +107,9 @@ struct ath_hal_5416 { void (*ah_initPLL) (struct ath_hal *ah, const struct ieee80211_channel *chan); + /* bluetooth coexistence operations */ + void (*ah_btCoexSetDiversity)(struct ath_hal *ah); + u_int ah_globaltxtimeout; /* global tx timeout */ u_int ah_gpioMask; int ah_hangs; /* h/w hangs state */ @@ -200,6 +203,7 @@ extern void ar5416SetBTCoexInfo(struct a HAL_BT_COEX_INFO *btinfo); extern void ar5416BTCoexConfig(struct ath_hal *ah, HAL_BT_COEX_CONFIG *btconf); +extern void ar5416BTCoexAntennaDiversity(struct ath_hal *ah); extern void ar5416BTCoexSetQcuThresh(struct ath_hal *ah, int qnum); extern void ar5416BTCoexSetWeights(struct ath_hal *ah, uint32_t stompType); extern void ar5416BTCoexSetupBmissThresh(struct ath_hal *ah, Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Tue Dec 4 00:01:42 2012 (r243842) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Tue Dec 4 00:02:46 2012 (r243843) @@ -200,6 +200,7 @@ ar5416InitState(struct ath_hal_5416 *ahp ah->ah_btcoexSetParameter = ar5416BTCoexSetParameter; ah->ah_btCoexDisable = ar5416BTCoexDisable; ah->ah_btCoexEnable = ar5416BTCoexEnable; + AH5416(ah)->ah_btCoexSetDiversity = ar5416BTCoexAntennaDiversity; ahp->ah_priv.ah_getWirelessModes= ar5416GetWirelessModes; ahp->ah_priv.ah_eepromRead = ar5416EepromRead; Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c Tue Dec 4 00:01:42 2012 (r243842) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c Tue Dec 4 00:02:46 2012 (r243843) @@ -173,7 +173,7 @@ ar5416BTCoexSetupBmissThresh(struct ath_ * * Kite will override this particular method. */ -static void +void ar5416BTCoexAntennaDiversity(struct ath_hal *ah) { } @@ -350,8 +350,12 @@ ar5416InitBTCoex(struct ath_hal *ah) ar5416GpioCfgInput(ah, ahp->ah_btActiveGpioSelect); ar5416GpioCfgInput(ah, ahp->ah_btPriorityGpioSelect); - if (AR_SREV_KITE(ah)) - ar5416BTCoexAntennaDiversity(ah); + /* + * Configure the antenna diversity setup. + * It's a no-op for AR9287; AR9285 overrides this + * as required. + */ + AH5416(ah)->ah_btCoexSetDiversity(ah); if (ahp->ah_btCoexEnabled) ar5416BTCoexEnable(ah); From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 00:32:12 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D326862F; Tue, 4 Dec 2012 00:32:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B82968FC16; Tue, 4 Dec 2012 00:32:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB40WCZs097360; Tue, 4 Dec 2012 00:32:12 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB40WCvd097359; Tue, 4 Dec 2012 00:32:12 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201212040032.qB40WCvd097359@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 4 Dec 2012 00:32:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243845 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 00:32:12 -0000 Author: kib Date: Tue Dec 4 00:32:12 2012 New Revision: 243845 URL: http://svnweb.freebsd.org/changeset/base/243845 Log: Document the interpretation of the negative value of ticks for taskqueue_enqueue_timeout(9). MFC after: 3 days Modified: head/share/man/man9/taskqueue.9 Modified: head/share/man/man9/taskqueue.9 ============================================================================== --- head/share/man/man9/taskqueue.9 Tue Dec 4 00:06:58 2012 (r243844) +++ head/share/man/man9/taskqueue.9 Tue Dec 4 00:32:12 2012 (r243845) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 26, 2011 +.Dd December 4, 2012 .Dt TASKQUEUE 9 .Os .Sh NAME @@ -180,6 +180,13 @@ is used to schedule the enqueue after th Only non-fast task queues can be used for .Va timeout_task scheduling. +If the +.Va ticks +argument is negative, the already scheduled enqueueing is not re-scheduled. +Otherwise, the task is schedules for enqueueing in the future, +after the absolute value of +.Va ticks +is passed. .Pp The .Fn taskqueue_cancel From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 00:37:18 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F21667DA; Tue, 4 Dec 2012 00:37:17 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D5D508FC08; Tue, 4 Dec 2012 00:37:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB40bH97098302; Tue, 4 Dec 2012 00:37:17 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB40bH2g098300; Tue, 4 Dec 2012 00:37:17 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201212040037.qB40bH2g098300@svn.freebsd.org> From: Jung-uk Kim Date: Tue, 4 Dec 2012 00:37:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243846 - in head/share: examples/etc mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 00:37:18 -0000 Author: jkim Date: Tue Dec 4 00:37:17 2012 New Revision: 243846 URL: http://svnweb.freebsd.org/changeset/base/243846 Log: Tidy up bsd.cpu.mk for X86 CPUs: - Do not limit recent processors to "prescott" class for i386 target. There is no reason for this hack because clang is default now. On top of that, it will only grow indefinitely over time. - Add more CPUTYPEs, i.e., "athlon-fx", "core-avx2", "atom", "penryn", and "yonah". Note "penryn" and "yonah" are intentionally undocumented because they are not supported by gcc and marked deprecated by clang. - Add more CPUTYPE aliases, i.e., "barcelona" (-> amdfam10), "westmere" and "nehalem" (-> corei7). Note these are intentionally undocumented because they are not supported by (base) gcc and/or clang. However, LLVM (backend) seems to "know" the differences. Most likely, they were deprecated with other vendor code names and clang did not bother implementing them at all. - Add i686 to MACHINE_CPU for "c3-2" (VIA Nehemiah). Both gcc & clang treat it like an i686-class processor. - Add IDT "winchip2" and "winchip-c6" for completeness (undocumented). - Order processors per make.conf example, i.e., CPU vendors and models. - Tidy up make.conf example, i.e., remove "by gcc" (because we have aliases) and remove "prescott" from AMD64 architecture (because it is not correct). Modified: head/share/examples/etc/make.conf head/share/mk/bsd.cpu.mk Modified: head/share/examples/etc/make.conf ============================================================================== --- head/share/examples/etc/make.conf Tue Dec 4 00:32:12 2012 (r243845) +++ head/share/examples/etc/make.conf Tue Dec 4 00:37:17 2012 (r243846) @@ -28,24 +28,25 @@ # of CFLAGS to contain the appropriate optimization directive to cc. # The automatic setting of CFLAGS may be overridden using the # NO_CPU_CFLAGS variable below. -# Currently the following CPU types are recognized by gcc: +# Currently the following CPU types are recognized: # Intel x86 architecture: # (AMD CPUs) opteron-sse3, athlon64-sse3, k8-sse3, opteron, -# athlon64, k8, athlon-mp, athlon-xp, athlon-4, -# athlon-tbird, athlon, k7, geode, k6-3, k6-2, k6, k5 +# athlon64, athlon-fx, k8, athlon-mp, athlon-xp, +# athlon-4, athlon-tbird, athlon, k7, geode, k6-3, +# k6-2, k6 # (Intel CPUs) core2, core, nocona, pentium4m, pentium4, prescott, # pentium3m, pentium3, pentium-m, pentium2, # pentiumpro, pentium-mmx, pentium, i486 # (VIA CPUs) c7, c3-2, c3 # AMD64 architecture: opteron-sse3, athlon64-sse3, k8-sse3, opteron, -# athlon64, k8, core2, nocona, prescott +# athlon64, k8, core2, nocona # Intel ia64 architecture: itanium2, itanium # SPARC-V9 architecture: v9 (generic 64-bit V9), ultrasparc (default # if omitted), ultrasparc3 # Additionally the following CPU types are recognized by clang: # Intel x86 architecture (for both amd64 and i386): # (AMD CPUs) bdver2, bdver1, btver1, amdfam10 -# (Intel CPUs) core-avx-i, corei7-avx, corei7 +# (Intel CPUs) core-avx2, core-avx-i, corei7-avx, corei7, atom # # (?= allows to buildworld for a different CPUTYPE.) # Modified: head/share/mk/bsd.cpu.mk ============================================================================== --- head/share/mk/bsd.cpu.mk Tue Dec 4 00:32:12 2012 (r243845) +++ head/share/mk/bsd.cpu.mk Tue Dec 4 00:37:17 2012 (r243846) @@ -27,9 +27,13 @@ MACHINE_CPU = mips # between e.g. i586 and pentium) . if ${MACHINE_CPUARCH} == "i386" -. if ${CPUTYPE} == "nocona" || ${CPUTYPE} == "core" || \ - ${CPUTYPE} == "core2" || ${CPUTYPE} == "corei7" || \ - ${CPUTYPE} == "corei7-avx" || ${CPUTYPE} == "core-avx-i" +. if ${CPUTYPE} == "barcelona" +CPUTYPE = amdfam10 +. elif ${CPUTYPE} == "k7" +CPUTYPE = athlon +. elif ${CPUTYPE} == "westmere" || ${CPUTYPE} == "nehalem" +CPUTYPE = corei7 +. elif ${CPUTYPE} == "core" CPUTYPE = prescott . elif ${CPUTYPE} == "p4" CPUTYPE = pentium4 @@ -49,18 +53,13 @@ CPUTYPE = pentiumpro CPUTYPE = pentium-mmx . elif ${CPUTYPE} == "i586" CPUTYPE = pentium -. elif ${CPUTYPE} == "opteron-sse3" || ${CPUTYPE} == "athlon64-sse3" || \ - ${CPUTYPE} == "k8-sse3" || ${CPUTYPE} == "amdfam10" || \ - ${CPUTYPE} == "btver1" || ${CPUTYPE} == "bdver1" || ${CPUTYPE} == "bdver2" -CPUTYPE = prescott -. elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" || \ - ${CPUTYPE} == "k8" -CPUTYPE = athlon-mp -. elif ${CPUTYPE} == "k7" -CPUTYPE = athlon . endif . elif ${MACHINE_CPUARCH} == "amd64" -. if ${CPUTYPE} == "prescott" +. if ${CPUTYPE} == "barcelona" +CPUTYPE = amdfam10 +. elif ${CPUTYPE} == "westmere" || ${CPUTYPE} == "nehalem" +CPUTYPE = corei7 +. elif ${CPUTYPE} == "prescott" CPUTYPE = nocona . endif . elif ${MACHINE_ARCH} == "sparc64" @@ -87,11 +86,11 @@ CPUTYPE = ultrasparc3 _CPUCFLAGS = -march=i686 -falign-functions=0 -falign-jumps=0 -falign-loops=0 . elif ${CPUTYPE} == "k5" _CPUCFLAGS = -march=pentium -. elif ${CPUTYPE} == "core2" -_CPUCFLAGS = -march=prescott +. elif ${CPUTYPE} == "c7" +_CPUCFLAGS = -march=c3-2 . else _CPUCFLAGS = -march=${CPUTYPE} -. endif # GCC on 'i386' +. endif . elif ${MACHINE_CPUARCH} == "amd64" _CPUCFLAGS = -march=${CPUTYPE} . elif ${MACHINE_CPUARCH} == "arm" @@ -143,7 +142,7 @@ _CPUCFLAGS = -mcpu=ultrasparc3 # presence of a CPU feature. . if ${MACHINE_CPUARCH} == "i386" -. if ${CPUTYPE} == "bdver1" || ${CPUTYPE} == "bdver2" +. if ${CPUTYPE} == "bdver2" || ${CPUTYPE} == "bdver1" MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 . elif ${CPUTYPE} == "btver1" MACHINE_CPU = ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 @@ -151,7 +150,8 @@ MACHINE_CPU = ssse3 sse4a sse3 sse2 sse MACHINE_CPU = athlon-xp athlon k7 3dnow sse4a sse3 sse2 sse mmx k6 k5 i586 . elif ${CPUTYPE} == "opteron-sse3" || ${CPUTYPE} == "athlon64-sse3" MACHINE_CPU = athlon-xp athlon k7 3dnow sse3 sse2 sse mmx k6 k5 i586 -. elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" +. elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" || \ + ${CPUTYPE} == "athlon-fx" MACHINE_CPU = athlon-xp athlon k7 3dnow sse2 sse mmx k6 k5 i586 . elif ${CPUTYPE} == "athlon-mp" || ${CPUTYPE} == "athlon-xp" || \ ${CPUTYPE} == "athlon-4" @@ -164,19 +164,17 @@ MACHINE_CPU = 3dnow mmx k6 k5 i586 MACHINE_CPU = mmx k6 k5 i586 . elif ${CPUTYPE} == "k5" MACHINE_CPU = k5 i586 -. elif ${CPUTYPE} == "c3" -MACHINE_CPU = 3dnow mmx i586 -. elif ${CPUTYPE} == "c3-2" -MACHINE_CPU = sse mmx i586 -. elif ${CPUTYPE} == "c7" -MACHINE_CPU = sse3 sse2 sse i686 mmx i586 -. elif ${CPUTYPE} == "corei7-avx" || ${CPUTYPE} == "core-avx-i" +. elif ${CPUTYPE} == "corei-avx2" +MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 +. elif ${CPUTYPE} == "core-avx-i" || ${CPUTYPE} == "corei7-avx" MACHINE_CPU = avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "corei7" MACHINE_CPU = sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 -. elif ${CPUTYPE} == "core2" +. elif ${CPUTYPE} == "penryn" +MACHINE_CPU = sse41 ssse3 sse3 sse2 sse i686 mmx i586 +. elif ${CPUTYPE} == "atom" || ${CPUTYPE} == "core2" MACHINE_CPU = ssse3 sse3 sse2 sse i686 mmx i586 -. elif ${CPUTYPE} == "prescott" +. elif ${CPUTYPE} == "yonah" || ${CPUTYPE} == "prescott" MACHINE_CPU = sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "pentium4" || ${CPUTYPE} == "pentium4m" || \ ${CPUTYPE} == "pentium-m" @@ -191,10 +189,20 @@ MACHINE_CPU = i686 i586 MACHINE_CPU = mmx i586 . elif ${CPUTYPE} == "pentium" MACHINE_CPU = i586 +. elif ${CPUTYPE} == "c7" +MACHINE_CPU = sse3 sse2 sse i686 mmx i586 +. elif ${CPUTYPE} == "c3-2" +MACHINE_CPU = sse i686 mmx i586 +. elif ${CPUTYPE} == "c3" +MACHINE_CPU = 3dnow mmx i586 +. elif ${CPUTYPE} == "winchip2" +MACHINE_CPU = 3dnow mmx +. elif ${CPUTYPE} == "winchip-c6" +MACHINE_CPU = mmx . endif MACHINE_CPU += i486 . elif ${MACHINE_CPUARCH} == "amd64" -. if ${CPUTYPE} == "bdver1" || ${CPUTYPE} == "bdver2" +. if ${CPUTYPE} == "bdver2" || ${CPUTYPE} == "bdver1" MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3 . elif ${CPUTYPE} == "btver1" MACHINE_CPU = ssse3 sse4a sse3 @@ -204,13 +212,17 @@ MACHINE_CPU = k8 3dnow sse4a sse3 ${CPUTYPE} == "k8-sse3" MACHINE_CPU = k8 3dnow sse3 . elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" || \ - ${CPUTYPE} == "k8" + ${CPUTYPE} == "athlon-fx" || ${CPUTYPE} == "k8" MACHINE_CPU = k8 3dnow -. elif ${CPUTYPE} == "corei7-avx" || ${CPUTYPE} == "core-avx-i" +. elif ${CPUTYPE} == "corei-avx2" +MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse3 +. elif ${CPUTYPE} == "core-avx-i" || ${CPUTYPE} == "corei7-avx" MACHINE_CPU = avx sse42 sse41 ssse3 sse3 . elif ${CPUTYPE} == "corei7" MACHINE_CPU = sse42 sse41 ssse3 sse3 -. elif ${CPUTYPE} == "core2" +. elif ${CPUTYPE} == "penryn" +MACHINE_CPU = sse41 ssse3 sse3 +. elif ${CPUTYPE} == "atom" || ${CPUTYPE} == "core2" MACHINE_CPU = ssse3 sse3 . elif ${CPUTYPE} == "nocona" MACHINE_CPU = sse3 From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 00:44:31 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AE630B98; Tue, 4 Dec 2012 00:44:31 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 8CE838FC12; Tue, 4 Dec 2012 00:44:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB40iVv1099658; Tue, 4 Dec 2012 00:44:31 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB40iV1g099657; Tue, 4 Dec 2012 00:44:31 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201212040044.qB40iV1g099657@svn.freebsd.org> From: Jung-uk Kim Date: Tue, 4 Dec 2012 00:44:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243847 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 00:44:32 -0000 Author: jkim Date: Tue Dec 4 00:44:31 2012 New Revision: 243847 URL: http://svnweb.freebsd.org/changeset/base/243847 Log: Fix typos in the previous commit. Modified: head/share/mk/bsd.cpu.mk Modified: head/share/mk/bsd.cpu.mk ============================================================================== --- head/share/mk/bsd.cpu.mk Tue Dec 4 00:37:17 2012 (r243846) +++ head/share/mk/bsd.cpu.mk Tue Dec 4 00:44:31 2012 (r243847) @@ -164,7 +164,7 @@ MACHINE_CPU = 3dnow mmx k6 k5 i586 MACHINE_CPU = mmx k6 k5 i586 . elif ${CPUTYPE} == "k5" MACHINE_CPU = k5 i586 -. elif ${CPUTYPE} == "corei-avx2" +. elif ${CPUTYPE} == "core-avx2" MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "core-avx-i" || ${CPUTYPE} == "corei7-avx" MACHINE_CPU = avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 @@ -214,7 +214,7 @@ MACHINE_CPU = k8 3dnow sse3 . elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" || \ ${CPUTYPE} == "athlon-fx" || ${CPUTYPE} == "k8" MACHINE_CPU = k8 3dnow -. elif ${CPUTYPE} == "corei-avx2" +. elif ${CPUTYPE} == "core-avx2" MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse3 . elif ${CPUTYPE} == "core-avx-i" || ${CPUTYPE} == "corei7-avx" MACHINE_CPU = avx sse42 sse41 ssse3 sse3 From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 00:53:21 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 100C4ECC; Tue, 4 Dec 2012 00:53:21 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E93D58FC08; Tue, 4 Dec 2012 00:53:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB40rK5I001626; Tue, 4 Dec 2012 00:53:20 GMT (envelope-from bdrewery@svn.freebsd.org) Received: (from bdrewery@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB40rKFr001625; Tue, 4 Dec 2012 00:53:20 GMT (envelope-from bdrewery@svn.freebsd.org) Message-Id: <201212040053.qB40rKFr001625@svn.freebsd.org> From: Bryan Drewery Date: Tue, 4 Dec 2012 00:53:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243849 - head/usr.bin/rctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 00:53:21 -0000 Author: bdrewery (ports committer) Date: Tue Dec 4 00:53:20 2012 New Revision: 243849 URL: http://svnweb.freebsd.org/changeset/base/243849 Log: - Move EXAMPLES descriptions to before the actual command - Add mdoc macros for EXAMPLES Reviewed by: eadler Approved by: gjb MFC after: 3 days Modified: head/usr.bin/rctl/rctl.8 Modified: head/usr.bin/rctl/rctl.8 ============================================================================== --- head/usr.bin/rctl/rctl.8 Tue Dec 4 00:51:29 2012 (r243848) +++ head/usr.bin/rctl/rctl.8 Tue Dec 4 00:53:20 2012 (r243849) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 26, 2012 +.Dd December 3, 2012 .Dt RCTL 8 .Os .Sh NAME @@ -169,21 +169,18 @@ Note that limiting RSS may kill the mach .Sh EXIT STATUS .Ex -std .Sh EXAMPLES -.Dl rctl -a user:joe:vmemoryuse:deny=1g +Prevent user "joe" from allocating more than 1GB of virtual memory: +.Dl Nm Fl a Ar user:joe:vmemoryuse:deny=1g .Pp -Prevent user "joe" from allocating more than 1GB of virtual memory. +Remove all RCTL rules: +.Dl Nm Fl r Ar \&: .Pp -.Dl rctl -r : +Display resource usage information for jail named "www": +.Dl Nm Fl hu Ar jail:www .Pp -Remove all RCTL rules. +Display all the rules applicable to process with PID 512: +.Dl Nm Fl l Ar process:512 .Pp -.Dl rctl -hu jail:www -.Pp -Display resource usage information for jail named "www". -.Pp -.Dl rctl -l process:512 -.Pp -Display all the rules applicable to process with PID 512. .Sh SEE ALSO .Xr rctl.conf 5 .Sh HISTORY From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 01:11:24 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CD16E6A1; Tue, 4 Dec 2012 01:11:24 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from hammer.pct.niksun.com (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 63E718FC0C; Tue, 4 Dec 2012 01:11:24 +0000 (UTC) Message-ID: <50BD4D80.3060101@FreeBSD.org> Date: Mon, 03 Dec 2012 20:10:24 -0500 From: Jung-uk Kim User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: src-committers@freebsd.org Subject: Re: svn commit: r243846 - in head/share: examples/etc mk References: <201212040037.qB40bH2g098300@svn.freebsd.org> In-Reply-To: <201212040037.qB40bH2g098300@svn.freebsd.org> X-Enigmail-Version: 1.4.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 01:11:24 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2012-12-03 19:37:17 -0500, Jung-uk Kim wrote: > Author: jkim Date: Tue Dec 4 00:37:17 2012 New Revision: 243846 > URL: http://svnweb.freebsd.org/changeset/base/243846 > > Log: Tidy up bsd.cpu.mk for X86 CPUs: > > - Do not limit recent processors to "prescott" class for i386 > target. There is no reason for this hack because clang is default > now. On top of that, it will only grow indefinitely over time. - > Add more CPUTYPEs, i.e., "athlon-fx", "core-avx2", "atom", > "penryn", and "yonah". Note "penryn" and "yonah" are intentionally > undocumented because they are not supported by gcc and marked > deprecated by clang. - Add more CPUTYPE aliases, i.e., "barcelona" > (-> amdfam10), "westmere" and "nehalem" (-> corei7). Note these > are intentionally undocumented because they are not supported by > (base) gcc and/or clang. However, LLVM (backend) seems to "know" > the differences. Most likely, they were deprecated with other > vendor code names and clang did not bother implementing them at > all. - Add i686 to MACHINE_CPU for "c3-2" (VIA Nehemiah). Both gcc > & clang treat it like an i686-class processor. [ Snipped the rest... ] Please note "c3" is treated like an i486-class processor by the compilers. However, I didn't remove i586 because it wasn't really clear to me. It seems most people just used -march=i586 for the processors (before GCC added - -march=c3). For example: http://radagast.ca/epia/epia_howto/index.html#VIA_EPIA_CPUs The original VIA C3 (aka Cyrix III) was considered i486-class, maybe? I think I still have one of these in the basement collecting dust but its mobo died long ago. :-( Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQEcBAEBAgAGBQJQvU2AAAoJECXpabHZMqHOntMH/RdhI7uCntALF/p9gRJl7uDh xffyaDsMML3CR86yjD+KZKa8MGRN7yW62AIMkXRf67iUhRQ2P2fF6p2FBrrGWZ8a br6ePOylBG+abNvSkWYLaq6BgoEqPOsdmdTkwUK8b2uuukGIxXajdpmjXkQikSJh 3BkVb4NK+AnCGukOeLez06X1XQsXd7N/XvKHYyZV8kNXQo1Uk/91wYewdcSBLjWF VOEW9ub42RYuPj8t+xWfKjv3/+rjYw+Gyvat5m9nvU4wkbvRB7oB48ZGDkFPQrH8 j++h4wjnEjzXY1EHg+3Ph1hlyZEiCdcCjFNGqB+QKzSsEVTAlsbSY4c5tW6xYzM= =jedj -----END PGP SIGNATURE----- From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 05:28:20 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id ECB138AA; Tue, 4 Dec 2012 05:28:20 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id BC8588FC08; Tue, 4 Dec 2012 05:28:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB45SKi9065394; Tue, 4 Dec 2012 05:28:20 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB45SKND065393; Tue, 4 Dec 2012 05:28:20 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201212040528.qB45SKND065393@svn.freebsd.org> From: Alfred Perlstein Date: Tue, 4 Dec 2012 05:28:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243853 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 05:28:21 -0000 Author: alfred Date: Tue Dec 4 05:28:20 2012 New Revision: 243853 URL: http://svnweb.freebsd.org/changeset/base/243853 Log: replace bit shifting loop with 1<cc_callout = (struct callout *)v; From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 07:22:15 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EAA6B89A; Tue, 4 Dec 2012 07:22:15 +0000 (UTC) (envelope-from joel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id CF6FB8FC1B; Tue, 4 Dec 2012 07:22:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB47MFh5097013; Tue, 4 Dec 2012 07:22:15 GMT (envelope-from joel@svn.freebsd.org) Received: (from joel@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB47MFZ5097012; Tue, 4 Dec 2012 07:22:15 GMT (envelope-from joel@svn.freebsd.org) Message-Id: <201212040722.qB47MFZ5097012@svn.freebsd.org> From: Joel Dahl Date: Tue, 4 Dec 2012 07:22:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243854 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 07:22:16 -0000 Author: joel (doc committer) Date: Tue Dec 4 07:22:15 2012 New Revision: 243854 URL: http://svnweb.freebsd.org/changeset/base/243854 Log: Remove snapshots.jp.freebsd.org. It stopped working years ago. Discussed with: hrs Modified: head/usr.sbin/bsdinstall/scripts/mirrorselect Modified: head/usr.sbin/bsdinstall/scripts/mirrorselect ============================================================================== --- head/usr.sbin/bsdinstall/scripts/mirrorselect Tue Dec 4 05:28:20 2012 (r243853) +++ head/usr.sbin/bsdinstall/scripts/mirrorselect Tue Dec 4 07:22:15 2012 (r243854) @@ -39,7 +39,6 @@ MIRROR=`dialog --backtitle "FreeBSD Inst --menu "Please select the site closest to you or \"other\" if you'd like to specify a different choice. Also note that not every site listed here carries more than the base distribution kits. Only Primary sites are guaranteed to carry the full range of possible distributions. Select a site that's close!" \ 0 0 0 \ ftp://ftp.freebsd.org "Main Site"\ - ftp://snapshots.jp.freebsd.org "Snapshots Server Japan"\ ftp://ftp.freebsd.org "IPv6 Main Site"\ ftp://ftp3.ie.freebsd.org "IPv6 Ireland"\ ftp://ftp.il.freebsd.org "IPv6 Israel"\ From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 09:02:49 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B48DCC8; Tue, 4 Dec 2012 09:02:49 +0000 (UTC) (envelope-from joel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 9780F8FC14; Tue, 4 Dec 2012 09:02:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB492ni3024795; Tue, 4 Dec 2012 09:02:49 GMT (envelope-from joel@svn.freebsd.org) Received: (from joel@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB492nSp024794; Tue, 4 Dec 2012 09:02:49 GMT (envelope-from joel@svn.freebsd.org) Message-Id: <201212040902.qB492nSp024794@svn.freebsd.org> From: Joel Dahl Date: Tue, 4 Dec 2012 09:02:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243856 - head/usr.bin/rctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 09:02:49 -0000 Author: joel (doc committer) Date: Tue Dec 4 09:02:49 2012 New Revision: 243856 URL: http://svnweb.freebsd.org/changeset/base/243856 Log: Remove superfluous paragraph macro. Modified: head/usr.bin/rctl/rctl.8 Modified: head/usr.bin/rctl/rctl.8 ============================================================================== --- head/usr.bin/rctl/rctl.8 Tue Dec 4 08:46:32 2012 (r243855) +++ head/usr.bin/rctl/rctl.8 Tue Dec 4 09:02:49 2012 (r243856) @@ -180,7 +180,6 @@ Display resource usage information for j .Pp Display all the rules applicable to process with PID 512: .Dl Nm Fl l Ar process:512 -.Pp .Sh SEE ALSO .Xr rctl.conf 5 .Sh HISTORY From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 09:32:44 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E39E9FA0; Tue, 4 Dec 2012 09:32:44 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C3FED8FC08; Tue, 4 Dec 2012 09:32:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB49WigZ033864; Tue, 4 Dec 2012 09:32:44 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB49WhZo033824; Tue, 4 Dec 2012 09:32:43 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212040932.qB49WhZo033824@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 4 Dec 2012 09:32:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243857 - in head/sys/dev: age alc ale an ath bce bfe bge bm bwi bwn bxe cas ce cm cp cs ctau cx cxgb cxgb/sys cxgbe cxgbe/tom dc de e1000 ed en ep et ex fatm fe firewire fxp gem gxemul... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 09:32:45 -0000 Author: glebius Date: Tue Dec 4 09:32:43 2012 New Revision: 243857 URL: http://svnweb.freebsd.org/changeset/base/243857 Log: Mechanically substitute flags from historic mbuf allocator with malloc(9) flags in sys/dev. Modified: head/sys/dev/age/if_age.c head/sys/dev/alc/if_alc.c head/sys/dev/ale/if_ale.c head/sys/dev/an/if_an.c head/sys/dev/ath/if_ath_rx.c head/sys/dev/ath/if_ath_rx_edma.c head/sys/dev/ath/if_ath_tx.c head/sys/dev/bce/if_bce.c head/sys/dev/bfe/if_bfe.c head/sys/dev/bge/if_bge.c head/sys/dev/bm/if_bm.c head/sys/dev/bwi/if_bwi.c head/sys/dev/bwn/if_bwn.c head/sys/dev/bxe/if_bxe.c head/sys/dev/cas/if_cas.c head/sys/dev/ce/if_ce.c head/sys/dev/cm/smc90cx6.c head/sys/dev/cp/if_cp.c head/sys/dev/cs/if_cs.c head/sys/dev/ctau/if_ct.c head/sys/dev/cx/if_cx.c head/sys/dev/cxgb/cxgb_main.c head/sys/dev/cxgb/cxgb_sge.c head/sys/dev/cxgb/sys/uipc_mvec.c head/sys/dev/cxgbe/t4_sge.c head/sys/dev/cxgbe/tom/t4_ddp.c head/sys/dev/cxgbe/tom/t4_listen.c head/sys/dev/dc/if_dc.c head/sys/dev/de/if_de.c head/sys/dev/e1000/if_em.c head/sys/dev/e1000/if_igb.c head/sys/dev/e1000/if_lem.c head/sys/dev/ed/if_ed.c head/sys/dev/en/midway.c head/sys/dev/ep/if_ep.c head/sys/dev/et/if_et.c head/sys/dev/ex/if_ex.c head/sys/dev/fatm/if_fatm.c head/sys/dev/fe/if_fe.c head/sys/dev/firewire/fwohci.c head/sys/dev/firewire/if_fwe.c head/sys/dev/firewire/if_fwip.c head/sys/dev/fxp/if_fxp.c head/sys/dev/gem/if_gem.c head/sys/dev/gxemul/ether/if_gx.c head/sys/dev/hatm/if_hatm_intr.c head/sys/dev/hatm/if_hatm_tx.c head/sys/dev/hifn/hifn7751.c head/sys/dev/hme/if_hme.c head/sys/dev/ie/if_ie.c head/sys/dev/if_ndis/if_ndis.c head/sys/dev/ipw/if_ipw.c head/sys/dev/iwi/if_iwi.c head/sys/dev/iwn/if_iwn.c head/sys/dev/ixgb/if_ixgb.c head/sys/dev/ixgbe/ixgbe.c head/sys/dev/ixgbe/ixv.c head/sys/dev/jme/if_jme.c head/sys/dev/le/lance.c head/sys/dev/lge/if_lge.c head/sys/dev/lmc/if_lmc.c head/sys/dev/malo/if_malo.c head/sys/dev/mge/if_mge.c head/sys/dev/mn/if_mn.c head/sys/dev/msk/if_msk.c head/sys/dev/mwl/if_mwl.c head/sys/dev/mxge/if_mxge.c head/sys/dev/my/if_my.c head/sys/dev/nfe/if_nfe.c head/sys/dev/nge/if_nge.c head/sys/dev/nve/if_nve.c head/sys/dev/nxge/if_nxge.c head/sys/dev/oce/oce_if.c head/sys/dev/patm/if_patm_intr.c head/sys/dev/patm/if_patm_rx.c head/sys/dev/patm/if_patm_tx.c head/sys/dev/pcn/if_pcn.c head/sys/dev/pdq/pdq_freebsd.h head/sys/dev/pdq/pdq_ifsubr.c head/sys/dev/pdq/pdqvar.h head/sys/dev/qlxgb/qla_os.c head/sys/dev/ral/rt2560.c head/sys/dev/ral/rt2661.c head/sys/dev/ral/rt2860.c head/sys/dev/re/if_re.c head/sys/dev/rt/if_rt.c head/sys/dev/safe/safe.c head/sys/dev/sbni/if_sbni.c head/sys/dev/sf/if_sf.c head/sys/dev/sfxge/sfxge_dma.c head/sys/dev/sfxge/sfxge_tx.c head/sys/dev/sge/if_sge.c head/sys/dev/sis/if_sis.c head/sys/dev/sk/if_sk.c head/sys/dev/smc/if_smc.c head/sys/dev/sn/if_sn.c head/sys/dev/snc/dp83932.c head/sys/dev/ste/if_ste.c head/sys/dev/stge/if_stge.c head/sys/dev/ti/if_ti.c head/sys/dev/tl/if_tl.c head/sys/dev/tsec/if_tsec.c head/sys/dev/tx/if_tx.c head/sys/dev/txp/if_txp.c head/sys/dev/ubsec/ubsec.c head/sys/dev/usb/misc/udbp.c head/sys/dev/usb/net/if_axe.c head/sys/dev/usb/net/if_cdce.c head/sys/dev/usb/net/if_usie.c head/sys/dev/usb/net/uhso.c head/sys/dev/usb/net/usb_ethernet.c head/sys/dev/usb/wlan/if_rum.c head/sys/dev/usb/wlan/if_run.c head/sys/dev/usb/wlan/if_uath.c head/sys/dev/usb/wlan/if_upgt.c head/sys/dev/usb/wlan/if_ural.c head/sys/dev/usb/wlan/if_urtw.c head/sys/dev/usb/wlan/if_zyd.c head/sys/dev/vge/if_vge.c head/sys/dev/virtio/network/if_vtnet.c head/sys/dev/vr/if_vr.c head/sys/dev/vte/if_vte.c head/sys/dev/vx/if_vx.c head/sys/dev/vxge/vxge.c head/sys/dev/wb/if_wb.c head/sys/dev/wi/if_wi.c head/sys/dev/wl/if_wl.c head/sys/dev/wpi/if_wpi.c head/sys/dev/wtap/if_wtap.c head/sys/dev/wtap/plugins/visibility.c head/sys/dev/xe/if_xe.c head/sys/dev/xen/netfront/netfront.c head/sys/dev/xl/if_xl.c Modified: head/sys/dev/age/if_age.c ============================================================================== --- head/sys/dev/age/if_age.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/age/if_age.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1521,7 +1521,7 @@ age_encap(struct age_softc *sc, struct m if (M_WRITABLE(m) == 0) { /* Get a writable copy. */ - m = m_dup(*m_head, M_DONTWAIT); + m = m_dup(*m_head, M_NOWAIT); /* Release original mbufs. */ m_freem(*m_head); if (m == NULL) { @@ -1599,7 +1599,7 @@ age_encap(struct age_softc *sc, struct m error = bus_dmamap_load_mbuf_sg(sc->age_cdata.age_tx_tag, map, *m_head, txsegs, &nsegs, 0); if (error == EFBIG) { - m = m_collapse(*m_head, M_DONTWAIT, AGE_MAXTXSEGS); + m = m_collapse(*m_head, M_NOWAIT, AGE_MAXTXSEGS); if (m == NULL) { m_freem(*m_head); *m_head = NULL; @@ -3061,7 +3061,7 @@ age_newbuf(struct age_softc *sc, struct AGE_LOCK_ASSERT(sc); - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES; Modified: head/sys/dev/alc/if_alc.c ============================================================================== --- head/sys/dev/alc/if_alc.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/alc/if_alc.c Tue Dec 4 09:32:43 2012 (r243857) @@ -2047,7 +2047,7 @@ alc_encap(struct alc_softc *sc, struct m if (M_WRITABLE(m) == 0) { /* Get a writable copy. */ - m = m_dup(*m_head, M_DONTWAIT); + m = m_dup(*m_head, M_NOWAIT); /* Release original mbufs. */ m_freem(*m_head); if (m == NULL) { @@ -2125,7 +2125,7 @@ alc_encap(struct alc_softc *sc, struct m error = bus_dmamap_load_mbuf_sg(sc->alc_cdata.alc_tx_tag, map, *m_head, txsegs, &nsegs, 0); if (error == EFBIG) { - m = m_collapse(*m_head, M_DONTWAIT, ALC_MAXTXSEGS); + m = m_collapse(*m_head, M_NOWAIT, ALC_MAXTXSEGS); if (m == NULL) { m_freem(*m_head); *m_head = NULL; @@ -2803,7 +2803,7 @@ alc_newbuf(struct alc_softc *sc, struct bus_dmamap_t map; int nsegs; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = RX_BUF_SIZE_MAX; @@ -2923,7 +2923,7 @@ alc_fixup_rx(struct ifnet *ifp, struct m * header from the mbuf chain. This can save lots of CPU * cycles for jumbo frame. */ - MGETHDR(n, M_DONTWAIT, MT_DATA); + MGETHDR(n, M_NOWAIT, MT_DATA); if (n == NULL) { ifp->if_iqdrops++; m_freem(m); Modified: head/sys/dev/ale/if_ale.c ============================================================================== --- head/sys/dev/ale/if_ale.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ale/if_ale.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1640,7 +1640,7 @@ ale_encap(struct ale_softc *sc, struct m if (M_WRITABLE(m) == 0) { /* Get a writable copy. */ - m = m_dup(*m_head, M_DONTWAIT); + m = m_dup(*m_head, M_NOWAIT); /* Release original mbufs. */ m_freem(*m_head); if (m == NULL) { @@ -1657,7 +1657,7 @@ ale_encap(struct ale_softc *sc, struct m if ((sc->ale_flags & ALE_FLAG_TXCSUM_BUG) != 0 && (m->m_pkthdr.csum_flags & ALE_CSUM_FEATURES) != 0 && (mtod(m, intptr_t) & 3) != 0) { - m = m_defrag(*m_head, M_DONTWAIT); + m = m_defrag(*m_head, M_NOWAIT); if (m == NULL) { *m_head = NULL; return (ENOBUFS); @@ -1742,7 +1742,7 @@ ale_encap(struct ale_softc *sc, struct m error = bus_dmamap_load_mbuf_sg(sc->ale_cdata.ale_tx_tag, map, *m_head, txsegs, &nsegs, 0); if (error == EFBIG) { - m = m_collapse(*m_head, M_DONTWAIT, ALE_MAXTXSEGS); + m = m_collapse(*m_head, M_NOWAIT, ALE_MAXTXSEGS); if (m == NULL) { m_freem(*m_head); *m_head = NULL; Modified: head/sys/dev/an/if_an.c ============================================================================== --- head/sys/dev/an/if_an.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/an/if_an.c Tue Dec 4 09:32:43 2012 (r243857) @@ -946,12 +946,12 @@ an_rxeof(struct an_softc *sc) /* dump raw 802.11 packet to bpf and skip ip stack */ BPF_TAP(ifp, bpf_buf, len); } else { - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) { ifp->if_ierrors++; return; } - MCLGET(m, M_DONTWAIT); + MCLGET(m, M_NOWAIT); if (!(m->m_flags & M_EXT)) { m_freem(m); ifp->if_ierrors++; @@ -1037,12 +1037,12 @@ an_rxeof(struct an_softc *sc) if (an_rx_desc.an_done && !an_rx_desc.an_valid) { buf = sc->an_rx_buffer[count].an_dma_vaddr; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) { ifp->if_ierrors++; return; } - MCLGET(m, M_DONTWAIT); + MCLGET(m, M_NOWAIT); if (!(m->m_flags & M_EXT)) { m_freem(m); ifp->if_ierrors++; Modified: head/sys/dev/ath/if_ath_rx.c ============================================================================== --- head/sys/dev/ath/if_ath_rx.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ath/if_ath_rx.c Tue Dec 4 09:32:43 2012 (r243857) @@ -232,7 +232,7 @@ ath_legacy_rxbuf_init(struct ath_softc * * multiple of the cache line size. Not doing this * causes weird stuff to happen (for the 5210 at least). */ - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) { DPRINTF(sc, ATH_DEBUG_ANY, "%s: no mbuf/cluster\n", __func__); Modified: head/sys/dev/ath/if_ath_rx_edma.c ============================================================================== --- head/sys/dev/ath/if_ath_rx_edma.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ath/if_ath_rx_edma.c Tue Dec 4 09:32:43 2012 (r243857) @@ -518,7 +518,7 @@ ath_edma_rxbuf_init(struct ath_softc *sc ATH_RX_LOCK_ASSERT(sc); - m = m_getm(NULL, sc->sc_edma_bufsize, M_DONTWAIT, MT_DATA); + m = m_getm(NULL, sc->sc_edma_bufsize, M_NOWAIT, MT_DATA); if (! m) return (ENOBUFS); /* XXX ?*/ Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ath/if_ath_tx.c Tue Dec 4 09:32:43 2012 (r243857) @@ -325,7 +325,7 @@ ath_tx_dmasetup(struct ath_softc *sc, st */ if (bf->bf_nseg > ATH_TXDESC) { /* too many desc's, linearize */ sc->sc_stats.ast_tx_linear++; - m = m_collapse(m0, M_DONTWAIT, ATH_TXDESC); + m = m_collapse(m0, M_NOWAIT, ATH_TXDESC); if (m == NULL) { ath_freetx(m0); sc->sc_stats.ast_tx_nombuf++; Modified: head/sys/dev/bce/if_bce.c ============================================================================== --- head/sys/dev/bce/if_bce.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/bce/if_bce.c Tue Dec 4 09:32:43 2012 (r243857) @@ -5437,9 +5437,9 @@ bce_get_rx_buf(struct bce_softc *sc, str /* This is a new mbuf allocation. */ if (bce_hdr_split == TRUE) - MGETHDR(m_new, M_DONTWAIT, MT_DATA); + MGETHDR(m_new, M_NOWAIT, MT_DATA); else - m_new = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, + m_new = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, sc->rx_bd_mbuf_alloc_size); if (m_new == NULL) { @@ -5559,7 +5559,7 @@ bce_get_pg_buf(struct bce_softc *sc, str goto bce_get_pg_buf_exit); /* This is a new mbuf allocation. */ - m_new = m_getcl(M_DONTWAIT, MT_DATA, 0); + m_new = m_getcl(M_NOWAIT, MT_DATA, 0); if (m_new == NULL) { sc->mbuf_alloc_failed_count++; rc = ENOBUFS; @@ -7320,7 +7320,7 @@ bce_tso_setup(struct bce_softc *sc, stru /* Controller may modify mbuf chains. */ if (M_WRITABLE(*m_head) == 0) { - m = m_dup(*m_head, M_DONTWAIT); + m = m_dup(*m_head, M_NOWAIT); m_freem(*m_head); if (m == NULL) { sc->mbuf_alloc_failed_count++; @@ -7486,7 +7486,7 @@ bce_tx_encap(struct bce_softc *sc, struc sc->mbuf_frag_count++; /* Try to defrag the mbuf. */ - m0 = m_collapse(*m_head, M_DONTWAIT, BCE_MAX_SEGMENTS); + m0 = m_collapse(*m_head, M_NOWAIT, BCE_MAX_SEGMENTS); if (m0 == NULL) { /* Defrag was unsuccessful */ m_freem(*m_head); Modified: head/sys/dev/bfe/if_bfe.c ============================================================================== --- head/sys/dev/bfe/if_bfe.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/bfe/if_bfe.c Tue Dec 4 09:32:43 2012 (r243857) @@ -791,7 +791,7 @@ bfe_list_newbuf(struct bfe_softc *sc, in u_int32_t ctrl; int nsegs; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); m->m_len = m->m_pkthdr.len = MCLBYTES; if (bus_dmamap_load_mbuf_sg(sc->bfe_rxmbuf_tag, sc->bfe_rx_sparemap, @@ -1519,7 +1519,7 @@ bfe_encap(struct bfe_softc *sc, struct m error = bus_dmamap_load_mbuf_sg(sc->bfe_txmbuf_tag, r->bfe_map, *m_head, txsegs, &nsegs, 0); if (error == EFBIG) { - m = m_collapse(*m_head, M_DONTWAIT, BFE_MAXTXSEGS); + m = m_collapse(*m_head, M_NOWAIT, BFE_MAXTXSEGS); if (m == NULL) { m_freem(*m_head); *m_head = NULL; Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/bge/if_bge.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1312,12 +1312,12 @@ bge_newbuf_std(struct bge_softc *sc, int if (sc->bge_flags & BGE_FLAG_JUMBO_STD && (sc->bge_ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN > (MCLBYTES - ETHER_ALIGN))) { - m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, MJUM9BYTES); + m = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, MJUM9BYTES); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = MJUM9BYTES; } else { - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES; @@ -1368,11 +1368,11 @@ bge_newbuf_jumbo(struct bge_softc *sc, i struct mbuf *m; int error, nsegs; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return (ENOBUFS); - m_cljget(m, M_DONTWAIT, MJUM9BYTES); + m_cljget(m, M_NOWAIT, MJUM9BYTES); if (!(m->m_flags & M_EXT)) { m_freem(m); return (ENOBUFS); @@ -4946,7 +4946,7 @@ bge_cksum_pad(struct mbuf *m) /* Allocate new empty mbuf, pad it. Compact later. */ struct mbuf *n; - MGET(n, M_DONTWAIT, MT_DATA); + MGET(n, M_NOWAIT, MT_DATA); if (n == NULL) return (ENOBUFS); n->m_len = 0; @@ -4988,7 +4988,7 @@ bge_check_short_dma(struct mbuf *m) } if (found > 1) { - n = m_defrag(m, M_DONTWAIT); + n = m_defrag(m, M_NOWAIT); if (n == NULL) m_freem(m); } else @@ -5008,7 +5008,7 @@ bge_setup_tso(struct bge_softc *sc, stru if (M_WRITABLE(m) == 0) { /* Get a writable copy. */ - n = m_dup(m, M_DONTWAIT); + n = m_dup(m, M_NOWAIT); m_freem(m); if (n == NULL) return (NULL); @@ -5125,9 +5125,9 @@ bge_encap(struct bge_softc *sc, struct m * DMA read operation. */ if (sc->bge_forced_collapse == 1) - m = m_defrag(m, M_DONTWAIT); + m = m_defrag(m, M_NOWAIT); else - m = m_collapse(m, M_DONTWAIT, + m = m_collapse(m, M_NOWAIT, sc->bge_forced_collapse); if (m == NULL) m = *m_head; @@ -5139,7 +5139,7 @@ bge_encap(struct bge_softc *sc, struct m error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_tx_mtag, map, m, segs, &nsegs, BUS_DMA_NOWAIT); if (error == EFBIG) { - m = m_collapse(m, M_DONTWAIT, BGE_NSEG_NEW); + m = m_collapse(m, M_NOWAIT, BGE_NSEG_NEW); if (m == NULL) { m_freem(*m_head); *m_head = NULL; Modified: head/sys/dev/bm/if_bm.c ============================================================================== --- head/sys/dev/bm/if_bm.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/bm/if_bm.c Tue Dec 4 09:32:43 2012 (r243857) @@ -539,7 +539,7 @@ bm_dummypacket(struct bm_softc *sc) ifp = sc->sc_ifp; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return; @@ -793,7 +793,7 @@ bm_encap(struct bm_softc *sc, struct mbu *m_head, segs, &nsegs, BUS_DMA_NOWAIT); if (error == EFBIG) { - m = m_collapse(*m_head, M_DONTWAIT, nsegs); + m = m_collapse(*m_head, M_NOWAIT, nsegs); if (m == NULL) { m_freem(*m_head); *m_head = NULL; @@ -1238,7 +1238,7 @@ bm_add_rxbuf(struct bm_softc *sc, int id bus_dma_segment_t segs[1]; int error, nsegs; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = m->m_ext.ext_size; Modified: head/sys/dev/bwi/if_bwi.c ============================================================================== --- head/sys/dev/bwi/if_bwi.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/bwi/if_bwi.c Tue Dec 4 09:32:43 2012 (r243857) @@ -2534,7 +2534,7 @@ bwi_newbuf(struct bwi_softc *sc, int buf KASSERT(buf_idx < BWI_RX_NDESC, ("buf_idx %d", buf_idx)); - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) { error = ENOBUFS; @@ -3015,7 +3015,7 @@ bwi_encap(struct bwi_softc *sc, int idx, /* * Setup the embedded TX header */ - M_PREPEND(m, sizeof(*hdr), M_DONTWAIT); + M_PREPEND(m, sizeof(*hdr), M_NOWAIT); if (m == NULL) { if_printf(ifp, "%s: prepend TX header failed\n", __func__); return ENOBUFS; @@ -3074,7 +3074,7 @@ bwi_encap(struct bwi_softc *sc, int idx, if (error) { /* error == EFBIG */ struct mbuf *m_new; - m_new = m_defrag(m, M_DONTWAIT); + m_new = m_defrag(m, M_NOWAIT); if (m_new == NULL) { if_printf(ifp, "%s: can't defrag TX buffer\n", __func__); @@ -3195,7 +3195,7 @@ bwi_encap_raw(struct bwi_softc *sc, int /* * Setup the embedded TX header */ - M_PREPEND(m, sizeof(*hdr), M_DONTWAIT); + M_PREPEND(m, sizeof(*hdr), M_NOWAIT); if (m == NULL) { if_printf(ifp, "%s: prepend TX header failed\n", __func__); return ENOBUFS; @@ -3249,7 +3249,7 @@ bwi_encap_raw(struct bwi_softc *sc, int __func__, error); goto back; } - m_new = m_defrag(m, M_DONTWAIT); + m_new = m_defrag(m, M_NOWAIT); if (m_new == NULL) { if_printf(ifp, "%s: can't defrag TX buffer\n", __func__); Modified: head/sys/dev/bwn/if_bwn.c ============================================================================== --- head/sys/dev/bwn/if_bwn.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/bwn/if_bwn.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1428,7 +1428,7 @@ bwn_pio_tx_start(struct bwn_mac *mac, st /* * XXX please removes m_defrag(9) */ - m_new = m_defrag(m, M_DONTWAIT); + m_new = m_defrag(m, M_NOWAIT); if (m_new == NULL) { device_printf(sc->sc_dev, "%s: can't defrag TX buffer\n", @@ -1544,7 +1544,7 @@ bwn_dma_tx_start(struct bwn_mac *mac, st if (error) { /* error == EFBIG */ struct mbuf *m_new; - m_new = m_defrag(m, M_DONTWAIT); + m_new = m_defrag(m, M_NOWAIT); if (m_new == NULL) { if_printf(ifp, "%s: can't defrag TX buffer\n", __func__); @@ -9124,7 +9124,7 @@ ready: padding = (macstat & BWN_RX_MAC_PADDING) ? 2 : 0; totlen = len + padding; KASSERT(totlen <= MCLBYTES, ("too big..\n")); - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) { device_printf(sc->sc_dev, "%s: out of memory", __func__); goto error; @@ -9183,7 +9183,7 @@ bwn_dma_newbuf(struct bwn_dma_ring *dr, struct mbuf *m; int error; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) { error = ENOBUFS; Modified: head/sys/dev/bxe/if_bxe.c ============================================================================== --- head/sys/dev/bxe/if_bxe.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/bxe/if_bxe.c Tue Dec 4 09:32:43 2012 (r243857) @@ -3757,7 +3757,7 @@ bxe_alloc_buf_rings(struct bxe_softc *sc if (fp != NULL) { fp->br = buf_ring_alloc(BXE_BR_SIZE, - M_DEVBUF, M_DONTWAIT, &fp->mtx); + M_DEVBUF, M_NOWAIT, &fp->mtx); if (fp->br == NULL) { rc = ENOMEM; goto bxe_alloc_buf_rings_exit; @@ -8960,7 +8960,7 @@ bxe_tx_encap(struct bxe_fastpath *fp, st } else if (error == EFBIG) { /* Possibly recoverable with defragmentation. */ fp->mbuf_defrag_attempts++; - m0 = m_defrag(*m_head, M_DONTWAIT); + m0 = m_defrag(*m_head, M_NOWAIT); if (m0 == NULL) { fp->mbuf_defrag_failures++; rc = ENOBUFS; @@ -10467,7 +10467,7 @@ bxe_alloc_tpa_mbuf(struct bxe_fastpath * #endif /* Allocate the new TPA mbuf. */ - m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, sc->mbuf_alloc_size); + m = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, sc->mbuf_alloc_size); if (__predict_false(m == NULL)) { fp->mbuf_tpa_alloc_failed++; rc = ENOBUFS; @@ -10661,7 +10661,7 @@ bxe_alloc_rx_sge_mbuf(struct bxe_fastpat #endif /* Allocate a new SGE mbuf. */ - m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, SGE_PAGE_SIZE); + m = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, SGE_PAGE_SIZE); if (__predict_false(m == NULL)) { fp->mbuf_sge_alloc_failed++; rc = ENOMEM; @@ -10851,7 +10851,7 @@ bxe_alloc_rx_bd_mbuf(struct bxe_fastpath #endif /* Allocate the new RX BD mbuf. */ - m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, sc->mbuf_alloc_size); + m = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, sc->mbuf_alloc_size); if (__predict_false(m == NULL)) { fp->mbuf_rx_bd_alloc_failed++; rc = ENOBUFS; Modified: head/sys/dev/cas/if_cas.c ============================================================================== --- head/sys/dev/cas/if_cas.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cas/if_cas.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1192,7 +1192,7 @@ cas_load_txmbuf(struct cas_softc *sc, st cflags = 0; if (((*m_head)->m_pkthdr.csum_flags & CAS_CSUM_FEATURES) != 0) { if (M_WRITABLE(*m_head) == 0) { - m = m_dup(*m_head, M_DONTWAIT); + m = m_dup(*m_head, M_NOWAIT); m_freem(*m_head); *m_head = m; if (m == NULL) @@ -1215,7 +1215,7 @@ cas_load_txmbuf(struct cas_softc *sc, st error = bus_dmamap_load_mbuf_sg(sc->sc_tdmatag, txs->txs_dmamap, *m_head, txsegs, &nsegs, BUS_DMA_NOWAIT); if (error == EFBIG) { - m = m_collapse(*m_head, M_DONTWAIT, CAS_NTXSEGS); + m = m_collapse(*m_head, M_NOWAIT, CAS_NTXSEGS); if (m == NULL) { m_freem(*m_head); *m_head = NULL; @@ -1714,7 +1714,7 @@ cas_rint(struct cas_softc *sc) __func__, idx, off, len); #endif rxds = &sc->sc_rxdsoft[idx]; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m != NULL) { refcount_acquire(&rxds->rxds_refcount); bus_dmamap_sync(sc->sc_rdmatag, @@ -1759,7 +1759,7 @@ cas_rint(struct cas_softc *sc) __func__, idx, off, len); #endif rxds = &sc->sc_rxdsoft[idx]; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m != NULL) { refcount_acquire(&rxds->rxds_refcount); off += ETHER_ALIGN; @@ -1796,7 +1796,7 @@ cas_rint(struct cas_softc *sc) #endif rxds2 = &sc->sc_rxdsoft[idx2]; if (m != NULL) { - MGET(m2, M_DONTWAIT, MT_DATA); + MGET(m2, M_NOWAIT, MT_DATA); if (m2 != NULL) { refcount_acquire( &rxds2->rxds_refcount); Modified: head/sys/dev/ce/if_ce.c ============================================================================== --- head/sys/dev/ce/if_ce.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ce/if_ce.c Tue Dec 4 09:32:43 2012 (r243857) @@ -319,10 +319,10 @@ static struct mbuf *makembuf (void *buf, { struct mbuf *m; - MGETHDR (m, M_DONTWAIT, MT_DATA); + MGETHDR (m, M_NOWAIT, MT_DATA); if (! m) return 0; - MCLGET (m, M_DONTWAIT); + MCLGET (m, M_NOWAIT); if (! (m->m_flags & M_EXT)) { m_freem (m); return 0; Modified: head/sys/dev/cm/smc90cx6.c ============================================================================== --- head/sys/dev/cm/smc90cx6.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cm/smc90cx6.c Tue Dec 4 09:32:43 2012 (r243857) @@ -502,7 +502,7 @@ cm_srint_locked(vsc) buffer = sc->sc_rx_act ^ 1; /* Allocate header mbuf */ - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == 0) { /* @@ -539,7 +539,7 @@ cm_srint_locked(vsc) */ if ((len + 2 + 2) > MHLEN) { /* attach an mbuf cluster */ - MCLGET(m, M_DONTWAIT); + MCLGET(m, M_NOWAIT); /* Insist on getting a cluster */ if ((m->m_flags & M_EXT) == 0) { Modified: head/sys/dev/cp/if_cp.c ============================================================================== --- head/sys/dev/cp/if_cp.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cp/if_cp.c Tue Dec 4 09:32:43 2012 (r243857) @@ -203,10 +203,10 @@ static struct mbuf *makembuf (void *buf, { struct mbuf *m; - MGETHDR (m, M_DONTWAIT, MT_DATA); + MGETHDR (m, M_NOWAIT, MT_DATA); if (! m) return 0; - MCLGET (m, M_DONTWAIT); + MCLGET (m, M_NOWAIT); if (! (m->m_flags & M_EXT)) { m_freem (m); return 0; Modified: head/sys/dev/cs/if_cs.c ============================================================================== --- head/sys/dev/cs/if_cs.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cs/if_cs.c Tue Dec 4 09:32:43 2012 (r243857) @@ -726,12 +726,12 @@ cs_get_packet(struct cs_softc *sc) return (-1); } - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m==NULL) return (-1); if (length > MHLEN) { - MCLGET(m, M_DONTWAIT); + MCLGET(m, M_NOWAIT); if (!(m->m_flags & M_EXT)) { m_freem(m); return (-1); Modified: head/sys/dev/ctau/if_ct.c ============================================================================== --- head/sys/dev/ctau/if_ct.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ctau/if_ct.c Tue Dec 4 09:32:43 2012 (r243857) @@ -205,10 +205,10 @@ static struct mbuf *makembuf (void *buf, { struct mbuf *m; - MGETHDR (m, M_DONTWAIT, MT_DATA); + MGETHDR (m, M_NOWAIT, MT_DATA); if (! m) return 0; - MCLGET (m, M_DONTWAIT); + MCLGET (m, M_NOWAIT); if (! (m->m_flags & M_EXT)) { m_freem (m); return 0; Modified: head/sys/dev/cx/if_cx.c ============================================================================== --- head/sys/dev/cx/if_cx.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cx/if_cx.c Tue Dec 4 09:32:43 2012 (r243857) @@ -252,13 +252,13 @@ static struct mbuf *makembuf (void *buf, { struct mbuf *m, *o, *p; - MGETHDR (m, M_DONTWAIT, MT_DATA); + MGETHDR (m, M_NOWAIT, MT_DATA); if (! m) return 0; if (len >= MINCLSIZE) - MCLGET (m, M_DONTWAIT); + MCLGET (m, M_NOWAIT); m->m_pkthdr.len = len; m->m_len = 0; @@ -271,13 +271,13 @@ static struct mbuf *makembuf (void *buf, if (! n) { /* Allocate new mbuf. */ o = p; - MGET (p, M_DONTWAIT, MT_DATA); + MGET (p, M_NOWAIT, MT_DATA); if (! p) { m_freem (m); return 0; } if (len >= MINCLSIZE) - MCLGET (p, M_DONTWAIT); + MCLGET (p, M_NOWAIT); p->m_len = 0; o->m_next = p; Modified: head/sys/dev/cxgb/cxgb_main.c ============================================================================== --- head/sys/dev/cxgb/cxgb_main.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cxgb/cxgb_main.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1442,7 +1442,7 @@ send_pktsched_cmd(struct adapter *adap, struct mbuf *m; struct mngt_pktsched_wr *req; - m = m_gethdr(M_DONTWAIT, MT_DATA); + m = m_gethdr(M_NOWAIT, MT_DATA); if (m) { req = mtod(m, struct mngt_pktsched_wr *); req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_MNGT)); Modified: head/sys/dev/cxgb/cxgb_sge.c ============================================================================== --- head/sys/dev/cxgb/cxgb_sge.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cxgb/cxgb_sge.c Tue Dec 4 09:32:43 2012 (r243857) @@ -2710,7 +2710,7 @@ get_packet(adapter_t *adap, unsigned int if (recycle_enable && len <= SGE_RX_COPY_THRES && sopeop == RSPQ_SOP_EOP) { - if ((m = m_gethdr(M_DONTWAIT, MT_DATA)) == NULL) + if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) goto skip_recycle; cl = mtod(m, void *); memcpy(cl, sd->rxsd_cl, len); @@ -2866,10 +2866,10 @@ process_responses(adapter_t *adap, struc printf("async notification\n"); if (mh->mh_head == NULL) { - mh->mh_head = m_gethdr(M_DONTWAIT, MT_DATA); + mh->mh_head = m_gethdr(M_NOWAIT, MT_DATA); m = mh->mh_head; } else { - m = m_gethdr(M_DONTWAIT, MT_DATA); + m = m_gethdr(M_NOWAIT, MT_DATA); } if (m == NULL) goto no_mem; @@ -2882,7 +2882,7 @@ process_responses(adapter_t *adap, struc rspq->async_notif++; goto skip; } else if (flags & F_RSPD_IMM_DATA_VALID) { - struct mbuf *m = m_gethdr(M_DONTWAIT, MT_DATA); + struct mbuf *m = m_gethdr(M_NOWAIT, MT_DATA); if (m == NULL) { no_mem: Modified: head/sys/dev/cxgb/sys/uipc_mvec.c ============================================================================== --- head/sys/dev/cxgb/sys/uipc_mvec.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cxgb/sys/uipc_mvec.c Tue Dec 4 09:32:43 2012 (r243857) @@ -98,7 +98,7 @@ retry: printf("mbuf chain too long: %d max allowed %d\n", seg_count, TX_MAX_SEGS); if (!defragged) { - n = m_defrag(*m, M_DONTWAIT); + n = m_defrag(*m, M_NOWAIT); if (n == NULL) { err = ENOBUFS; goto err_out; Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cxgbe/t4_sge.c Tue Dec 4 09:32:43 2012 (r243857) @@ -2761,7 +2761,7 @@ start: sgl->nsegs = 0; rc = bus_dmamap_load_mbuf_sg(txq->tx_tag, txm->map, m, sgl->seg, &sgl->nsegs, BUS_DMA_NOWAIT); if (rc == EFBIG && defragged == 0) { - m = m_defrag(m, M_DONTWAIT); + m = m_defrag(m, M_NOWAIT); if (m == NULL) return (EFBIG); Modified: head/sys/dev/cxgbe/tom/t4_ddp.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_ddp.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cxgbe/tom/t4_ddp.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1207,7 +1207,7 @@ deliver: KASSERT(sb->sb_mb != NULL, ("%s: len > 0 && sb->sb_mb empty", __func__)); - m = m_copym(sb->sb_mb, 0, len, M_DONTWAIT); + m = m_copym(sb->sb_mb, 0, len, M_NOWAIT); if (m == NULL) len = 0; /* Don't flush data from sockbuf. */ else Modified: head/sys/dev/cxgbe/tom/t4_listen.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_listen.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/cxgbe/tom/t4_listen.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1164,7 +1164,7 @@ do_pass_accept_req(struct sge_iq *iq, co * or may not be stashed in the original SYN mbuf passed to us. * Just copy it over instead of dealing with all possibilities. */ - m = m_dup(synqe->syn, M_DONTWAIT); + m = m_dup(synqe->syn, M_NOWAIT); if (m) m->m_pkthdr.rcvif = ifp; Modified: head/sys/dev/dc/if_dc.c ============================================================================== --- head/sys/dev/dc/if_dc.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/dc/if_dc.c Tue Dec 4 09:32:43 2012 (r243857) @@ -2650,7 +2650,7 @@ dc_newbuf(struct dc_softc *sc, int i) bus_dma_segment_t segs[1]; int error, nseg; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES; @@ -3387,7 +3387,7 @@ dc_encap(struct dc_softc *sc, struct mbu defragged = 0; if (sc->dc_flags & DC_TX_COALESCE && ((*m_head)->m_next != NULL || sc->dc_flags & DC_TX_ALIGN)) { - m = m_defrag(*m_head, M_DONTWAIT); + m = m_defrag(*m_head, M_NOWAIT); defragged = 1; } else { /* @@ -3402,7 +3402,7 @@ dc_encap(struct dc_softc *sc, struct mbu if (i > DC_TX_LIST_CNT / 4 || DC_TX_LIST_CNT - i + sc->dc_cdata.dc_tx_cnt <= DC_TX_LIST_RSVD) { - m = m_collapse(*m_head, M_DONTWAIT, DC_MAXFRAGS); + m = m_collapse(*m_head, M_NOWAIT, DC_MAXFRAGS); defragged = 1; } } @@ -3419,7 +3419,7 @@ dc_encap(struct dc_softc *sc, struct mbu error = bus_dmamap_load_mbuf_sg(sc->dc_tx_mtag, sc->dc_cdata.dc_tx_map[idx], *m_head, segs, &nseg, 0); if (error == EFBIG) { - if (defragged != 0 || (m = m_collapse(*m_head, M_DONTWAIT, + if (defragged != 0 || (m = m_collapse(*m_head, M_NOWAIT, DC_MAXFRAGS)) == NULL) { m_freem(*m_head); *m_head = NULL; Modified: head/sys/dev/de/if_de.c ============================================================================== --- head/sys/dev/de/if_de.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/de/if_de.c Tue Dec 4 09:32:43 2012 (r243857) @@ -257,7 +257,7 @@ tulip_txprobe(tulip_softc_t * const sc) * to verify the connectivity. */ TULIP_LOCK_ASSERT(sc); - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return 0; /* @@ -3517,7 +3517,7 @@ tulip_rx_intr(tulip_softc_t * const sc) ms->m_pkthdr.len = total_len; ms->m_pkthdr.rcvif = ifp; m0 = ms; - ms = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + ms = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); #endif TULIP_UNLOCK(sc); CTR1(KTR_TULIP, "tulip_rx_intr: passing %p to upper layer", m0); @@ -3528,7 +3528,7 @@ tulip_rx_intr(tulip_softc_t * const sc) * If we are priming the TULIP with mbufs, then allocate * a new cluster for the next descriptor. */ - ms = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + ms = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); #ifndef __NO_STRICT_ALIGNMENT skip_input: @@ -3970,7 +3970,7 @@ tulip_txput(tulip_softc_t * const sc, st * to recopy it into one mbuf and then try again. If * we can't recopy it, try again later. */ - m0 = m_defrag(m, M_DONTWAIT); + m0 = m_defrag(m, M_NOWAIT); if (m0 == NULL) { sc->tulip_flags |= TULIP_WANTTXSTART; #if defined(TULIP_DEBUG) Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/e1000/if_em.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1831,7 +1831,7 @@ retry: if (do_tso || (m_head->m_next != NULL && m_head->m_pkthdr.csum_flags & CSUM_OFFLOAD)) { if (M_WRITABLE(*m_headp) == 0) { - m_head = m_dup(*m_headp, M_DONTWAIT); + m_head = m_dup(*m_headp, M_NOWAIT); m_freem(*m_headp); if (m_head == NULL) { *m_headp = NULL; @@ -1948,7 +1948,7 @@ retry: if (error == EFBIG && remap) { struct mbuf *m; - m = m_defrag(*m_headp, M_DONTWAIT); + m = m_defrag(*m_headp, M_NOWAIT); if (m == NULL) { adapter->mbuf_alloc_failed++; m_freem(*m_headp); @@ -3930,7 +3930,7 @@ em_refresh_mbufs(struct rx_ring *rxr, in while (j != limit) { rxbuf = &rxr->rx_buffers[i]; if (rxbuf->m_head == NULL) { - m = m_getjcl(M_DONTWAIT, MT_DATA, + m = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); /* ** If we have a temporary resource shortage @@ -4100,7 +4100,7 @@ em_setup_receive_ring(struct rx_ring *rx continue; } #endif /* DEV_NETMAP */ - rxbuf->m_head = m_getjcl(M_DONTWAIT, MT_DATA, + rxbuf->m_head = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); if (rxbuf->m_head == NULL) { error = ENOBUFS; @@ -4579,7 +4579,7 @@ em_fixup_rx(struct rx_ring *rxr) bcopy(m->m_data, m->m_data + ETHER_HDR_LEN, m->m_len); m->m_data += ETHER_HDR_LEN; } else { - MGETHDR(n, M_DONTWAIT, MT_DATA); + MGETHDR(n, M_NOWAIT, MT_DATA); if (n != NULL) { bcopy(m->m_data, n->m_data, ETHER_HDR_LEN); m->m_data += ETHER_HDR_LEN; Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/e1000/if_igb.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1830,7 +1830,7 @@ retry: if (do_tso || (m_head->m_next != NULL && m_head->m_pkthdr.csum_flags & CSUM_OFFLOAD)) { if (M_WRITABLE(*m_headp) == 0) { - m_head = m_dup(*m_headp, M_DONTWAIT); + m_head = m_dup(*m_headp, M_NOWAIT); m_freem(*m_headp); if (m_head == NULL) { *m_headp = NULL; @@ -1935,7 +1935,7 @@ retry: if (error == EFBIG && remap) { struct mbuf *m; - m = m_defrag(*m_headp, M_DONTWAIT); + m = m_defrag(*m_headp, M_NOWAIT); if (m == NULL) { adapter->mbuf_defrag_failed++; m_freem(*m_headp); @@ -3983,7 +3983,7 @@ igb_refresh_mbufs(struct rx_ring *rxr, i if (rxr->hdr_split == FALSE) goto no_split; if (rxbuf->m_head == NULL) { - mh = m_gethdr(M_DONTWAIT, MT_DATA); + mh = m_gethdr(M_NOWAIT, MT_DATA); if (mh == NULL) goto update; } else @@ -4009,7 +4009,7 @@ igb_refresh_mbufs(struct rx_ring *rxr, i htole64(hseg[0].ds_addr); no_split: if (rxbuf->m_pack == NULL) { - mp = m_getjcl(M_DONTWAIT, MT_DATA, + mp = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); if (mp == NULL) goto update; @@ -4225,7 +4225,7 @@ igb_setup_receive_ring(struct rx_ring *r goto skip_head; /* First the header */ - rxbuf->m_head = m_gethdr(M_DONTWAIT, MT_DATA); + rxbuf->m_head = m_gethdr(M_NOWAIT, MT_DATA); if (rxbuf->m_head == NULL) { error = ENOBUFS; goto fail; @@ -4247,7 +4247,7 @@ igb_setup_receive_ring(struct rx_ring *r skip_head: /* Now the payload cluster */ - rxbuf->m_pack = m_getjcl(M_DONTWAIT, MT_DATA, + rxbuf->m_pack = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); if (rxbuf->m_pack == NULL) { error = ENOBUFS; Modified: head/sys/dev/e1000/if_lem.c ============================================================================== --- head/sys/dev/e1000/if_lem.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/e1000/if_lem.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1566,7 +1566,7 @@ lem_xmit(struct adapter *adapter, struct if (error == EFBIG) { struct mbuf *m; - m = m_defrag(*m_headp, M_DONTWAIT); + m = m_defrag(*m_headp, M_NOWAIT); if (m == NULL) { adapter->mbuf_alloc_failed++; m_freem(*m_headp); @@ -3075,7 +3075,7 @@ lem_get_buf(struct adapter *adapter, int struct em_buffer *rx_buffer; int error, nsegs; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) { adapter->mbuf_cluster_failed++; return (ENOBUFS); @@ -3633,7 +3633,7 @@ lem_fixup_rx(struct adapter *adapter) bcopy(m->m_data, m->m_data + ETHER_HDR_LEN, m->m_len); m->m_data += ETHER_HDR_LEN; } else { - MGETHDR(n, M_DONTWAIT, MT_DATA); + MGETHDR(n, M_NOWAIT, MT_DATA); if (n != NULL) { bcopy(m->m_data, n->m_data, ETHER_HDR_LEN); m->m_data += ETHER_HDR_LEN; Modified: head/sys/dev/ed/if_ed.c ============================================================================== --- head/sys/dev/ed/if_ed.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ed/if_ed.c Tue Dec 4 09:32:43 2012 (r243857) @@ -1268,7 +1268,7 @@ ed_get_packet(struct ed_softc *sc, bus_s struct mbuf *m; /* Allocate a header mbuf */ - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return; m->m_pkthdr.rcvif = ifp; @@ -1282,7 +1282,7 @@ ed_get_packet(struct ed_softc *sc, bus_s */ if ((len + 2) > MHLEN) { /* Attach an mbuf cluster */ - MCLGET(m, M_DONTWAIT); + MCLGET(m, M_NOWAIT); /* Insist on getting a cluster */ if ((m->m_flags & M_EXT) == 0) { Modified: head/sys/dev/en/midway.c ============================================================================== --- head/sys/dev/en/midway.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/en/midway.c Tue Dec 4 09:32:43 2012 (r243857) @@ -837,15 +837,15 @@ copy_mbuf(struct mbuf *m) { struct mbuf *new; - MGET(new, M_WAIT, MT_DATA); + MGET(new, M_WAITOK, MT_DATA); if (m->m_flags & M_PKTHDR) { M_MOVE_PKTHDR(new, m); if (m->m_len > MHLEN) - MCLGET(new, M_WAIT); + MCLGET(new, M_WAITOK); } else { if (m->m_len > MLEN) - MCLGET(new, M_WAIT); + MCLGET(new, M_WAITOK); } bcopy(m->m_data, new->m_data, m->m_len); @@ -1925,7 +1925,7 @@ en_mget(struct en_softc *sc, u_int pktle * words at the begin. */ /* called from interrupt context */ - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return (NULL); @@ -1940,7 +1940,7 @@ en_mget(struct en_softc *sc, u_int pktle totlen -= m->m_len; /* called from interrupt context */ - tmp = m_getm(m, totlen, M_DONTWAIT, MT_DATA); + tmp = m_getm(m, totlen, M_NOWAIT, MT_DATA); if (tmp == NULL) { m_free(m); return (NULL); @@ -2924,7 +2924,7 @@ en_attach(struct en_softc *sc) &en_utopia_methods); utopia_init_media(&sc->utopia); - MGET(sc->padbuf, M_WAIT, MT_DATA); + MGET(sc->padbuf, M_WAITOK, MT_DATA); bzero(sc->padbuf->m_data, MLEN); if (bus_dma_tag_create(bus_get_dma_tag(sc->dev), 1, 0, Modified: head/sys/dev/ep/if_ep.c ============================================================================== --- head/sys/dev/ep/if_ep.c Tue Dec 4 09:02:49 2012 (r243856) +++ head/sys/dev/ep/if_ep.c Tue Dec 4 09:32:43 2012 (r243857) @@ -746,11 +746,11 @@ read_again: rx_fifo = rx_fifo2 = status & RX_BYTES_MASK; if (EP_FTST(sc, F_RX_FIRST)) { - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (!m) goto out; if (rx_fifo >= MINCLSIZE) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 09:53:10 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5B879773; Tue, 4 Dec 2012 09:53:10 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 3FC038FC0C; Tue, 4 Dec 2012 09:53:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB49rALN039492; Tue, 4 Dec 2012 09:53:10 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB49rAKC039491; Tue, 4 Dec 2012 09:53:10 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201212040953.qB49rAKC039491@svn.freebsd.org> From: Kevin Lo Date: Tue, 4 Dec 2012 09:53:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243858 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 09:53:10 -0000 Author: kevlo Date: Tue Dec 4 09:53:09 2012 New Revision: 243858 URL: http://svnweb.freebsd.org/changeset/base/243858 Log: Document that bind(2) can fail with EAFNOSUPPORT. Reviewed by: glebius Modified: head/lib/libc/sys/bind.2 Modified: head/lib/libc/sys/bind.2 ============================================================================== --- head/lib/libc/sys/bind.2 Tue Dec 4 09:32:43 2012 (r243857) +++ head/lib/libc/sys/bind.2 Tue Dec 4 09:53:09 2012 (r243858) @@ -94,6 +94,8 @@ is not a socket. The specified address is not available from the local machine. .It Bq Er EADDRINUSE The specified address is already in use. +.It Bq Er EAFNOSUPPORT +Addresses in the specified address family cannot be used with this socket. .It Bq Er EACCES The requested address is protected, and the current user has inadequate permission to access it. From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 10:22:14 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 058B6F54; Tue, 4 Dec 2012 10:22:14 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) by mx1.freebsd.org (Postfix) with ESMTP id 6AAF48FC08; Tue, 4 Dec 2012 10:22:12 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.5/8.14.5) with ESMTP id qB4AM4i9047042; Tue, 4 Dec 2012 14:22:04 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.5/8.14.5/Submit) id qB4AM4Xw047041; Tue, 4 Dec 2012 14:22:04 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 4 Dec 2012 14:22:04 +0400 From: Gleb Smirnoff To: Xin LI Subject: Re: svn commit: r243019 - head/sbin/route Message-ID: <20121204102204.GD14202@FreeBSD.org> References: <201211140805.qAE85MHU031099@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nzri8VXeXB/g5ayr" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 10:22:14 -0000 --nzri8VXeXB/g5ayr Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Xin, On Mon, Dec 03, 2012 at 11:47:32AM -0800, Xin LI wrote: X> It seems that this commit breaks the following commands like this: X> X> route add -net 10.8/16 10.2.0.1 Thanks for report. Do you agree with attached patch? -- Totus tuus, Glebius. --nzri8VXeXB/g5ayr Content-Type: text/x-diff; charset=koi8-r Content-Disposition: attachment; filename="route.c.diff" Index: route.c =================================================================== --- route.c (revision 243858) +++ route.c (working copy) @@ -1033,6 +1033,13 @@ rtm_addrs |= RTA_NETMASK; /* + * MSB of net should be meaningful. 0/0 is exception. + */ + if (net > 0) + while ((net & 0xff000000) == 0) + net <<= 8; + + /* * If no /xx was specified we must calculate the * CIDR address. */ --nzri8VXeXB/g5ayr-- From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 10:24:51 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 888FE176; Tue, 4 Dec 2012 10:24:51 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 6D1FA8FC14; Tue, 4 Dec 2012 10:24:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4AOpGb048258; Tue, 4 Dec 2012 10:24:51 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4AOpOg048257; Tue, 4 Dec 2012 10:24:51 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212041024.qB4AOpOg048257@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 4 Dec 2012 10:24:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243859 - head/sbin/route X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 10:24:51 -0000 Author: glebius Date: Tue Dec 4 10:24:50 2012 New Revision: 243859 URL: http://svnweb.freebsd.org/changeset/base/243859 Log: No need to be root when running with -t or -d. Modified: head/sbin/route/route.c Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Tue Dec 4 09:53:09 2012 (r243858) +++ head/sbin/route/route.c Tue Dec 4 10:24:50 2012 (r243859) @@ -365,7 +365,7 @@ flushroutes(int argc, char *argv[]) struct fibl *fl; int error; - if (uid != 0 && !debugonly) { + if (uid != 0 && !debugonly && !tflag) { errx(EX_NOPERM, "must be root to alter routing table"); } shutdown(s, SHUT_RD); /* Don't want to read back our messages */ @@ -727,7 +727,7 @@ newroute(int argc, char **argv) const char *dest, *gateway, *errmsg; int key, error, flags, nrflags, fibnum; - if (uid != 0) { + if (uid != 0 && !debugonly && !tflag) { errx(EX_NOPERM, "must be root to alter routing table"); } From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 11:10:02 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7F245E3C; Tue, 4 Dec 2012 11:10:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 64FF88FC14; Tue, 4 Dec 2012 11:10:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4BA2Kc060369; Tue, 4 Dec 2012 11:10:02 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4BA2oG060368; Tue, 4 Dec 2012 11:10:02 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212041110.qB4BA2oG060368@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 4 Dec 2012 11:10:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243860 - head/sbin/route X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 11:10:02 -0000 Author: glebius Date: Tue Dec 4 11:10:01 2012 New Revision: 243860 URL: http://svnweb.freebsd.org/changeset/base/243860 Log: Flush stdout after RTM_IFANNOUNCE message. PR: bin/151600 Submitted by: Eric van Gyzen Modified: head/sbin/route/route.c Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Tue Dec 4 10:24:50 2012 (r243859) +++ head/sbin/route/route.c Tue Dec 4 11:10:01 2012 (r243860) @@ -1632,6 +1632,7 @@ print_rtmsg(struct rt_msghdr *rtm, size_ break; } printf("\n"); + fflush(stdout); break; default: From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 12:39:26 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D3CB0752; Tue, 4 Dec 2012 12:39:26 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B8BB68FC08; Tue, 4 Dec 2012 12:39:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4CdQwL083957; Tue, 4 Dec 2012 12:39:26 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4CdQJp083956; Tue, 4 Dec 2012 12:39:26 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201212041239.qB4CdQJp083956@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Tue, 4 Dec 2012 12:39:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243861 - head/libexec/rtld-elf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 12:39:26 -0000 Author: pjd Date: Tue Dec 4 12:39:26 2012 New Revision: 243861 URL: http://svnweb.freebsd.org/changeset/base/243861 Log: Change /usr/libexec/ld-elf.so.1 to point at ../../libexec/ld-elf.so.1 instead of /libexec/ld-elf.so.1. Below in the Makefile we execute 'chflags noschg ${DESTDIR}/usr/libexec/ld-elf.so.1', which follows symlink and removes 'schg' flag from system's /libexec/ld-elf.so.1 instead of the one in DESTDIR. It is also more friendly to use replative paths in symlink in case of jail/chroot environments. Obtained from: WHEEL Systems MFC after: 2 weeks Modified: head/libexec/rtld-elf/Makefile Modified: head/libexec/rtld-elf/Makefile ============================================================================== --- head/libexec/rtld-elf/Makefile Tue Dec 4 11:10:01 2012 (r243860) +++ head/libexec/rtld-elf/Makefile Tue Dec 4 12:39:26 2012 (r243861) @@ -27,7 +27,7 @@ LDFLAGS+= -nostdlib -e .rtld_start WARNS?= 2 INSTALLFLAGS= -C -b PRECIOUSPROG= -BINDIR= /libexec +BINDIR= ../../libexec SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG} MLINKS= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 12:51:33 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9897FAF0; Tue, 4 Dec 2012 12:51:33 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7D8848FC18; Tue, 4 Dec 2012 12:51:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4CpXFw086959; Tue, 4 Dec 2012 12:51:33 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4CpXbf086958; Tue, 4 Dec 2012 12:51:33 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201212041251.qB4CpXbf086958@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Tue, 4 Dec 2012 12:51:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243862 - head/libexec/rtld-elf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 12:51:33 -0000 Author: pjd Date: Tue Dec 4 12:51:33 2012 New Revision: 243862 URL: http://svnweb.freebsd.org/changeset/base/243862 Log: Do not change entire BINDIR, it might be needed later, just change symlink target. MFC after: 2 weeks Modified: head/libexec/rtld-elf/Makefile Modified: head/libexec/rtld-elf/Makefile ============================================================================== --- head/libexec/rtld-elf/Makefile Tue Dec 4 12:39:26 2012 (r243861) +++ head/libexec/rtld-elf/Makefile Tue Dec 4 12:51:33 2012 (r243862) @@ -27,8 +27,8 @@ LDFLAGS+= -nostdlib -e .rtld_start WARNS?= 2 INSTALLFLAGS= -C -b PRECIOUSPROG= -BINDIR= ../../libexec -SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG} +BINDIR= /libexec +SYMLINKS= ../..${BINDIR}/${PROG} /usr/libexec/${PROG} MLINKS= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 14:07:17 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A93DD5A1; Tue, 4 Dec 2012 14:07:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 8D99E8FC13; Tue, 4 Dec 2012 14:07:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4E7Hr3005710; Tue, 4 Dec 2012 14:07:17 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4E7HJ4005709; Tue, 4 Dec 2012 14:07:17 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201212041407.qB4E7HJ4005709@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 4 Dec 2012 14:07:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243863 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 14:07:17 -0000 Author: kib Date: Tue Dec 4 14:07:17 2012 New Revision: 243863 URL: http://svnweb.freebsd.org/changeset/base/243863 Log: Fix typo. Submitted by: bjk MFC after: 3 days Modified: head/share/man/man9/taskqueue.9 Modified: head/share/man/man9/taskqueue.9 ============================================================================== --- head/share/man/man9/taskqueue.9 Tue Dec 4 12:51:33 2012 (r243862) +++ head/share/man/man9/taskqueue.9 Tue Dec 4 14:07:17 2012 (r243863) @@ -183,7 +183,7 @@ scheduling. If the .Va ticks argument is negative, the already scheduled enqueueing is not re-scheduled. -Otherwise, the task is schedules for enqueueing in the future, +Otherwise, the task is scheduled for enqueueing in the future, after the absolute value of .Va ticks is passed. From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 14:36:01 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B37C2BF6; Tue, 4 Dec 2012 14:36:01 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 976A58FC13; Tue, 4 Dec 2012 14:36:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4Ea13j010818; Tue, 4 Dec 2012 14:36:01 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4Ea12G010817; Tue, 4 Dec 2012 14:36:01 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201212041436.qB4Ea12G010817@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Tue, 4 Dec 2012 14:36:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243864 - head/libexec/rtld-elf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 14:36:01 -0000 Author: pjd Date: Tue Dec 4 14:36:01 2012 New Revision: 243864 URL: http://svnweb.freebsd.org/changeset/base/243864 Log: Use absolute path for /usr/libexec/ld-elf.so.1 symlink. Requested by: kan, kib Use -h flags for chflags, so we won't remove 'schg' flag from system's /libexec/ld-elf.so.1. MFC after: 2 weeks Modified: head/libexec/rtld-elf/Makefile Modified: head/libexec/rtld-elf/Makefile ============================================================================== --- head/libexec/rtld-elf/Makefile Tue Dec 4 14:07:17 2012 (r243863) +++ head/libexec/rtld-elf/Makefile Tue Dec 4 14:36:01 2012 (r243864) @@ -28,7 +28,7 @@ WARNS?= 2 INSTALLFLAGS= -C -b PRECIOUSPROG= BINDIR= /libexec -SYMLINKS= ../..${BINDIR}/${PROG} /usr/libexec/${PROG} +SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG} MLINKS= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 @@ -62,7 +62,7 @@ SYMBOL_MAPS+= ${.CURDIR}/${RTLD_ARCH}/Sy # Fixup the existing binary that's there so we can symlink over it. beforeinstall: .if exists(${DESTDIR}/usr/libexec/${PROG}) - -chflags noschg ${DESTDIR}/usr/libexec/${PROG} + -chflags -h noschg ${DESTDIR}/usr/libexec/${PROG} .endif .PATH: ${.CURDIR}/${RTLD_ARCH} From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 16:54:44 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 769F222F; Tue, 4 Dec 2012 16:54:44 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 5B9EB8FC12; Tue, 4 Dec 2012 16:54:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4Gsiv4037558; Tue, 4 Dec 2012 16:54:44 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4GsiGB037557; Tue, 4 Dec 2012 16:54:44 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201212041654.qB4GsiGB037557@svn.freebsd.org> From: Jilles Tjoelker Date: Tue, 4 Dec 2012 16:54:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243865 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 16:54:44 -0000 Author: jilles Date: Tue Dec 4 16:54:43 2012 New Revision: 243865 URL: http://svnweb.freebsd.org/changeset/base/243865 Log: libc: Use the new 'e' fopen() mode option to simplify fstab.c. No functional change is intended. Modified: head/lib/libc/gen/fstab.c Modified: head/lib/libc/gen/fstab.c ============================================================================== --- head/lib/libc/gen/fstab.c Tue Dec 4 14:36:01 2012 (r243864) +++ head/lib/libc/gen/fstab.c Tue Dec 4 16:54:43 2012 (r243865) @@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include @@ -255,8 +254,6 @@ getfsfile(const char *name) int setfsent(void) { - int fd; - if (_fs_fp) { rewind(_fs_fp); LineNo = 0; @@ -268,18 +265,11 @@ setfsent(void) else setfstab(getenv("PATH_FSTAB")); } - fd = _open(path_fstab, O_RDONLY | O_CLOEXEC); - if (fd == -1) { - error(errno); - return (0); - } - _fs_fp = fdopen(fd, "r"); - if (_fs_fp != NULL) { + if ((_fs_fp = fopen(path_fstab, "re")) != NULL) { LineNo = 0; return (1); } error(errno); - _close(fd); return (0); } From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 17:12:23 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A71F18F7; Tue, 4 Dec 2012 17:12:23 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 8B4B78FC16; Tue, 4 Dec 2012 17:12:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4HCNNd041429; Tue, 4 Dec 2012 17:12:23 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4HCN9O041426; Tue, 4 Dec 2012 17:12:23 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201212041712.qB4HCN9O041426@svn.freebsd.org> From: Hiroki Sato Date: Tue, 4 Dec 2012 17:12:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243866 - in head: sbin/ifconfig sbin/route sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 17:12:23 -0000 Author: hrs Date: Tue Dec 4 17:12:23 2012 New Revision: 243866 URL: http://svnweb.freebsd.org/changeset/base/243866 Log: - Fix LOR in sa6_recoverscope() in rt_msg2()[1]. - Check V_deembed_scopeid before checking if sa_family == AF_INET6. - Fix scope id handing in route(8)[2] and ifconfig(8). Reported by: rpaulo[1], Mateusz Guzik[1], peter[2] Modified: head/sbin/ifconfig/af_inet6.c head/sbin/route/route.c head/sys/net/rtsock.c Modified: head/sbin/ifconfig/af_inet6.c ============================================================================== --- head/sbin/ifconfig/af_inet6.c Tue Dec 4 16:54:43 2012 (r243865) +++ head/sbin/ifconfig/af_inet6.c Tue Dec 4 17:12:23 2012 (r243866) @@ -251,8 +251,9 @@ in6_status(int s __unused, const struct if ((flags6 & IN6_IFF_TEMPORARY) != 0) printf("temporary "); - if (sin->sin6_scope_id) - printf("scopeid 0x%x ", sin->sin6_scope_id); + if (((struct sockaddr_in6 *)(ifa->ifa_addr))->sin6_scope_id) + printf("scopeid 0x%x ", + ((struct sockaddr_in6 *)(ifa->ifa_addr))->sin6_scope_id); if (ip6lifetime && (lifetime.ia6t_preferred || lifetime.ia6t_expire)) { printf("pltime "); Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Tue Dec 4 16:54:43 2012 (r243865) +++ head/sbin/route/route.c Tue Dec 4 17:12:23 2012 (r243866) @@ -1208,6 +1208,16 @@ getaddr(int which, char *str, struct hos exit(1); } memcpy(&su->sin6, res->ai_addr, sizeof(su->sin6)); +#ifdef __KAME__ + if ((IN6_IS_ADDR_LINKLOCAL(&su->sin6.sin6_addr) || + IN6_IS_ADDR_MC_LINKLOCAL(&su->sin6.sin6_addr) || + IN6_IS_ADDR_MC_NODELOCAL(&su->sin6.sin6_addr)) && + su->sin6.sin6_scope_id) { + *(u_int16_t *)&su->sin6.sin6_addr.s6_addr[2] = + htons(su->sin6.sin6_scope_id); + su->sin6.sin6_scope_id = 0; + } +#endif freeaddrinfo(res); if (q != NULL) *q++ = '/'; Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Tue Dec 4 16:54:43 2012 (r243865) +++ head/sys/net/rtsock.c Tue Dec 4 17:12:23 2012 (r243866) @@ -804,28 +804,31 @@ route_output(struct mbuf *m, struct sock } info.rti_info[RTAX_DST] = rt_key(rt); #ifdef INET6 - switch (rt_key(rt)->sa_family) { - case AF_INET6: - if (V_deembed_scopeid == 0) + if (V_deembed_scopeid) { + switch (rt_key(rt)->sa_family) { + case AF_INET6: + sin6 = (struct sockaddr_in6 *)&ss_dst; + bcopy(rt_key(rt), sin6, sizeof(*sin6)); + if (sa6_recoverscope(sin6) == 0) + info.rti_info[RTAX_DST] = + (struct sockaddr *)sin6; break; - sin6 = (struct sockaddr_in6 *)&ss_dst; - bcopy(rt_key(rt), sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - info.rti_info[RTAX_DST] = - (struct sockaddr *)sin6; - break; + } } #endif info.rti_info[RTAX_GATEWAY] = rt->rt_gateway; #ifdef INET6 - switch (rt->rt_gateway->sa_family) { - case AF_INET6: - sin6 = (struct sockaddr_in6 *)&ss_gw; - bcopy(rt->rt_gateway, sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - info.rti_info[RTAX_GATEWAY] = - (struct sockaddr *)sin6; - break; + if (V_deembed_scopeid) { + switch (rt->rt_gateway->sa_family) { + case AF_INET6: + sin6 = (struct sockaddr_in6 *)&ss_gw; + bcopy(rt->rt_gateway, sin6, + sizeof(*sin6)); + if (sa6_recoverscope(sin6) == 0) + info.rti_info[RTAX_GATEWAY] = + (struct sockaddr *)sin6; + break; + } } #endif info.rti_info[RTAX_NETMASK] = rt_mask(rt); @@ -1130,15 +1133,11 @@ rt_msg1(int type, struct rt_addrinfo *rt rtinfo->rti_addrs |= (1 << i); dlen = SA_SIZE(sa); #ifdef INET6 - switch (sa->sa_family) { - case AF_INET6: - if (V_deembed_scopeid == 0) - break; + if (V_deembed_scopeid && sa->sa_family == AF_INET6) { sin6 = (struct sockaddr_in6 *)&ss; bcopy(sa, sin6, sizeof(*sin6)); if (sa6_recoverscope(sin6) == 0) sa = (struct sockaddr *)sin6; - break; } #endif m_copyback(m, len, dlen, (caddr_t)sa); @@ -1219,15 +1218,11 @@ again: rtinfo->rti_addrs |= (1 << i); dlen = SA_SIZE(sa); #ifdef INET6 - switch (sa->sa_family) { - case AF_INET6: - if (V_deembed_scopeid == 0) - break; + if (V_deembed_scopeid && sa->sa_family == AF_INET6) { sin6 = (struct sockaddr_in6 *)&ss; bcopy(sa, sin6, sizeof(*sin6)); if (sa6_recoverscope(sin6) == 0) sa = (struct sockaddr *)sin6; - break; } #endif if (cp) { @@ -1594,18 +1589,16 @@ sysctl_dumpentry(struct radix_node *rn, info.rti_info[RTAX_BRD] = rt->rt_ifa->ifa_dstaddr; } #ifdef INET6 - for (i = 0; i < RTAX_MAX; i++) { - if (info.rti_info[i] == NULL) - continue; - switch (info.rti_info[i]->sa_family) { - case AF_INET6: - if (V_deembed_scopeid == 0) - break; + if (V_deembed_scopeid) { + for (i = 0; i < RTAX_MAX; i++) { + if (info.rti_info[i] == NULL) + continue; + if (info.rti_info[i]->sa_family != AF_INET6) + continue; sin6 = (struct sockaddr_in6 *)&ss[i]; bcopy(info.rti_info[i], sin6, sizeof(*sin6)); if (sa6_recoverscope(sin6) == 0) info.rti_info[i] = (struct sockaddr *)sin6; - break; } } #endif @@ -1811,7 +1804,7 @@ sysctl_iflist(int af, struct walkarg *w) int len, error = 0; bzero((caddr_t)&info, sizeof(info)); - IFNET_RLOCK(); + IFNET_RLOCK_NOSLEEP(); TAILQ_FOREACH(ifp, &V_ifnet, if_link) { if (w->w_arg && w->w_arg != ifp->if_index) continue; @@ -1856,7 +1849,7 @@ sysctl_iflist(int af, struct walkarg *w) done: if (ifp != NULL) IF_ADDR_RUNLOCK(ifp); - IFNET_RUNLOCK(); + IFNET_RUNLOCK_NOSLEEP(); return (error); } @@ -1870,7 +1863,7 @@ sysctl_ifmalist(int af, struct walkarg * struct ifaddr *ifa; bzero((caddr_t)&info, sizeof(info)); - IFNET_RLOCK(); + IFNET_RLOCK_NOSLEEP(); TAILQ_FOREACH(ifp, &V_ifnet, if_link) { if (w->w_arg && w->w_arg != ifp->if_index) continue; @@ -1905,7 +1898,7 @@ sysctl_ifmalist(int af, struct walkarg * IF_ADDR_RUNLOCK(ifp); } done: - IFNET_RUNLOCK(); + IFNET_RUNLOCK_NOSLEEP(); return (error); } From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 19:55:00 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 727FCA11; Tue, 4 Dec 2012 19:55:00 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [64.62.153.212]) by mx1.freebsd.org (Postfix) with ESMTP id 4DBD18FC13; Tue, 4 Dec 2012 19:55:00 +0000 (UTC) Received: from epsilon.delphij.net (drawbridge.ixsystems.com [206.40.55.65]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by anubis.delphij.net (Postfix) with ESMTPSA id 0078B12B86; Tue, 4 Dec 2012 11:54:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=delphij.net; s=anubis; t=1354650894; bh=1w75VpowxKnQIicAWqWilJmICRlWDCyXzFgz8lkEmq0=; h=Date:From:Reply-To:To:CC:Subject:References:In-Reply-To; b=zeuxWFBU7c1fV+9RrbTIEsQSy1dy7OXBcio5xmE1QzDMKyAzc4fbCdhR5g6NvLUBv tMjRX5N2orZN+hi66HssAjuwxvSuivw4dYMWJNjNBjE8wSIIwoW7jg/zsob0a3VMEQ AdOMOaqQl8Sz+vUJ6nWbdV5aYf9t3FTM5uSjtlqg= Message-ID: <50BE550D.5000409@delphij.net> Date: Tue, 04 Dec 2012 11:54:53 -0800 From: Xin Li Organization: The FreeBSD Project MIME-Version: 1.0 To: Gleb Smirnoff Subject: Re: svn commit: r243019 - head/sbin/route References: <201211140805.qAE85MHU031099@svn.freebsd.org> <20121204102204.GD14202@FreeBSD.org> In-Reply-To: <20121204102204.GD14202@FreeBSD.org> X-Enigmail-Version: 1.4.6 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Xin LI X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: d@delphij.net List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 19:55:00 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 12/04/12 02:22, Gleb Smirnoff wrote: > Xin, > > On Mon, Dec 03, 2012 at 11:47:32AM -0800, Xin LI wrote: X> It seems > that this commit breaks the following commands like this: X> X> > route add -net 10.8/16 10.2.0.1 > > Thanks for report. Do you agree with attached patch? Looks good and passed my test cases, thanks! Cheers, - -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- iQEcBAEBCAAGBQJQvlUMAAoJEG80Jeu8UPuzzXoH/AnWrpU4NMmZhtcoscwnDZXC 27V25380BfpKKxk5eRIJ+yht0C2SRu5c9LPsJdNBmzFrLKwET7LuZVxS1xjE6UeF SFoxL1xcN3DZIhuXBAhxPtOE7Hrykc555oh/WiDVOr3mRLDXR1uF+yRailzTgXn+ +sEQbHTnV5bjYN3Bnh/tzBfUvCtSCUm/EXxTi5z5coUbSbqSuIB6EKa0/gJW12l0 cbc6DkD41v7g2l7oB2HLh73VUJB1nU63PWEaf/awY6TSafs5H+8asnDw9738pXPQ vfwOXulS6D8FGA0gw2q4KRJRN5HZ1kYgwpXTEiX6fXvcz/Ppo/5KD714zCX7rvY= =tI3B -----END PGP SIGNATURE----- From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 20:05:02 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7E6C4EA9; Tue, 4 Dec 2012 20:05:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 62AE18FC1B; Tue, 4 Dec 2012 20:05:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4K52ve044756; Tue, 4 Dec 2012 20:05:02 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4K52fL044755; Tue, 4 Dec 2012 20:05:02 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212042005.qB4K52fL044755@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 4 Dec 2012 20:05:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243867 - head/sbin/route X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 20:05:02 -0000 Author: glebius Date: Tue Dec 4 20:05:01 2012 New Revision: 243867 URL: http://svnweb.freebsd.org/changeset/base/243867 Log: Fix fallout from r243019, which broke parsing of shortened network prefixes. Reported and tested by: delphij Modified: head/sbin/route/route.c Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Tue Dec 4 17:12:23 2012 (r243866) +++ head/sbin/route/route.c Tue Dec 4 20:05:01 2012 (r243867) @@ -1033,6 +1033,13 @@ inet_makenetandmask(u_long net, struct s rtm_addrs |= RTA_NETMASK; /* + * MSB of net should be meaningful. 0/0 is exception. + */ + if (net > 0) + while ((net & 0xff000000) == 0) + net <<= 8; + + /* * If no /xx was specified we must calculate the * CIDR address. */ From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 20:49:04 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CC335688; Tue, 4 Dec 2012 20:49:04 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 97BCC8FC12; Tue, 4 Dec 2012 20:49:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4Kn4wd053595; Tue, 4 Dec 2012 20:49:04 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4Kn4rW053594; Tue, 4 Dec 2012 20:49:04 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201212042049.qB4Kn4rW053594@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 4 Dec 2012 20:49:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243868 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 20:49:04 -0000 Author: kib Date: Tue Dec 4 20:49:04 2012 New Revision: 243868 URL: http://svnweb.freebsd.org/changeset/base/243868 Log: Do not allocate buffer of the 255 bytes length on the stack. Reported and tested by: sig6247@gmail.com MFC after: 1 week Modified: head/sys/kern/vfs_mountroot.c Modified: head/sys/kern/vfs_mountroot.c ============================================================================== --- head/sys/kern/vfs_mountroot.c Tue Dec 4 20:05:01 2012 (r243867) +++ head/sys/kern/vfs_mountroot.c Tue Dec 4 20:49:04 2012 (r243868) @@ -672,10 +672,11 @@ parse_mount_dev_present(const char *dev) return (error != 0) ? 0 : 1; } +#define ERRMSGL 255 static int parse_mount(char **conf) { - char errmsg[255]; + char *errmsg; struct mntarg *ma; char *dev, *fs, *opts, *tok; int delay, error, timeout; @@ -707,7 +708,7 @@ parse_mount(char **conf) printf("Trying to mount root from %s:%s [%s]...\n", fs, dev, (opts != NULL) ? opts : ""); - bzero(errmsg, sizeof(errmsg)); + errmsg = malloc(ERRMSGL, M_TEMP, M_WAITOK | M_ZERO); if (vfs_byname(fs) == NULL) { strlcpy(errmsg, "unknown file system", sizeof(errmsg)); @@ -734,7 +735,7 @@ parse_mount(char **conf) ma = mount_arg(ma, "fstype", fs, -1); ma = mount_arg(ma, "fspath", "/", -1); ma = mount_arg(ma, "from", dev, -1); - ma = mount_arg(ma, "errmsg", errmsg, sizeof(errmsg)); + ma = mount_arg(ma, "errmsg", errmsg, ERRMSGL); ma = mount_arg(ma, "ro", NULL, 0); ma = parse_mountroot_options(ma, opts); error = kernel_mount(ma, MNT_ROOTFS); @@ -748,11 +749,13 @@ parse_mount(char **conf) printf(".\n"); } free(fs, M_TEMP); + free(errmsg, M_TEMP); if (opts != NULL) free(opts, M_TEMP); /* kernel_mount can return -1 on error. */ return ((error < 0) ? EDOOFUS : error); } +#undef ERRMSGL static int vfs_mountroot_parse(struct sbuf *sb, struct mount *mpdevfs) From owner-svn-src-head@FreeBSD.ORG Tue Dec 4 20:49:40 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 70B727FC; Tue, 4 Dec 2012 20:49:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 5489B8FC19; Tue, 4 Dec 2012 20:49:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB4KnebQ053723; Tue, 4 Dec 2012 20:49:40 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB4Kneri053720; Tue, 4 Dec 2012 20:49:40 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201212042049.qB4Kneri053720@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 4 Dec 2012 20:49:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243869 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Dec 2012 20:49:40 -0000 Author: kib Date: Tue Dec 4 20:49:39 2012 New Revision: 243869 URL: http://svnweb.freebsd.org/changeset/base/243869 Log: Fix a race between kern_setitimer() and realitexpire(), where the callout is started before kern_setitimer() acquires process mutex, but looses a race and kern_setitimer() gets the process mutex before the callout. Then, assuming that new specified struct itimerval has it_interval zero, but it_value non-zero, the callout, after it starts executing again, clears p->p_realtimer.it_value, but kern_setitimer() already rescheduled the callout. As the result of the race, both p_realtimer is zero, and the callout is rescheduled. Then, in the exit1(), the exit code sees that it_value is zero and does not even try to stop the callout. This allows the struct proc to be reused and eventually the armed callout is re-initialized. The consequence is the corrupted callwheel tailq. Use process mutex to interlock the callout start, which fixes the race. Reported and tested by: pho Reviewed by: jhb MFC after: 2 weeks Modified: head/sys/kern/init_main.c head/sys/kern/kern_fork.c head/sys/kern/kern_time.c Modified: head/sys/kern/init_main.c ============================================================================== --- head/sys/kern/init_main.c Tue Dec 4 20:49:04 2012 (r243868) +++ head/sys/kern/init_main.c Tue Dec 4 20:49:39 2012 (r243869) @@ -498,7 +498,7 @@ proc0_init(void *dummy __unused) strncpy(p->p_comm, "kernel", sizeof (p->p_comm)); strncpy(td->td_name, "swapper", sizeof (td->td_name)); - callout_init(&p->p_itcallout, CALLOUT_MPSAFE); + callout_init_mtx(&p->p_itcallout, &p->p_mtx, 0); callout_init_mtx(&p->p_limco, &p->p_mtx, 0); callout_init(&td->td_slpcallout, CALLOUT_MPSAFE); Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Tue Dec 4 20:49:04 2012 (r243868) +++ head/sys/kern/kern_fork.c Tue Dec 4 20:49:39 2012 (r243869) @@ -591,7 +591,7 @@ do_fork(struct thread *td, int flags, st LIST_INIT(&p2->p_children); LIST_INIT(&p2->p_orphans); - callout_init(&p2->p_itcallout, CALLOUT_MPSAFE); + callout_init_mtx(&p2->p_itcallout, &p2->p_mtx, 0); /* * If PF_FORK is set, the child process inherits the Modified: head/sys/kern/kern_time.c ============================================================================== --- head/sys/kern/kern_time.c Tue Dec 4 20:49:04 2012 (r243868) +++ head/sys/kern/kern_time.c Tue Dec 4 20:49:39 2012 (r243869) @@ -788,13 +788,11 @@ realitexpire(void *arg) struct timeval ctv, ntv; p = (struct proc *)arg; - PROC_LOCK(p); kern_psignal(p, SIGALRM); if (!timevalisset(&p->p_realtimer.it_interval)) { timevalclear(&p->p_realtimer.it_value); if (p->p_flag & P_WEXIT) wakeup(&p->p_itcallout); - PROC_UNLOCK(p); return; } for (;;) { @@ -806,7 +804,6 @@ realitexpire(void *arg) timevalsub(&ntv, &ctv); callout_reset(&p->p_itcallout, tvtohz(&ntv) - 1, realitexpire, p); - PROC_UNLOCK(p); return; } } From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 04:22:53 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BDCC047F; Wed, 5 Dec 2012 04:22:53 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A3DDB8FC14; Wed, 5 Dec 2012 04:22:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB54MrER060192; Wed, 5 Dec 2012 04:22:53 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB54Mrsq060191; Wed, 5 Dec 2012 04:22:53 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201212050422.qB54Mrsq060191@svn.freebsd.org> From: Rui Paulo Date: Wed, 5 Dec 2012 04:22:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243875 - head/sys/boot/i386/efi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 04:22:53 -0000 Author: rpaulo Date: Wed Dec 5 04:22:53 2012 New Revision: 243875 URL: http://svnweb.freebsd.org/changeset/base/243875 Log: Remove dead code that clang refuses to compile. Modified: head/sys/boot/i386/efi/exec.c Modified: head/sys/boot/i386/efi/exec.c ============================================================================== --- head/sys/boot/i386/efi/exec.c Wed Dec 5 02:47:06 2012 (r243874) +++ head/sys/boot/i386/efi/exec.c Wed Dec 5 04:22:53 2012 (r243875) @@ -46,14 +46,4 @@ __v86int() void __exec(caddr_t addr, ...) { - /* XXX this is wrong */ - __asm __volatile("movl %cr0, %eax"); - __asm __volatile("andl $0x7fffffff, %eax"); - __asm __volatile("mov %eax, %cr0"); - __asm __volatile("xorl %eax, %eax"); - __asm __volatile("mov %eax, %cr3"); - __asm __volatile("movl %cr0, %eax"); - __asm __volatile("andl $0xfffffffe, %eax"); - __asm __volatile("movl %eax, %cr0"); - __asm __volatile("jmp %0" :: "r" (addr)); } From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 08:12:31 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 70842377; Wed, 5 Dec 2012 08:12:31 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 1F99D8FC39; Wed, 5 Dec 2012 08:04:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB584S0W002373; Wed, 5 Dec 2012 08:04:28 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB584KGB002314; Wed, 5 Dec 2012 08:04:20 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212050804.qB584KGB002314@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 5 Dec 2012 08:04:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243882 - in head/sys: arm/at91 arm/econa arm/lpc arm/ti/cpsw arm/xscale/ixp425 compat/linux compat/ndis fs/nfs fs/nfsclient fs/nfsserver kern mips/adm5120 mips/atheros mips/cavium mips... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 08:12:31 -0000 Author: glebius Date: Wed Dec 5 08:04:20 2012 New Revision: 243882 URL: http://svnweb.freebsd.org/changeset/base/243882 Log: Mechanically substitute flags from historic mbuf allocator with malloc(9) flags within sys. Exceptions: - sys/contrib not touched - sys/mbuf.h edited manually Modified: head/sys/arm/at91/if_ate.c head/sys/arm/at91/if_macb.c head/sys/arm/econa/if_ece.c head/sys/arm/lpc/if_lpe.c head/sys/arm/ti/cpsw/if_cpsw.c head/sys/arm/xscale/ixp425/if_npe.c head/sys/compat/linux/linux_socket.c head/sys/compat/ndis/kern_ndis.c head/sys/fs/nfs/nfs_commonsubs.c head/sys/fs/nfs/nfsm_subs.h head/sys/fs/nfsclient/nfs_clcomsubs.c head/sys/fs/nfsserver/nfs_nfsdcache.c head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/nfsserver/nfs_nfsdstate.c head/sys/kern/subr_mchain.c head/sys/kern/uipc_mbuf.c head/sys/kern/uipc_mbuf2.c head/sys/kern/uipc_sockbuf.c head/sys/kern/uipc_socket.c head/sys/kern/uipc_syscalls.c head/sys/mips/adm5120/if_admsw.c head/sys/mips/atheros/if_arge.c head/sys/mips/cavium/if_octm.c head/sys/mips/cavium/octe/ethernet-mem.c head/sys/mips/cavium/octe/ethernet-rx.c head/sys/mips/idt/if_kr.c head/sys/mips/nlm/dev/net/xlpge.c head/sys/mips/rmi/dev/nlge/if_nlge.c head/sys/mips/rmi/dev/xlr/rge.c head/sys/net/bpf.c head/sys/net/bridgestp.c head/sys/net/ieee8023ad_lacp.c head/sys/net/if_arcsubr.c head/sys/net/if_atmsubr.c head/sys/net/if_bridge.c head/sys/net/if_ef.c head/sys/net/if_ethersubr.c head/sys/net/if_fddisubr.c head/sys/net/if_fwsubr.c head/sys/net/if_gre.c head/sys/net/if_iso88025subr.c head/sys/net/if_spppfr.c head/sys/net/if_spppsubr.c head/sys/net/if_stf.c head/sys/net/if_tap.c head/sys/net/if_tun.c head/sys/net/rtsock.c head/sys/net80211/ieee80211_freebsd.c head/sys/net80211/ieee80211_hostap.c head/sys/net80211/ieee80211_hwmp.c head/sys/net80211/ieee80211_input.c head/sys/net80211/ieee80211_mesh.c head/sys/net80211/ieee80211_output.c head/sys/net80211/ieee80211_superg.c head/sys/net80211/ieee80211_wds.c head/sys/netatalk/aarp.c head/sys/netatalk/ddp_output.c head/sys/netgraph/atm/ccatm/ng_ccatm.c head/sys/netgraph/atm/ng_atm.c head/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c head/sys/netgraph/bluetooth/drivers/h4/ng_h4.c head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c head/sys/netgraph/bluetooth/hci/ng_hci_evnt.c head/sys/netgraph/bluetooth/hci/ng_hci_misc.c head/sys/netgraph/bluetooth/hci/ng_hci_ulpi.c head/sys/netgraph/bluetooth/l2cap/ng_l2cap_cmds.h head/sys/netgraph/bluetooth/l2cap/ng_l2cap_evnt.c head/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c head/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c head/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c head/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c head/sys/netgraph/netflow/netflow.c head/sys/netgraph/netflow/netflow_v9.c head/sys/netgraph/ng_UI.c head/sys/netgraph/ng_atmllc.c head/sys/netgraph/ng_bridge.c head/sys/netgraph/ng_cisco.c head/sys/netgraph/ng_deflate.c head/sys/netgraph/ng_device.c head/sys/netgraph/ng_frame_relay.c head/sys/netgraph/ng_gif.c head/sys/netgraph/ng_gif_demux.c head/sys/netgraph/ng_hub.c head/sys/netgraph/ng_iface.c head/sys/netgraph/ng_ipfw.c head/sys/netgraph/ng_l2tp.c head/sys/netgraph/ng_lmi.c head/sys/netgraph/ng_mppc.c head/sys/netgraph/ng_one2many.c head/sys/netgraph/ng_ppp.c head/sys/netgraph/ng_pppoe.c head/sys/netgraph/ng_pptpgre.c head/sys/netgraph/ng_pred1.c head/sys/netgraph/ng_rfc1490.c head/sys/netgraph/ng_source.c head/sys/netgraph/ng_tee.c head/sys/netgraph/ng_tty.c head/sys/netgraph/ng_vjc.c head/sys/netgraph/ng_vlan.c head/sys/netinet/if_ether.c head/sys/netinet/igmp.c head/sys/netinet/in_gif.c head/sys/netinet/ip_icmp.c head/sys/netinet/ip_input.c head/sys/netinet/ip_mroute.c head/sys/netinet/ip_options.c head/sys/netinet/ip_output.c head/sys/netinet/libalias/alias.c head/sys/netinet/raw_ip.c head/sys/netinet/sctp_asconf.c head/sys/netinet/sctp_auth.c head/sys/netinet/sctp_indata.c head/sys/netinet/sctp_input.c head/sys/netinet/sctp_output.c head/sys/netinet/sctp_pcb.c head/sys/netinet/sctp_timer.c head/sys/netinet/sctp_usrreq.c head/sys/netinet/sctputil.c head/sys/netinet/tcp_output.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_syncache.c head/sys/netinet/tcp_timewait.c head/sys/netinet/udp_usrreq.c head/sys/netinet6/frag6.c head/sys/netinet6/icmp6.c head/sys/netinet6/in6_gif.c head/sys/netinet6/ip6_input.c head/sys/netinet6/ip6_mroute.c head/sys/netinet6/ip6_output.c head/sys/netinet6/mld6.c head/sys/netinet6/nd6_nbr.c head/sys/netinet6/raw_ip6.c head/sys/netinet6/udp6_usrreq.c head/sys/netipsec/ipsec_mbuf.c head/sys/netipsec/ipsec_output.c head/sys/netipsec/key.c head/sys/netipsec/keysock.c head/sys/netipsec/xform_ipip.c head/sys/netipx/ipx_outputfl.c head/sys/netipx/ipx_usrreq.c head/sys/netipx/spx_reass.c head/sys/netipx/spx_usrreq.c head/sys/netnatm/natm.c head/sys/netncp/ncp_sock.c head/sys/netpfil/ipfw/ip_dn_glue.c head/sys/netpfil/ipfw/ip_fw_dynamic.c head/sys/netpfil/ipfw/ip_fw_pfil.c head/sys/netsmb/smb_iod.c head/sys/netsmb/smb_rq.c head/sys/netsmb/smb_trantcp.c head/sys/nfs/krpc_subr.c head/sys/nfs/nfs_common.c head/sys/nfsclient/nfs_krpc.c head/sys/nfsclient/nfs_subs.c head/sys/nfsserver/nfs_fha.c head/sys/nfsserver/nfs_serv.c head/sys/nfsserver/nfs_srvkrpc.c head/sys/nfsserver/nfs_srvsubs.c head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c head/sys/ofed/drivers/infiniband/ulp/sdp/sdp_bcopy.c head/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c head/sys/ofed/drivers/infiniband/ulp/sdp/sdp_tx.c head/sys/ofed/drivers/net/mlx4/en_tx.c head/sys/pci/if_rl.c head/sys/powerpc/ps3/if_glc.c head/sys/rpc/clnt_dg.c head/sys/rpc/clnt_vc.c head/sys/rpc/rpc_generic.c head/sys/rpc/rpcm_subs.h head/sys/rpc/rpcsec_gss/rpcsec_gss_prot.c head/sys/rpc/svc.c head/sys/rpc/svc_dg.c head/sys/rpc/svc_vc.c head/sys/sys/mbuf.h Modified: head/sys/arm/at91/if_ate.c ============================================================================== --- head/sys/arm/at91/if_ate.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/arm/at91/if_ate.c Wed Dec 5 08:04:20 2012 (r243882) @@ -901,9 +901,9 @@ ate_intr(void *xsc) /* Get an appropriately sized mbuf */ if (remain + ETHER_ALIGN >= MINCLSIZE) - mb = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + mb = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); else - MGETHDR(mb, M_DONTWAIT, MT_DATA); + MGETHDR(mb, M_NOWAIT, MT_DATA); if (mb == NULL) { sc->ifp->if_iqdrops++; @@ -1135,7 +1135,7 @@ atestart_locked(struct ifnet *ifp) e = bus_dmamap_load_mbuf_sg(sc->mtag, sc->tx_map[sc->txhead], m, segs, &nseg, 0); if (e == EFBIG) { - mdefrag = m_defrag(m, M_DONTWAIT); + mdefrag = m_defrag(m, M_NOWAIT); if (mdefrag == NULL) { IFQ_DRV_PREPEND(&ifp->if_snd, m); return; Modified: head/sys/arm/at91/if_macb.c ============================================================================== --- head/sys/arm/at91/if_macb.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/arm/at91/if_macb.c Wed Dec 5 08:04:20 2012 (r243882) @@ -435,7 +435,7 @@ macb_new_rxbuf(struct macb_softc *sc, in bus_dma_segment_t seg[1]; int error, nsegs; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES - ETHER_ALIGN; @@ -878,7 +878,7 @@ macb_encap(struct macb_softc *sc, struct error = bus_dmamap_load_mbuf_sg(sc->dmatag_ring_tx, txd->dmamap, *m_head, segs, &nsegs, 0); if (error == EFBIG) { - m = m_collapse(*m_head, M_DONTWAIT, MAX_FRAGMENT); + m = m_collapse(*m_head, M_NOWAIT, MAX_FRAGMENT); if (m == NULL) { m_freem(*m_head); *m_head = NULL; @@ -973,7 +973,7 @@ macbstart_locked(struct ifnet *ifp) #if 0 if (m0->m_next != NULL) { /* Fragmented mbuf chain, collapse it. */ - m_new = m_defrag(m0, M_DONTWAIT); + m_new = m_defrag(m0, M_NOWAIT); if (m_new != NULL) { /* Original frame freed. */ m0 = m_new; Modified: head/sys/arm/econa/if_ece.c ============================================================================== --- head/sys/arm/econa/if_ece.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/arm/econa/if_ece.c Wed Dec 5 08:04:20 2012 (r243882) @@ -714,7 +714,7 @@ ece_new_rxbuf(struct ece_softc *sc, stru tag = sc->dmatag_ring_rx; - new_mbuf = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + new_mbuf = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (new_mbuf == NULL) return (ENOBUFS); Modified: head/sys/arm/lpc/if_lpe.c ============================================================================== --- head/sys/arm/lpc/if_lpe.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/arm/lpc/if_lpe.c Wed Dec 5 08:04:20 2012 (r243882) @@ -1122,7 +1122,7 @@ lpe_init_rxbuf(struct lpe_softc *sc, int rxd = &sc->lpe_cdata.lpe_rx_desc[n]; hwd = &sc->lpe_rdata.lpe_rx_ring[n]; hws = &sc->lpe_rdata.lpe_rx_status[n]; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (!m) { device_printf(sc->lpe_dev, "WARNING: mbufs exhausted!\n"); Modified: head/sys/arm/ti/cpsw/if_cpsw.c ============================================================================== --- head/sys/arm/ti/cpsw/if_cpsw.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/arm/ti/cpsw/if_cpsw.c Wed Dec 5 08:04:20 2012 (r243882) @@ -625,7 +625,7 @@ cpsw_pad(struct mbuf *m) ; if (!(M_WRITABLE(last) && M_TRAILINGSPACE(last) >= padlen)) { /* Allocate new empty mbuf, pad it. Compact later. */ - MGET(n, M_DONTWAIT, MT_DATA); + MGET(n, M_NOWAIT, MT_DATA); if (n == NULL) return (ENOBUFS); n->m_len = 0; Modified: head/sys/arm/xscale/ixp425/if_npe.c ============================================================================== --- head/sys/arm/xscale/ixp425/if_npe.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/arm/xscale/ixp425/if_npe.c Wed Dec 5 08:04:20 2012 (r243882) @@ -1064,7 +1064,7 @@ npe_rxbuf_init(struct npe_softc *sc, str int error, nseg; if (m == NULL) { - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return ENOBUFS; } @@ -1120,7 +1120,7 @@ npe_rxdone(int qid, void *arg) * data up the stack and replace it with the newly * allocated one. */ - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m != NULL) { struct mbuf *mrx = npe->ix_m; struct npehwbuf *hw = npe->ix_hw; @@ -1316,7 +1316,7 @@ npestart_locked(struct ifnet *ifp) error = bus_dmamap_load_mbuf_sg(dma->mtag, npe->ix_map, m, segs, &nseg, 0); if (error == EFBIG) { - n = m_collapse(m, M_DONTWAIT, NPE_MAXSEG); + n = m_collapse(m, M_NOWAIT, NPE_MAXSEG); if (n == NULL) { if_printf(ifp, "%s: too many fragments %u\n", __func__, nseg); Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/compat/linux/linux_socket.c Wed Dec 5 08:04:20 2012 (r243882) @@ -1173,7 +1173,7 @@ linux_sendmsg(struct thread *td, struct error = ENOBUFS; cmsg = malloc(CMSG_HDRSZ, M_TEMP, M_WAITOK | M_ZERO); - control = m_get(M_WAIT, MT_CONTROL); + control = m_get(M_WAITOK, MT_CONTROL); if (control == NULL) goto bad; Modified: head/sys/compat/ndis/kern_ndis.c ============================================================================== --- head/sys/compat/ndis/kern_ndis.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/compat/ndis/kern_ndis.c Wed Dec 5 08:04:20 2012 (r243882) @@ -657,12 +657,12 @@ ndis_ptom(m0, p) for (buf = priv->npp_head; buf != NULL; buf = buf->mdl_next) { if (buf == priv->npp_head) #ifdef MT_HEADER - MGETHDR(m, M_DONTWAIT, MT_HEADER); + MGETHDR(m, M_NOWAIT, MT_HEADER); #else - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); #endif else - MGET(m, M_DONTWAIT, MT_DATA); + MGET(m, M_NOWAIT, MT_DATA); if (m == NULL) { m_freem(*m0); *m0 = NULL; Modified: head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- head/sys/fs/nfs/nfs_commonsubs.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/fs/nfs/nfs_commonsubs.c Wed Dec 5 08:04:20 2012 (r243882) @@ -382,7 +382,7 @@ nfsm_strtom(struct nfsrv_descript *nd, c while (siz > 0) { if (left == 0) { if (siz > ncl_mbuf_mlen) - NFSMCLGET(m1, M_WAIT); + NFSMCLGET(m1, M_WAITOK); else NFSMGET(m1); mbuf_setlen(m1, 0); @@ -3455,7 +3455,7 @@ nfsrvd_rephead(struct nfsrv_descript *nd */ if ((nd->nd_flag & ND_GSSINITREPLY) == 0 && nfs_bigreply[nd->nd_procnum]) { - NFSMCLGET(mreq, M_WAIT); + NFSMCLGET(mreq, M_WAITOK); nd->nd_mreq = mreq; nd->nd_mb = mreq; } else { Modified: head/sys/fs/nfs/nfsm_subs.h ============================================================================== --- head/sys/fs/nfs/nfsm_subs.h Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/fs/nfs/nfsm_subs.h Wed Dec 5 08:04:20 2012 (r243882) @@ -73,7 +73,7 @@ nfsm_build(struct nfsrv_descript *nd, in struct mbuf *mb2; if (siz > M_TRAILINGSPACE(nd->nd_mb)) { - NFSMCLGET(mb2, M_DONTWAIT); + NFSMCLGET(mb2, M_NOWAIT); if (siz > MLEN) panic("build > MLEN"); mbuf_setlen(mb2, 0); Modified: head/sys/fs/nfsclient/nfs_clcomsubs.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clcomsubs.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/fs/nfsclient/nfs_clcomsubs.c Wed Dec 5 08:04:20 2012 (r243882) @@ -138,7 +138,7 @@ nfscl_reqstart(struct nfsrv_descript *nd * Get the first mbuf for the request. */ if (nfs_bigrequest[procnum]) - NFSMCLGET(mb, M_WAIT); + NFSMCLGET(mb, M_WAITOK); else NFSMGET(mb); mbuf_setlen(mb, 0); @@ -212,7 +212,7 @@ nfsm_uiombuf(struct nfsrv_descript *nd, mlen = M_TRAILINGSPACE(mp); if (mlen == 0) { if (clflg) - NFSMCLGET(mp, M_WAIT); + NFSMCLGET(mp, M_WAITOK); else NFSMGET(mp); mbuf_setlen(mp, 0); Modified: head/sys/fs/nfsserver/nfs_nfsdcache.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdcache.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/fs/nfsserver/nfs_nfsdcache.c Wed Dec 5 08:04:20 2012 (r243882) @@ -364,7 +364,7 @@ loop: newnfsstats.srvcache_nonidemdonehits++; NFSUNLOCKCACHE(); nd->nd_mreq = m_copym(rp->rc_reply, 0, - M_COPYALL, M_WAIT); + M_COPYALL, M_WAITOK); ret = RC_REPLY; rp->rc_timestamp = NFSD_MONOSEC + NFSRVCACHE_UDPTIMEOUT; @@ -437,7 +437,7 @@ nfsrvd_updatecache(struct nfsrv_descript if (!(rp->rc_flag & RC_REPMBUF)) panic("reply from cache"); nd->nd_mreq = m_copym(rp->rc_reply, 0, - M_COPYALL, M_WAIT); + M_COPYALL, M_WAITOK); rp->rc_timestamp = NFSD_MONOSEC + NFSRVCACHE_TCPTIMEOUT; nfsrc_unlock(rp); goto out; @@ -473,7 +473,7 @@ nfsrvd_updatecache(struct nfsrv_descript nfsrc_tcpsavedreplies; } NFSUNLOCKCACHE(); - m = m_copym(nd->nd_mreq, 0, M_COPYALL, M_WAIT); + m = m_copym(nd->nd_mreq, 0, M_COPYALL, M_WAITOK); NFSLOCKCACHE(); rp->rc_reply = m; rp->rc_flag |= RC_REPMBUF; @@ -654,7 +654,7 @@ tryagain: nfsrc_marksametcpconn(rp->rc_sockref); ret = RC_REPLY; nd->nd_mreq = m_copym(rp->rc_reply, 0, - M_COPYALL, M_WAIT); + M_COPYALL, M_WAITOK); rp->rc_timestamp = NFSD_MONOSEC + NFSRVCACHE_TCPTIMEOUT; } else { Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Wed Dec 5 08:04:20 2012 (r243882) @@ -565,7 +565,7 @@ nfsvno_readlink(struct vnode *vp, struct i = 0; while (len < NFS_MAXPATHLEN) { NFSMGET(mp); - MCLGET(mp, M_WAIT); + MCLGET(mp, M_WAITOK); mp->m_len = NFSMSIZ(mp); if (len == 0) { mp3 = mp2 = mp; @@ -635,7 +635,7 @@ nfsvno_read(struct vnode *vp, off_t off, i = 0; while (left > 0) { NFSMGET(m); - MCLGET(m, M_WAIT); + MCLGET(m, M_WAITOK); m->m_len = 0; siz = min(M_TRAILINGSPACE(m), left); left -= siz; Modified: head/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdstate.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/fs/nfsserver/nfs_nfsdstate.c Wed Dec 5 08:04:20 2012 (r243882) @@ -3726,7 +3726,7 @@ nfsrv_docallback(struct nfsclient *clp, /* * Get the first mbuf for the request. */ - MGET(m, M_WAIT, MT_DATA); + MGET(m, M_WAITOK, MT_DATA); mbuf_setlen(m, 0); nd->nd_mreq = nd->nd_mb = m; nd->nd_bpos = NFSMTOD(m, caddr_t); Modified: head/sys/kern/subr_mchain.c ============================================================================== --- head/sys/kern/subr_mchain.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/kern/subr_mchain.c Wed Dec 5 08:04:20 2012 (r243882) @@ -59,7 +59,7 @@ mb_init(struct mbchain *mbp) { struct mbuf *m; - m = m_gethdr(M_WAIT, MT_DATA); + m = m_gethdr(M_WAITOK, MT_DATA); m->m_len = 0; mb_initm(mbp, m); return (0); @@ -114,7 +114,7 @@ mb_reserve(struct mbchain *mbp, int size panic("mb_reserve: size = %d\n", size); m = mbp->mb_cur; if (mbp->mb_mleft < size) { - mn = m_get(M_WAIT, MT_DATA); + mn = m_get(M_WAITOK, MT_DATA); mbp->mb_cur = m->m_next = mn; m = mn; m->m_len = 0; @@ -205,7 +205,7 @@ mb_put_mem(struct mbchain *mbp, c_caddr_ while (size > 0) { if (mleft == 0) { if (m->m_next == NULL) - m = m_getm(m, size, M_WAIT, MT_DATA); + m = m_getm(m, size, M_WAITOK, MT_DATA); else m = m->m_next; mleft = M_TRAILINGSPACE(m); @@ -307,7 +307,7 @@ md_init(struct mdchain *mdp) { struct mbuf *m; - m = m_gethdr(M_WAIT, MT_DATA); + m = m_gethdr(M_WAITOK, MT_DATA); m->m_len = 0; md_initm(mdp, m); return (0); @@ -514,7 +514,7 @@ md_get_mbuf(struct mdchain *mdp, int siz { struct mbuf *m = mdp->md_cur, *rm; - rm = m_copym(m, mdp->md_pos - mtod(m, u_char*), size, M_WAIT); + rm = m_copym(m, mdp->md_pos - mtod(m, u_char*), size, M_WAITOK); md_get_mem(mdp, NULL, size, MB_MZERO); *ret = rm; return (0); Modified: head/sys/kern/uipc_mbuf.c ============================================================================== --- head/sys/kern/uipc_mbuf.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/kern/uipc_mbuf.c Wed Dec 5 08:04:20 2012 (r243882) @@ -520,7 +520,7 @@ m_prepend(struct mbuf *m, int len, int h /* * Make a copy of an mbuf chain starting "off0" bytes from the beginning, * continuing for "len" bytes. If len is M_COPYALL, copy to end of mbuf. - * The wait parameter is a choice of M_WAIT/M_DONTWAIT from caller. + * The wait parameter is a choice of M_WAITOK/M_NOWAIT from caller. * Note that the copy is read-only, because clusters are not copied, * only their reference counts are incremented. */ @@ -1028,7 +1028,7 @@ m_pullup(struct mbuf *n, int len) } else { if (len > MHLEN) goto bad; - MGET(m, M_DONTWAIT, n->m_type); + MGET(m, M_NOWAIT, n->m_type); if (m == NULL) goto bad; m->m_len = 0; @@ -1076,7 +1076,7 @@ m_copyup(struct mbuf *n, int len, int ds if (len > (MHLEN - dstoff)) goto bad; - MGET(m, M_DONTWAIT, n->m_type); + MGET(m, M_NOWAIT, n->m_type); if (m == NULL) goto bad; m->m_len = 0; @@ -1195,10 +1195,10 @@ m_devget(char *buf, int totlen, int off, while (totlen > 0) { if (top == NULL) { /* First one, must be PKTHDR */ if (totlen + off >= MINCLSIZE) { - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); len = MCLBYTES; } else { - m = m_gethdr(M_DONTWAIT, MT_DATA); + m = m_gethdr(M_NOWAIT, MT_DATA); len = MHLEN; /* Place initial small packet/header at end of mbuf */ @@ -1213,10 +1213,10 @@ m_devget(char *buf, int totlen, int off, m->m_pkthdr.len = totlen; } else { if (totlen + off >= MINCLSIZE) { - m = m_getcl(M_DONTWAIT, MT_DATA, 0); + m = m_getcl(M_NOWAIT, MT_DATA, 0); len = MCLBYTES; } else { - m = m_get(M_DONTWAIT, MT_DATA); + m = m_get(M_NOWAIT, MT_DATA); len = MLEN; } if (m == NULL) { @@ -1260,7 +1260,7 @@ m_copyback(struct mbuf *m0, int off, int off -= mlen; totlen += mlen; if (m->m_next == NULL) { - n = m_get(M_DONTWAIT, m->m_type); + n = m_get(M_NOWAIT, m->m_type); if (n == NULL) goto out; bzero(mtod(n, caddr_t), MLEN); @@ -1284,7 +1284,7 @@ m_copyback(struct mbuf *m0, int off, int if (len == 0) break; if (m->m_next == NULL) { - n = m_get(M_DONTWAIT, m->m_type); + n = m_get(M_NOWAIT, m->m_type); if (n == NULL) break; n->m_len = min(MLEN, len); @@ -1328,7 +1328,7 @@ m_append(struct mbuf *m0, int len, c_cad * Allocate a new mbuf; could check space * and allocate a cluster instead. */ - n = m_get(M_DONTWAIT, m->m_type); + n = m_get(M_NOWAIT, m->m_type); if (n == NULL) break; n->m_len = min(MLEN, remainder); Modified: head/sys/kern/uipc_mbuf2.c ============================================================================== --- head/sys/kern/uipc_mbuf2.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/kern/uipc_mbuf2.c Wed Dec 5 08:04:20 2012 (r243882) @@ -171,7 +171,7 @@ m_pulldown(struct mbuf *m, int off, int * chop the current mbuf into two pieces, set off to 0. */ if (len <= n->m_len - off) { - o = m_dup1(n, off, n->m_len - off, M_DONTWAIT); + o = m_dup1(n, off, n->m_len - off, M_NOWAIT); if (o == NULL) { m_freem(m); return NULL; /* ENOBUFS */ @@ -231,9 +231,9 @@ m_pulldown(struct mbuf *m, int off, int * on both end. */ if (len > MLEN) - o = m_getcl(M_DONTWAIT, m->m_type, 0); + o = m_getcl(M_NOWAIT, m->m_type, 0); else - o = m_get(M_DONTWAIT, m->m_type); + o = m_get(M_NOWAIT, m->m_type); if (!o) { m_freem(m); return NULL; /* ENOBUFS */ Modified: head/sys/kern/uipc_sockbuf.c ============================================================================== --- head/sys/kern/uipc_sockbuf.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/kern/uipc_sockbuf.c Wed Dec 5 08:04:20 2012 (r243882) @@ -188,7 +188,7 @@ sowakeup(struct socket *so, struct sockb } KNOTE_LOCKED(&sb->sb_sel.si_note, 0); if (sb->sb_upcall != NULL) { - ret = sb->sb_upcall(so, sb->sb_upcallarg, M_DONTWAIT); + ret = sb->sb_upcall(so, sb->sb_upcallarg, M_NOWAIT); if (ret == SU_ISCONNECTED) { KASSERT(sb == &so->so_rcv, ("SO_SND upcall returned SU_ISCONNECTED")); @@ -644,7 +644,7 @@ sbappendaddr_locked(struct sockbuf *sb, if (asa->sa_len > MLEN) return (0); #endif - MGET(m, M_DONTWAIT, MT_SONAME); + MGET(m, M_NOWAIT, MT_SONAME); if (m == 0) return (0); m->m_len = asa->sa_len; @@ -1002,9 +1002,9 @@ sbcreatecontrol(caddr_t p, int size, int if (CMSG_SPACE((u_int)size) > MCLBYTES) return ((struct mbuf *) NULL); if (CMSG_SPACE((u_int)size) > MLEN) - m = m_getcl(M_DONTWAIT, MT_CONTROL, 0); + m = m_getcl(M_NOWAIT, MT_CONTROL, 0); else - m = m_get(M_DONTWAIT, MT_CONTROL); + m = m_get(M_NOWAIT, MT_CONTROL); if (m == NULL) return ((struct mbuf *) NULL); cp = mtod(m, struct cmsghdr *); Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/kern/uipc_socket.c Wed Dec 5 08:04:20 2012 (r243882) @@ -998,7 +998,7 @@ sosend_copyin(struct uio *uio, struct mb } } else { if (top == NULL) { - m = m_gethdr(M_WAIT, MT_DATA); + m = m_gethdr(M_WAITOK, MT_DATA); m->m_pkthdr.len = 0; m->m_pkthdr.rcvif = NULL; @@ -1010,7 +1010,7 @@ sosend_copyin(struct uio *uio, struct mb if (atomic && m && len < MHLEN) MH_ALIGN(m, len); } else { - m = m_get(M_WAIT, MT_DATA); + m = m_get(M_WAITOK, MT_DATA); len = min(min(MLEN, resid), *space); } } @@ -1433,7 +1433,7 @@ soreceive_rcvoob(struct socket *so, stru KASSERT(flags & MSG_OOB, ("soreceive_rcvoob: (flags & MSG_OOB) == 0")); VNET_SO_ASSERT(so); - m = m_get(M_WAIT, MT_DATA); + m = m_get(M_WAITOK, MT_DATA); error = (*pr->pr_usrreqs->pru_rcvoob)(so, m, flags & MSG_PEEK); if (error) goto bad; @@ -1841,13 +1841,13 @@ dontblock: int copy_flag; if (flags & MSG_DONTWAIT) - copy_flag = M_DONTWAIT; + copy_flag = M_NOWAIT; else copy_flag = M_WAIT; - if (copy_flag == M_WAIT) + if (copy_flag == M_WAITOK) SOCKBUF_UNLOCK(&so->so_rcv); *mp = m_copym(m, 0, len, copy_flag); - if (copy_flag == M_WAIT) + if (copy_flag == M_WAITOK) SOCKBUF_LOCK(&so->so_rcv); if (*mp == NULL) { /* @@ -2114,7 +2114,7 @@ deliver: KASSERT(sb->sb_mb != NULL, ("%s: len > 0 && sb->sb_mb empty", __func__)); - m = m_copym(sb->sb_mb, 0, len, M_DONTWAIT); + m = m_copym(sb->sb_mb, 0, len, M_NOWAIT); if (m == NULL) len = 0; /* Don't flush data from sockbuf. */ else @@ -2901,11 +2901,11 @@ soopt_getm(struct sockopt *sopt, struct struct mbuf *m, *m_prev; int sopt_size = sopt->sopt_valsize; - MGET(m, sopt->sopt_td ? M_WAIT : M_DONTWAIT, MT_DATA); + MGET(m, sopt->sopt_td ? M_WAITOK : M_NOWAIT, MT_DATA); if (m == NULL) return ENOBUFS; if (sopt_size > MLEN) { - MCLGET(m, sopt->sopt_td ? M_WAIT : M_DONTWAIT); + MCLGET(m, sopt->sopt_td ? M_WAITOK : M_NOWAIT); if ((m->m_flags & M_EXT) == 0) { m_free(m); return ENOBUFS; @@ -2919,14 +2919,14 @@ soopt_getm(struct sockopt *sopt, struct m_prev = m; while (sopt_size) { - MGET(m, sopt->sopt_td ? M_WAIT : M_DONTWAIT, MT_DATA); + MGET(m, sopt->sopt_td ? M_WAITOK : M_NOWAIT, MT_DATA); if (m == NULL) { m_freem(*mp); return ENOBUFS; } if (sopt_size > MLEN) { - MCLGET(m, sopt->sopt_td != NULL ? M_WAIT : - M_DONTWAIT); + MCLGET(m, sopt->sopt_td != NULL ? M_WAITOK : + M_NOWAIT); if ((m->m_flags & M_EXT) == 0) { m_freem(m); m_freem(*mp); @@ -3409,7 +3409,7 @@ restart: head->so_accf->so_accept_filter_arg); so->so_options &= ~SO_ACCEPTFILTER; ret = head->so_accf->so_accept_filter->accf_callback(so, - head->so_accf->so_accept_filter_arg, M_DONTWAIT); + head->so_accf->so_accept_filter_arg, M_NOWAIT); if (ret == SU_ISCONNECTED) soupcall_clear(so, SO_RCV); SOCK_UNLOCK(so); Modified: head/sys/kern/uipc_syscalls.c ============================================================================== --- head/sys/kern/uipc_syscalls.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/kern/uipc_syscalls.c Wed Dec 5 08:04:20 2012 (r243882) @@ -722,7 +722,7 @@ sendit(td, s, mp, flags) if (mp->msg_flags == MSG_COMPAT) { struct cmsghdr *cm; - M_PREPEND(control, sizeof(*cm), M_WAIT); + M_PREPEND(control, sizeof(*cm), M_WAITOK); cm = mtod(control, struct cmsghdr *); cm->cmsg_len = control->m_len; cm->cmsg_level = SOL_SOCKET; @@ -1661,9 +1661,9 @@ sockargs(mp, buf, buflen, type) if ((u_int)buflen > MCLBYTES) return (EINVAL); } - m = m_get(M_WAIT, type); + m = m_get(M_WAITOK, type); if ((u_int)buflen > MLEN) - MCLGET(m, M_WAIT); + MCLGET(m, M_WAITOK); m->m_len = buflen; error = copyin(buf, mtod(m, caddr_t), (u_int)buflen); if (error) Modified: head/sys/mips/adm5120/if_admsw.c ============================================================================== --- head/sys/mips/adm5120/if_admsw.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/adm5120/if_admsw.c Wed Dec 5 08:04:20 2012 (r243882) @@ -647,14 +647,14 @@ admsw_start(struct ifnet *ifp) if (m0->m_pkthdr.len < ETHER_MIN_LEN || bus_dmamap_load_mbuf(sc->sc_bufs_dmat, dmamap, m0, admsw_mbuf_map_addr, ds, BUS_DMA_NOWAIT) != 0) { - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) { device_printf(sc->sc_dev, "unable to allocate Tx mbuf\n"); break; } if (m0->m_pkthdr.len > MHLEN) { - MCLGET(m, M_DONTWAIT); + MCLGET(m, M_NOWAIT); if ((m->m_flags & M_EXT) == 0) { device_printf(sc->sc_dev, "unable to allocate Tx cluster\n"); @@ -1222,11 +1222,11 @@ admsw_add_rxbuf(struct admsw_softc *sc, else ds = &sc->sc_rxlsoft[idx]; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return (ENOBUFS); - MCLGET(m, M_DONTWAIT); + MCLGET(m, M_NOWAIT); if ((m->m_flags & M_EXT) == 0) { m_freem(m); return (ENOBUFS); Modified: head/sys/mips/atheros/if_arge.c ============================================================================== --- head/sys/mips/atheros/if_arge.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/atheros/if_arge.c Wed Dec 5 08:04:20 2012 (r243882) @@ -1090,7 +1090,7 @@ arge_encap(struct arge_softc *sc, struct m = *m_head; if (! arge_mbuf_chain_is_tx_aligned(m)) { sc->stats.tx_pkts_unaligned++; - m = m_defrag(*m_head, M_DONTWAIT); + m = m_defrag(*m_head, M_NOWAIT); if (m == NULL) { *m_head = NULL; return (ENOBUFS); @@ -1772,7 +1772,7 @@ arge_newbuf(struct arge_softc *sc, int i bus_dmamap_t map; int nsegs; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES; Modified: head/sys/mips/cavium/if_octm.c ============================================================================== --- head/sys/mips/cavium/if_octm.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/cavium/if_octm.c Wed Dec 5 08:04:20 2012 (r243882) @@ -505,7 +505,7 @@ octm_rx_intr(void *arg) } for (;;) { - struct mbuf *m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + struct mbuf *m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) { device_printf(sc->sc_dev, "no memory for receive mbuf.\n"); return; Modified: head/sys/mips/cavium/octe/ethernet-mem.c ============================================================================== --- head/sys/mips/cavium/octe/ethernet-mem.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/cavium/octe/ethernet-mem.c Wed Dec 5 08:04:20 2012 (r243882) @@ -57,7 +57,7 @@ int cvm_oct_mem_fill_fpa(int pool, int s while (freed) { KASSERT(size <= MCLBYTES - 128, ("mbuf clusters are too small")); - struct mbuf *m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + struct mbuf *m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (__predict_false(m == NULL)) { printf("Failed to allocate mbuf for hardware pool %d\n", pool); break; Modified: head/sys/mips/cavium/octe/ethernet-rx.c ============================================================================== --- head/sys/mips/cavium/octe/ethernet-rx.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/cavium/octe/ethernet-rx.c Wed Dec 5 08:04:20 2012 (r243882) @@ -228,7 +228,7 @@ void cvm_oct_tasklet_rx(void *context, i /* We have to copy the packet. First allocate an mbuf for it */ - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) { DEBUGPRINT("Port %d failed to allocate mbuf, packet dropped\n", work->word1.cn38xx.ipprt); cvm_oct_free_work(work); Modified: head/sys/mips/idt/if_kr.c ============================================================================== --- head/sys/mips/idt/if_kr.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/idt/if_kr.c Wed Dec 5 08:04:20 2012 (r243882) @@ -1305,7 +1305,7 @@ kr_newbuf(struct kr_softc *sc, int idx) bus_dmamap_t map; int nsegs; - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES; Modified: head/sys/mips/nlm/dev/net/xlpge.c ============================================================================== --- head/sys/mips/nlm/dev/net/xlpge.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/nlm/dev/net/xlpge.c Wed Dec 5 08:04:20 2012 (r243882) @@ -1125,7 +1125,7 @@ get_buf(void) vm_paddr_t temp1, temp2; #endif - if ((m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR)) == NULL) + if ((m_new = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR)) == NULL) return (NULL); m_new->m_len = m_new->m_pkthdr.len = MCLBYTES; m_adj(m_new, NAE_CACHELINE_SIZE - ((uintptr_t)m_new->m_data & 0x1f)); Modified: head/sys/mips/rmi/dev/nlge/if_nlge.c ============================================================================== --- head/sys/mips/rmi/dev/nlge/if_nlge.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/rmi/dev/nlge/if_nlge.c Wed Dec 5 08:04:20 2012 (r243882) @@ -2158,7 +2158,7 @@ get_buf(void) vm_paddr_t temp1, temp2; #endif - if ((m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR)) == NULL) + if ((m_new = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR)) == NULL) return (NULL); m_new->m_len = m_new->m_pkthdr.len = MCLBYTES; m_adj(m_new, XLR_CACHELINE_SIZE - ((uintptr_t)m_new->m_data & 0x1f)); Modified: head/sys/mips/rmi/dev/xlr/rge.c ============================================================================== --- head/sys/mips/rmi/dev/xlr/rge.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/mips/rmi/dev/xlr/rge.c Wed Dec 5 08:04:20 2012 (r243882) @@ -568,7 +568,7 @@ get_mbuf(void) { struct mbuf *m_new = NULL; - if ((m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR)) == NULL) + if ((m_new = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR)) == NULL) return NULL; m_new->m_len = MCLBYTES; Modified: head/sys/net/bpf.c ============================================================================== --- head/sys/net/bpf.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/bpf.c Wed Dec 5 08:04:20 2012 (r243882) @@ -530,11 +530,11 @@ bpf_movein(struct uio *uio, int linktype return (EIO); if (len <= MHLEN) - MGETHDR(m, M_WAIT, MT_DATA); + MGETHDR(m, M_WAITOK, MT_DATA); else if (len <= MCLBYTES) - m = m_getcl(M_WAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_WAITOK, MT_DATA, M_PKTHDR); else - m = m_getjcl(M_WAIT, MT_DATA, M_PKTHDR, + m = m_getjcl(M_WAITOK, MT_DATA, M_PKTHDR, #if (MJUMPAGESIZE > MCLBYTES) len <= MJUMPAGESIZE ? MJUMPAGESIZE : #endif @@ -1064,7 +1064,7 @@ bpfwrite(struct cdev *dev, struct uio *u dst.sa_family = pseudo_AF_HDRCMPLT; if (d->bd_feedback) { - mc = m_dup(m, M_DONTWAIT); + mc = m_dup(m, M_NOWAIT); if (mc != NULL) mc->m_pkthdr.rcvif = ifp; /* Set M_PROMISC for outgoing packets to be discarded. */ Modified: head/sys/net/bridgestp.c ============================================================================== --- head/sys/net/bridgestp.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/bridgestp.c Wed Dec 5 08:04:20 2012 (r243882) @@ -234,7 +234,7 @@ bstp_transmit_tcn(struct bstp_state *bs, if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) return; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return; @@ -348,7 +348,7 @@ bstp_send_bpdu(struct bstp_state *bs, st if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) return; - MGETHDR(m, M_DONTWAIT, MT_DATA); + MGETHDR(m, M_NOWAIT, MT_DATA); if (m == NULL) return; Modified: head/sys/net/ieee8023ad_lacp.c ============================================================================== --- head/sys/net/ieee8023ad_lacp.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/ieee8023ad_lacp.c Wed Dec 5 08:04:20 2012 (r243882) @@ -348,7 +348,7 @@ lacp_xmit_lacpdu(struct lacp_port *lp) LACP_LOCK_ASSERT(lp->lp_lsc); - m = m_gethdr(M_DONTWAIT, MT_DATA); + m = m_gethdr(M_NOWAIT, MT_DATA); if (m == NULL) { return (ENOMEM); } @@ -402,7 +402,7 @@ lacp_xmit_marker(struct lacp_port *lp) LACP_LOCK_ASSERT(lp->lp_lsc); - m = m_gethdr(M_DONTWAIT, MT_DATA); + m = m_gethdr(M_NOWAIT, MT_DATA); if (m == NULL) { return (ENOMEM); } Modified: head/sys/net/if_arcsubr.c ============================================================================== --- head/sys/net/if_arcsubr.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/if_arcsubr.c Wed Dec 5 08:04:20 2012 (r243882) @@ -214,7 +214,7 @@ arc_output(struct ifnet *ifp, struct mbu } isphds = arc_isphds(atype); - M_PREPEND(m, isphds ? ARC_HDRNEWLEN : ARC_HDRLEN, M_DONTWAIT); + M_PREPEND(m, isphds ? ARC_HDRNEWLEN : ARC_HDRLEN, M_NOWAIT); if (m == 0) senderr(ENOBUFS); ah = mtod(m, struct arc_header *); @@ -294,13 +294,13 @@ arc_frag_next(struct ifnet *ifp) /* split out next fragment and return it */ if (ac->sflag < ac->fsflag) { /* we CAN'T have short packets here */ - ac->curr_frag = m_split(m, ARC_MAX_DATA, M_DONTWAIT); + ac->curr_frag = m_split(m, ARC_MAX_DATA, M_NOWAIT); if (ac->curr_frag == 0) { m_freem(m); return 0; } - M_PREPEND(m, ARC_HDRNEWLEN, M_DONTWAIT); + M_PREPEND(m, ARC_HDRNEWLEN, M_NOWAIT); if (m == 0) { m_freem(ac->curr_frag); ac->curr_frag = 0; @@ -319,7 +319,7 @@ arc_frag_next(struct ifnet *ifp) ARC_MAX_FORBID_LEN - ARC_HDRNEWLEN + 2)) { ac->curr_frag = 0; - M_PREPEND(m, ARC_HDRNEWLEN_EXC, M_DONTWAIT); + M_PREPEND(m, ARC_HDRNEWLEN_EXC, M_NOWAIT); if (m == 0) return 0; @@ -332,7 +332,7 @@ arc_frag_next(struct ifnet *ifp) } else { ac->curr_frag = 0; - M_PREPEND(m, ARC_HDRNEWLEN, M_DONTWAIT); + M_PREPEND(m, ARC_HDRNEWLEN, M_NOWAIT); if (m == 0) return 0; Modified: head/sys/net/if_atmsubr.c ============================================================================== --- head/sys/net/if_atmsubr.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/if_atmsubr.c Wed Dec 5 08:04:20 2012 (r243882) @@ -190,7 +190,7 @@ atm_output(struct ifnet *ifp, struct mbu atm_flags = ATM_PH_FLAGS(&atmdst); if (atm_flags & ATM_PH_LLCSNAP) sz += 8; /* sizeof snap == 8 */ - M_PREPEND(m, sz, M_DONTWAIT); + M_PREPEND(m, sz, M_NOWAIT); if (m == 0) senderr(ENOBUFS); ad = mtod(m, struct atm_pseudohdr *); Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/if_bridge.c Wed Dec 5 08:04:20 2012 (r243882) @@ -1948,7 +1948,7 @@ bridge_output(struct ifnet *ifp, struct used = 1; mc = m; } else { - mc = m_copypacket(m, M_DONTWAIT); + mc = m_copypacket(m, M_NOWAIT); if (mc == NULL) { sc->sc_ifp->if_oerrors++; continue; @@ -2237,7 +2237,7 @@ bridge_input(struct ifnet *ifp, struct m * for bridge processing; return the original packet for * local processing. */ - mc = m_dup(m, M_DONTWAIT); + mc = m_dup(m, M_NOWAIT); if (mc == NULL) { BRIDGE_UNLOCK(sc); return (m); @@ -2254,7 +2254,7 @@ bridge_input(struct ifnet *ifp, struct m */ KASSERT(bifp->if_bridge == NULL, ("loop created in bridge_input")); - mc2 = m_dup(m, M_DONTWAIT); + mc2 = m_dup(m, M_NOWAIT); if (mc2 != NULL) { /* Keep the layer3 header aligned */ int i = min(mc2->m_pkthdr.len, max_protohdr); @@ -2431,7 +2431,7 @@ bridge_broadcast(struct bridge_softc *sc mc = m; used = 1; } else { - mc = m_dup(m, M_DONTWAIT); + mc = m_dup(m, M_NOWAIT); if (mc == NULL) { sc->sc_ifp->if_oerrors++; continue; @@ -2494,7 +2494,7 @@ bridge_span(struct bridge_softc *sc, str if ((dst_if->if_drv_flags & IFF_DRV_RUNNING) == 0) continue; - mc = m_copypacket(m, M_DONTWAIT); + mc = m_copypacket(m, M_NOWAIT); if (mc == NULL) { sc->sc_ifp->if_oerrors++; continue; @@ -3189,13 +3189,13 @@ bridge_pfil(struct mbuf **mp, struct ifn * Finally, put everything back the way it was and return */ if (snap) { - M_PREPEND(*mp, sizeof(struct llc), M_DONTWAIT); + M_PREPEND(*mp, sizeof(struct llc), M_NOWAIT); if (*mp == NULL) return (error); bcopy(&llc1, mtod(*mp, caddr_t), sizeof(struct llc)); } - M_PREPEND(*mp, ETHER_HDR_LEN, M_DONTWAIT); + M_PREPEND(*mp, ETHER_HDR_LEN, M_NOWAIT); if (*mp == NULL) return (error); bcopy(&eh2, mtod(*mp, caddr_t), ETHER_HDR_LEN); @@ -3390,7 +3390,7 @@ bridge_fragment(struct ifnet *ifp, struc for (m0 = m; m0; m0 = m0->m_nextpkt) { if (error == 0) { if (snap) { - M_PREPEND(m0, sizeof(struct llc), M_DONTWAIT); + M_PREPEND(m0, sizeof(struct llc), M_NOWAIT); if (m0 == NULL) { error = ENOBUFS; continue; @@ -3398,7 +3398,7 @@ bridge_fragment(struct ifnet *ifp, struc bcopy(llc, mtod(m0, caddr_t), sizeof(struct llc)); } - M_PREPEND(m0, ETHER_HDR_LEN, M_DONTWAIT); + M_PREPEND(m0, ETHER_HDR_LEN, M_NOWAIT); if (m0 == NULL) { error = ENOBUFS; continue; Modified: head/sys/net/if_ef.c ============================================================================== --- head/sys/net/if_ef.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/if_ef.c Wed Dec 5 08:04:20 2012 (r243882) @@ -408,7 +408,7 @@ ef_output(struct ifnet *ifp, struct mbuf type = htons(m->m_pkthdr.len); break; case ETHER_FT_8022: - M_PREPEND(m, ETHER_HDR_LEN + 3, M_WAIT); + M_PREPEND(m, ETHER_HDR_LEN + 3, M_WAITOK); /* * Ensure that ethernet header and next three bytes * will fit into single mbuf @@ -427,7 +427,7 @@ ef_output(struct ifnet *ifp, struct mbuf *hlen += 3; break; case ETHER_FT_SNAP: - M_PREPEND(m, 8, M_WAIT); + M_PREPEND(m, 8, M_WAITOK); type = htons(m->m_pkthdr.len); cp = mtod(m, u_char *); bcopy("\xAA\xAA\x03\x00\x00\x00\x81\x37", cp, 8); Modified: head/sys/net/if_ethersubr.c ============================================================================== --- head/sys/net/if_ethersubr.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/if_ethersubr.c Wed Dec 5 08:04:20 2012 (r243882) @@ -260,7 +260,7 @@ ether_output(struct ifnet *ifp, struct m struct llc llc; ifa_free(&aa->aa_ifa); - M_PREPEND(m, LLC_SNAPFRAMELEN, M_DONTWAIT); + M_PREPEND(m, LLC_SNAPFRAMELEN, M_NOWAIT); if (m == NULL) senderr(ENOBUFS); llc.llc_dsap = llc.llc_ssap = LLC_SNAP_LSAP; @@ -313,7 +313,7 @@ ether_output(struct ifnet *ifp, struct m * Add local net header. If no space in first mbuf, * allocate another. */ - M_PREPEND(m, ETHER_HDR_LEN, M_DONTWAIT); + M_PREPEND(m, ETHER_HDR_LEN, M_NOWAIT); if (m == NULL) senderr(ENOBUFS); eh = mtod(m, struct ether_header *); @@ -362,7 +362,7 @@ ether_output(struct ifnet *ifp, struct m * often used kernel parts suffer from the same bug. * See PR kern/105943 for a proposed general solution. */ - if ((n = m_dup(m, M_DONTWAIT)) != NULL) { + if ((n = m_dup(m, M_NOWAIT)) != NULL) { n->m_pkthdr.csum_flags |= csum_flags; if (csum_flags & CSUM_DATA_VALID) n->m_pkthdr.csum_data = 0xffff; @@ -864,7 +864,7 @@ discard: * Put back the ethernet header so netgraph has a * consistent view of inbound packets. */ - M_PREPEND(m, ETHER_HDR_LEN, M_DONTWAIT); + M_PREPEND(m, ETHER_HDR_LEN, M_NOWAIT); (*ng_ether_input_orphan_p)(ifp, m); return; } @@ -1288,7 +1288,7 @@ ether_vlanencap(struct mbuf *m, uint16_t { struct ether_vlan_header *evl; - M_PREPEND(m, ETHER_VLAN_ENCAP_LEN, M_DONTWAIT); + M_PREPEND(m, ETHER_VLAN_ENCAP_LEN, M_NOWAIT); if (m == NULL) return (NULL); /* M_PREPEND takes care of m_len, m_pkthdr.len for us */ Modified: head/sys/net/if_fddisubr.c ============================================================================== --- head/sys/net/if_fddisubr.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/if_fddisubr.c Wed Dec 5 08:04:20 2012 (r243882) @@ -212,7 +212,7 @@ fddi_output(ifp, m, dst, ro) if (aa->aa_flags & AFA_PHASE2) { struct llc llc; - M_PREPEND(m, LLC_SNAPFRAMELEN, M_WAIT); + M_PREPEND(m, LLC_SNAPFRAMELEN, M_WAITOK); llc.llc_dsap = llc.llc_ssap = LLC_SNAP_LSAP; llc.llc_control = LLC_UI; bcopy(at_org_code, llc.llc_snap.org_code, sizeof(at_org_code)); @@ -291,7 +291,7 @@ fddi_output(ifp, m, dst, ro) */ if (type != 0) { struct llc *l; - M_PREPEND(m, LLC_SNAPFRAMELEN, M_DONTWAIT); + M_PREPEND(m, LLC_SNAPFRAMELEN, M_NOWAIT); if (m == 0) senderr(ENOBUFS); l = mtod(m, struct llc *); @@ -307,7 +307,7 @@ fddi_output(ifp, m, dst, ro) * Add local net header. If no space in first mbuf, * allocate another. */ - M_PREPEND(m, FDDI_HDR_LEN, M_DONTWAIT); + M_PREPEND(m, FDDI_HDR_LEN, M_NOWAIT); if (m == 0) senderr(ENOBUFS); fh = mtod(m, struct fddi_header *); Modified: head/sys/net/if_fwsubr.c ============================================================================== --- head/sys/net/if_fwsubr.c Wed Dec 5 07:03:37 2012 (r243881) +++ head/sys/net/if_fwsubr.c Wed Dec 5 08:04:20 2012 (r243882) @@ -229,7 +229,7 @@ firewire_output(struct ifnet *ifp, struc /* * No fragmentation is necessary. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 11:35:52 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4221270A; Wed, 5 Dec 2012 11:35:52 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 190DE8FC08; Wed, 5 Dec 2012 11:35:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5BZpdn042103; Wed, 5 Dec 2012 11:35:51 GMT (envelope-from bapt@svn.freebsd.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5BZpAv042098; Wed, 5 Dec 2012 11:35:51 GMT (envelope-from bapt@svn.freebsd.org) Message-Id: <201212051135.qB5BZpAv042098@svn.freebsd.org> From: Baptiste Daroussin Date: Wed, 5 Dec 2012 11:35:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243883 - head/usr.sbin/pkg X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 11:35:52 -0000 Author: bapt Date: Wed Dec 5 11:35:50 2012 New Revision: 243883 URL: http://svnweb.freebsd.org/changeset/base/243883 Log: if PACKAGESITE url scheme is not 'file://', always try to revolv SRV records and use them if any. It allows the bootstrap to use directly pkg.FreeBSD.org instead of pkgbeta.FreeBSD.org MFC after: 1 month Added: head/usr.sbin/pkg/dns_utils.c (contents, props changed) head/usr.sbin/pkg/dns_utils.h (contents, props changed) Modified: head/usr.sbin/pkg/Makefile head/usr.sbin/pkg/pkg.c Modified: head/usr.sbin/pkg/Makefile ============================================================================== --- head/usr.sbin/pkg/Makefile Wed Dec 5 08:04:20 2012 (r243882) +++ head/usr.sbin/pkg/Makefile Wed Dec 5 11:35:50 2012 (r243883) @@ -1,7 +1,7 @@ # $FreeBSD$ PROG= pkg -SRC= pkg.c +SRCS= pkg.c dns_utils.c NO_MAN= yes DPADD= ${LIBARCHIVE} ${LIBELF} ${LIBFETCH} Added: head/usr.sbin/pkg/dns_utils.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/pkg/dns_utils.c Wed Dec 5 11:35:50 2012 (r243883) @@ -0,0 +1,136 @@ +/*- + * Copyright (c) 2012 Baptiste Daroussin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification, immediately at the beginning of the file. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#include "dns_utils.h" + +typedef union { + HEADER hdr; + unsigned char buf[1024]; +} dns_query; + +struct dns_srvinfo * +dns_getsrvinfo(const char *zone) +{ + struct dns_srvinfo **res, *first; + unsigned char *end, *p; + char host[MAXHOSTNAMELEN]; + dns_query q; + int len, qdcount, ancount, n, i; + unsigned int type, class, ttl, priority, weight, port; + + if ((len = res_query(zone, C_IN, T_SRV, q.buf, sizeof(q.buf))) == -1 || + len < (int)sizeof(HEADER)) + return (NULL); + + qdcount = ntohs(q.hdr.qdcount); + ancount = ntohs(q.hdr.ancount); + + end = q.buf + len; + p = q.buf + sizeof(HEADER); + + while(qdcount > 0 && p < end) { + qdcount--; + if((len = dn_expand(q.buf, end, p, host, MAXHOSTNAMELEN)) < 0) + return (NULL); + p += len + NS_QFIXEDSZ; + } + + res = malloc(sizeof(struct dns_srvinfo) * ancount); + if (res == NULL) + return (NULL); + memset(res, 0, sizeof(struct dns_srvinfo) * ancount); + + n = 0; + while (ancount > 0 && p < end) { + ancount--; + len = dn_expand(q.buf, end, p, host, MAXHOSTNAMELEN); + if (len < 0) { + for (i = 0; i < n; i++) + free(res[i]); + free(res); + return NULL; + } + + p += len; + + NS_GET16(type, p); + NS_GET16(class, p); + NS_GET32(ttl, p); + NS_GET16(len, p); + + if (type != T_SRV) { + p += len; + continue; + } + + NS_GET16(priority, p); + NS_GET16(weight, p); + NS_GET16(port, p); + + len = dn_expand(q.buf, end, p, host, MAXHOSTNAMELEN); + if (len < 0) { + for (i = 0; i < n; i++) + free(res[i]); + free(res); + return (NULL); + } + + res[n] = malloc(sizeof(struct dns_srvinfo)); + if (res[n] == NULL) { + for (i = 0; i < n; i++) + free(res[i]); + free(res); + return (NULL); + } + res[n]->type = type; + res[n]->class = class; + res[n]->ttl = ttl; + res[n]->priority = priority; + res[n]->weight = weight; + res[n]->port = port; + res[n]->next = NULL; + strlcpy(res[n]->host, host, MAXHOSTNAMELEN); + + p += len; + n++; + } + + for (i = 0; i < n - 1; i++) + res[i]->next = res[i + 1]; + + first = res[0]; + free(res); + + return (first); +} Added: head/usr.sbin/pkg/dns_utils.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/pkg/dns_utils.h Wed Dec 5 11:35:50 2012 (r243883) @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2012 Baptiste Daroussin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef DNS_UTILS_H +#define DNS_UTILS_H +struct dns_srvinfo { + unsigned int type; + unsigned int class; + unsigned int ttl; + unsigned int priority; + unsigned int weight; + unsigned int port; + char host[MAXHOSTNAMELEN]; + struct dns_srvinfo *next; +}; + +struct dns_srvinfo * + dns_getsrvinfo(const char *zone); + +#endif Modified: head/usr.sbin/pkg/pkg.c ============================================================================== --- head/usr.sbin/pkg/pkg.c Wed Dec 5 08:04:20 2012 (r243882) +++ head/usr.sbin/pkg/pkg.c Wed Dec 5 11:35:50 2012 (r243883) @@ -48,9 +48,10 @@ __FBSDID("$FreeBSD$"); #include #include "elf_tables.h" +#include "dns_utils.h" #define _LOCALBASE "/usr/local" -#define _PKGS_URL "http://pkgbeta.FreeBSD.org" +#define _PKGS_URL "http://pkg.FreeBSD.org" static const char * elf_corres_to_string(struct _elf_corres *m, int e) @@ -281,16 +282,20 @@ install_pkg_static(char *path, char *pkg static int bootstrap_pkg(void) { + struct url *u; FILE *remote; FILE *config; char *site; + struct dns_srvinfo *mirrors, *current; + /* To store _https._tcp. + hostname + \0 */ + char zone[MAXHOSTNAMELEN + 13]; char url[MAXPATHLEN]; char conf[MAXPATHLEN]; char abi[BUFSIZ]; char tmppkg[MAXPATHLEN]; char buf[10240]; char pkgstatic[MAXPATHLEN]; - int fd, retry, ret; + int fd, retry, ret, max_retry; struct url_stat st; off_t done, r; time_t now; @@ -298,9 +303,11 @@ bootstrap_pkg(void) done = 0; last = 0; + max_retry = 3; ret = -1; remote = NULL; config = NULL; + current = mirrors = NULL; printf("Bootstrapping pkg please wait\n"); @@ -324,12 +331,37 @@ bootstrap_pkg(void) return (-1); } - retry = 3; - do { - remote = fetchXGetURL(url, &st, ""); - if (remote == NULL) - sleep(1); - } while (remote == NULL && retry-- > 0); + retry = max_retry; + + u = fetchParseURL(url); + while (remote == NULL) { + if (retry == max_retry) { + if (strcmp(u->scheme, "file") != 0) { + snprintf(zone, sizeof(zone), + "_%s._tcp.%s", u->scheme, u->host); + printf("%s\n", zone); + mirrors = dns_getsrvinfo(zone); + current = mirrors; + } + } + + if (mirrors != NULL) + strlcpy(u->host, current->host, sizeof(u->host)); + + remote = fetchXGet(u, &st, ""); + if (remote == NULL) { + --retry; + if (retry <= 0) + goto fetchfail; + if (mirrors == NULL) { + sleep(1); + } else { + current = current->next; + if (current == NULL) + current = mirrors; + } + } + } if (remote == NULL) goto fetchfail; From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:05:24 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D5232B9B; Wed, 5 Dec 2012 13:05:24 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B7D718FC12; Wed, 5 Dec 2012 13:05:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5D5OYs059259; Wed, 5 Dec 2012 13:05:24 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5D5OUX059257; Wed, 5 Dec 2012 13:05:24 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051305.qB5D5OUX059257@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:05:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243890 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:05:24 -0000 Author: eadler Date: Wed Dec 5 13:05:24 2012 New Revision: 243890 URL: http://svnweb.freebsd.org/changeset/base/243890 Log: Connect organization.dot to the build Approved by: cperciva MFC after: 3 days Modified: head/share/misc/Makefile Modified: head/share/misc/Makefile ============================================================================== --- head/share/misc/Makefile Wed Dec 5 13:01:29 2012 (r243889) +++ head/share/misc/Makefile Wed Dec 5 13:05:24 2012 (r243890) @@ -6,7 +6,8 @@ FILES= ascii birthtoken bsd-family-tree committers-doc.dot committers-ports.dot \ committers-src.dot eqnchar flowers init.ee \ iso3166 iso639 latin1 man.template mdoc.template operator pci_vendors \ - scsi_modes usb_hid_usages usbdevs + scsi_modes usb_hid_usages usbdevs \ + organization.dot NO_OBJ= FILESDIR= ${BINDIR}/misc From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:33 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6E7D8304; Wed, 5 Dec 2012 13:56:33 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 53FD08FC08; Wed, 5 Dec 2012 13:56:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5DuX46068121; Wed, 5 Dec 2012 13:56:33 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5DuXkh068120; Wed, 5 Dec 2012 13:56:33 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5DuXkh068120@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243891 - head/usr.sbin/mergemaster X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:33 -0000 Author: eadler Date: Wed Dec 5 13:56:32 2012 New Revision: 243891 URL: http://svnweb.freebsd.org/changeset/base/243891 Log: Add ability to mergemaster to permit the user to type the absolute path to PAGER if mergemaster can not find the one already set. Reviewed by: mjg Approved by: cperciva MFC after: 2 weeks Modified: head/usr.sbin/mergemaster/mergemaster.sh Modified: head/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- head/usr.sbin/mergemaster/mergemaster.sh Wed Dec 5 13:05:24 2012 (r243890) +++ head/usr.sbin/mergemaster/mergemaster.sh Wed Dec 5 13:56:32 2012 (r243891) @@ -426,6 +426,8 @@ check_pager () { fi echo " Use 'm' to use plain old 'more' as your PAGER for this run" echo '' + echo " or you may type an absolute path to PAGER for this run" + echo '' echo " Default is to use plain old 'more' " echo '' echo -n "What should I do? [Use 'more'] " @@ -451,6 +453,9 @@ check_pager () { [mM]|'') PAGER=more ;; + /*) + PAGER="$FIXPAGER" + ;; *) echo '' echo "invalid choice: ${FIXPAGER}" From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:37 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 26492310; Wed, 5 Dec 2012 13:56:37 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id DF5028FC0C; Wed, 5 Dec 2012 13:56:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5DuaAs068167; Wed, 5 Dec 2012 13:56:36 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5DuaX3068166; Wed, 5 Dec 2012 13:56:36 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5DuaX3068166@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243892 - head/usr.sbin/mergemaster X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:37 -0000 Author: eadler Date: Wed Dec 5 13:56:36 2012 New Revision: 243892 URL: http://svnweb.freebsd.org/changeset/base/243892 Log: Remove pointless check for the existence of /usr/bin/less which exists in all configurations. Reviewed by: mjg Approved by: cperciva MFC after: 2 weeks Modified: head/usr.sbin/mergemaster/mergemaster.sh Modified: head/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- head/usr.sbin/mergemaster/mergemaster.sh Wed Dec 5 13:56:32 2012 (r243891) +++ head/usr.sbin/mergemaster/mergemaster.sh Wed Dec 5 13:56:36 2012 (r243892) @@ -421,9 +421,7 @@ check_pager () { echo " I cannot execute it. So, what would you like to do?" echo '' echo " Use 'e' to exit mergemaster and fix your PAGER variable" - if [ -x /usr/bin/less -o -x /usr/local/bin/less ]; then echo " Use 'l' to set PAGER to 'less' for this run" - fi echo " Use 'm' to use plain old 'more' as your PAGER for this run" echo '' echo " or you may type an absolute path to PAGER for this run" @@ -438,17 +436,7 @@ check_pager () { exit 0 ;; [lL]) - if [ -x /usr/bin/less ]; then - PAGER=/usr/bin/less - elif [ -x /usr/local/bin/less ]; then - PAGER=/usr/local/bin/less - else - echo '' - echo " *** Fatal Error:" - echo " You asked to use 'less' as your pager, but I can't" - echo " find it in /usr/bin or /usr/local/bin" - exit 1 - fi + PAGER=less ;; [mM]|'') PAGER=more From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:40 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 83476461; Wed, 5 Dec 2012 13:56:40 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 69D9F8FC13; Wed, 5 Dec 2012 13:56:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5DueLE068218; Wed, 5 Dec 2012 13:56:40 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5Due70068213; Wed, 5 Dec 2012 13:56:40 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5Due70068213@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243893 - in head: etc/root share/skel X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:40 -0000 Author: eadler Date: Wed Dec 5 13:56:39 2012 New Revision: 243893 URL: http://svnweb.freebsd.org/changeset/base/243893 Log: Remove hack to emulate effective uid and just use the EUID's name in the first place. I was unaware of this option when originally committing this change. Submitted by: gcooper Approved by: cperciva MFC after: 3 days Modified: head/etc/root/dot.cshrc head/share/skel/dot.cshrc Modified: head/etc/root/dot.cshrc ============================================================================== --- head/etc/root/dot.cshrc Wed Dec 5 13:56:36 2012 (r243892) +++ head/etc/root/dot.cshrc Wed Dec 5 13:56:39 2012 (r243893) @@ -23,10 +23,7 @@ setenv BLOCKSIZE K if ($?prompt) then # An interactive shell -- set some stuff up - if ($uid == 0) then - set user = root - endif - set prompt = "%n@%m:%~ %# " + set prompt = "%N@%m:%~ %# " set promptchars = "%#" set filec Modified: head/share/skel/dot.cshrc ============================================================================== --- head/share/skel/dot.cshrc Wed Dec 5 13:56:36 2012 (r243892) +++ head/share/skel/dot.cshrc Wed Dec 5 13:56:39 2012 (r243893) @@ -23,10 +23,7 @@ setenv BLOCKSIZE K if ($?prompt) then # An interactive shell -- set some stuff up - if ($uid == 0) then - set user = root - endif - set prompt = "%n@%m:%~ %# " + set prompt = "%N@%m:%~ %# " set promptchars = "%#" set filec From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:43 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EC0084AA; Wed, 5 Dec 2012 13:56:43 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D260C8FC15; Wed, 5 Dec 2012 13:56:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5DuhCJ068261; Wed, 5 Dec 2012 13:56:43 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5DuhoU068258; Wed, 5 Dec 2012 13:56:43 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5DuhoU068258@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243894 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:44 -0000 Author: eadler Date: Wed Dec 5 13:56:43 2012 New Revision: 243894 URL: http://svnweb.freebsd.org/changeset/base/243894 Log: Remove useless check for NULL prior to free. Approved by: cperciva MFC after: 2 weeks Modified: head/usr.sbin/pw/bitmap.c head/usr.sbin/pw/pw_group.c Modified: head/usr.sbin/pw/bitmap.c ============================================================================== --- head/usr.sbin/pw/bitmap.c Wed Dec 5 13:56:39 2012 (r243893) +++ head/usr.sbin/pw/bitmap.c Wed Dec 5 13:56:43 2012 (r243894) @@ -50,8 +50,7 @@ bm_alloc(int size) void bm_dealloc(struct bitmap * bm) { - if (bm->map) - free(bm->map); + free(bm->map); } static void Modified: head/usr.sbin/pw/pw_group.c ============================================================================== --- head/usr.sbin/pw/pw_group.c Wed Dec 5 13:56:39 2012 (r243893) +++ head/usr.sbin/pw/pw_group.c Wed Dec 5 13:56:43 2012 (r243894) @@ -274,8 +274,7 @@ pw_group(struct userconf * cnf, int mode pw_log(cnf, mode, W_GROUP, "%s(%ld)", grp->gr_name, (long) grp->gr_gid); - if (members) - free(members); + free(members); return EXIT_SUCCESS; } From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:47 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 27C514C4; Wed, 5 Dec 2012 13:56:47 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0DEBE8FC17; Wed, 5 Dec 2012 13:56:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5DukTN068302; Wed, 5 Dec 2012 13:56:46 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5Duks1068301; Wed, 5 Dec 2012 13:56:46 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5Duks1068301@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243895 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:47 -0000 Author: eadler Date: Wed Dec 5 13:56:46 2012 New Revision: 243895 URL: http://svnweb.freebsd.org/changeset/base/243895 Log: Avoid overflow of file buffer Submitted by: db Approved by: cperciva MFC after: 2 weeks Modified: head/usr.sbin/pw/pw_user.c Modified: head/usr.sbin/pw/pw_user.c ============================================================================== --- head/usr.sbin/pw/pw_user.c Wed Dec 5 13:56:43 2012 (r243894) +++ head/usr.sbin/pw/pw_user.c Wed Dec 5 13:56:46 2012 (r243895) @@ -394,7 +394,7 @@ pw_user(struct userconf * cnf, int mode, /* * Remove crontabs */ - sprintf(file, "/var/cron/tabs/%s", pwd->pw_name); + snprintf(file, sizeof(file), "/var/cron/tabs/%s", pwd->pw_name); if (access(file, F_OK) == 0) { sprintf(file, "crontab -u %s -r", pwd->pw_name); system(file); From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:50 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 51DAE524; Wed, 5 Dec 2012 13:56:50 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 370818FC0C; Wed, 5 Dec 2012 13:56:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5Duod8068344; Wed, 5 Dec 2012 13:56:50 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5DuopO068343; Wed, 5 Dec 2012 13:56:50 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5DuopO068343@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243896 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:50 -0000 Author: eadler Date: Wed Dec 5 13:56:49 2012 New Revision: 243896 URL: http://svnweb.freebsd.org/changeset/base/243896 Log: Use strdup instead of malloc + strcpy Submitted by: db Approved by: cperciva MFC after: 2 weeks Modified: head/usr.sbin/pw/pwupd.c Modified: head/usr.sbin/pw/pwupd.c ============================================================================== --- head/usr.sbin/pw/pwupd.c Wed Dec 5 13:56:46 2012 (r243895) +++ head/usr.sbin/pw/pwupd.c Wed Dec 5 13:56:49 2012 (r243896) @@ -56,12 +56,10 @@ setpwdir(const char * dir) { if (dir == NULL) return -1; - else { - char * d = malloc(strlen(dir)+1); - if (d == NULL) - return -1; - pwpath = strcpy(d, dir); - } + else + pwpath = strdup(dir); + if (pwpath == NULL) + return -1; return 0; } From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:53 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 82517525; Wed, 5 Dec 2012 13:56:53 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 689C28FC12; Wed, 5 Dec 2012 13:56:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5DurEQ068386; Wed, 5 Dec 2012 13:56:53 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5DurOH068385; Wed, 5 Dec 2012 13:56:53 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5DurOH068385@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243897 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:53 -0000 Author: eadler Date: Wed Dec 5 13:56:52 2012 New Revision: 243897 URL: http://svnweb.freebsd.org/changeset/base/243897 Log: Avoid overflowing the file buffer Submitted by: db Approved by: cperciva MFC after: 2 weeks Modified: head/usr.sbin/pw/rm_r.c Modified: head/usr.sbin/pw/rm_r.c ============================================================================== --- head/usr.sbin/pw/rm_r.c Wed Dec 5 13:56:49 2012 (r243896) +++ head/usr.sbin/pw/rm_r.c Wed Dec 5 13:56:52 2012 (r243897) @@ -52,7 +52,7 @@ rm_r(char const * dir, uid_t uid) while ((e = readdir(d)) != NULL) { if (strcmp(e->d_name, ".") != 0 && strcmp(e->d_name, "..") != 0) { - sprintf(file, "%s/%s", dir, e->d_name); + snprintf(file, sizeof(file), "%s/%s", dir, e->d_name); if (lstat(file, &st) == 0) { /* Need symlinks, not * linked file */ if (S_ISDIR(st.st_mode)) /* Directory - recurse */ From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:56:56 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B020C583; Wed, 5 Dec 2012 13:56:56 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 953E18FC14; Wed, 5 Dec 2012 13:56:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5DuuTt068433; Wed, 5 Dec 2012 13:56:56 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5Duu0c068432; Wed, 5 Dec 2012 13:56:56 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051356.qB5Duu0c068432@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:56:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243898 - head/usr.sbin/pw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:56:56 -0000 Author: eadler Date: Wed Dec 5 13:56:56 2012 New Revision: 243898 URL: http://svnweb.freebsd.org/changeset/base/243898 Log: Simplify string duplication: use strdup instead of malloc + strcpy Submitted by: db Approved by: cperciva MFC after: 2 weeks Modified: head/usr.sbin/pw/grupd.c Modified: head/usr.sbin/pw/grupd.c ============================================================================== --- head/usr.sbin/pw/grupd.c Wed Dec 5 13:56:52 2012 (r243897) +++ head/usr.sbin/pw/grupd.c Wed Dec 5 13:56:56 2012 (r243898) @@ -50,12 +50,11 @@ setgrdir(const char * dir) { if (dir == NULL) return -1; - else { - char * d = malloc(strlen(dir)+1); - if (d == NULL) - return -1; - grpath = strcpy(d, dir); - } + else + grpath = strdup(dir); + if (grpath == NULL) + return -1; + return 0; } From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 13:57:02 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BF6DA69C; Wed, 5 Dec 2012 13:57:01 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A619D8FC18; Wed, 5 Dec 2012 13:57:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5Dv1Hm068498; Wed, 5 Dec 2012 13:57:01 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5Dv13l068495; Wed, 5 Dec 2012 13:57:01 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212051357.qB5Dv13l068495@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 13:57:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243899 - head/games/fortune/datfiles X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 13:57:02 -0000 Author: eadler Date: Wed Dec 5 13:57:00 2012 New Revision: 243899 URL: http://svnweb.freebsd.org/changeset/base/243899 Log: Use Bernard Baruch's full name. The words "old than" seem to be quoted as "older than" by some sources, so use the more likely and grammatically correct text. PR: docs/173868 Submitted by: Chris Petrik Approved by: cperciva MFC after: 1 week Modified: head/games/fortune/datfiles/fortunes Modified: head/games/fortune/datfiles/fortunes ============================================================================== --- head/games/fortune/datfiles/fortunes Wed Dec 5 13:56:56 2012 (r243898) +++ head/games/fortune/datfiles/fortunes Wed Dec 5 13:57:00 2012 (r243899) @@ -35766,8 +35766,8 @@ the code over again, since I also remove % Old age and treachery will overcome youth and skill. % -Old age is always fifteen years old than I am. - -- B. Baruch +Old age is always fifteen years older than I am. + -- Bernard Baruch % Old age is the harbor of all ills. -- Bion From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 14:48:53 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C6E72C13; Wed, 5 Dec 2012 14:48:53 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by mx1.freebsd.org (Postfix) with ESMTP id 90CBC8FC08; Wed, 5 Dec 2012 14:48:52 +0000 (UTC) Received: by mail-wi0-f180.google.com with SMTP id hj13so1474732wib.13 for ; Wed, 05 Dec 2012 06:48:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=6sem2t1SMocDQaXbZFYBTW3N6gY0RoK8mahq2UG/K74=; b=fuSMPqzMbJEMkooMxBykfu1laeOBOSIh22p13xdzDpf90X8xqdY9qa2ywXpbsjZ1hO mBxDJ0YpezFSUHAEs3PLbWClpzj7mbI/FXSDYB6QkMg7qfbWMIlrBo2yqe/BCQ+3oAhk an8G/v407nUYHBjoL2dVf2c25dq0r+aqJqywHPQqnfn7Rf197GYoHqHOkE/0OsZo9Qek 8Ib9Sl9Ce0VorWX5DgWOcK+Zaf5ttxnSSnP4T0cp1FCOO/f4D6fsw4gqFEzkhe8MG3IJ ZaWGTBbqsVfXUm6QhKX1abIa0UjGozxSVVT6B3QJ/vsMhXeg16O0wqsk0/75C8Q3LKCb D19w== Received: by 10.216.204.105 with SMTP id g83mr6437705weo.80.1354718931466; Wed, 05 Dec 2012 06:48:51 -0800 (PST) Received: from dft-labs.eu (n1x0n-1-pt.tunnel.tserv5.lon1.ipv6.he.net. [2001:470:1f08:1f7::2]) by mx.google.com with ESMTPS id w5sm6703827wiz.10.2012.12.05.06.48.49 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 05 Dec 2012 06:48:50 -0800 (PST) Date: Wed, 5 Dec 2012 15:48:42 +0100 From: Mateusz Guzik To: Eitan Adler Subject: Re: svn commit: r243898 - head/usr.sbin/pw Message-ID: <20121205144842.GA29435@dft-labs.eu> References: <201212051356.qB5Duu0c068432@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <201212051356.qB5Duu0c068432@svn.freebsd.org> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 14:48:54 -0000 On Wed, Dec 05, 2012 at 01:56:56PM +0000, Eitan Adler wrote: > Author: eadler > Date: Wed Dec 5 13:56:56 2012 > New Revision: 243898 > URL: http://svnweb.freebsd.org/changeset/base/243898 > > Log: > Simplify string duplication: use strdup instead of malloc + strcpy > > Submitted by: db > Approved by: cperciva > MFC after: 2 weeks > > Modified: > head/usr.sbin/pw/grupd.c > > Modified: head/usr.sbin/pw/grupd.c > ============================================================================== > --- head/usr.sbin/pw/grupd.c Wed Dec 5 13:56:52 2012 (r243897) > +++ head/usr.sbin/pw/grupd.c Wed Dec 5 13:56:56 2012 (r243898) > @@ -50,12 +50,11 @@ setgrdir(const char * dir) > { > if (dir == NULL) > return -1; > - else { > - char * d = malloc(strlen(dir)+1); > - if (d == NULL) > - return -1; > - grpath = strcpy(d, dir); > - } > + else > + grpath = strdup(dir); > + if (grpath == NULL) > + return -1; > + > return 0; > } > (yes, I know pw is a lot of work) This can be further deuglified with slight change: --- a/usr.sbin/pw/grupd.c +++ b/usr.sbin/pw/grupd.c @@ -50,8 +50,8 @@ setgrdir(const char * dir) { if (dir == NULL) return -1; - else - grpath = strdup(dir); + + grpath = strdup(dir); if (grpath == NULL) return -1; Also the only consumer does not check for errors, but after cursory look I'm not sure if it is ok to just exit. -- Mateusz Guzik From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 15:11:02 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4BA992B8; Wed, 5 Dec 2012 15:11:02 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 19E7B8FC14; Wed, 5 Dec 2012 15:11:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5FB13V084109; Wed, 5 Dec 2012 15:11:01 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5FB1lK084105; Wed, 5 Dec 2012 15:11:01 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201212051511.qB5FB1lK084105@svn.freebsd.org> From: Attilio Rao Date: Wed, 5 Dec 2012 15:11:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243900 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 15:11:02 -0000 Author: attilio Date: Wed Dec 5 15:11:01 2012 New Revision: 243900 URL: http://svnweb.freebsd.org/changeset/base/243900 Log: Check for lockmgr recursion in case of disown and downgrade and panic also in !debugging kernel rather than having "undefined" behaviour. Tested by: avg MFC after: 1 week Modified: head/sys/kern/kern_lock.c Modified: head/sys/kern/kern_lock.c ============================================================================== --- head/sys/kern/kern_lock.c Wed Dec 5 13:57:00 2012 (r243899) +++ head/sys/kern/kern_lock.c Wed Dec 5 15:11:01 2012 (r243900) @@ -934,9 +934,19 @@ __lockmgr_args(struct lock *lk, u_int fl } break; case LK_DOWNGRADE: - _lockmgr_assert(lk, KA_XLOCKED | KA_NOTRECURSED, file, line); + _lockmgr_assert(lk, KA_XLOCKED, file, line); LOCK_LOG_LOCK("XDOWNGRADE", &lk->lock_object, 0, 0, file, line); WITNESS_DOWNGRADE(&lk->lock_object, 0, file, line); + + /* + * Panic if the lock is recursed. + */ + if (lockmgr_xlocked(lk) && lockmgr_recursed(lk)) { + if (flags & LK_INTERLOCK) + class->lc_unlock(ilk); + panic("%s: downgrade a recursed lockmgr %s @ %s:%d\n", + __func__, iwmesg, file, line); + } TD_SLOCKS_INC(curthread); /* @@ -1254,7 +1264,14 @@ _lockmgr_disown(struct lock *lk, const c return; tid = (uintptr_t)curthread; - _lockmgr_assert(lk, KA_XLOCKED | KA_NOTRECURSED, file, line); + _lockmgr_assert(lk, KA_XLOCKED, file, line); + + /* + * Panic if the lock is recursed. + */ + if (lockmgr_xlocked(lk) && lockmgr_recursed(lk)) + panic("%s: disown a recursed lockmgr @ %s:%d\n", + __func__, file, line); /* * If the owner is already LK_KERNPROC just skip the whole operation. From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 19:02:23 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0D298B19; Wed, 5 Dec 2012 19:02:23 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E481E8FC13; Wed, 5 Dec 2012 19:02:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5J2MVO030785; Wed, 5 Dec 2012 19:02:22 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5J2Mll030784; Wed, 5 Dec 2012 19:02:22 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201212051902.qB5J2Mll030784@svn.freebsd.org> From: Konstantin Belousov Date: Wed, 5 Dec 2012 19:02:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243901 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 19:02:23 -0000 Author: kib Date: Wed Dec 5 19:02:22 2012 New Revision: 243901 URL: http://svnweb.freebsd.org/changeset/base/243901 Log: The softclock_call_cc() is executing with the callout already removed from the callwheel. Calculate the cc->cc_next before removing the callout, otherwise the code followed the invalid tailq links. After this, make softclock_call_cc() return void, since it always return cc->cc_next, which is immediately available to the softclock() anyway. This also allows to eliminate a label under #ifdef SMP. Remove the assignment of cc->cc_next from callout_cc_del(), since the function is called with the callout already removed from callwheel. If cancelling the migration, also clear the CALLOUT_DFRMIGRATION flag. Postpone the free of the timeout(9) allocated callouts after the migration checks are done. Add some more strict asserts about the state of the callout in callout_call_cc(). Reviewed by: attilio Reported and tested by: pho (previous version) MFC after: 2 weeks Modified: head/sys/kern/kern_timeout.c Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Wed Dec 5 15:11:01 2012 (r243900) +++ head/sys/kern/kern_timeout.c Wed Dec 5 19:02:22 2012 (r243901) @@ -439,15 +439,13 @@ static void callout_cc_del(struct callout *c, struct callout_cpu *cc) { - if (cc->cc_next == c) - cc->cc_next = TAILQ_NEXT(c, c_links.tqe); - if (c->c_flags & CALLOUT_LOCAL_ALLOC) { - c->c_func = NULL; - SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); - } + if ((c->c_flags & CALLOUT_LOCAL_ALLOC) == 0) + return; + c->c_func = NULL; + SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); } -static struct callout * +static void softclock_call_cc(struct callout *c, struct callout_cpu *cc, int *mpcalls, int *lockcalls, int *gcalls) { @@ -469,7 +467,9 @@ softclock_call_cc(struct callout *c, str static timeout_t *lastfunc; #endif - cc->cc_next = TAILQ_NEXT(c, c_links.tqe); + KASSERT((c->c_flags & (CALLOUT_PENDING | CALLOUT_ACTIVE)) == + (CALLOUT_PENDING | CALLOUT_ACTIVE), + ("softclock_call_cc: pend|act %p %x", c, c->c_flags)); class = (c->c_lock != NULL) ? LOCK_CLASS(c->c_lock) : NULL; sharedlock = (c->c_flags & CALLOUT_SHAREDLOCK) ? 0 : 1; c_lock = c->c_lock; @@ -537,20 +537,7 @@ softclock_call_cc(struct callout *c, str class->lc_unlock(c_lock); skip: CC_LOCK(cc); - /* - * If the current callout is locally allocated (from - * timeout(9)) then put it on the freelist. - * - * Note: we need to check the cached copy of c_flags because - * if it was not local, then it's not safe to deref the - * callout pointer. - */ - if (c_flags & CALLOUT_LOCAL_ALLOC) { - KASSERT(c->c_flags == CALLOUT_LOCAL_ALLOC, - ("corrupted callout")); - c->c_func = NULL; - SLIST_INSERT_HEAD(&cc->cc_callfree, c, c_links.sle); - } + KASSERT(cc->cc_curr == c, ("mishandled cc_curr")); cc->cc_curr = NULL; if (cc->cc_waiting) { /* @@ -559,13 +546,17 @@ skip: * If the callout was scheduled for * migration just cancel it. */ - if (cc_cme_migrating(cc)) + if (cc_cme_migrating(cc)) { cc_cme_cleanup(cc); + c->c_flags &= ~CALLOUT_DFRMIGRATION; + } cc->cc_waiting = 0; CC_UNLOCK(cc); wakeup(&cc->cc_waiting); CC_LOCK(cc); } else if (cc_cme_migrating(cc)) { + KASSERT((c->c_flags & CALLOUT_LOCAL_ALLOC) == 0, + ("Migrating legacy callout %p", c)); #ifdef SMP /* * If the callout was scheduled for @@ -585,7 +576,7 @@ skip: "deferred cancelled %p func %p arg %p", c, new_func, new_arg); callout_cc_del(c, cc); - goto nextc; + return; } c->c_flags &= ~CALLOUT_DFRMIGRATION; @@ -604,10 +595,18 @@ skip: panic("migration should not happen"); #endif } -#ifdef SMP -nextc: -#endif - return (cc->cc_next); + /* + * If the current callout is locally allocated (from + * timeout(9)) then put it on the freelist. + * + * Note: we need to check the cached copy of c_flags because + * if it was not local, then it's not safe to deref the + * callout pointer. + */ + KASSERT((c_flags & CALLOUT_LOCAL_ALLOC) == 0 || + c->c_flags == CALLOUT_LOCAL_ALLOC, + ("corrupted callout")); + callout_cc_del(c, cc); } /* @@ -674,10 +673,12 @@ softclock(void *arg) steps = 0; } } else { + cc->cc_next = TAILQ_NEXT(c, c_links.tqe); TAILQ_REMOVE(bucket, c, c_links.tqe); - c = softclock_call_cc(c, cc, &mpcalls, + softclock_call_cc(c, cc, &mpcalls, &lockcalls, &gcalls); steps = 0; + c = cc->cc_next; } } } @@ -1022,6 +1023,8 @@ again: CTR3(KTR_CALLOUT, "cancelled %p func %p arg %p", c, c->c_func, c->c_arg); + if (cc->cc_next == c) + cc->cc_next = TAILQ_NEXT(c, c_links.tqe); TAILQ_REMOVE(&cc->cc_callwheel[c->c_time & callwheelmask], c, c_links.tqe); callout_cc_del(c, cc); From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 19:45:26 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9128143E; Wed, 5 Dec 2012 19:45:26 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 756FF8FC18; Wed, 5 Dec 2012 19:45:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5JjQVl023800; Wed, 5 Dec 2012 19:45:26 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5JjP97023794; Wed, 5 Dec 2012 19:45:25 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201212051945.qB5JjP97023794@svn.freebsd.org> From: Hiroki Sato Date: Wed, 5 Dec 2012 19:45:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243903 - in head: sbin/route sys/net sys/netinet6 usr.sbin/ndp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 19:45:26 -0000 Author: hrs Date: Wed Dec 5 19:45:24 2012 New Revision: 243903 URL: http://svnweb.freebsd.org/changeset/base/243903 Log: - Move definition of V_deembed_scopeid to scope6_var.h. - Deembed scope id in L3 address in in6_lltable_dump(). - Simplify scope id recovery in rtsock routines. - Remove embedded scope id handling in ndp(8) and route(8) completely. Modified: head/sbin/route/route.c head/sys/net/rtsock.c head/sys/netinet6/in6.c head/sys/netinet6/scope6.c head/sys/netinet6/scope6_var.h head/usr.sbin/ndp/ndp.c Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Wed Dec 5 19:38:31 2012 (r243902) +++ head/sbin/route/route.c Wed Dec 5 19:45:24 2012 (r243903) @@ -1215,16 +1215,6 @@ getaddr(int which, char *str, struct hos exit(1); } memcpy(&su->sin6, res->ai_addr, sizeof(su->sin6)); -#ifdef __KAME__ - if ((IN6_IS_ADDR_LINKLOCAL(&su->sin6.sin6_addr) || - IN6_IS_ADDR_MC_LINKLOCAL(&su->sin6.sin6_addr) || - IN6_IS_ADDR_MC_NODELOCAL(&su->sin6.sin6_addr)) && - su->sin6.sin6_scope_id) { - *(u_int16_t *)&su->sin6.sin6_addr.s6_addr[2] = - htons(su->sin6.sin6_scope_id); - su->sin6.sin6_scope_id = 0; - } -#endif freeaddrinfo(res); if (q != NULL) *q++ = '/'; Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Wed Dec 5 19:38:31 2012 (r243902) +++ head/sys/net/rtsock.c Wed Dec 5 19:45:24 2012 (r243903) @@ -65,6 +65,7 @@ #include #include #ifdef INET6 +#include #include #endif @@ -175,14 +176,6 @@ MTX_SYSINIT(rtsock, &rtsock_mtx, "rtsock #define RTSOCK_LOCK_ASSERT() mtx_assert(&rtsock_mtx, MA_OWNED) static SYSCTL_NODE(_net, OID_AUTO, route, CTLFLAG_RD, 0, ""); -#ifdef INET6 -static VNET_DEFINE(int, deembed_scopeid) = 1; -#define V_deembed_scopeid VNET(deembed_scopeid) -SYSCTL_DECL(_net_inet6_ip6); -SYSCTL_VNET_INT(_net_inet6_ip6, OID_AUTO, deembed_scopeid, CTLFLAG_RW, - &VNET_NAME(deembed_scopeid), 0, - "Extract embedded zone ID and set it to sin6_scope_id in sockaddr_in6."); -#endif struct walkarg { int w_tmemsize; @@ -572,9 +565,9 @@ route_output(struct mbuf *m, struct sock struct radix_node_head *rnh; struct rt_addrinfo info; #ifdef INET6 - struct sockaddr_storage ss_dst; - struct sockaddr_storage ss_gw; + struct sockaddr_storage ss; struct sockaddr_in6 *sin6; + int i, rti_need_deembed = 0; #endif int len, error = 0; struct ifnet *ifp = NULL; @@ -606,6 +599,11 @@ route_output(struct mbuf *m, struct sock rtm->rtm_pid = curproc->p_pid; bzero(&info, sizeof(info)); info.rti_addrs = rtm->rtm_addrs; + /* + * rt_xaddrs() performs s6_addr[2] := sin6_scope_id for AF_INET6 + * link-local address because rtrequest requires addresses with + * embedded scope id. + */ if (rt_xaddrs((caddr_t)(rtm + 1), len + (caddr_t)rtm, &info)) { info.rti_info[RTAX_DST] = NULL; senderr(EINVAL); @@ -672,11 +670,18 @@ route_output(struct mbuf *m, struct sock if (info.rti_info[RTAX_GATEWAY]->sa_family == AF_LINK && (rtm->rtm_flags & RTF_LLDATA) != 0) { error = lla_rt_output(rtm, &info); +#ifdef INET6 + if (error == 0) + rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; +#endif break; } error = rtrequest1_fib(RTM_ADD, &info, &saved_nrt, so->so_fibnum); if (error == 0 && saved_nrt) { +#ifdef INET6 + rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; +#endif RT_LOCK(saved_nrt); rt_setmetrics(rtm->rtm_inits, &rtm->rtm_rmx, &saved_nrt->rt_rmx); @@ -693,6 +698,10 @@ route_output(struct mbuf *m, struct sock (info.rti_info[RTAX_GATEWAY]->sa_family == AF_LINK) && (rtm->rtm_flags & RTF_LLDATA) != 0) { error = lla_rt_output(rtm, &info); +#ifdef INET6 + if (error == 0) + rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; +#endif break; } error = rtrequest1_fib(RTM_DELETE, &info, &saved_nrt, @@ -702,6 +711,10 @@ route_output(struct mbuf *m, struct sock rt = saved_nrt; goto report; } +#ifdef INET6 + /* rt_msg2() will not be used when RTM_DELETE fails. */ + rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; +#endif break; case RTM_GET: @@ -803,34 +816,7 @@ route_output(struct mbuf *m, struct sock senderr(ESRCH); } info.rti_info[RTAX_DST] = rt_key(rt); -#ifdef INET6 - if (V_deembed_scopeid) { - switch (rt_key(rt)->sa_family) { - case AF_INET6: - sin6 = (struct sockaddr_in6 *)&ss_dst; - bcopy(rt_key(rt), sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - info.rti_info[RTAX_DST] = - (struct sockaddr *)sin6; - break; - } - } -#endif info.rti_info[RTAX_GATEWAY] = rt->rt_gateway; -#ifdef INET6 - if (V_deembed_scopeid) { - switch (rt->rt_gateway->sa_family) { - case AF_INET6: - sin6 = (struct sockaddr_in6 *)&ss_gw; - bcopy(rt->rt_gateway, sin6, - sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - info.rti_info[RTAX_GATEWAY] = - (struct sockaddr *)sin6; - break; - } - } -#endif info.rti_info[RTAX_NETMASK] = rt_mask(rt); info.rti_info[RTAX_GENMASK] = 0; if (rtm->rtm_addrs & (RTA_IFP | RTA_IFA)) { @@ -972,6 +958,22 @@ flush: rp = sotorawcb(so); } if (rtm) { +#ifdef INET6 + if (rti_need_deembed) { + /* sin6_scope_id is recovered before sending rtm. */ + for (i = 0; i < RTAX_MAX; i++) { + sin6 = (struct sockaddr_in6 *)&ss; + if (info.rti_info[i] == NULL) + continue; + if (info.rti_info[i]->sa_family != AF_INET6) + continue; + bcopy(info.rti_info[i], sin6, sizeof(*sin6)); + if (sa6_recoverscope(sin6) == 0) + bcopy(sin6, info.rti_info[i], + sizeof(*sin6)); + } + } +#endif m_copyback(m, 0, rtm->rtm_msglen, (caddr_t)rtm); if (m->m_pkthdr.len < rtm->rtm_msglen) { m_freem(m); @@ -1065,6 +1067,11 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, str return (0); /* should be EINVAL but for compat */ } /* accept it */ +#ifdef INET6 + if (sa->sa_family == AF_INET6) + sa6_embedscope((struct sockaddr_in6 *)sa, + V_ip6_use_defzone); +#endif rtinfo->rti_info[i] = sa; cp += SA_SIZE(sa); } @@ -1217,15 +1224,15 @@ again: continue; rtinfo->rti_addrs |= (1 << i); dlen = SA_SIZE(sa); + if (cp) { #ifdef INET6 - if (V_deembed_scopeid && sa->sa_family == AF_INET6) { - sin6 = (struct sockaddr_in6 *)&ss; - bcopy(sa, sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - sa = (struct sockaddr *)sin6; - } + if (V_deembed_scopeid && sa->sa_family == AF_INET6) { + sin6 = (struct sockaddr_in6 *)&ss; + bcopy(sa, sin6, sizeof(*sin6)); + if (sa6_recoverscope(sin6) == 0) + sa = (struct sockaddr *)sin6; + } #endif - if (cp) { bcopy((caddr_t)sa, cp, (unsigned)dlen); cp += dlen; } @@ -1565,11 +1572,6 @@ sysctl_dumpentry(struct radix_node *rn, struct rtentry *rt = (struct rtentry *)rn; int error = 0, size; struct rt_addrinfo info; -#ifdef INET6 - struct sockaddr_storage ss[RTAX_MAX]; - struct sockaddr_in6 *sin6; - int i; -#endif if (w->w_op == NET_RT_FLAGS && !(rt->rt_flags & w->w_arg)) return 0; @@ -1588,20 +1590,6 @@ sysctl_dumpentry(struct radix_node *rn, if (rt->rt_ifp->if_flags & IFF_POINTOPOINT) info.rti_info[RTAX_BRD] = rt->rt_ifa->ifa_dstaddr; } -#ifdef INET6 - if (V_deembed_scopeid) { - for (i = 0; i < RTAX_MAX; i++) { - if (info.rti_info[i] == NULL) - continue; - if (info.rti_info[i]->sa_family != AF_INET6) - continue; - sin6 = (struct sockaddr_in6 *)&ss[i]; - bcopy(info.rti_info[i], sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - info.rti_info[i] = (struct sockaddr *)sin6; - } - } -#endif size = rt_msg2(RTM_GET, &info, NULL, w); if (w->w_req && w->w_tmem) { struct rt_msghdr *rtm = (struct rt_msghdr *)w->w_tmem; Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Wed Dec 5 19:38:31 2012 (r243902) +++ head/sys/netinet6/in6.c Wed Dec 5 19:45:24 2012 (r243903) @@ -2669,6 +2669,8 @@ in6_lltable_dump(struct lltable *llt, st ndpc.sin6.sin6_family = AF_INET6; ndpc.sin6.sin6_len = sizeof(ndpc.sin6); bcopy(L3_ADDR(lle), &ndpc.sin6, L3_ADDR_LEN(lle)); + if (V_deembed_scopeid) + sa6_recoverscope(&ndpc.sin6); /* publish */ if (lle->la_flags & LLE_PUB) Modified: head/sys/netinet6/scope6.c ============================================================================== --- head/sys/netinet6/scope6.c Wed Dec 5 19:38:31 2012 (r243902) +++ head/sys/netinet6/scope6.c Wed Dec 5 19:45:24 2012 (r243903) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -55,6 +56,11 @@ VNET_DEFINE(int, ip6_use_defzone) = 1; #else VNET_DEFINE(int, ip6_use_defzone) = 0; #endif +VNET_DEFINE(int, deembed_scopeid) = 1; +SYSCTL_DECL(_net_inet6_ip6); +SYSCTL_VNET_INT(_net_inet6_ip6, OID_AUTO, deembed_scopeid, CTLFLAG_RW, + &VNET_NAME(deembed_scopeid), 0, + "Extract embedded zone ID and set it to sin6_scope_id in sockaddr_in6."); /* * The scope6_lock protects the global sid default stored in @@ -379,8 +385,11 @@ sa6_recoverscope(struct sockaddr_in6 *si /* sanity check */ if (V_if_index < zoneid) return (ENXIO); +#if 0 + /* XXX: Disabled due to possible deadlock. */ if (!ifnet_byindex(zoneid)) return (ENXIO); +#endif if (sin6->sin6_scope_id != 0 && zoneid != sin6->sin6_scope_id) { log(LOG_NOTICE, Modified: head/sys/netinet6/scope6_var.h ============================================================================== --- head/sys/netinet6/scope6_var.h Wed Dec 5 19:38:31 2012 (r243902) +++ head/sys/netinet6/scope6_var.h Wed Dec 5 19:45:24 2012 (r243903) @@ -34,6 +34,8 @@ #define _NETINET6_SCOPE6_VAR_H_ #ifdef _KERNEL +#include + struct scope6_id { /* * 16 is correspondent to 4bit multicast scope field. @@ -42,6 +44,9 @@ struct scope6_id { u_int32_t s6id_list[16]; }; +VNET_DECLARE(int, deembed_scopeid); +#define V_deembed_scopeid VNET(deembed_scopeid) + void scope6_init(void); struct scope6_id *scope6_ifattach(struct ifnet *); void scope6_ifdetach(struct scope6_id *); Modified: head/usr.sbin/ndp/ndp.c ============================================================================== --- head/usr.sbin/ndp/ndp.c Wed Dec 5 19:38:31 2012 (r243902) +++ head/usr.sbin/ndp/ndp.c Wed Dec 5 19:45:24 2012 (r243903) @@ -404,12 +404,8 @@ set(argc, argv) return 1; } sin->sin6_addr = ((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; -#ifdef __KAME__ - if (IN6_IS_ADDR_LINKLOCAL(&sin->sin6_addr)) { - *(u_int16_t *)&sin->sin6_addr.s6_addr[2] = - htons(((struct sockaddr_in6 *)res->ai_addr)->sin6_scope_id); - } -#endif + sin->sin6_scope_id = + ((struct sockaddr_in6 *)res->ai_addr)->sin6_scope_id; ea = (u_char *)LLADDR(&sdl_m); if (ndp_ether_aton(eaddr, ea) == 0) sdl_m.sdl_alen = 6; @@ -478,12 +474,6 @@ get(host) return; } sin->sin6_addr = ((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; -#ifdef __KAME__ - if (IN6_IS_ADDR_LINKLOCAL(&sin->sin6_addr)) { - *(u_int16_t *)&sin->sin6_addr.s6_addr[2] = - htons(((struct sockaddr_in6 *)res->ai_addr)->sin6_scope_id); - } -#endif dump(&sin->sin6_addr, 0); if (found_entry == 0) { getnameinfo((struct sockaddr *)sin, sin->sin6_len, host_buf, @@ -520,12 +510,8 @@ delete(host) return 1; } sin->sin6_addr = ((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; -#ifdef __KAME__ - if (IN6_IS_ADDR_LINKLOCAL(&sin->sin6_addr)) { - *(u_int16_t *)&sin->sin6_addr.s6_addr[2] = - htons(((struct sockaddr_in6 *)res->ai_addr)->sin6_scope_id); - } -#endif + sin->sin6_scope_id = + ((struct sockaddr_in6 *)res->ai_addr)->sin6_scope_id; if (rtmsg(RTM_GET) < 0) { errx(1, "RTM_GET(%s) failed", host); /* NOTREACHED */ @@ -556,16 +542,8 @@ delete: NEXTADDR(RTA_DST, sin_m); rtm->rtm_flags |= RTF_LLDATA; if (rtmsg(RTM_DELETE) == 0) { - struct sockaddr_in6 s6 = *sin; /* XXX: for safety */ - -#ifdef __KAME__ - if (IN6_IS_ADDR_LINKLOCAL(&s6.sin6_addr)) { - s6.sin6_scope_id = ntohs(*(u_int16_t *)&s6.sin6_addr.s6_addr[2]); - *(u_int16_t *)&s6.sin6_addr.s6_addr[2] = 0; - } -#endif - getnameinfo((struct sockaddr *)&s6, - s6.sin6_len, host_buf, + getnameinfo((struct sockaddr *)sin, + sin->sin6_len, host_buf, sizeof(host_buf), NULL, 0, (nflag ? NI_NUMERICHOST : 0)); printf("%s (%s) deleted\n", host, host_buf); @@ -666,10 +644,6 @@ again:; /* XXX: should scope id be filled in the kernel? */ if (sin->sin6_scope_id == 0) sin->sin6_scope_id = sdl->sdl_index; -#ifdef __KAME__ - /* KAME specific hack; removed the embedded id */ - *(u_int16_t *)&sin->sin6_addr.s6_addr[2] = 0; -#endif } getnameinfo((struct sockaddr *)sin, sin->sin6_len, host_buf, sizeof(host_buf), NULL, 0, (nflag ? NI_NUMERICHOST : 0)); @@ -1331,22 +1305,6 @@ plist() p6.sin6_len = sizeof(p6); p6.sin6_addr = PR.prefix; #endif - - /* - * copy link index to sin6_scope_id field. - * XXX: KAME specific. - */ - if (IN6_IS_ADDR_LINKLOCAL(&p6.sin6_addr)) { - u_int16_t linkid; - - memcpy(&linkid, &p6.sin6_addr.s6_addr[2], - sizeof(linkid)); - linkid = ntohs(linkid); - p6.sin6_scope_id = linkid; - p6.sin6_addr.s6_addr[2] = 0; - p6.sin6_addr.s6_addr[3] = 0; - } - niflags = NI_NUMERICHOST; if (getnameinfo((struct sockaddr *)&p6, sizeof(p6), namebuf, sizeof(namebuf), From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 20:21:34 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 84A8EC4E; Wed, 5 Dec 2012 20:21:34 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 4F66D8FC12; Wed, 5 Dec 2012 20:21:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5KLYoA029518; Wed, 5 Dec 2012 20:21:34 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5KLYKh029517; Wed, 5 Dec 2012 20:21:34 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201212052021.qB5KLYKh029517@svn.freebsd.org> From: Jim Harris Date: Wed, 5 Dec 2012 20:21:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243904 - head/sys/dev/isci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 20:21:34 -0000 Author: jimharris Date: Wed Dec 5 20:21:33 2012 New Revision: 243904 URL: http://svnweb.freebsd.org/changeset/base/243904 Log: Don't call bus_dmamap_load in CAM_DIR_NONE case, since there is nothing to map, and technically this isn't allowed. Functionally, it works OK (at least on x86) to call bus_dmamap_load with a NULL data pointer and zero length, so this is primarily for correctness and consistency with other drivers. While here, remove check in isci_io_request_construct for nseg==0. Previously, bus_dmamap_load would pass nseg==1, even for case where buffer is NULL and length = 0, which allowed CAM_DIR_NONE CCBs to get processed. This check is not correct though, and needed to be removed both for the changes elsewhere in this patch, as well as jeff's preliminary bus_dmamap_load_ccb patch (which uncovered all of this in the first place). MFC after: 3 days Modified: head/sys/dev/isci/isci_io_request.c Modified: head/sys/dev/isci/isci_io_request.c ============================================================================== --- head/sys/dev/isci/isci_io_request.c Wed Dec 5 19:45:24 2012 (r243903) +++ head/sys/dev/isci/isci_io_request.c Wed Dec 5 20:21:33 2012 (r243904) @@ -670,8 +670,7 @@ isci_io_request_construct(void *arg, bus io_request->sge = seg; ccb = io_request->ccb; - /* XXX More cleanup is needed here */ - if ((nseg == 0) || (error != 0)) { + if (error != 0) { ccb->ccb_h.status = CAM_REQ_INVALID; xpt_done(ccb); return; @@ -757,18 +756,21 @@ isci_io_request_execute_scsi_io(union cc panic("Unexpected CAM_DATA_PHYS flag! flags = 0x%x\n", ccb->ccb_h.flags); - error = bus_dmamap_load(io_request->parent.dma_tag, - io_request->parent.dma_map, csio->data_ptr, csio->dxfer_len, - isci_io_request_construct, io_request, 0x0); - - /* A resource shortage from BUSDMA will be automatically - * continued at a later point, pushing the CCB processing - * forward, which will in turn unfreeze the simq. - */ - if (error == EINPROGRESS) { - xpt_freeze_simq(controller->sim, 1); - ccb->ccb_h.flags |= CAM_RELEASE_SIMQ; - } + if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { + error = bus_dmamap_load(io_request->parent.dma_tag, + io_request->parent.dma_map, csio->data_ptr, csio->dxfer_len, + isci_io_request_construct, io_request, 0x0); + + /* A resource shortage from BUSDMA will be automatically + * continued at a later point, pushing the CCB processing + * forward, which will in turn unfreeze the simq. + */ + if (error == EINPROGRESS) { + xpt_freeze_simq(controller->sim, 1); + ccb->ccb_h.flags |= CAM_RELEASE_SIMQ; + } + } else + isci_io_request_construct(io_request, NULL, 0, 0); } void From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 20:28:45 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8F91BF7C; Wed, 5 Dec 2012 20:28:45 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 5855C8FC0C; Wed, 5 Dec 2012 20:28:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5KSjnZ030437; Wed, 5 Dec 2012 20:28:45 GMT (envelope-from bapt@svn.freebsd.org) Received: (from bapt@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5KSiJX030434; Wed, 5 Dec 2012 20:28:44 GMT (envelope-from bapt@svn.freebsd.org) Message-Id: <201212052028.qB5KSiJX030434@svn.freebsd.org> From: Baptiste Daroussin Date: Wed, 5 Dec 2012 20:28:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243906 - in head: lib/libipsec sys/dev/aic7xxx/aicasm usr.sbin/ndiscvt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 20:28:45 -0000 Author: bapt Date: Wed Dec 5 20:28:44 2012 New Revision: 243906 URL: http://svnweb.freebsd.org/changeset/base/243906 Log: remove redundant yyparse declarations PR: conf/174079 Submitted by: Garrett Cooper Modified: head/lib/libipsec/policy_parse.y head/sys/dev/aic7xxx/aicasm/aicasm_gram.y head/usr.sbin/ndiscvt/inf-parse.y Modified: head/lib/libipsec/policy_parse.y ============================================================================== --- head/lib/libipsec/policy_parse.y Wed Dec 5 20:25:45 2012 (r243905) +++ head/lib/libipsec/policy_parse.y Wed Dec 5 20:28:44 2012 (r243906) @@ -88,7 +88,6 @@ static caddr_t policy_parse(char *msg, i extern void __policy__strbuffer__init__(char *msg); extern void __policy__strbuffer__free__(void); -extern int yyparse(void); extern int yylex(void); extern char *__libipsecyytext; /*XXX*/ Modified: head/sys/dev/aic7xxx/aicasm/aicasm_gram.y ============================================================================== --- head/sys/dev/aic7xxx/aicasm/aicasm_gram.y Wed Dec 5 20:25:45 2012 (r243905) +++ head/sys/dev/aic7xxx/aicasm/aicasm_gram.y Wed Dec 5 20:28:44 2012 (r243906) @@ -103,7 +103,6 @@ static void add_version(const char *vers static int is_download_const(expression_t *immed); extern int yylex (void); -extern int yyparse (void); #define SRAM_SYMNAME "SRAM_BASE" #define SCB_SYMNAME "SCB_BASE" Modified: head/usr.sbin/ndiscvt/inf-parse.y ============================================================================== --- head/usr.sbin/ndiscvt/inf-parse.y Wed Dec 5 20:25:45 2012 (r243905) +++ head/usr.sbin/ndiscvt/inf-parse.y Wed Dec 5 20:28:44 2012 (r243906) @@ -40,7 +40,6 @@ __FBSDID("$FreeBSD$"); #include "inf.h" -extern int yyparse (void); extern int yylex (void); extern void yyerror(const char *); %} From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 20:39:11 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E5B58564; Wed, 5 Dec 2012 20:39:11 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.dawidek.net (garage.dawidek.net [91.121.88.72]) by mx1.freebsd.org (Postfix) with ESMTP id 20CC68FC14; Wed, 5 Dec 2012 20:39:11 +0000 (UTC) Received: from localhost (89-73-195-149.dynamic.chello.pl [89.73.195.149]) by mail.dawidek.net (Postfix) with ESMTPSA id AD8FCBD4; Wed, 5 Dec 2012 21:37:08 +0100 (CET) Date: Wed, 5 Dec 2012 21:40:31 +0100 From: Pawel Jakub Dawidek To: Eitan Adler Subject: Re: svn commit: r243895 - head/usr.sbin/pw Message-ID: <20121205204030.GB1423@garage.freebsd.pl> References: <201212051356.qB5Duks1068301@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="96YOpH+ONegL0A3E" Content-Disposition: inline In-Reply-To: <201212051356.qB5Duks1068301@svn.freebsd.org> X-OS: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 20:39:12 -0000 --96YOpH+ONegL0A3E Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Dec 05, 2012 at 01:56:46PM +0000, Eitan Adler wrote: > Author: eadler > Date: Wed Dec 5 13:56:46 2012 > New Revision: 243895 > URL: http://svnweb.freebsd.org/changeset/base/243895 >=20 > Log: > Avoid overflow of file buffer Buffer won't overflow, but the path will be truncated, which is neither detected nor handled. > Submitted by: db > Approved by: cperciva > MFC after: 2 weeks >=20 > Modified: > head/usr.sbin/pw/pw_user.c >=20 > Modified: head/usr.sbin/pw/pw_user.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/usr.sbin/pw/pw_user.c Wed Dec 5 13:56:43 2012 (r243894) > +++ head/usr.sbin/pw/pw_user.c Wed Dec 5 13:56:46 2012 (r243895) > @@ -394,7 +394,7 @@ pw_user(struct userconf * cnf, int mode, > /* > * Remove crontabs > */ > - sprintf(file, "/var/cron/tabs/%s", pwd->pw_name); > + snprintf(file, sizeof(file), "/var/cron/tabs/%s", pwd->pw_name); > if (access(file, F_OK) =3D=3D 0) { > sprintf(file, "crontab -u %s -r", pwd->pw_name); > system(file); --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://tupytaj.pl --96YOpH+ONegL0A3E Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlC/sT4ACgkQForvXbEpPzS2kACghWrgxGtoRPGeaQBFZSyKzfl4 LS8AoM2X1e62BHS644YHGXPnUGizXkJM =fxl4 -----END PGP SIGNATURE----- --96YOpH+ONegL0A3E-- From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 20:50:40 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E4B17784; Wed, 5 Dec 2012 20:50:40 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C90888FC12; Wed, 5 Dec 2012 20:50:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5KoesW033131; Wed, 5 Dec 2012 20:50:40 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5KoebD033130; Wed, 5 Dec 2012 20:50:40 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201212052050.qB5KoebD033130@svn.freebsd.org> From: Dimitry Andric Date: Wed, 5 Dec 2012 20:50:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243907 - head/sbin/devd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 20:50:41 -0000 Author: dim Date: Wed Dec 5 20:50:40 2012 New Revision: 243907 URL: http://svnweb.freebsd.org/changeset/base/243907 Log: Fix an old bug in devd, where it uses std::sort() to sort the various lists it reads from its configuration files on the priority field. Because some items in the lists have the same priority, and std::sort() is not stable, the exact order in which the items are enumerated does not have to correspond to the order they appear in the configuration files. Apparently this was never noticed with libstdc++, but with libc++ it could cause the "uhid" entry from /etc/devd/usb.conf to be used instead of the "ums" entry (which is earlier in the file). This caused the problem described in the PR: the USB mouse module was never loaded, and the other actions (such as starting moused) were not executed. To fix the problem, make devd use std:stable_sort() instead. Reported by: Jan Beich PR: bin/172958 MFC after: 2 weeks Modified: head/sbin/devd/devd.cc Modified: head/sbin/devd/devd.cc ============================================================================== --- head/sbin/devd/devd.cc Wed Dec 5 20:28:44 2012 (r243906) +++ head/sbin/devd/devd.cc Wed Dec 5 20:50:40 2012 (r243907) @@ -445,7 +445,7 @@ public: void config::sort_vector(vector &v) { - sort(v.begin(), v.end(), epv_greater()); + stable_sort(v.begin(), v.end(), epv_greater()); } void From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 21:07:27 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E2E1FC13; Wed, 5 Dec 2012 21:07:27 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C822D8FC12; Wed, 5 Dec 2012 21:07:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5L7RhI036013; Wed, 5 Dec 2012 21:07:27 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5L7Rla036012; Wed, 5 Dec 2012 21:07:27 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201212052107.qB5L7Rla036012@svn.freebsd.org> From: Olivier Houchard Date: Wed, 5 Dec 2012 21:07:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243909 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 21:07:28 -0000 Author: cognet Date: Wed Dec 5 21:07:27 2012 New Revision: 243909 URL: http://svnweb.freebsd.org/changeset/base/243909 Log: Don't write-back the cachelines if we really just want to invalidate them. Spotted out by: Ian Lepore Modified: head/sys/arm/arm/busdma_machdep-v6.c Modified: head/sys/arm/arm/busdma_machdep-v6.c ============================================================================== --- head/sys/arm/arm/busdma_machdep-v6.c Wed Dec 5 21:05:00 2012 (r243908) +++ head/sys/arm/arm/busdma_machdep-v6.c Wed Dec 5 21:07:27 2012 (r243909) @@ -1095,7 +1095,7 @@ _bus_dmamap_fix_user(vm_offset_t buf, bu #else #define l2cache_wb_range(va, pa, size) cpu_l2cache_wb_range(va, size) #define l2cache_wbinv_range(va, pa, size) cpu_l2cache_wbinv_range(va, size) -#define l2cache_inv_range(va, pa, size) cpu_l2cache_wbinv_range(va, size) +#define l2cache_inv_range(va, pa, size) cpu_l2cache_inv_range(va, size) #endif void From owner-svn-src-head@FreeBSD.ORG Wed Dec 5 22:32:12 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D241FCFB; Wed, 5 Dec 2012 22:32:12 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B42FF8FC12; Wed, 5 Dec 2012 22:32:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB5MWCWF049593; Wed, 5 Dec 2012 22:32:12 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB5MWCAw049591; Wed, 5 Dec 2012 22:32:12 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201212052232.qB5MWCAw049591@svn.freebsd.org> From: Attilio Rao Date: Wed, 5 Dec 2012 22:32:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243912 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2012 22:32:13 -0000 Author: attilio Date: Wed Dec 5 22:32:12 2012 New Revision: 243912 URL: http://svnweb.freebsd.org/changeset/base/243912 Log: Fixup r243901: - As the comment report, CALLOUT_LOCAL_ALLOC cannot be checked directly from the callout flags but might be checked by a cached value. Hence, do so before to actually remove the callout, when needed, in softclock_call_cc(). - In softclock_call_cc() also add a comment in the waiting and deferred migration case explaining that the dereference should be safe because of the migration dereference invariants. Additively: - In softclock_call_cc(), for the deferred migration case, move all the accesses to callout structure after the comment stating the callout must not be destroyed. - For consistency with this last tweak, use cached c_flags for the KASSERT() in the deferred migration case. It is not strictly necessary but this way all the callout accesses happen after the above mentioned comment, improving consistency. Pointy hat to: me Sponsored by: Isilon Systems / EMC Corporation Reviewed by: kib MFC after: 2 weeks X-MFC: 243901 Modified: head/sys/kern/kern_timeout.c Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Wed Dec 5 21:49:10 2012 (r243911) +++ head/sys/kern/kern_timeout.c Wed Dec 5 22:32:12 2012 (r243912) @@ -548,6 +548,11 @@ skip: */ if (cc_cme_migrating(cc)) { cc_cme_cleanup(cc); + + /* + * It should be assert here that the callout is not + * destroyed but that is not easy. + */ c->c_flags &= ~CALLOUT_DFRMIGRATION; } cc->cc_waiting = 0; @@ -555,7 +560,7 @@ skip: wakeup(&cc->cc_waiting); CC_LOCK(cc); } else if (cc_cme_migrating(cc)) { - KASSERT((c->c_flags & CALLOUT_LOCAL_ALLOC) == 0, + KASSERT((c_flags & CALLOUT_LOCAL_ALLOC) == 0, ("Migrating legacy callout %p", c)); #ifdef SMP /* @@ -569,7 +574,10 @@ skip: cc_cme_cleanup(cc); /* - * Handle deferred callout stops + * It should be assert here that the callout is not destroyed + * but that is not easy. + * + * As first thing, handle deferred callout stops. */ if ((c->c_flags & CALLOUT_DFRMIGRATION) == 0) { CTR3(KTR_CALLOUT, @@ -578,14 +586,8 @@ skip: callout_cc_del(c, cc); return; } - c->c_flags &= ~CALLOUT_DFRMIGRATION; - /* - * It should be assert here that the - * callout is not destroyed but that - * is not easy. - */ new_cc = callout_cpu_switch(c, cc, new_cpu); callout_cc_add(c, new_cc, new_ticks, new_func, new_arg, new_cpu); @@ -606,7 +608,8 @@ skip: KASSERT((c_flags & CALLOUT_LOCAL_ALLOC) == 0 || c->c_flags == CALLOUT_LOCAL_ALLOC, ("corrupted callout")); - callout_cc_del(c, cc); + if (c_flags & CALLOUT_LOCAL_ALLOC) + callout_cc_del(c, cc); } /* From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 00:36:32 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E6AE7B46; Thu, 6 Dec 2012 00:36:32 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail05.syd.optusnet.com.au (mail05.syd.optusnet.com.au [211.29.132.186]) by mx1.freebsd.org (Postfix) with ESMTP id 74C6A8FC12; Thu, 6 Dec 2012 00:36:32 +0000 (UTC) Received: from c122-106-175-26.carlnfd1.nsw.optusnet.com.au (c122-106-175-26.carlnfd1.nsw.optusnet.com.au [122.106.175.26]) by mail05.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id qB60aOU0008984 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 6 Dec 2012 11:36:28 +1100 Date: Thu, 6 Dec 2012 11:36:24 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Pawel Jakub Dawidek Subject: Re: svn commit: r243895 - head/usr.sbin/pw In-Reply-To: <20121205204030.GB1423@garage.freebsd.pl> Message-ID: <20121206104345.S1043@besplex.bde.org> References: <201212051356.qB5Duks1068301@svn.freebsd.org> <20121205204030.GB1423@garage.freebsd.pl> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.0 cv=Zr21sKHG c=1 sm=1 a=MmPLKb8l7IEA:10 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=dkUHpakOesgA:10 a=5EdqjcyoQ_bIxJWsV6gA:9 a=CjuIK1q_8ugA:10 a=zg40Taf1EKa0PupS:21 a=5f4wRyUj4GgbJL6m:21 a=bxQHXO5Py4tHmhUgaywp5w==:117 Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Eitan Adler X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 00:36:33 -0000 On Wed, 5 Dec 2012, Pawel Jakub Dawidek wrote: > On Wed, Dec 05, 2012 at 01:56:46PM +0000, Eitan Adler wrote: >> >> Log: >> Avoid overflow of file buffer > > Buffer won't overflow, but the path will be truncated, which is neither > detected nor handled. Good enough for software not related to security :-). >> Submitted by: db >> Approved by: cperciva >> MFC after: 2 weeks >> >> Modified: >> head/usr.sbin/pw/pw_user.c >> >> Modified: head/usr.sbin/pw/pw_user.c >> ============================================================================== >> --- head/usr.sbin/pw/pw_user.c Wed Dec 5 13:56:43 2012 (r243894) >> +++ head/usr.sbin/pw/pw_user.c Wed Dec 5 13:56:46 2012 (r243895) >> @@ -394,7 +394,7 @@ pw_user(struct userconf * cnf, int mode, >> /* >> * Remove crontabs >> */ >> - sprintf(file, "/var/cron/tabs/%s", pwd->pw_name); The old version could have used strcpy() followed by strcat() to be equally insecure. sprintf() was used for convenience. >> + snprintf(file, sizeof(file), "/var/cron/tabs/%s", pwd->pw_name); The new version could use strcpy() followed strlcat() without checking the return value to be equally insecure. Now using snprintf() is not very convenient if you actually check its return value. Style bug: a line 1 longer than 80 columns was expanded to be much longer. >> if (access(file, F_OK) == 0) { This check ameliorates the previous bugs -- most corrupted strings will point to a file that doesn't exist, so we reach here. >> sprintf(file, "crontab -u %s -r", pwd->pw_name); Why bother fixing the above without touching this? This may overrun the buffer too. The fixed part of the string happens to be 1 shorter, so that if the above didn't overrun, then this won't either. Style bugs: - a line longer than 80 characters - the variable 'file' is abused by reusing it to hold a non-file. `file' has size MAXPATHLEN, so it is good enough for holding a pathname (syscalls would fail if it were larger and the extra space was used), but it is a little too small for a command containing most of the failing pathname. >> system(file); pw_user.c still uses many other similar sprintf()'s. Some of them are: % char file[MAXPATHLEN]; % char home[MAXPATHLEN]; % strlcpy(home, pwd->pw_dir, sizeof(home)); Truncation using strlcpy() is also popular. pw_user.c already uses strlcpy() a lot. It never checks for truncation of course. I only quoted strlcpy() here because I misread it at first as being part of a silly combination with sprintf(), with sprintf() to provide the buffer overflow and strlcpy() to provide the truncation, and 2 calls used to build up a string that could be built with 1 snprintf(). pw_user.c isn't actually that silly. It just has a weird mixture of insecure strlcpy()'s with more-insecure sprintf()'s, after blind replacement of strncpy()'s with unchecked strlcpy()'s. % sprintf(line, "%s/%s", _PATH_MAILDIR, pwd->pw_name); % sprintf(file, "%s/%s", _PATH_MAILDIR, pwd->pw_name); % sprintf(home, "%s/%s", cnf->home, user); % static char shellpath[256]; % sprintf(shellpath, "%s/%s", p, sh); % sprintf(shellpath, "%s/%s", p, shells[i]); shellpath is much shorter than MAXPATHLEN, so even useful strings might overrun it. Bruce From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:25:15 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8990A6A0; Thu, 6 Dec 2012 01:25:15 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 54AAE8FC0C; Thu, 6 Dec 2012 01:25:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB61PF8H027193; Thu, 6 Dec 2012 01:25:15 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB61PFb8027191; Thu, 6 Dec 2012 01:25:15 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212060125.qB61PFb8027191@svn.freebsd.org> From: Eitan Adler Date: Thu, 6 Dec 2012 01:25:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243930 - head/sbin/devd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:25:15 -0000 Author: eadler Date: Thu Dec 6 01:25:14 2012 New Revision: 243930 URL: http://svnweb.freebsd.org/changeset/base/243930 Log: Constify where possible Approved by: cperciva MFC after: 2 weeks Modified: head/sbin/devd/devd.cc head/sbin/devd/devd.hh Modified: head/sbin/devd/devd.cc ============================================================================== --- head/sbin/devd/devd.cc Thu Dec 6 00:49:59 2012 (r243929) +++ head/sbin/devd/devd.cc Thu Dec 6 01:25:14 2012 (r243930) @@ -151,7 +151,7 @@ event_proc::add(eps *eps) } bool -event_proc::matches(config &c) +event_proc::matches(config &c) const { vector::const_iterator i; @@ -162,7 +162,7 @@ event_proc::matches(config &c) } bool -event_proc::run(config &c) +event_proc::run(config &c) const { vector::const_iterator i; @@ -436,7 +436,7 @@ config::parse_files_in_dir(const char *d class epv_greater { public: - int operator()(event_proc *const&l1, event_proc *const&l2) + int operator()(event_proc *const&l1, event_proc *const&l2) const { return (l1->get_priority() > l2->get_priority()); } @@ -577,7 +577,7 @@ config::get_variable(const string &var) } bool -config::is_id_char(char ch) +config::is_id_char(char ch) const { return (ch != '\0' && (isalpha(ch) || isdigit(ch) || ch == '_' || ch == '-')); Modified: head/sbin/devd/devd.hh ============================================================================== --- head/sbin/devd/devd.hh Thu Dec 6 00:49:59 2012 (r243929) +++ head/sbin/devd/devd.hh Thu Dec 6 01:25:14 2012 (r243930) @@ -134,8 +134,8 @@ public: int get_priority() const { return (_prio); } void set_priority(int prio) { _prio = prio; } void add(eps *); - bool matches(config &); - bool run(config &); + bool matches(config &) const; + bool run(config &) const; private: int _prio; std::vector _epsvec; @@ -170,7 +170,7 @@ protected: void parse_one_file(const char *fn); void parse_files_in_dir(const char *dirname); void expand_one(const char *&src, std::string &dst); - bool is_id_char(char); + bool is_id_char(char) const; bool chop_var(char *&buffer, char *&lhs, char *&rhs); private: std::vector _dir_list; From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:25:22 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F1A837A7; Thu, 6 Dec 2012 01:25:21 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D71288FC13; Thu, 6 Dec 2012 01:25:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB61PLUX027275; Thu, 6 Dec 2012 01:25:21 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB61PL8w027273; Thu, 6 Dec 2012 01:25:21 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212060125.qB61PL8w027273@svn.freebsd.org> From: Eitan Adler Date: Thu, 6 Dec 2012 01:25:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243932 - head/sbin/devd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:25:22 -0000 Author: eadler Date: Thu Dec 6 01:25:21 2012 New Revision: 243932 URL: http://svnweb.freebsd.org/changeset/base/243932 Log: Prefer the use of initalizer lists to ctor assignment. Approved by: cperciva MFC after: 2 weeks Modified: head/sbin/devd/devd.cc head/sbin/devd/devd.hh Modified: head/sbin/devd/devd.cc ============================================================================== --- head/sbin/devd/devd.cc Thu Dec 6 01:25:17 2012 (r243931) +++ head/sbin/devd/devd.cc Thu Dec 6 01:25:21 2012 (r243932) @@ -248,9 +248,8 @@ action::do_action(config &c) } match::match(config &c, const char *var, const char *re) - : _var(var) + : _var(var), _re("^") { - _re = "^"; if (!c.expand_string(string(re)).empty() && c.expand_string(string(re)).at(0) == '!') { _re.append(c.expand_string(string(re)).substr(1)); Modified: head/sbin/devd/devd.hh ============================================================================== --- head/sbin/devd/devd.hh Thu Dec 6 01:25:17 2012 (r243931) +++ head/sbin/devd/devd.hh Thu Dec 6 01:25:21 2012 (r243932) @@ -144,7 +144,7 @@ private: class config { public: - config() { _pidfile = ""; push_var_table(); } + config() : _pidfile("") { push_var_table(); } virtual ~config() { reset(); } void add_attach(int, event_proc *); void add_detach(int, event_proc *); From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:25:18 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B56C46A1; Thu, 6 Dec 2012 01:25:18 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 824D18FC12; Thu, 6 Dec 2012 01:25:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB61PIe7027230; Thu, 6 Dec 2012 01:25:18 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB61PIN0027228; Thu, 6 Dec 2012 01:25:18 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212060125.qB61PIN0027228@svn.freebsd.org> From: Eitan Adler Date: Thu, 6 Dec 2012 01:25:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243931 - head/sbin/devd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:25:18 -0000 Author: eadler Date: Thu Dec 6 01:25:17 2012 New Revision: 243931 URL: http://svnweb.freebsd.org/changeset/base/243931 Log: Avoid the creation of a temporary object by using the prefix operator for non-primitive types. Approved by: cperciva MFC after: 2 weeks Modified: head/sbin/devd/devd.cc Modified: head/sbin/devd/devd.cc ============================================================================== --- head/sbin/devd/devd.cc Thu Dec 6 01:25:14 2012 (r243930) +++ head/sbin/devd/devd.cc Thu Dec 6 01:25:17 2012 (r243931) @@ -127,7 +127,7 @@ delete_and_clear(vector &v) { typename vector::const_iterator i; - for (i = v.begin(); i != v.end(); i++) + for (i = v.begin(); i != v.end(); ++i) delete *i; v.clear(); } @@ -155,7 +155,7 @@ event_proc::matches(config &c) const { vector::const_iterator i; - for (i = _epsvec.begin(); i != _epsvec.end(); i++) + for (i = _epsvec.begin(); i != _epsvec.end(); ++i) if (!(*i)->do_match(c)) return (false); return (true); @@ -166,7 +166,7 @@ event_proc::run(config &c) const { vector::const_iterator i; - for (i = _epsvec.begin(); i != _epsvec.end(); i++) + for (i = _epsvec.begin(); i != _epsvec.end(); ++i) if (!(*i)->do_action(c)) return (false); return (true); @@ -301,7 +301,7 @@ media::media(config &, const char *var, { -1, "unknown" }, { 0, NULL }, }; - for (int i = 0; media_types[i].ifmt_string != NULL; i++) + for (int i = 0; media_types[i].ifmt_string != NULL; ++i) if (strcasecmp(type, media_types[i].ifmt_string) == 0) { _type = media_types[i].ifmt_word; break; @@ -454,7 +454,7 @@ config::parse(void) vector::const_iterator i; parse_one_file(configfile); - for (i = _dir_list.begin(); i != _dir_list.end(); i++) + for (i = _dir_list.begin(); i != _dir_list.end(); ++i) parse_files_in_dir((*i).c_str()); sort_vector(_attach_list); sort_vector(_detach_list); @@ -569,7 +569,7 @@ config::get_variable(const string &var) { vector::reverse_iterator i; - for (i = _var_list_table.rbegin(); i != _var_list_table.rend(); i++) { + for (i = _var_list_table.rbegin(); i != _var_list_table.rend(); ++i) { if ((*i)->is_set(var)) return ((*i)->get_variable(var)); } @@ -726,7 +726,7 @@ config::find_and_execute(char type) } if (Dflag) fprintf(stderr, "Processing %s event\n", s); - for (i = l->begin(); i != l->end(); i++) { + for (i = l->begin(); i != l->end(); ++i) { if ((*i)->matches(*this)) { (*i)->run(*this); break; @@ -823,14 +823,14 @@ notify_clients(const char *data, int len list bad; list::const_iterator i; - for (i = clients.begin(); i != clients.end(); i++) { + for (i = clients.begin(); i != clients.end(); ++i) { if (write(*i, data, len) <= 0) { bad.push_back(*i); close(*i); } } - for (i = bad.begin(); i != bad.end(); i++) + for (i = bad.begin(); i != bad.end(); ++i) clients.erase(find(clients.begin(), clients.end(), *i)); } From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:31:31 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7124CE00; Thu, 6 Dec 2012 01:31:31 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 52F728FC14; Thu, 6 Dec 2012 01:31:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB61VVUp028190; Thu, 6 Dec 2012 01:31:31 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB61VPPH028157; Thu, 6 Dec 2012 01:31:25 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212060131.qB61VPPH028157@svn.freebsd.org> From: Eitan Adler Date: Thu, 6 Dec 2012 01:31:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243933 - in head: contrib/binutils contrib/binutils/libiberty contrib/cvs/diff contrib/cvs/lib contrib/dtc contrib/gcc contrib/gcclibs/libcpp contrib/gcclibs/libdecnumber contrib/gccli... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:31:31 -0000 Author: eadler Date: Thu Dec 6 01:31:25 2012 New Revision: 243933 URL: http://svnweb.freebsd.org/changeset/base/243933 Log: Clean up hardcoded ar(1) flags in the tree to use the global ARFLAGS in share/mk/sys.mk instead. This is part of a medium term project to permit deterministic builds of FreeBSD. Submitted by: Erik Cederstrand Reviewed by: imp, toolchain@ Approved by: cperciva MFC after: 2 weeks Modified: head/contrib/binutils/Makefile.in head/contrib/binutils/Makefile.tpl head/contrib/binutils/libiberty/Makefile.in head/contrib/cvs/diff/Makefile.in head/contrib/cvs/lib/Makefile.in head/contrib/dtc/Makefile head/contrib/gcc/Makefile.in head/contrib/gcclibs/libcpp/Makefile.in head/contrib/gcclibs/libdecnumber/Makefile.in head/contrib/gcclibs/libiberty/Makefile.in head/contrib/gdtoa/makefile head/contrib/gperf/lib/Makefile.in head/contrib/ntp/arlib/Makefile.in head/contrib/ntp/libntp/Makefile.in head/contrib/ntp/libparse/Makefile.in head/contrib/ntp/ntpd/Makefile.in head/contrib/opie/libmissing/Makefile.in head/contrib/opie/libopie/Makefile.in head/contrib/tcp_wrappers/Makefile head/contrib/tcpdump/Makefile.in head/crypto/heimdal/appl/ftp/common/Makefile.in head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in head/crypto/openssl/Makefile.org head/crypto/openssl/crypto/Makefile head/gnu/lib/libgcc/Makefile head/gnu/usr.bin/cc/cc_tools/Makefile head/share/mk/bsd.lib.mk Modified: head/contrib/binutils/Makefile.in ============================================================================== --- head/contrib/binutils/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/binutils/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -284,7 +284,7 @@ MAKEINFOFLAGS = --split-size=5000000 AS = @AS@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ @@ -474,7 +474,7 @@ BASE_FLAGS_TO_PASS = \ "SHELL=$(SHELL)" \ "YACC=$(YACC)" \ "`echo 'ADAFLAGS=$(ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ - "AR_FLAGS=$(AR_FLAGS)" \ + "AR_FLAGS=$(ARFLAGS)" \ "`echo 'BOOT_ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ "BOOT_CFLAGS=$(BOOT_CFLAGS)" \ "BOOT_LDFLAGS=$(BOOT_LDFLAGS)" \ Modified: head/contrib/binutils/Makefile.tpl ============================================================================== --- head/contrib/binutils/Makefile.tpl Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/binutils/Makefile.tpl Thu Dec 6 01:31:25 2012 (r243933) @@ -287,7 +287,7 @@ MAKEINFOFLAGS = --split-size=5000000 AS = @AS@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ Modified: head/contrib/binutils/libiberty/Makefile.in ============================================================================== --- head/contrib/binutils/libiberty/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/binutils/libiberty/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -56,7 +56,7 @@ mkinstalldirs = $(SHELL) $(libiberty_top OUTPUT_OPTION = @OUTPUT_OPTION@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CFLAGS = @CFLAGS@ @@ -81,7 +81,7 @@ EXTRA_OFILES = # Flags to pass to a recursive make. FLAGS_TO_PASS = \ "AR=$(AR)" \ - "AR_FLAGS=$(AR_FLAGS)" \ + "AR_FLAGS=$(ARFLAGS)" \ "CC=$(CC)" \ "CFLAGS=$(CFLAGS)" \ "DESTDIR=$(DESTDIR)" \ @@ -224,12 +224,12 @@ INSTALLED_HEADERS = $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) -rm -f $(TARGETLIB) pic/$(TARGETLIB) - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(RANLIB) $(TARGETLIB) if [ x"$(PICFLAG)" != x ]; then \ cd pic; \ - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ $(RANLIB) $(TARGETLIB); \ cd ..; \ @@ -237,7 +237,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA $(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES) -rm -f $(TESTLIB) - $(AR) $(AR_FLAGS) $(TESTLIB) \ + $(AR) $(ARFLAGS) $(TESTLIB) \ $(REQUIRED_OFILES) $(CONFIGURED_OFILES) $(RANLIB) $(TESTLIB) Modified: head/contrib/cvs/diff/Makefile.in ============================================================================== --- head/contrib/cvs/diff/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/cvs/diff/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -41,8 +41,8 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/m CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ libdiff_a_AR = $(AR) $(ARFLAGS) libdiff_a_LIBADD = am_libdiff_a_OBJECTS = diff.$(OBJEXT) diff3.$(OBJEXT) \ Modified: head/contrib/cvs/lib/Makefile.in ============================================================================== --- head/contrib/cvs/lib/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/cvs/lib/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -63,8 +63,8 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/m CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = fnmatch.h LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ libcvs_a_AR = $(AR) $(ARFLAGS) libcvs_a_DEPENDENCIES = @LIBOBJS@ am_libcvs_a_OBJECTS = argmatch.$(OBJEXT) getdate.$(OBJEXT) \ Modified: head/contrib/dtc/Makefile ============================================================================== --- head/contrib/dtc/Makefile Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/dtc/Makefile Thu Dec 6 01:31:25 2012 (r243933) @@ -48,7 +48,7 @@ ifdef V VECHO = : else VECHO = echo " " -ARFLAGS = rc +ARFLAGS ?= rc .SILENT: endif Modified: head/contrib/gcc/Makefile.in ============================================================================== --- head/contrib/gcc/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/gcc/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -238,7 +238,7 @@ BISONFLAGS = FLEX = @FLEX@ FLEXFLAGS = AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ NM = @NM@ RANLIB = @RANLIB@ RANLIB_FLAGS = @ranlib_flags@ @@ -1303,7 +1303,7 @@ compilations: $(BACKEND) # This archive is strictly for the host. libbackend.a: $(OBJS@onestep@) -rm -rf libbackend.a - $(AR) $(AR_FLAGS) libbackend.a $(OBJS@onestep@) + $(AR) $(ARFLAGS) libbackend.a $(OBJS@onestep@) -$(RANLIB) $(RANLIB_FLAGS) libbackend.a # We call this executable `xgcc' rather than `gcc' Modified: head/contrib/gcclibs/libcpp/Makefile.in ============================================================================== --- head/contrib/gcclibs/libcpp/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/gcclibs/libcpp/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -26,8 +26,8 @@ srcdir = @srcdir@ top_builddir = . VPATH = @srcdir@ INSTALL = @INSTALL@ -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ Modified: head/contrib/gcclibs/libdecnumber/Makefile.in ============================================================================== --- head/contrib/gcclibs/libdecnumber/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/gcclibs/libdecnumber/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -26,8 +26,8 @@ srcdir = @srcdir@ top_builddir = . VPATH = @srcdir@ INSTALL = @INSTALL@ -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ Modified: head/contrib/gcclibs/libiberty/Makefile.in ============================================================================== --- head/contrib/gcclibs/libiberty/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/gcclibs/libiberty/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -56,7 +56,7 @@ mkinstalldirs = $(SHELL) $(libiberty_top OUTPUT_OPTION = @OUTPUT_OPTION@ AR = @AR@ -AR_FLAGS = rc +ARFLAGS = @ARFLAGS@ CC = @CC@ CFLAGS = @CFLAGS@ @@ -81,7 +81,7 @@ EXTRA_OFILES = # Flags to pass to a recursive make. FLAGS_TO_PASS = \ "AR=$(AR)" \ - "AR_FLAGS=$(AR_FLAGS)" \ + "AR_FLAGS=$(ARFLAGS)" \ "CC=$(CC)" \ "CFLAGS=$(CFLAGS)" \ "DESTDIR=$(DESTDIR)" \ @@ -224,12 +224,12 @@ INSTALLED_HEADERS = $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) -rm -f $(TARGETLIB) pic/$(TARGETLIB) - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(RANLIB) $(TARGETLIB) if [ x"$(PICFLAG)" != x ]; then \ cd pic; \ - $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(AR) $(ARFLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ $(RANLIB) $(TARGETLIB); \ cd ..; \ @@ -237,7 +237,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA $(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES) -rm -f $(TESTLIB) - $(AR) $(AR_FLAGS) $(TESTLIB) \ + $(AR) $(ARFLAGS) $(TESTLIB) \ $(REQUIRED_OFILES) $(CONFIGURED_OFILES) $(RANLIB) $(TESTLIB) Modified: head/contrib/gdtoa/makefile ============================================================================== --- head/contrib/gdtoa/makefile Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/gdtoa/makefile Thu Dec 6 01:31:25 2012 (r243933) @@ -26,6 +26,8 @@ .SUFFIXES: .c .o CC = cc CFLAGS = -g +AR ?= ar +ARFLAGS ?= ruv .c.o: $(CC) -c $(CFLAGS) $*.c @@ -52,12 +54,12 @@ gdtoa.a: dmisc.c dtoa.c g_Qfmt.c g__fmt strtopx.c strtopxL.c strtorQ.c strtord.c strtordd.c strtorf.c\ strtorx.c strtorxL.c sum.c ulp.c $(CC) -c $(CFLAGS) $? - x=`echo $? | sed 's/\.c/.o/g'` && ar ruv gdtoa.a $$x && rm $$x + x=`echo $? | sed 's/\.c/.o/g'` && $(AR) $(ARFLAGS) gdtoa.a $$x && rm $$x ranlib gdtoa.a || true Printf: all printf.c $(CC) -c $(CFLAGS) printf.c - ar ruv gdtoa.a printf.o + $(AR) $(ARFLAGS) gdtoa.a printf.o rm printf.o touch Printf Modified: head/contrib/gperf/lib/Makefile.in ============================================================================== --- head/contrib/gperf/lib/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/gperf/lib/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -43,8 +43,8 @@ CXXCPP = @CXXCPP@ # Both C and C++ compiler OBJEXT = @OBJEXT@ # Other -AR = ar -AR_FLAGS = rc +AR = @AR@ +ARFLAGS = @ARFLAGS@ RANLIB = @RANLIB@ MV = mv LN = ln @@ -71,7 +71,7 @@ all : $(TARGETLIB) $(TARGETLIB): $(OBJECTS) $(RM) $@ - $(AR) $(AR_FLAGS) $@ $(OBJECTS) + $(AR) $(ARFLAGS) $@ $(OBJECTS) $(RANLIB) $@ # Don't use implicit rules, since AIX "make" and OSF/1 "make" don't always Modified: head/contrib/ntp/arlib/Makefile.in ============================================================================== --- head/contrib/ntp/arlib/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/ntp/arlib/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -50,8 +50,8 @@ mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru +AR = @AR@ +ARFLAGS = @ARFLAGS@ libares_a_AR = $(AR) $(ARFLAGS) libares_a_LIBADD = am_libares_a_OBJECTS = arlib.$(OBJEXT) Modified: head/contrib/ntp/libntp/Makefile.in ============================================================================== --- head/contrib/ntp/libntp/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/ntp/libntp/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -52,7 +52,7 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru +ARFLAGS = @ARFLAGS@ libntp_a_AR = $(AR) $(ARFLAGS) libntp_a_LIBADD = am__objects_1 = a_md5encrypt$U.$(OBJEXT) adjtime$U.$(OBJEXT) \ Modified: head/contrib/ntp/libparse/Makefile.in ============================================================================== --- head/contrib/ntp/libparse/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/ntp/libparse/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -52,7 +52,7 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru +ARFLAGS ?= cru libparse_a_AR = $(AR) $(ARFLAGS) libparse_a_LIBADD = am_libparse_a_OBJECTS = parse$U.$(OBJEXT) parse_conf$U.$(OBJEXT) \ Modified: head/contrib/ntp/ntpd/Makefile.in ============================================================================== --- head/contrib/ntp/ntpd/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/ntp/ntpd/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -58,7 +58,7 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru +ARFLAGS = @ARFLAGS@ libntpd_a_AR = $(AR) $(ARFLAGS) libntpd_a_LIBADD = am_libntpd_a_OBJECTS = ntp_control$U.$(OBJEXT) ntp_crypto$U.$(OBJEXT) \ Modified: head/contrib/opie/libmissing/Makefile.in ============================================================================== --- head/contrib/opie/libmissing/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/opie/libmissing/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -22,7 +22,7 @@ TARGET=libmissing.a all: $(TARGET) $(TARGET): $(OBJS) - ar cr $(TARGET) $(OBJS) + @AR@ @ARFLAGS@ $(TARGET) $(OBJS) @RANLIB@ $(TARGET) clean: Modified: head/contrib/opie/libopie/Makefile.in ============================================================================== --- head/contrib/opie/libopie/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/opie/libopie/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -23,7 +23,7 @@ TARGET=libopie.a all: $(TARGET) $(TARGET): $(OBJS) - ar cr $(TARGET) $(OBJS) + @AR@ @ARFLAGS@ $(TARGET) $(OBJS) @RANLIB@ $(TARGET) clean: Modified: head/contrib/tcp_wrappers/Makefile ============================================================================== --- head/contrib/tcp_wrappers/Makefile Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/tcp_wrappers/Makefile Thu Dec 6 01:31:25 2012 (r243933) @@ -139,7 +139,7 @@ epix: freebsd: @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ - RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP=-DNETGROUP TLI= \ + RANLIB=ranlib ARFLAGS=$(ARFLAGS) AUX_OBJ= NETGROUP=-DNETGROUP TLI= \ EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DINET6 -DUSE_GETIPNODEBY" \ VSYSLOG= all @@ -401,7 +401,7 @@ machten: RANLIB = ranlib # have ranlib (BSD-ish UNIX) #RANLIB = echo # no ranlib (SYSV-ish UNIX) -ARFLAGS = rv # most systems +ARFLAGS ?= rv # most systems #ARFLAGS= rvs # IRIX 4.0.x AR = ar Modified: head/contrib/tcpdump/Makefile.in ============================================================================== --- head/contrib/tcpdump/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/contrib/tcpdump/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -366,7 +366,7 @@ $(PROG): $(OBJ) @V_PCAPDEP@ $(LIBNETDISSECT): $(LIBNETDISSECT_OBJ) @rm -f $@ - $(AR) cr $@ $(LIBNETDISSECT_OBJ) + $(AR) $(ARFLAGS) $@ $(LIBNETDISSECT_OBJ) $(RANLIB) $@ datalinks.o: $(srcdir)/missing/datalinks.c Modified: head/crypto/heimdal/appl/ftp/common/Makefile.in ============================================================================== --- head/crypto/heimdal/appl/ftp/common/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/crypto/heimdal/appl/ftp/common/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -96,7 +96,7 @@ CONFIG_HEADER = $(top_builddir)/include/ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru +ARFLAGS ?= cru libcommon_a_AR = $(AR) $(ARFLAGS) libcommon_a_LIBADD = am_libcommon_a_OBJECTS = sockbuf.$(OBJEXT) buffer.$(OBJEXT) Modified: head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in ============================================================================== --- head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in Thu Dec 6 01:25:21 2012 (r243932) +++ head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in Thu Dec 6 01:31:25 2012 (r243933) @@ -96,7 +96,7 @@ CONFIG_HEADER = $(top_builddir)/include/ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru +ARFLAGS ?= cru libtelnet_a_AR = $(AR) $(ARFLAGS) libtelnet_a_LIBADD = am_libtelnet_a_OBJECTS = auth.$(OBJEXT) enc_des.$(OBJEXT) \ Modified: head/crypto/openssl/Makefile.org ============================================================================== --- head/crypto/openssl/Makefile.org Thu Dec 6 01:25:21 2012 (r243932) +++ head/crypto/openssl/Makefile.org Thu Dec 6 01:31:25 2012 (r243933) @@ -63,8 +63,8 @@ DEPFLAG= PEX_LIBS= EX_LIBS= EXE_EXT= -ARFLAGS= -AR=ar $(ARFLAGS) r +ARFLAGS?= r +AR=ar $(ARFLAGS) RANLIB= ranlib NM= nm PERL= perl Modified: head/crypto/openssl/crypto/Makefile ============================================================================== --- head/crypto/openssl/crypto/Makefile Thu Dec 6 01:25:21 2012 (r243932) +++ head/crypto/openssl/crypto/Makefile Thu Dec 6 01:31:25 2012 (r243933) @@ -13,7 +13,8 @@ MAKEDEPPROG= makedepend MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG) MAKEFILE= Makefile RM= rm -f -AR= ar r +ARFLAGS?= r +AR= ar ${ARFLAGS} RECURSIVE_MAKE= [ -n "$(SDIRS)" ] && for i in $(SDIRS) ; do \ (cd $$i && echo "making $$target in $(DIR)/$$i..." && \ Modified: head/gnu/lib/libgcc/Makefile ============================================================================== --- head/gnu/lib/libgcc/Makefile Thu Dec 6 01:25:21 2012 (r243932) +++ head/gnu/lib/libgcc/Makefile Thu Dec 6 01:31:25 2012 (r243933) @@ -341,7 +341,7 @@ CLEANFILES += libgcc.map libgcc_eh.a: ${EH_OBJS_T} @${ECHO} building static gcc_eh library @rm -f ${.TARGET} - @${AR} cq ${.TARGET} `lorder ${EH_OBJS_T} | tsort -q` + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${EH_OBJS_T} | tsort -q` ${RANLIB} ${.TARGET} all: libgcc_eh.a @@ -350,7 +350,7 @@ all: libgcc_eh.a libgcc_eh_p.a: ${EH_OBJS_P} @${ECHO} building profiled gcc_eh library @rm -f ${.TARGET} - @${AR} cq ${.TARGET} `lorder ${EH_OBJS_P} | tsort -q` + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${EH_OBJS_P} | tsort -q` ${RANLIB} ${.TARGET} all: libgcc_eh_p.a .endif Modified: head/gnu/usr.bin/cc/cc_tools/Makefile ============================================================================== --- head/gnu/usr.bin/cc/cc_tools/Makefile Thu Dec 6 01:25:21 2012 (r243932) +++ head/gnu/usr.bin/cc/cc_tools/Makefile Thu Dec 6 01:31:25 2012 (r243933) @@ -512,7 +512,7 @@ ${_src:R:S/$/.o/}: ${_src} ${LIBIBERTY}: ${LIBIBERTY_OBJS} @rm -f ${.TARGET} - @${AR} cq ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` ${RANLIB} ${.TARGET} CLEANFILES+= ${LIBIBERTY} ${LIBIBERTY_OBJS} Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Thu Dec 6 01:25:21 2012 (r243932) +++ head/share/mk/bsd.lib.mk Thu Dec 6 01:31:25 2012 (r243933) @@ -135,9 +135,9 @@ lib${LIB}.a: ${OBJS} ${STATICOBJS} @${ECHO} building static ${LIB} library @rm -f ${.TARGET} .if !defined(NM) - @${AR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} .else - @${AR} cq ${.TARGET} `NM='${NM}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} .endif ${RANLIB} ${.TARGET} .endif @@ -152,9 +152,9 @@ lib${LIB}_p.a: ${POBJS} @${ECHO} building profiled ${LIB} library @rm -f ${.TARGET} .if !defined(NM) - @${AR} cq ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD} .else - @${AR} cq ${.TARGET} `NM='${NM}' lorder ${POBJS} | tsort -q` ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' lorder ${POBJS} | tsort -q` ${ARADD} .endif ${RANLIB} ${.TARGET} .endif @@ -202,7 +202,7 @@ _LIBS+= lib${LIB}_pic.a lib${LIB}_pic.a: ${SOBJS} @${ECHO} building special pic ${LIB} library @rm -f ${.TARGET} - @${AR} cq ${.TARGET} ${SOBJS} ${ARADD} + @${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD} ${RANLIB} ${.TARGET} .endif From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:31:35 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6B19CE01; Thu, 6 Dec 2012 01:31:35 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 4F5598FC08; Thu, 6 Dec 2012 01:31:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB61VZmH028230; Thu, 6 Dec 2012 01:31:35 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB61VZK7028229; Thu, 6 Dec 2012 01:31:35 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212060131.qB61VZK7028229@svn.freebsd.org> From: Eitan Adler Date: Thu, 6 Dec 2012 01:31:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243934 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:31:35 -0000 Author: eadler Date: Thu Dec 6 01:31:34 2012 New Revision: 243934 URL: http://svnweb.freebsd.org/changeset/base/243934 Log: Change the default to 'cru' for speed reasons. Submitted by: Erik Cederstrand Reviewed by: imp, toolchain@ Approved by: cperciva MFC after: 2 weeks Modified: head/share/mk/sys.mk Modified: head/share/mk/sys.mk ============================================================================== --- head/share/mk/sys.mk Thu Dec 6 01:31:25 2012 (r243933) +++ head/share/mk/sys.mk Thu Dec 6 01:31:34 2012 (r243934) @@ -39,7 +39,7 @@ AR ?= ar .if defined(%POSIX) ARFLAGS ?= -rv .else -ARFLAGS ?= rl +ARFLAGS ?= cru .endif RANLIB ?= ranlib From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:35:51 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 58313188 for ; Thu, 6 Dec 2012 01:35:51 +0000 (UTC) (envelope-from lists@eitanadler.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id BB4FF8FC14 for ; Thu, 6 Dec 2012 01:35:50 +0000 (UTC) Received: by mail-lb0-f182.google.com with SMTP id go10so6239553lbb.13 for ; Wed, 05 Dec 2012 17:35:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eitanadler.com; s=0xdeadbeef; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=AtbP4ZLJ6Nce0viFjwgDhMY7KypSTAZ4Q5uRRstRMEY=; b=hb3537HjIjXCxFU21AR3AS1QBkK3UJBhG74fRzOvR6VVDWXTS4P+k13lnHRS+MHKB+ 7meDiH9ovm2S/hJWm41EcAhNTtG2r2LLBXyVekO8dO1If5qL5uHamR3158KgwcAvX1YG rAvbrjbzBCRCFGToEkL5i7fX6tlnNQekMkBxY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :x-gm-message-state; bh=AtbP4ZLJ6Nce0viFjwgDhMY7KypSTAZ4Q5uRRstRMEY=; b=Rj+FdFDC6zgzrbFsbUI8RVzvhfFI97i8EMMeThUg3ICCjhnhtNcp4oS6JayPlvyqR/ IgRwgQpDlART52I/v0UDwqeCw2t0IUjno958gaKo2lq8K2CaBY/bUnrXqUjDwVXN+FL9 PXB1wY7W3nQSziM0f53GeQRvhRzG1Y8rtUYtfnPFv1JthNPW4zUmY0LAJa8CzdyIUewq FJR59+P7C92haLe7FfuB8NSUv+bGsVT/NKvm8aErcfp9Uu3vCo/1bqGbsD9YkQgl63my 3l4E3IFm6gcP7pU9zk+H7cs4bUzzHS8nNMuLIrTMQqokYj75JSuni7ASlzrH+BvOOU3H y1zQ== Received: by 10.112.29.129 with SMTP id k1mr167953lbh.102.1354757749254; Wed, 05 Dec 2012 17:35:49 -0800 (PST) MIME-Version: 1.0 Sender: lists@eitanadler.com Received: by 10.112.110.225 with HTTP; Wed, 5 Dec 2012 17:35:18 -0800 (PST) In-Reply-To: <201212052107.qB5L7Rla036012@svn.freebsd.org> References: <201212052107.qB5L7Rla036012@svn.freebsd.org> From: Eitan Adler Date: Wed, 5 Dec 2012 20:35:18 -0500 X-Google-Sender-Auth: FNvO6it5HgHg3SRw_P6cFoYaQYw Message-ID: Subject: Re: svn commit: r243909 - head/sys/arm/arm To: Olivier Houchard Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQlY4kV9issCER0rOeljdJt/mSGsjpzPUWDq2m+xfoXa79Ta0Pa8FLrQ1ij0p6e94jh8YYny Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:35:51 -0000 On 5 December 2012 16:07, Olivier Houchard wrote: > Author: cognet > Date: Wed Dec 5 21:07:27 2012 > New Revision: 243909 > URL: http://svnweb.freebsd.org/changeset/base/243909 > > Log: > Don't write-back the cachelines if we really just want to invalidate them. > > Spotted out by: Ian Lepore Please don't obfuscate email addresses. It provides zero anti-spam value, makes it harder to grep for, and harder to copy and paste. -- Eitan Adler Source, Ports, Doc committer Bugmeister, Ports Security teams From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:36:17 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 939212F7; Thu, 6 Dec 2012 01:36:17 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail13.syd.optusnet.com.au (mail13.syd.optusnet.com.au [211.29.132.194]) by mx1.freebsd.org (Postfix) with ESMTP id 2614E8FC08; Thu, 6 Dec 2012 01:36:16 +0000 (UTC) Received: from c122-106-175-26.carlnfd1.nsw.optusnet.com.au (c122-106-175-26.carlnfd1.nsw.optusnet.com.au [122.106.175.26]) by mail13.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id qB61a6Q2002470 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 6 Dec 2012 12:36:07 +1100 Date: Thu, 6 Dec 2012 12:36:06 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mateusz Guzik Subject: Re: svn commit: r243898 - head/usr.sbin/pw In-Reply-To: <20121205144842.GA29435@dft-labs.eu> Message-ID: <20121206120510.B1387@besplex.bde.org> References: <201212051356.qB5Duu0c068432@svn.freebsd.org> <20121205144842.GA29435@dft-labs.eu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.0 cv=Zr21sKHG c=1 sm=1 a=OyMAZ6m7iocA:10 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=dkUHpakOesgA:10 a=BAVIfVq5poG-GzVfkvAA:9 a=CjuIK1q_8ugA:10 a=bxQHXO5Py4tHmhUgaywp5w==:117 Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Eitan Adler X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:36:17 -0000 On Wed, 5 Dec 2012, Mateusz Guzik wrote: > On Wed, Dec 05, 2012 at 01:56:56PM +0000, Eitan Adler wrote: >> >> Log: >> Simplify string duplication: use strdup instead of malloc + strcpy >> >> Submitted by: db >> Approved by: cperciva >> MFC after: 2 weeks >> >> Modified: >> head/usr.sbin/pw/grupd.c >> >> Modified: head/usr.sbin/pw/grupd.c >> ============================================================================== >> --- head/usr.sbin/pw/grupd.c Wed Dec 5 13:56:52 2012 (r243897) >> +++ head/usr.sbin/pw/grupd.c Wed Dec 5 13:56:56 2012 (r243898) >> @@ -50,12 +50,11 @@ setgrdir(const char * dir) >> { >> if (dir == NULL) >> return -1; >> - else { >> - char * d = malloc(strlen(dir)+1); >> - if (d == NULL) >> - return -1; >> - grpath = strcpy(d, dir); >> - } >> + else >> + grpath = strdup(dir); >> + if (grpath == NULL) >> + return -1; >> + >> return 0; >> } >> > > (yes, I know pw is a lot of work) > > This can be further deuglified with slight change: > > --- a/usr.sbin/pw/grupd.c > +++ b/usr.sbin/pw/grupd.c > @@ -50,8 +50,8 @@ setgrdir(const char * dir) > { > if (dir == NULL) > return -1; > - else > - grpath = strdup(dir); > + > + grpath = strdup(dir); > if (grpath == NULL) > return -1; The extra blank line reuglifies it. > Also the only consumer does not check for errors, but after cursory look > I'm not sure if it is ok to just exit. malloc() can't fail, and if it does then aborting immediately is as good as anything, especially in software of the, er, quality of pw. It only checks the result of malloc() in some places, so there is no point in checking it in other places. Some of the unchecked places are: - bm_alloc() is a wrapper around malloc(). It checks, but it returns NULL if malloc() failed, and neither of its 2 callers check if bm_alloc() succeeded. - in copymkdir(), there is a malloc(4096) which is not checked (except the buffer is immediatly used for read(2), and the kernel does check. pw even checks the result of the read. But then it mishandles the resulting EFAULT error from read(2), along with all other read errors, by quitting the read/write loop and not telling anyone that it failed) - in main(), there is a malloc(MAXPATHLEN) followed immediately by a snprintf() to it - in read_userconfig() and write_userconfig(), there is a malloc(LNBUFSZ) (1024) followed by indirection of the result. Lines created by this are extended by extendline(), which uses realloc() and checks the result. It returns -1 on error, and this is actually checked for, but the handling seems to be broken much like for the read/write loop (just quit the i/o and don't tell anyone about the error). So it seems that malloc() failures are checked for mainly in small utility functions, and it is mostly useless there too since larger functions don't check the results any more than they check for malloc(), and when they do check then the results are worse than for aborting in the utility functions. Bruce From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 01:44:20 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A0E054C6; Thu, 6 Dec 2012 01:44:20 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7B6868FC08; Thu, 6 Dec 2012 01:44:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB61iKFh030020; Thu, 6 Dec 2012 01:44:20 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB61iJOQ030016; Thu, 6 Dec 2012 01:44:19 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201212060144.qB61iJOQ030016@svn.freebsd.org> From: Eitan Adler Date: Thu, 6 Dec 2012 01:44:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243935 - head/share/syscons/keymaps X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 01:44:20 -0000 Author: eadler Date: Thu Dec 6 01:44:19 2012 New Revision: 243935 URL: http://svnweb.freebsd.org/changeset/base/243935 Log: Add the Programmer Dvorak Keyboard Layout PR: conf/173950 Submitted by: clutton Approved by: cperciva Added: head/share/syscons/keymaps/us.dvorakp.kbd (contents, props changed) Modified: head/share/syscons/keymaps/INDEX.keymaps head/share/syscons/keymaps/Makefile Modified: head/share/syscons/keymaps/INDEX.keymaps ============================================================================== --- head/share/syscons/keymaps/INDEX.keymaps Thu Dec 6 01:31:34 2012 (r243934) +++ head/share/syscons/keymaps/INDEX.keymaps Thu Dec 6 01:44:19 2012 (r243935) @@ -520,6 +520,8 @@ us.dvorakl.kbd:fr:États Unis d'Amérique us.dvorakl.kbd:pt:Estados Unidos da América dvorakl us.dvorakl.kbd:es:Estadounidense dvorak zurdo +us.dvorakp.kbd:en:United States of America Programmer Dvorak + us.dvorakx.kbd:en:United States of America dvorakx us.dvorakx.kbd:de:US-amerikanisch dvorakx us.dvorakx.kbd:fr:États Unis d'Amérique dvorakx Modified: head/share/syscons/keymaps/Makefile ============================================================================== --- head/share/syscons/keymaps/Makefile Thu Dec 6 01:31:34 2012 (r243934) +++ head/share/syscons/keymaps/Makefile Thu Dec 6 01:44:19 2012 (r243935) @@ -47,8 +47,8 @@ FILES= INDEX.keymaps \ ua.koi8-u.kbd ua.koi8-u.shift.alt.kbd ua.iso5.kbd \ uk.iso.kbd uk.iso-ctrl.kbd uk.cp850.kbd uk.cp850-ctrl.kbd \ uk.dvorak.kbd \ - us.iso.kbd us.dvorak.kbd us.dvorakl.kbd us.dvorakr.kbd us.dvorakx.kbd \ - us.emacs.kbd us.pc-ctrl.kbd us.unix.kbd us.iso.acc.kbd + us.iso.kbd us.dvorak.kbd us.dvorakl.kbd us.dvorakr.kbd us.dvorakp.kbd \ + us.dvorakx.kbd us.emacs.kbd us.pc-ctrl.kbd us.unix.kbd us.iso.acc.kbd FILESDIR= ${SHAREDIR}/syscons/keymaps Added: head/share/syscons/keymaps/us.dvorakp.kbd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/syscons/keymaps/us.dvorakp.kbd Thu Dec 6 01:44:19 2012 (r243935) @@ -0,0 +1,117 @@ +# A Programmer Dvorak keyboard for US English +# +# $FreeBSD$ +# alt +# scan cntrl alt alt cntrl lock +# code base shift cntrl shift alt shift cntrl shift state +# ------------------------------------------------------------------ + 000 nop nop nop nop nop nop nop nop O + 001 esc esc esc esc esc esc debug esc O + 002 '&' '%' nop nop '&' '%' nop nop O + 003 '[' '7' nul nul '[' '7' nul nul O + 004 '{' '5' nop nop '{' '5' nop nop O + 005 '}' '3' nop nop '}' '3' nop nop O + 006 '(' '1' nop nop '(' '1' nop nop O + 007 '=' '9' rs rs '=' '9' rs rs O + 008 '*' '0' nop nop '*' '0' nop nop O + 009 ')' '2' nop nop ')' '2' nop nop O + 010 '+' '4' nop nop '+' '4' nop nop O + 011 ']' '6' nop nop ']' ')' nop nop O + 012 '!' '8' esc esc '!' '8' esc esc O + 013 '#' '`' gs gs '#' '`' gs gs O + 014 bs bs del del bs bs del del O + 015 ht btab nop nop ht btab nop nop O + 016 ';' ':' nop nop ';' ':' nop nop O + 017 ',' '<' nop nop ',' '<' nop nop O + 018 '.' '>' nop nop '.' '>' nop nop O + 019 'p' 'P' dle dle 'p' 'P' dle dle C + 020 'y' 'Y' em em 'y' 'Y' em em C + 021 'f' 'F' ack ack 'f' 'F' ack ack C + 022 'g' 'G' bel bel 'g' 'G' bel bel C + 023 'c' 'C' etx etx 'c' 'C' etx etx C + 024 'r' 'R' dc2 dc2 'r' 'R' dc2 dc2 C + 025 'l' 'L' ff ff 'l' 'L' ff ff C + 026 '/' '?' nop nop '/' '?' nop nop O + 027 '@' '^' nop nop '@' '^' nop nop O + 028 cr cr nl nl cr cr nl nl O + 029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O + 030 'a' 'A' soh soh 'a' 'A' soh soh C + 031 'o' 'O' si si 'o' 'O' si si C + 032 'e' 'E' enq enq 'e' 'E' enq enq C + 033 'u' 'U' nak nak 'u' 'U' nak nak C + 034 'i' 'I' ht ht 'i' 'I' ht ht C + 035 'd' 'D' eot eot 'd' 'D' eot eot C + 036 'h' 'H' bs bs 'h' 'H' bs bs C + 037 't' 'T' dc4 dc4 't' 'T' dc4 dc4 C + 038 'n' 'N' so so 'n' 'N' so so C + 039 's' 'S' dc3 dc3 's' 'S' dc3 dc3 C + 040 '-' '_' us us '-' '_' us us O + 041 '$' '~' nop nop '$' '~' nop nop O + 042 lshift lshift lshift lshift lshift lshift lshift lshift O + 043 '\' '|' fs fs '\' '|' fs fs O + 044 ''' '"' nop nop ''' '"' nop nop O + 045 'q' 'Q' dc1 dc1 'q' 'Q' dc1 dc1 C + 046 'j' 'J' nl nl 'j' 'J' nl nl C + 047 'k' 'K' vt vt 'k' 'K' vt vt C + 048 'x' 'X' can can 'x' 'X' can can C + 049 'b' 'B' stx stx 'b' 'B' stx stx C + 050 'm' 'M' cr cr 'm' 'M' cr cr C + 051 'w' 'W' etb etb 'w' 'W' etb etb C + 052 'v' 'V' syn syn 'v' 'V' syn syn C + 053 'z' 'Z' sub sub 'z' 'Z' sub sub C + 054 rshift rshift rshift rshift rshift rshift rshift rshift O + 055 '*' '*' '*' '*' '*' '*' '*' '*' O + 056 lalt lalt lalt lalt lalt lalt lalt lalt O + 057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O + 058 clock clock clock clock clock clock clock clock O + 059 fkey01 fkey13 fkey25 fkey37 scr01 scr11 scr01 scr11 O + 060 fkey02 fkey14 fkey26 fkey38 scr02 scr12 scr02 scr12 O + 061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O + 062 fkey04 fkey16 fkey28 fkey40 scr04 scr14 scr04 scr14 O + 063 fkey05 fkey17 fkey29 fkey41 scr05 scr15 scr05 scr15 O + 064 fkey06 fkey18 fkey30 fkey42 scr06 scr16 scr06 scr16 O + 065 fkey07 fkey19 fkey31 fkey43 scr07 scr07 scr07 scr07 O + 066 fkey08 fkey20 fkey32 fkey44 scr08 scr08 scr08 scr08 O + 067 fkey09 fkey21 fkey33 fkey45 scr09 scr09 scr09 scr09 O + 068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O + 069 nlock nlock nlock nlock nlock nlock nlock nlock O + 070 slock slock slock slock slock slock slock slock O + 071 fkey49 '7' '7' '7' '7' '7' '7' '7' N + 072 fkey50 '8' '8' '8' '8' '8' '8' '8' N + 073 fkey51 '9' '9' '9' '9' '9' '9' '9' N + 074 fkey52 '-' '-' '-' '-' '-' '-' '-' N + 075 fkey53 '4' '4' '4' '4' '4' '4' '4' N + 076 fkey54 '5' '5' '5' '5' '5' '5' '5' N + 077 fkey55 '6' '6' '6' '6' '6' '6' '6' N + 078 fkey56 '+' '+' '+' '+' '+' '+' '+' N + 079 fkey57 '1' '1' '1' '1' '1' '1' '1' N + 080 fkey58 '2' '2' '2' '2' '2' '2' '2' N + 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N + 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N + 083 del '.' '.' '.' '.' '.' boot boot N + 084 nop nop nop nop nop nop nop nop O + 085 nop nop nop nop nop nop nop nop O + 086 nop nop nop nop nop nop nop nop O + 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O + 088 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O + 089 cr cr nl nl cr cr nl nl O + 090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O + 091 '/' '/' '/' '/' '/' '/' '/' '/' N + 092 nscr pscr debug debug nop nop nop nop O + 093 ralt ralt ralt ralt ralt ralt ralt ralt O + 094 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O + 095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O + 096 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O + 097 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O + 098 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O + 099 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O + 100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O + 101 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O + 102 fkey60 paste fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O + 103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O + 104 slock saver slock saver susp nop susp nop O + 105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O + 106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O + 107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O + 108 nop nop nop nop nop nop nop nop + From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 06:29:08 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E39281B8A; Thu, 6 Dec 2012 06:29:08 +0000 (UTC) (envelope-from davidxu@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C78FE8FC0C; Thu, 6 Dec 2012 06:29:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB66T8YM079247; Thu, 6 Dec 2012 06:29:08 GMT (envelope-from davidxu@svn.freebsd.org) Received: (from davidxu@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB66T8uQ079246; Thu, 6 Dec 2012 06:29:08 GMT (envelope-from davidxu@svn.freebsd.org) Message-Id: <201212060629.qB66T8uQ079246@svn.freebsd.org> From: David Xu Date: Thu, 6 Dec 2012 06:29:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243938 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 06:29:09 -0000 Author: davidxu Date: Thu Dec 6 06:29:08 2012 New Revision: 243938 URL: http://svnweb.freebsd.org/changeset/base/243938 Log: Eliminate superfluous code. Modified: head/sys/kern/subr_uio.c Modified: head/sys/kern/subr_uio.c ============================================================================== --- head/sys/kern/subr_uio.c Thu Dec 6 05:08:34 2012 (r243937) +++ head/sys/kern/subr_uio.c Thu Dec 6 06:29:08 2012 (r243938) @@ -389,7 +389,6 @@ again: case UIO_SYSSPACE: iov_base = iov->iov_base; *iov_base = c; - iov->iov_base = iov_base; break; case UIO_NOCOPY: From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 08:15:07 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 44A3EDF2; Thu, 6 Dec 2012 08:15:07 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 295338FC0C; Thu, 6 Dec 2012 08:15:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB68F7VQ096887; Thu, 6 Dec 2012 08:15:07 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB68F7HZ096886; Thu, 6 Dec 2012 08:15:07 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212060815.qB68F7HZ096886@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 6 Dec 2012 08:15:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243939 - head/sys/netpfil/pf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 08:15:07 -0000 Author: glebius Date: Thu Dec 6 08:15:06 2012 New Revision: 243939 URL: http://svnweb.freebsd.org/changeset/base/243939 Log: Revert erroneous r242693. A state may have PFTM_UNLINKED being on the PFSYNC_S_DEL queue of pfsync. Modified: head/sys/netpfil/pf/if_pfsync.c Modified: head/sys/netpfil/pf/if_pfsync.c ============================================================================== --- head/sys/netpfil/pf/if_pfsync.c Thu Dec 6 06:29:08 2012 (r243938) +++ head/sys/netpfil/pf/if_pfsync.c Thu Dec 6 08:15:06 2012 (r243939) @@ -1534,16 +1534,6 @@ pfsync_sendout(int schedswi) KASSERT(st->sync_state == q, ("%s: st->sync_state == q", __func__)); - if (st->timeout == PFTM_UNLINKED) { - /* - * This happens if pfsync was once - * stopped, and then re-enabled - * after long time. Theoretically - * may happen at usual runtime, too. - */ - pf_release_state(st); - continue; - } /* * XXXGL: some of write methods do unlocked reads * of state data :( From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 08:22:09 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3F8742C0; Thu, 6 Dec 2012 08:22:09 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 21C0C8FC16; Thu, 6 Dec 2012 08:22:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB68M8aU097908; Thu, 6 Dec 2012 08:22:09 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB68M8Ur097907; Thu, 6 Dec 2012 08:22:08 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212060822.qB68M8Ur097907@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 6 Dec 2012 08:22:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243940 - head/sys/netpfil/pf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 08:22:09 -0000 Author: glebius Date: Thu Dec 6 08:22:08 2012 New Revision: 243940 URL: http://svnweb.freebsd.org/changeset/base/243940 Log: Remove extra PFSYNC_LOCK() in pfsync_bulk_update() which lead to lock recursion. Reported by: Ian FREISLICH Modified: head/sys/netpfil/pf/if_pfsync.c Modified: head/sys/netpfil/pf/if_pfsync.c ============================================================================== --- head/sys/netpfil/pf/if_pfsync.c Thu Dec 6 08:15:06 2012 (r243939) +++ head/sys/netpfil/pf/if_pfsync.c Thu Dec 6 08:22:08 2012 (r243940) @@ -2063,9 +2063,7 @@ pfsync_bulk_update(void *arg) if (s->sync_state == PFSYNC_S_NONE && s->timeout < PFTM_MAX && s->pfsync_time <= sc->sc_ureq_received) { - PFSYNC_LOCK(sc); pfsync_update_state_req(s); - PFSYNC_UNLOCK(sc); sent++; } } From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 08:32:29 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7255795D; Thu, 6 Dec 2012 08:32:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 579F08FC08; Thu, 6 Dec 2012 08:32:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB68WTV3099269; Thu, 6 Dec 2012 08:32:29 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB68WT3S099268; Thu, 6 Dec 2012 08:32:29 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212060832.qB68WT3S099268@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 6 Dec 2012 08:32:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243941 - head/sys/netpfil/pf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 08:32:29 -0000 Author: glebius Date: Thu Dec 6 08:32:28 2012 New Revision: 243941 URL: http://svnweb.freebsd.org/changeset/base/243941 Log: Close possible races between state deletion and sent being sent out from pfsync: - Call into pfsync_delete_state() holding the state lock. - Set the state timeout to PFTM_UNLINKED after state has been moved to the PFSYNC_S_DEL queue in pfsync. Reported by: Ian FREISLICH Modified: head/sys/netpfil/pf/pf.c Modified: head/sys/netpfil/pf/pf.c ============================================================================== --- head/sys/netpfil/pf/pf.c Thu Dec 6 08:22:08 2012 (r243940) +++ head/sys/netpfil/pf/pf.c Thu Dec 6 08:32:28 2012 (r243941) @@ -1487,8 +1487,6 @@ pf_unlink_state(struct pf_state *s, u_in return (0); /* XXXGL: undefined actually */ } - s->timeout = PFTM_UNLINKED; - if (s->src.state == PF_TCPS_PROXY_DST) { /* XXX wire key the right one? */ pf_send_tcp(NULL, s->rule.ptr, s->key[PF_SK_WIRE]->af, @@ -1502,11 +1500,14 @@ pf_unlink_state(struct pf_state *s, u_in LIST_REMOVE(s, entry); pf_src_tree_remove_state(s); - PF_HASHROW_UNLOCK(ih); if (pfsync_delete_state_ptr != NULL) pfsync_delete_state_ptr(s); + s->timeout = PFTM_UNLINKED; + + PF_HASHROW_UNLOCK(ih); + pf_detach_state(s); refcount_release(&s->refs); From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 08:38:14 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DE743E3E; Thu, 6 Dec 2012 08:38:14 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A66068FC12; Thu, 6 Dec 2012 08:38:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB68cEPC000481; Thu, 6 Dec 2012 08:38:14 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB68cEoo000480; Thu, 6 Dec 2012 08:38:14 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201212060838.qB68cEoo000480@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 6 Dec 2012 08:38:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243944 - head/sys/netpfil/pf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 08:38:14 -0000 Author: glebius Date: Thu Dec 6 08:38:14 2012 New Revision: 243944 URL: http://svnweb.freebsd.org/changeset/base/243944 Log: Rule memory garbage collecting in new pf scans only states that are on id hash. If a state has been disconnected from id hash, its rule pointers can no longer be dereferenced, and referenced memory can't be modified. Thus, move rule statistics from pf_free_rule() to pf_unlink_rule() and update them prior to releasing id hash slot lock. Reported by: Ian FREISLICH Modified: head/sys/netpfil/pf/pf.c Modified: head/sys/netpfil/pf/pf.c ============================================================================== --- head/sys/netpfil/pf/pf.c Thu Dec 6 08:36:30 2012 (r243943) +++ head/sys/netpfil/pf/pf.c Thu Dec 6 08:38:14 2012 (r243944) @@ -1504,6 +1504,12 @@ pf_unlink_state(struct pf_state *s, u_in if (pfsync_delete_state_ptr != NULL) pfsync_delete_state_ptr(s); + --s->rule.ptr->states_cur; + if (s->nat_rule.ptr != NULL) + --s->nat_rule.ptr->states_cur; + if (s->anchor.ptr != NULL) + --s->anchor.ptr->states_cur; + s->timeout = PFTM_UNLINKED; PF_HASHROW_UNLOCK(ih); @@ -1521,11 +1527,7 @@ pf_free_state(struct pf_state *cur) KASSERT(cur->refs == 0, ("%s: %p has refs", __func__, cur)); KASSERT(cur->timeout == PFTM_UNLINKED, ("%s: timeout %u", __func__, cur->timeout)); - --cur->rule.ptr->states_cur; - if (cur->nat_rule.ptr != NULL) - --cur->nat_rule.ptr->states_cur; - if (cur->anchor.ptr != NULL) - --cur->anchor.ptr->states_cur; + pf_normalize_tcp_cleanup(cur); uma_zfree(V_pf_state_z, cur); V_pf_status.fcounters[FCNT_STATE_REMOVALS]++; From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 15:36:25 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D67CFF53; Thu, 6 Dec 2012 15:36:25 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B993E8FC0C; Thu, 6 Dec 2012 15:36:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB6FaPM8075599; Thu, 6 Dec 2012 15:36:25 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB6FaPdt075596; Thu, 6 Dec 2012 15:36:25 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201212061536.qB6FaPdt075596@svn.freebsd.org> From: Jim Harris Date: Thu, 6 Dec 2012 15:36:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243951 - head/sys/dev/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 15:36:26 -0000 Author: jimharris Date: Thu Dec 6 15:36:24 2012 New Revision: 243951 URL: http://svnweb.freebsd.org/changeset/base/243951 Log: Add PCI device ID for 8-channel IDT NVMe controller, and clarify that the previously defined IDT PCI device ID was for a 32-channel controller. Submitted by: Joe Golio Modified: head/sys/dev/nvme/nvme.c head/sys/dev/nvme/nvme_private.h Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Thu Dec 6 13:03:57 2012 (r243950) +++ head/sys/dev/nvme/nvme.c Thu Dec 6 15:36:24 2012 (r243951) @@ -80,7 +80,8 @@ static struct _pcsid } pci_ids[] = { { 0x01118086, "NVMe Controller" }, { CHATHAM_PCI_ID, "Chatham Prototype NVMe Controller" }, - { IDT_PCI_ID, "IDT NVMe Controller" }, + { IDT32_PCI_ID, "IDT NVMe Controller (32 channel)" }, + { IDT8_PCI_ID, "IDT NVMe Controller (8 channel)" }, { 0x00000000, NULL } }; Modified: head/sys/dev/nvme/nvme_private.h ============================================================================== --- head/sys/dev/nvme/nvme_private.h Thu Dec 6 13:03:57 2012 (r243950) +++ head/sys/dev/nvme/nvme_private.h Thu Dec 6 15:36:24 2012 (r243951) @@ -55,7 +55,8 @@ MALLOC_DECLARE(M_NVME); #define CHATHAM_CONTROL_BAR 0 #endif -#define IDT_PCI_ID 0x80d0111d +#define IDT32_PCI_ID 0x80d0111d /* 32 channel board */ +#define IDT8_PCI_ID 0x80d2111d /* 8 channel board */ #define NVME_MAX_PRP_LIST_ENTRIES (32) From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 19:00:39 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0F124F72; Thu, 6 Dec 2012 19:00:39 +0000 (UTC) (envelope-from sem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id DB63F8FC15; Thu, 6 Dec 2012 19:00:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB6J0cmH015342; Thu, 6 Dec 2012 19:00:38 GMT (envelope-from sem@svn.freebsd.org) Received: (from sem@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB6J0baZ015329; Thu, 6 Dec 2012 19:00:37 GMT (envelope-from sem@svn.freebsd.org) Message-Id: <201212061900.qB6J0baZ015329@svn.freebsd.org> From: Sergey Matveychuk Date: Thu, 6 Dec 2012 19:00:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243956 - head/lib/libradius X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 19:00:39 -0000 Author: sem (ports committer) Date: Thu Dec 6 19:00:37 2012 New Revision: 243956 URL: http://svnweb.freebsd.org/changeset/base/243956 Log: - Rewrite radius servers traversal algorithm. - Add functions for working with IPv6 attributes. Approved by: ae Modified: head/lib/libradius/Makefile head/lib/libradius/libradius.3 head/lib/libradius/radius.conf.5 head/lib/libradius/radlib.c head/lib/libradius/radlib.h head/lib/libradius/radlib_private.h head/lib/libradius/radlib_vs.h Modified: head/lib/libradius/Makefile ============================================================================== --- head/lib/libradius/Makefile Thu Dec 6 18:51:18 2012 (r243955) +++ head/lib/libradius/Makefile Thu Dec 6 19:00:37 2012 (r243956) @@ -35,6 +35,7 @@ MAN= libradius.3 radius.conf.5 MLINKS+=libradius.3 rad_acct_open.3 \ libradius.3 rad_add_server.3 \ + libradius.3 rad_add_server_ex.3 \ libradius.3 rad_auth_open.3 \ libradius.3 rad_bind_to.3 \ libradius.3 rad_close.3 \ Modified: head/lib/libradius/libradius.3 ============================================================================== --- head/lib/libradius/libradius.3 Thu Dec 6 18:51:18 2012 (r243955) +++ head/lib/libradius/libradius.3 Thu Dec 6 19:00:37 2012 (r243956) @@ -37,6 +37,8 @@ .Fn rad_acct_open "void" .Ft int .Fn rad_add_server "struct rad_handle *h" "const char *host" "int port" "const char *secret" "int timeout" "int max_tries" +.Ft int +.Fn rad_add_server_ex "struct rad_handle *h" "const char *host" "int port" "const char *secret" "int timeout" "int max_tries" "int dead_time" "struct in_addr bindto" .Ft "struct rad_handle *" .Fn rad_auth_open "void" .Ft void @@ -153,7 +155,12 @@ is used. returns 0 on success, or \-1 if an error occurs. .Pp The library can also be configured programmatically by calls to -.Fn rad_add_server . +.Fn rad_add_server +or +.Fn rad_add_server_ex . +.Fn rad_add_server +is a backward compatible function, implemented via +.Fn rad_add_server_ex . The .Fa host parameter specifies the server host, either as a fully qualified @@ -188,11 +195,20 @@ The maximum number of repeated requests to make before giving up is passed into the .Fa max_tries parameter. +Time interval in seconds when the server will not be requested +if it is marked as dead (did not answer on the last try) set with +.Fa dead_time +parameter. +.Fa bindto +parameter is an IP address on the multihomed host that is used as +a source address for all requests. .Fn rad_add_server returns 0 on success, or \-1 if an error occurs. .Pp .Fn rad_add_server -may be called multiple times, and it may be used together with +or +.Fn rad_add_server_ex +may be called multiple times, and they may be used together with .Fn rad_config . At most 10 servers may be specified. When multiple servers are given, they are tried in round-robin Modified: head/lib/libradius/radius.conf.5 ============================================================================== --- head/lib/libradius/radius.conf.5 Thu Dec 6 18:51:18 2012 (r243955) +++ head/lib/libradius/radius.conf.5 Thu Dec 6 19:00:37 2012 (r243956) @@ -44,7 +44,7 @@ Leading white space is ignored, as are empty lines and lines containing only comments. .Pp -A RADIUS server is described by three to five fields on a line: +A RADIUS server is described by three to seven fields on a line: .Pp .Bl -item -offset indent -compact .It @@ -57,6 +57,10 @@ Shared secret Timeout .It Retries +.It +Dead time +.It +Bind address .El .Pp The fields are separated by white space. @@ -139,6 +143,13 @@ If omitted, it defaults to 3 attempts. Note, this is the total number of attempts and not the number of retries. .Pp +The sixth field contains a decimal integer specifying a time interval +in seconds when the server will not requested if it was inaccessible +on the last try. 0 means ask always. +.Pp +The seventh field contains an IP address on multihomed host. All +requests will be binded to this IP. +.Pp Up to 10 RADIUS servers may be specified for each service type. The servers are tried in round-robin fashion, until a valid response is received or the @@ -161,6 +172,9 @@ acct radius1.domain.com OurLittleSecre # timeout and maximum tries: auth auth.domain.com:1645 "I can't see you" 5 4 +# As above but set dead time and bind address +auth auth.domain.com:1645 "I can't see you" 5 4 60 192.168.1.8 + # A server specified by its IP address: auth 192.168.27.81 $X*#..38947ax-+= .Ed Modified: head/lib/libradius/radlib.c ============================================================================== --- head/lib/libradius/radlib.c Thu Dec 6 18:51:18 2012 (r243955) +++ head/lib/libradius/radlib.c Thu Dec 6 19:00:37 2012 (r243956) @@ -43,6 +43,8 @@ __FBSDID("$FreeBSD$"); #include #endif +#define MAX_FIELDS 7 + /* We need the MPPE_KEY_LEN define */ #include @@ -379,6 +381,18 @@ int rad_add_server(struct rad_handle *h, const char *host, int port, const char *secret, int timeout, int tries) { + struct in_addr bindto; + bindto.s_addr = INADDR_ANY; + + return rad_add_server_ex(h, host, port, secret, timeout, tries, + DEAD_TIME, &bindto); +} + +int +rad_add_server_ex(struct rad_handle *h, const char *host, int port, + const char *secret, int timeout, int tries, int dead_time, + struct in_addr *bindto) +{ struct rad_server *srvp; if (h->num_servers >= MAXSERVERS) { @@ -421,6 +435,10 @@ rad_add_server(struct rad_handle *h, con srvp->timeout = timeout; srvp->max_tries = tries; srvp->num_tries = 0; + srvp->is_dead = 0; + srvp->dead_time = dead_time; + srvp->next_probe = 0; + srvp->bindto = bindto->s_addr; h->num_servers++; return 0; } @@ -441,6 +459,13 @@ rad_close(struct rad_handle *h) free(h); } +void +rad_bind_to(struct rad_handle *h, in_addr_t addr) +{ + + h->bindto = addr; +} + int rad_config(struct rad_handle *h, const char *path) { @@ -468,11 +493,15 @@ rad_config(struct rad_handle *h, const c char *secret; char *timeout_str; char *maxtries_str; + char *dead_time_str; + char *bindto_str; char *end; char *wanttype; unsigned long timeout; unsigned long maxtries; + unsigned long dead_time; int port; + struct in_addr bindto; int i; linenum++; @@ -491,7 +520,7 @@ rad_config(struct rad_handle *h, const c buf[len - 1] = '\0'; /* Extract the fields from the line. */ - nfields = split(buf, fields, 5, msg, sizeof msg); + nfields = split(buf, fields, MAX_FIELDS, msg, sizeof msg); if (nfields == -1) { generr(h, "%s:%d: %s", path, linenum, msg); retval = -1; @@ -507,7 +536,7 @@ rad_config(struct rad_handle *h, const c */ if (strcmp(fields[0], "auth") != 0 && strcmp(fields[0], "acct") != 0) { - if (nfields >= 5) { + if (nfields >= MAX_FIELDS) { generr(h, "%s:%d: invalid service type", path, linenum); retval = -1; @@ -529,6 +558,8 @@ rad_config(struct rad_handle *h, const c secret = fields[2]; timeout_str = fields[3]; maxtries_str = fields[4]; + dead_time_str = fields[5]; + bindto_str = fields[6]; /* Ignore the line if it is for the wrong service type. */ wanttype = h->type == RADIUS_AUTH ? "auth" : "acct"; @@ -570,8 +601,30 @@ rad_config(struct rad_handle *h, const c } else maxtries = MAXTRIES; - if (rad_add_server(h, host, port, secret, timeout, maxtries) == - -1) { + if (dead_time_str != NULL) { + dead_time = strtoul(dead_time_str, &end, 10); + if (*end != '\0') { + generr(h, "%s:%d: invalid dead_time", path, + linenum); + retval = -1; + break; + } + } else + dead_time = DEAD_TIME; + + if (bindto_str != NULL) { + bindto.s_addr = inet_addr(bindto_str); + if (bindto.s_addr == INADDR_NONE) { + generr(h, "%s:%d: invalid bindto", path, + linenum); + retval = -1; + break; + } + } else + bindto.s_addr = INADDR_ANY; + + if (rad_add_server_ex(h, host, port, secret, timeout, maxtries, + dead_time, &bindto) == -1) { strcpy(msg, h->errmsg); generr(h, "%s:%d: %s", path, linenum, msg); retval = -1; @@ -596,7 +649,9 @@ int rad_continue_send_request(struct rad_handle *h, int selected, int *fd, struct timeval *tv) { - int n; + int n, cur_srv; + time_t now; + struct sockaddr_in sin; if (h->type == RADIUS_SERVER) { generr(h, "denied function call"); @@ -621,19 +676,61 @@ rad_continue_send_request(struct rad_han } } - if (h->try == h->total_tries) { - generr(h, "No valid RADIUS responses received"); - return -1; - } - /* * Scan round-robin to the next server that has some * tries left. There is guaranteed to be one, or we * would have exited this loop by now. */ - while (h->servers[h->srv].num_tries >= h->servers[h->srv].max_tries) - if (++h->srv >= h->num_servers) - h->srv = 0; + cur_srv = h->srv; + now = time(NULL); + if (h->servers[h->srv].num_tries >= h->servers[h->srv].max_tries) { + /* Set next probe time for this server */ + if (h->servers[h->srv].dead_time) { + h->servers[h->srv].is_dead = 1; + h->servers[h->srv].next_probe = now + + h->servers[h->srv].dead_time; + } + do { + h->srv++; + if (h->srv >= h->num_servers) + h->srv = 0; + if (h->servers[h->srv].is_dead == 0) + break; + if (h->servers[h->srv].dead_time && + h->servers[h->srv].next_probe <= now) { + h->servers[h->srv].is_dead = 0; + h->servers[h->srv].num_tries = 0; + break; + } + } while (h->srv != cur_srv); + + if (h->srv == cur_srv) { + generr(h, "No valid RADIUS responses received"); + return (-1); + } + } + + /* Rebind */ + if (h->bindto != h->servers[h->srv].bindto) { + h->bindto = h->servers[h->srv].bindto; + close(h->fd); + if ((h->fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { + generr(h, "Cannot create socket: %s", strerror(errno)); + return -1; + } + memset(&sin, 0, sizeof sin); + sin.sin_len = sizeof sin; + sin.sin_family = AF_INET; + sin.sin_addr.s_addr = h->bindto; + sin.sin_port = 0; + if (bind(h->fd, (const struct sockaddr *)&sin, + sizeof sin) == -1) { + generr(h, "bind: %s", strerror(errno)); + close(h->fd); + h->fd = -1; + return (-1); + } + } if (h->out[POS_CODE] == RAD_ACCESS_REQUEST) { /* Insert the scrambled password into the request */ @@ -641,9 +738,11 @@ rad_continue_send_request(struct rad_han insert_scrambled_password(h, h->srv); } insert_message_authenticator(h, 0); + if (h->out[POS_CODE] != RAD_ACCESS_REQUEST) { /* Insert the request authenticator into the request */ - insert_request_authenticator(h, h->srv); + memset(&h->out[POS_AUTH], 0, LEN_AUTH); + insert_request_authenticator(h, 0); } /* Send the request */ @@ -654,7 +753,6 @@ rad_continue_send_request(struct rad_han tv->tv_sec = 1; /* Do not wait full timeout if send failed. */ else tv->tv_sec = h->servers[h->srv].timeout; - h->try++; h->servers[h->srv].num_tries++; tv->tv_usec = 0; *fd = h->fd; @@ -740,6 +838,10 @@ rad_create_request(struct rad_handle *h, generr(h, "denied function call"); return (-1); } + if (h->num_servers == 0) { + generr(h, "No RADIUS servers specified"); + return (-1); + } h->out[POS_CODE] = code; h->out[POS_IDENT] = ++h->ident; if (code == RAD_ACCESS_REQUEST) { @@ -756,16 +858,9 @@ rad_create_request(struct rad_handle *h, clear_password(h); h->authentic_pos = 0; h->out_created = 1; - h->bindto = INADDR_ANY; return 0; } -void -rad_bind_to(struct rad_handle *h, in_addr_t addr) -{ - h->bindto = addr; -} - int rad_create_response(struct rad_handle *h, int code) { @@ -793,6 +888,15 @@ rad_cvt_addr(const void *data) return value; } +struct in6_addr +rad_cvt_addr6(const void *data) +{ + struct in6_addr value; + + memcpy(&value.s6_addr, data, sizeof value.s6_addr); + return value; +} + u_int32_t rad_cvt_int(const void *data) { @@ -848,6 +952,8 @@ int rad_init_send_request(struct rad_handle *h, int *fd, struct timeval *tv) { int srv; + time_t now; + struct sockaddr_in sin; if (h->type == RADIUS_SERVER) { generr(h, "denied function call"); @@ -855,8 +961,6 @@ rad_init_send_request(struct rad_handle } /* Make sure we have a socket to use */ if (h->fd == -1) { - struct sockaddr_in sin; - if ((h->fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { generr(h, "Cannot create socket: %s", strerror(errno)); return -1; @@ -902,21 +1006,30 @@ rad_init_send_request(struct rad_handle h->out[POS_LENGTH] = h->out_len >> 8; h->out[POS_LENGTH+1] = h->out_len; - /* - * Count the total number of tries we will make, and zero the - * counter for each server. - */ - h->total_tries = 0; - for (srv = 0; srv < h->num_servers; srv++) { - h->total_tries += h->servers[srv].max_tries; + h->srv = 0; + now = time(NULL); + for (srv = 0; srv < h->num_servers; srv++) h->servers[srv].num_tries = 0; - } - if (h->total_tries == 0) { - generr(h, "No RADIUS servers specified"); - return -1; + /* Find a first good server. */ + for (srv = 0; srv < h->num_servers; srv++) { + if (h->servers[srv].is_dead == 0) + break; + if (h->servers[srv].dead_time && + h->servers[srv].next_probe <= now) { + h->servers[srv].is_dead = 0; + break; + } + h->srv++; } - h->try = h->srv = 0; + /* If all servers was dead on the last probe, try from beginning */ + if (h->srv == h->num_servers) { + for (srv = 0; srv < h->num_servers; srv++) { + h->servers[srv].is_dead = 0; + h->servers[srv].next_probe = 0; + } + h->srv = 0; + } return rad_continue_send_request(h, 0, fd, tv); } @@ -946,6 +1059,7 @@ rad_auth_open(void) h->type = RADIUS_AUTH; h->out_created = 0; h->eap_msg = 0; + h->bindto = INADDR_ANY; } return h; } @@ -987,6 +1101,13 @@ rad_put_addr(struct rad_handle *h, int t } int +rad_put_addr6(struct rad_handle *h, int type, struct in6_addr addr) +{ + + return rad_put_attr(h, type, &addr.s6_addr, sizeof addr.s6_addr); +} + +int rad_put_attr(struct rad_handle *h, int type, const void *value, size_t len) { int result; @@ -1229,6 +1350,15 @@ rad_put_vendor_addr(struct rad_handle *h } int +rad_put_vendor_addr6(struct rad_handle *h, int vendor, int type, + struct in6_addr addr) +{ + + return (rad_put_vendor_attr(h, vendor, type, &addr.s6_addr, + sizeof addr.s6_addr)); +} + +int rad_put_vendor_attr(struct rad_handle *h, int vendor, int type, const void *value, size_t len) { Modified: head/lib/libradius/radlib.h ============================================================================== --- head/lib/libradius/radlib.h Thu Dec 6 18:51:18 2012 (r243955) +++ head/lib/libradius/radlib.h Thu Dec 6 19:00:37 2012 (r243956) @@ -194,6 +194,9 @@ __BEGIN_DECLS struct rad_handle *rad_acct_open(void); int rad_add_server(struct rad_handle *, const char *, int, const char *, int, int); +int rad_add_server_ex(struct rad_handle *, + const char *, int, const char *, int, int, + int, struct in_addr *); struct rad_handle *rad_auth_open(void); void rad_bind_to(struct rad_handle *, in_addr_t); void rad_close(struct rad_handle *); @@ -203,6 +206,7 @@ int rad_continue_send_request(struct int rad_create_request(struct rad_handle *, int); int rad_create_response(struct rad_handle *, int); struct in_addr rad_cvt_addr(const void *); +struct in6_addr rad_cvt_addr6(const void *); u_int32_t rad_cvt_int(const void *); char *rad_cvt_string(const void *, size_t); int rad_get_attr(struct rad_handle *, const void **, @@ -211,6 +215,7 @@ int rad_init_send_request(struct rad_ struct timeval *); struct rad_handle *rad_open(void); /* Deprecated, == rad_auth_open */ int rad_put_addr(struct rad_handle *, int, struct in_addr); +int rad_put_addr6(struct rad_handle *, int, struct in6_addr); int rad_put_attr(struct rad_handle *, int, const void *, size_t); int rad_put_int(struct rad_handle *, int, u_int32_t); Modified: head/lib/libradius/radlib_private.h ============================================================================== --- head/lib/libradius/radlib_private.h Thu Dec 6 18:51:18 2012 (r243955) +++ head/lib/libradius/radlib_private.h Thu Dec 6 19:00:37 2012 (r243956) @@ -46,6 +46,7 @@ #define RADIUS_PORT 1812 #define RADACCT_PORT 1813 #define TIMEOUT 3 /* In seconds */ +#define DEAD_TIME 0 /* Limits */ #define ERRSIZE 128 /* Maximum error message length */ @@ -68,6 +69,10 @@ struct rad_server { int timeout; /* Timeout in seconds */ int max_tries; /* Number of tries before giving up */ int num_tries; /* Number of tries so far */ + int is_dead; /* The server did not answer last time */ + time_t dead_time; /* Don't try this server for the time period if it is dead */ + time_t next_probe; /* Time of a next probe after failure */ + in_addr_t bindto; /* Bind to address */ }; struct rad_handle { @@ -88,11 +93,9 @@ struct rad_handle { unsigned char in[MSGSIZE]; /* Response received */ int in_len; /* Length of response */ int in_pos; /* Current position scanning attrs */ - int total_tries; /* How many requests we'll send */ - int try; /* How many requests we've sent */ int srv; /* Server number we did last */ int type; /* Handle type */ - in_addr_t bindto; /* Bind to address */ + in_addr_t bindto; /* Current bind address */ }; struct vendor_attribute { Modified: head/lib/libradius/radlib_vs.h ============================================================================== --- head/lib/libradius/radlib_vs.h Thu Dec 6 18:51:18 2012 (r243955) +++ head/lib/libradius/radlib_vs.h Thu Dec 6 19:00:37 2012 (r243956) @@ -73,6 +73,7 @@ struct rad_handle; __BEGIN_DECLS int rad_get_vendor_attr(u_int32_t *, const void **, size_t *); int rad_put_vendor_addr(struct rad_handle *, int, int, struct in_addr); +int rad_put_vendor_addr6(struct rad_handle *, int, int, struct in6_addr); int rad_put_vendor_attr(struct rad_handle *, int, int, const void *, size_t); int rad_put_vendor_int(struct rad_handle *, int, int, u_int32_t); From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 21:53:23 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 76722691; Thu, 6 Dec 2012 21:53:23 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 4850A8FC16; Thu, 6 Dec 2012 21:53:23 +0000 (UTC) Received: from pakbsde14.localnet (unknown [38.105.238.108]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A1717B977; Thu, 6 Dec 2012 16:53:22 -0500 (EST) From: John Baldwin To: Andriy Gapon Subject: Re: svn commit: r243764 - head/sys/x86/x86 Date: Thu, 6 Dec 2012 15:40:42 -0500 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p22; KDE/4.5.5; amd64; ; ) References: <201212011816.qB1IGE2Y064317@svn.freebsd.org> In-Reply-To: <201212011816.qB1IGE2Y064317@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201212061540.42393.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 06 Dec 2012 16:53:22 -0500 (EST) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 21:53:23 -0000 On Saturday, December 01, 2012 1:16:14 pm Andriy Gapon wrote: > Author: avg > Date: Sat Dec 1 18:16:14 2012 > New Revision: 243764 > URL: http://svnweb.freebsd.org/changeset/base/243764 > > Log: > ioapic_program_intpin: program high bits before low bits > > Programming the low bits has a side-effect if unmasking the pin if it is > not disabled. So if an interrupt was pending then it would be delivered > with the correct new vector but to the incorrect old LAPIC. > > This fix could be made clearer by preserving the mask bit while > programming the low bits and then explicitly resetting the mask bit > after all the programming is done. > > Probability to trip over the fixed bug could be increased by bootverbose > because printing of the interrupt information in ioapic_assign_cpu > lengthened the time window during which an interrupt could arrive while > a pin is masked. Can you expand the comment to say that you write 'low' second since it may clear the masked bit? -- John Baldwin From owner-svn-src-head@FreeBSD.ORG Thu Dec 6 22:33:32 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D9A0B375; Thu, 6 Dec 2012 22:33:32 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id BD0D08FC13; Thu, 6 Dec 2012 22:33:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB6MXWxJ046173; Thu, 6 Dec 2012 22:33:32 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB6MXWpP046167; Thu, 6 Dec 2012 22:33:32 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201212062233.qB6MXWpP046167@svn.freebsd.org> From: Jim Harris Date: Thu, 6 Dec 2012 22:33:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243960 - in head/sys: amd64/include i386/include x86/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 22:33:33 -0000 Author: jimharris Date: Thu Dec 6 22:33:31 2012 New Revision: 243960 URL: http://svnweb.freebsd.org/changeset/base/243960 Log: Add amd64 implementations for 8-byte bus_space routines. Submitted by: Carl Delsey Discussed with: jhb, rwatson Reviewed by: jimharris MFC after: 1 week Modified: head/sys/amd64/include/bus.h head/sys/i386/include/bus.h head/sys/x86/include/bus.h Modified: head/sys/amd64/include/bus.h ============================================================================== --- head/sys/amd64/include/bus.h Thu Dec 6 21:44:53 2012 (r243959) +++ head/sys/amd64/include/bus.h Thu Dec 6 22:33:31 2012 (r243960) @@ -1,6 +1,153 @@ /*- - * This file is in the public domain. + * Copyright (c) 2012 Intel Corporation + * Copyright (c) 2009 Marcel Moolenaar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ */ -/* $FreeBSD$ */ +#ifndef _MACHINE_BUS_H_ +#define _MACHINE_BUS_H_ + +#include #include + +#define KASSERT_BUS_SPACE_MEM_ONLY(tag) \ + KASSERT((tag) == X86_BUS_SPACE_MEM, \ + ("%s: can only handle mem space", __func__)) + +static __inline uint64_t +bus_space_read_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs) +{ + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + return (*(volatile uint64_t *)(bsh + ofs)); +} + +static __inline void +bus_space_write_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs, uint64_t val) +{ + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + *(volatile uint64_t *)(bsh + ofs) = val; +} + +static __inline void +bus_space_read_region_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs, uint64_t *bufp, size_t count) +{ + volatile uint64_t *bsp; + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + bsp = (void *)(bsh + ofs); + while (count-- > 0) + *bufp++ = *bsp++; +} + +static __inline void +bus_space_write_region_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs, uint64_t const *bufp, size_t count) +{ + volatile uint64_t *bsp; + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + bsp = (void *)(bsh + ofs); + while (count-- > 0) + *bsp++ = *bufp++; +} + +static __inline void +bus_space_set_region_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs, uint64_t val, size_t count) +{ + volatile uint64_t *bsp; + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + bsp = (void *)(bsh + ofs); + while (count-- > 0) + *bsp++ = val; +} + +static __inline void +bus_space_copy_region_8(bus_space_tag_t tag, bus_space_handle_t sbsh, + bus_size_t sofs, bus_space_handle_t dbsh, bus_size_t dofs, size_t count) +{ + volatile uint64_t *dst, *src; + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + src = (void *)(sbsh + sofs); + dst = (void *)(dbsh + dofs); + if (src < dst) { + src += count - 1; + dst += count - 1; + while (count-- > 0) + *dst-- = *src--; + } else { + while (count-- > 0) + *dst++ = *src++; + } +} + +static __inline void +bus_space_read_multi_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs, uint64_t *bufp, size_t count) +{ + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + while (count-- > 0) + *bufp++ = *(volatile uint64_t *)(bsh + ofs); +} + +static __inline void +bus_space_write_multi_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs, uint64_t const *bufp, size_t count) +{ + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + while (count-- > 0) + *(volatile uint64_t *)(bsh + ofs) = *bufp++; +} + +static __inline void +bus_space_set_multi_8(bus_space_tag_t tag, bus_space_handle_t bsh, + bus_size_t ofs, uint64_t val, size_t count) +{ + + KASSERT_BUS_SPACE_MEM_ONLY(tag); + + while (count-- > 0) + *(volatile uint64_t *)(bsh + ofs) = val; +} + +#endif /*_MACHINE_BUS_H_*/ Modified: head/sys/i386/include/bus.h ============================================================================== --- head/sys/i386/include/bus.h Thu Dec 6 21:44:53 2012 (r243959) +++ head/sys/i386/include/bus.h Thu Dec 6 22:33:31 2012 (r243960) @@ -3,4 +3,26 @@ */ /* $FreeBSD$ */ +#ifndef _MACHINE_BUS_H_ +#define _MACHINE_BUS_H_ + #include + +/* + * The functions: + * bus_space_read_8 + * bus_space_read_region_8 + * bus_space_write_8 + * bus_space_write_multi_8 + * bus_space_write_region_8 + * bus_space_set_multi_8 + * bus_space_set_region_8 + * bus_space_copy_region_8 + * bus_space_read_multi_8 + * are unimplemented for i386 because there is no way to do a 64-bit move in + * this architecture. It is possible to do two 32-bit moves, but this is + * not atomic and may have hardware dependencies that should be fully + * understood. + */ + +#endif /*_MACHINE_BUS_H_*/ Modified: head/sys/x86/include/bus.h ============================================================================== --- head/sys/x86/include/bus.h Thu Dec 6 21:44:53 2012 (r243959) +++ head/sys/x86/include/bus.h Thu Dec 6 22:33:31 2012 (r243960) @@ -251,10 +251,6 @@ bus_space_read_4(bus_space_tag_t tag, bu return (*(volatile u_int32_t *)(handle + offset)); } -#if 0 /* Cause a link error for bus_space_read_8 */ -#define bus_space_read_8(t, h, o) !!! bus_space_read_8 unimplemented !!! -#endif - /* * Read `count' 1, 2, 4, or 8 byte quantities from bus space * described by tag/handle/offset and copy into buffer provided. @@ -337,10 +333,6 @@ bus_space_read_multi_4(bus_space_tag_t t } } -#if 0 /* Cause a link error for bus_space_read_multi_8 */ -#define bus_space_read_multi_8 !!! bus_space_read_multi_8 unimplemented !!! -#endif - /* * Read `count' 1, 2, 4, or 8 byte quantities from bus space * described by tag/handle and starting at `offset' and copy into @@ -458,10 +450,6 @@ bus_space_read_region_4(bus_space_tag_t } } -#if 0 /* Cause a link error for bus_space_read_region_8 */ -#define bus_space_read_region_8 !!! bus_space_read_region_8 unimplemented !!! -#endif - /* * Write the 1, 2, 4, or 8 byte value `value' to bus space * described by tag/handle/offset. @@ -512,10 +500,6 @@ bus_space_write_4(bus_space_tag_t tag, b *(volatile u_int32_t *)(bsh + offset) = value; } -#if 0 /* Cause a link error for bus_space_write_8 */ -#define bus_space_write_8 !!! bus_space_write_8 not implemented !!! -#endif - /* * Write `count' 1, 2, 4, or 8 byte quantities from the buffer * provided to bus space described by tag/handle/offset. @@ -601,11 +585,6 @@ bus_space_write_multi_4(bus_space_tag_t } } -#if 0 /* Cause a link error for bus_space_write_multi_8 */ -#define bus_space_write_multi_8(t, h, o, a, c) \ - !!! bus_space_write_multi_8 unimplemented !!! -#endif - /* * Write `count' 1, 2, 4, or 8 byte quantities from the buffer provided * to bus space described by tag/handle starting at `offset'. @@ -723,11 +702,6 @@ bus_space_write_region_4(bus_space_tag_t } } -#if 0 /* Cause a link error for bus_space_write_region_8 */ -#define bus_space_write_region_8 \ - !!! bus_space_write_region_8 unimplemented !!! -#endif - /* * Write the 1, 2, 4, or 8 byte value `val' to bus space described * by tag/handle/offset `count' times. @@ -788,10 +762,6 @@ bus_space_set_multi_4(bus_space_tag_t ta *(volatile u_int32_t *)(addr) = value; } -#if 0 /* Cause a link error for bus_space_set_multi_8 */ -#define bus_space_set_multi_8 !!! bus_space_set_multi_8 unimplemented !!! -#endif - /* * Write `count' 1, 2, 4, or 8 byte value `val' to bus space described * by tag/handle starting at `offset'. @@ -852,10 +822,6 @@ bus_space_set_region_4(bus_space_tag_t t *(volatile u_int32_t *)(addr) = value; } -#if 0 /* Cause a link error for bus_space_set_region_8 */ -#define bus_space_set_region_8 !!! bus_space_set_region_8 unimplemented !!! -#endif - /* * Copy `count' 1, 2, 4, or 8 byte values from bus space starting * at tag/bsh1/off1 to bus space starting at tag/bsh2/off2. @@ -984,10 +950,6 @@ bus_space_copy_region_4(bus_space_tag_t } } -#if 0 /* Cause a link error for bus_space_copy_8 */ -#define bus_space_copy_region_8 !!! bus_space_copy_region_8 unimplemented !!! -#endif - /* * Bus read/write barrier methods. * From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 01:36:54 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8CC12217; Fri, 7 Dec 2012 01:36:54 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 6F0DB8FC0C; Fri, 7 Dec 2012 01:36:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB71asBw078076; Fri, 7 Dec 2012 01:36:54 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB71asUn078075; Fri, 7 Dec 2012 01:36:54 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201212070136.qB71asUn078075@svn.freebsd.org> From: Xin LI Date: Fri, 7 Dec 2012 01:36:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243964 - head/lib/libradius X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 01:36:54 -0000 Author: delphij Date: Fri Dec 7 01:36:53 2012 New Revision: 243964 URL: http://svnweb.freebsd.org/changeset/base/243964 Log: Fix build: reflect the increased field number. Modified: head/lib/libradius/radlib.c Modified: head/lib/libradius/radlib.c ============================================================================== --- head/lib/libradius/radlib.c Fri Dec 7 01:14:52 2012 (r243963) +++ head/lib/libradius/radlib.c Fri Dec 7 01:36:53 2012 (r243964) @@ -484,7 +484,7 @@ rad_config(struct rad_handle *h, const c linenum = 0; while (fgets(buf, sizeof buf, fp) != NULL) { int len; - char *fields[5]; + char *fields[MAX_FIELDS]; int nfields; char msg[ERRSIZE]; char *type; From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 02:22:49 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B0E99B9A; Fri, 7 Dec 2012 02:22:49 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 8AD2B8FC0C; Fri, 7 Dec 2012 02:22:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB72MnTx085682; Fri, 7 Dec 2012 02:22:49 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB72MnNX085679; Fri, 7 Dec 2012 02:22:49 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201212070222.qB72MnNX085679@svn.freebsd.org> From: Kevin Lo Date: Fri, 7 Dec 2012 02:22:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243965 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 02:22:49 -0000 Author: kevlo Date: Fri Dec 7 02:22:48 2012 New Revision: 243965 URL: http://svnweb.freebsd.org/changeset/base/243965 Log: - according to POSIX, make socket(2) return EAFNOSUPPORT rather than EPROTONOSUPPORT if the address family is not supported. - introduce pffinddomain() to find a domain by family and use it as appropriate. Reviewed by: glebius Modified: head/sys/kern/uipc_domain.c head/sys/kern/uipc_socket.c head/sys/sys/protosw.h Modified: head/sys/kern/uipc_domain.c ============================================================================== --- head/sys/kern/uipc_domain.c Fri Dec 7 01:36:53 2012 (r243964) +++ head/sys/kern/uipc_domain.c Fri Dec 7 02:22:48 2012 (r243965) @@ -270,21 +270,31 @@ domainfinalize(void *dummy) callout_reset(&pfslow_callout, 1, pfslowtimo, NULL); } +struct domain * +pffinddomain(int family) +{ + struct domain *dp; + + for (dp = domains; dp != NULL; dp = dp->dom_next) + if (dp->dom_family == family) + return (dp); + return (NULL); +} + struct protosw * pffindtype(int family, int type) { struct domain *dp; struct protosw *pr; - for (dp = domains; dp; dp = dp->dom_next) - if (dp->dom_family == family) - goto found; - return (0); -found: + dp = pffinddomain(family); + if (dp == NULL) + return (NULL); + for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++) if (pr->pr_type && pr->pr_type == type) return (pr); - return (0); + return (NULL); } struct protosw * @@ -292,21 +302,22 @@ pffindproto(int family, int protocol, in { struct domain *dp; struct protosw *pr; - struct protosw *maybe = 0; + struct protosw *maybe; + maybe = NULL; if (family == 0) - return (0); - for (dp = domains; dp; dp = dp->dom_next) - if (dp->dom_family == family) - goto found; - return (0); -found: + return (NULL); + + dp = pffinddomain(family); + if (dp == NULL) + return (NULL); + for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++) { if ((pr->pr_protocol == protocol) && (pr->pr_type == type)) return (pr); if (type == SOCK_RAW && pr->pr_type == SOCK_RAW && - pr->pr_protocol == 0 && maybe == (struct protosw *)0) + pr->pr_protocol == 0 && maybe == NULL) maybe = pr; } return (maybe); @@ -334,12 +345,10 @@ pf_proto_register(int family, struct pro return (ENXIO); /* Try to find the specified domain based on the family. */ - for (dp = domains; dp; dp = dp->dom_next) - if (dp->dom_family == family) - goto found; - return (EPFNOSUPPORT); + dp = pffinddomain(family); + if (dp == NULL) + return (EPFNOSUPPORT); -found: /* Initialize backpointer to struct domain. */ npr->pr_domain = dp; fpr = NULL; @@ -405,12 +414,10 @@ pf_proto_unregister(int family, int prot return (EPROTOTYPE); /* Try to find the specified domain based on the family type. */ - for (dp = domains; dp; dp = dp->dom_next) - if (dp->dom_family == family) - goto found; - return (EPFNOSUPPORT); + dp = pffinddomain(family); + if (dp == NULL) + return (EPFNOSUPPORT); -found: dpr = NULL; /* Lock out everyone else while we are manipulating the protosw. */ Modified: head/sys/kern/uipc_socket.c ============================================================================== --- head/sys/kern/uipc_socket.c Fri Dec 7 01:36:53 2012 (r243964) +++ head/sys/kern/uipc_socket.c Fri Dec 7 02:22:48 2012 (r243965) @@ -425,7 +425,16 @@ socreate(int dom, struct socket **aso, i else prp = pffindtype(dom, type); - if (prp == NULL || prp->pr_usrreqs->pru_attach == NULL || + if (prp == NULL) { + /* No support for domain. */ + if (pffinddomain(dom) == NULL) + return (EAFNOSUPPORT); + /* No support for socket type. */ + if (proto == 0 && type != 0) + return (EPROTOTYPE); + return (EPROTONOSUPPORT); + } + if (prp->pr_usrreqs->pru_attach == NULL || prp->pr_usrreqs->pru_attach == pru_attach_notsupp) return (EPROTONOSUPPORT); Modified: head/sys/sys/protosw.h ============================================================================== --- head/sys/sys/protosw.h Fri Dec 7 01:36:53 2012 (r243964) +++ head/sys/sys/protosw.h Fri Dec 7 02:22:48 2012 (r243965) @@ -330,6 +330,7 @@ char *prcorequests[] = { #ifdef _KERNEL void pfctlinput(int, struct sockaddr *); void pfctlinput2(int, struct sockaddr *, void *); +struct domain *pffinddomain(int family); struct protosw *pffindproto(int family, int protocol, int type); struct protosw *pffindtype(int family, int type); int pf_proto_register(int family, struct protosw *npr); From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 02:26:09 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BC3F2EC6; Fri, 7 Dec 2012 02:26:09 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 882068FC13; Fri, 7 Dec 2012 02:26:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB72Q9OT086304; Fri, 7 Dec 2012 02:26:09 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB72Q99U086303; Fri, 7 Dec 2012 02:26:09 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201212070226.qB72Q99U086303@svn.freebsd.org> From: Kevin Lo Date: Fri, 7 Dec 2012 02:26:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243966 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 02:26:09 -0000 Author: kevlo Date: Fri Dec 7 02:26:08 2012 New Revision: 243966 URL: http://svnweb.freebsd.org/changeset/base/243966 Log: Document that socket(2) may fail with EAFNOSUPPORT if the family cannot be found. Reviewed by: glebius Obtained from: NetBSD Modified: head/lib/libc/sys/socket.2 Modified: head/lib/libc/sys/socket.2 ============================================================================== --- head/lib/libc/sys/socket.2 Fri Dec 7 02:22:48 2012 (r243965) +++ head/lib/libc/sys/socket.2 Fri Dec 7 02:26:08 2012 (r243966) @@ -28,7 +28,7 @@ .\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd January 5, 2009 +.Dd December 7, 2012 .Dt SOCKET 2 .Os .Sh NAME @@ -248,21 +248,26 @@ The .Fn socket system call fails if: .Bl -tag -width Er -.It Bq Er EPROTONOSUPPORT -The protocol type or the specified protocol is not supported -within this domain. +.It Bq Er EACCES +Permission to create a socket of the specified type and/or protocol +is denied. +.It Bq Er EAFNOSUPPORT +The address family (domain) is not supported or the +specified domain is not supported by this protocol family. .It Bq Er EMFILE The per-process descriptor table is full. .It Bq Er ENFILE The system file table is full. -.It Bq Er EACCES -Permission to create a socket of the specified type and/or protocol -is denied. .It Bq Er ENOBUFS Insufficient buffer space is available. The socket cannot be created until sufficient resources are freed. .It Bq Er EPERM User has insufficient privileges to carry out the requested operation. +.It Bq Er EPROTONOSUPPORT +The protocol type or the specified protocol is not supported +within this domain. +.It Bq Er EPROTOTYPE +The socket type is not supported by the protocol. .El .Sh SEE ALSO .Xr accept 2 , From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 02:29:33 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 117D8D4; Fri, 7 Dec 2012 02:29:33 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id CD61C8FC13; Fri, 7 Dec 2012 02:29:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB72TWOn086835; Fri, 7 Dec 2012 02:29:32 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB72TWGm086832; Fri, 7 Dec 2012 02:29:32 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201212070229.qB72TWGm086832@svn.freebsd.org> From: Kevin Lo Date: Fri, 7 Dec 2012 02:29:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243967 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 02:29:33 -0000 Author: kevlo Date: Fri Dec 7 02:29:32 2012 New Revision: 243967 URL: http://svnweb.freebsd.org/changeset/base/243967 Log: Document pffinddomain(). Reviewed by: glebius Modified: head/share/man/man9/Makefile head/share/man/man9/domain.9 Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Fri Dec 7 02:26:08 2012 (r243966) +++ head/share/man/man9/Makefile Fri Dec 7 02:29:32 2012 (r243967) @@ -620,6 +620,7 @@ MLINKS+=domain.9 DOMAIN_SET.9 \ domain.9 domain_add.9 \ domain.9 pfctlinput.9 \ domain.9 pfctlinput2.9 \ + domain.9 pffinddomain.9 \ domain.9 pffindproto.9 \ domain.9 pffindtype.9 MLINKS+=drbr.9 drbr_free.9 \ Modified: head/share/man/man9/domain.9 ============================================================================== --- head/share/man/man9/domain.9 Fri Dec 7 02:26:08 2012 (r243966) +++ head/share/man/man9/domain.9 Fri Dec 7 02:29:32 2012 (r243967) @@ -26,13 +26,14 @@ .\" .\" $FreeBSD$ .\" -.Dd November 5, 2012 +.Dd December 7, 2012 .Dt DOMAIN 9 .Os .Sh NAME .Nm domain_add , .Nm pfctlinput , .Nm pfctlinput2 , +.Nm pffinddomain , .Nm pffindproto , .Nm pffindtype , .Nm DOMAIN_SET @@ -48,6 +49,8 @@ .Fn pfctlinput "int cmd" "struct sockaddr *sa" .Ft void .Fn pfctlinput2 "int cmd" "struct sockaddr *sa" "void *ctlparam" +.Ft struct domain * +.Fn pffinddomain "int family" .Ft struct protosw * .Fn pffindproto "int family" "int protocol" "int type" .Ft struct protosw * @@ -176,6 +179,12 @@ This is because there is no reference counting system in place to determine if there are any active references from sockets within that domain. .Pp +.Fn pffinddomain +finds a domain by family. +If the domain cannot be found, +.Dv NULL +is returned. +.Pp .Fn pffindtype and .Fn pffindproto From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 02:33:12 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CA32534F; Fri, 7 Dec 2012 02:33:12 +0000 (UTC) (envelope-from kevlo@ns.kevlo.org) Received: from ns.kevlo.org (kevlo.org [220.128.136.52]) by mx1.freebsd.org (Postfix) with ESMTP id 481C88FC08; Fri, 7 Dec 2012 02:33:10 +0000 (UTC) Received: from ns.kevlo.org (localhost [127.0.0.1]) by ns.kevlo.org (8.14.5/8.14.5) with ESMTP id qB72Wuwu057255; Fri, 7 Dec 2012 10:32:56 +0800 (CST) (envelope-from kevlo@ns.kevlo.org) Received: (from kevlo@localhost) by ns.kevlo.org (8.14.5/8.14.5/Submit) id qB72WuGG057254; Fri, 7 Dec 2012 10:32:56 +0800 (CST) (envelope-from kevlo) Date: Fri, 7 Dec 2012 10:32:56 +0800 From: Kevin Lo To: src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Subject: Re: svn commit: r243965 - in head/sys: kern sys Message-ID: <20121207023256.GA57226@ns.kevlo.org> References: <201212070222.qB72MnNX085679@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=big5 Content-Disposition: inline In-Reply-To: <201212070222.qB72MnNX085679@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 02:33:12 -0000 On Fri, Dec 07, 2012 at 02:22:48AM +0000, Kevin Lo wrote: > Author: kevlo > Date: Fri Dec 7 02:22:48 2012 > New Revision: 243965 > URL: http://svnweb.freebsd.org/changeset/base/243965 > > Log: > - according to POSIX, make socket(2) return EAFNOSUPPORT rather than > EPROTONOSUPPORT if the address family is not supported. > - introduce pffinddomain() to find a domain by family and use it as > appropriate. > > Reviewed by: glebius Forgot to mention, obtained from NetBSD. From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 05:55:49 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 19640409; Fri, 7 Dec 2012 05:55:49 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id F1D378FC0C; Fri, 7 Dec 2012 05:55:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB75tmHj027951; Fri, 7 Dec 2012 05:55:48 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB75tmGM027950; Fri, 7 Dec 2012 05:55:48 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201212070555.qB75tmGM027950@svn.freebsd.org> From: Alfred Perlstein Date: Fri, 7 Dec 2012 05:55:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243971 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 05:55:49 -0000 Author: alfred Date: Fri Dec 7 05:55:48 2012 New Revision: 243971 URL: http://svnweb.freebsd.org/changeset/base/243971 Log: Use uint instead of int for flags exported via sysctl. Modified: head/sys/kern/kern_ktr.c Modified: head/sys/kern/kern_ktr.c ============================================================================== --- head/sys/kern/kern_ktr.c Fri Dec 7 05:42:00 2012 (r243970) +++ head/sys/kern/kern_ktr.c Fri Dec 7 05:55:48 2012 (r243971) @@ -112,7 +112,7 @@ static SYSCTL_NODE(_debug, OID_AUTO, ktr SYSCTL_INT(_debug_ktr, OID_AUTO, version, CTLFLAG_RD, &ktr_version, 0, "Version of the KTR interface"); -SYSCTL_INT(_debug_ktr, OID_AUTO, compile, CTLFLAG_RD, +SYSCTL_UINT(_debug_ktr, OID_AUTO, compile, CTLFLAG_RD, &ktr_compile, 0, "Bitmask of KTR event classes compiled into the kernel"); static void @@ -190,8 +190,8 @@ sysctl_debug_ktr_mask(SYSCTL_HANDLER_ARG return (error); } -SYSCTL_PROC(_debug_ktr, OID_AUTO, mask, CTLTYPE_INT|CTLFLAG_RW, 0, 0, - sysctl_debug_ktr_mask, "I", +SYSCTL_PROC(_debug_ktr, OID_AUTO, mask, CTLTYPE_UINT|CTLFLAG_RW, 0, 0, + sysctl_debug_ktr_mask, "IU", "Bitmask of KTR event classes for which logging is enabled"); static int From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 06:34:47 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EABA6F47; Fri, 7 Dec 2012 06:34:46 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id CEE438FC0C; Fri, 7 Dec 2012 06:34:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB76YkbM035539; Fri, 7 Dec 2012 06:34:46 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB76YkH1035537; Fri, 7 Dec 2012 06:34:46 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212070634.qB76YkH1035537@svn.freebsd.org> From: Adrian Chadd Date: Fri, 7 Dec 2012 06:34:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243974 - in head: etc sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 06:34:47 -0000 Author: adrian Date: Fri Dec 7 06:34:46 2012 New Revision: 243974 URL: http://svnweb.freebsd.org/changeset/base/243974 Log: Add a new 900MHz GSM regulatory SKU for the Xagyl Communications XC900M. The XC900M acts as a Ubiquiti XR9 (and I _think_ SR9) by default; it uses the same 900MHz<->2.4GHz downconverter mapping. However it has an alternative frequency mapping which squeezes in a couple more half/quarter rate channels. Since the default HAL doesn't support fractional tuning (sub-1MHz) in 2.4GHz mode on the AR5413/AR5414, they implement it using a jumper. Datasheet: http://www.xagyl.com/download/XC900M_Datasheet.pdf Thankyou to Xagyl Communications for the XC900M NICs and Edgar Martinez for organising the donation. Tested: * XC900M <-> XC900M * Ubiquiti XR9 <-> XC900M TODO: * Test against SR9 and GZ901 if possible (the IEEE channel<->frequency mapping may not match up, thanks to the slightly different channels involved) Modified: head/etc/regdomain.xml head/sys/net80211/ieee80211_regdomain.h Modified: head/etc/regdomain.xml ============================================================================== --- head/etc/regdomain.xml Fri Dec 7 06:34:20 2012 (r243973) +++ head/etc/regdomain.xml Fri Dec 7 06:34:46 2012 (r243974) @@ -1303,6 +1303,29 @@ + + + XC900M + 0x29b + + + + 30 + IEEE80211_CHAN_G + + + + 30 + IEEE80211_CHAN_G + + + + 30 + IEEE80211_CHAN_G + + + + @@ -1896,6 +1919,25 @@ IEEE80211_CHAN_GSM + + 905 925 + 5 5 + IEEE80211_CHAN_GSM + IEEE80211_CHAN_QUARTER + + + 910 920 + 10 5 + IEEE80211_CHAN_GSM + IEEE80211_CHAN_HALF + + + 915 915 + 20 5 + IEEE80211_CHAN_GSM + + + Modified: head/sys/net80211/ieee80211_regdomain.h ============================================================================== --- head/sys/net80211/ieee80211_regdomain.h Fri Dec 7 06:34:20 2012 (r243973) +++ head/sys/net80211/ieee80211_regdomain.h Fri Dec 7 06:34:46 2012 (r243974) @@ -258,6 +258,17 @@ enum RegdomainCode { SKU_SR9 = 0x0298, /* Ubiquiti SR9 (900MHz/GSM) */ SKU_XR9 = 0x0299, /* Ubiquiti XR9 (900MHz/GSM) */ SKU_GZ901 = 0x029a, /* Zcomax GZ-901 (900MHz/GSM) */ + SKU_XC900M = 0x029b, /* Xagyl XC900M (900MHz/GSM) */ + /* + * The XC900M by default uses the + * same mapping as the XR9. It + * can optionally use a slightly + * offset channel spacing (905MHz- + * 925MHz) versus the XR9 (907MHz- + * 922MHz), giving an extra channel. + * This requires a jumper on the + * NIC to be changed. + */ }; #if defined(__KERNEL__) || defined(_KERNEL) From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 06:38:31 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 42CEB162; Fri, 7 Dec 2012 06:38:31 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 265A28FC13; Fri, 7 Dec 2012 06:38:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB76cVxp036220; Fri, 7 Dec 2012 06:38:31 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB76cVdq036219; Fri, 7 Dec 2012 06:38:31 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201212070638.qB76cVdq036219@svn.freebsd.org> From: Adrian Chadd Date: Fri, 7 Dec 2012 06:38:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243975 - head/sys/dev/ath/ath_hal X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 06:38:31 -0000 Author: adrian Date: Fri Dec 7 06:38:30 2012 New Revision: 243975 URL: http://svnweb.freebsd.org/changeset/base/243975 Log: Add XC900 SKU mapping. Modified: head/sys/dev/ath/ath_hal/ah_regdomain.c Modified: head/sys/dev/ath/ath_hal/ah_regdomain.c ============================================================================== --- head/sys/dev/ath/ath_hal/ah_regdomain.c Fri Dec 7 06:34:46 2012 (r243974) +++ head/sys/dev/ath/ath_hal/ah_regdomain.c Fri Dec 7 06:38:30 2012 (r243975) @@ -613,6 +613,8 @@ ath_hal_mapgsm(int sku, int freq) return 1544 + freq; if (sku == SKU_SR9) return 3344 - freq; + if (sku == SKU_XC900M) + return 1517 + freq; HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot map freq %u unknown gsm sku %u\n", __func__, freq, sku); @@ -727,6 +729,7 @@ ath_hal_set_channels(struct ath_hal *ah, case SKU_SR9: case SKU_XR9: case SKU_GZ901: + case SKU_XC900M: /* * Map 900MHz sku's. The frequencies will be mapped * according to the sku to compensate for the down-converter. From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 07:02:40 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A8B47634; Fri, 7 Dec 2012 07:02:40 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 718A98FC14; Fri, 7 Dec 2012 07:02:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB772eCw040727; Fri, 7 Dec 2012 07:02:40 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB772ebd040726; Fri, 7 Dec 2012 07:02:40 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201212070702.qB772ebd040726@svn.freebsd.org> From: Rui Paulo Date: Fri, 7 Dec 2012 07:02:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243977 - head/sys/boot/i386/efi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 07:02:40 -0000 Author: rpaulo Date: Fri Dec 7 07:02:39 2012 New Revision: 243977 URL: http://svnweb.freebsd.org/changeset/base/243977 Log: Make this work for 64 bit binaries. Modified: head/sys/boot/i386/efi/reloc.c Modified: head/sys/boot/i386/efi/reloc.c ============================================================================== --- head/sys/boot/i386/efi/reloc.c Fri Dec 7 07:00:31 2012 (r243976) +++ head/sys/boot/i386/efi/reloc.c Fri Dec 7 07:02:39 2012 (r243977) @@ -28,21 +28,31 @@ __FBSDID("$FreeBSD$"); #include -#include +#include #include #include +#ifdef __i386__ +#define ElfW_Rel Elf32_Rel +#define ElfW_Dyn Elf32_Dyn +#define ELFW_R_TYPE ELF32_R_TYPE +#elif __amd64__ +#define ElfW_Rel Elf64_Rel +#define ElfW_Dyn Elf64_Dyn +#define ELFW_R_TYPE ELF64_R_TYPE +#endif + /* - * A simple relocator for IA32 EFI binaries. + * A simple relocator for IA32/AMD64 EFI binaries. */ EFI_STATUS -_reloc(unsigned long ImageBase, Elf32_Dyn *dynamic, EFI_HANDLE image_handle, +_reloc(unsigned long ImageBase, ElfW_Dyn *dynamic, EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *system_table) { unsigned long relsz, relent; unsigned long *newaddr; - Elf32_Rel *rel; - Elf32_Dyn *dynp; + ElfW_Rel *rel; + ElfW_Dyn *dynp; /* * Find the relocation address, its size and the relocation entry. @@ -51,14 +61,17 @@ _reloc(unsigned long ImageBase, Elf32_Dy relent = 0; for (dynp = dynamic; dynp->d_tag != DT_NULL; dynp++) { switch (dynp->d_tag) { + case DT_RELA: case DT_REL: - rel = (Elf32_Rel *) ((unsigned long) dynp->d_un.d_ptr + + rel = (ElfW_Rel *) ((unsigned long) dynp->d_un.d_ptr + ImageBase); break; case DT_RELSZ: + case DT_RELASZ: relsz = dynp->d_un.d_val; break; case DT_RELENT: + case DT_RELAENT: relent = dynp->d_un.d_val; break; default: @@ -74,7 +87,7 @@ _reloc(unsigned long ImageBase, Elf32_Dy CTASSERT(R_386_NONE == R_X86_64_NONE); CTASSERT(R_386_RELATIVE == R_X86_64_RELATIVE); for (; relsz > 0; relsz -= relent) { - switch (ELF32_R_TYPE(rel->r_info)) { + switch (ELFW_R_TYPE(rel->r_info)) { case R_386_NONE: /* No relocation needs be performed. */ break; @@ -85,9 +98,9 @@ _reloc(unsigned long ImageBase, Elf32_Dy break; default: /* XXX: do we need other relocations ? */ - return (EFI_LOAD_ERROR); + break; } - rel = (Elf32_Rel *) ((caddr_t) rel + relent); + rel = (ElfW_Rel *) ((caddr_t) rel + relent); } return (EFI_SUCCESS); From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 07:08:39 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DE61E7EB; Fri, 7 Dec 2012 07:08:39 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id BCE6C8FC12; Fri, 7 Dec 2012 07:08:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB778did042066; Fri, 7 Dec 2012 07:08:39 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB778dvA042065; Fri, 7 Dec 2012 07:08:39 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201212070708.qB778dvA042065@svn.freebsd.org> From: Rui Paulo Date: Fri, 7 Dec 2012 07:08:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243978 - head/sys/boot/efi/libefi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 07:08:40 -0000 Author: rpaulo Date: Fri Dec 7 07:08:39 2012 New Revision: 243978 URL: http://svnweb.freebsd.org/changeset/base/243978 Log: Typo in a comment. Modified: head/sys/boot/efi/libefi/libefi.c Modified: head/sys/boot/efi/libefi/libefi.c ============================================================================== --- head/sys/boot/efi/libefi/libefi.c Fri Dec 7 07:02:39 2012 (r243977) +++ head/sys/boot/efi/libefi/libefi.c Fri Dec 7 07:08:39 2012 (r243978) @@ -135,7 +135,7 @@ efi_main(EFI_HANDLE image_handle, EFI_SY * first count the number of words. Then, after allocating the * vector, we split the string up. We don't deal with quotes or * other more advanced shell features. - * The EFI shell will pas the name of the image as the first + * The EFI shell will pass the name of the image as the first * word in the argument list. This does not happen if we're * loaded by the boot manager. This is not so easy to figure * out though. The ParentHandle is not always NULL, because From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 08:25:09 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7D198A33; Fri, 7 Dec 2012 08:25:09 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 5FA0C8FC0C; Fri, 7 Dec 2012 08:25:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB78P9M2055788; Fri, 7 Dec 2012 08:25:09 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB78P9rY055786; Fri, 7 Dec 2012 08:25:09 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201212070825.qB78P9rY055786@svn.freebsd.org> From: Alfred Perlstein Date: Fri, 7 Dec 2012 08:25:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243980 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 08:25:09 -0000 Author: alfred Date: Fri Dec 7 08:25:08 2012 New Revision: 243980 URL: http://svnweb.freebsd.org/changeset/base/243980 Log: Allow KASSERT to log instead of panic. This is to allow debug images to be used without taking down the system when non-fatal asserts are hit. The following sysctls are added: debug.kassert.warn_only: 1 = log, 0 = panic debug.kassert.do_ktr: set to a ktr mask for logging via KTR debug.kassert.do_log: 1 = log, 0 = quiet debug.kassert.warnings: stats, number of kasserts hit debug.kassert.log_panic_at: number of kasserts before we actually panic, 0 = never debug.kassert.log_pps_limit: pps limit for log messages debug.kassert.log_mute_at: stop warning after N kasserts, 0 = never stop debug.kassert.kassert: set this sysctl to trigger a kassert Discussed with: scottl, gnn, marcel Sponsored by: iXsystems Modified: head/sys/kern/kern_shutdown.c head/sys/sys/systm.h Modified: head/sys/kern/kern_shutdown.c ============================================================================== --- head/sys/kern/kern_shutdown.c Fri Dec 7 07:24:15 2012 (r243979) +++ head/sys/kern/kern_shutdown.c Fri Dec 7 08:25:08 2012 (r243980) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -150,6 +151,7 @@ static void poweroff_wait(void *, int); static void shutdown_halt(void *junk, int howto); static void shutdown_panic(void *junk, int howto); static void shutdown_reset(void *junk, int howto); +static void vpanic(const char *fmt, va_list ap) __dead2; /* register various local shutdown events */ static void @@ -538,6 +540,120 @@ shutdown_reset(void *junk, int howto) /* NOTREACHED */ /* assuming reset worked */ } +#ifdef INVARIANTS +static int kassert_warn_only = 0; +#ifdef KTR +static int kassert_do_ktr = 0; +#endif +static int kassert_do_log = 1; +static int kassert_log_pps_limit = 4; +static int kassert_log_mute_at = 0; +static int kassert_log_panic_at = 0; +static int kassert_warnings = 0; + +SYSCTL_NODE(_debug, OID_AUTO, kassert, CTLFLAG_RW, NULL, "kassert options"); + +SYSCTL_INT(_debug_kassert, OID_AUTO, warn_only, CTLFLAG_RW | CTLFLAG_TUN, + &kassert_warn_only, 0, + "KASSERT triggers a panic (1) or just a warning (0)"); +TUNABLE_INT("debug.kassert.warn_only", &kassert_warn_only); + +#ifdef KTR +SYSCTL_UINT(_debug_kassert, OID_AUTO, do_ktr, CTLFLAG_RW | CTLFLAG_TUN, + &kassert_do_ktr, 0, + "KASSERT does a KTR, set this to the KTRMASK you want"); +TUNABLE_INT("debug.kassert.do_ktr", &kassert_do_ktr); +#endif + +SYSCTL_INT(_debug_kassert, OID_AUTO, do_log, CTLFLAG_RW | CTLFLAG_TUN, + &kassert_do_log, 0, "KASSERT triggers a panic (1) or just a warning (0)"); +TUNABLE_INT("debug.kassert.do_log", &kassert_do_log); + +SYSCTL_INT(_debug_kassert, OID_AUTO, warnings, CTLFLAG_RW | CTLFLAG_TUN, + &kassert_warnings, 0, "number of KASSERTs that have been triggered"); +TUNABLE_INT("debug.kassert.warnings", &kassert_warnings); + +SYSCTL_INT(_debug_kassert, OID_AUTO, log_panic_at, CTLFLAG_RW | CTLFLAG_TUN, + &kassert_log_panic_at, 0, "max number of KASSERTS before we will panic"); +TUNABLE_INT("debug.kassert.log_panic_at", &kassert_log_panic_at); + +SYSCTL_INT(_debug_kassert, OID_AUTO, log_pps_limit, CTLFLAG_RW | CTLFLAG_TUN, + &kassert_log_pps_limit, 0, "limit number of log messages per second"); +TUNABLE_INT("debug.kassert.log_pps_limit", &kassert_log_pps_limit); + +SYSCTL_INT(_debug_kassert, OID_AUTO, log_mute_at, CTLFLAG_RW | CTLFLAG_TUN, + &kassert_log_mute_at, 0, "max number of KASSERTS to log"); +TUNABLE_INT("debug.kassert.log_mute_at", &kassert_log_mute_at); + +static int kassert_sysctl_kassert(SYSCTL_HANDLER_ARGS); + +SYSCTL_PROC(_debug_kassert, OID_AUTO, kassert, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_SECURE, NULL, 0, + kassert_sysctl_kassert, "I", "set to trigger a test kassert"); + +static int +kassert_sysctl_kassert(SYSCTL_HANDLER_ARGS) +{ + int error, i; + + error = sysctl_wire_old_buffer(req, sizeof(int)); + if (error == 0) { + i = 0; + error = sysctl_handle_int(oidp, &i, 0, req); + } + if (error != 0 || req->newptr == NULL) + return (error); + KASSERT(0, ("kassert_sysctl_kassert triggered kassert %d", i)); + return (0); +} + +/* + * Called by KASSERT, this decides if we will panic + * or if we will log via printf and/or ktr. + */ +void +kassert_panic(const char *fmt, ...) +{ + static char buf[256]; + va_list ap; + + va_start(ap, fmt); + (void)vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + + /* + * panic if we're not just warning, or if we've exceeded + * kassert_log_panic_at warnings. + */ + if (!kassert_warn_only || + (kassert_log_panic_at > 0 && + kassert_warnings >= kassert_log_panic_at)) { + va_start(ap, fmt); + vpanic(fmt, ap); + /* NORETURN */ + } +#ifdef KTR + if (kassert_do_ktr) + CTR0(ktr_mask, buf); +#endif /* KTR */ + /* + * log if we've not yet met the mute limit. + */ + if (kassert_do_log && + (kassert_log_mute_at == 0 || + kassert_warnings < kassert_log_mute_at)) { + static struct timeval lasterr; + static int curerr; + + if (ppsratecheck(&lasterr, &curerr, kassert_log_pps_limit)) { + printf("KASSERT failed: %s\n", buf); + kdb_backtrace(); + } + } + atomic_add_int(&kassert_warnings, 1); +} +#endif + /* * Panic is called on unresolvable fatal errors. It prints "panic: mesg", * and then reboots. If we are called twice, then we avoid trying to sync @@ -546,12 +662,20 @@ shutdown_reset(void *junk, int howto) void panic(const char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + vpanic(fmt, ap); +} + +static void +vpanic(const char *fmt, va_list ap) +{ #ifdef SMP cpuset_t other_cpus; #endif struct thread *td = curthread; int bootopt, newpanic; - va_list ap; static char buf[256]; spinlock_enter(); @@ -587,7 +711,6 @@ panic(const char *fmt, ...) newpanic = 1; } - va_start(ap, fmt); if (newpanic) { (void)vsnprintf(buf, sizeof(buf), fmt, ap); panicstr = buf; @@ -598,7 +721,6 @@ panic(const char *fmt, ...) vprintf(fmt, ap); printf("\n"); } - va_end(ap); #ifdef SMP printf("cpuid = %d\n", PCPU_GET(cpuid)); #endif Modified: head/sys/sys/systm.h ============================================================================== --- head/sys/sys/systm.h Fri Dec 7 07:24:15 2012 (r243979) +++ head/sys/sys/systm.h Fri Dec 7 08:25:08 2012 (r243980) @@ -73,14 +73,16 @@ extern int vm_guest; /* Running as virt enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN }; #ifdef INVARIANTS /* The option is always available */ +void kassert_panic(const char *fmt, ...); + #define KASSERT(exp,msg) do { \ if (__predict_false(!(exp))) \ - panic msg; \ + kassert_panic msg; \ } while (0) #define VNASSERT(exp, vp, msg) do { \ if (__predict_false(!(exp))) { \ vn_printf(vp, "VNASSERT failed\n"); \ - panic msg; \ + kassert_panic msg; \ } \ } while (0) #else From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 09:37:31 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7E5E350E; Fri, 7 Dec 2012 09:37:31 +0000 (UTC) (envelope-from gonzo@id.bluezbox.com) Received: from id.bluezbox.com (id.bluezbox.com [88.198.91.248]) by mx1.freebsd.org (Postfix) with ESMTP id 0359C8FC13; Fri, 7 Dec 2012 09:37:30 +0000 (UTC) Received: from [207.6.254.8] (helo=[192.168.1.67]) by id.bluezbox.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1TguMw-000KLU-GA; Fri, 07 Dec 2012 01:37:24 -0800 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: svn commit: r243631 - in head/sys: kern sys From: Oleksandr Tymoshenko In-Reply-To: <201211272119.qARLJxXV061083@svn.freebsd.org> Date: Fri, 7 Dec 2012 01:36:59 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201211272119.qARLJxXV061083@svn.freebsd.org> To: Andre Oppermann X-Mailer: Apple Mail (2.1499) Sender: gonzo@id.bluezbox.com X-Spam-Level: -- X-Spam-Report: Spam detection software, running on the system "id.bluezbox.com", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see The administrator of that system for details. Content preview: On 2012-11-27, at 1:19 PM, Andre Oppermann wrote: > Author: andre > Date: Tue Nov 27 21:19:58 2012 > New Revision: 243631 > URL: http://svnweb.freebsd.org/changeset/base/243631 > > Log: > Base the mbuf related limits on the available physical memory or > kernel memory, whichever is lower. The overall mbuf related memory > limit must be set so that mbufs (and clusters of various sizes) > can't exhaust physical RAM or KVM. > > The limit is set to half of the physical RAM or KVM (whichever is > lower) as the baseline. In any normal scenario we want to leave > at least half of the physmem/kvm for other kernel functions and > userspace to prevent it from swapping too easily. Via a tunable > kern.maxmbufmem the limit can be upped to at most 3/4 of physmem/kvm. > > At the same time divorce maxfiles from maxusers and set maxfiles to > physpages / 8 with a floor based on maxusers. This way busy servers > can make use of the significantly increased mbuf limits with a much > larger number of open sockets. > > Tidy up ordering in init_param2() and check up on some users of > those values calculated here. > > Out of the overall mbuf memory limit 2K clusters and 4K (page size) > clusters to get 1/4 each because these are the most heavily used mbuf > sizes. 2K clusters are used for MTU 1500 ethernet inbound packets. > 4K clusters are used whenever possible for sends on sockets and thus > outbound packets. The larger cluster sizes of 9K and 16K are limited > to 1/6 of the overall mbuf memory limit. When jumbo MTU's are used > these large clusters will end up only on the inbound path. They are > not used on outbound, there it's still 4K. Yes, that will stay that > way because otherwise we run into lots of complications in the > stack. And it really isn't a problem, so don't make a scene. > > Normal mbufs (256B) weren't limited at all previously. This was > problematic as there are certain places in the kernel that on > allocation failure of clusters try to piece together their packet > from smaller mbufs. > > The mbuf limit is the number of all other mbuf sizes together plus > [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 09:37:31 -0000 On 2012-11-27, at 1:19 PM, Andre Oppermann wrote: > Author: andre > Date: Tue Nov 27 21:19:58 2012 > New Revision: 243631 > URL: http://svnweb.freebsd.org/changeset/base/243631 >=20 > Log: > Base the mbuf related limits on the available physical memory or > kernel memory, whichever is lower. The overall mbuf related memory > limit must be set so that mbufs (and clusters of various sizes) > can't exhaust physical RAM or KVM. >=20 > The limit is set to half of the physical RAM or KVM (whichever is > lower) as the baseline. In any normal scenario we want to leave > at least half of the physmem/kvm for other kernel functions and > userspace to prevent it from swapping too easily. Via a tunable > kern.maxmbufmem the limit can be upped to at most 3/4 of physmem/kvm. >=20 > At the same time divorce maxfiles from maxusers and set maxfiles to > physpages / 8 with a floor based on maxusers. This way busy servers > can make use of the significantly increased mbuf limits with a much > larger number of open sockets. >=20 > Tidy up ordering in init_param2() and check up on some users of > those values calculated here. >=20 > Out of the overall mbuf memory limit 2K clusters and 4K (page size) > clusters to get 1/4 each because these are the most heavily used mbuf > sizes. 2K clusters are used for MTU 1500 ethernet inbound packets. > 4K clusters are used whenever possible for sends on sockets and thus > outbound packets. The larger cluster sizes of 9K and 16K are limited > to 1/6 of the overall mbuf memory limit. When jumbo MTU's are used > these large clusters will end up only on the inbound path. They are > not used on outbound, there it's still 4K. Yes, that will stay that > way because otherwise we run into lots of complications in the > stack. And it really isn't a problem, so don't make a scene. >=20 > Normal mbufs (256B) weren't limited at all previously. This was > problematic as there are certain places in the kernel that on > allocation failure of clusters try to piece together their packet > from smaller mbufs. >=20 > The mbuf limit is the number of all other mbuf sizes together plus > some more to allow for standalone mbufs (ACK for example) and to > send off a copy of a cluster. Unfortunately there isn't a way to > set an overall limit for all mbuf memory together as UMA doesn't > support such a limiting. >=20 > NB: Every cluster also has an mbuf associated with it. >=20 > Two examples on the revised mbuf sizing limits: >=20 > 1GB KVM: > 512MB limit for mbufs > 419,430 mbufs > 65,536 2K mbuf clusters > 32,768 4K mbuf clusters > 9,709 9K mbuf clusters > 5,461 16K mbuf clusters >=20 > 16GB RAM: > 8GB limit for mbufs > 33,554,432 mbufs > 1,048,576 2K mbuf clusters > 524,288 4K mbuf clusters > 155,344 9K mbuf clusters > 87,381 16K mbuf clusters >=20 > These defaults should be sufficient for even the most demanding > network loads. Andre, these changes along with r243631 break booting ARM kernels on devices = with 1Gb of memory: vm_thread_new: kstack allocation failed panic: kproc_create() failed with 12 KDB: enter: panic If I manually set amount of memory to 512Mb it boots fine.=20 If you need help debugging this issue or testing possible fixes, I'll be = glad to help Thank you= From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 09:53:33 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8527795E for ; Fri, 7 Dec 2012 09:53:33 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id DCE8F8FC08 for ; Fri, 7 Dec 2012 09:53:32 +0000 (UTC) Received: (qmail 25063 invoked from network); 7 Dec 2012 11:23:17 -0000 Received: from c00l3r.networx.ch (HELO [127.0.0.1]) ([62.48.2.2]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 7 Dec 2012 11:23:17 -0000 Message-ID: <50C1BC90.90106@freebsd.org> Date: Fri, 07 Dec 2012 10:53:20 +0100 From: Andre Oppermann User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121026 Thunderbird/16.0.2 MIME-Version: 1.0 To: Oleksandr Tymoshenko Subject: Re: svn commit: r243631 - in head/sys: kern sys References: <201211272119.qARLJxXV061083@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 09:53:33 -0000 On 07.12.2012 10:36, Oleksandr Tymoshenko wrote: > > On 2012-11-27, at 1:19 PM, Andre Oppermann wrote: > >> Author: andre >> Date: Tue Nov 27 21:19:58 2012 >> New Revision: 243631 >> URL: http://svnweb.freebsd.org/changeset/base/243631 >> >> Log: >> Base the mbuf related limits on the available physical memory or >> kernel memory, whichever is lower. The overall mbuf related memory >> limit must be set so that mbufs (and clusters of various sizes) >> can't exhaust physical RAM or KVM. >> >> The limit is set to half of the physical RAM or KVM (whichever is >> lower) as the baseline. In any normal scenario we want to leave >> at least half of the physmem/kvm for other kernel functions and >> userspace to prevent it from swapping too easily. Via a tunable >> kern.maxmbufmem the limit can be upped to at most 3/4 of physmem/kvm. >> >> At the same time divorce maxfiles from maxusers and set maxfiles to >> physpages / 8 with a floor based on maxusers. This way busy servers >> can make use of the significantly increased mbuf limits with a much >> larger number of open sockets. >> >> Tidy up ordering in init_param2() and check up on some users of >> those values calculated here. >> >> Out of the overall mbuf memory limit 2K clusters and 4K (page size) >> clusters to get 1/4 each because these are the most heavily used mbuf >> sizes. 2K clusters are used for MTU 1500 ethernet inbound packets. >> 4K clusters are used whenever possible for sends on sockets and thus >> outbound packets. The larger cluster sizes of 9K and 16K are limited >> to 1/6 of the overall mbuf memory limit. When jumbo MTU's are used >> these large clusters will end up only on the inbound path. They are >> not used on outbound, there it's still 4K. Yes, that will stay that >> way because otherwise we run into lots of complications in the >> stack. And it really isn't a problem, so don't make a scene. >> >> Normal mbufs (256B) weren't limited at all previously. This was >> problematic as there are certain places in the kernel that on >> allocation failure of clusters try to piece together their packet >> from smaller mbufs. >> >> The mbuf limit is the number of all other mbuf sizes together plus >> some more to allow for standalone mbufs (ACK for example) and to >> send off a copy of a cluster. Unfortunately there isn't a way to >> set an overall limit for all mbuf memory together as UMA doesn't >> support such a limiting. >> >> NB: Every cluster also has an mbuf associated with it. >> >> Two examples on the revised mbuf sizing limits: >> >> 1GB KVM: >> 512MB limit for mbufs >> 419,430 mbufs >> 65,536 2K mbuf clusters >> 32,768 4K mbuf clusters >> 9,709 9K mbuf clusters >> 5,461 16K mbuf clusters >> >> 16GB RAM: >> 8GB limit for mbufs >> 33,554,432 mbufs >> 1,048,576 2K mbuf clusters >> 524,288 4K mbuf clusters >> 155,344 9K mbuf clusters >> 87,381 16K mbuf clusters >> >> These defaults should be sufficient for even the most demanding >> network loads. > > Andre, > > these changes along with r243631 break booting ARM kernels on devices with 1Gb of memory: > > vm_thread_new: kstack allocation failed > panic: kproc_create() failed with 12 > KDB: enter: panic > > If I manually set amount of memory to 512Mb it boots fine. > If you need help debugging this issue or testing possible fixes, I'll be glad to help What is the kmem layout/setup of ARM? If it is like i386 then maybe the parameters VM_MAX_KERNEL_ADDRESS and VM_MIN_KERNEL_ADDRESS are not correctly set up and the available kmem is assumed to be larger than it really is. -- Andre From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 11:39:21 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AAA55683; Fri, 7 Dec 2012 11:39:21 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-la0-f54.google.com (mail-la0-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 5716D8FC08; Fri, 7 Dec 2012 11:39:20 +0000 (UTC) Received: by mail-la0-f54.google.com with SMTP id j13so343800lah.13 for ; Fri, 07 Dec 2012 03:39:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=BpLmD8t3RrtsZX0wXQO9vyDt+cGRJRBjiH0m3D4AChs=; b=c+6MBkAbmOlu24Ev5vxqgol3xAQUsPImb2LYX2DJMfekp0rONpXl0tX9hFo+2gll2a p7mp/G5ryZ6GRcJIqaKWRsNYHpCgnREDGbBQJ318FVUvX7UXGkjb6ifLAqgHFt3mq8IE if9w5b81EkB/qgpb8AT7POjzIDIGpNqQ5WVGTJvEArgkrJpVQu+pKBv473f9n0J4frQu efiBcRfSl9OVugXPHqTFj942r+284gddOVCW6nCoN/CrPxn26kP5b2pPw82NOGVZwyMv atKTMtCp/gvIUzWrhISC/oWZKpBLlhDguRURMRM5Qu+FwynpfaWS4RERxhVstlxtuDs+ 3iJg== MIME-Version: 1.0 Received: by 10.112.84.168 with SMTP id a8mr2295944lbz.75.1354880359010; Fri, 07 Dec 2012 03:39:19 -0800 (PST) Sender: asmrookie@gmail.com Received: by 10.112.84.193 with HTTP; Fri, 7 Dec 2012 03:39:18 -0800 (PST) In-Reply-To: <201212070825.qB78P9rY055786@svn.freebsd.org> References: <201212070825.qB78P9rY055786@svn.freebsd.org> Date: Fri, 7 Dec 2012 11:39:18 +0000 X-Google-Sender-Auth: 9Q7h7Ievt_uGMnl_d0gJae6HPsU Message-ID: Subject: Re: svn commit: r243980 - in head/sys: kern sys From: Attilio Rao To: Alfred Perlstein Content-Type: text/plain; charset=UTF-8 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 11:39:21 -0000 On Fri, Dec 7, 2012 at 8:25 AM, Alfred Perlstein wrote: > Author: alfred > Date: Fri Dec 7 08:25:08 2012 > New Revision: 243980 > URL: http://svnweb.freebsd.org/changeset/base/243980 > > Log: > Allow KASSERT to log instead of panic. > > This is to allow debug images to be used without taking down the > system when non-fatal asserts are hit. Completely disagreed by: attilio Attilio -- Peace can only be achieved by understanding - A. Einstein From owner-svn-src-head@FreeBSD.ORG Fri Dec 7 12:40:05 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id ECB1E853; Fri, 7 Dec 2012 12:40:05 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id CB8C98FC12; Fri, 7 Dec 2012 12:40:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB7Ce5w8095190; Fri, 7 Dec 2012 12:40:05 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB7CdxKQ095115; Fri, 7 Dec 2012 12:39:59 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201212071239.qB7CdxKQ095115@svn.freebsd.org> From: Erwin Lansing Date: Fri, 7 Dec 2012 12:39:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r243981 - in head: contrib/bind9 contrib/bind9/bin contrib/bind9/bin/check contrib/bind9/bin/confgen contrib/bind9/bin/confgen/unix contrib/bind9/bin/dig contrib/bind9/bin/dnssec contri... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2012 12:40:06 -0000 Author: erwin Date: Fri Dec 7 12:39:58 2012 New Revision: 243981 URL: http://svnweb.freebsd.org/changeset/base/243981 Log: Update to 9.8.4-P1. Security Fixes Prevents named from aborting with a require assertion failure on servers with DNS64 enabled. These crashes might occur as a result of specific queries that are received. New Features * Elliptic Curve Digital Signature Algorithm keys and signatures in DNSSEC are now supported per RFC 6605. [RT #21918] Feature Changes * Improves OpenSSL error logging [RT #29932] * nslookup now returns a nonzero exit code when it is unable to get an answer. [RT #29492] Other critical bug fixes are included. Approved by: delphij (mentor) MFC after: 3 days Security: CVE-2012-5688 Sponsored by: DK Hostmaster A/S Added: head/contrib/bind9/lib/dns/opensslecdsa_link.c - copied unchanged from r243890, vendor/bind9/dist/lib/dns/opensslecdsa_link.c Modified: head/contrib/bind9/CHANGES head/contrib/bind9/Makefile.in head/contrib/bind9/README head/contrib/bind9/acconfig.h head/contrib/bind9/bin/Makefile.in head/contrib/bind9/bin/check/Makefile.in head/contrib/bind9/bin/check/check-tool.c head/contrib/bind9/bin/confgen/Makefile.in head/contrib/bind9/bin/confgen/unix/Makefile.in head/contrib/bind9/bin/dig/Makefile.in head/contrib/bind9/bin/dig/nslookup.c head/contrib/bind9/bin/dnssec/Makefile.in head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.8 head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.c head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.docbook head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.html head/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.8 head/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.c head/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.docbook head/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.html head/contrib/bind9/bin/dnssec/dnssec-keygen.8 head/contrib/bind9/bin/dnssec/dnssec-keygen.c head/contrib/bind9/bin/dnssec/dnssec-keygen.docbook head/contrib/bind9/bin/dnssec/dnssec-keygen.html head/contrib/bind9/bin/dnssec/dnssec-settime.c head/contrib/bind9/bin/dnssec/dnssec-signzone.c head/contrib/bind9/bin/named/Makefile.in head/contrib/bind9/bin/named/builtin.c head/contrib/bind9/bin/named/config.c head/contrib/bind9/bin/named/controlconf.c head/contrib/bind9/bin/named/convertxsl.pl head/contrib/bind9/bin/named/query.c head/contrib/bind9/bin/named/server.c head/contrib/bind9/bin/named/statschannel.c head/contrib/bind9/bin/named/unix/Makefile.in head/contrib/bind9/bin/nsupdate/Makefile.in head/contrib/bind9/bin/nsupdate/nsupdate.c head/contrib/bind9/bin/rndc/Makefile.in head/contrib/bind9/bin/tools/Makefile.in head/contrib/bind9/config.h.in head/contrib/bind9/configure.in head/contrib/bind9/doc/Makefile.in head/contrib/bind9/doc/arm/Bv9ARM-book.xml head/contrib/bind9/doc/arm/Bv9ARM.ch04.html head/contrib/bind9/doc/arm/Bv9ARM.ch06.html head/contrib/bind9/doc/arm/Bv9ARM.ch07.html head/contrib/bind9/doc/arm/Bv9ARM.ch08.html head/contrib/bind9/doc/arm/Bv9ARM.ch09.html head/contrib/bind9/doc/arm/Bv9ARM.html head/contrib/bind9/doc/arm/Bv9ARM.pdf head/contrib/bind9/doc/arm/Makefile.in head/contrib/bind9/doc/arm/man.arpaname.html head/contrib/bind9/doc/arm/man.ddns-confgen.html head/contrib/bind9/doc/arm/man.dig.html head/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html head/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html head/contrib/bind9/doc/arm/man.dnssec-keygen.html head/contrib/bind9/doc/arm/man.dnssec-revoke.html head/contrib/bind9/doc/arm/man.dnssec-settime.html head/contrib/bind9/doc/arm/man.dnssec-signzone.html head/contrib/bind9/doc/arm/man.genrandom.html head/contrib/bind9/doc/arm/man.host.html head/contrib/bind9/doc/arm/man.isc-hmac-fixup.html head/contrib/bind9/doc/arm/man.named-checkconf.html head/contrib/bind9/doc/arm/man.named-checkzone.html head/contrib/bind9/doc/arm/man.named-journalprint.html head/contrib/bind9/doc/arm/man.named.html head/contrib/bind9/doc/arm/man.nsec3hash.html head/contrib/bind9/doc/arm/man.nsupdate.html head/contrib/bind9/doc/arm/man.rndc-confgen.html head/contrib/bind9/doc/arm/man.rndc.conf.html head/contrib/bind9/doc/arm/man.rndc.html head/contrib/bind9/doc/misc/Makefile.in head/contrib/bind9/doc/misc/format-options.pl head/contrib/bind9/doc/misc/options head/contrib/bind9/doc/misc/sort-options.pl head/contrib/bind9/isc-config.sh.in head/contrib/bind9/lib/Makefile.in head/contrib/bind9/lib/bind9/Makefile.in head/contrib/bind9/lib/bind9/api head/contrib/bind9/lib/bind9/check.c head/contrib/bind9/lib/bind9/include/Makefile.in head/contrib/bind9/lib/bind9/include/bind9/Makefile.in head/contrib/bind9/lib/dns/Makefile.in head/contrib/bind9/lib/dns/adb.c head/contrib/bind9/lib/dns/api head/contrib/bind9/lib/dns/db.c head/contrib/bind9/lib/dns/dnssec.c head/contrib/bind9/lib/dns/ds.c head/contrib/bind9/lib/dns/dst_api.c head/contrib/bind9/lib/dns/dst_internal.h head/contrib/bind9/lib/dns/dst_openssl.h head/contrib/bind9/lib/dns/dst_parse.c head/contrib/bind9/lib/dns/dst_parse.h head/contrib/bind9/lib/dns/dst_result.c head/contrib/bind9/lib/dns/include/Makefile.in head/contrib/bind9/lib/dns/include/dns/db.h head/contrib/bind9/lib/dns/include/dns/dnssec.h head/contrib/bind9/lib/dns/include/dns/ds.h head/contrib/bind9/lib/dns/include/dns/iptable.h head/contrib/bind9/lib/dns/include/dns/keyvalues.h head/contrib/bind9/lib/dns/include/dns/log.h head/contrib/bind9/lib/dns/include/dns/rdataset.h head/contrib/bind9/lib/dns/include/dns/rpz.h head/contrib/bind9/lib/dns/include/dns/stats.h head/contrib/bind9/lib/dns/include/dns/view.h head/contrib/bind9/lib/dns/include/dns/zone.h head/contrib/bind9/lib/dns/include/dst/Makefile.in head/contrib/bind9/lib/dns/include/dst/dst.h head/contrib/bind9/lib/dns/include/dst/result.h head/contrib/bind9/lib/dns/log.c head/contrib/bind9/lib/dns/master.c head/contrib/bind9/lib/dns/masterdump.c head/contrib/bind9/lib/dns/openssl_link.c head/contrib/bind9/lib/dns/openssldh_link.c head/contrib/bind9/lib/dns/openssldsa_link.c head/contrib/bind9/lib/dns/opensslgost_link.c head/contrib/bind9/lib/dns/opensslrsa_link.c head/contrib/bind9/lib/dns/rbtdb.c head/contrib/bind9/lib/dns/rcode.c head/contrib/bind9/lib/dns/rdata.c head/contrib/bind9/lib/dns/rdata/generic/dlv_32769.c head/contrib/bind9/lib/dns/rdata/generic/ds_43.c head/contrib/bind9/lib/dns/rdataset.c head/contrib/bind9/lib/dns/resolver.c head/contrib/bind9/lib/dns/rpz.c head/contrib/bind9/lib/dns/spnego_asn1.pl head/contrib/bind9/lib/dns/validator.c head/contrib/bind9/lib/dns/view.c head/contrib/bind9/lib/dns/zone.c head/contrib/bind9/lib/export/Makefile.in head/contrib/bind9/lib/export/dns/Makefile.in head/contrib/bind9/lib/export/dns/include/Makefile.in head/contrib/bind9/lib/export/dns/include/dns/Makefile.in head/contrib/bind9/lib/export/dns/include/dst/Makefile.in head/contrib/bind9/lib/export/irs/include/irs/Makefile.in head/contrib/bind9/lib/export/isc/Makefile.in head/contrib/bind9/lib/export/isc/include/isc/Makefile.in head/contrib/bind9/lib/export/isc/nls/Makefile.in head/contrib/bind9/lib/export/isc/nothreads/Makefile.in head/contrib/bind9/lib/export/isc/nothreads/include/isc/Makefile.in head/contrib/bind9/lib/export/isc/pthreads/Makefile.in head/contrib/bind9/lib/export/isc/pthreads/include/isc/Makefile.in head/contrib/bind9/lib/export/isc/unix/Makefile.in head/contrib/bind9/lib/export/isc/unix/include/isc/Makefile.in head/contrib/bind9/lib/export/isccfg/include/isccfg/Makefile.in head/contrib/bind9/lib/export/samples/Makefile-postinstall.in head/contrib/bind9/lib/export/samples/Makefile.in head/contrib/bind9/lib/irs/Makefile.in head/contrib/bind9/lib/irs/include/Makefile.in head/contrib/bind9/lib/irs/include/irs/Makefile.in head/contrib/bind9/lib/isc/alpha/Makefile.in head/contrib/bind9/lib/isc/alpha/include/Makefile.in head/contrib/bind9/lib/isc/alpha/include/isc/Makefile.in head/contrib/bind9/lib/isc/api head/contrib/bind9/lib/isc/ia64/Makefile.in head/contrib/bind9/lib/isc/ia64/include/Makefile.in head/contrib/bind9/lib/isc/ia64/include/isc/Makefile.in head/contrib/bind9/lib/isc/ia64/include/isc/atomic.h head/contrib/bind9/lib/isc/include/Makefile.in head/contrib/bind9/lib/isc/include/isc/file.h head/contrib/bind9/lib/isc/include/isc/namespace.h head/contrib/bind9/lib/isc/include/isc/task.h head/contrib/bind9/lib/isc/mem.c head/contrib/bind9/lib/isc/mips/Makefile.in head/contrib/bind9/lib/isc/mips/include/Makefile.in head/contrib/bind9/lib/isc/mips/include/isc/Makefile.in head/contrib/bind9/lib/isc/nls/Makefile.in head/contrib/bind9/lib/isc/noatomic/Makefile.in head/contrib/bind9/lib/isc/noatomic/include/Makefile.in head/contrib/bind9/lib/isc/noatomic/include/isc/Makefile.in head/contrib/bind9/lib/isc/nothreads/Makefile.in head/contrib/bind9/lib/isc/nothreads/include/Makefile.in head/contrib/bind9/lib/isc/nothreads/include/isc/Makefile.in head/contrib/bind9/lib/isc/powerpc/Makefile.in head/contrib/bind9/lib/isc/powerpc/include/Makefile.in head/contrib/bind9/lib/isc/powerpc/include/isc/Makefile.in head/contrib/bind9/lib/isc/pthreads/Makefile.in head/contrib/bind9/lib/isc/pthreads/condition.c head/contrib/bind9/lib/isc/pthreads/include/Makefile.in head/contrib/bind9/lib/isc/pthreads/include/isc/Makefile.in head/contrib/bind9/lib/isc/sparc64/Makefile.in head/contrib/bind9/lib/isc/sparc64/include/Makefile.in head/contrib/bind9/lib/isc/sparc64/include/isc/Makefile.in head/contrib/bind9/lib/isc/task.c head/contrib/bind9/lib/isc/task_api.c head/contrib/bind9/lib/isc/unix/Makefile.in head/contrib/bind9/lib/isc/unix/file.c head/contrib/bind9/lib/isc/unix/include/Makefile.in head/contrib/bind9/lib/isc/unix/include/isc/Makefile.in head/contrib/bind9/lib/isc/x86_32/Makefile.in head/contrib/bind9/lib/isc/x86_32/include/Makefile.in head/contrib/bind9/lib/isc/x86_32/include/isc/Makefile.in head/contrib/bind9/lib/isc/x86_64/Makefile.in head/contrib/bind9/lib/isc/x86_64/include/Makefile.in head/contrib/bind9/lib/isc/x86_64/include/isc/Makefile.in head/contrib/bind9/lib/isccc/api head/contrib/bind9/lib/isccc/cc.c head/contrib/bind9/lib/isccc/include/Makefile.in head/contrib/bind9/lib/isccc/include/isccc/Makefile.in head/contrib/bind9/lib/isccfg/api head/contrib/bind9/lib/isccfg/include/Makefile.in head/contrib/bind9/lib/isccfg/include/isccfg/Makefile.in head/contrib/bind9/lib/isccfg/namedconf.c head/contrib/bind9/lib/lwres/Makefile.in head/contrib/bind9/lib/lwres/api head/contrib/bind9/lib/lwres/getaddrinfo.c head/contrib/bind9/lib/lwres/include/Makefile.in head/contrib/bind9/lib/lwres/include/lwres/Makefile.in head/contrib/bind9/lib/lwres/man/Makefile.in head/contrib/bind9/make/rules.in head/contrib/bind9/version head/lib/bind/config.h head/lib/bind/config.mk head/lib/bind/dns/Makefile head/lib/bind/isc/isc/platform.h Directory Properties: head/contrib/bind9/ (props changed) Modified: head/contrib/bind9/CHANGES ============================================================================== --- head/contrib/bind9/CHANGES Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/CHANGES Fri Dec 7 12:39:58 2012 (r243981) @@ -1,15 +1,81 @@ - --- 9.8.3-P4 released --- + --- 9.8.4-P1 released --- + +3407. [security] Named could die on specific queries with dns64 enabled. + [Addressed in change #3388 for BIND 9.8.5 and 9.9.3.] + + --- 9.8.4 released --- 3383. [security] A certain combination of records in the RBT could cause named to hang while populating the additional section of a response. [RT #31090] - --- 9.8.3-P3 released --- +3373. [bug] win32: open raw files in binary mode. [RT #30944] 3364. [security] Named could die on specially crafted record. [RT #30416] - --- 9.8.3-P2 released --- + --- 9.8.4rc1 released --- + +3369. [bug] nsupdate terminated unexpectedly in interactive mode + if built with readline support. [RT #29550] + +3368. [bug] and were not C++ safe. + +3367. [bug] dns_dnsseckey_create() result was not being checked. + [RT #30685] + +3366. [bug] Fixed Read-After-Write dependency violation for IA64 + atomic operations. [RT #25181] + +3365. [bug] Removed spurious newlines from log messages in + zone.c [RT #30675] + +3363. [bug] Need to allow "forward" and "fowarders" options + in static-stub zones; this had been overlooked. + [RT #30482] + +3362. [bug] Setting some option values to 0 in named.conf + could trigger an assertion failure on startup. + [RT #27730] + +3360. [bug] 'host -w' could die. [RT #18723] + +3359. [bug] An improperly-formed TSIG secret could cause a + memory leak. [RT #30607] + +3357. [port] Add support for libxml2-2.8.x [RT #30440] + +3356. [bug] Cap the TTL of signed RRsets when RRSIGs are + approaching their expiry, so they don't remain + in caches after expiry. [RT #26429] + + --- 9.8.4b1 released --- + +3354. [func] Improve OpenSSL error logging. [RT #29932] + +3353. [bug] Use a single task for task exclusive operations. + [RT #29872] + +3352. [bug] Ensure that learned server attributes timeout of the + adb cache. [RT #29856] + +3351. [bug] isc_mem_put and isc_mem_putanddetach didn't report + caller if either ISC_MEM_DEBUGSIZE or ISC_MEM_DEBUGCTX + memory debugging flags are set. [RT #30243] + +3350. [bug] Memory read overrun in isc___mem_reallocate if + ISC_MEM_DEBUGCTX memory debugging flag is set. + [RT #30240] + +3348. [bug] Prevent RRSIG data from being cached if a negative + record matching the covering type exists at a higher + trust level. Such data already can't be retrieved from + the cache since change 3218 -- this prevents it + being inserted into the cache as well. [RT #26809] + +3347. [bug] dnssec-settime: Issue a warning when writing a new + private key file would cause a change in the + permissions of the existing file. [RT #27724] 3346. [security] Bad-cache data could be used before it was initialized, causing an assert. [RT #30025] @@ -18,11 +84,47 @@ resulting in excessive cpu usage in some cases. [RT #29952] - --- 9.8.3-P1 released --- +3337. [bug] Change #3294 broke support for the multiple keys + in controls. [RT #29694] + +3335. [func] nslookup: return a nonzero exit code when unable + to get an answer. [RT #29492] + +3333. [bug] Setting resolver-query-timeout too low can cause + named to not recover if it loses connectivity. + [RT #29623] + +3332. [bug] Re-use cached DS rrsets if possible. [RT #29446] 3331. [security] dns_rdataslab_fromrdataset could produce bad rdataslabs. [RT #29644] - + +3330. [func] Fix missing signatures on NOERROR results despite + RPZ rewriting. Also + - add optional "recursive-only yes|no" to the + response-policy statement + - add optional "max-policy-ttl" to the response-policy + statement to limit the false data that + "recursive-only no" can introduce into + resolvers' caches + - add a RPZ performance test to bin/tests/system/rpz + when queryperf is available. + - the encoding of PASSTHRU action to "rpz-passthru". + (The old encoding is still accepted.) + [RT #26172] + + +3329. [bug] Handle RRSIG signer-name case consistently: We + generate RRSIG records with the signer-name in + lower case. We accept them with any case, but if + they fail to validate, we try again in lower case. + [RT #27451] + +3328. [bug] Fixed inconsistent data checking in dst_parse.c. + [RT #29401] + +3317. [func] Add ECDSA support (RFC 6605). [RT #21918] + --- 9.8.3 released --- 3318. [tuning] Reduce the amount of work performed while holding a Modified: head/contrib/bind9/Makefile.in ============================================================================== --- head/contrib/bind9/Makefile.in Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/Makefile.in Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 1998-2002 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: head/contrib/bind9/README ============================================================================== --- head/contrib/bind9/README Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/README Fri Dec 7 12:39:58 2012 (r243981) @@ -51,6 +51,11 @@ BIND 9 For up-to-date release notes and errata, see http://www.isc.org/software/bind9/releasenotes +BIND 9.8.4 + + BIND 9.8.4 includes several bug fixes and patches security + flaws described in CVE-2012-1667, CVE-2012-3817 and CVE-2012-4244. + BIND 9.8.3 BIND 9.8.3 is a maintenance release. Modified: head/contrib/bind9/acconfig.h ============================================================================== --- head/contrib/bind9/acconfig.h Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/acconfig.h Fri Dec 7 12:39:58 2012 (r243981) @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008, 2012 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -138,6 +138,9 @@ int sigwait(const unsigned int *set, int /* Define if OpenSSL includes DSA support */ #undef HAVE_OPENSSL_DSA +/* Define if OpenSSL includes ECDSA support */ +#undef HAVE_OPENSSL_ECDSA + /* Define to the length type used by the socket API (socklen_t, size_t, int). */ #undef ISC_SOCKADDR_LEN_T Modified: head/contrib/bind9/bin/Makefile.in ============================================================================== --- head/contrib/bind9/bin/Makefile.in Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/Makefile.in Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 1998-2001 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: head/contrib/bind9/bin/check/Makefile.in ============================================================================== --- head/contrib/bind9/bin/check/Makefile.in Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/check/Makefile.in Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004-2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2000-2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: head/contrib/bind9/bin/check/check-tool.c ============================================================================== --- head/contrib/bind9/bin/check/check-tool.c Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/check/check-tool.c Fri Dec 7 12:39:58 2012 (r243981) @@ -639,6 +639,9 @@ dump_zone(const char *zonename, dns_zone { isc_result_t result; FILE *output = stdout; + const char *flags; + + flags = (fileformat == dns_masterformat_text) ? "w+" : "wb+"; if (debug) { if (filename != NULL && strcmp(filename, "-") != 0) @@ -649,7 +652,7 @@ dump_zone(const char *zonename, dns_zone } if (filename != NULL && strcmp(filename, "-") != 0) { - result = isc_stdio_open(filename, "w+", &output); + result = isc_stdio_open(filename, flags, &output); if (result != ISC_R_SUCCESS) { fprintf(stderr, "could not open output " Modified: head/contrib/bind9/bin/confgen/Makefile.in ============================================================================== --- head/contrib/bind9/bin/confgen/Makefile.in Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/confgen/Makefile.in Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -# Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC") # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above Modified: head/contrib/bind9/bin/confgen/unix/Makefile.in ============================================================================== --- head/contrib/bind9/bin/confgen/unix/Makefile.in Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/confgen/unix/Makefile.in Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -# Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC") # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above Modified: head/contrib/bind9/bin/dig/Makefile.in ============================================================================== --- head/contrib/bind9/bin/dig/Makefile.in Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/dig/Makefile.in Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2000-2002 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: head/contrib/bind9/bin/dig/nslookup.c ============================================================================== --- head/contrib/bind9/bin/dig/nslookup.c Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/dig/nslookup.c Fri Dec 7 12:39:58 2012 (r243981) @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -57,6 +57,7 @@ static isc_boolean_t in_use = ISC_FALSE; static char defclass[MXRD] = "IN"; static char deftype[MXRD] = "A"; static isc_event_t *global_event = NULL; +static int query_error = 1, print_error = 0; static char domainopt[DNS_NAME_MAXTEXT]; @@ -406,6 +407,9 @@ isc_result_t printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) { char servtext[ISC_SOCKADDR_FORMATSIZE]; + /* I've we've gotten this far, we've reached a server. */ + query_error = 0; + debug("printmessage()"); isc_sockaddr_format(&query->sockaddr, servtext, sizeof(servtext)); @@ -433,6 +437,9 @@ printmessage(dig_query_t *query, dns_mes (msg->rcode != dns_rcode_nxdomain) ? nametext : query->lookup->textname, rcode_totext(msg->rcode)); debug("returning with rcode == 0"); + + /* the lookup failed */ + print_error |= 1; return (ISC_R_SUCCESS); } @@ -887,5 +894,5 @@ main(int argc, char **argv) { destroy_libs(); isc_app_finish(); - return (0); + return (query_error | print_error); } Modified: head/contrib/bind9/bin/dnssec/Makefile.in ============================================================================== --- head/contrib/bind9/bin/dnssec/Makefile.in Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/dnssec/Makefile.in Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2005, 2007-2009, 2012 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2000-2002 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any Modified: head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.8 ============================================================================== --- head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.8 Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.8 Fri Dec 7 12:39:58 2012 (r243981) @@ -1,4 +1,4 @@ -.\" Copyright (C) 2008-2010 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2008-2010, 2012 Internet Systems Consortium, Inc. ("ISC") .\" .\" Permission to use, copy, modify, and/or distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -55,7 +55,7 @@ Use SHA\-256 as the digest algorithm. .RS 4 Select the digest algorithm. The value of \fBalgorithm\fR -must be one of SHA\-1 (SHA1), SHA\-256 (SHA256) or GOST. These values are case insensitive. +must be one of SHA\-1 (SHA1), SHA\-256 (SHA256), GOST or SHA\-384 (SHA384). These values are case insensitive. .RE .PP \-K \fIdirectory\fR @@ -139,5 +139,5 @@ RFC 4509. .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2008\-2010 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2008\-2010, 2012 Internet Systems Consortium, Inc. ("ISC") .br Modified: head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.c ============================================================================== --- head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.c Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.c Fri Dec 7 12:39:58 2012 (r243981) @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2011 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2008-2012 Internet Systems Consortium, Inc. ("ISC") * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -296,7 +296,7 @@ usage(void) { fprintf(stderr, " -K : directory in which to find " "key file or keyset file\n"); fprintf(stderr, " -a algorithm: digest algorithm " - "(SHA-1, SHA-256 or GOST)\n"); + "(SHA-1, SHA-256, GOST or SHA-384)\n"); fprintf(stderr, " -1: use SHA-1\n"); fprintf(stderr, " -2: use SHA-256\n"); fprintf(stderr, " -l: add lookaside zone and print DLV records\n"); @@ -415,6 +415,9 @@ main(int argc, char **argv) { else if (strcasecmp(algname, "GOST") == 0) dtype = DNS_DSDIGEST_GOST; #endif + else if (strcasecmp(algname, "SHA384") == 0 || + strcasecmp(algname, "SHA-384") == 0) + dtype = DNS_DSDIGEST_SHA384; else fatal("unknown algorithm %s", algname); } Modified: head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.docbook ============================================================================== --- head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.docbook Fri Dec 7 08:25:08 2012 (r243980) +++ head/contrib/bind9/bin/dnssec/dnssec-dsfromkey.docbook Fri Dec 7 12:39:58 2012 (r243981) @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []>