From owner-svn-src-projects@freebsd.org Sun Jul 16 20:52:55 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4036C79B6D for ; Sun, 16 Jul 2017 20:52:55 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 454086667C; Sun, 16 Jul 2017 20:52:55 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6GKqsDT054844; Sun, 16 Jul 2017 20:52:54 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6GKqs1S054841; Sun, 16 Jul 2017 20:52:54 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201707162052.v6GKqs1S054841@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sun, 16 Jul 2017 20:52:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321058 - in projects/pnfs-planb-server-stable11/sys/fs: nfs nfsserver X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in projects/pnfs-planb-server-stable11/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 321058 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Jul 2017 20:52:55 -0000 Author: rmacklem Date: Sun Jul 16 20:52:54 2017 New Revision: 321058 URL: https://svnweb.freebsd.org/changeset/base/321058 Log: Fix the server so that it returns ENXIO to the nfssvc() system call when the -p option is misconfigured. Modified: projects/pnfs-planb-server-stable11/sys/fs/nfs/nfs_var.h projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c Modified: projects/pnfs-planb-server-stable11/sys/fs/nfs/nfs_var.h ============================================================================== --- projects/pnfs-planb-server-stable11/sys/fs/nfs/nfs_var.h Sun Jul 16 19:36:44 2017 (r321057) +++ projects/pnfs-planb-server-stable11/sys/fs/nfs/nfs_var.h Sun Jul 16 20:52:54 2017 (r321058) @@ -148,7 +148,7 @@ int nfsrv_layoutreturn(struct nfsrv_descript *, vnode_ NFSPROC_T *); int nfsrv_getdevinfo(char *, int, uint32_t *, uint32_t *, int *, char **); void nfsrv_freealllayoutsanddevids(void); -void nfsrv_createdevids(struct nfsd_nfsd_args *, NFSPROC_T *); +int nfsrv_createdevids(struct nfsd_nfsd_args *, NFSPROC_T *); int nfsrv_checkdsattr(struct nfsrv_descript *, vnode_t, NFSPROC_T *); /* nfs_nfsdserv.c */ Modified: projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdkrpc.c ============================================================================== --- projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdkrpc.c Sun Jul 16 19:36:44 2017 (r321057) +++ projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdkrpc.c Sun Jul 16 20:52:54 2017 (r321058) @@ -502,32 +502,36 @@ nfsrvd_nfsd(struct thread *td, struct nfsd_nfsd_args * newnfs_numnfsd++; NFSD_UNLOCK(); - nfsrv_createdevids(args, td); - - /* An empty string implies AUTH_SYS only. */ - if (principal[0] != '\0') { - ret2 = rpc_gss_set_svc_name_call(principal, - "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, NFS_VER2); - ret3 = rpc_gss_set_svc_name_call(principal, - "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, NFS_VER3); - ret4 = rpc_gss_set_svc_name_call(principal, - "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, NFS_VER4); - - if (!ret2 || !ret3 || !ret4) - printf("nfsd: can't register svc name\n"); + error = nfsrv_createdevids(args, td); + if (error == 0) { + /* An empty string implies AUTH_SYS only. */ + if (principal[0] != '\0') { + ret2 = rpc_gss_set_svc_name_call(principal, + "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, + NFS_VER2); + ret3 = rpc_gss_set_svc_name_call(principal, + "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, + NFS_VER3); + ret4 = rpc_gss_set_svc_name_call(principal, + "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, + NFS_VER4); + + if (!ret2 || !ret3 || !ret4) + printf( + "nfsd: can't register svc name\n"); + } + + nfsrvd_pool->sp_minthreads = args->minthreads; + nfsrvd_pool->sp_maxthreads = args->maxthreads; + + svc_run(nfsrvd_pool); + + if (principal[0] != '\0') { + rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER2); + rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER3); + rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER4); + } } - - nfsrvd_pool->sp_minthreads = args->minthreads; - nfsrvd_pool->sp_maxthreads = args->maxthreads; - - svc_run(nfsrvd_pool); - - if (principal[0] != '\0') { - rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER2); - rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER3); - rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER4); - } - NFSD_LOCK(); newnfs_numnfsd--; nfsrvd_init(1); Modified: projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c Sun Jul 16 19:36:44 2017 (r321057) +++ projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c Sun Jul 16 20:52:54 2017 (r321058) @@ -6775,8 +6775,10 @@ nfsrv_allocdevid(struct nfsdevice *ds, char *addr, cha /* * Create the device id list. + * Return 0 if the nfsd threads are to run and ENXIO if the "-p" argument + * is misconfigured. */ -void +int nfsrv_createdevids(struct nfsd_nfsd_args *args, NFSPROC_T *p) { struct nfsdevice *ds; @@ -6787,7 +6789,7 @@ nfsrv_createdevids(struct nfsd_nfsd_args *args, NFSPRO dnshostp = args->dnshost; dspathp = args->dspath; if (addrp == NULL || dnshostp == NULL || dspathp == NULL) - return; + return (0); /* * Loop around for each nul-terminated string in args->addr and @@ -6800,13 +6802,14 @@ nfsrv_createdevids(struct nfsd_nfsd_args *args, NFSPRO if (error != 0) { /* Free all DS servers. */ nfsrv_freealldevids(); - return; + return (ENXIO); } nfsrv_allocdevid(ds, addrp, dnshostp); addrp += (strlen(addrp) + 1); dnshostp += (strlen(dnshostp) + 1); dspathp += (strlen(dspathp) + 1); } + return (0); } /* From owner-svn-src-projects@freebsd.org Sun Jul 16 20:56:42 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67C27C79B90 for ; Sun, 16 Jul 2017 20:56:42 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B8FA6679D; Sun, 16 Jul 2017 20:56:42 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6GKuf8g055064; Sun, 16 Jul 2017 20:56:41 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6GKufkM055063; Sun, 16 Jul 2017 20:56:41 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201707162056.v6GKufkM055063@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sun, 16 Jul 2017 20:56:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321059 - projects/pnfs-planb-server-stable11/usr.sbin/nfsd X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: projects/pnfs-planb-server-stable11/usr.sbin/nfsd X-SVN-Commit-Revision: 321059 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Jul 2017 20:56:42 -0000 Author: rmacklem Date: Sun Jul 16 20:56:41 2017 New Revision: 321059 URL: https://svnweb.freebsd.org/changeset/base/321059 Log: Add code to the nfsd to handle the case where nfssvc() returns ENXIO to indicate a misconfigured "-p" option. Modified: projects/pnfs-planb-server-stable11/usr.sbin/nfsd/nfsd.c Modified: projects/pnfs-planb-server-stable11/usr.sbin/nfsd/nfsd.c ============================================================================== --- projects/pnfs-planb-server-stable11/usr.sbin/nfsd/nfsd.c Sun Jul 16 20:52:54 2017 (r321058) +++ projects/pnfs-planb-server-stable11/usr.sbin/nfsd/nfsd.c Sun Jul 16 20:56:41 2017 (r321059) @@ -89,6 +89,7 @@ static int debug = 0; #define NFS_VER3 3 #define NFS_VER4 4 static pid_t children[MAXNFSDCNT]; /* PIDs of children */ +static pid_t masterpid; /* PID of master/parent */ static int nfsdcnt; /* number of children */ static int nfsdcnt_set; static int minthreads; @@ -457,6 +458,7 @@ main(int argc, char **argv) * kernel nfsd thread. The kernel will add more * threads as needed. */ + masterpid = getpid(); pid = fork(); if (pid == -1) { syslog(LOG_ERR, "fork: %m"); @@ -1060,7 +1062,12 @@ start_server(int master, struct nfsd_nfsd_args *nfsdar error = nfssvc(nfssvc_nfsd, nfsdargp); } if (error < 0) { - syslog(LOG_ERR, "nfssvc: %m"); + if (errno == ENXIO) { + syslog(LOG_ERR, "Bad -p option, cannot run"); + if (masterpid != 0 && master == 0) + kill(masterpid, SIGUSR1); + } else + syslog(LOG_ERR, "nfssvc: %m"); status = 1; } if (master) From owner-svn-src-projects@freebsd.org Sun Jul 16 21:04:00 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 58BEDC7A327 for ; Sun, 16 Jul 2017 21:04:00 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 308856729B; Sun, 16 Jul 2017 21:04:00 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6GL3xf7058977; Sun, 16 Jul 2017 21:03:59 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6GL3wfI058971; Sun, 16 Jul 2017 21:03:58 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201707162103.v6GL3wfI058971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sun, 16 Jul 2017 21:03:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321061 - in projects/pnfs-planb-server/sys/fs: nfs nfsserver X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in projects/pnfs-planb-server/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 321061 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Jul 2017 21:04:00 -0000 Author: rmacklem Date: Sun Jul 16 21:03:58 2017 New Revision: 321061 URL: https://svnweb.freebsd.org/changeset/base/321061 Log: Fix the server so that nfssvc() returns ENXIO when the "-p" option is misconfigured. Modified: projects/pnfs-planb-server/sys/fs/nfs/nfs_var.h projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdstate.c Modified: projects/pnfs-planb-server/sys/fs/nfs/nfs_var.h ============================================================================== --- projects/pnfs-planb-server/sys/fs/nfs/nfs_var.h Sun Jul 16 21:03:26 2017 (r321060) +++ projects/pnfs-planb-server/sys/fs/nfs/nfs_var.h Sun Jul 16 21:03:58 2017 (r321061) @@ -148,7 +148,7 @@ int nfsrv_layoutreturn(struct nfsrv_descript *, vnode_ NFSPROC_T *); int nfsrv_getdevinfo(char *, int, uint32_t *, uint32_t *, int *, char **); void nfsrv_freealllayoutsanddevids(void); -void nfsrv_createdevids(struct nfsd_nfsd_args *, NFSPROC_T *); +int nfsrv_createdevids(struct nfsd_nfsd_args *, NFSPROC_T *); int nfsrv_checkdsattr(struct nfsrv_descript *, vnode_t, NFSPROC_T *); /* nfs_nfsdserv.c */ Modified: projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdkrpc.c ============================================================================== --- projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdkrpc.c Sun Jul 16 21:03:26 2017 (r321060) +++ projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdkrpc.c Sun Jul 16 21:03:58 2017 (r321061) @@ -502,32 +502,36 @@ nfsrvd_nfsd(struct thread *td, struct nfsd_nfsd_args * newnfs_numnfsd++; NFSD_UNLOCK(); - nfsrv_createdevids(args, td); - - /* An empty string implies AUTH_SYS only. */ - if (principal[0] != '\0') { - ret2 = rpc_gss_set_svc_name_call(principal, - "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, NFS_VER2); - ret3 = rpc_gss_set_svc_name_call(principal, - "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, NFS_VER3); - ret4 = rpc_gss_set_svc_name_call(principal, - "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, NFS_VER4); - - if (!ret2 || !ret3 || !ret4) - printf("nfsd: can't register svc name\n"); + error = nfsrv_createdevids(args, td); + if (error == 0) { + /* An empty string implies AUTH_SYS only. */ + if (principal[0] != '\0') { + ret2 = rpc_gss_set_svc_name_call(principal, + "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, + NFS_VER2); + ret3 = rpc_gss_set_svc_name_call(principal, + "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, + NFS_VER3); + ret4 = rpc_gss_set_svc_name_call(principal, + "kerberosv5", GSS_C_INDEFINITE, NFS_PROG, + NFS_VER4); + + if (!ret2 || !ret3 || !ret4) + printf( + "nfsd: can't register svc name\n"); + } + + nfsrvd_pool->sp_minthreads = args->minthreads; + nfsrvd_pool->sp_maxthreads = args->maxthreads; + + svc_run(nfsrvd_pool); + + if (principal[0] != '\0') { + rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER2); + rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER3); + rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER4); + } } - - nfsrvd_pool->sp_minthreads = args->minthreads; - nfsrvd_pool->sp_maxthreads = args->maxthreads; - - svc_run(nfsrvd_pool); - - if (principal[0] != '\0') { - rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER2); - rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER3); - rpc_gss_clear_svc_name_call(NFS_PROG, NFS_VER4); - } - NFSD_LOCK(); newnfs_numnfsd--; nfsrvd_init(1); Modified: projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdstate.c Sun Jul 16 21:03:26 2017 (r321060) +++ projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdstate.c Sun Jul 16 21:03:58 2017 (r321061) @@ -6775,8 +6775,10 @@ nfsrv_allocdevid(struct nfsdevice *ds, char *addr, cha /* * Create the device id list. + * Return 0 if the nfsd threads are to run and ENXIO if the "-p" argument + * is misconfigured. */ -void +int nfsrv_createdevids(struct nfsd_nfsd_args *args, NFSPROC_T *p) { struct nfsdevice *ds; @@ -6787,7 +6789,7 @@ nfsrv_createdevids(struct nfsd_nfsd_args *args, NFSPRO dnshostp = args->dnshost; dspathp = args->dspath; if (addrp == NULL || dnshostp == NULL || dspathp == NULL) - return; + return (0); /* * Loop around for each nul-terminated string in args->addr and @@ -6800,13 +6802,14 @@ nfsrv_createdevids(struct nfsd_nfsd_args *args, NFSPRO if (error != 0) { /* Free all DS servers. */ nfsrv_freealldevids(); - return; + return (ENXIO); } nfsrv_allocdevid(ds, addrp, dnshostp); addrp += (strlen(addrp) + 1); dnshostp += (strlen(dnshostp) + 1); dspathp += (strlen(dspathp) + 1); } + return (0); } /* From owner-svn-src-projects@freebsd.org Sun Jul 16 21:07:59 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5FF85C7A6CA for ; Sun, 16 Jul 2017 21:07:59 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2D004675AB; Sun, 16 Jul 2017 21:07:59 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6GL7wYV059211; Sun, 16 Jul 2017 21:07:58 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6GL7wM6059210; Sun, 16 Jul 2017 21:07:58 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201707162107.v6GL7wM6059210@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sun, 16 Jul 2017 21:07:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321062 - projects/pnfs-planb-server/usr.sbin/nfsd X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: projects/pnfs-planb-server/usr.sbin/nfsd X-SVN-Commit-Revision: 321062 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Jul 2017 21:07:59 -0000 Author: rmacklem Date: Sun Jul 16 21:07:58 2017 New Revision: 321062 URL: https://svnweb.freebsd.org/changeset/base/321062 Log: Fix the nfsd so that it handles the nfssvc() return error of ENXIO for a misconfigured "-p" option. Modified: projects/pnfs-planb-server/usr.sbin/nfsd/nfsd.c Modified: projects/pnfs-planb-server/usr.sbin/nfsd/nfsd.c ============================================================================== --- projects/pnfs-planb-server/usr.sbin/nfsd/nfsd.c Sun Jul 16 21:03:58 2017 (r321061) +++ projects/pnfs-planb-server/usr.sbin/nfsd/nfsd.c Sun Jul 16 21:07:58 2017 (r321062) @@ -90,6 +90,7 @@ static int debug = 0; #define NFS_VER3 3 #define NFS_VER4 4 static pid_t children[MAXNFSDCNT]; /* PIDs of children */ +static pid_t masterpid; /* PID of master/parent */ static int nfsdcnt; /* number of children */ static int nfsdcnt_set; static int minthreads; @@ -458,6 +459,7 @@ main(int argc, char **argv) * kernel nfsd thread. The kernel will add more * threads as needed. */ + masterpid = getpid(); pid = fork(); if (pid == -1) { syslog(LOG_ERR, "fork: %m"); @@ -1061,7 +1063,12 @@ start_server(int master, struct nfsd_nfsd_args *nfsdar error = nfssvc(nfssvc_nfsd, nfsdargp); } if (error < 0) { - syslog(LOG_ERR, "nfssvc: %m"); + if (errno == ENXIO) { + syslog(LOG_ERR, "Bad -p option, cannot run"); + if (masterpid != 0 && master == 0) + kill(masterpid, SIGUSR1); + } else + syslog(LOG_ERR, "nfssvc: %m"); status = 1; } if (master) From owner-svn-src-projects@freebsd.org Wed Jul 19 19:41:45 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0E8DD7CF47 for ; Wed, 19 Jul 2017 19:41:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 285726954C; Wed, 19 Jul 2017 19:41:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6JJfih5004603; Wed, 19 Jul 2017 19:41:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6JJfgmS004575; Wed, 19 Jul 2017 19:41:42 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707191941.v6JJfgmS004575@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 19 Jul 2017 19:41:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321238 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/lsan contrib/compiler-rt/lib/msan contrib/compiler-rt/lib/sa... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/lsan contrib/compiler-rt/lib/msan contrib/compiler-rt/lib/sanitizer_common contrib/co... X-SVN-Commit-Revision: 321238 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Jul 2017 19:41:45 -0000 Author: dim Date: Wed Jul 19 19:41:41 2017 New Revision: 321238 URL: https://svnweb.freebsd.org/changeset/base/321238 Log: Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update build glue. Added: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h - copied unchanged from r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/GUID.h - copied unchanged from r321217, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GUID.h projects/clang500-import/contrib/llvm/include/llvm/ToolDrivers/llvm-dlltool/ - copied from r321217, vendor/llvm/dist/include/llvm/ToolDrivers/llvm-dlltool/ projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp - copied unchanged from r321217, vendor/llvm/dist/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td - copied unchanged from r321217, vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ14.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp - copied unchanged from r321217, vendor/llvm/dist/lib/Target/X86/X86CmovConversion.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td - copied unchanged from r321217, vendor/llvm/dist/lib/Target/X86/X86ScheduleZnver1.td projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/ - copied from r321217, vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/ projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h - copied unchanged from r321217, vendor/clang/dist/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h Deleted: projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeServerHandler.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBTypeServerHandler.cpp projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/CMakeLists.txt projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/LLVMBuild.txt Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.h projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc projects/clang500-import/contrib/libc++/include/__config projects/clang500-import/contrib/libc++/include/algorithm projects/clang500-import/contrib/libc++/include/string projects/clang500-import/contrib/libc++/include/vector projects/clang500-import/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopInfo.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/PostDominators.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominators.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Formatters.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h projects/clang500-import/contrib/llvm/include/llvm/IR/CallingConv.h projects/clang500-import/contrib/llvm/include/llvm/IR/Constants.h projects/clang500-import/contrib/llvm/include/llvm/IR/DIBuilder.h projects/clang500-import/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h projects/clang500-import/contrib/llvm/include/llvm/IR/Dominators.h projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td projects/clang500-import/contrib/llvm/include/llvm/MC/LaneBitmask.h projects/clang500-import/contrib/llvm/include/llvm/MC/MCFixup.h projects/clang500-import/contrib/llvm/include/llvm/MC/MCInstrDesc.h projects/clang500-import/contrib/llvm/include/llvm/Object/COFFImportFile.h projects/clang500-import/contrib/llvm/include/llvm/Object/COFFModuleDefinition.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h projects/clang500-import/contrib/llvm/include/llvm/Support/AArch64TargetParser.def projects/clang500-import/contrib/llvm/include/llvm/Support/BinaryItemStream.h projects/clang500-import/contrib/llvm/include/llvm/Support/Format.h projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTree.h projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h projects/clang500-import/contrib/llvm/include/llvm/Support/TargetParser.h projects/clang500-import/contrib/llvm/include/llvm/Support/YAMLTraits.h projects/clang500-import/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLowering.h projects/clang500-import/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp projects/clang500-import/contrib/llvm/lib/Analysis/DominanceFrontier.cpp projects/clang500-import/contrib/llvm/lib/Analysis/InstCount.cpp projects/clang500-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp projects/clang500-import/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp projects/clang500-import/contrib/llvm/lib/Analysis/LazyCallGraph.cpp projects/clang500-import/contrib/llvm/lib/Analysis/LoopInfo.cpp projects/clang500-import/contrib/llvm/lib/Analysis/MemorySSA.cpp projects/clang500-import/contrib/llvm/lib/Analysis/PostDominators.cpp projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/clang500-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/AsmParser/LLLexer.cpp projects/clang500-import/contrib/llvm/lib/AsmParser/LLParser.cpp projects/clang500-import/contrib/llvm/lib/AsmParser/LLToken.h projects/clang500-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp projects/clang500-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCombiner.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachineDominators.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachinePostDominators.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h projects/clang500-import/contrib/llvm/lib/IR/AsmWriter.cpp projects/clang500-import/contrib/llvm/lib/IR/Constants.cpp projects/clang500-import/contrib/llvm/lib/IR/Core.cpp projects/clang500-import/contrib/llvm/lib/IR/DIBuilder.cpp projects/clang500-import/contrib/llvm/lib/IR/DebugInfoMetadata.cpp projects/clang500-import/contrib/llvm/lib/IR/Dominators.cpp projects/clang500-import/contrib/llvm/lib/IR/LLVMContextImpl.h projects/clang500-import/contrib/llvm/lib/IR/LegacyPassManager.cpp projects/clang500-import/contrib/llvm/lib/IR/Module.cpp projects/clang500-import/contrib/llvm/lib/Object/ArchiveWriter.cpp projects/clang500-import/contrib/llvm/lib/Object/COFFImportFile.cpp projects/clang500-import/contrib/llvm/lib/Object/COFFModuleDefinition.cpp projects/clang500-import/contrib/llvm/lib/Object/COFFObjectFile.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp projects/clang500-import/contrib/llvm/lib/Option/OptTable.cpp projects/clang500-import/contrib/llvm/lib/Support/ErrorHandling.cpp projects/clang500-import/contrib/llvm/lib/Support/Host.cpp projects/clang500-import/contrib/llvm/lib/Support/Path.cpp projects/clang500-import/contrib/llvm/lib/Support/TargetParser.cpp projects/clang500-import/contrib/llvm/lib/Support/YAMLTraits.cpp projects/clang500-import/contrib/llvm/lib/Support/raw_ostream.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td projects/clang500-import/contrib/llvm/lib/Target/ARM/ARM.td projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h projects/clang500-import/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/Mips.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSchedule.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/Sparc/Sparc.td projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZPatterns.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZProcessors.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/X86/X86.h projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86CallingConv.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrAVX512.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86Schedule.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.h projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.h projects/clang500-import/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp projects/clang500-import/contrib/llvm/lib/Transforms/IPO/Inliner.cpp projects/clang500-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVN.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp projects/clang500-import/contrib/llvm/tools/clang/include/clang-c/Index.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Type.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/module.modulemap projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Type.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Driver.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h projects/clang500-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/vecintrin.h projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/Sema.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.cpp projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.h projects/clang500-import/contrib/llvm/tools/lld/COFF/Config.h projects/clang500-import/contrib/llvm/tools/lld/COFF/Driver.cpp projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Config.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Driver.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/EhFrame.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Filesystem.h projects/clang500-import/contrib/llvm/tools/lld/ELF/GdbIndex.h projects/clang500-import/contrib/llvm/tools/lld/ELF/ICF.h projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.h projects/clang500-import/contrib/llvm/tools/lld/ELF/LTO.h projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Memory.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Options.td projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.h projects/clang500-import/contrib/llvm/tools/lld/ELF/ScriptParser.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Strings.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Strings.h projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Symbols.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Threads.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/PosixApi.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-types.h projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/File.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Host.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/LockFilePosix.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Target.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/driver/Driver.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp projects/clang500-import/contrib/llvm/tools/llvm-ar/llvm-ar.cpp projects/clang500-import/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp projects/clang500-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp projects/clang500-import/lib/clang/include/clang/Basic/Version.inc projects/clang500-import/lib/clang/include/lld/Config/Version.inc projects/clang500-import/lib/clang/include/llvm/Support/VCSRevision.h projects/clang500-import/lib/clang/libllvm/Makefile Directory Properties: projects/clang500-import/contrib/compiler-rt/ (props changed) projects/clang500-import/contrib/libc++/ (props changed) projects/clang500-import/contrib/llvm/ (props changed) projects/clang500-import/contrib/llvm/tools/clang/ (props changed) projects/clang500-import/contrib/llvm/tools/lld/ (props changed) projects/clang500-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -21,7 +21,9 @@ #include "asan_report.h" #include "asan_stack.h" #include "asan_thread.h" +#include "sanitizer_common/sanitizer_allocator_checks.h" #include "sanitizer_common/sanitizer_allocator_interface.h" +#include "sanitizer_common/sanitizer_errno.h" #include "sanitizer_common/sanitizer_flags.h" #include "sanitizer_common/sanitizer_internal_defs.h" #include "sanitizer_common/sanitizer_list.h" @@ -799,11 +801,6 @@ void PrintInternalAllocatorStats() { instance.PrintStats(); } -void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack, - AllocType alloc_type) { - return instance.Allocate(size, alignment, stack, alloc_type, true); -} - void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type) { instance.Deallocate(ptr, 0, stack, alloc_type); } @@ -814,16 +811,16 @@ void asan_sized_free(void *ptr, uptr size, BufferedSta } void *asan_malloc(uptr size, BufferedStackTrace *stack) { - return instance.Allocate(size, 8, stack, FROM_MALLOC, true); + return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true)); } void *asan_calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) { - return instance.Calloc(nmemb, size, stack); + return SetErrnoOnNull(instance.Calloc(nmemb, size, stack)); } void *asan_realloc(void *p, uptr size, BufferedStackTrace *stack) { if (!p) - return instance.Allocate(size, 8, stack, FROM_MALLOC, true); + return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true)); if (size == 0) { if (flags()->allocator_frees_and_returns_null_on_realloc_zero) { instance.Deallocate(p, 0, stack, FROM_MALLOC); @@ -832,26 +829,41 @@ void *asan_realloc(void *p, uptr size, BufferedStackTr // Allocate a size of 1 if we shouldn't free() on Realloc to 0 size = 1; } - return instance.Reallocate(p, size, stack); + return SetErrnoOnNull(instance.Reallocate(p, size, stack)); } void *asan_valloc(uptr size, BufferedStackTrace *stack) { - return instance.Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true); + return SetErrnoOnNull( + instance.Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true)); } void *asan_pvalloc(uptr size, BufferedStackTrace *stack) { uptr PageSize = GetPageSizeCached(); - size = RoundUpTo(size, PageSize); - if (size == 0) { - // pvalloc(0) should allocate one page. - size = PageSize; + // pvalloc(0) should allocate one page. + size = size ? RoundUpTo(size, PageSize) : PageSize; + return SetErrnoOnNull( + instance.Allocate(size, PageSize, stack, FROM_MALLOC, true)); +} + +void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack, + AllocType alloc_type) { + if (UNLIKELY(!IsPowerOfTwo(alignment))) { + errno = errno_EINVAL; + return AsanAllocator::FailureHandler::OnBadRequest(); } - return instance.Allocate(size, PageSize, stack, FROM_MALLOC, true); + return SetErrnoOnNull( + instance.Allocate(size, alignment, stack, alloc_type, true)); } int asan_posix_memalign(void **memptr, uptr alignment, uptr size, BufferedStackTrace *stack) { + if (UNLIKELY(!CheckPosixMemalignAlignment(alignment))) { + AsanAllocator::FailureHandler::OnBadRequest(); + return errno_EINVAL; + } void *ptr = instance.Allocate(size, alignment, stack, FROM_MALLOC, true); + if (UNLIKELY(!ptr)) + return errno_ENOMEM; CHECK(IsAligned((uptr)ptr, alignment)); *memptr = ptr; return 0; Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -178,6 +178,10 @@ void SetThreadName(const char *name) { } int OnExit() { + if (CAN_SANITIZE_LEAKS && common_flags()->detect_leaks && + __lsan::HasReportedLeaks()) { + return common_flags()->exitcode; + } // FIXME: ask frontend whether we need to return failure. return 0; } Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c Wed Jul 19 19:41:41 2017 (r321238) @@ -190,8 +190,8 @@ static bool getX86CpuIDAndInfo(unsigned value, unsigne static bool getX86CpuIDAndInfoEx(unsigned value, unsigned subleaf, unsigned *rEAX, unsigned *rEBX, unsigned *rECX, unsigned *rEDX) { -#if defined(__x86_64__) || defined(_M_X64) #if defined(__GNUC__) || defined(__clang__) +#if defined(__x86_64__) // gcc doesn't know cpuid would clobber ebx/rbx. Preserve it manually. // FIXME: should we save this for Clang? __asm__("movq\t%%rbx, %%rsi\n\t" @@ -200,43 +200,24 @@ static bool getX86CpuIDAndInfoEx(unsigned value, unsig : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX) : "a"(value), "c"(subleaf)); return false; -#elif defined(_MSC_VER) - int registers[4]; - __cpuidex(registers, value, subleaf); - *rEAX = registers[0]; - *rEBX = registers[1]; - *rECX = registers[2]; - *rEDX = registers[3]; - return false; -#else - return true; -#endif -#elif defined(__i386__) || defined(_M_IX86) -#if defined(__GNUC__) || defined(__clang__) +#elif defined(__i386__) __asm__("movl\t%%ebx, %%esi\n\t" "cpuid\n\t" "xchgl\t%%ebx, %%esi\n\t" : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX) : "a"(value), "c"(subleaf)); return false; -#elif defined(_MSC_VER) - __asm { - mov eax,value - mov ecx,subleaf - cpuid - mov esi,rEAX - mov dword ptr [esi],eax - mov esi,rEBX - mov dword ptr [esi],ebx - mov esi,rECX - mov dword ptr [esi],ecx - mov esi,rEDX - mov dword ptr [esi],edx - } - return false; #else return true; #endif +#elif defined(_MSC_VER) + int registers[4]; + __cpuidex(registers, value, subleaf); + *rEAX = registers[0]; + *rEBX = registers[1]; + *rECX = registers[2]; + *rEDX = registers[3]; + return false; #else return true; #endif Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -15,7 +15,9 @@ #include "lsan_allocator.h" #include "sanitizer_common/sanitizer_allocator.h" +#include "sanitizer_common/sanitizer_allocator_checks.h" #include "sanitizer_common/sanitizer_allocator_interface.h" +#include "sanitizer_common/sanitizer_errno.h" #include "sanitizer_common/sanitizer_internal_defs.h" #include "sanitizer_common/sanitizer_stackdepot.h" #include "sanitizer_common/sanitizer_stacktrace.h" @@ -86,6 +88,13 @@ void *Allocate(const StackTrace &stack, uptr size, upt return p; } +static void *Calloc(uptr nmemb, uptr size, const StackTrace &stack) { + if (UNLIKELY(CheckForCallocOverflow(size, nmemb))) + return Allocator::FailureHandler::OnBadRequest(); + size *= nmemb; + return Allocate(stack, size, 1, true); +} + void Deallocate(void *p) { if (&__sanitizer_free_hook) __sanitizer_free_hook(p); RunFreeHooks(p); @@ -118,11 +127,15 @@ uptr GetMallocUsableSize(const void *p) { } void *lsan_memalign(uptr alignment, uptr size, const StackTrace &stack) { - return Allocate(stack, size, alignment, kAlwaysClearMemory); + if (UNLIKELY(!IsPowerOfTwo(alignment))) { + errno = errno_EINVAL; + return Allocator::FailureHandler::OnBadRequest(); + } + return SetErrnoOnNull(Allocate(stack, size, alignment, kAlwaysClearMemory)); } void *lsan_malloc(uptr size, const StackTrace &stack) { - return Allocate(stack, size, 1, kAlwaysClearMemory); + return SetErrnoOnNull(Allocate(stack, size, 1, kAlwaysClearMemory)); } void lsan_free(void *p) { @@ -130,20 +143,16 @@ void lsan_free(void *p) { } void *lsan_realloc(void *p, uptr size, const StackTrace &stack) { - return Reallocate(stack, p, size, 1); + return SetErrnoOnNull(Reallocate(stack, p, size, 1)); } void *lsan_calloc(uptr nmemb, uptr size, const StackTrace &stack) { - if (CheckForCallocOverflow(size, nmemb)) - return Allocator::FailureHandler::OnBadRequest(); - size *= nmemb; - return Allocate(stack, size, 1, true); + return SetErrnoOnNull(Calloc(nmemb, size, stack)); } void *lsan_valloc(uptr size, const StackTrace &stack) { - if (size == 0) - size = GetPageSizeCached(); - return Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory); + return SetErrnoOnNull( + Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory)); } uptr lsan_mz_size(const void *p) { Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -576,18 +576,16 @@ static bool CheckForLeaks() { return false; } +static bool has_reported_leaks = false; +bool HasReportedLeaks() { return has_reported_leaks; } + void DoLeakCheck() { BlockingMutexLock l(&global_mutex); static bool already_done; if (already_done) return; already_done = true; - bool have_leaks = CheckForLeaks(); - if (!have_leaks) { - return; - } - if (common_flags()->exitcode) { - Die(); - } + has_reported_leaks = CheckForLeaks(); + if (has_reported_leaks) HandleLeaks(); } static int DoRecoverableLeakCheck() { Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h Wed Jul 19 19:41:41 2017 (r321238) @@ -226,6 +226,12 @@ IgnoreObjectResult IgnoreObjectLocked(const void *p); // Return the linker module, if valid for the platform. LoadedModule *GetLinker(); +// Return true if LSan has finished leak checking and reported leaks. +bool HasReportedLeaks(); + +// Run platform-specific leak handlers. +void HandleLeaks(); + // Wrapper for chunk metadata operations. class LsanMetadata { public: Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -100,6 +100,13 @@ struct DoStopTheWorldParam { void *argument; }; +// While calling Die() here is undefined behavior and can potentially +// cause race conditions, it isn't possible to intercept exit on linux, +// so we have no choice but to call Die() from the atexit handler. +void HandleLeaks() { + if (common_flags()->exitcode) Die(); +} + static int DoStopTheWorldCallback(struct dl_phdr_info *info, size_t size, void *data) { DoStopTheWorldParam *param = reinterpret_cast(data); Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -164,6 +164,11 @@ void ProcessPlatformSpecificAllocations(Frontier *fron } } +// On darwin, we can intercept _exit gracefully, and return a failing exit code +// if required at that point. Calling Die() here is undefined behavior and +// causes rare race conditions. +void HandleLeaks() {} + void DoStopTheWorld(StopTheWorldCallback callback, void *argument) { StopTheWorld(callback, argument); } Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -352,6 +352,11 @@ INTERCEPTOR(int, pthread_join, void *th, void **ret) { return res; } +INTERCEPTOR(void, _exit, int status) { + if (status == 0 && HasReportedLeaks()) status = common_flags()->exitcode; + REAL(_exit)(status); +} + namespace __lsan { void InitializeInterceptors() { @@ -371,6 +376,7 @@ void InitializeInterceptors() { LSAN_MAYBE_INTERCEPT_MALLOPT; INTERCEPT_FUNCTION(pthread_create); INTERCEPT_FUNCTION(pthread_join); + INTERCEPT_FUNCTION(_exit); if (pthread_key_create(&g_thread_finalize_key, &thread_finalize)) { Report("LeakSanitizer: failed to create thread key.\n"); Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h Wed Jul 19 19:41:41 2017 (r321238) @@ -280,10 +280,18 @@ void InitializeInterceptors(); void MsanAllocatorInit(); void MsanAllocatorThreadFinish(); -void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size); -void *MsanReallocate(StackTrace *stack, void *oldp, uptr size, - uptr alignment, bool zeroise); void MsanDeallocate(StackTrace *stack, void *ptr); + +void *msan_malloc(uptr size, StackTrace *stack); +void *msan_calloc(uptr nmemb, uptr size, StackTrace *stack); +void *msan_realloc(void *ptr, uptr size, StackTrace *stack); +void *msan_valloc(uptr size, StackTrace *stack); +void *msan_pvalloc(uptr size, StackTrace *stack); +void *msan_aligned_alloc(uptr alignment, uptr size, StackTrace *stack); +void *msan_memalign(uptr alignment, uptr size, StackTrace *stack); +int msan_posix_memalign(void **memptr, uptr alignment, uptr size, + StackTrace *stack); + void InstallTrapHandler(); void InstallAtExitHandler(); Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -13,7 +13,9 @@ //===----------------------------------------------------------------------===// #include "sanitizer_common/sanitizer_allocator.h" +#include "sanitizer_common/sanitizer_allocator_checks.h" #include "sanitizer_common/sanitizer_allocator_interface.h" +#include "sanitizer_common/sanitizer_errno.h" #include "msan.h" #include "msan_allocator.h" #include "msan_origin.h" @@ -194,20 +196,8 @@ void MsanDeallocate(StackTrace *stack, void *p) { } } -void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size) { - if (CheckForCallocOverflow(size, nmemb)) - return Allocator::FailureHandler::OnBadRequest(); - return MsanReallocate(stack, nullptr, nmemb * size, sizeof(u64), true); -} - void *MsanReallocate(StackTrace *stack, void *old_p, uptr new_size, - uptr alignment, bool zeroise) { - if (!old_p) - return MsanAllocate(stack, new_size, alignment, zeroise); - if (!new_size) { - MsanDeallocate(stack, old_p); - return nullptr; - } + uptr alignment) { Metadata *meta = reinterpret_cast(allocator.GetMetaData(old_p)); uptr old_size = meta->requested_size; uptr actually_allocated_size = allocator.GetActuallyAllocatedSize(old_p); @@ -215,10 +205,7 @@ void *MsanReallocate(StackTrace *stack, void *old_p, u // We are not reallocating here. meta->requested_size = new_size; if (new_size > old_size) { - if (zeroise) { - __msan_clear_and_unpoison((char *)old_p + old_size, - new_size - old_size); - } else if (flags()->poison_in_malloc) { + if (flags()->poison_in_malloc) { stack->tag = StackTrace::TAG_ALLOC; PoisonMemory((char *)old_p + old_size, new_size - old_size, stack); } @@ -226,8 +213,7 @@ void *MsanReallocate(StackTrace *stack, void *old_p, u return old_p; } uptr memcpy_size = Min(new_size, old_size); - void *new_p = MsanAllocate(stack, new_size, alignment, zeroise); - // Printf("realloc: old_size %zd new_size %zd\n", old_size, new_size); + void *new_p = MsanAllocate(stack, new_size, alignment, false /*zeroise*/); if (new_p) { CopyMemory(new_p, old_p, memcpy_size, stack); MsanDeallocate(stack, old_p); @@ -241,6 +227,67 @@ static uptr AllocationSize(const void *p) { if (beg != p) return 0; Metadata *b = (Metadata *)allocator.GetMetaData(p); return b->requested_size; +} + +void *msan_malloc(uptr size, StackTrace *stack) { + return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false)); +} + +void *msan_calloc(uptr nmemb, uptr size, StackTrace *stack) { + if (UNLIKELY(CheckForCallocOverflow(size, nmemb))) + return SetErrnoOnNull(Allocator::FailureHandler::OnBadRequest()); + return SetErrnoOnNull(MsanAllocate(stack, nmemb * size, sizeof(u64), true)); +} + +void *msan_realloc(void *ptr, uptr size, StackTrace *stack) { + if (!ptr) + return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false)); + if (size == 0) { + MsanDeallocate(stack, ptr); + return nullptr; + } + return SetErrnoOnNull(MsanReallocate(stack, ptr, size, sizeof(u64))); +} + +void *msan_valloc(uptr size, StackTrace *stack) { + return SetErrnoOnNull(MsanAllocate(stack, size, GetPageSizeCached(), false)); +} + +void *msan_pvalloc(uptr size, StackTrace *stack) { + uptr PageSize = GetPageSizeCached(); + // pvalloc(0) should allocate one page. + size = size == 0 ? PageSize : RoundUpTo(size, PageSize); + return SetErrnoOnNull(MsanAllocate(stack, size, PageSize, false)); +} + +void *msan_aligned_alloc(uptr alignment, uptr size, StackTrace *stack) { + if (UNLIKELY(!CheckAlignedAllocAlignmentAndSize(alignment, size))) { + errno = errno_EINVAL; + return Allocator::FailureHandler::OnBadRequest(); + } + return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false)); +} + +void *msan_memalign(uptr alignment, uptr size, StackTrace *stack) { + if (UNLIKELY(!IsPowerOfTwo(alignment))) { + errno = errno_EINVAL; + return Allocator::FailureHandler::OnBadRequest(); + } + return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false)); +} + +int msan_posix_memalign(void **memptr, uptr alignment, uptr size, + StackTrace *stack) { + if (UNLIKELY(!CheckPosixMemalignAlignment(alignment))) { + Allocator::FailureHandler::OnBadRequest(); + return errno_EINVAL; + } + void *ptr = MsanAllocate(stack, size, alignment, false); + if (UNLIKELY(!ptr)) + return errno_ENOMEM; + CHECK(IsAligned((uptr)ptr, alignment)); + *memptr = ptr; + return 0; } } // namespace __msan Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -161,58 +161,45 @@ INTERCEPTOR(void *, bcopy, const void *src, void *dest INTERCEPTOR(int, posix_memalign, void **memptr, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(alignment & (alignment - 1), 0); CHECK_NE(memptr, 0); - *memptr = MsanReallocate(&stack, nullptr, size, alignment, false); - CHECK_NE(*memptr, 0); - __msan_unpoison(memptr, sizeof(*memptr)); - return 0; + int res = msan_posix_memalign(memptr, alignment, size, &stack); + if (!res) + __msan_unpoison(memptr, sizeof(*memptr)); + return res; } #if !SANITIZER_FREEBSD -INTERCEPTOR(void *, memalign, SIZE_T boundary, SIZE_T size) { +INTERCEPTOR(void *, memalign, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(boundary & (boundary - 1), 0); - void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false); - return ptr; + return msan_memalign(alignment, size, &stack); } #define MSAN_MAYBE_INTERCEPT_MEMALIGN INTERCEPT_FUNCTION(memalign) #else #define MSAN_MAYBE_INTERCEPT_MEMALIGN #endif -INTERCEPTOR(void *, aligned_alloc, SIZE_T boundary, SIZE_T size) { +INTERCEPTOR(void *, aligned_alloc, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(boundary & (boundary - 1), 0); - void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false); - return ptr; + return msan_aligned_alloc(alignment, size, &stack); } -INTERCEPTOR(void *, __libc_memalign, SIZE_T boundary, SIZE_T size) { +INTERCEPTOR(void *, __libc_memalign, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(boundary & (boundary - 1), 0); - void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false); - DTLS_on_libc_memalign(ptr, size); + void *ptr = msan_memalign(alignment, size, &stack); + if (ptr) + DTLS_on_libc_memalign(ptr, size); return ptr; } INTERCEPTOR(void *, valloc, SIZE_T size) { GET_MALLOC_STACK_TRACE; - void *ptr = MsanReallocate(&stack, nullptr, size, GetPageSizeCached(), false); - return ptr; + return msan_valloc(size, &stack); } #if !SANITIZER_FREEBSD INTERCEPTOR(void *, pvalloc, SIZE_T size) { GET_MALLOC_STACK_TRACE; - uptr PageSize = GetPageSizeCached(); - size = RoundUpTo(size, PageSize); - if (size == 0) { - // pvalloc(0) should allocate one page. - size = PageSize; - } - void *ptr = MsanReallocate(&stack, nullptr, size, PageSize, false); - return ptr; + return msan_pvalloc(size, &stack); } #define MSAN_MAYBE_INTERCEPT_PVALLOC INTERCEPT_FUNCTION(pvalloc) #else @@ -853,7 +840,7 @@ INTERCEPTOR(void *, calloc, SIZE_T nmemb, SIZE_T size) if (UNLIKELY(!msan_inited)) // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym. return AllocateFromLocalPool(nmemb * size); - return MsanCalloc(&stack, nmemb, size); + return msan_calloc(nmemb, size, &stack); } INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { @@ -866,12 +853,12 @@ INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { new_ptr = AllocateFromLocalPool(copy_size); } else { copy_size = size; - new_ptr = MsanReallocate(&stack, nullptr, copy_size, sizeof(u64), false); + new_ptr = msan_malloc(copy_size, &stack); } internal_memcpy(new_ptr, ptr, copy_size); return new_ptr; } - return MsanReallocate(&stack, ptr, size, sizeof(u64), false); + return msan_realloc(ptr, size, &stack); } INTERCEPTOR(void *, malloc, SIZE_T size) { @@ -879,7 +866,7 @@ INTERCEPTOR(void *, malloc, SIZE_T size) { if (UNLIKELY(!msan_inited)) // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym. return AllocateFromLocalPool(size); - return MsanReallocate(&stack, nullptr, size, sizeof(u64), false); + return msan_malloc(size, &stack); } void __msan_allocated_memory(const void *data, uptr size) { Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -31,7 +31,7 @@ namespace std { // TODO(alekseys): throw std::bad_alloc instead of dying on OOM. #define OPERATOR_NEW_BODY(nothrow) \ GET_MALLOC_STACK_TRACE; \ - void *res = MsanReallocate(&stack, 0, size, sizeof(u64), false);\ + void *res = msan_malloc(size, &stack);\ if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ return res Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -14,6 +14,7 @@ #include "sanitizer_allocator.h" +#include "sanitizer_allocator_checks.h" #include "sanitizer_allocator_internal.h" #include "sanitizer_atomic.h" #include "sanitizer_common.h" @@ -160,7 +161,7 @@ void *InternalRealloc(void *addr, uptr size, InternalA } void *InternalCalloc(uptr count, uptr size, InternalAllocatorCache *cache) { - if (CheckForCallocOverflow(count, size)) + if (UNLIKELY(CheckForCallocOverflow(count, size))) return InternalAllocator::FailureHandler::OnBadRequest(); void *p = InternalAlloc(count * size, cache); if (p) internal_memset(p, 0, count * size); @@ -200,12 +201,6 @@ void *LowLevelAllocator::Allocate(uptr size) { void SetLowLevelAllocateCallback(LowLevelAllocateCallback callback) { low_level_alloc_callback = callback; -} - -bool CheckForCallocOverflow(uptr size, uptr n) { - if (!size) return false; - uptr max = (uptr)-1L; - return (max / size) < n; } static atomic_uint8_t allocator_out_of_memory = {0}; Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h Wed Jul 19 19:41:41 2017 (r321238) @@ -56,11 +56,6 @@ struct NoOpMapUnmapCallback { // Callback type for iterating over chunks. typedef void (*ForEachChunkCallback)(uptr chunk, void *arg); -// Returns true if calloc(size, n) call overflows on size*n calculation. -// The caller should "return POLICY::OnBadRequest();" where POLICY is the -// current allocator failure handling policy. -bool CheckForCallocOverflow(uptr size, uptr n); - #include "sanitizer_allocator_size_class_map.h" #include "sanitizer_allocator_stats.h" #include "sanitizer_allocator_primary64.h" Copied: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h (from r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h Wed Jul 19 19:41:41 2017 (r321238, copy of r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h) @@ -0,0 +1,64 @@ +//===-- sanitizer_allocator_checks.h ----------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Various checks shared between ThreadSanitizer, MemorySanitizer, etc. memory +// allocators. +// +//===----------------------------------------------------------------------===// + +#ifndef SANITIZER_ALLOCATOR_CHECKS_H +#define SANITIZER_ALLOCATOR_CHECKS_H + +#include "sanitizer_errno.h" +#include "sanitizer_internal_defs.h" +#include "sanitizer_common.h" +#include "sanitizer_platform.h" + +namespace __sanitizer { + +// A common errno setting logic shared by almost all sanitizer allocator APIs. +INLINE void *SetErrnoOnNull(void *ptr) { + if (UNLIKELY(!ptr)) + errno = errno_ENOMEM; + return ptr; +} + +// In case of the check failure, the caller of the following Check... functions +// should "return POLICY::OnBadRequest();" where POLICY is the current allocator +// failure handling policy. + +// Checks aligned_alloc() parameters, verifies that the alignment is a power of +// two and that the size is a multiple of alignment for POSIX implementation, +// and a bit relaxed requirement for non-POSIX ones, that the size is a multiple +// of alignment. +INLINE bool CheckAlignedAllocAlignmentAndSize(uptr alignment, uptr size) { +#if SANITIZER_POSIX + return IsPowerOfTwo(alignment) && (size & (alignment - 1)) == 0; +#else + return size % alignment == 0; +#endif +} + +// Checks posix_memalign() parameters, verifies that alignment is a power of two +// and a multiple of sizeof(void *). +INLINE bool CheckPosixMemalignAlignment(uptr alignment) { + return IsPowerOfTwo(alignment) && (alignment % sizeof(void *)) == 0; // NOLINT +} + +// Returns true if calloc(size, n) call overflows on size*n calculation. +INLINE bool CheckForCallocOverflow(uptr size, uptr n) { + if (!size) + return false; + uptr max = (uptr)-1L; + return (max / size) < n; +} + +} // namespace __sanitizer + +#endif // SANITIZER_ALLOCATOR_CHECKS_H Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h Wed Jul 19 19:41:41 2017 (r321238) @@ -26,6 +26,8 @@ # define __errno_location __error #elif SANITIZER_ANDROID # define __errno_location __errno +#elif SANITIZER_WINDOWS +# define __errno_location _errno #endif extern "C" int *__errno_location(); Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -629,8 +629,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, } #endif -uptr internal_sigaltstack(const struct sigaltstack *ss, - struct sigaltstack *oss) { +uptr internal_sigaltstack(const void *ss, void *oss) { return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss); } Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h Wed Jul 19 19:41:41 2017 (r321238) @@ -21,7 +21,6 @@ #include "sanitizer_platform_limits_posix.h" struct link_map; // Opaque type returned by dlopen(). -struct sigaltstack; namespace __sanitizer { // Dirent structure for getdents(). Note that this structure is different from @@ -30,8 +29,7 @@ struct linux_dirent; // Syscall wrappers. uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count); -uptr internal_sigaltstack(const struct sigaltstack* ss, - struct sigaltstack* oss); +uptr internal_sigaltstack(const void* ss, void* oss); uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set, __sanitizer_sigset_t *oldset); Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -805,14 +805,35 @@ char **GetArgv() { // fields only available in 10.12+. Declare the struct manually to be able to // build against older SDKs. struct __sanitizer_task_vm_info { - uptr _unused[(SANITIZER_WORDSIZE == 32) ? 20 : 19]; - uptr min_address; - uptr max_address; + mach_vm_size_t virtual_size; + integer_t region_count; + integer_t page_size; + mach_vm_size_t resident_size; + mach_vm_size_t resident_size_peak; + mach_vm_size_t device; + mach_vm_size_t device_peak; + mach_vm_size_t internal; + mach_vm_size_t internal_peak; + mach_vm_size_t external; + mach_vm_size_t external_peak; + mach_vm_size_t reusable; + mach_vm_size_t reusable_peak; + mach_vm_size_t purgeable_volatile_pmap; + mach_vm_size_t purgeable_volatile_resident; + mach_vm_size_t purgeable_volatile_virtual; + mach_vm_size_t compressed; + mach_vm_size_t compressed_peak; + mach_vm_size_t compressed_lifetime; + mach_vm_size_t phys_footprint; + mach_vm_address_t min_address; + mach_vm_address_t max_address; }; +#define __SANITIZER_TASK_VM_INFO_COUNT ((mach_msg_type_number_t) \ + (sizeof(__sanitizer_task_vm_info) / sizeof(natural_t))) uptr GetTaskInfoMaxAddress() { - __sanitizer_task_vm_info vm_info = {{0}, 0, 0}; - mach_msg_type_number_t count = sizeof(vm_info) / sizeof(int); + __sanitizer_task_vm_info vm_info = {}; + mach_msg_type_number_t count = __SANITIZER_TASK_VM_INFO_COUNT; int err = task_info(mach_task_self(), TASK_VM_INFO, (int *)&vm_info, &count); if (err == 0) { return vm_info.max_address - 1; Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h Wed Jul 19 19:41:41 2017 (r321238) @@ -13,7 +13,7 @@ #ifndef SANITIZER_PLATFORM_H #define SANITIZER_PLATFORM_H -#if !defined(__linux__) && !defined(__FreeBSD__) && \ +#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \ !defined(__APPLE__) && !defined(_WIN32) # error "This operating system is not supported" #endif @@ -30,6 +30,12 @@ # define SANITIZER_FREEBSD 0 #endif +#if defined(__NetBSD__) +# define SANITIZER_NETBSD 1 +#else +# define SANITIZER_NETBSD 0 +#endif + #if defined(__APPLE__) # define SANITIZER_MAC 1 # include @@ -79,7 +85,8 @@ # define SANITIZER_ANDROID 0 #endif -#define SANITIZER_POSIX (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC) +#define SANITIZER_POSIX \ + (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_NETBSD) #if __LP64__ || defined(_WIN64) # define SANITIZER_WORDSIZE 64 Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h Wed Jul 19 19:41:41 2017 (r321238) @@ -49,6 +49,12 @@ # define SI_FREEBSD 0 #endif +#if SANITIZER_NETBSD +# define SI_NETBSD 1 +#else +# define SI_NETBSD 0 +#endif + #if SANITIZER_LINUX # define SI_LINUX 1 #else @@ -109,9 +115,9 @@ // memmem on Darwin doesn't exist on 10.6 // FIXME: enable memmem on Windows. #define SANITIZER_INTERCEPT_MEMMEM \ - SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7 + (SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7) #define SANITIZER_INTERCEPT_MEMCHR 1 -#define SANITIZER_INTERCEPT_MEMRCHR SI_FREEBSD || SI_LINUX +#define SANITIZER_INTERCEPT_MEMRCHR (SI_FREEBSD || SI_LINUX || SI_NETBSD) #define SANITIZER_INTERCEPT_READ SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PREAD SI_NOT_WINDOWS @@ -127,7 +133,8 @@ #define SANITIZER_INTERCEPT_READV SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_WRITEV SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_PREADV SI_FREEBSD || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_PREADV \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PWRITEV SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PREADV64 SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PWRITEV64 SI_LINUX_NOT_ANDROID @@ -142,7 +149,7 @@ #ifndef SANITIZER_INTERCEPT_PRINTF # define SANITIZER_INTERCEPT_PRINTF SI_NOT_WINDOWS -# define SANITIZER_INTERCEPT_PRINTF_L SI_FREEBSD +# define SANITIZER_INTERCEPT_PRINTF_L (SI_FREEBSD || SI_NETBSD) # define SANITIZER_INTERCEPT_ISOC99_PRINTF SI_LINUX_NOT_ANDROID #endif @@ -151,13 +158,14 @@ #define SANITIZER_INTERCEPT_GETPWNAM_AND_FRIENDS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GETPWNAM_R_AND_FRIENDS \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_GETPWENT \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_FGETPWENT SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_GETPWENT_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_SETPWENT SI_MAC || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_CLOCK_GETTIME SI_FREEBSD || SI_LINUX +#define SANITIZER_INTERCEPT_GETPWENT_R \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_SETPWENT (SI_MAC || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_CLOCK_GETTIME (SI_FREEBSD || SI_NETBSD || SI_LINUX) #define SANITIZER_INTERCEPT_GETITIMER SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_TIME SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GLOB SI_LINUX_NOT_ANDROID @@ -168,10 +176,11 @@ #define SANITIZER_INTERCEPT_GETNAMEINFO SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GETSOCKNAME SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GETHOSTBYNAME SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_GETHOSTBYNAME_R SI_FREEBSD || SI_LINUX -#define SANITIZER_INTERCEPT_GETHOSTBYNAME2_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_GETHOSTBYADDR_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_GETHOSTENT_R SI_FREEBSD || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_GETHOSTBYNAME_R (SI_FREEBSD || SI_LINUX) +#define SANITIZER_INTERCEPT_GETHOSTBYNAME2_R \ + (SI_FREEBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_GETHOSTBYADDR_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_GETHOSTENT_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_GETSOCKOPT SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ACCEPT SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ACCEPT4 SI_LINUX_NOT_ANDROID @@ -197,63 +206,67 @@ #define SANITIZER_INTERCEPT_GET_CURRENT_DIR_NAME SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_STRTOIMAX SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_MBSTOWCS SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_MBSNRTOWCS SI_MAC || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_MBSNRTOWCS (SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_WCSTOMBS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_WCSNRTOMBS \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_WCRTOMB \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_TCGETATTR SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_REALPATH SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_CANONICALIZE_FILE_NAME SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_CONFSTR \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SCHED_GETAFFINITY SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SCHED_GETPARAM SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_STRERROR SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_STRERROR_R SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_XPG_STRERROR_R SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SCANDIR \ - SI_FREEBSD || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SCANDIR64 SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_GETGROUPS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_POLL SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PPOLL SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_WORDEXP \ - SI_FREEBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SIGWAIT SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_SIGWAITINFO SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SIGTIMEDWAIT SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SIGSETOPS \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SIGPENDING SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_SIGPROCMASK SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_BACKTRACE SI_FREEBSD || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_BACKTRACE \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_GETMNTENT SI_LINUX #define SANITIZER_INTERCEPT_GETMNTENT_R SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_STATFS SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_STATFS \ + (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_STATFS64 \ - (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_STATVFS SI_FREEBSD || SI_LINUX_NOT_ANDROID + ((SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_STATVFS \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_STATVFS64 SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_INITGROUPS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ETHER_NTOA_ATON SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ETHER_HOST \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_ETHER_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_SHMCTL \ - ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && SANITIZER_WORDSIZE == 64) + (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_SHMCTL \ + (SI_NETBSD || ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \ + SANITIZER_WORDSIZE == 64)) // NOLINT #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETINHERITSCHED \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETAFFINITY_NP SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPSHARED SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETTYPE SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPROTOCOL \ - SI_MAC || SI_LINUX_NOT_ANDROID + (SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPRIOCEILING \ - SI_MAC || SI_LINUX_NOT_ANDROID + (SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST_NP SI_LINUX_NOT_ANDROID *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Wed Jul 19 19:43:13 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2D98D7CF89 for ; Wed, 19 Jul 2017 19:43:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5CAA3696B6; Wed, 19 Jul 2017 19:43:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6JJhCQe004797; Wed, 19 Jul 2017 19:43:12 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6JJhBSu004780; Wed, 19 Jul 2017 19:43:11 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707191943.v6JJhBSu004780@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 19 Jul 2017 19:43:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321239 - in projects/clang500-import: bin/dd/tests bin/sh contrib/bmake contrib/bmake/mk contrib/elftoolchain/readelf etc/defaults etc/mtree etc/rc.d lib/libsysdecode lib/libthr/thread... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang500-import: bin/dd/tests bin/sh contrib/bmake contrib/bmake/mk contrib/elftoolchain/readelf etc/defaults etc/mtree etc/rc.d lib/libsysdecode lib/libthr/thread lib/libutil/tests sbin/p... X-SVN-Commit-Revision: 321239 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Jul 2017 19:43:13 -0000 Author: dim Date: Wed Jul 19 19:43:10 2017 New Revision: 321239 URL: https://svnweb.freebsd.org/changeset/base/321239 Log: Merge ^/head r320994 through r321238. Added: projects/clang500-import/sbin/pfctl/tests/ - copied from r321238, head/sbin/pfctl/tests/ projects/clang500-import/tests/sys/aio/lio_test.c - copied unchanged from r321238, head/tests/sys/aio/lio_test.c Modified: projects/clang500-import/bin/dd/tests/Makefile projects/clang500-import/bin/sh/options.c projects/clang500-import/contrib/bmake/ChangeLog projects/clang500-import/contrib/bmake/Makefile projects/clang500-import/contrib/bmake/bmake.1 projects/clang500-import/contrib/bmake/bmake.cat1 projects/clang500-import/contrib/bmake/buf.h projects/clang500-import/contrib/bmake/dir.h projects/clang500-import/contrib/bmake/hash.h projects/clang500-import/contrib/bmake/main.c projects/clang500-import/contrib/bmake/make.1 projects/clang500-import/contrib/bmake/meta.c projects/clang500-import/contrib/bmake/mk/ChangeLog projects/clang500-import/contrib/bmake/mk/dirdeps.mk projects/clang500-import/contrib/bmake/mk/install-mk projects/clang500-import/contrib/bmake/mk/lib.mk projects/clang500-import/contrib/bmake/mk/meta.stage.mk projects/clang500-import/contrib/bmake/mk/meta.sys.mk projects/clang500-import/contrib/bmake/mk/meta2deps.py projects/clang500-import/contrib/bmake/mk/own.mk projects/clang500-import/contrib/bmake/sprite.h projects/clang500-import/contrib/elftoolchain/readelf/readelf.c projects/clang500-import/etc/defaults/rc.conf projects/clang500-import/etc/mtree/BSD.tests.dist projects/clang500-import/etc/rc.d/Makefile projects/clang500-import/etc/rc.d/ipfw_netflow projects/clang500-import/lib/libsysdecode/mkioctls projects/clang500-import/lib/libthr/thread/thr_barrier.c projects/clang500-import/lib/libutil/tests/Makefile projects/clang500-import/sbin/pfctl/Makefile projects/clang500-import/sbin/savecore/savecore.c projects/clang500-import/share/man/man5/rc.conf.5 projects/clang500-import/share/mk/bsd.test.mk projects/clang500-import/sys/amd64/amd64/pmap.c projects/clang500-import/sys/arm/allwinner/a10_ehci.c projects/clang500-import/sys/arm64/arm64/vfp.c projects/clang500-import/sys/arm64/include/pcb.h projects/clang500-import/sys/arm64/include/vfp.h projects/clang500-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c projects/clang500-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c projects/clang500-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/clang500-import/sys/dev/bxe/bxe.c projects/clang500-import/sys/dev/bxe/bxe.h projects/clang500-import/sys/dev/cxgbe/adapter.h projects/clang500-import/sys/dev/cxgbe/common/common.h projects/clang500-import/sys/dev/cxgbe/common/t4_hw.c projects/clang500-import/sys/dev/cxgbe/t4_ioctl.h projects/clang500-import/sys/dev/cxgbe/t4_main.c projects/clang500-import/sys/dev/cxgbe/tom/t4_cpl_io.c projects/clang500-import/sys/dev/iwm/if_iwm_scan.c projects/clang500-import/sys/dev/mpr/mpr.c projects/clang500-import/sys/dev/mps/mps.c projects/clang500-import/sys/dev/qlnx/qlnxe/ecore_hw.h projects/clang500-import/sys/dev/qlnx/qlnxe/qlnx_ioctl.c projects/clang500-import/sys/dev/qlnx/qlnxe/qlnx_os.c projects/clang500-import/sys/dev/qlxgbe/ql_def.h projects/clang500-import/sys/dev/qlxgbe/ql_hw.c projects/clang500-import/sys/dev/qlxgbe/ql_hw.h projects/clang500-import/sys/dev/qlxgbe/ql_os.c projects/clang500-import/sys/fs/nfs/nfs_commonsubs.c projects/clang500-import/sys/fs/nfsserver/nfs_nfsdport.c projects/clang500-import/sys/kern/kern_proc.c projects/clang500-import/sys/kern/kern_shutdown.c projects/clang500-import/sys/kern/subr_blist.c projects/clang500-import/sys/kern/subr_clock.c projects/clang500-import/sys/kern/subr_sbuf.c projects/clang500-import/sys/kern/sys_socket.c projects/clang500-import/sys/modules/qlnx/Makefile projects/clang500-import/sys/modules/qlnx/qlnxe/Makefile projects/clang500-import/sys/netinet/sctp_asconf.c projects/clang500-import/sys/netinet/sctp_auth.c projects/clang500-import/sys/netinet/sctp_indata.c projects/clang500-import/sys/netinet/sctp_output.c projects/clang500-import/sys/netinet/sctp_output.h projects/clang500-import/sys/netinet/sctp_pcb.c projects/clang500-import/sys/netinet/sctp_usrreq.c projects/clang500-import/sys/netinet/sctputil.c projects/clang500-import/sys/netinet6/sctp6_usrreq.c projects/clang500-import/sys/ufs/ffs/ffs_alloc.c projects/clang500-import/sys/vm/swap_pager.c projects/clang500-import/sys/vm/swap_pager.h projects/clang500-import/sys/vm/vm_map.c projects/clang500-import/targets/pseudo/tests/Makefile.depend projects/clang500-import/tests/sys/aio/Makefile projects/clang500-import/tests/sys/aio/aio_test.c projects/clang500-import/tests/sys/kern/coredump_phnum_test.sh projects/clang500-import/usr.bin/bmake/Makefile projects/clang500-import/usr.bin/diff/diffdir.c projects/clang500-import/usr.bin/diff/diffreg.c projects/clang500-import/usr.bin/diff/tests/Makefile projects/clang500-import/usr.bin/diff/tests/diff_test.sh projects/clang500-import/usr.bin/getconf/progenv.gperf projects/clang500-import/usr.sbin/bsdinstall/scripts/auto projects/clang500-import/usr.sbin/bsdinstall/scripts/checksum projects/clang500-import/usr.sbin/bsdinstall/scripts/keymap projects/clang500-import/usr.sbin/bsdinstall/scripts/mount projects/clang500-import/usr.sbin/bsdinstall/scripts/netconfig_ipv4 projects/clang500-import/usr.sbin/bsdinstall/scripts/netconfig_ipv6 projects/clang500-import/usr.sbin/bsdinstall/scripts/umount projects/clang500-import/usr.sbin/crashinfo/crashinfo.sh projects/clang500-import/usr.sbin/cron/cron/cron.c projects/clang500-import/usr.sbin/ctladm/ctladm.8 projects/clang500-import/usr.sbin/cxgbetool/cxgbetool.c Directory Properties: projects/clang500-import/ (props changed) projects/clang500-import/contrib/bmake/ (props changed) projects/clang500-import/contrib/elftoolchain/ (props changed) projects/clang500-import/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/clang500-import/bin/dd/tests/Makefile ============================================================================== --- projects/clang500-import/bin/dd/tests/Makefile Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/bin/dd/tests/Makefile Wed Jul 19 19:43:10 2017 (r321239) @@ -1,9 +1,5 @@ # $FreeBSD$ -.include - -.PATH: ${.CURDIR}/.. - ATF_TESTS_SH= dd2_test NETBSD_ATF_TESTS_SH= dd_test Modified: projects/clang500-import/bin/sh/options.c ============================================================================== --- projects/clang500-import/bin/sh/options.c Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/bin/sh/options.c Wed Jul 19 19:43:10 2017 (r321239) @@ -191,16 +191,11 @@ options(int cmdline) while ((c = *p++) != '\0') { if (c == 'c' && cmdline) { char *q; -#ifdef NOHACK /* removing this code allows sh -ce 'foo' for compat */ - if (*p == '\0') -#endif - q = *argptr++; + + q = *argptr++; if (q == NULL || minusc != NULL) error("Bad -c option"); minusc = q; -#ifdef NOHACK - break; -#endif } else if (c == 'o') { minus_o(*argptr, val); if (*argptr) Modified: projects/clang500-import/contrib/bmake/ChangeLog ============================================================================== --- projects/clang500-import/contrib/bmake/ChangeLog Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/ChangeLog Wed Jul 19 19:43:10 2017 (r321239) @@ -1,3 +1,16 @@ +2017-07-11 Simon J. Gerraty + + * Makefile (_MAKE_VERSION): 20170711 + forgot to update after merge on 20170708 ;-) + o main.c: refactor to reduce size of main function. + add -v option to always fully expand values. + o meta.c: ensure command output in meta file has ending newline + even when filemon not being used. + When matching ${.MAKE.META.IGNORE_PATTERNS} do not use + pathname via ':L' since any ':' in pathname breaks that. + Instead set a '${.p.}' to pathname in the target context and + use that. + 2017-05-10 Simon J. Gerraty * Makefile (_MAKE_VERSION): 20170510 Modified: projects/clang500-import/contrib/bmake/Makefile ============================================================================== --- projects/clang500-import/contrib/bmake/Makefile Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/Makefile Wed Jul 19 19:43:10 2017 (r321239) @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.92 2017/05/10 22:29:04 sjg Exp $ +# $Id: Makefile,v 1.94 2017/07/15 18:22:14 sjg Exp $ # Base version on src date -_MAKE_VERSION= 20170510 +_MAKE_VERSION= 20170711 PROG= bmake Modified: projects/clang500-import/contrib/bmake/bmake.1 ============================================================================== --- projects/clang500-import/contrib/bmake/bmake.1 Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/bmake.1 Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.266 2017/02/01 18:39:27 sjg Exp $ +.\" $NetBSD: make.1,v 1.271 2017/07/03 21:34:20 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd February 1, 2017 +.Dd June 22, 2017 .Dt BMAKE 1 .Os .Sh NAME @@ -48,6 +48,7 @@ .Op Fl m Ar directory .Op Fl T Ar file .Op Fl V Ar variable +.Op Fl v Ar variable .Op Ar variable=value .Op Ar target ... .Sh DESCRIPTION @@ -206,7 +207,9 @@ Print debugging information about target list maintena .It Ar V Force the .Fl V -option to print raw values of variables. +option to print raw values of variables, overriding the default behavior +set via +.Va .MAKE.EXPAND_VARIABLES . .It Ar v Print debugging information about variable assignment. .It Ar x @@ -334,20 +337,39 @@ for each job started and completed. Rather than re-building a target as specified in the makefile, create it or update its modification time to make it appear up-to-date. .It Fl V Ar variable -Print -.Nm Ns 's -idea of the value of -.Ar variable , -in the global context. +Print the value of +.Ar variable . Do not build any targets. Multiple instances of this option may be specified; the variables will be printed one per line, with a blank line for each null or undefined variable. +The value printed is extracted from the global context after all +makefiles have been read. +By default, the raw variable contents (which may +include additional unexpanded variable references) are shown. If .Ar variable contains a .Ql \&$ -then the value will be expanded before printing. +then the value will be recursively expanded to its complete resultant +text before printing. +The expanded value will also be printed if +.Va .MAKE.EXPAND_VARIABLES +is set to true and +the +.Fl dV +option has not been used to override it. +Note that loop-local and target-local variables, as well as values +taken temporarily by global variables during makefile processing, are +not accessible via this option. +The +.Fl dv +debug mode can be used to see these at the cost of generating +substantial extraneous output. +.It Fl v Ar variable +Like +.Fl V +but the variable is always expanded to its complete value. .It Fl W Treat any warnings during makefile parsing as errors. .It Fl w @@ -657,7 +679,7 @@ The seven local variables are as follows: .Bl -tag -width ".ARCHIVE" -offset indent .It Va .ALLSRC The list of all sources for this target; also known as -.Ql Va \&\*[Gt] . +.Ql Va \&> . .It Va .ARCHIVE The name of the archive file; also known as .Ql Va \&! . @@ -666,7 +688,7 @@ In suffix-transformation rules, the name/path of the s target is to be transformed (the .Dq implied source); also known as -.Ql Va \&\*[Lt] . +.Ql Va \&< . It is not defined in explicit rules. .It Va .MEMBER The name of the archive member; also known as @@ -691,9 +713,9 @@ in archive member rules. .El .Pp The shorter forms -.Ql ( Va \*[Gt] , +.Ql ( Va > , .Ql Va \&! , -.Ql Va \*[Lt] , +.Ql Va < , .Ql Va % , .Ql Va \&? , .Ql Va * , @@ -776,6 +798,10 @@ from which generated dependencies are read. A boolean that controls the default behavior of the .Fl V option. +If true, variable values printed with +.Fl V +are fully expanded; if false, the raw variable contents (which may +include additional unexpanded variable references) are shown. .It Va .MAKE.EXPORTED The list of variables exported by .Nm . @@ -1287,7 +1313,7 @@ it is anchored at the end of each word. Inside .Ar new_string , an ampersand -.Pq Ql \*[Am] +.Pq Ql & is replaced by .Ar old_string (without any @@ -1751,7 +1777,7 @@ may be any one of the following: .Bl -tag -width "Cm XX" .It Cm \&|\&| Logical OR. -.It Cm \&\*[Am]\*[Am] +.It Cm \&&& Logical .Tn AND ; of higher precedence than @@ -1768,7 +1794,7 @@ The boolean operator may be used to logically negate an entire conditional. It is of higher precedence than -.Ql Ic \&\*[Am]\*[Am] . +.Ql Ic \&&& . .Pp The value of .Ar expression Modified: projects/clang500-import/contrib/bmake/bmake.cat1 ============================================================================== --- projects/clang500-import/contrib/bmake/bmake.cat1 Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/bmake.cat1 Wed Jul 19 19:43:10 2017 (r321239) @@ -6,8 +6,8 @@ NNAAMMEE SSYYNNOOPPSSIISS bbmmaakkee [--BBeeiikkNNnnqqrrssttWWwwXX] [--CC _d_i_r_e_c_t_o_r_y] [--DD _v_a_r_i_a_b_l_e] [--dd _f_l_a_g_s] [--ff _m_a_k_e_f_i_l_e] [--II _d_i_r_e_c_t_o_r_y] [--JJ _p_r_i_v_a_t_e] [--jj _m_a_x___j_o_b_s] - [--mm _d_i_r_e_c_t_o_r_y] [--TT _f_i_l_e] [--VV _v_a_r_i_a_b_l_e] [_v_a_r_i_a_b_l_e_=_v_a_l_u_e] - [_t_a_r_g_e_t _._._.] + [--mm _d_i_r_e_c_t_o_r_y] [--TT _f_i_l_e] [--VV _v_a_r_i_a_b_l_e] [--vv _v_a_r_i_a_b_l_e] + [_v_a_r_i_a_b_l_e_=_v_a_l_u_e] [_t_a_r_g_e_t _._._.] DDEESSCCRRIIPPTTIIOONN bbmmaakkee is a program designed to simplify the maintenance of other pro- @@ -118,7 +118,9 @@ DDEESSCCRRIIPPTTIIOONN _t Print debugging information about target list mainte- nance. - _V Force the --VV option to print raw values of variables. + _V Force the --VV option to print raw values of variables, + overriding the default behavior set via + _._M_A_K_E_._E_X_P_A_N_D___V_A_R_I_A_B_L_E_S. _v Print debugging information about variable assignment. @@ -209,13 +211,26 @@ DDEESSCCRRIIPPTTIIOONN to-date. --VV _v_a_r_i_a_b_l_e - Print bbmmaakkee's idea of the value of _v_a_r_i_a_b_l_e, in the global con- - text. Do not build any targets. Multiple instances of this - option may be specified; the variables will be printed one per - line, with a blank line for each null or undefined variable. If - _v_a_r_i_a_b_l_e contains a `$' then the value will be expanded before - printing. + Print the value of _v_a_r_i_a_b_l_e. Do not build any targets. Multiple + instances of this option may be specified; the variables will be + printed one per line, with a blank line for each null or unde- + fined variable. The value printed is extracted from the global + context after all makefiles have been read. By default, the raw + variable contents (which may include additional unexpanded vari- + able references) are shown. If _v_a_r_i_a_b_l_e contains a `$' then the + value will be recursively expanded to its complete resultant text + before printing. The expanded value will also be printed if + _._M_A_K_E_._E_X_P_A_N_D___V_A_R_I_A_B_L_E_S is set to true and the --ddVV option has not + been used to override it. Note that loop-local and target-local + variables, as well as values taken temporarily by global vari- + ables during makefile processing, are not accessible via this + option. The --ddvv debug mode can be used to see these at the cost + of generating substantial extraneous output. + --vv _v_a_r_i_a_b_l_e + Like --VV but the variable is always expanded to its complete + value. + --WW Treat any warnings during makefile parsing as errors. --ww Print entering and leaving directory messages, pre and post pro- @@ -488,7 +503,10 @@ VVAARRIIAABBLLEE AASSSSIIGGNNMMEENNT _._M_A_K_E_._E_X_P_A_N_D___V_A_R_I_A_B_L_E_S A boolean that controls the default behavior of the --VV - option. + option. If true, variable values printed with --VV are + fully expanded; if false, the raw variable contents + (which may include additional unexpanded variable refer- + ences) are shown. _._M_A_K_E_._E_X_P_O_R_T_E_D The list of variables exported by bbmmaakkee. @@ -1523,4 +1541,4 @@ BBUUGGSS There is no way of escaping a space character in a filename. -NetBSD 7.1_RC1 February 1, 2017 NetBSD 7.1_RC1 +NetBSD 7.1_RC1 June 22, 2017 NetBSD 7.1_RC1 Modified: projects/clang500-import/contrib/bmake/buf.h ============================================================================== --- projects/clang500-import/contrib/bmake/buf.h Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/buf.h Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -/* $NetBSD: buf.h,v 1.17 2012/04/24 20:26:58 sjg Exp $ */ +/* $NetBSD: buf.h,v 1.19 2017/05/31 22:02:06 maya Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -77,8 +77,8 @@ * Header for users of the buf library. */ -#ifndef _BUF_H -#define _BUF_H +#ifndef MAKE_BUF_H +#define MAKE_BUF_H typedef char Byte; @@ -116,4 +116,4 @@ void Buf_Init(Buffer *, int); Byte *Buf_Destroy(Buffer *, Boolean); Byte *Buf_DestroyCompact(Buffer *); -#endif /* _BUF_H */ +#endif /* MAKE_BUF_H */ Modified: projects/clang500-import/contrib/bmake/dir.h ============================================================================== --- projects/clang500-import/contrib/bmake/dir.h Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/dir.h Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -/* $NetBSD: dir.h,v 1.15 2012/04/07 18:29:08 christos Exp $ */ +/* $NetBSD: dir.h,v 1.18 2017/05/31 22:02:06 maya Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -75,8 +75,8 @@ /* dir.h -- */ -#ifndef _DIR -#define _DIR +#ifndef MAKE_DIR_H +#define MAKE_DIR_H typedef struct Path { char *name; /* Name of directory */ @@ -105,4 +105,4 @@ void Dir_PrintPath(Lst); void Dir_Destroy(void *); void * Dir_CopyDir(void *); -#endif /* _DIR */ +#endif /* MAKE_DIR_H */ Modified: projects/clang500-import/contrib/bmake/hash.h ============================================================================== --- projects/clang500-import/contrib/bmake/hash.h Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/hash.h Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -/* $NetBSD: hash.h,v 1.11 2016/06/07 00:40:00 sjg Exp $ */ +/* $NetBSD: hash.h,v 1.12 2017/05/31 21:07:03 maya Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -78,8 +78,8 @@ * which maintains hash tables. */ -#ifndef _HASH -#define _HASH +#ifndef _HASH_H +#define _HASH_H /* * The following defines one entry in the hash table. @@ -146,4 +146,4 @@ void Hash_DeleteEntry(Hash_Table *, Hash_Entry *); Hash_Entry *Hash_EnumFirst(Hash_Table *, Hash_Search *); Hash_Entry *Hash_EnumNext(Hash_Search *); -#endif /* _HASH */ +#endif /* _HASH_H */ Modified: projects/clang500-import/contrib/bmake/main.c ============================================================================== --- projects/clang500-import/contrib/bmake/main.c Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/main.c Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.265 2017/05/10 22:26:14 sjg Exp $ */ +/* $NetBSD: main.c,v 1.272 2017/06/19 19:58:24 christos Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.265 2017/05/10 22:26:14 sjg Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.272 2017/06/19 19:58:24 christos Exp $"; #else #include #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.265 2017/05/10 22:26:14 sjg Exp $"); +__RCSID("$NetBSD: main.c,v 1.272 2017/06/19 19:58:24 christos Exp $"); #endif #endif /* not lint */ #endif @@ -159,7 +159,9 @@ Boolean deleteOnError; /* .DELETE_ON_ERROR: set */ static Boolean noBuiltins; /* -r flag */ static Lst makefiles; /* ordered list of makefiles to read */ -static Boolean printVars; /* print value of one or more vars */ +static int printVars; /* -[vV] argument */ +#define COMPAT_VARS 1 +#define EXPAND_VARS 2 static Lst variables; /* list of variables to print */ int maxJobs; /* -j argument */ static int maxJobTokens; /* -j argument */ @@ -421,7 +423,7 @@ MainParseArgs(int argc, char **argv) Boolean inOption, dashDash = FALSE; char found_path[MAXPATHLEN + 1]; /* for searching for sys.mk */ -#define OPTFLAGS "BC:D:I:J:NST:V:WXd:ef:ij:km:nqrstw" +#define OPTFLAGS "BC:D:I:J:NST:V:WXd:ef:ij:km:nqrstv:w" /* Can't actually use getopt(3) because rescanning is not portable */ getopt_def = OPTFLAGS; @@ -546,8 +548,9 @@ rearg: Var_Append(MAKEFLAGS, argvalue, VAR_GLOBAL); break; case 'V': + case 'v': if (argvalue == NULL) goto noarg; - printVars = TRUE; + printVars = c == 'v' ? EXPAND_VARS : COMPAT_VARS; (void)Lst_AtEnd(variables, argvalue); Var_Append(MAKEFLAGS, "-V", VAR_GLOBAL); Var_Append(MAKEFLAGS, argvalue, VAR_GLOBAL); @@ -877,6 +880,89 @@ MakeMode(const char *mode) free(mp); } +static void +doPrintVars(void) +{ + LstNode ln; + Boolean expandVars; + + if (printVars == EXPAND_VARS) + expandVars = TRUE; + else if (debugVflag) + expandVars = FALSE; + else + expandVars = getBoolean(".MAKE.EXPAND_VARIABLES", FALSE); + + for (ln = Lst_First(variables); ln != NULL; + ln = Lst_Succ(ln)) { + char *var = (char *)Lst_Datum(ln); + char *value; + char *p1; + + if (strchr(var, '$')) { + value = p1 = Var_Subst(NULL, var, VAR_GLOBAL, + VARF_WANTRES); + } else if (expandVars) { + char tmp[128]; + int len = snprintf(tmp, sizeof(tmp), "${%s}", var); + + if (len >= (int)sizeof(tmp)) + Fatal("%s: variable name too big: %s", + progname, var); + value = p1 = Var_Subst(NULL, tmp, VAR_GLOBAL, + VARF_WANTRES); + } else { + value = Var_Value(var, VAR_GLOBAL, &p1); + } + printf("%s\n", value ? value : ""); + free(p1); + } +} + +static Boolean +runTargets(void) +{ + Lst targs; /* target nodes to create -- passed to Make_Init */ + Boolean outOfDate; /* FALSE if all targets up to date */ + + /* + * Have now read the entire graph and need to make a list of + * targets to create. If none was given on the command line, + * we consult the parsing module to find the main target(s) + * to create. + */ + if (Lst_IsEmpty(create)) + targs = Parse_MainName(); + else + targs = Targ_FindList(create, TARG_CREATE); + + if (!compatMake) { + /* + * Initialize job module before traversing the graph + * now that any .BEGIN and .END targets have been read. + * This is done only if the -q flag wasn't given + * (to prevent the .BEGIN from being executed should + * it exist). + */ + if (!queryFlag) { + Job_Init(); + jobsRunning = TRUE; + } + + /* Traverse the graph, checking on all the targets */ + outOfDate = Make_Run(targs); + } else { + /* + * Compat_Init will take care of creating all the + * targets as well as initializing the module. + */ + Compat_Run(targs); + outOfDate = FALSE; + } + Lst_Destroy(targs, NULL); + return outOfDate; +} + /*- * main -- * The main function, for obvious reasons. Initializes variables @@ -897,8 +983,7 @@ MakeMode(const char *mode) int main(int argc, char **argv) { - Lst targs; /* target nodes to create -- passed to Make_Init */ - Boolean outOfDate = FALSE; /* FALSE if all targets up to date */ + Boolean outOfDate; /* FALSE if all targets up to date */ struct stat sb, sa; char *p1, *path; char mdpath[MAXPATHLEN]; @@ -1027,7 +1112,7 @@ main(int argc, char **argv) create = Lst_Init(FALSE); makefiles = Lst_Init(FALSE); - printVars = FALSE; + printVars = 0; debugVflag = FALSE; variables = Lst_Init(FALSE); beSilent = FALSE; /* Print commands as executed */ @@ -1406,73 +1491,13 @@ main(int argc, char **argv) /* print the values of any variables requested by the user */ if (printVars) { - LstNode ln; - Boolean expandVars; - - if (debugVflag) - expandVars = FALSE; - else - expandVars = getBoolean(".MAKE.EXPAND_VARIABLES", FALSE); - for (ln = Lst_First(variables); ln != NULL; - ln = Lst_Succ(ln)) { - char *var = (char *)Lst_Datum(ln); - char *value; - - if (strchr(var, '$')) { - value = p1 = Var_Subst(NULL, var, VAR_GLOBAL, - VARF_WANTRES); - } else if (expandVars) { - char tmp[128]; - - if (snprintf(tmp, sizeof(tmp), "${%s}", var) >= (int)(sizeof(tmp))) - Fatal("%s: variable name too big: %s", - progname, var); - value = p1 = Var_Subst(NULL, tmp, VAR_GLOBAL, - VARF_WANTRES); - } else { - value = Var_Value(var, VAR_GLOBAL, &p1); - } - printf("%s\n", value ? value : ""); - free(p1); - } + doPrintVars(); + outOfDate = FALSE; } else { - /* - * Have now read the entire graph and need to make a list of - * targets to create. If none was given on the command line, - * we consult the parsing module to find the main target(s) - * to create. - */ - if (Lst_IsEmpty(create)) - targs = Parse_MainName(); - else - targs = Targ_FindList(create, TARG_CREATE); - - if (!compatMake) { - /* - * Initialize job module before traversing the graph - * now that any .BEGIN and .END targets have been read. - * This is done only if the -q flag wasn't given - * (to prevent the .BEGIN from being executed should - * it exist). - */ - if (!queryFlag) { - Job_Init(); - jobsRunning = TRUE; - } - - /* Traverse the graph, checking on all the targets */ - outOfDate = Make_Run(targs); - } else { - /* - * Compat_Init will take care of creating all the - * targets as well as initializing the module. - */ - Compat_Run(targs); - } + outOfDate = runTargets(); } #ifdef CLEANUP - Lst_Destroy(targs, NULL); Lst_Destroy(variables, NULL); Lst_Destroy(makefiles, NULL); Lst_Destroy(create, (FreeProc *)free); @@ -1931,7 +1956,8 @@ usage(void) "usage: %s [-BeikNnqrstWwX] \n\ [-C directory] [-D variable] [-d flags] [-f makefile]\n\ [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file]\n\ - [-V variable] [variable=value] [target ...]\n", progname); + [-V variable] [-v variable] [variable=value] [target ...]\n", + progname); exit(2); } Modified: projects/clang500-import/contrib/bmake/make.1 ============================================================================== --- projects/clang500-import/contrib/bmake/make.1 Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/make.1 Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.266 2017/02/01 18:39:27 sjg Exp $ +.\" $NetBSD: make.1,v 1.271 2017/07/03 21:34:20 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd February 1, 2017 +.Dd June 22, 2017 .Dt MAKE 1 .Os .Sh NAME @@ -48,6 +48,7 @@ .Op Fl m Ar directory .Op Fl T Ar file .Op Fl V Ar variable +.Op Fl v Ar variable .Op Ar variable=value .Op Ar target ... .Sh DESCRIPTION @@ -206,7 +207,9 @@ Print debugging information about target list maintena .It Ar V Force the .Fl V -option to print raw values of variables. +option to print raw values of variables, overriding the default behavior +set via +.Va .MAKE.EXPAND_VARIABLES . .It Ar v Print debugging information about variable assignment. .It Ar x @@ -334,20 +337,39 @@ for each job started and completed. Rather than re-building a target as specified in the makefile, create it or update its modification time to make it appear up-to-date. .It Fl V Ar variable -Print -.Nm Ns 's -idea of the value of -.Ar variable , -in the global context. +Print the value of +.Ar variable . Do not build any targets. Multiple instances of this option may be specified; the variables will be printed one per line, with a blank line for each null or undefined variable. +The value printed is extracted from the global context after all +makefiles have been read. +By default, the raw variable contents (which may +include additional unexpanded variable references) are shown. If .Ar variable contains a .Ql \&$ -then the value will be expanded before printing. +then the value will be recursively expanded to its complete resultant +text before printing. +The expanded value will also be printed if +.Va .MAKE.EXPAND_VARIABLES +is set to true and +the +.Fl dV +option has not been used to override it. +Note that loop-local and target-local variables, as well as values +taken temporarily by global variables during makefile processing, are +not accessible via this option. +The +.Fl dv +debug mode can be used to see these at the cost of generating +substantial extraneous output. +.It Fl v Ar variable +Like +.Fl V +but the variable is always expanded to its complete value. .It Fl W Treat any warnings during makefile parsing as errors. .It Fl w @@ -657,7 +679,7 @@ The seven local variables are as follows: .Bl -tag -width ".ARCHIVE" -offset indent .It Va .ALLSRC The list of all sources for this target; also known as -.Ql Va \&\*[Gt] . +.Ql Va \&> . .It Va .ARCHIVE The name of the archive file; also known as .Ql Va \&! . @@ -666,7 +688,7 @@ In suffix-transformation rules, the name/path of the s target is to be transformed (the .Dq implied source); also known as -.Ql Va \&\*[Lt] . +.Ql Va \&< . It is not defined in explicit rules. .It Va .MEMBER The name of the archive member; also known as @@ -691,9 +713,9 @@ in archive member rules. .El .Pp The shorter forms -.Ql ( Va \*[Gt] , +.Ql ( Va > , .Ql Va \&! , -.Ql Va \*[Lt] , +.Ql Va < , .Ql Va % , .Ql Va \&? , .Ql Va * , @@ -787,6 +809,10 @@ from which generated dependencies are read. A boolean that controls the default behavior of the .Fl V option. +If true, variable values printed with +.Fl V +are fully expanded; if false, the raw variable contents (which may +include additional unexpanded variable references) are shown. .It Va .MAKE.EXPORTED The list of variables exported by .Nm . @@ -1298,7 +1324,7 @@ it is anchored at the end of each word. Inside .Ar new_string , an ampersand -.Pq Ql \*[Am] +.Pq Ql & is replaced by .Ar old_string (without any @@ -1762,7 +1788,7 @@ may be any one of the following: .Bl -tag -width "Cm XX" .It Cm \&|\&| Logical OR. -.It Cm \&\*[Am]\*[Am] +.It Cm \&&& Logical .Tn AND ; of higher precedence than @@ -1779,7 +1805,7 @@ The boolean operator may be used to logically negate an entire conditional. It is of higher precedence than -.Ql Ic \&\*[Am]\*[Am] . +.Ql Ic \&&& . .Pp The value of .Ar expression Modified: projects/clang500-import/contrib/bmake/meta.c ============================================================================== --- projects/clang500-import/contrib/bmake/meta.c Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/meta.c Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -/* $NetBSD: meta.c,v 1.67 2016/08/17 15:52:42 sjg Exp $ */ +/* $NetBSD: meta.c,v 1.68 2017/07/09 04:54:00 sjg Exp $ */ /* * Implement 'meta' mode. @@ -727,7 +727,7 @@ meta_job_error(Job *job, GNode *gn, int flags, int sta pbm = &Mybm; } if (pbm->mfp != NULL) { - fprintf(pbm->mfp, "*** Error code %d%s\n", + fprintf(pbm->mfp, "\n*** Error code %d%s\n", status, (flags & JOB_IGNERR) ? "(ignored)" : ""); @@ -782,13 +782,13 @@ int meta_cmd_finish(void *pbmp) { int error = 0; -#ifdef USE_FILEMON BuildMon *pbm = pbmp; int x; if (!pbm) pbm = &Mybm; +#ifdef USE_FILEMON if (pbm->filemon_fd >= 0) { if (close(pbm->filemon_fd) < 0) error = errno; @@ -796,8 +796,9 @@ meta_cmd_finish(void *pbmp) if (error == 0 && x != 0) error = x; pbm->filemon_fd = pbm->mon_fd = -1; - } + } else #endif + fprintf(pbm->mfp, "\n"); /* ensure end with newline */ return error; } @@ -861,6 +862,8 @@ fgetLine(char **bufp, size_t *szp, int o, FILE *fp) newsz = ROUNDUP((fs.st_size / 2), BUFSIZ); if (newsz <= bufsz) newsz = ROUNDUP(fs.st_size, BUFSIZ); + if (newsz <= bufsz) + return x; /* truncated */ if (DEBUG(META)) fprintf(debug_file, "growing buffer %u -> %u\n", (unsigned)bufsz, (unsigned)newsz); @@ -948,10 +951,10 @@ meta_ignore(GNode *gn, const char *p) if (metaIgnorePatterns) { char *pm; - snprintf(fname, sizeof(fname), - "${%s:@m@${%s:L:M$m}@}", - MAKE_META_IGNORE_PATTERNS, p); - pm = Var_Subst(NULL, fname, gn, VARF_WANTRES); + Var_Set(".p.", p, gn, 0); + pm = Var_Subst(NULL, + "${" MAKE_META_IGNORE_PATTERNS ":@m@${.p.:M$m}@}", + gn, VARF_WANTRES); if (*pm) { #ifdef DEBUG_META_MODE if (DEBUG(META)) Modified: projects/clang500-import/contrib/bmake/mk/ChangeLog ============================================================================== --- projects/clang500-import/contrib/bmake/mk/ChangeLog Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/mk/ChangeLog Wed Jul 19 19:43:10 2017 (r321239) @@ -1,3 +1,22 @@ +2017-06-30 Simon J. Gerraty + + * install-mk (MK_VERSION): 20170630 + + * meta.stage.mk: avoid triggering stage_* targets with nothing to do. + +2017-05-23 Simon J. Gerraty + + * meta2deps.py: take special care of '..' + +2017-05-15 Simon J. Gerraty + + * install-mk (MK_VERSION): 20170515 + + * dirdeps.mk (DEP_EXPORT_VARS): on rare occasions it is + useful/necessary for a Makefile.depend file to export some knobs. + This is complicated when we are doing DIRDEPS_CACHE, so we will + handle export of any variables listed in DEP_EXPORT_VARS. + 2017-05-08 Simon J. Gerraty * install-mk (MK_VERSION): 20170505 Modified: projects/clang500-import/contrib/bmake/mk/dirdeps.mk ============================================================================== --- projects/clang500-import/contrib/bmake/mk/dirdeps.mk Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/mk/dirdeps.mk Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -# $Id: dirdeps.mk,v 1.88 2017/04/24 20:34:59 sjg Exp $ +# $Id: dirdeps.mk,v 1.89 2017/05/17 17:41:47 sjg Exp $ # Copyright (c) 2010-2013, Juniper Networks, Inc. # All rights reserved. @@ -636,6 +636,11 @@ _build_all_dirs := ${_build_all_dirs:O:u} x!= { echo; echo '\# ${DEP_RELDIR}.${DEP_TARGET_SPEC}'; \ echo 'dirdeps: ${_build_all_dirs:${M_oneperline}}'; echo; } >&3; echo x!= { ${_build_all_dirs:@x@${target($x):?:echo '$x: _DIRDEP_USE';}@} echo; } >&3; echo +.if !empty(DEP_EXPORT_VARS) +# Discouraged, but there are always exceptions. +# Handle it here rather than explain how. +x!= { echo; ${DEP_EXPORT_VARS:@v@echo '$v=${$v}';@} echo '.export ${DEP_EXPORT_VARS}'; echo; } >&3; echo +.endif .else # this makes it all happen dirdeps: ${_build_all_dirs} @@ -644,6 +649,11 @@ ${_build_all_dirs}: _DIRDEP_USE .if ${_debug_reldir} .info ${DEP_RELDIR}.${DEP_TARGET_SPEC}: needs: ${_build_dirs} +.endif + +.if !empty(DEP_EXPORT_VARS) +.export ${DEP_EXPORT_VARS} +DEP_EXPORT_VARS= .endif # this builds the dependency graph Modified: projects/clang500-import/contrib/bmake/mk/install-mk ============================================================================== --- projects/clang500-import/contrib/bmake/mk/install-mk Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/mk/install-mk Wed Jul 19 19:43:10 2017 (r321239) @@ -55,7 +55,7 @@ # Simon J. Gerraty # RCSid: -# $Id: install-mk,v 1.145 2017/05/09 04:05:32 sjg Exp $ +# $Id: install-mk,v 1.148 2017/06/30 23:46:15 sjg Exp $ # # @(#) Copyright (c) 1994 Simon J. Gerraty # @@ -70,7 +70,7 @@ # sjg@crufty.net # -MK_VERSION=20170505 +MK_VERSION=20170630 OWNER= GROUP= MODE=444 Modified: projects/clang500-import/contrib/bmake/mk/lib.mk ============================================================================== --- projects/clang500-import/contrib/bmake/mk/lib.mk Wed Jul 19 19:41:41 2017 (r321238) +++ projects/clang500-import/contrib/bmake/mk/lib.mk Wed Jul 19 19:43:10 2017 (r321239) @@ -1,4 +1,4 @@ -# $Id: lib.mk,v 1.61 2017/05/06 17:30:09 sjg Exp $ +# $Id: lib.mk,v 1.62 2017/06/11 03:24:04 sjg Exp $ .if !target(__${.PARSEFILE}__) __${.PARSEFILE}__: @@ -268,8 +268,7 @@ ${CXX_SUFFIXES:%=%.o}: ${COMPILE.cc} ${.IMPSRC} .S.o .s.o: - @echo ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} - @${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} + ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} .if (${LD_X} == "") .c.po: @@ -282,21 +281,18 @@ ${CXX_SUFFIXES:%=%.po}: ${COMPILE.S} ${PICFLAG} ${CC_PIC} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} .else .c.po: - @echo ${COMPILE.c} ${CC_PG} ${PROFFLAGS} ${.IMPSRC} -o ${.TARGET} - @${COMPILE.c} ${CC_PG} ${PROFFLAGS} ${.IMPSRC} -o ${.TARGET}.o + ${COMPILE.c} ${CC_PG} ${PROFFLAGS} ${.IMPSRC} -o ${.TARGET}.o @${LD} ${LD_X} ${LD_r} ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o ${CXX_SUFFIXES:%=%.po}: - @echo ${COMPILE.cc} ${CXX_PG} ${PROFFLAGS} ${.IMPSRC} -o ${.TARGET} - @${COMPILE.cc} ${CXX_PG} ${.IMPSRC} -o ${.TARGET}.o - @${LD} ${LD_X} ${LD_r} ${.TARGET}.o -o ${.TARGET} + ${COMPILE.cc} ${CXX_PG} ${.IMPSRC} -o ${.TARGET}.o + ${LD} ${LD_X} ${LD_r} ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o .S${PICO} .s${PICO}: - @echo ${COMPILE.S} ${PICFLAG} ${CC_PIC} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} - @${COMPILE.S} ${PICFLAG} ${CC_PIC} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o - @${LD} ${LD_x} ${LD_r} ${.TARGET}.o -o ${.TARGET} + ${COMPILE.S} ${PICFLAG} ${CC_PIC} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + ${LD} ${LD_x} ${LD_r} ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o .endif @@ -312,21 +308,18 @@ ${CXX_SUFFIXES:%=%${PICO}}: .else .c${PICO}: - @echo ${COMPILE.c} ${PICFLAG} ${CC_PIC} ${.IMPSRC} -o ${.TARGET} - @${COMPILE.c} ${PICFLAG} ${CC_PIC} ${.IMPSRC} -o ${.TARGET}.o - @${LD} ${LD_x} ${LD_r} ${.TARGET}.o -o ${.TARGET} + ${COMPILE.c} ${PICFLAG} ${CC_PIC} ${.IMPSRC} -o ${.TARGET}.o + ${LD} ${LD_x} ${LD_r} ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o ${CXX_SUFFIXES:%=%${PICO}}: - @echo ${COMPILE.cc} ${PICFLAG} ${CC_PIC} ${.IMPSRC} -o ${.TARGET} - @${COMPILE.cc} ${PICFLAG} ${CC_PIC} ${.IMPSRC} -o ${.TARGET}.o - @${LD} ${LD_x} ${LD_r} ${.TARGET}.o -o ${.TARGET} + ${COMPILE.cc} ${PICFLAG} ${CC_PIC} ${.IMPSRC} -o ${.TARGET}.o + ${LD} ${LD_x} ${LD_r} ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o .S.po .s.po: - @echo ${COMPILE.S} ${PROFFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} - @${COMPILE.S} ${PROFFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o - @${LD} ${LD_X} ${LD_r} ${.TARGET}.o -o ${.TARGET} + ${COMPILE.S} ${PROFFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + ${LD} ${LD_X} ${LD_r} ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o .endif @@ -418,7 +411,7 @@ lib${LIB}.${LD_so}:: lib${LIB}.a .else # MK_LIBTOOL=yes lib${LIB}.a:: ${OBJS} - @echo building standard ${LIB} library + @${META_NOECHO} building standard ${LIB} library @rm -f ${.TARGET} @${AR} ${AR_cq} ${.TARGET} ${LD_objs} ${RANLIB} ${.TARGET} @@ -426,7 +419,7 @@ lib${LIB}.a:: ${OBJS} POBJS+= ${OBJS:.o=.po} .NOPATH: ${POBJS} lib${LIB}_p.a:: ${POBJS} - @echo building profiled ${LIB} library + @${META_NOECHO} building profiled ${LIB} library @rm -f ${.TARGET} *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Thu Jul 20 20:37:26 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A595BC7FDA3 for ; Thu, 20 Jul 2017 20:37:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D54D77BCD; Thu, 20 Jul 2017 20:37:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6KKbP6G019099; Thu, 20 Jul 2017 20:37:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6KKbNqf019079; Thu, 20 Jul 2017 20:37:23 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707202037.v6KKbNqf019079@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 20 Jul 2017 20:37:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321307 - in projects/clang500-import: bin/date lib/libc/sys lib/librt share/misc sys/amd64/include sys/boot/efi/boot1 sys/conf sys/dev/e1000 sys/dev/hyperv/storvsc sys/net sys/netinet ... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang500-import: bin/date lib/libc/sys lib/librt share/misc sys/amd64/include sys/boot/efi/boot1 sys/conf sys/dev/e1000 sys/dev/hyperv/storvsc sys/net sys/netinet sys/sys sys/vm usr.bin/pr... X-SVN-Commit-Revision: 321307 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Jul 2017 20:37:26 -0000 Author: dim Date: Thu Jul 20 20:37:23 2017 New Revision: 321307 URL: https://svnweb.freebsd.org/changeset/base/321307 Log: Merge ^/head r321239 through r321306. Modified: projects/clang500-import/bin/date/date.c projects/clang500-import/lib/libc/sys/Symbol.map projects/clang500-import/lib/librt/Symbol.map projects/clang500-import/lib/librt/aio.c projects/clang500-import/share/misc/committers-src.dot projects/clang500-import/sys/amd64/include/efi.h projects/clang500-import/sys/boot/efi/boot1/zfs_module.c projects/clang500-import/sys/conf/kern.pre.mk projects/clang500-import/sys/conf/kmod.mk projects/clang500-import/sys/dev/e1000/if_em.c projects/clang500-import/sys/dev/e1000/if_em.h projects/clang500-import/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c projects/clang500-import/sys/net/iflib.c projects/clang500-import/sys/netinet/sctp_indata.c projects/clang500-import/sys/netinet/sctp_os_bsd.h projects/clang500-import/sys/netinet/sctp_ss_functions.c projects/clang500-import/sys/sys/_pctrie.h projects/clang500-import/sys/sys/efi.h projects/clang500-import/sys/sys/pctrie.h projects/clang500-import/sys/vm/_vm_radix.h projects/clang500-import/sys/vm/vm_object.c projects/clang500-import/sys/vm/vm_radix.c projects/clang500-import/sys/vm/vm_radix.h projects/clang500-import/usr.bin/procstat/procstat.c projects/clang500-import/usr.bin/truss/syscalls.c projects/clang500-import/usr.sbin/acpi/acpidump/acpi.c projects/clang500-import/usr.sbin/cron/cron/cron.8 projects/clang500-import/usr.sbin/newsyslog/tests/legacy_test.sh projects/clang500-import/usr.sbin/nfsd/nfsv4.4 Directory Properties: projects/clang500-import/ (props changed) Modified: projects/clang500-import/bin/date/date.c ============================================================================== --- projects/clang500-import/bin/date/date.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/bin/date/date.c Thu Jul 20 20:37:23 2017 (r321307) @@ -85,7 +85,7 @@ main(int argc, char *argv[]) int set_timezone; struct vary *v; const struct vary *badv; - struct tm lt; + struct tm *lt; struct stat sb; v = NULL; @@ -174,8 +174,10 @@ main(int argc, char *argv[]) if (*argv && **argv == '+') format = *argv + 1; - lt = *localtime(&tval); - badv = vary_apply(v, <); + lt = localtime(&tval); + if (lt == NULL) + errx(1, "invalid time"); + badv = vary_apply(v, lt); if (badv) { fprintf(stderr, "%s: Cannot apply date adjustment\n", badv->arg); @@ -191,7 +193,7 @@ main(int argc, char *argv[]) */ setlocale(LC_TIME, "C"); - (void)strftime(buf, sizeof(buf), format, <); + (void)strftime(buf, sizeof(buf), format, lt); (void)printf("%s\n", buf); if (fflush(stdout)) err(1, "stdout"); @@ -210,6 +212,8 @@ setthetime(const char *fmt, const char *p, int jflag, int century; lt = localtime(&tval); + if (lt == NULL) + errx(1, "invalid time"); lt->tm_isdst = -1; /* divine correct DST */ if (fmt != NULL) { Modified: projects/clang500-import/lib/libc/sys/Symbol.map ============================================================================== --- projects/clang500-import/lib/libc/sys/Symbol.map Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/lib/libc/sys/Symbol.map Thu Jul 20 20:37:23 2017 (r321307) @@ -469,21 +469,13 @@ FBSDprivate_1.0 { __sys_acct; _adjtime; __sys_adjtime; - _aio_cancel; __sys_aio_cancel; - _aio_error; __sys_aio_error; - _aio_fsync; __sys_aio_fsync; - _aio_read; __sys_aio_read; - _aio_return; __sys_aio_return; - _aio_suspend; __sys_aio_suspend; - _aio_waitcomplete; __sys_aio_waitcomplete; - _aio_write; __sys_aio_write; _audit; __sys_audit; @@ -727,7 +719,6 @@ FBSDprivate_1.0 { __sys_lgetfh; _link; __sys_link; - _lio_listio; __sys_lio_listio; _listen; __sys_listen; Modified: projects/clang500-import/lib/librt/Symbol.map ============================================================================== --- projects/clang500-import/lib/librt/Symbol.map Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/lib/librt/Symbol.map Thu Jul 20 20:37:23 2017 (r321307) @@ -31,16 +31,6 @@ FBSD_1.5 { }; FBSDprivate_1.0 { - _aio_read; - _aio_write; - _aio_return; - _aio_waitcomplete; - _aio_fsync; - __aio_read; - __aio_write; - __aio_return; - __aio_waitcomplete; - __aio_fsync; _mq_open; _mq_close; _mq_notify; Modified: projects/clang500-import/lib/librt/aio.c ============================================================================== --- projects/clang500-import/lib/librt/aio.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/lib/librt/aio.c Thu Jul 20 20:37:23 2017 (r321307) @@ -39,15 +39,10 @@ #include "sigev_thread.h" #include "un-namespace.h" -__weak_reference(__aio_read, _aio_read); __weak_reference(__aio_read, aio_read); -__weak_reference(__aio_write, _aio_write); __weak_reference(__aio_write, aio_write); -__weak_reference(__aio_return, _aio_return); __weak_reference(__aio_return, aio_return); -__weak_reference(__aio_waitcomplete, _aio_waitcomplete); __weak_reference(__aio_waitcomplete, aio_waitcomplete); -__weak_reference(__aio_fsync, _aio_fsync); __weak_reference(__aio_fsync, aio_fsync); typedef void (*aio_func)(union sigval val, struct aiocb *iocb); Modified: projects/clang500-import/share/misc/committers-src.dot ============================================================================== --- projects/clang500-import/share/misc/committers-src.dot Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/share/misc/committers-src.dot Thu Jul 20 20:37:23 2017 (r321307) @@ -244,6 +244,7 @@ melifaro [label="Alexander V. Chernikov\nmelifaro@Free mizhka [label="Michael Zhilin\nmizhka@FreeBSD.org\n2016/07/19"] mjacob [label="Matt Jacob\nmjacob@FreeBSD.org\n1997/08/13"] mjg [label="Mateusz Guzik\nmjg@FreeBSD.org\n2012/06/04"] +mjoras [label="Matt Joras\nmjoras@FreeBSD.org\n2017/07/12"] mlaier [label="Max Laier\nmlaier@FreeBSD.org\n2004/02/10"] mmel [label="Michal Meloun\nmmel@FreeBSD.org\n2015/11/01"] monthadar [label="Monthadar Al Jaberi\nmonthadar@FreeBSD.org\n2012/04/02"] @@ -720,6 +721,7 @@ rrs -> jchandra rrs -> tuexen rstone -> markj +rstone -> mjoras ru -> ceri ru -> cjc Modified: projects/clang500-import/sys/amd64/include/efi.h ============================================================================== --- projects/clang500-import/sys/amd64/include/efi.h Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/amd64/include/efi.h Thu Jul 20 20:37:23 2017 (r321307) @@ -36,8 +36,14 @@ * XXX: from gcc 6.2 manual: * Note, the ms_abi attribute for Microsoft Windows 64-bit targets * currently requires the -maccumulate-outgoing-args option. + * + * Avoid EFIABI_ATTR declarations for compilers that don't support it. + * GCC support began in version 4.4. */ +#if defined(__clang__) || defined(__GNUC__) && \ + (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4) #define EFIABI_ATTR __attribute__((ms_abi)) +#endif #ifdef _KERNEL struct uuid; Modified: projects/clang500-import/sys/boot/efi/boot1/zfs_module.c ============================================================================== --- projects/clang500-import/sys/boot/efi/boot1/zfs_module.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/boot/efi/boot1/zfs_module.c Thu Jul 20 20:37:23 2017 (r321307) @@ -182,8 +182,8 @@ load(const char *filepath, dev_info_t *devinfo, void * if ((status = bs->AllocatePool(EfiLoaderData, (UINTN)st.st_size, &buf)) != EFI_SUCCESS) { - printf("Failed to allocate load buffer %zd for pool '%s' for '%s' " - "(%lu)\n", st.st_size, spa->spa_name, filepath, EFI_ERROR_CODE(status)); + printf("Failed to allocate load buffer %jd for pool '%s' for '%s' " + "(%lu)\n", (intmax_t)st.st_size, spa->spa_name, filepath, EFI_ERROR_CODE(status)); return (EFI_INVALID_PARAMETER); } Modified: projects/clang500-import/sys/conf/kern.pre.mk ============================================================================== --- projects/clang500-import/sys/conf/kern.pre.mk Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/conf/kern.pre.mk Thu Jul 20 20:37:23 2017 (r321307) @@ -216,6 +216,7 @@ MKMODULESENV+= MAKEOBJDIRPREFIX=${.OBJDIR}/modules KMO MKMODULESENV+= MACHINE_CPUARCH=${MACHINE_CPUARCH} MKMODULESENV+= MACHINE=${MACHINE} MACHINE_ARCH=${MACHINE_ARCH} MKMODULESENV+= MODULES_EXTRA="${MODULES_EXTRA}" WITHOUT_MODULES="${WITHOUT_MODULES}" +MKMODULESENV+= ARCH_FLAGS="${ARCH_FLAGS}" .if (${KERN_IDENT} == LINT) MKMODULESENV+= ALL_MODULES=LINT .endif @@ -250,6 +251,7 @@ EMBEDFS_ARCH.${MACHINE_ARCH}!= sed -n '/OUTPUT_ARCH/s/ EMBEDFS_FORMAT.arm?= elf32-littlearm EMBEDFS_FORMAT.armv6?= elf32-littlearm +EMBEDFS_FORMAT.aarch64?= elf64-littleaarch64 EMBEDFS_FORMAT.mips?= elf32-tradbigmips EMBEDFS_FORMAT.mipsel?= elf32-tradlittlemips EMBEDFS_FORMAT.mips64?= elf64-tradbigmips Modified: projects/clang500-import/sys/conf/kmod.mk ============================================================================== --- projects/clang500-import/sys/conf/kmod.mk Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/conf/kmod.mk Thu Jul 20 20:37:23 2017 (r321307) @@ -366,7 +366,7 @@ ${_src}: .endif # Respect configuration-specific C flags. -CFLAGS+= ${CONF_CFLAGS} +CFLAGS+= ${ARCH_FLAGS} ${CONF_CFLAGS} .if !empty(SRCS:Mvnode_if.c) CLEANFILES+= vnode_if.c Modified: projects/clang500-import/sys/dev/e1000/if_em.c ============================================================================== --- projects/clang500-import/sys/dev/e1000/if_em.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/dev/e1000/if_em.c Thu Jul 20 20:37:23 2017 (r321307) @@ -203,7 +203,7 @@ static pci_vendor_info_t igb_vendor_info_array[] = PVID(0x8086, E1000_DEV_ID_I210_COPPER_OEM1, "Intel(R) PRO/1000 PCI-Express Network Driver"), PVID(0x8086, E1000_DEV_ID_I210_COPPER_FLASHLESS, "Intel(R) PRO/1000 PCI-Express Network Driver"), PVID(0x8086, E1000_DEV_ID_I210_SERDES_FLASHLESS, "Intel(R) PRO/1000 PCI-Express Network Driver"), - PVID(0x8086, E1000_DEV_ID_I210_FIBER, "Intel(R) PRO/1000 PCI-Express Network Driver"), + PVID(0x8086, E1000_DEV_ID_I210_FIBER, "Intel(R) PRO/1000 PCI-Express Network Driver"), PVID(0x8086, E1000_DEV_ID_I210_SERDES, "Intel(R) PRO/1000 PCI-Express Network Driver"), PVID(0x8086, E1000_DEV_ID_I210_SGMII, "Intel(R) PRO/1000 PCI-Express Network Driver"), PVID(0x8086, E1000_DEV_ID_I211_COPPER, "Intel(R) PRO/1000 PCI-Express Network Driver"), @@ -231,8 +231,8 @@ static int em_if_rx_queues_alloc(if_ctx_t ctx, caddr_t static void em_if_queues_free(if_ctx_t ctx); static uint64_t em_if_get_counter(if_ctx_t, ift_counter); -static void em_if_init(if_ctx_t ctx); -static void em_if_stop(if_ctx_t ctx); +static void em_if_init(if_ctx_t ctx); +static void em_if_stop(if_ctx_t ctx); static void em_if_media_status(if_ctx_t, struct ifmediareq *); static int em_if_media_change(if_ctx_t ctx); static int em_if_mtu_set(if_ctx_t ctx, uint32_t mtu); @@ -357,11 +357,11 @@ static device_method_t em_if_methods[] = { DEVMETHOD(ifdi_detach, em_if_detach), DEVMETHOD(ifdi_shutdown, em_if_shutdown), DEVMETHOD(ifdi_suspend, em_if_suspend), - DEVMETHOD(ifdi_resume, em_if_resume), + DEVMETHOD(ifdi_resume, em_if_resume), DEVMETHOD(ifdi_init, em_if_init), DEVMETHOD(ifdi_stop, em_if_stop), DEVMETHOD(ifdi_msix_intr_assign, em_if_msix_intr_assign), - DEVMETHOD(ifdi_intr_enable, em_if_enable_intr), + DEVMETHOD(ifdi_intr_enable, em_if_enable_intr), DEVMETHOD(ifdi_intr_disable, em_if_disable_intr), DEVMETHOD(ifdi_tx_queues_alloc, em_if_tx_queues_alloc), DEVMETHOD(ifdi_rx_queues_alloc, em_if_rx_queues_alloc), @@ -1025,7 +1025,7 @@ em_if_attach_post(if_ctx_t ctx) /* Non-AMT based hardware can now take control from firmware */ if (adapter->has_manage && !adapter->has_amt) em_get_hw_control(adapter); - + INIT_DEBUGOUT("em_if_attach_post: end"); return (error); @@ -1401,7 +1401,7 @@ em_msix_link(void *arg) u32 reg_icr; ++adapter->link_irq; - MPASS(adapter->hw.back != NULL); + MPASS(adapter->hw.back != NULL); reg_icr = E1000_READ_REG(&adapter->hw, E1000_ICR); if (reg_icr & E1000_ICR_RXO) @@ -1691,8 +1691,9 @@ em_if_update_admin_status(if_ctx_t ctx) struct e1000_hw *hw = &adapter->hw; struct ifnet *ifp = iflib_get_ifp(ctx); device_t dev = iflib_get_dev(ctx); - u32 link_check = 0; + u32 link_check, thstat, ctrl; + link_check = thstat = ctrl = 0; /* Get the cached link value or read phy for real */ switch (hw->phy.media_type) { case e1000_media_type_copper: @@ -1717,11 +1718,21 @@ em_if_update_admin_status(if_ctx_t ctx) e1000_check_for_link(hw); link_check = adapter->hw.mac.serdes_has_link; break; - default: + /* VF device is type_unknown */ case e1000_media_type_unknown: + e1000_check_for_link(hw); + link_check = !hw->mac.get_link_status; + /* FALLTHROUGH */ + default: break; } + /* Check for thermal downshift or shutdown */ + if (hw->mac.type == e1000_i350) { + thstat = E1000_READ_REG(hw, E1000_THSTAT); + ctrl = E1000_READ_REG(hw, E1000_CTRL_EXT); + } + /* Now check for a transition */ if (link_check && (adapter->link_active == 0)) { e1000_get_speed_and_duplex(hw, &adapter->link_speed, @@ -1743,6 +1754,21 @@ em_if_update_admin_status(if_ctx_t ctx) adapter->link_active = 1; adapter->smartspeed = 0; if_setbaudrate(ifp, adapter->link_speed * 1000000); + if ((ctrl & E1000_CTRL_EXT_LINK_MODE_GMII) && + (thstat & E1000_THSTAT_LINK_THROTTLE)) + device_printf(dev, "Link: thermal downshift\n"); + /* Delay Link Up for Phy update */ + if (((hw->mac.type == e1000_i210) || + (hw->mac.type == e1000_i211)) && + (hw->phy.id == I210_I_PHY_ID)) + msec_delay(I210_LINK_DELAY); + /* Reset if the media type changed. */ + if ((hw->dev_spec._82575.media_changed) && + (adapter->hw.mac.type >= igb_mac_min)) { + hw->dev_spec._82575.media_changed = false; + adapter->flags |= IGB_MEDIA_RESET; + em_reset(ctx); + } iflib_link_state_change(ctx, LINK_STATE_UP, ifp->if_baudrate); printf("Link state changed to up\n"); } else if (!link_check && (adapter->link_active == 1)) { @@ -2210,7 +2236,115 @@ lem_smartspeed(struct adapter *adapter) adapter->smartspeed = 0; } +/********************************************************************* + * + * Initialize the DMA Coalescing feature + * + **********************************************************************/ +static void +igb_init_dmac(struct adapter *adapter, u32 pba) +{ + device_t dev = adapter->dev; + struct e1000_hw *hw = &adapter->hw; + u32 dmac, reg = ~E1000_DMACR_DMAC_EN; + u16 hwm; + u16 max_frame_size; + if (hw->mac.type == e1000_i211) + return; + + max_frame_size = adapter->shared->isc_max_frame_size; + if (hw->mac.type > e1000_82580) { + + if (adapter->dmac == 0) { /* Disabling it */ + E1000_WRITE_REG(hw, E1000_DMACR, reg); + return; + } else + device_printf(dev, "DMA Coalescing enabled\n"); + + /* Set starting threshold */ + E1000_WRITE_REG(hw, E1000_DMCTXTH, 0); + + hwm = 64 * pba - max_frame_size / 16; + if (hwm < 64 * (pba - 6)) + hwm = 64 * (pba - 6); + reg = E1000_READ_REG(hw, E1000_FCRTC); + reg &= ~E1000_FCRTC_RTH_COAL_MASK; + reg |= ((hwm << E1000_FCRTC_RTH_COAL_SHIFT) + & E1000_FCRTC_RTH_COAL_MASK); + E1000_WRITE_REG(hw, E1000_FCRTC, reg); + + + dmac = pba - max_frame_size / 512; + if (dmac < pba - 10) + dmac = pba - 10; + reg = E1000_READ_REG(hw, E1000_DMACR); + reg &= ~E1000_DMACR_DMACTHR_MASK; + reg = ((dmac << E1000_DMACR_DMACTHR_SHIFT) + & E1000_DMACR_DMACTHR_MASK); + + /* transition to L0x or L1 if available..*/ + reg |= (E1000_DMACR_DMAC_EN | E1000_DMACR_DMAC_LX_MASK); + + /* Check if status is 2.5Gb backplane connection + * before configuration of watchdog timer, which is + * in msec values in 12.8usec intervals + * watchdog timer= msec values in 32usec intervals + * for non 2.5Gb connection + */ + if (hw->mac.type == e1000_i354) { + int status = E1000_READ_REG(hw, E1000_STATUS); + if ((status & E1000_STATUS_2P5_SKU) && + (!(status & E1000_STATUS_2P5_SKU_OVER))) + reg |= ((adapter->dmac * 5) >> 6); + else + reg |= (adapter->dmac >> 5); + } else { + reg |= (adapter->dmac >> 5); + } + + E1000_WRITE_REG(hw, E1000_DMACR, reg); + + E1000_WRITE_REG(hw, E1000_DMCRTRH, 0); + + /* Set the interval before transition */ + reg = E1000_READ_REG(hw, E1000_DMCTLX); + if (hw->mac.type == e1000_i350) + reg |= IGB_DMCTLX_DCFLUSH_DIS; + /* + ** in 2.5Gb connection, TTLX unit is 0.4 usec + ** which is 0x4*2 = 0xA. But delay is still 4 usec + */ + if (hw->mac.type == e1000_i354) { + int status = E1000_READ_REG(hw, E1000_STATUS); + if ((status & E1000_STATUS_2P5_SKU) && + (!(status & E1000_STATUS_2P5_SKU_OVER))) + reg |= 0xA; + else + reg |= 0x4; + } else { + reg |= 0x4; + } + + E1000_WRITE_REG(hw, E1000_DMCTLX, reg); + + /* free space in tx packet buffer to wake from DMA coal */ + E1000_WRITE_REG(hw, E1000_DMCTXTH, (IGB_TXPBSIZE - + (2 * max_frame_size)) >> 6); + + /* make low power state decision controlled by DMA coal */ + reg = E1000_READ_REG(hw, E1000_PCIEMISC); + reg &= ~E1000_PCIEMISC_LX_DECISION; + E1000_WRITE_REG(hw, E1000_PCIEMISC, reg); + + } else if (hw->mac.type == e1000_82580) { + u32 reg = E1000_READ_REG(hw, E1000_PCIEMISC); + E1000_WRITE_REG(hw, E1000_PCIEMISC, + reg & ~E1000_PCIEMISC_LX_DECISION); + E1000_WRITE_REG(hw, E1000_DMACR, 0); + } +} + static void em_reset(if_ctx_t ctx) { @@ -2222,6 +2356,8 @@ em_reset(if_ctx_t ctx) u32 pba; INIT_DEBUGOUT("em_reset: begin"); + /* Let the firmware know the OS is in control */ + em_get_hw_control(adapter); /* Set up smart power down as default off on newer adapters. */ if (!em_smart_pwr_down && (hw->mac.type == e1000_82571 || @@ -2400,15 +2536,15 @@ em_reset(if_ctx_t ctx) case e1000_vfadapt_i350: /* 16-byte granularity */ hw->fc.low_water = hw->fc.high_water - 16; - break; - case e1000_ich9lan: - case e1000_ich10lan: + break; + case e1000_ich9lan: + case e1000_ich10lan: if (if_getmtu(ifp) > ETHERMTU) { hw->fc.high_water = 0x2800; hw->fc.low_water = hw->fc.high_water - 8; break; } - /* else fall thru */ + /* FALLTHROUGH */ default: if (hw->mac.type == e1000_80003es2lan) hw->fc.pause_time = 0xFFFF; @@ -2417,13 +2553,24 @@ em_reset(if_ctx_t ctx) /* Issue a global reset */ e1000_reset_hw(hw); - E1000_WRITE_REG(hw, E1000_WUFC, 0); - em_disable_aspm(adapter); + if (adapter->hw.mac.type >= igb_mac_min) { + E1000_WRITE_REG(hw, E1000_WUC, 0); + } else { + E1000_WRITE_REG(hw, E1000_WUFC, 0); + em_disable_aspm(adapter); + } + if (adapter->flags & IGB_MEDIA_RESET) { + e1000_setup_init_funcs(hw, TRUE); + e1000_get_bus_info(hw); + adapter->flags &= ~IGB_MEDIA_RESET; + } /* and a re-init */ if (e1000_init_hw(hw) < 0) { device_printf(dev, "Hardware Initialization Failed\n"); return; } + if (adapter->hw.mac.type >= igb_mac_min) + igb_init_dmac(adapter, pba); E1000_WRITE_REG(hw, E1000_VET, ETHERTYPE_VLAN); e1000_get_phy_info(hw); @@ -2464,7 +2611,7 @@ em_initialize_rss_mapping(struct adapter *adapter) for (i = 0; i < 32; ++i) E1000_WRITE_REG(hw, E1000_RETA(i), reta); - E1000_WRITE_REG(hw, E1000_MRQC, E1000_MRQC_RSS_ENABLE_2Q | + E1000_WRITE_REG(hw, E1000_MRQC, E1000_MRQC_RSS_ENABLE_2Q | E1000_MRQC_RSS_FIELD_IPV4_TCP | E1000_MRQC_RSS_FIELD_IPV4 | E1000_MRQC_RSS_FIELD_IPV6_TCP_EX | @@ -2551,8 +2698,7 @@ igb_initialize_rss_mapping(struct adapter *adapter) arc4rand(&rss_key, sizeof(rss_key), 0); #endif for (i = 0; i < 10; i++) - E1000_WRITE_REG_ARRAY(hw, - E1000_RSSRK(0), i, rss_key[i]); + E1000_WRITE_REG_ARRAY(hw, E1000_RSSRK(0), i, rss_key[i]); /* * Configure the RSS fields to hash upon. @@ -2619,7 +2765,7 @@ em_setup_interface(if_ctx_t ctx) /* Enable only WOL MAGIC by default */ if (adapter->wol) { if_setcapenablebit(ifp, IFCAP_WOL_MAGIC, - IFCAP_WOL_MCAST| IFCAP_WOL_UCAST); + IFCAP_WOL_MCAST| IFCAP_WOL_UCAST); } else { if_setcapenablebit(ifp, 0, IFCAP_WOL_MAGIC | IFCAP_WOL_MCAST| IFCAP_WOL_UCAST); @@ -2691,7 +2837,7 @@ em_if_tx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, u txr->tx_base = (struct e1000_tx_desc *)vaddrs[i*ntxqs]; txr->tx_paddr = paddrs[i*ntxqs]; } - + device_printf(iflib_get_dev(ctx), "allocated for %d tx_queues\n", adapter->tx_num_queues); return (0); fail: @@ -2716,7 +2862,7 @@ em_if_rx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, u adapter->rx_num_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { device_printf(iflib_get_dev(ctx), "Unable to allocate queue memory\n"); error = ENOMEM; - goto fail; + goto fail; } for (i = 0, que = adapter->rx_queues; i < nrxqsets; i++, que++) { @@ -2756,7 +2902,7 @@ em_if_queues_free(if_ctx_t ctx) txr->tx_rsq = NULL; } free(adapter->tx_queues, M_DEVBUF); - adapter->tx_queues = NULL; + adapter->tx_queues = NULL; } if (rx_que != NULL) { @@ -3031,7 +3177,7 @@ em_initialize_receive_unit(if_ctx_t ctx) u64 bus_addr = rxr->rx_paddr; #if 0 u32 rdt = adapter->rx_num_queues -1; /* default */ -#endif +#endif E1000_WRITE_REG(hw, E1000_RDLEN(i), scctx->isc_nrxd[0] * sizeof(union e1000_rx_desc_extended)); @@ -3086,7 +3232,7 @@ em_initialize_receive_unit(if_ctx_t ctx) srrctl |= 2048 >> E1000_SRRCTL_BSIZEPKT_SHIFT; rctl |= E1000_RCTL_SZ_2048; } - + /* * If TX flow control is disabled and there's >1 queue defined, * enable DROP. @@ -3124,7 +3270,7 @@ em_initialize_receive_unit(if_ctx_t ctx) rxdctl &= 0xFFF00000; rxdctl |= IGB_RX_PTHRESH; rxdctl |= IGB_RX_HTHRESH << 8; - rxdctl |= IGB_RX_WTHRESH << 16; + rxdctl |= IGB_RX_WTHRESH << 16; E1000_WRITE_REG(hw, E1000_RXDCTL(i), rxdctl); } } else if (adapter->hw.mac.type >= e1000_pch2lan) { @@ -3253,7 +3399,7 @@ em_if_disable_intr(if_ctx_t ctx) /* * Bit of a misnomer, what this really means is * to enable OS management of the system... aka - * to disable special hardware management features + * to disable special hardware management features */ static void em_init_manageability(struct adapter *adapter) @@ -3307,6 +3453,9 @@ em_get_hw_control(struct adapter *adapter) { u32 ctrl_ext, swsm; + if (adapter->vf_ifp) + return; + if (adapter->hw.mac.type == e1000_82573) { swsm = E1000_READ_REG(&adapter->hw, E1000_SWSM); E1000_WRITE_REG(&adapter->hw, E1000_SWSM, @@ -3317,7 +3466,6 @@ em_get_hw_control(struct adapter *adapter) ctrl_ext = E1000_READ_REG(&adapter->hw, E1000_CTRL_EXT); E1000_WRITE_REG(&adapter->hw, E1000_CTRL_EXT, ctrl_ext | E1000_CTRL_EXT_DRV_LOAD); - return; } /* @@ -3637,7 +3785,7 @@ static void em_if_led_func(if_ctx_t ctx, int onoff) { struct adapter *adapter = iflib_get_softc(ctx); - + if (onoff) { e1000_setup_led(&adapter->hw); e1000_led_on(&adapter->hw); @@ -3783,7 +3931,7 @@ static uint64_t em_if_get_counter(if_ctx_t ctx, ift_counter cnt) { struct adapter *adapter = iflib_get_softc(ctx); - struct ifnet *ifp = iflib_get_ifp(ctx); + struct ifnet *ifp = iflib_get_ifp(ctx); switch (cnt) { case IFCOUNTER_COLLISIONS: @@ -3820,7 +3968,7 @@ static void em_add_hw_stats(struct adapter *adapter) { device_t dev = iflib_get_dev(adapter->ctx); - struct em_tx_queue *tx_que = adapter->tx_queues; + struct em_tx_queue *tx_que = adapter->tx_queues; struct em_rx_queue *rx_que = adapter->rx_queues; struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(dev); @@ -4065,7 +4213,7 @@ em_add_hw_stats(struct adapter *adapter) /* Interrupt Stats */ - int_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "interrupts", + int_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "interrupts", CTLFLAG_RD, NULL, "Interrupt Statistics"); int_list = SYSCTL_CHILDREN(int_node); @@ -4242,7 +4390,7 @@ em_set_flowcntl(SYSCTL_HANDLER_ARGS) case e1000_fc_none: adapter->hw.fc.requested_mode = input; adapter->fc = input; - break; + break; default: /* Do nothing */ return (error); @@ -4290,7 +4438,7 @@ em_sysctl_debug_info(SYSCTL_HANDLER_ARGS) if (result == 1) { adapter = (struct adapter *) arg1; em_print_debug_info(adapter); - } + } return (error); } Modified: projects/clang500-import/sys/dev/e1000/if_em.h ============================================================================== --- projects/clang500-import/sys/dev/e1000/if_em.h Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/dev/e1000/if_em.h Thu Jul 20 20:37:23 2017 (r321307) @@ -235,6 +235,27 @@ #define EM_EEPROM_APME 0x400; #define EM_82544_APME 0x0004; + +/* Support AutoMediaDetect for Marvell M88 PHY in i354 */ +#define IGB_MEDIA_RESET (1 << 0) + +/* Define the starting Interrupt rate per Queue */ +#define IGB_INTS_PER_SEC 8000 +#define IGB_DEFAULT_ITR ((1000000/IGB_INTS_PER_SEC) << 2) + +#define IGB_LINK_ITR 2000 +#define I210_LINK_DELAY 1000 + +#define IGB_MAX_SCATTER 40 +#define IGB_VFTA_SIZE 128 +#define IGB_BR_SIZE 4096 /* ring buf size */ +#define IGB_TSO_SIZE (65535 + sizeof(struct ether_vlan_header)) +#define IGB_TSO_SEG_SIZE 4096 /* Max dma segment size */ +#define IGB_TXPBSIZE 20408 +#define IGB_HDR_BUF 128 +#define IGB_PKTTYPE_MASK 0x0000FFF0 +#define IGB_DMCTLX_DCFLUSH_DIS 0x80000000 /* Disable DMA Coalesce Flush */ + /* * Driver state logic for the detection of a hung state * in hardware. Set TX_HUNG whenever a TX packet is used @@ -455,11 +476,11 @@ struct adapter { struct ifmedia *media; int msix; int if_flags; - int min_frame_size; int em_insert_vlan_header; u32 ims; bool in_detach; + u32 flags; /* Task for FAST handling */ struct grouptask link_task; @@ -514,6 +535,7 @@ struct adapter { unsigned long watchdog_events; struct e1000_hw_stats stats; + u16 vf_ifp; }; /******************************************************************************** Modified: projects/clang500-import/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- projects/clang500-import/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Thu Jul 20 20:37:23 2017 (r321307) @@ -2210,6 +2210,23 @@ storvsc_io_done(struct hv_storvsc_request *reqp) resp_buf[3], resp_buf[4]); } /* + * XXX: Hyper-V (since win2012r2) responses inquiry with + * unknown version (0) for GEN-2 DVD device. + * Manually set the version number to SPC3 in order to + * ask CAM to continue probing with "PROBE_REPORT_LUNS". + * see probedone() in scsi_xpt.c + */ + if (SID_TYPE(inq_data) == T_CDROM && + inq_data->version == 0 && + (vmstor_proto_version >= VMSTOR_PROTOCOL_VERSION_WIN8)) { + inq_data->version = SCSI_REV_SPC3; + if (bootverbose) { + xpt_print(ccb->ccb_h.path, + "set version from 0 to %d\n", + inq_data->version); + } + } + /* * XXX: Manually fix the wrong response returned from WS2012 */ if (!is_scsi_valid(inq_data) && @@ -2218,7 +2235,7 @@ storvsc_io_done(struct hv_storvsc_request *reqp) vmstor_proto_version == VMSTOR_PROTOCOL_VERSION_WIN7)) { if (data_len >= 4 && (resp_buf[2] == 0 || resp_buf[3] == 0)) { - resp_buf[2] = 5; // verion=5 means SPC-3 + resp_buf[2] = SCSI_REV_SPC3; resp_buf[3] = 2; // resp fmt must be 2 if (bootverbose) xpt_print(ccb->ccb_h.path, Modified: projects/clang500-import/sys/net/iflib.c ============================================================================== --- projects/clang500-import/sys/net/iflib.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/net/iflib.c Thu Jul 20 20:37:23 2017 (r321307) @@ -1513,8 +1513,8 @@ iflib_txsd_alloc(iflib_txq_t txq) NULL, /* lockfuncarg */ &txq->ift_desc_tag))) { device_printf(dev,"Unable to allocate TX DMA tag: %d\n", err); - device_printf(dev,"maxsize: %zd nsegments: %d maxsegsize: %zd\n", - sctx->isc_tx_maxsize, nsegments, sctx->isc_tx_maxsegsize); + device_printf(dev,"maxsize: %ju nsegments: %d maxsegsize: %ju\n", + (uintmax_t)sctx->isc_tx_maxsize, nsegments, (uintmax_t)sctx->isc_tx_maxsegsize); goto fail; } if ((err = bus_dma_tag_create(bus_get_dma_tag(dev), @@ -2927,6 +2927,14 @@ iflib_busdma_load_mbuf_sg(iflib_txq_t txq, bus_dma_tag m_free(tmp); continue; } + m = m->m_next; + count++; + } while (m != NULL); + if (count > *nsegs) + return (0); + m = *m0; + count = 0; + do { next = (pidx + count) & (ntxd-1); MPASS(ifsd_m[next] == NULL); ifsd_m[next] = m; Modified: projects/clang500-import/sys/netinet/sctp_indata.c ============================================================================== --- projects/clang500-import/sys/netinet/sctp_indata.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/netinet/sctp_indata.c Thu Jul 20 20:37:23 2017 (r321307) @@ -4293,47 +4293,44 @@ again: ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete) (stcb, asoc))) { asoc->state |= SCTP_STATE_PARTIAL_MSG_LEFT; } + if (((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) || + (SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED)) && + (asoc->stream_queue_cnt == 1) && + (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT)) { + struct mbuf *op_err; + + *abort_now = 1; + /* XXX */ + op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, ""); + stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24; + sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED); + return; + } if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) && (asoc->stream_queue_cnt == 0)) { - if (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT) { - /* Need to abort here */ - struct mbuf *op_err; + struct sctp_nets *netp; - abort_out_now: - *abort_now = 1; - /* XXX */ - op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, ""); - stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24; - sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED); - return; + if ((SCTP_GET_STATE(asoc) == SCTP_STATE_OPEN) || + (SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED)) { + SCTP_STAT_DECR_GAUGE32(sctps_currestab); + } + SCTP_SET_STATE(asoc, SCTP_STATE_SHUTDOWN_SENT); + SCTP_CLEAR_SUBSTATE(asoc, SCTP_STATE_SHUTDOWN_PENDING); + sctp_stop_timers_for_shutdown(stcb); + if (asoc->alternate) { + netp = asoc->alternate; } else { - struct sctp_nets *netp; - - if ((SCTP_GET_STATE(asoc) == SCTP_STATE_OPEN) || - (SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED)) { - SCTP_STAT_DECR_GAUGE32(sctps_currestab); - } - SCTP_SET_STATE(asoc, SCTP_STATE_SHUTDOWN_SENT); - SCTP_CLEAR_SUBSTATE(asoc, SCTP_STATE_SHUTDOWN_PENDING); - sctp_stop_timers_for_shutdown(stcb); - if (asoc->alternate) { - netp = asoc->alternate; - } else { - netp = asoc->primary_destination; - } - sctp_send_shutdown(stcb, netp); - sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, - stcb->sctp_ep, stcb, netp); - sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD, - stcb->sctp_ep, stcb, netp); + netp = asoc->primary_destination; } + sctp_send_shutdown(stcb, netp); + sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, + stcb->sctp_ep, stcb, netp); + sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD, + stcb->sctp_ep, stcb, netp); } else if ((SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED) && (asoc->stream_queue_cnt == 0)) { struct sctp_nets *netp; - if (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT) { - goto abort_out_now; - } SCTP_STAT_DECR_GAUGE32(sctps_currestab); SCTP_SET_STATE(asoc, SCTP_STATE_SHUTDOWN_ACK_SENT); SCTP_CLEAR_SUBSTATE(asoc, SCTP_STATE_SHUTDOWN_PENDING); @@ -4989,48 +4986,45 @@ hopeless_peer: ((*asoc->ss_functions.sctp_ss_is_user_msgs_incomplete) (stcb, asoc))) { asoc->state |= SCTP_STATE_PARTIAL_MSG_LEFT; } + if (((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) || + (SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED)) && + (asoc->stream_queue_cnt == 1) && + (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT)) { + struct mbuf *op_err; + + *abort_now = 1; + /* XXX */ + op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, ""); + stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24; + sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED); + return; + } if ((asoc->state & SCTP_STATE_SHUTDOWN_PENDING) && (asoc->stream_queue_cnt == 0)) { - if (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT) { - /* Need to abort here */ - struct mbuf *op_err; + struct sctp_nets *netp; - abort_out_now: - *abort_now = 1; - /* XXX */ - op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, ""); - stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_31; - sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED); - return; + if ((SCTP_GET_STATE(asoc) == SCTP_STATE_OPEN) || + (SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED)) { + SCTP_STAT_DECR_GAUGE32(sctps_currestab); + } + SCTP_SET_STATE(asoc, SCTP_STATE_SHUTDOWN_SENT); + SCTP_CLEAR_SUBSTATE(asoc, SCTP_STATE_SHUTDOWN_PENDING); + sctp_stop_timers_for_shutdown(stcb); + if (asoc->alternate) { + netp = asoc->alternate; } else { - struct sctp_nets *netp; - - if ((SCTP_GET_STATE(asoc) == SCTP_STATE_OPEN) || - (SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED)) { - SCTP_STAT_DECR_GAUGE32(sctps_currestab); - } - SCTP_SET_STATE(asoc, SCTP_STATE_SHUTDOWN_SENT); - SCTP_CLEAR_SUBSTATE(asoc, SCTP_STATE_SHUTDOWN_PENDING); - sctp_stop_timers_for_shutdown(stcb); - if (asoc->alternate) { - netp = asoc->alternate; - } else { - netp = asoc->primary_destination; - } - sctp_send_shutdown(stcb, netp); - sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, - stcb->sctp_ep, stcb, netp); - sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD, - stcb->sctp_ep, stcb, netp); + netp = asoc->primary_destination; } + sctp_send_shutdown(stcb, netp); + sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, + stcb->sctp_ep, stcb, netp); + sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNGUARD, + stcb->sctp_ep, stcb, netp); return; } else if ((SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_RECEIVED) && (asoc->stream_queue_cnt == 0)) { struct sctp_nets *netp; - if (asoc->state & SCTP_STATE_PARTIAL_MSG_LEFT) { - goto abort_out_now; - } SCTP_STAT_DECR_GAUGE32(sctps_currestab); SCTP_SET_STATE(asoc, SCTP_STATE_SHUTDOWN_ACK_SENT); SCTP_CLEAR_SUBSTATE(asoc, SCTP_STATE_SHUTDOWN_PENDING); Modified: projects/clang500-import/sys/netinet/sctp_os_bsd.h ============================================================================== --- projects/clang500-import/sys/netinet/sctp_os_bsd.h Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/netinet/sctp_os_bsd.h Thu Jul 20 20:37:23 2017 (r321307) @@ -392,8 +392,8 @@ typedef struct callout sctp_os_timer_t; (sb).sb_mb = NULL; \ (sb).sb_mbcnt = 0; -#define SCTP_SB_LIMIT_RCV(so) so->so_rcv.sb_hiwat -#define SCTP_SB_LIMIT_SND(so) so->so_snd.sb_hiwat +#define SCTP_SB_LIMIT_RCV(so) (SOLISTENING(so) ? so->sol_sbrcv_hiwat : so->so_rcv.sb_hiwat) +#define SCTP_SB_LIMIT_SND(so) (SOLISTENING(so) ? so->sol_sbsnd_hiwat : so->so_snd.sb_hiwat) /* * routes, output, etc. Modified: projects/clang500-import/sys/netinet/sctp_ss_functions.c ============================================================================== --- projects/clang500-import/sys/netinet/sctp_ss_functions.c Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/netinet/sctp_ss_functions.c Thu Jul 20 20:37:23 2017 (r321307) @@ -268,9 +268,23 @@ sctp_ss_default_set_value(struct sctp_tcb *stcb SCTP_U } static int -sctp_ss_default_is_user_msgs_incomplete(struct sctp_tcb *stcb SCTP_UNUSED, struct sctp_association *asoc SCTP_UNUSED) +sctp_ss_default_is_user_msgs_incomplete(struct sctp_tcb *stcb SCTP_UNUSED, struct sctp_association *asoc) { - return (0); + struct sctp_stream_out *strq; + struct sctp_stream_queue_pending *sp; + + if (asoc->stream_queue_cnt != 1) { + return (0); + } + strq = asoc->ss_data.locked_on_sending; + if (strq == NULL) { + return (0); + } + sp = TAILQ_FIRST(&strq->outqueue); + if (sp == NULL) { + return (0); + } + return (!sp->msg_is_complete); } /* Modified: projects/clang500-import/sys/sys/_pctrie.h ============================================================================== --- projects/clang500-import/sys/sys/_pctrie.h Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/sys/_pctrie.h Thu Jul 20 20:37:23 2017 (r321307) @@ -38,14 +38,4 @@ struct pctrie { uintptr_t pt_root; }; -#ifdef _KERNEL - -static __inline boolean_t -pctrie_is_empty(struct pctrie *ptree) -{ - - return (ptree->pt_root == 0); -} - -#endif /* _KERNEL */ #endif /* !__SYS_PCTRIE_H_ */ Modified: projects/clang500-import/sys/sys/efi.h ============================================================================== --- projects/clang500-import/sys/sys/efi.h Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/sys/efi.h Thu Jul 20 20:37:23 2017 (r321307) @@ -122,6 +122,9 @@ struct efi_tblhdr { uint32_t __res; }; +#ifdef _KERNEL + +#ifdef EFIABI_ATTR struct efi_rt { struct efi_tblhdr rt_hdr; efi_status (*rt_gettime)(struct efi_tm *, struct efi_tmcap *) @@ -144,6 +147,7 @@ struct efi_rt { efi_status (*rt_reset)(enum efi_reset, efi_status, u_long, efi_char *) EFIABI_ATTR; }; +#endif struct efi_systbl { struct efi_tblhdr st_hdr; @@ -163,7 +167,6 @@ struct efi_systbl { uint64_t st_cfgtbl; }; -#ifdef _KERNEL extern vm_paddr_t efi_systbl_phys; #endif /* _KERNEL */ Modified: projects/clang500-import/sys/sys/pctrie.h ============================================================================== --- projects/clang500-import/sys/sys/pctrie.h Thu Jul 20 20:28:31 2017 (r321306) +++ projects/clang500-import/sys/sys/pctrie.h Thu Jul 20 20:37:23 2017 (r321307) @@ -119,5 +119,19 @@ void pctrie_remove(struct pctrie *ptree, uint64_t key size_t pctrie_node_size(void); int pctrie_zone_init(void *mem, int size, int flags); +static __inline void +pctrie_init(struct pctrie *ptree) +{ + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Jul 21 18:53:45 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 290EEDAEABC for ; Fri, 21 Jul 2017 18:53:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EC6637FBDF; Fri, 21 Jul 2017 18:53:44 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6LIriAe070908; Fri, 21 Jul 2017 18:53:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6LIrhp7070905; Fri, 21 Jul 2017 18:53:43 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707211853.v6LIrhp7070905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Jul 2017 18:53:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321350 - in projects/clang500-import: . sys/sys X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang500-import: . sys/sys X-SVN-Commit-Revision: 321350 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jul 2017 18:53:45 -0000 Author: dim Date: Fri Jul 21 18:53:43 2017 New Revision: 321350 URL: https://svnweb.freebsd.org/changeset/base/321350 Log: Set tentative merge dates, bump __FreeBSD_version. Modified: projects/clang500-import/ObsoleteFiles.inc projects/clang500-import/UPDATING projects/clang500-import/sys/sys/param.h Modified: projects/clang500-import/ObsoleteFiles.inc ============================================================================== --- projects/clang500-import/ObsoleteFiles.inc Fri Jul 21 18:42:35 2017 (r321349) +++ projects/clang500-import/ObsoleteFiles.inc Fri Jul 21 18:53:43 2017 (r321350) @@ -38,7 +38,7 @@ # xargs -n1 | sort | uniq -d; # done -# 2017mmdd: new clang import which bumps version from 4.0.0 to 5.0.0. +# 20170722: new clang import which bumps version from 4.0.0 to 5.0.0. OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/common_interface_defs.h Modified: projects/clang500-import/UPDATING ============================================================================== --- projects/clang500-import/UPDATING Fri Jul 21 18:42:35 2017 (r321349) +++ projects/clang500-import/UPDATING Fri Jul 21 18:53:43 2017 (r321350) @@ -51,7 +51,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: ****************************** SPECIAL WARNING: ****************************** -2017mmdd: +20170722: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. Modified: projects/clang500-import/sys/sys/param.h ============================================================================== --- projects/clang500-import/sys/sys/param.h Fri Jul 21 18:42:35 2017 (r321349) +++ projects/clang500-import/sys/sys/param.h Fri Jul 21 18:53:43 2017 (r321350) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1200038 /* Master, propagated to newvers */ +#define __FreeBSD_version 1200039 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-projects@freebsd.org Fri Jul 21 18:54:38 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17FF8DAEAE0 for ; Fri, 21 Jul 2017 18:54:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AF7B17FCC2; Fri, 21 Jul 2017 18:54:37 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6LIsb2Q071024; Fri, 21 Jul 2017 18:54:37 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6LIsYPX071000; Fri, 21 Jul 2017 18:54:34 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707211854.v6LIsYPX071000@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Jul 2017 18:54:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321351 - in projects/clang500-import: contrib/netbsd-tests/lib/libc/regex/data lib/libc/tests/sys lib/librt share/mk sys/amd64/amd64 sys/conf sys/dev/e1000 sys/dev/netmap sys/fs/nfscli... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang500-import: contrib/netbsd-tests/lib/libc/regex/data lib/libc/tests/sys lib/librt share/mk sys/amd64/amd64 sys/conf sys/dev/e1000 sys/dev/netmap sys/fs/nfsclient sys/kern sys/net sys/... X-SVN-Commit-Revision: 321351 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jul 2017 18:54:38 -0000 Author: dim Date: Fri Jul 21 18:54:34 2017 New Revision: 321351 URL: https://svnweb.freebsd.org/changeset/base/321351 Log: Merge ^/head r321307 through r321350. Added: projects/clang500-import/sys/powerpc/cpufreq/mpc85xx_jog.c - copied unchanged from r321350, head/sys/powerpc/cpufreq/mpc85xx_jog.c Modified: projects/clang500-import/contrib/netbsd-tests/lib/libc/regex/data/subexp.in projects/clang500-import/lib/libc/tests/sys/Makefile projects/clang500-import/lib/librt/Symbol.map projects/clang500-import/lib/librt/aio.c projects/clang500-import/share/mk/bsd.files.mk projects/clang500-import/share/mk/bsd.sys.mk projects/clang500-import/sys/amd64/amd64/pmap.c projects/clang500-import/sys/conf/files.powerpc projects/clang500-import/sys/dev/e1000/if_em.c projects/clang500-import/sys/dev/netmap/netmap_freebsd.c projects/clang500-import/sys/dev/netmap/netmap_generic.c projects/clang500-import/sys/dev/netmap/netmap_mem2.c projects/clang500-import/sys/fs/nfsclient/nfs_clrpcops.c projects/clang500-import/sys/kern/uipc_socket.c projects/clang500-import/sys/net/netmap_user.h projects/clang500-import/sys/netpfil/ipfw/ip_fw_table.c projects/clang500-import/sys/ufs/ffs/ffs_snapshot.c projects/clang500-import/sys/vm/vm_object.h projects/clang500-import/sys/x86/x86/mp_x86.c projects/clang500-import/tests/sys/aio/lio_test.c projects/clang500-import/usr.bin/ktrace/ktrace.1 projects/clang500-import/usr.bin/truss/truss.1 projects/clang500-import/usr.sbin/bsdinstall/scripts/hardening Directory Properties: projects/clang500-import/ (props changed) projects/clang500-import/contrib/netbsd-tests/ (props changed) Modified: projects/clang500-import/contrib/netbsd-tests/lib/libc/regex/data/subexp.in ============================================================================== --- projects/clang500-import/contrib/netbsd-tests/lib/libc/regex/data/subexp.in Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/contrib/netbsd-tests/lib/libc/regex/data/subexp.in Fri Jul 21 18:54:34 2017 (r321351) @@ -11,6 +11,9 @@ a(b+)c - abc abc b a(b+)c - abbbc abbbc bbb a(b*)c - ac ac @c (a|ab)(bc([de]+)f|cde) - abcdef abcdef a,bcdef,de +# Begin FreeBSD +a\(b\|c\)d b ab|cd ab|cd b|c +# End FreeBSD # the regression tester only asks for 9 subexpressions a(b)(c)(d)(e)(f)(g)(h)(i)(j)k - abcdefghijk abcdefghijk b,c,d,e,f,g,h,i,j a(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)l - abcdefghijkl abcdefghijkl b,c,d,e,f,g,h,i,j,k Modified: projects/clang500-import/lib/libc/tests/sys/Makefile ============================================================================== --- projects/clang500-import/lib/libc/tests/sys/Makefile Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/lib/libc/tests/sys/Makefile Fri Jul 21 18:54:34 2017 (r321351) @@ -87,7 +87,7 @@ FILESGROUPS+= truncate_test_FILES truncate_test_FILES= truncate_test.root_owned truncate_test_FILESDIR= ${TESTSDIR} truncate_test_FILESMODE= 0600 -truncate_test_FILESOWNER= root +truncate_test_FILESOWN= root truncate_test_FILESGRP= wheel truncate_test_FILESPACKAGE= ${PACKAGE} Modified: projects/clang500-import/lib/librt/Symbol.map ============================================================================== --- projects/clang500-import/lib/librt/Symbol.map Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/lib/librt/Symbol.map Fri Jul 21 18:54:34 2017 (r321351) @@ -26,6 +26,7 @@ FBSD_1.0 { }; FBSD_1.5 { + lio_listio; mq_getfd_np; timer_oshandle_np; }; Modified: projects/clang500-import/lib/librt/aio.c ============================================================================== --- projects/clang500-import/lib/librt/aio.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/lib/librt/aio.c Fri Jul 21 18:54:34 2017 (r321351) @@ -44,6 +44,7 @@ __weak_reference(__aio_write, aio_write); __weak_reference(__aio_return, aio_return); __weak_reference(__aio_waitcomplete, aio_waitcomplete); __weak_reference(__aio_fsync, aio_fsync); +__weak_reference(__lio_listio, lio_listio); typedef void (*aio_func)(union sigval val, struct aiocb *iocb); @@ -53,6 +54,8 @@ extern ssize_t __sys_aio_waitcomplete(struct aiocb **i extern ssize_t __sys_aio_return(struct aiocb *iocb); extern int __sys_aio_error(struct aiocb *iocb); extern int __sys_aio_fsync(int op, struct aiocb *iocb); +extern int __sys_lio_listio(int mode, struct aiocb * const list[], int nent, + struct sigevent *sig); static void aio_dispatch(struct sigev_node *sn) @@ -63,8 +66,8 @@ aio_dispatch(struct sigev_node *sn) } static int -aio_sigev_alloc(struct aiocb *iocb, struct sigev_node **sn, - struct sigevent *saved_ev) +aio_sigev_alloc(sigev_id_t id, struct sigevent *sigevent, + struct sigev_node **sn, struct sigevent *saved_ev) { if (__sigev_check_init()) { /* This might be that thread library is not enabled. */ @@ -72,15 +75,15 @@ aio_sigev_alloc(struct aiocb *iocb, struct sigev_node return (-1); } - *sn = __sigev_alloc(SI_ASYNCIO, &iocb->aio_sigevent, NULL, 1); + *sn = __sigev_alloc(SI_ASYNCIO, sigevent, NULL, 1); if (*sn == NULL) { errno = EAGAIN; return (-1); } - *saved_ev = iocb->aio_sigevent; - (*sn)->sn_id = (sigev_id_t)iocb; - __sigev_get_sigevent(*sn, &iocb->aio_sigevent, (*sn)->sn_id); + *saved_ev = *sigevent; + (*sn)->sn_id = id; + __sigev_get_sigevent(*sn, sigevent, (*sn)->sn_id); (*sn)->sn_dispatch = aio_dispatch; __sigev_list_lock(); @@ -102,7 +105,8 @@ aio_io(struct aiocb *iocb, int (*sysfunc)(struct aiocb return (ret); } - ret = aio_sigev_alloc(iocb, &sn, &saved_ev); + ret = aio_sigev_alloc((sigev_id_t)iocb, &iocb->aio_sigevent, &sn, + &saved_ev); if (ret) return (ret); ret = sysfunc(iocb); @@ -183,11 +187,38 @@ __aio_fsync(int op, struct aiocb *iocb) if (iocb->aio_sigevent.sigev_notify != SIGEV_THREAD) return __sys_aio_fsync(op, iocb); - ret = aio_sigev_alloc(iocb, &sn, &saved_ev); + ret = aio_sigev_alloc((sigev_id_t)iocb, &iocb->aio_sigevent, &sn, + &saved_ev); if (ret) return (ret); ret = __sys_aio_fsync(op, iocb); iocb->aio_sigevent = saved_ev; + if (ret != 0) { + err = errno; + __sigev_list_lock(); + __sigev_delete_node(sn); + __sigev_list_unlock(); + errno = err; + } + return (ret); +} + +int +__lio_listio(int mode, struct aiocb * const list[], int nent, + struct sigevent *sig) +{ + struct sigev_node *sn; + struct sigevent saved_ev; + int ret, err; + + if (sig == NULL || sig->sigev_notify != SIGEV_THREAD) + return (__sys_lio_listio(mode, list, nent, sig)); + + ret = aio_sigev_alloc((sigev_id_t)list, sig, &sn, &saved_ev); + if (ret) + return (ret); + ret = __sys_lio_listio(mode, list, nent, sig); + *sig = saved_ev; if (ret != 0) { err = errno; __sigev_list_lock(); Modified: projects/clang500-import/share/mk/bsd.files.mk ============================================================================== --- projects/clang500-import/share/mk/bsd.files.mk Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/share/mk/bsd.files.mk Fri Jul 21 18:54:34 2017 (r321351) @@ -26,6 +26,10 @@ installfiles: installfiles-${group} ${group}OWN?= ${SHAREOWN} ${group}GRP?= ${SHAREGRP} +.if ${MK_INSTALL_AS_USER} == "yes" +${group}OWN= ${SHAREOWN} +${group}GRP= ${SHAREGRP} +.endif ${group}MODE?= ${SHAREMODE} ${group}DIR?= ${BINDIR} STAGE_SETS+= ${group:C,[/*],_,g} @@ -46,6 +50,10 @@ _${group}FILES= defined(${group}NAME_${file:T}) || defined(${group}NAME) ${group}OWN_${file:T}?= ${${group}OWN} ${group}GRP_${file:T}?= ${${group}GRP} +.if ${MK_INSTALL_AS_USER} == "yes" +${group}OWN_${file:T}= ${SHAREOWN} +${group}GRP_${file:T}= ${SHAREGRP} +.endif ${group}MODE_${file:T}?= ${${group}MODE} ${group}DIR_${file:T}?= ${${group}DIR} .if defined(${group}NAME) Modified: projects/clang500-import/share/mk/bsd.sys.mk ============================================================================== --- projects/clang500-import/share/mk/bsd.sys.mk Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/share/mk/bsd.sys.mk Fri Jul 21 18:54:34 2017 (r321351) @@ -145,6 +145,23 @@ CWARNFLAGS+= -Wno-error=misleading-indentation \ -Wno-error=unused-const-variable .endif +# GCC 7.1.0 +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 70100 +CWARNFLAGS+= -Wno-error=deprecated \ + -Wno-error=pointer-compare \ + -Wno-error=format-truncation \ + -Wno-error=implicit-fallthrough \ + -Wno-error=expansion-to-defined \ + -Wno-error=int-in-bool-context \ + -Wno-error=bool-operation \ + -Wno-error=format-overflow \ + -Wno-error=stringop-overflow \ + -Wno-error=memset-elt-size \ + -Wno-error=int-in-bool-context \ + -Wno-error=unused-const-variable \ + -Wno-error=nonnull +.endif + # How to handle FreeBSD custom printf format specifiers. .if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30600 FORMAT_EXTENSIONS= -D__printf__=__freebsd_kprintf__ Modified: projects/clang500-import/sys/amd64/amd64/pmap.c ============================================================================== --- projects/clang500-import/sys/amd64/amd64/pmap.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/amd64/amd64/pmap.c Fri Jul 21 18:54:34 2017 (r321351) @@ -274,8 +274,6 @@ pmap_modified_bit(pmap_t pmap) return (mask); } -extern struct pcpu __pcpu[]; - #if !defined(DIAGNOSTIC) #ifdef __GNUC_GNU_INLINE__ #define PMAP_INLINE __attribute__((__gnu_inline__)) inline @@ -1063,8 +1061,8 @@ pmap_bootstrap(vm_paddr_t *firstaddr) kernel_pmap->pm_pcids[i].pm_pcid = PMAP_PCID_KERN; kernel_pmap->pm_pcids[i].pm_gen = 1; } - __pcpu[0].pc_pcid_next = PMAP_PCID_KERN + 1; - __pcpu[0].pc_pcid_gen = 1; + PCPU_SET(pcid_next, PMAP_PCID_KERN + 1); + PCPU_SET(pcid_gen, 1); /* * pcpu area for APs is zeroed during AP startup. * pc_pcid_next and pc_pcid_gen are initialized by AP Modified: projects/clang500-import/sys/conf/files.powerpc ============================================================================== --- projects/clang500-import/sys/conf/files.powerpc Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/conf/files.powerpc Fri Jul 21 18:54:34 2017 (r321351) @@ -15,7 +15,7 @@ font.h optional sc \ clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8" # # There is only an asm version on ppc64. -cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc | dtrace powerpc compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc | dtrace powerpc | zfs powerpcspe | dtrace powerpcspe compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S optional zfs powerpc64 | dtrace powerpc64 compile-with "${ZFS_S}" cddl/dev/dtrace/powerpc/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/powerpc/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" @@ -118,6 +118,7 @@ powerpc/booke/platform_bare.c optional booke powerpc/booke/pmap.c optional booke powerpc/booke/spe.c optional powerpcspe powerpc/cpufreq/dfs.c optional cpufreq +powerpc/cpufreq/mpc85xx_jog.c optional cpufreq mpc85xx powerpc/cpufreq/pcr.c optional cpufreq aim powerpc/cpufreq/pmufreq.c optional cpufreq aim pmu powerpc/fpu/fpu_add.c optional fpu_emu Modified: projects/clang500-import/sys/dev/e1000/if_em.c ============================================================================== --- projects/clang500-import/sys/dev/e1000/if_em.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/dev/e1000/if_em.c Fri Jul 21 18:54:34 2017 (r321351) @@ -1663,9 +1663,7 @@ em_if_timer(if_ctx_t ctx, uint16_t qid) if (qid != 0) return; - em_if_update_admin_status(ctx); - em_update_stats_counters(adapter); - + iflib_admin_intr_deferred(ctx); /* Reset LAA into RAR[0] on 82571 */ if ((adapter->hw.mac.type == e1000_82571) && e1000_get_laa_state_82571(&adapter->hw)) @@ -1781,6 +1779,7 @@ em_if_update_admin_status(if_ctx_t ctx) iflib_link_state_change(ctx, LINK_STATE_DOWN, ifp->if_baudrate); printf("link state changed to down\n"); } + em_update_stats_counters(adapter); E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK | E1000_IMS_LSC); } Modified: projects/clang500-import/sys/dev/netmap/netmap_freebsd.c ============================================================================== --- projects/clang500-import/sys/dev/netmap/netmap_freebsd.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/dev/netmap/netmap_freebsd.c Fri Jul 21 18:54:34 2017 (r321351) @@ -671,7 +671,7 @@ nm_os_pt_memdev_iomap(struct ptnetmap_memdev *ptn_dev, &rid, 0, ~0, *mem_size, RF_ACTIVE); if (ptn_dev->pci_mem == NULL) { *nm_paddr = 0; - *nm_addr = 0; + *nm_addr = NULL; return ENOMEM; } Modified: projects/clang500-import/sys/dev/netmap/netmap_generic.c ============================================================================== --- projects/clang500-import/sys/dev/netmap/netmap_generic.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/dev/netmap/netmap_generic.c Fri Jul 21 18:54:34 2017 (r321351) @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$"); #include /* sockaddrs */ #include #include +#include #include #include /* bus_dmamap_* in netmap_kern.h */ @@ -1197,6 +1198,13 @@ generic_netmap_attach(struct ifnet *ifp) struct netmap_generic_adapter *gna; int retval; u_int num_tx_desc, num_rx_desc; + +#ifdef __FreeBSD__ + if (ifp->if_type == IFT_LOOP) { + D("if_loop is not supported by %s", __func__); + return EINVAL; + } +#endif num_tx_desc = num_rx_desc = netmap_generic_ringsize; /* starting point */ Modified: projects/clang500-import/sys/dev/netmap/netmap_mem2.c ============================================================================== --- projects/clang500-import/sys/dev/netmap/netmap_mem2.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/dev/netmap/netmap_mem2.c Fri Jul 21 18:54:34 2017 (r321351) @@ -2146,7 +2146,7 @@ netmap_mem_pt_guest_deref(struct netmap_mem_d *nmd) if (ptnmd->ptn_dev) { nm_os_pt_memdev_iounmap(ptnmd->ptn_dev); } - ptnmd->nm_addr = 0; + ptnmd->nm_addr = NULL; ptnmd->nm_paddr = 0; } } Modified: projects/clang500-import/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- projects/clang500-import/sys/fs/nfsclient/nfs_clrpcops.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/fs/nfsclient/nfs_clrpcops.c Fri Jul 21 18:54:34 2017 (r321351) @@ -4674,6 +4674,11 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc struct nfsrv_descript *nd = &nfsd; int error, irdcnt; + /* Make sure nm_rsize, nm_wsize is set. */ + if (nmp->nm_rsize > NFS_MAXBSIZE || nmp->nm_rsize == 0) + nmp->nm_rsize = NFS_MAXBSIZE; + if (nmp->nm_wsize > NFS_MAXBSIZE || nmp->nm_wsize == 0) + nmp->nm_wsize = NFS_MAXBSIZE; nfscl_reqstart(nd, NFSPROC_CREATESESSION, nmp, NULL, 0, NULL, NULL); NFSM_BUILD(tl, uint32_t *, 4 * NFSX_UNSIGNED); *tl++ = sep->nfsess_clientid.lval[0]; Modified: projects/clang500-import/sys/kern/uipc_socket.c ============================================================================== --- projects/clang500-import/sys/kern/uipc_socket.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/kern/uipc_socket.c Fri Jul 21 18:54:34 2017 (r321351) @@ -3020,19 +3020,23 @@ integer: goto integer; case SO_SNDBUF: - optval = so->so_snd.sb_hiwat; + optval = SOLISTENING(so) ? so->sol_sbsnd_hiwat : + so->so_snd.sb_hiwat; goto integer; case SO_RCVBUF: - optval = so->so_rcv.sb_hiwat; + optval = SOLISTENING(so) ? so->sol_sbrcv_hiwat : + so->so_rcv.sb_hiwat; goto integer; case SO_SNDLOWAT: - optval = so->so_snd.sb_lowat; + optval = SOLISTENING(so) ? so->sol_sbsnd_lowat : + so->so_snd.sb_lowat; goto integer; case SO_RCVLOWAT: - optval = so->so_rcv.sb_lowat; + optval = SOLISTENING(so) ? so->sol_sbrcv_lowat : + so->so_rcv.sb_lowat; goto integer; case SO_SNDTIMEO: Modified: projects/clang500-import/sys/net/netmap_user.h ============================================================================== --- projects/clang500-import/sys/net/netmap_user.h Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/net/netmap_user.h Fri Jul 21 18:54:34 2017 (r321351) @@ -309,16 +309,16 @@ typedef void (*nm_cb_t)(u_char *, const struct nm_pkth * ifname (netmap:foo or vale:foo) is the port name * a suffix can indicate the follwing: * ^ bind the host (sw) ring pair - * * bind host and NIC ring pairs (transparent) + * * bind host and NIC ring pairs * -NN bind individual NIC ring pair * {NN bind master side of pipe NN * }NN bind slave side of pipe NN * a suffix starting with / and the following flags, * in any order: * x exclusive access - * z zero copy monitor - * t monitor tx side - * r monitor rx side + * z zero copy monitor (both tx and rx) + * t monitor tx side (copy monitor) + * r monitor rx side (copy monitor) * R bind only RX ring(s) * T bind only TX ring(s) * @@ -634,9 +634,10 @@ nm_open(const char *ifname, const struct nmreq *req, const char *vpname = NULL; #define MAXERRMSG 80 char errmsg[MAXERRMSG] = ""; - enum { P_START, P_RNGSFXOK, P_GETNUM, P_FLAGS, P_FLAGSOK } p_state; + enum { P_START, P_RNGSFXOK, P_GETNUM, P_FLAGS, P_FLAGSOK, P_MEMID } p_state; int is_vale; long num; + uint16_t nr_arg2 = 0; if (strncmp(ifname, "netmap:", 7) && strncmp(ifname, NM_BDG_NAME, strlen(NM_BDG_NAME))) { @@ -665,7 +666,7 @@ nm_open(const char *ifname, const struct nmreq *req, } /* scan for a separator */ - for (; *port && !index("-*^{}/", *port); port++) + for (; *port && !index("-*^{}/@", *port); port++) ; if (is_vale && !nm_is_identifier(vpname, port)) { @@ -707,6 +708,9 @@ nm_open(const char *ifname, const struct nmreq *req, case '/': /* start of flags */ p_state = P_FLAGS; break; + case '@': /* start of memid */ + p_state = P_MEMID; + break; default: snprintf(errmsg, MAXERRMSG, "unknown modifier: '%c'", *port); goto fail; @@ -718,6 +722,9 @@ nm_open(const char *ifname, const struct nmreq *req, case '/': p_state = P_FLAGS; break; + case '@': + p_state = P_MEMID; + break; default: snprintf(errmsg, MAXERRMSG, "unexpected character: '%c'", *port); goto fail; @@ -736,6 +743,11 @@ nm_open(const char *ifname, const struct nmreq *req, break; case P_FLAGS: case P_FLAGSOK: + if (*port == '@') { + port++; + p_state = P_MEMID; + break; + } switch (*port) { case 'x': nr_flags |= NR_EXCLUSIVE; @@ -762,17 +774,25 @@ nm_open(const char *ifname, const struct nmreq *req, port++; p_state = P_FLAGSOK; break; + case P_MEMID: + if (nr_arg2 != 0) { + snprintf(errmsg, MAXERRMSG, "double setting of memid"); + goto fail; + } + num = strtol(port, (char **)&port, 10); + if (num <= 0) { + snprintf(errmsg, MAXERRMSG, "invalid memid %ld, must be >0", num); + goto fail; + } + nr_arg2 = num; + p_state = P_RNGSFXOK; + break; } } if (p_state != P_START && p_state != P_RNGSFXOK && p_state != P_FLAGSOK) { snprintf(errmsg, MAXERRMSG, "unexpected end of port name"); goto fail; } - if ((nr_flags & NR_ZCOPY_MON) && - !(nr_flags & (NR_MONITOR_TX|NR_MONITOR_RX))) { - snprintf(errmsg, MAXERRMSG, "'z' used but neither 'r', nor 't' found"); - goto fail; - } ND("flags: %s %s %s %s", (nr_flags & NR_EXCLUSIVE) ? "EXCLUSIVE" : "", (nr_flags & NR_ZCOPY_MON) ? "ZCOPY_MON" : "", @@ -799,6 +819,8 @@ nm_open(const char *ifname, const struct nmreq *req, /* these fields are overridden by ifname and flags processing */ d->req.nr_ringid |= nr_ringid; d->req.nr_flags |= nr_flags; + if (nr_arg2) + d->req.nr_arg2 = nr_arg2; memcpy(d->req.nr_name, ifname, namelen); d->req.nr_name[namelen] = '\0'; /* optionally import info from parent */ @@ -848,7 +870,7 @@ nm_open(const char *ifname, const struct nmreq *req, nr_reg = d->req.nr_flags & NR_REG_MASK; - if (nr_reg == NR_REG_SW) { /* host stack */ + if (nr_reg == NR_REG_SW) { /* host stack */ d->first_tx_ring = d->last_tx_ring = d->req.nr_tx_rings; d->first_rx_ring = d->last_rx_ring = d->req.nr_rx_rings; } else if (nr_reg == NR_REG_ALL_NIC) { /* only nic */ Modified: projects/clang500-import/sys/netpfil/ipfw/ip_fw_table.c ============================================================================== --- projects/clang500-import/sys/netpfil/ipfw/ip_fw_table.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/netpfil/ipfw/ip_fw_table.c Fri Jul 21 18:54:34 2017 (r321351) @@ -1658,7 +1658,7 @@ ipfw_unref_table(struct ip_fw_chain *ch, uint16_t kidx } /* - * Lookup an arbtrary key @paddr of legth @plen in table @tbl. + * Lookup an arbitrary key @paddr of length @plen in table @tbl. * Stores found value in @val. * * Returns 1 if key was found. Copied: projects/clang500-import/sys/powerpc/cpufreq/mpc85xx_jog.c (from r321350, head/sys/powerpc/cpufreq/mpc85xx_jog.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang500-import/sys/powerpc/cpufreq/mpc85xx_jog.c Fri Jul 21 18:54:34 2017 (r321351, copy of r321350, head/sys/powerpc/cpufreq/mpc85xx_jog.c) @@ -0,0 +1,343 @@ +/*- + * Copyright (c) 2017 Justin Hibbits + * 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 ``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 +#include +#include + +#include +#include + +#include + +#include + +#include "cpufreq_if.h" + +/* No worries about uint32_t math overflow in here, because the highest + * multiplier supported is 4, and the highest speed part is still well below + * 2GHz. + */ + +#define GUTS_PORPLLSR (CCSRBAR_VA + 0xe0000) +#define GUTS_PMJCR (CCSRBAR_VA + 0xe007c) +#define PMJCR_RATIO_M 0x3f +#define PMJCR_CORE_MULT(x,y) ((x) << (16 + ((y) * 8))) +#define PMJCR_GET_CORE_MULT(x,y) (((x) >> (16 + ((y) * 8))) & 0x3f) +#define GUTS_POWMGTCSR (CCSRBAR_VA + 0xe0080) +#define POWMGTCSR_JOG 0x00200000 +#define POWMGTCSR_INT_MASK 0x00000f00 + +#define MHZ 1000000 + +struct mpc85xx_jog_softc { + device_t dev; + int cpu; + int low; + int high; + int min_freq; +}; + +static struct ofw_compat_data *mpc85xx_jog_devcompat(void); +static void mpc85xx_jog_identify(driver_t *driver, device_t parent); +static int mpc85xx_jog_probe(device_t dev); +static int mpc85xx_jog_attach(device_t dev); +static int mpc85xx_jog_settings(device_t dev, struct cf_setting *sets, int *count); +static int mpc85xx_jog_set(device_t dev, const struct cf_setting *set); +static int mpc85xx_jog_get(device_t dev, struct cf_setting *set); +static int mpc85xx_jog_type(device_t dev, int *type); + +static device_method_t mpc85xx_jog_methods[] = { + /* Device interface */ + DEVMETHOD(device_identify, mpc85xx_jog_identify), + DEVMETHOD(device_probe, mpc85xx_jog_probe), + DEVMETHOD(device_attach, mpc85xx_jog_attach), + + /* cpufreq interface */ + DEVMETHOD(cpufreq_drv_set, mpc85xx_jog_set), + DEVMETHOD(cpufreq_drv_get, mpc85xx_jog_get), + DEVMETHOD(cpufreq_drv_type, mpc85xx_jog_type), + DEVMETHOD(cpufreq_drv_settings, mpc85xx_jog_settings), + + {0, 0} +}; + +static driver_t mpc85xx_jog_driver = { + "jog", + mpc85xx_jog_methods, + sizeof(struct mpc85xx_jog_softc) +}; + +static devclass_t mpc85xx_jog_devclass; +DRIVER_MODULE(mpc85xx_jog, cpu, mpc85xx_jog_driver, mpc85xx_jog_devclass, 0, 0); + +struct mpc85xx_constraints { + int threshold; /* Threshold frequency, in MHz, for setting CORE_SPD bit. */ + int min_mult; /* Minimum PLL multiplier. */ +}; + +static struct mpc85xx_constraints mpc8536_constraints = { + 800, + 3 +}; + +static struct mpc85xx_constraints p1022_constraints = { + 500, + 2 +}; + +static struct ofw_compat_data jog_compat[] = { + {"fsl,mpc8536-guts", (uintptr_t)&mpc8536_constraints}, + {"fsl,p1022-guts", (uintptr_t)&p1022_constraints}, + {NULL, 0} +}; + +static struct ofw_compat_data * +mpc85xx_jog_devcompat() +{ + phandle_t node; + int i; + + node = OF_finddevice("/soc"); + if (node <= 0) + return (NULL); + + for (i = 0; jog_compat[i].ocd_str != NULL; i++) + if (ofw_bus_find_compatible(node, jog_compat[i].ocd_str) > 0) + break; + + if (jog_compat[i].ocd_str == NULL) + return (NULL); + + return (&jog_compat[i]); +} + +static void +mpc85xx_jog_identify(driver_t *driver, device_t parent) +{ + struct ofw_compat_data *compat; + + /* Make sure we're not being doubly invoked. */ + if (device_find_child(parent, "mpc85xx_jog", -1) != NULL) + return; + + compat = mpc85xx_jog_devcompat(); + if (compat == NULL) + return; + + /* + * We attach a child for every CPU since settings need to + * be performed on every CPU in the SMP case. + */ + if (BUS_ADD_CHILD(parent, 10, "jog", -1) == NULL) + device_printf(parent, "add jog child failed\n"); +} + +static int +mpc85xx_jog_probe(device_t dev) +{ + struct ofw_compat_data *compat; + + compat = mpc85xx_jog_devcompat(); + if (compat == NULL || compat->ocd_str == NULL) + return (ENXIO); + + device_set_desc(dev, "Freescale CPU Jogger"); + return (0); +} + +static int +mpc85xx_jog_attach(device_t dev) +{ + struct ofw_compat_data *compat; + struct mpc85xx_jog_softc *sc; + struct mpc85xx_constraints *constraints; + phandle_t cpu; + uint32_t reg; + + sc = device_get_softc(dev); + sc->dev = dev; + + compat = mpc85xx_jog_devcompat(); + constraints = (struct mpc85xx_constraints *)compat->ocd_data; + cpu = ofw_bus_get_node(device_get_parent(dev)); + + if (cpu <= 0) { + device_printf(dev,"No CPU device tree node!\n"); + return (ENXIO); + } + + OF_getencprop(cpu, "reg", &sc->cpu, sizeof(sc->cpu)); + + reg = ccsr_read4(GUTS_PORPLLSR); + + /* + * Assume power-on PLL is the highest PLL config supported on the + * board. + */ + sc->high = PMJCR_GET_CORE_MULT(reg, sc->cpu); + sc->min_freq = constraints->threshold; + sc->low = constraints->min_mult; + + cpufreq_register(dev); + return (0); +} + +static int +mpc85xx_jog_settings(device_t dev, struct cf_setting *sets, int *count) +{ + struct mpc85xx_jog_softc *sc; + uint32_t sysclk; + int i; + + sc = device_get_softc(dev); + if (sets == NULL || count == NULL) + return (EINVAL); + if (*count < sc->high - 1) + return (E2BIG); + + sysclk = mpc85xx_get_system_clock(); + /* Return a list of valid settings for this driver. */ + memset(sets, CPUFREQ_VAL_UNKNOWN, sizeof(*sets) * sc->high); + + for (i = sc->high; i >= sc->low; --i) { + sets[sc->high - i].freq = sysclk * i / MHZ; + sets[sc->high - i].dev = dev; + sets[sc->high - i].spec[0] = i; + } + *count = sc->high - sc->low + 1; + + return (0); +} + +struct jog_rv_args { + int cpu; + int mult; + int slow; + volatile int inprogress; +}; + +static void +mpc85xx_jog_set_int(void *arg) +{ + struct jog_rv_args *args = arg; + uint32_t reg; + + if (PCPU_GET(cpuid) == args->cpu) { + reg = ccsr_read4(GUTS_PMJCR); + reg &= ~PMJCR_CORE_MULT(PMJCR_RATIO_M, args->cpu); + reg |= PMJCR_CORE_MULT(args->mult, args->cpu); + if (args->slow) + reg &= ~(1 << (12 + args->cpu)); + else + reg |= (1 << (12 + args->cpu)); + + ccsr_write4(GUTS_PMJCR, reg); + + reg = ccsr_read4(GUTS_POWMGTCSR); + reg |= POWMGTCSR_JOG | POWMGTCSR_INT_MASK; + ccsr_write4(GUTS_POWMGTCSR, reg); + + /* Wait for completion */ + do { + DELAY(100); + reg = ccsr_read4(GUTS_POWMGTCSR); + } while (reg & POWMGTCSR_JOG); + + reg = ccsr_read4(GUTS_POWMGTCSR); + ccsr_write4(GUTS_POWMGTCSR, reg & ~POWMGTCSR_INT_MASK); + ccsr_read4(GUTS_POWMGTCSR); + + args->inprogress = 0; + } else { + while (args->inprogress) + cpu_spinwait(); + } +} + +static int +mpc85xx_jog_set(device_t dev, const struct cf_setting *set) +{ + struct mpc85xx_jog_softc *sc; + struct jog_rv_args args; + + if (set == NULL) + return (EINVAL); + + sc = device_get_softc(dev); + + args.slow = (set->freq <= sc->min_freq); + args.mult = set->spec[0]; + args.cpu = PCPU_GET(cpuid); + args.inprogress = 1; + smp_rendezvous(smp_no_rendezvous_barrier, mpc85xx_jog_set_int, + smp_no_rendezvous_barrier, &args); + + return (0); +} + +static int +mpc85xx_jog_get(device_t dev, struct cf_setting *set) +{ + struct mpc85xx_jog_softc *sc; + uint32_t pmjcr; + uint32_t freq; + + if (set == NULL) + return (EINVAL); + + sc = device_get_softc(dev); + memset(set, CPUFREQ_VAL_UNKNOWN, sizeof(*set)); + + pmjcr = ccsr_read4(GUTS_PORPLLSR); + freq = PMJCR_GET_CORE_MULT(pmjcr, sc->cpu); + freq *= mpc85xx_get_system_clock(); + freq /= MHZ; + + set->freq = freq; + set->dev = dev; + + return (0); +} + +static int +mpc85xx_jog_type(device_t dev, int *type) +{ + + if (type == NULL) + return (EINVAL); + + *type = CPUFREQ_TYPE_ABSOLUTE; + return (0); +} + Modified: projects/clang500-import/sys/ufs/ffs/ffs_snapshot.c ============================================================================== --- projects/clang500-import/sys/ufs/ffs/ffs_snapshot.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/ufs/ffs/ffs_snapshot.c Fri Jul 21 18:54:34 2017 (r321351) @@ -1598,7 +1598,7 @@ ffs_snapremove(vp) struct buf *ibp; struct fs *fs; ufs2_daddr_t numblks, blkno, dblk; - int error, loc, last; + int error, i, last, loc; struct snapdata *sn; ip = VTOI(vp); @@ -1618,10 +1618,14 @@ ffs_snapremove(vp) ip->i_nextsnap.tqe_prev = 0; VI_UNLOCK(devvp); lockmgr(&vp->v_lock, LK_EXCLUSIVE, NULL); + for (i = 0; i < sn->sn_lock.lk_recurse; i++) + lockmgr(&vp->v_lock, LK_EXCLUSIVE, NULL); KASSERT(vp->v_vnlock == &sn->sn_lock, ("ffs_snapremove: lost lock mutation")); vp->v_vnlock = &vp->v_lock; VI_LOCK(devvp); + while (sn->sn_lock.lk_recurse > 0) + lockmgr(&sn->sn_lock, LK_RELEASE, NULL); lockmgr(&sn->sn_lock, LK_RELEASE, NULL); try_free_snapdata(devvp); } else @@ -1931,7 +1935,7 @@ retry: */ if (error != 0 && wkhd != NULL) softdep_freework(wkhd); - lockmgr(vp->v_vnlock, LK_RELEASE, NULL); + lockmgr(&sn->sn_lock, LK_RELEASE, NULL); return (error); } @@ -2634,8 +2638,8 @@ try_free_snapdata(struct vnode *devvp) static struct snapdata * ffs_snapdata_acquire(struct vnode *devvp) { - struct snapdata *nsn; - struct snapdata *sn; + struct snapdata *nsn, *sn; + int error; /* * Allocate a free snapdata. This is done before acquiring the @@ -2643,23 +2647,37 @@ ffs_snapdata_acquire(struct vnode *devvp) * held. */ nsn = ffs_snapdata_alloc(); - /* - * If there snapshots already exist on this filesystem grab a - * reference to the shared lock. Otherwise this is the first - * snapshot on this filesystem and we need to use our - * pre-allocated snapdata. - */ - VI_LOCK(devvp); - if (devvp->v_rdev->si_snapdata == NULL) { - devvp->v_rdev->si_snapdata = nsn; - nsn = NULL; + + for (;;) { + VI_LOCK(devvp); + sn = devvp->v_rdev->si_snapdata; + if (sn == NULL) { + /* + * This is the first snapshot on this + * filesystem and we use our pre-allocated + * snapdata. Publish sn with the sn_lock + * owned by us, to avoid the race. + */ + error = lockmgr(&nsn->sn_lock, LK_EXCLUSIVE | + LK_NOWAIT, NULL); + if (error != 0) + panic("leaked sn, lockmgr error %d", error); + sn = devvp->v_rdev->si_snapdata = nsn; + VI_UNLOCK(devvp); + nsn = NULL; + break; + } + + /* + * There is a snapshots which already exists on this + * filesystem, grab a reference to the common lock. + */ + error = lockmgr(&sn->sn_lock, LK_INTERLOCK | + LK_EXCLUSIVE | LK_SLEEPFAIL, VI_MTX(devvp)); + if (error == 0) + break; } - sn = devvp->v_rdev->si_snapdata; - /* - * Acquire the snapshot lock. - */ - lockmgr(&sn->sn_lock, - LK_INTERLOCK | LK_EXCLUSIVE | LK_RETRY, VI_MTX(devvp)); + /* * Free any unused snapdata. */ Modified: projects/clang500-import/sys/vm/vm_object.h ============================================================================== --- projects/clang500-import/sys/vm/vm_object.h Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/vm/vm_object.h Fri Jul 21 18:54:34 2017 (r321351) @@ -171,11 +171,11 @@ struct vm_object { #define OBJ_FICTITIOUS 0x0001 /* (c) contains fictitious pages */ #define OBJ_UNMANAGED 0x0002 /* (c) contains unmanaged pages */ #define OBJ_POPULATE 0x0004 /* pager implements populate() */ -#define OBJ_DEAD 0x0008 /* dead objects (during rundown) */ +#define OBJ_DEAD 0x0008 /* dead objects (during rundown) */ #define OBJ_NOSPLIT 0x0010 /* dont split this object */ #define OBJ_UMTXDEAD 0x0020 /* umtx pshared was terminated */ -#define OBJ_PIPWNT 0x0040 /* paging in progress wanted */ -#define OBJ_MIGHTBEDIRTY 0x0100 /* object might be dirty, only for vnode */ +#define OBJ_PIPWNT 0x0040 /* paging in progress wanted */ +#define OBJ_MIGHTBEDIRTY 0x0100 /* object might be dirty, only for vnode */ #define OBJ_TMPFS_NODE 0x0200 /* object belongs to tmpfs VREG node */ #define OBJ_TMPFS_DIRTY 0x0400 /* dirty tmpfs obj */ #define OBJ_COLORED 0x1000 /* pg_color is defined */ Modified: projects/clang500-import/sys/x86/x86/mp_x86.c ============================================================================== --- projects/clang500-import/sys/x86/x86/mp_x86.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/sys/x86/x86/mp_x86.c Fri Jul 21 18:54:34 2017 (r321351) @@ -90,8 +90,6 @@ int mcount_lock; int mp_naps; /* # of Applications processors */ int boot_cpu_id = -1; /* designated BSP */ -extern struct pcpu __pcpu[]; - /* AP uses this during bootstrap. Do not staticize. */ char *bootSTK; int bootAP; Modified: projects/clang500-import/tests/sys/aio/lio_test.c ============================================================================== --- projects/clang500-import/tests/sys/aio/lio_test.c Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/tests/sys/aio/lio_test.c Fri Jul 21 18:54:34 2017 (r321351) @@ -119,8 +119,8 @@ ATF_TC_BODY(lio_listio_empty_nowait_thread, tc) struct aiocb *list = NULL; struct sigevent sev; - atf_tc_expect_fail("Bug 220459 - lio_listio(2) doesn't support" - " SIGEV_THREAD"); + atf_tc_expect_timeout("Bug 220398 - lio_listio(2) never sends" + "asynchronous notification if nent==0"); ATF_REQUIRE_EQ(0, sem_init(&completions, false, 0)); bzero(&sev, sizeof(sev)); sev.sigev_notify = SIGEV_THREAD; Modified: projects/clang500-import/usr.bin/ktrace/ktrace.1 ============================================================================== --- projects/clang500-import/usr.bin/ktrace/ktrace.1 Fri Jul 21 18:53:43 2017 (r321350) +++ projects/clang500-import/usr.bin/ktrace/ktrace.1 Fri Jul 21 18:54:34 2017 (r321351) @@ -28,7 +28,7 @@ .\" @(#)ktrace.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd March 31, 2016 +.Dd July 24, 2017 .Dt KTRACE 1 .Os .Sh NAME @@ -148,31 +148,31 @@ and .Ar command options are mutually exclusive. .Sh EXAMPLES -# trace all kernel operations of process id 34 +Trace all kernel operations of process id 34: .Dl $ ktrace -p 34 .Pp -# trace all kernel operations of processes in process group 15 and -# pass the trace flags to all current and future children +Trace all kernel operations of processes in process group 15 and +pass the trace flags to all current and future children: .Dl $ ktrace -idg 15 .Pp -# disable all tracing of process 65 +Disable all tracing of process 65: .Dl $ ktrace -cp 65 .Pp -# disable tracing signals on process 70 and all current children +Disable tracing signals on process 70 and all current children: .Dl $ ktrace -t s -cdp 70 .Pp -# enable tracing of +Enable tracing of .Tn I/O -on process 67 +on process 67: .Dl $ ktrace -ti -p 67 .Pp -# run the command "w", tracing only system calls +Run the command "w", tracing only system calls: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Jul 21 18:58:52 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DF0BDAEC70 for ; Fri, 21 Jul 2017 18:58:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 02FA87FE8F; Fri, 21 Jul 2017 18:58:51 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6LIwpg7071265; Fri, 21 Jul 2017 18:58:51 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6LIwp2r071264; Fri, 21 Jul 2017 18:58:51 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707211858.v6LIwp2r071264@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Jul 2017 18:58:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321352 - projects/clang500-import/contrib/llvm/tools/clang X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang500-import/contrib/llvm/tools/clang X-SVN-Commit-Revision: 321352 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jul 2017 18:58:52 -0000 Author: dim Date: Fri Jul 21 18:58:51 2017 New Revision: 321352 URL: https://svnweb.freebsd.org/changeset/base/321352 Log: Bash Subversion over the head until it submits. Modified: Directory Properties: projects/clang500-import/contrib/llvm/tools/clang/ (props changed) From owner-svn-src-projects@freebsd.org Fri Jul 21 19:26:38 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 336FFDAF8A4 for ; Fri, 21 Jul 2017 19:26:38 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8DA3280BE3; Fri, 21 Jul 2017 19:26:37 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6LJQaMn083374; Fri, 21 Jul 2017 19:26:36 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6LJQZis083358; Fri, 21 Jul 2017 19:26:35 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201707211926.v6LJQZis083358@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Jul 2017 19:26:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321353 - in projects/pnfs-planb-server/sys: amd64/amd64 amd64/conf amd64/include amd64/linux amd64/linux32 amd64/vmm/amd arm/allwinner arm/allwinner/clkng arm/annapurna/alpine arm/arm ... X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in projects/pnfs-planb-server/sys: amd64/amd64 amd64/conf amd64/include amd64/linux amd64/linux32 amd64/vmm/amd arm/allwinner arm/allwinner/clkng arm/annapurna/alpine arm/arm arm/broadcom/bcm2835 arm/... X-SVN-Commit-Revision: 321353 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jul 2017 19:26:38 -0000 Author: rmacklem Date: Fri Jul 21 19:26:34 2017 New Revision: 321353 URL: https://svnweb.freebsd.org/changeset/base/321353 Log: Update the kernel to current/head. Added: projects/pnfs-planb-server/sys/amd64/conf/MMCCAM - copied unchanged from r321352, head/sys/amd64/conf/MMCCAM projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_a64.c - copied unchanged from r321352, head/sys/arm/allwinner/clkng/ccu_a64.c projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_a64.h - copied unchanged from r321352, head/sys/arm/allwinner/clkng/ccu_a64.h projects/pnfs-planb-server/sys/arm/annapurna/alpine/alpine_mp.h - copied unchanged from r321352, head/sys/arm/annapurna/alpine/alpine_mp.h projects/pnfs-planb-server/sys/arm/arm/platform_pl310_if.m - copied unchanged from r321352, head/sys/arm/arm/platform_pl310_if.m projects/pnfs-planb-server/sys/arm/conf/BEAGLEBONE-MMCCAM - copied unchanged from r321352, head/sys/arm/conf/BEAGLEBONE-MMCCAM projects/pnfs-planb-server/sys/arm/freescale/imx/imx6_machdep.h - copied unchanged from r321352, head/sys/arm/freescale/imx/imx6_machdep.h projects/pnfs-planb-server/sys/arm/freescale/imx/imx6_snvs.c - copied unchanged from r321352, head/sys/arm/freescale/imx/imx6_snvs.c projects/pnfs-planb-server/sys/arm/ti/omap4/omap4_machdep.h - copied unchanged from r321352, head/sys/arm/ti/omap4/omap4_machdep.h projects/pnfs-planb-server/sys/arm/xilinx/zy7_machdep.h - copied unchanged from r321352, head/sys/arm/xilinx/zy7_machdep.h projects/pnfs-planb-server/sys/cam/mmc/ - copied from r321352, head/sys/cam/mmc/ projects/pnfs-planb-server/sys/dev/iicbus/iic_recover_bus.c - copied unchanged from r321352, head/sys/dev/iicbus/iic_recover_bus.c projects/pnfs-planb-server/sys/dev/iicbus/iic_recover_bus.h - copied unchanged from r321352, head/sys/dev/iicbus/iic_recover_bus.h projects/pnfs-planb-server/sys/dev/ixgbe/if_bypass.c - copied unchanged from r321352, head/sys/dev/ixgbe/if_bypass.c projects/pnfs-planb-server/sys/dev/ixgbe/if_fdir.c - copied unchanged from r321352, head/sys/dev/ixgbe/if_fdir.c projects/pnfs-planb-server/sys/dev/ixgbe/if_sriov.c - copied unchanged from r321352, head/sys/dev/ixgbe/if_sriov.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_bypass.h - copied unchanged from r321352, head/sys/dev/ixgbe/ixgbe_bypass.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_fdir.h - copied unchanged from r321352, head/sys/dev/ixgbe/ixgbe_fdir.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_features.h - copied unchanged from r321352, head/sys/dev/ixgbe/ixgbe_features.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_netmap.c - copied unchanged from r321352, head/sys/dev/ixgbe/ixgbe_netmap.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_netmap.h - copied unchanged from r321352, head/sys/dev/ixgbe/ixgbe_netmap.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_rss.h - copied unchanged from r321352, head/sys/dev/ixgbe/ixgbe_rss.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_sriov.h - copied unchanged from r321352, head/sys/dev/ixgbe/ixgbe_sriov.h projects/pnfs-planb-server/sys/dev/mmcnull/ - copied from r321352, head/sys/dev/mmcnull/ projects/pnfs-planb-server/sys/dev/syscons/fonts/ - copied from r321352, head/sys/dev/syscons/fonts/ projects/pnfs-planb-server/sys/gnu/dts/arm/am335x-baltos-leds.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/am335x-baltos-leds.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-385-linksys-shelby.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/armada-385-linksys-shelby.dts projects/pnfs-planb-server/sys/gnu/dts/arm/armada-385-synology-ds116.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/armada-385-synology-ds116.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708-linksys-ea6300-v1.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/bcm4708-linksys-ea6300-v1.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47081-tplink-archer-c5-v2.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/bcm47081-tplink-archer-c5-v2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4709-linksys-ea9200.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/bcm4709-linksys-ea9200.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47094-linksys-panamera.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/bcm47094-linksys-panamera.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm953012hr.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/bcm953012hr.dts projects/pnfs-planb-server/sys/gnu/dts/arm/exynos5420-tmu-sensor-conf.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/exynos5420-tmu-sensor-conf.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/gemini-nas4220b.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/gemini-nas4220b.dts projects/pnfs-planb-server/sys/gnu/dts/arm/gemini-rut1xx.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/gemini-rut1xx.dts projects/pnfs-planb-server/sys/gnu/dts/arm/gemini-sq201.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/gemini-sq201.dts projects/pnfs-planb-server/sys/gnu/dts/arm/gemini-wbd111.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/gemini-wbd111.dts projects/pnfs-planb-server/sys/gnu/dts/arm/gemini-wbd222.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/gemini-wbd222.dts projects/pnfs-planb-server/sys/gnu/dts/arm/gemini.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/gemini.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx28-duckbill-2-485.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx28-duckbill-2-485.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx28-duckbill-2-enocean.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx28-duckbill-2-enocean.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx28-duckbill-2-spi.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx28-duckbill-2-spi.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx28-duckbill-2.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx28-duckbill-2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6dl-gw5903.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6dl-gw5903.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6dl-gw5904.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6dl-gw5904.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-gw5903.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6q-gw5903.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-gw5904.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6q-gw5904.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-icore-ofcap10.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6q-icore-ofcap10.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-icore-ofcap12.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6q-icore-ofcap12.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-zii-rdu2.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6q-zii-rdu2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qdl-gw5903.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6qdl-gw5903.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qdl-gw5904.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6qdl-gw5904.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qdl-zii-rdu2.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6qdl-zii-rdu2.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qp-nitrogen6_som2.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6qp-nitrogen6_som2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qp-zii-rdu2.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6qp-zii-rdu2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6ul-isiot-common.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/imx6ul-isiot-common.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx7d-sdb-sht11.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/imx7d-sdb-sht11.dts projects/pnfs-planb-server/sys/gnu/dts/arm/motorola-cpcap-mapphone.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/motorola-cpcap-mapphone.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap3-cpu-thermal.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/omap3-cpu-thermal.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk3288-phycore-rdk.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/rk3288-phycore-rdk.dts projects/pnfs-planb-server/sys/gnu/dts/arm/rk3288-phycore-som.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/rk3288-phycore-som.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk3288-tinker.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/rk3288-tinker.dts projects/pnfs-planb-server/sys/gnu/dts/arm/stm32h743-pinctrl.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/stm32h743-pinctrl.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/stm32h743.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/stm32h743.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/stm32h743i-eval.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/stm32h743i-eval.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-nanopi-neo-air.dts - copied unchanged from r321352, head/sys/gnu/dts/arm/sun8i-h3-nanopi-neo-air.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sunxi-h3-h5.dtsi - copied unchanged from r321352, head/sys/gnu/dts/arm/sunxi-h3-h5.dtsi projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/mt6797-clk.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/clock/mt6797-clk.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/rv1108-cru.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/clock/rv1108-cru.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/sun8i-r-ccu.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/clock/sun8i-r-ccu.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/genpd/ - copied from r321352, head/sys/gnu/dts/include/dt-bindings/genpd/ projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/mfd/stm32f7-rcc.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/mfd/stm32f7-rcc.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/power/imx7-power.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/power/imx7-power.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/reset/altr,rst-mgr-a10sr.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/reset/altr,rst-mgr-a10sr.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/reset/imx7-reset.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/reset/imx7-reset.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/reset/sun8i-r-ccu.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/reset/sun8i-r-ccu.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/reset/tegra210-car.h - copied unchanged from r321352, head/sys/gnu/dts/include/dt-bindings/reset/tegra210-car.h projects/pnfs-planb-server/sys/modules/mmcnull/ - copied from r321352, head/sys/modules/mmcnull/ projects/pnfs-planb-server/sys/powerpc/cpufreq/mpc85xx_jog.c - copied unchanged from r321352, head/sys/powerpc/cpufreq/mpc85xx_jog.c projects/pnfs-planb-server/sys/sys/bus_dma_internal.h - copied unchanged from r321352, head/sys/sys/bus_dma_internal.h projects/pnfs-planb-server/sys/x86/include/bus_dma.h - copied unchanged from r321352, head/sys/x86/include/bus_dma.h Deleted: projects/pnfs-planb-server/sys/arm/freescale/imx/imx6_mp.h projects/pnfs-planb-server/sys/arm/ti/omap4/omap4_mp.h projects/pnfs-planb-server/sys/arm/xilinx/zy7_mp.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/rk1108-cru.h Modified: projects/pnfs-planb-server/sys/amd64/amd64/efirt.c (contents, props changed) projects/pnfs-planb-server/sys/amd64/amd64/pmap.c projects/pnfs-planb-server/sys/amd64/conf/NOTES projects/pnfs-planb-server/sys/amd64/include/bus_dma.h projects/pnfs-planb-server/sys/amd64/include/efi.h projects/pnfs-planb-server/sys/amd64/linux/linux_sysvec.c projects/pnfs-planb-server/sys/amd64/linux32/linux32_sysvec.c projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_hw.c projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_priv.h projects/pnfs-planb-server/sys/amd64/vmm/amd/ivrs_drv.c projects/pnfs-planb-server/sys/arm/allwinner/a10_ehci.c projects/pnfs-planb-server/sys/arm/allwinner/a10_mmc.c projects/pnfs-planb-server/sys/arm/allwinner/clkng/aw_ccung.c projects/pnfs-planb-server/sys/arm/allwinner/if_awg.c projects/pnfs-planb-server/sys/arm/annapurna/alpine/alpine_common.c projects/pnfs-planb-server/sys/arm/annapurna/alpine/alpine_machdep.c projects/pnfs-planb-server/sys/arm/annapurna/alpine/alpine_machdep_mp.c projects/pnfs-planb-server/sys/arm/arm/busdma_machdep-v4.c projects/pnfs-planb-server/sys/arm/arm/busdma_machdep-v6.c projects/pnfs-planb-server/sys/arm/arm/generic_timer.c projects/pnfs-planb-server/sys/arm/arm/gic.c projects/pnfs-planb-server/sys/arm/arm/gic.h projects/pnfs-planb-server/sys/arm/arm/machdep.c projects/pnfs-planb-server/sys/arm/arm/mpcore_timer.c projects/pnfs-planb-server/sys/arm/arm/pl310.c projects/pnfs-planb-server/sys/arm/arm/platform.c projects/pnfs-planb-server/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c projects/pnfs-planb-server/sys/arm/conf/ALLWINNER_UP projects/pnfs-planb-server/sys/arm/conf/ALPINE projects/pnfs-planb-server/sys/arm/conf/BEAGLEBONE projects/pnfs-planb-server/sys/arm/conf/EFIKA_MX projects/pnfs-planb-server/sys/arm/conf/EXYNOS5.common projects/pnfs-planb-server/sys/arm/conf/GENERIC projects/pnfs-planb-server/sys/arm/conf/IMX53 projects/pnfs-planb-server/sys/arm/conf/IMX6 projects/pnfs-planb-server/sys/arm/conf/PANDABOARD projects/pnfs-planb-server/sys/arm/conf/RK3188 projects/pnfs-planb-server/sys/arm/conf/RPI-B projects/pnfs-planb-server/sys/arm/conf/RPI2 projects/pnfs-planb-server/sys/arm/conf/SOCFPGA projects/pnfs-planb-server/sys/arm/conf/TEGRA124 projects/pnfs-planb-server/sys/arm/conf/VERSATILEPB projects/pnfs-planb-server/sys/arm/conf/VIRT projects/pnfs-planb-server/sys/arm/conf/ZEDBOARD projects/pnfs-planb-server/sys/arm/freescale/imx/files.imx6 projects/pnfs-planb-server/sys/arm/freescale/imx/imx6_machdep.c projects/pnfs-planb-server/sys/arm/freescale/imx/imx6_mp.c projects/pnfs-planb-server/sys/arm/freescale/imx/imx6_pl310.c projects/pnfs-planb-server/sys/arm/freescale/imx/imx6_usbphy.c projects/pnfs-planb-server/sys/arm/freescale/imx/imx_epit.c projects/pnfs-planb-server/sys/arm/freescale/imx/imx_gpt.c projects/pnfs-planb-server/sys/arm/freescale/imx/imx_i2c.c projects/pnfs-planb-server/sys/arm/freescale/vybrid/vf_machdep.c projects/pnfs-planb-server/sys/arm/include/bus_dma.h projects/pnfs-planb-server/sys/arm/include/machdep.h projects/pnfs-planb-server/sys/arm/include/pl310.h projects/pnfs-planb-server/sys/arm/include/platformvar.h projects/pnfs-planb-server/sys/arm/samsung/exynos/exynos5_machdep.c projects/pnfs-planb-server/sys/arm/ti/am335x/am335x_dmtimer.c projects/pnfs-planb-server/sys/arm/ti/omap4/omap4_l2cache.c projects/pnfs-planb-server/sys/arm/ti/omap4/omap4_mp.c projects/pnfs-planb-server/sys/arm/ti/ti_machdep.c projects/pnfs-planb-server/sys/arm/ti/ti_sdhci.c projects/pnfs-planb-server/sys/arm/versatile/sp804.c projects/pnfs-planb-server/sys/arm/versatile/versatile_machdep.c projects/pnfs-planb-server/sys/arm/xilinx/zy7_l2cache.c projects/pnfs-planb-server/sys/arm/xilinx/zy7_machdep.c projects/pnfs-planb-server/sys/arm/xilinx/zy7_mp.c projects/pnfs-planb-server/sys/arm64/arm64/busdma_machdep.c projects/pnfs-planb-server/sys/arm64/arm64/pmap.c projects/pnfs-planb-server/sys/arm64/arm64/vfp.c projects/pnfs-planb-server/sys/arm64/conf/GENERIC projects/pnfs-planb-server/sys/arm64/include/atomic.h projects/pnfs-planb-server/sys/arm64/include/bus_dma.h projects/pnfs-planb-server/sys/arm64/include/bus_dma_impl.h projects/pnfs-planb-server/sys/arm64/include/pcb.h projects/pnfs-planb-server/sys/arm64/include/vfp.h projects/pnfs-planb-server/sys/boot/arm/uboot/Makefile projects/pnfs-planb-server/sys/boot/efi/boot1/Makefile projects/pnfs-planb-server/sys/boot/efi/boot1/zfs_module.c projects/pnfs-planb-server/sys/boot/efi/libefi/efipart.c projects/pnfs-planb-server/sys/boot/efi/loader/Makefile projects/pnfs-planb-server/sys/boot/efi/loader/arch/arm/start.S projects/pnfs-planb-server/sys/boot/fdt/dts/arm/h3.dtsi projects/pnfs-planb-server/sys/boot/fdt/dts/arm/orangepi-plus-2e.dts projects/pnfs-planb-server/sys/boot/i386/libi386/libi386.h projects/pnfs-planb-server/sys/boot/i386/loader/chain.c projects/pnfs-planb-server/sys/cam/ata/ata_all.c projects/pnfs-planb-server/sys/cam/ata/ata_da.c projects/pnfs-planb-server/sys/cam/cam.h projects/pnfs-planb-server/sys/cam/cam_ccb.h projects/pnfs-planb-server/sys/cam/cam_periph.c projects/pnfs-planb-server/sys/cam/cam_xpt.c projects/pnfs-planb-server/sys/cam/cam_xpt.h projects/pnfs-planb-server/sys/cam/cam_xpt_internal.h projects/pnfs-planb-server/sys/cam/ctl/ctl_backend_ramdisk.c projects/pnfs-planb-server/sys/cam/ctl/scsi_ctl.c projects/pnfs-planb-server/sys/cam/scsi/scsi_all.c projects/pnfs-planb-server/sys/cam/scsi/scsi_da.c projects/pnfs-planb-server/sys/cam/scsi/scsi_enc.c projects/pnfs-planb-server/sys/cam/scsi/scsi_pass.c projects/pnfs-planb-server/sys/cam/scsi/scsi_sa.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/pnfs-planb-server/sys/compat/freebsd32/freebsd32.h projects/pnfs-planb-server/sys/compat/freebsd32/freebsd32_misc.c projects/pnfs-planb-server/sys/compat/freebsd32/freebsd32_signal.h projects/pnfs-planb-server/sys/compat/freebsd32/freebsd32_util.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/device.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/fs.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/io-mapping.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/jiffies.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/ktime.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/math64.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/page.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/pci.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/include/linux/sched.h projects/pnfs-planb-server/sys/compat/linuxkpi/common/src/linux_compat.c projects/pnfs-planb-server/sys/compat/linuxkpi/common/src/linux_current.c projects/pnfs-planb-server/sys/compat/linuxkpi/common/src/linux_pci.c projects/pnfs-planb-server/sys/compat/linuxkpi/common/src/linux_rcu.c projects/pnfs-planb-server/sys/conf/NOTES projects/pnfs-planb-server/sys/conf/files projects/pnfs-planb-server/sys/conf/files.amd64 projects/pnfs-planb-server/sys/conf/files.arm projects/pnfs-planb-server/sys/conf/files.arm64 projects/pnfs-planb-server/sys/conf/files.powerpc projects/pnfs-planb-server/sys/conf/kern.post.mk projects/pnfs-planb-server/sys/conf/kern.pre.mk projects/pnfs-planb-server/sys/conf/kmod.mk projects/pnfs-planb-server/sys/conf/options projects/pnfs-planb-server/sys/conf/options.arm projects/pnfs-planb-server/sys/ddb/db_command.c projects/pnfs-planb-server/sys/ddb/db_input.c projects/pnfs-planb-server/sys/ddb/db_sym.c projects/pnfs-planb-server/sys/dev/aac/aac.c projects/pnfs-planb-server/sys/dev/aacraid/aacraid.c projects/pnfs-planb-server/sys/dev/acpica/Osd/OsdSchedule.c projects/pnfs-planb-server/sys/dev/agp/agp_i810.c projects/pnfs-planb-server/sys/dev/agp/agp_i810.h projects/pnfs-planb-server/sys/dev/aic7xxx/aic79xx_osm.h projects/pnfs-planb-server/sys/dev/aic7xxx/aic7xxx_osm.h projects/pnfs-planb-server/sys/dev/arcmsr/arcmsr.c projects/pnfs-planb-server/sys/dev/arcmsr/arcmsr.h projects/pnfs-planb-server/sys/dev/ath/ah_osdep.c projects/pnfs-planb-server/sys/dev/bnxt/bnxt.h projects/pnfs-planb-server/sys/dev/bnxt/bnxt_hwrm.c projects/pnfs-planb-server/sys/dev/bnxt/bnxt_txrx.c projects/pnfs-planb-server/sys/dev/bnxt/if_bnxt.c projects/pnfs-planb-server/sys/dev/bwi/if_bwi.c projects/pnfs-planb-server/sys/dev/bxe/bxe.c projects/pnfs-planb-server/sys/dev/bxe/bxe.h projects/pnfs-planb-server/sys/dev/cxgb/cxgb_adapter.h projects/pnfs-planb-server/sys/dev/cxgb/cxgb_main.c projects/pnfs-planb-server/sys/dev/cxgb/cxgb_sge.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c projects/pnfs-planb-server/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c projects/pnfs-planb-server/sys/dev/cxgbe/adapter.h projects/pnfs-planb-server/sys/dev/cxgbe/common/common.h projects/pnfs-planb-server/sys/dev/cxgbe/common/t4_hw.c projects/pnfs-planb-server/sys/dev/cxgbe/t4_ioctl.h projects/pnfs-planb-server/sys/dev/cxgbe/t4_main.c projects/pnfs-planb-server/sys/dev/cxgbe/tom/t4_cpl_io.c projects/pnfs-planb-server/sys/dev/drm/drmP.h projects/pnfs-planb-server/sys/dev/e1000/if_em.c projects/pnfs-planb-server/sys/dev/e1000/if_em.h projects/pnfs-planb-server/sys/dev/ena/ena.c projects/pnfs-planb-server/sys/dev/ena/ena.h projects/pnfs-planb-server/sys/dev/ena/ena_sysctl.c projects/pnfs-planb-server/sys/dev/hptmv/vdevice.h projects/pnfs-planb-server/sys/dev/hyperv/input/hv_kbdc.c projects/pnfs-planb-server/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c projects/pnfs-planb-server/sys/dev/iicbus/ad7418.c projects/pnfs-planb-server/sys/dev/iicbus/iiconf.c projects/pnfs-planb-server/sys/dev/isci/environment.h projects/pnfs-planb-server/sys/dev/isp/isp.c projects/pnfs-planb-server/sys/dev/isp/isp_freebsd.c projects/pnfs-planb-server/sys/dev/isp/isp_library.c projects/pnfs-planb-server/sys/dev/isp/isp_library.h projects/pnfs-planb-server/sys/dev/isp/ispmbox.h projects/pnfs-planb-server/sys/dev/isp/ispvar.h projects/pnfs-planb-server/sys/dev/iwi/if_iwi.c projects/pnfs-planb-server/sys/dev/iwm/if_iwm_scan.c projects/pnfs-planb-server/sys/dev/ixgbe/if_ix.c projects/pnfs-planb-server/sys/dev/ixgbe/if_ixv.c projects/pnfs-planb-server/sys/dev/ixgbe/ix_txrx.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_82598.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_82598.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_82599.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_82599.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_api.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_api.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_common.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_common.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_dcb.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_dcb.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_dcb_82598.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_dcb_82598.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_dcb_82599.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_dcb_82599.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_mbx.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_mbx.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_osdep.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_osdep.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_phy.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_phy.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_type.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_vf.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_vf.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_x540.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_x540.h projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_x550.c projects/pnfs-planb-server/sys/dev/ixgbe/ixgbe_x550.h projects/pnfs-planb-server/sys/dev/ixl/i40e_prototype.h projects/pnfs-planb-server/sys/dev/ixl/if_ixlv.c projects/pnfs-planb-server/sys/dev/ixl/ixl.h projects/pnfs-planb-server/sys/dev/ixl/ixl_pf.h projects/pnfs-planb-server/sys/dev/ixl/ixl_pf_main.c projects/pnfs-planb-server/sys/dev/ixl/ixl_txrx.c projects/pnfs-planb-server/sys/dev/mfi/mfi.c projects/pnfs-planb-server/sys/dev/mfi/mfi_cam.c projects/pnfs-planb-server/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c projects/pnfs-planb-server/sys/dev/mmc/bridge.h projects/pnfs-planb-server/sys/dev/mmc/mmcbrvar.h projects/pnfs-planb-server/sys/dev/mmc/mmcreg.h projects/pnfs-planb-server/sys/dev/mpr/mpr.c projects/pnfs-planb-server/sys/dev/mps/mps.c projects/pnfs-planb-server/sys/dev/mpt/mpt.h projects/pnfs-planb-server/sys/dev/netmap/netmap_freebsd.c projects/pnfs-planb-server/sys/dev/netmap/netmap_generic.c projects/pnfs-planb-server/sys/dev/netmap/netmap_mem2.c projects/pnfs-planb-server/sys/dev/nvme/nvme_sim.c projects/pnfs-planb-server/sys/dev/qlnx/qlnxe/ecore_hw.h projects/pnfs-planb-server/sys/dev/qlnx/qlnxe/qlnx_ioctl.c projects/pnfs-planb-server/sys/dev/qlnx/qlnxe/qlnx_os.c projects/pnfs-planb-server/sys/dev/qlxgbe/ql_def.h projects/pnfs-planb-server/sys/dev/qlxgbe/ql_hw.c projects/pnfs-planb-server/sys/dev/qlxgbe/ql_hw.h projects/pnfs-planb-server/sys/dev/qlxgbe/ql_os.c projects/pnfs-planb-server/sys/dev/rtwn/if_rtwn_rx.c projects/pnfs-planb-server/sys/dev/rtwn/if_rtwnreg.h projects/pnfs-planb-server/sys/dev/rtwn/if_rtwnvar.h projects/pnfs-planb-server/sys/dev/rtwn/pci/rtwn_pci_attach.c projects/pnfs-planb-server/sys/dev/rtwn/pci/rtwn_pci_rx.c projects/pnfs-planb-server/sys/dev/rtwn/pci/rtwn_pci_rx.h projects/pnfs-planb-server/sys/dev/rtwn/pci/rtwn_pci_var.h projects/pnfs-planb-server/sys/dev/rtwn/usb/rtwn_usb_attach.c projects/pnfs-planb-server/sys/dev/rtwn/usb/rtwn_usb_ep.c projects/pnfs-planb-server/sys/dev/rtwn/usb/rtwn_usb_rx.c projects/pnfs-planb-server/sys/dev/rtwn/usb/rtwn_usb_tx.c projects/pnfs-planb-server/sys/dev/rtwn/usb/rtwn_usb_var.h projects/pnfs-planb-server/sys/dev/sdhci/fsl_sdhci.c projects/pnfs-planb-server/sys/dev/sdhci/sdhci.c projects/pnfs-planb-server/sys/dev/sdhci/sdhci.h projects/pnfs-planb-server/sys/dev/sdhci/sdhci_acpi.c projects/pnfs-planb-server/sys/dev/sdhci/sdhci_pci.c projects/pnfs-planb-server/sys/dev/syscons/scvgarndr.c projects/pnfs-planb-server/sys/dev/syscons/syscons.h projects/pnfs-planb-server/sys/dev/tsec/if_tsec.c projects/pnfs-planb-server/sys/dev/usb/controller/ehci_imx.c projects/pnfs-planb-server/sys/dev/usb/controller/saf1761_otg.c projects/pnfs-planb-server/sys/dev/xdma/xdma.c projects/pnfs-planb-server/sys/dev/xen/blkfront/blkfront.c projects/pnfs-planb-server/sys/dev/xen/netfront/netfront.c projects/pnfs-planb-server/sys/fs/cd9660/cd9660_vnops.c projects/pnfs-planb-server/sys/fs/ext2fs/ext2_inode_cnv.c projects/pnfs-planb-server/sys/fs/ext2fs/ext2_vfsops.c projects/pnfs-planb-server/sys/fs/ext2fs/ext2_vnops.c projects/pnfs-planb-server/sys/fs/ext2fs/ext2fs.h projects/pnfs-planb-server/sys/fs/fdescfs/fdesc_vfsops.c projects/pnfs-planb-server/sys/fs/fdescfs/fdesc_vnops.c projects/pnfs-planb-server/sys/fs/fifofs/fifo_vnops.c projects/pnfs-planb-server/sys/fs/msdosfs/msdosfs_vnops.c projects/pnfs-planb-server/sys/fs/nandfs/nandfs_vnops.c projects/pnfs-planb-server/sys/fs/nfs/nfs_commonkrpc.c projects/pnfs-planb-server/sys/fs/nfs/nfs_commonport.c projects/pnfs-planb-server/sys/fs/nfs/nfs_commonsubs.c projects/pnfs-planb-server/sys/fs/nfs/nfs_var.h projects/pnfs-planb-server/sys/fs/nfsclient/nfs_clrpcops.c projects/pnfs-planb-server/sys/fs/nfsclient/nfs_clvnops.c projects/pnfs-planb-server/sys/fs/nfsserver/nfs_nfsdport.c projects/pnfs-planb-server/sys/fs/smbfs/smbfs_vnops.c projects/pnfs-planb-server/sys/fs/tmpfs/tmpfs_vnops.c projects/pnfs-planb-server/sys/geom/geom_disk.c projects/pnfs-planb-server/sys/geom/virstor/g_virstor.h projects/pnfs-planb-server/sys/gnu/dts/arm/alpine.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/am335x-baltos-ir2110.dts projects/pnfs-planb-server/sys/gnu/dts/arm/am335x-baltos-ir3220.dts projects/pnfs-planb-server/sys/gnu/dts/arm/am335x-baltos-ir5221.dts projects/pnfs-planb-server/sys/gnu/dts/arm/am335x-boneblack.dts projects/pnfs-planb-server/sys/gnu/dts/arm/am335x-icev2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/am335x-sl50.dts projects/pnfs-planb-server/sys/gnu/dts/arm/am33xx.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/am3517.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/am4372.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/am437x-gp-evm.dts projects/pnfs-planb-server/sys/gnu/dts/arm/am57xx-idk-common.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-385-linksys.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-385.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-388-clearfog.dts projects/pnfs-planb-server/sys/gnu/dts/arm/armada-388.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-38x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-xp-98dx3236.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-xp-98dx3336.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-xp-98dx4251.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/armada-xp-db-dxbc2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/armada-xp-db-xc3-24g4xg.dts projects/pnfs-planb-server/sys/gnu/dts/arm/armada-xp-linksys-mamba.dts projects/pnfs-planb-server/sys/gnu/dts/arm/aspeed-ast2500-evb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/aspeed-bmc-opp-palmetto.dts projects/pnfs-planb-server/sys/gnu/dts/arm/aspeed-bmc-opp-romulus.dts projects/pnfs-planb-server/sys/gnu/dts/arm/aspeed-g4.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/aspeed-g5.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/at91-sama5d2_xplained.dts projects/pnfs-planb-server/sys/gnu/dts/arm/at91-sama5d3_xplained.dts projects/pnfs-planb-server/sys/gnu/dts/arm/at91-tse850-3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/at91sam9261.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/at91sam9x5ek.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/axp209.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/axp22x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm-cygnus.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm-nsp.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm2835-rpi.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm283x-rpi-smsc9512.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm283x-rpi-smsc9514.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm283x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708-asus-rt-ac56u.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708-asus-rt-ac68u.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708-buffalo-wzr-1750dhp.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708-netgear-r6250.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708-netgear-r6300-v2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708-smartrg-sr400ac.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4708.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47081-asus-rt-n18u.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47081-buffalo-wzr-600dhp2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47081-buffalo-wzr-900dhp.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47081.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4709-asus-rt-ac87u.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4709-buffalo-wxr-1900dhp.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4709-netgear-r7000.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4709-netgear-r8000.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm4709-tplink-archer-c9-v1.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47094-dlink-dir-885l.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47094-luxul-xwr-3100.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47094-netgear-r8500.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm47189-tenda-ac9.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm5301x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm53573.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/bcm94708.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm94709.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm953012er.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm953012k.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm958522er.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm958525er.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm958525xmc.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm958622hr.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm958623hr.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm958625hr.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm958625k.dts projects/pnfs-planb-server/sys/gnu/dts/arm/bcm988312hr.dts projects/pnfs-planb-server/sys/gnu/dts/arm/da850-evm.dts projects/pnfs-planb-server/sys/gnu/dts/arm/da850-lego-ev3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/da850.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/dm8168-evm.dts projects/pnfs-planb-server/sys/gnu/dts/arm/dm816x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/dra7-evm.dts projects/pnfs-planb-server/sys/gnu/dts/arm/dra7.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/dra74x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos3250-rinato.dts projects/pnfs-planb-server/sys/gnu/dts/arm/exynos3250.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4210-origen.dts projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4210-trats.dts projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4210.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4412-itop-scp-core.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4412-odroid-common.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4412-origen.dts projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4412-prime.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4412-trats2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/exynos4412.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos5420.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos5440.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/exynos5800.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx25-eukrea-mbimxsd25-baseboard.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx25-pdk.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx25-pinfunc.h projects/pnfs-planb-server/sys/gnu/dts/arm/imx25.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx28-duckbill.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx28-m28cu3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx28.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx50.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx53-qsb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx53-qsrb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-b450v3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-b650v3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-b850v3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-bx50v3.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-cm-fx6.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-icore.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6q-utilite-pro.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qdl-icore.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qdl-sabresd.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qdl.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qp-sabresd.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6qp.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6sx-sdb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6sx.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6ul-14x14-evk.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6ul-geam.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx6ul-isiot-emmc.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6ul-isiot-nand.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx6ul-isiot.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx7-colibri-eval-v3.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx7-colibri.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/imx7d-colibri-eval-v3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/imx7s.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/keystone-k2l-netcp.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/keystone-k2l.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/logicpd-torpedo-37xx-devkit.dts projects/pnfs-planb-server/sys/gnu/dts/arm/meson8.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/meson8b.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/moxart-uc7112lx.dts projects/pnfs-planb-server/sys/gnu/dts/arm/moxart.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/mt7623.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap3-gta04.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap3-igep.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap3-n900.dts projects/pnfs-planb-server/sys/gnu/dts/arm/omap3-n950-n9.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap34xx.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap36xx.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap4-droid4-xt894.dts projects/pnfs-planb-server/sys/gnu/dts/arm/omap4-panda-a4.dts projects/pnfs-planb-server/sys/gnu/dts/arm/omap4-panda-es.dts projects/pnfs-planb-server/sys/gnu/dts/arm/omap443x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap4460.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/omap5.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/qcom-apq8060-dragonboard.dts projects/pnfs-planb-server/sys/gnu/dts/arm/qcom-msm8660.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/qcom-msm8974-sony-xperia-honami.dts projects/pnfs-planb-server/sys/gnu/dts/arm/qcom-msm8974.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r7s72100-genmai.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r7s72100-rskrza1.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r7s72100.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a73a4.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7743.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7745.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7778-bockw.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7779-marzen.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7790-lager.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7790.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7791-koelsch.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7791-porter.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7791.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7792.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7793-gose.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7793.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7794-alt.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7794-silk.dts projects/pnfs-planb-server/sys/gnu/dts/arm/r8a7794.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk1108.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk3036.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk3188.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk322x.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk3288-miqi.dts projects/pnfs-planb-server/sys/gnu/dts/arm/rk3288-rock2-som.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk3288-rock2-square.dts projects/pnfs-planb-server/sys/gnu/dts/arm/rk3288.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/rk3xxx.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/s3c64xx.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/s5pv210.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sama5d2.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_arria10.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_arria10_socdk.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_arria5_socdk.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_de0_sockit.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_mcv.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_mcvevk.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_socdk.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_sockit.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_socrates.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_sodia.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_cyclone5_vining_fpga.dts projects/pnfs-planb-server/sys/gnu/dts/arm/socfpga_vt.dts projects/pnfs-planb-server/sys/gnu/dts/arm/spear600-evb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/spear600.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/ste-dbx5x0.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/stih407-family.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/stih410.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/stm32429i-eval.dts projects/pnfs-planb-server/sys/gnu/dts/arm/stm32746g-eval.dts projects/pnfs-planb-server/sys/gnu/dts/arm/stm32f429-disco.dts projects/pnfs-planb-server/sys/gnu/dts/arm/stm32f429.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/stm32f469-disco.dts projects/pnfs-planb-server/sys/gnu/dts/arm/stm32f746.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-a1000.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-cubieboard.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-dserve-dsrv9703c.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-hackberry.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-inet1.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-inet9f-rev03.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-jesurun-q5.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-marsboard.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-mini-xplus.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-mk802.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-olinuxino-lime.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-pcduino.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10-pov-protab2-ips9.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun4i-a10.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a10s-auxtek-t003.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a10s-auxtek-t004.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a10s-olinuxino-micro.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a10s-r7-tv-dongle.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a10s-wobo-i5.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a10s.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a13-empire-electronix-d709.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a13-hsg-h702.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a13-licheepi-one.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a13-olinuxino-micro.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a13-olinuxino.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-a13.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-gr8-chip-pro.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-gr8-evb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-gr8.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-r8-chip.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i-r8.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun5i.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31-app4-evb1.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31-colombus.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31-hummingbird.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31-i7.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31-m9.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31-mele-a1000g-quad.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31s-cs908.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31s-primo81.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31s-sina31s-core.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31s-sina31s.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31s-sinovoip-bpi-m2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-a31s-yones-toptech-bs1078-v2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun6i-reference-design-tablet.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-bananapi.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-cubieboard2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-cubietruck.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-hummingbird.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-i12-tvbox.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-icnova-swac.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-lamobo-r1.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-m3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-mk808c.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-olimex-som-evb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-olinuxino-lime.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-olinuxino-lime2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-olinuxino-micro.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-orangepi-mini.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-orangepi.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20-pcduino3.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun7i-a20.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a23-a33.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a23-evb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a23-ippo-q8h-v1.2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a23-ippo-q8h-v5.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a23-q8-tablet.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a33-sinlinx-sina33.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a33.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-a83t.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h2-plus-orangepi-zero.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-bananapi-m2-plus.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-beelink-x2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-nanopi.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-orangepi-2.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-orangepi-lite.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-orangepi-one.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3-orangepi-pc.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun8i-h3.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sun9i-a80-cubieboard4.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun9i-a80-optimus.dts projects/pnfs-planb-server/sys/gnu/dts/arm/sun9i-a80.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sunxi-common-regulators.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/sunxi-reference-design-tablet.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-ld4-ref.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-ld4.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-ld6b-ref.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pinctrl.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pro4-ace.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pro4-ref.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pro4-sanji.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pro4.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pro5.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pxs2-gentil.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pxs2-vodka.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-pxs2.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-ref-daughter.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-sld3-ref.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-sld3.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-sld8-ref.dts projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-sld8.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/uniphier-support-card.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/versatile-pb.dts projects/pnfs-planb-server/sys/gnu/dts/arm/vexpress-v2m-rs1.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/vexpress-v2m.dtsi projects/pnfs-planb-server/sys/gnu/dts/arm/vexpress-v2p-ca15-tc1.dts projects/pnfs-planb-server/sys/gnu/dts/arm/vexpress-v2p-ca15_a7.dts projects/pnfs-planb-server/sys/gnu/dts/arm/vexpress-v2p-ca5s.dts projects/pnfs-planb-server/sys/gnu/dts/arm/vexpress-v2p-ca9.dts projects/pnfs-planb-server/sys/gnu/dts/arm/vf610-zii-dev-rev-b.dts projects/pnfs-planb-server/sys/gnu/dts/arm/vf610-zii-dev-rev-c.dts projects/pnfs-planb-server/sys/gnu/dts/arm/vf610-zii-dev.dtsi projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/gxbb-clkc.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/hi6220-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r7s72100-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r8a73a4-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r8a7790-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r8a7791-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r8a7792-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r8a7793-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r8a7794-clock.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/r8a7795-cpg-mssr.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/rk3328-cru.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/rk3368-cru.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/sun50i-a64-ccu.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/sun8i-h3-ccu.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/tegra114-car.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/tegra124-car-common.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/tegra210-car.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/clock/tegra30-car.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/gpio/gpio.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/input/linux-event-codes.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/pinctrl/hisi.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/pinctrl/mt7623-pinfunc.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/power/r8a7795-sysc.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/reset/mt2701-resets.h projects/pnfs-planb-server/sys/gnu/dts/include/dt-bindings/reset/sun8i-h3-ccu.h projects/pnfs-planb-server/sys/i386/conf/NOTES projects/pnfs-planb-server/sys/i386/i386/pmap.c projects/pnfs-planb-server/sys/i386/i386/trap.c projects/pnfs-planb-server/sys/i386/include/bus_dma.h projects/pnfs-planb-server/sys/i386/linux/linux_sysvec.c projects/pnfs-planb-server/sys/isa/rtc.h projects/pnfs-planb-server/sys/kern/capabilities.conf projects/pnfs-planb-server/sys/kern/imgact_elf.c projects/pnfs-planb-server/sys/kern/kern_event.c projects/pnfs-planb-server/sys/kern/kern_exec.c projects/pnfs-planb-server/sys/kern/kern_proc.c projects/pnfs-planb-server/sys/kern/kern_rwlock.c projects/pnfs-planb-server/sys/kern/kern_shutdown.c projects/pnfs-planb-server/sys/kern/subr_blist.c projects/pnfs-planb-server/sys/kern/subr_bus_dma.c projects/pnfs-planb-server/sys/kern/subr_clock.c projects/pnfs-planb-server/sys/kern/subr_prf.c projects/pnfs-planb-server/sys/kern/subr_rtc.c projects/pnfs-planb-server/sys/kern/subr_sbuf.c projects/pnfs-planb-server/sys/kern/subr_uio.c projects/pnfs-planb-server/sys/kern/sys_process.c projects/pnfs-planb-server/sys/kern/sys_socket.c projects/pnfs-planb-server/sys/kern/uipc_mqueue.c projects/pnfs-planb-server/sys/kern/uipc_sockbuf.c projects/pnfs-planb-server/sys/kern/uipc_socket.c projects/pnfs-planb-server/sys/kern/vfs_syscalls.c projects/pnfs-planb-server/sys/mips/atheros/ar724x_pci.c projects/pnfs-planb-server/sys/mips/conf/AR934X_BASE.hints projects/pnfs-planb-server/sys/mips/conf/DIR-825C1 projects/pnfs-planb-server/sys/mips/conf/std.AR934X projects/pnfs-planb-server/sys/mips/conf/std.AR_MIPS_BASE projects/pnfs-planb-server/sys/mips/include/bus_dma.h projects/pnfs-planb-server/sys/mips/mips/busdma_machdep.c projects/pnfs-planb-server/sys/mips/mips/db_disasm.c projects/pnfs-planb-server/sys/modules/agp/Makefile projects/pnfs-planb-server/sys/modules/crypto/Makefile projects/pnfs-planb-server/sys/modules/ix/Makefile projects/pnfs-planb-server/sys/modules/ixl/Makefile projects/pnfs-planb-server/sys/modules/ixv/Makefile projects/pnfs-planb-server/sys/modules/qlnx/Makefile projects/pnfs-planb-server/sys/modules/qlnx/qlnxe/Makefile projects/pnfs-planb-server/sys/modules/sdhci/Makefile projects/pnfs-planb-server/sys/net/iflib.c projects/pnfs-planb-server/sys/net/iflib.h projects/pnfs-planb-server/sys/net/netmap_user.h projects/pnfs-planb-server/sys/netinet/sctp_asconf.c projects/pnfs-planb-server/sys/netinet/sctp_auth.c projects/pnfs-planb-server/sys/netinet/sctp_indata.c projects/pnfs-planb-server/sys/netinet/sctp_input.c projects/pnfs-planb-server/sys/netinet/sctp_os_bsd.h projects/pnfs-planb-server/sys/netinet/sctp_output.c projects/pnfs-planb-server/sys/netinet/sctp_output.h projects/pnfs-planb-server/sys/netinet/sctp_pcb.c projects/pnfs-planb-server/sys/netinet/sctp_ss_functions.c projects/pnfs-planb-server/sys/netinet/sctp_syscalls.c projects/pnfs-planb-server/sys/netinet/sctp_usrreq.c projects/pnfs-planb-server/sys/netinet/sctputil.c projects/pnfs-planb-server/sys/netinet/tcp_output.c projects/pnfs-planb-server/sys/netinet6/sctp6_usrreq.c projects/pnfs-planb-server/sys/netpfil/ipfw/ip_fw2.c projects/pnfs-planb-server/sys/netpfil/ipfw/ip_fw_table.c projects/pnfs-planb-server/sys/netpfil/ipfw/nat64/nat64_translate.c projects/pnfs-planb-server/sys/netpfil/ipfw/nptv6/nptv6.c projects/pnfs-planb-server/sys/netpfil/ipfw/pmod/tcpmod.c projects/pnfs-planb-server/sys/netpfil/pf/pf.c projects/pnfs-planb-server/sys/powerpc/booke/pmap.c projects/pnfs-planb-server/sys/powerpc/include/bus_dma.h projects/pnfs-planb-server/sys/powerpc/powerpc/busdma_machdep.c projects/pnfs-planb-server/sys/riscv/include/bus_dma.h projects/pnfs-planb-server/sys/riscv/riscv/busdma_machdep.c projects/pnfs-planb-server/sys/sparc64/include/bus_dma.h projects/pnfs-planb-server/sys/sys/_pctrie.h projects/pnfs-planb-server/sys/sys/bitset.h projects/pnfs-planb-server/sys/sys/bus_dma.h projects/pnfs-planb-server/sys/sys/clock.h projects/pnfs-planb-server/sys/sys/efi.h projects/pnfs-planb-server/sys/sys/jail.h projects/pnfs-planb-server/sys/sys/param.h projects/pnfs-planb-server/sys/sys/pctrie.h projects/pnfs-planb-server/sys/sys/ptrace.h projects/pnfs-planb-server/sys/sys/refcount.h projects/pnfs-planb-server/sys/sys/signal.h projects/pnfs-planb-server/sys/sys/sysent.h projects/pnfs-planb-server/sys/ufs/ffs/ffs_alloc.c projects/pnfs-planb-server/sys/ufs/ffs/ffs_snapshot.c projects/pnfs-planb-server/sys/ufs/ufs/ufs_vnops.c projects/pnfs-planb-server/sys/vm/_vm_radix.h projects/pnfs-planb-server/sys/vm/swap_pager.c projects/pnfs-planb-server/sys/vm/swap_pager.h projects/pnfs-planb-server/sys/vm/vm_map.c projects/pnfs-planb-server/sys/vm/vm_object.c projects/pnfs-planb-server/sys/vm/vm_object.h projects/pnfs-planb-server/sys/vm/vm_page.c projects/pnfs-planb-server/sys/vm/vm_page.h projects/pnfs-planb-server/sys/vm/vm_radix.c projects/pnfs-planb-server/sys/vm/vm_radix.h projects/pnfs-planb-server/sys/x86/include/busdma_impl.h projects/pnfs-planb-server/sys/x86/iommu/busdma_dmar.c projects/pnfs-planb-server/sys/x86/isa/atrtc.c projects/pnfs-planb-server/sys/x86/x86/busdma_bounce.c projects/pnfs-planb-server/sys/x86/x86/busdma_machdep.c projects/pnfs-planb-server/sys/x86/x86/mp_x86.c Directory Properties: projects/pnfs-planb-server/sys/ (props changed) projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/ (props changed) projects/pnfs-planb-server/sys/gnu/dts/arm/ (props changed) projects/pnfs-planb-server/sys/gnu/dts/include/ (props changed) Modified: projects/pnfs-planb-server/sys/amd64/amd64/efirt.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/amd64/efirt.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/amd64/efirt.c Fri Jul 21 19:26:34 2017 (r321353) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -193,8 +194,8 @@ efi_create_1t1_map(struct efi_md *map, int ndesc, int uint64_t idx; int bits, i, mode; - obj_1t1_pt = vm_pager_allocate(OBJT_PHYS, NULL, 1 + NPML4EPG + - NPML4EPG * NPDPEPG + NPML4EPG * NPDPEPG * NPDEPG, + obj_1t1_pt = vm_pager_allocate(OBJT_PHYS, NULL, ptoa(1 + + NPML4EPG + NPML4EPG * NPDPEPG + NPML4EPG * NPDPEPG * NPDEPG), VM_PROT_ALL, 0, NULL); VM_OBJECT_WLOCK(obj_1t1_pt); efi_pml4_page = efi_1t1_page(0); @@ -445,7 +446,7 @@ efi_get_time_locked(struct efi_tm *tm) efi_status status; int error; - mtx_assert(&resettodr_lock, MA_OWNED); + mtx_assert(&atrtc_time_lock, MA_OWNED); error = efi_enter(); if (error != 0) return (error); @@ -462,9 +463,9 @@ efi_get_time(struct efi_tm *tm) if (efi_runtime == NULL) return (ENXIO); - mtx_lock(&resettodr_lock); + mtx_lock(&atrtc_time_lock); error = efi_get_time_locked(tm); - mtx_unlock(&resettodr_lock); + mtx_unlock(&atrtc_time_lock); return (error); } @@ -487,7 +488,7 @@ efi_set_time_locked(struct efi_tm *tm) efi_status status; int error; - mtx_assert(&resettodr_lock, MA_OWNED); + mtx_assert(&atrtc_time_lock, MA_OWNED); error = efi_enter(); if (error != 0) return (error); @@ -504,9 +505,9 @@ efi_set_time(struct efi_tm *tm) if (efi_runtime == NULL) return (ENXIO); - mtx_lock(&resettodr_lock); + mtx_lock(&atrtc_time_lock); error = efi_set_time_locked(tm); - mtx_unlock(&resettodr_lock); + mtx_unlock(&atrtc_time_lock); return (error); } Modified: projects/pnfs-planb-server/sys/amd64/amd64/pmap.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/amd64/pmap.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/amd64/pmap.c Fri Jul 21 19:26:34 2017 (r321353) @@ -274,8 +274,6 @@ pmap_modified_bit(pmap_t pmap) return (mask); } -extern struct pcpu __pcpu[]; - #if !defined(DIAGNOSTIC) #ifdef __GNUC_GNU_INLINE__ #define PMAP_INLINE __attribute__((__gnu_inline__)) inline @@ -629,6 +627,9 @@ static int pmap_remove_pte(pmap_t pmap, pt_entry_t *pt static vm_page_t pmap_remove_pt_page(pmap_t pmap, vm_offset_t va); static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde, struct spglist *free); +static bool pmap_remove_ptes(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, + pd_entry_t *pde, struct spglist *free, + struct rwlock **lockp); static boolean_t pmap_try_insert_pv_entry(pmap_t pmap, vm_offset_t va, vm_page_t m, struct rwlock **lockp); static void pmap_update_pde(pmap_t pmap, vm_offset_t va, pd_entry_t *pde, @@ -1060,8 +1061,8 @@ pmap_bootstrap(vm_paddr_t *firstaddr) kernel_pmap->pm_pcids[i].pm_pcid = PMAP_PCID_KERN; kernel_pmap->pm_pcids[i].pm_gen = 1; } - __pcpu[0].pc_pcid_next = PMAP_PCID_KERN + 1; - __pcpu[0].pc_pcid_gen = 1; + PCPU_SET(pcid_next, PMAP_PCID_KERN + 1); + PCPU_SET(pcid_gen, 1); /* * pcpu area for APs is zeroed during AP startup. * pc_pcid_next and pc_pcid_gen are initialized by AP @@ -1868,7 +1869,7 @@ pmap_invalidate_cache_range(vm_offset_t sva, vm_offset { if (force) { - sva &= ~(vm_offset_t)cpu_clflush_line_size; + sva &= ~(vm_offset_t)(cpu_clflush_line_size - 1); } else { KASSERT((sva & PAGE_MASK) == 0, ("pmap_invalidate_cache_range: sva not page-aligned")); @@ -3736,6 +3737,44 @@ pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry } /* + * Removes the specified range of addresses from the page table page. + */ +static bool +pmap_remove_ptes(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, + pd_entry_t *pde, struct spglist *free, struct rwlock **lockp) +{ + pt_entry_t PG_G, *pte; + vm_offset_t va; + bool anyvalid; + + PMAP_LOCK_ASSERT(pmap, MA_OWNED); + PG_G = pmap_global_bit(pmap); + anyvalid = false; + va = eva; + for (pte = pmap_pde_to_pte(pde, sva); sva != eva; pte++, + sva += PAGE_SIZE) { + if (*pte == 0) { + if (va != eva) { + pmap_invalidate_range(pmap, va, sva); + va = eva; + } + continue; + } + if ((*pte & PG_G) == 0) + anyvalid = true; + else if (va == eva) + va = sva; + if (pmap_remove_pte(pmap, pte, sva, *pde, free, lockp)) { + sva += PAGE_SIZE; + break; + } + } + if (va != eva) + pmap_invalidate_range(pmap, va, sva); + return (anyvalid); +} + +/* * Remove the given range of addresses from the specified map. * * It is assumed that the start and end are properly @@ -3745,11 +3784,11 @@ void pmap_remove(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) { struct rwlock *lock; - vm_offset_t va, va_next; + vm_offset_t va_next; pml4_entry_t *pml4e; pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; - pt_entry_t *pte, PG_G, PG_V; + pt_entry_t PG_G, PG_V; struct spglist free; int anyvalid; @@ -3852,28 +3891,8 @@ pmap_remove(pmap_t pmap, vm_offset_t sva, vm_offset_t if (va_next > eva) va_next = eva; - va = va_next; - for (pte = pmap_pde_to_pte(pde, sva); sva != va_next; pte++, - sva += PAGE_SIZE) { - if (*pte == 0) { - if (va != va_next) { - pmap_invalidate_range(pmap, va, sva); - va = va_next; - } - continue; - } - if ((*pte & PG_G) == 0) - anyvalid = 1; - else if (va == va_next) - va = sva; - if (pmap_remove_pte(pmap, pte, sva, ptpaddr, &free, - &lock)) { - sva += PAGE_SIZE; - break; - } - } - if (va != va_next) - pmap_invalidate_range(pmap, va, sva); + if (pmap_remove_ptes(pmap, sva, va_next, pde, &free, &lock)) + anyvalid = 1; } if (lock != NULL) rw_wunlock(lock); @@ -4535,23 +4554,23 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t va, vm_page_t { pd_entry_t *pde, newpde; pt_entry_t PG_V; - vm_page_t mpde; + vm_page_t pdpg; struct spglist free; PG_V = pmap_valid_bit(pmap); PMAP_LOCK_ASSERT(pmap, MA_OWNED); - if ((mpde = pmap_allocpde(pmap, va, NULL)) == NULL) { + if ((pdpg = pmap_allocpde(pmap, va, NULL)) == NULL) { CTR2(KTR_PMAP, "pmap_enter_pde: failure for va %#lx" " in pmap %p", va, pmap); return (FALSE); } - pde = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mpde)); + pde = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pdpg)); pde = &pde[pmap_pde_index(va)]; if ((*pde & PG_V) != 0) { - KASSERT(mpde->wire_count > 1, - ("pmap_enter_pde: mpde's wire count is too low")); - mpde->wire_count--; + KASSERT(pdpg->wire_count > 1, + ("pmap_enter_pde: pdpg's wire count is too low")); + pdpg->wire_count--; CTR2(KTR_PMAP, "pmap_enter_pde: failure for va %#lx" " in pmap %p", va, pmap); return (FALSE); @@ -4567,7 +4586,7 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t va, vm_page_t if (!pmap_pv_insert_pde(pmap, va, VM_PAGE_TO_PHYS(m), lockp)) { SLIST_INIT(&free); - if (pmap_unwire_ptp(pmap, va, mpde, &free)) { + if (pmap_unwire_ptp(pmap, va, pdpg, &free)) { /* * Although "va" is not mapped, paging- * structure caches could nonetheless have @@ -4992,6 +5011,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_ vm_offset_t addr; vm_offset_t end_addr = src_addr + len; vm_offset_t va_next; + vm_page_t dst_pdpg, dstmpte, srcmpte; pt_entry_t PG_A, PG_M, PG_V; if (dst_addr != src_addr) @@ -5026,7 +5046,6 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_ for (addr = src_addr; addr < end_addr; addr = va_next) { pt_entry_t *src_pte, *dst_pte; - vm_page_t dstmpde, dstmpte, srcmpte; pml4_entry_t *pml4e; pdp_entry_t *pdpe; pd_entry_t srcptepaddr, *pde; @@ -5062,11 +5081,11 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_ if (srcptepaddr & PG_PS) { if ((addr & PDRMASK) != 0 || addr + NBPDR > end_addr) continue; - dstmpde = pmap_allocpde(dst_pmap, addr, NULL); - if (dstmpde == NULL) + dst_pdpg = pmap_allocpde(dst_pmap, addr, NULL); + if (dst_pdpg == NULL) break; pde = (pd_entry_t *) - PHYS_TO_DMAP(VM_PAGE_TO_PHYS(dstmpde)); + PHYS_TO_DMAP(VM_PAGE_TO_PHYS(dst_pdpg)); pde = &pde[pmap_pde_index(addr)]; if (*pde == 0 && ((srcptepaddr & PG_MANAGED) == 0 || pmap_pv_insert_pde(dst_pmap, addr, srcptepaddr & @@ -5075,7 +5094,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_ pmap_resident_count_inc(dst_pmap, NBPDR / PAGE_SIZE); atomic_add_long(&pmap_pde_mappings, 1); } else - dstmpde->wire_count--; + dst_pdpg->wire_count--; continue; } @@ -6426,8 +6445,8 @@ pmap_demote_pdpe(pmap_t pmap, pdp_entry_t *pdpe, vm_of pdp_entry_t newpdpe, oldpdpe; pd_entry_t *firstpde, newpde, *pde; pt_entry_t PG_A, PG_M, PG_RW, PG_V; - vm_paddr_t mpdepa; - vm_page_t mpde; + vm_paddr_t pdpgpa; + vm_page_t pdpg; PG_A = pmap_accessed_bit(pmap); PG_M = pmap_modified_bit(pmap); @@ -6438,15 +6457,15 @@ pmap_demote_pdpe(pmap_t pmap, pdp_entry_t *pdpe, vm_of oldpdpe = *pdpe; KASSERT((oldpdpe & (PG_PS | PG_V)) == (PG_PS | PG_V), ("pmap_demote_pdpe: oldpdpe is missing PG_PS and/or PG_V")); - if ((mpde = vm_page_alloc(NULL, va >> PDPSHIFT, VM_ALLOC_INTERRUPT | + if ((pdpg = vm_page_alloc(NULL, va >> PDPSHIFT, VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED)) == NULL) { CTR2(KTR_PMAP, "pmap_demote_pdpe: failure for va %#lx" " in pmap %p", va, pmap); return (FALSE); } - mpdepa = VM_PAGE_TO_PHYS(mpde); - firstpde = (pd_entry_t *)PHYS_TO_DMAP(mpdepa); - newpdpe = mpdepa | PG_M | PG_A | (oldpdpe & PG_U) | PG_RW | PG_V; + pdpgpa = VM_PAGE_TO_PHYS(pdpg); + firstpde = (pd_entry_t *)PHYS_TO_DMAP(pdpgpa); + newpdpe = pdpgpa | PG_M | PG_A | (oldpdpe & PG_U) | PG_RW | PG_V; KASSERT((oldpdpe & PG_A) != 0, ("pmap_demote_pdpe: oldpdpe is missing PG_A")); KASSERT((oldpdpe & (PG_M | PG_RW)) != PG_RW, Copied: projects/pnfs-planb-server/sys/amd64/conf/MMCCAM (from r321352, head/sys/amd64/conf/MMCCAM) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pnfs-planb-server/sys/amd64/conf/MMCCAM Fri Jul 21 19:26:34 2017 (r321353, copy of r321352, head/sys/amd64/conf/MMCCAM) @@ -0,0 +1,36 @@ +# MMCCAM is the kernel config for doing MMC on CAM development +# and testing on bhyve +# $FreeBSD$ + +include MINIMAL + +ident MMCCAM + +# Access GPT-formatted and labeled root volume +options GEOM_PART_GPT +options GEOM_LABEL + +# UART -- for bhyve console +device uart + +# kgdb stub +device bvmdebug + +# VirtIO support, needed for bhyve +device virtio # Generic VirtIO bus (required) +device virtio_pci # VirtIO PCI device +device vtnet # VirtIO Ethernet device +device virtio_blk # VirtIO Block device +device virtio_scsi # VirtIO SCSI device +device virtio_balloon # VirtIO Memory Balloon device + +# CAM-specific stuff +device pass +device scbus +device da +device mmccam + +options MMCCAM +# Add CAMDEBUG stuff +options CAMDEBUG +options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH|CAM_DEBUG_TRACE) Modified: projects/pnfs-planb-server/sys/amd64/conf/NOTES ============================================================================== --- projects/pnfs-planb-server/sys/amd64/conf/NOTES Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/conf/NOTES Fri Jul 21 19:26:34 2017 (r321353) @@ -414,7 +414,6 @@ device arcmsr # Areca SATA II RAID # The driver is implemented as a SIM, and so, needs the CAM infrastructure. # options TWA_DEBUG # 0-10; 10 prints the most messages. -options TWA_FLASH_FIRMWARE # firmware image bundled when defined. device twa # 3ware 9000 series PATA/SATA RAID # Modified: projects/pnfs-planb-server/sys/amd64/include/bus_dma.h ============================================================================== --- projects/pnfs-planb-server/sys/amd64/include/bus_dma.h Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/include/bus_dma.h Fri Jul 21 19:26:34 2017 (r321353) @@ -29,6 +29,6 @@ #ifndef _AMD64_BUS_DMA_H_ #define _AMD64_BUS_DMA_H_ -#include +#include #endif /* _AMD64_BUS_DMA_H_ */ Modified: projects/pnfs-planb-server/sys/amd64/include/efi.h ============================================================================== --- projects/pnfs-planb-server/sys/amd64/include/efi.h Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/include/efi.h Fri Jul 21 19:26:34 2017 (r321353) @@ -36,8 +36,14 @@ * XXX: from gcc 6.2 manual: * Note, the ms_abi attribute for Microsoft Windows 64-bit targets * currently requires the -maccumulate-outgoing-args option. + * + * Avoid EFIABI_ATTR declarations for compilers that don't support it. + * GCC support began in version 4.4. */ +#if defined(__clang__) || defined(__GNUC__) && \ + (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4) #define EFIABI_ATTR __attribute__((ms_abi)) +#endif #ifdef _KERNEL struct uuid; Modified: projects/pnfs-planb-server/sys/amd64/linux/linux_sysvec.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/linux/linux_sysvec.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/linux/linux_sysvec.c Fri Jul 21 19:26:34 2017 (r321353) @@ -923,9 +923,22 @@ static Elf64_Brandinfo linux_glibc2brandshort = { .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE }; +static Elf64_Brandinfo linux_muslbrand = { + .brand = ELFOSABI_LINUX, + .machine = EM_X86_64, + .compat_3_brand = "Linux", + .emul_path = "/compat/linux", + .interp_path = "/lib/ld-musl-x86_64.so.1", + .sysvec = &elf_linux_sysvec, + .interp_newpath = NULL, + .brand_note = &linux64_brandnote, + .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE +}; + Elf64_Brandinfo *linux_brandlist[] = { &linux_glibc2brand, &linux_glibc2brandshort, + &linux_muslbrand, NULL }; Modified: projects/pnfs-planb-server/sys/amd64/linux32/linux32_sysvec.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/linux32/linux32_sysvec.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/linux32/linux32_sysvec.c Fri Jul 21 19:26:34 2017 (r321353) @@ -1141,9 +1141,22 @@ static Elf32_Brandinfo linux_glibc2brand = { .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE }; +static Elf32_Brandinfo linux_muslbrand = { + .brand = ELFOSABI_LINUX, + .machine = EM_386, + .compat_3_brand = "Linux", + .emul_path = "/compat/linux", + .interp_path = "/lib/ld-musl-i386.so.1", + .sysvec = &elf_linux_sysvec, + .interp_newpath = NULL, + .brand_note = &linux32_brandnote, + .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE +}; + Elf32_Brandinfo *linux_brandlist[] = { &linux_brand, &linux_glibc2brand, + &linux_muslbrand, NULL }; Modified: projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_hw.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_hw.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_hw.c Fri Jul 21 19:26:34 2017 (r321353) @@ -496,7 +496,7 @@ amdvi_cmp_wait(struct amdvi_softc *softc) #ifdef AMDVI_DEBUG_CMD if (status) - device_printf(softc->dev, "CMD completion DONE Tail:0x%x, + device_printf(softc->dev, "CMD completion DONE Tail:0x%x, " "Head:0x%x, loop:%d.\n", ctrl->cmd_tail, ctrl->cmd_head, loop); #endif Modified: projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_priv.h ============================================================================== --- projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_priv.h Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/vmm/amd/amdvi_priv.h Fri Jul 21 19:26:34 2017 (r321353) @@ -65,7 +65,7 @@ struct amdvi_dte { uint32_t dt_valid:1; /* Device Table valid. */ uint32_t pt_valid:1; /* Page translation valid. */ - uint8_t :7; /* Reserved[8:2] */ + uint16_t :7; /* Reserved[8:2] */ uint8_t pt_level:3; /* Paging level, 0 to disable. */ uint64_t pt_base:40; /* Page table root pointer. */ uint8_t :3; /* Reserved[54:52] */ Modified: projects/pnfs-planb-server/sys/amd64/vmm/amd/ivrs_drv.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/vmm/amd/ivrs_drv.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/amd64/vmm/amd/ivrs_drv.c Fri Jul 21 19:26:34 2017 (r321353) @@ -75,6 +75,12 @@ ivrs_hdr_iterate_tbl(ivhd_iter_t iter, void *arg) end = (ACPI_IVRS_HEADER *)((char *)ivrs + ivrs->Header.Length); while (ivrs_hdr < end) { + if ((uint8_t *)ivrs_hdr + ivrs_hdr->Length > (uint8_t *)end) { + printf("AMD-Vi:IVHD/IVMD is corrupted, length : %d\n", + ivrs_hdr->Length); + break; + } + switch (ivrs_hdr->Type) { case ACPI_IVRS_TYPE_HARDWARE: /* Legacy */ case 0x11: @@ -98,10 +104,6 @@ ivrs_hdr_iterate_tbl(ivhd_iter_t iter, void *arg) ivrs_hdr = (ACPI_IVRS_HEADER *)((uint8_t *)ivrs_hdr + ivrs_hdr->Length); - if (ivrs_hdr->Length < 0) { - printf("AMD-Vi:IVHD/IVMD is corrupted, length : %d\n", ivrs_hdr->Length); - break; - } } } Modified: projects/pnfs-planb-server/sys/arm/allwinner/a10_ehci.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/a10_ehci.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/arm/allwinner/a10_ehci.c Fri Jul 21 19:26:34 2017 (r321353) @@ -226,16 +226,13 @@ a10_ehci_attach(device_t self) } /* Enable USB PHY */ - err = phy_get_by_ofw_name(self, 0, "usb", &aw_sc->phy); - if (err != 0) { - device_printf(self, "Could not get phy\n"); - goto error; + if (phy_get_by_ofw_name(self, 0, "usb", &aw_sc->phy) == 0) { + err = phy_enable(self, aw_sc->phy); + if (err != 0) { + device_printf(self, "Could not enable phy\n"); + goto error; + } } - err = phy_enable(self, aw_sc->phy); - if (err != 0) { - device_printf(self, "Could not enable phy\n"); - goto error; - } /* Enable passby */ reg_value = A10_READ_4(sc, SW_USB_PMU_IRQ_ENABLE); @@ -263,10 +260,6 @@ a10_ehci_attach(device_t self) return (0); error: - if (aw_sc->clk != NULL) { - clk_disable(aw_sc->clk); - clk_release(aw_sc->clk); - } a10_ehci_detach(self); return (ENXIO); } Modified: projects/pnfs-planb-server/sys/arm/allwinner/a10_mmc.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/a10_mmc.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/arm/allwinner/a10_mmc.c Fri Jul 21 19:26:34 2017 (r321353) @@ -65,6 +65,7 @@ static struct ofw_compat_data compat_data[] = { {"allwinner,sun4i-a10-mmc", 1}, {"allwinner,sun5i-a13-mmc", 1}, {"allwinner,sun7i-a20-mmc", 1}, + {"allwinner,sun50i-a64-mmc", 1}, {NULL, 0} }; Modified: projects/pnfs-planb-server/sys/arm/allwinner/clkng/aw_ccung.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/clkng/aw_ccung.c Fri Jul 21 18:58:51 2017 (r321352) +++ projects/pnfs-planb-server/sys/arm/allwinner/clkng/aw_ccung.c Fri Jul 21 19:26:34 2017 (r321353) @@ -54,10 +54,18 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef __aarch64__ +#include "opt_soc.h" +#endif + #if defined(SOC_ALLWINNER_A31) #include #endif +#if defined(SOC_ALLWINNER_A64) +#include +#endif + #if defined(SOC_ALLWINNER_H3) #include #endif @@ -78,6 +86,10 @@ static struct resource_spec aw_ccung_spec[] = { #define A31_CCU 2 #endif +#if defined(SOC_ALLWINNER_A64) +#define A64_CCU 2 +#endif + static struct ofw_compat_data compat_data[] = { #if defined(SOC_ALLWINNER_H3) { "allwinner,sun8i-h3-ccu", H3_CCU }, @@ -85,6 +97,9 @@ static struct ofw_compat_data compat_data[] = { #if defined(SOC_ALLWINNER_A31) { "allwinner,sun6i-a31-ccu", A31_CCU }, #endif +#if defined(SOC_ALLWINNER_A64) + { "allwinner,sun50i-a64-ccu", A64_CCU }, +#endif {NULL, 0 } }; @@ -261,7 +276,7 @@ aw_ccung_init_clocks(struct aw_ccung_softc *sc) sc->clk_init[i].default_freq, 0 , 0); if (error != 0) { device_printf(sc->dev, - "Cannot set frequency for %s to %llu\n", + "Cannot set frequency for %s to %ju\n", sc->clk_init[i].name, sc->clk_init[i].default_freq); continue; @@ -309,6 +324,11 @@ aw_ccung_attach(device_t dev) #if defined(SOC_ALLWINNER_A31) case A31_CCU: ccu_a31_register_clocks(sc); + break; +#endif +#if defined(SOC_ALLWINNER_A64) + case A64_CCU: + ccu_a64_register_clocks(sc); break; #endif } Copied: projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_a64.c (from r321352, head/sys/arm/allwinner/clkng/ccu_a64.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_a64.c Fri Jul 21 19:26:34 2017 (r321353, copy of r321352, head/sys/arm/allwinner/clkng/ccu_a64.c) @@ -0,0 +1,743 @@ +/*- + * Copyright (c) 2017 Emmanuel Vadot + * 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 ``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. + * + * $FreeBSD$ + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "ccu_a64.h" + +static struct aw_ccung_reset a64_ccu_resets[] = { + CCU_RESET(A64_RST_USB_PHY0, 0x0cc, 0) + CCU_RESET(A64_RST_USB_PHY1, 0x0cc, 1) + CCU_RESET(A64_RST_USB_HSIC, 0x0cc, 2) + + CCU_RESET(A64_RST_BUS_MIPI_DSI, 0x2c0, 1) + CCU_RESET(A64_RST_BUS_CE, 0x2c0, 5) + CCU_RESET(A64_RST_BUS_DMA, 0x2c0, 6) + CCU_RESET(A64_RST_BUS_MMC0, 0x2c0, 8) + CCU_RESET(A64_RST_BUS_MMC1, 0x2c0, 9) + CCU_RESET(A64_RST_BUS_MMC2, 0x2c0, 10) + CCU_RESET(A64_RST_BUS_NAND, 0x2c0, 13) + CCU_RESET(A64_RST_BUS_DRAM, 0x2c0, 14) + CCU_RESET(A64_RST_BUS_EMAC, 0x2c0, 17) + CCU_RESET(A64_RST_BUS_TS, 0x2c0, 18) + CCU_RESET(A64_RST_BUS_HSTIMER, 0x2c0, 19) + CCU_RESET(A64_RST_BUS_SPI0, 0x2c0, 20) + CCU_RESET(A64_RST_BUS_SPI1, 0x2c0, 21) + CCU_RESET(A64_RST_BUS_OTG, 0x2c0, 23) + CCU_RESET(A64_RST_BUS_EHCI0, 0x2c0, 24) + CCU_RESET(A64_RST_BUS_EHCI1, 0x2c0, 25) + CCU_RESET(A64_RST_BUS_OHCI0, 0x2c0, 26) + CCU_RESET(A64_RST_BUS_OHCI1, 0x2c0, 27) + + CCU_RESET(A64_RST_BUS_VE, 0x2c4, 0) + CCU_RESET(A64_RST_BUS_TCON0, 0x2c4, 3) + CCU_RESET(A64_RST_BUS_TCON1, 0x2c4, 4) + CCU_RESET(A64_RST_BUS_DEINTERLACE, 0x2c4, 5) + CCU_RESET(A64_RST_BUS_CSI, 0x2c4, 8) + CCU_RESET(A64_RST_BUS_HDMI0, 0x2c4, 10) + CCU_RESET(A64_RST_BUS_HDMI1, 0x2c4, 11) + CCU_RESET(A64_RST_BUS_DE, 0x2c4, 12) + CCU_RESET(A64_RST_BUS_GPU, 0x2c4, 20) + CCU_RESET(A64_RST_BUS_MSGBOX, 0x2c4, 21) + CCU_RESET(A64_RST_BUS_SPINLOCK, 0x2c4, 22) + CCU_RESET(A64_RST_BUS_DBG, 0x2c4, 31) + + CCU_RESET(A64_RST_BUS_LVDS, 0x2C8, 31) + + CCU_RESET(A64_RST_BUS_CODEC, 0x2D0, 0) + CCU_RESET(A64_RST_BUS_SPDIF, 0x2D0, 1) + CCU_RESET(A64_RST_BUS_THS, 0x2D0, 8) + CCU_RESET(A64_RST_BUS_I2S0, 0x2D0, 12) + CCU_RESET(A64_RST_BUS_I2S1, 0x2D0, 13) + CCU_RESET(A64_RST_BUS_I2S2, 0x2D0, 14) + + CCU_RESET(A64_RST_BUS_I2C0, 0x2D8, 0) + CCU_RESET(A64_RST_BUS_I2C1, 0x2D8, 1) + CCU_RESET(A64_RST_BUS_I2C2, 0x2D8, 2) + CCU_RESET(A64_RST_BUS_SCR, 0x2D8, 5) + CCU_RESET(A64_RST_BUS_UART0, 0x2D8, 16) + CCU_RESET(A64_RST_BUS_UART1, 0x2D8, 17) + CCU_RESET(A64_RST_BUS_UART2, 0x2D8, 18) + CCU_RESET(A64_RST_BUS_UART3, 0x2D8, 19) + CCU_RESET(A64_RST_BUS_UART4, 0x2D8, 20) +}; + +static struct aw_ccung_gate a64_ccu_gates[] = { + CCU_GATE(A64_CLK_BUS_MIPI_DSI, "bus-mipi-dsi", "ahb1", 0x60, 1) + CCU_GATE(A64_CLK_BUS_CE, "bus-ce", "ahb1", 0x60, 5) + CCU_GATE(A64_CLK_BUS_DMA, "bus-dma", "ahb1", 0x60, 6) + CCU_GATE(A64_CLK_BUS_MMC0, "bus-mmc0", "ahb1", 0x60, 8) + CCU_GATE(A64_CLK_BUS_MMC1, "bus-mmc1", "ahb1", 0x60, 9) + CCU_GATE(A64_CLK_BUS_MMC2, "bus-mmc2", "ahb1", 0x60, 10) + CCU_GATE(A64_CLK_BUS_NAND, "bus-nand", "ahb1", 0x60, 13) + CCU_GATE(A64_CLK_BUS_DRAM, "bus-dram", "ahb1", 0x60, 14) + CCU_GATE(A64_CLK_BUS_EMAC, "bus-emac", "ahb2", 0x60, 16) + CCU_GATE(A64_CLK_BUS_TS, "bus-ts", "ahb1", 0x60, 18) + CCU_GATE(A64_CLK_BUS_HSTIMER, "bus-hstimer", "ahb1", 0x60, 19) + CCU_GATE(A64_CLK_BUS_SPI0, "bus-spi0", "ahb1", 0x60, 20) + CCU_GATE(A64_CLK_BUS_SPI1, "bus-spi1", "ahb1", 0x60, 21) + CCU_GATE(A64_CLK_BUS_OTG, "bus-otg", "ahb1", 0x60, 23) + CCU_GATE(A64_CLK_BUS_EHCI0, "bus-ehci0", "ahb1", 0x60, 24) + CCU_GATE(A64_CLK_BUS_EHCI1, "bus-ehci1", "ahb2", 0x60, 25) + CCU_GATE(A64_CLK_BUS_OHCI0, "bus-ohci0", "ahb1", 0x60, 26) + CCU_GATE(A64_CLK_BUS_OHCI1, "bus-ohci1", "ahb2", 0x60, 27) + + CCU_GATE(A64_CLK_BUS_VE, "bus-ve", "ahb1", 0x64, 0) + CCU_GATE(A64_CLK_BUS_TCON0, "bus-tcon0", "ahb1", 0x64, 3) + CCU_GATE(A64_CLK_BUS_TCON1, "bus-tcon1", "ahb1", 0x64, 4) + CCU_GATE(A64_CLK_BUS_DEINTERLACE, "bus-deinterlace", "ahb1", 0x64, 5) + CCU_GATE(A64_CLK_BUS_CSI, "bus-csi", "ahb1", 0x64, 8) + CCU_GATE(A64_CLK_BUS_HDMI, "bus-hdmi", "ahb1", 0x64, 11) + CCU_GATE(A64_CLK_BUS_DE, "bus-de", "ahb1", 0x64, 12) + CCU_GATE(A64_CLK_BUS_GPU, "bus-gpu", "ahb1", 0x64, 20) + CCU_GATE(A64_CLK_BUS_MSGBOX, "bus-msgbox", "ahb1", 0x64, 21) + CCU_GATE(A64_CLK_BUS_SPINLOCK, "bus-spinlock", "ahb1", 0x64, 22) + + CCU_GATE(A64_CLK_BUS_CODEC, "bus-codec", "apb1", 0x68, 0) + CCU_GATE(A64_CLK_BUS_SPDIF, "bus-spdif", "apb1", 0x68, 1) + CCU_GATE(A64_CLK_BUS_PIO, "bus-pio", "apb1", 0x68, 5) + CCU_GATE(A64_CLK_BUS_THS, "bus-ths", "apb1", 0x68, 8) + CCU_GATE(A64_CLK_BUS_I2S0, "bus-i2s0", "apb1", 0x68, 12) + CCU_GATE(A64_CLK_BUS_I2S1, "bus-i2s1", "apb1", 0x68, 13) + CCU_GATE(A64_CLK_BUS_I2S2, "bus-i2s2", "apb1", 0x68, 14) + + CCU_GATE(A64_CLK_BUS_I2C0, "bus-i2c0", "apb2", 0x6C, 0) + CCU_GATE(A64_CLK_BUS_I2C1, "bus-i2c1", "apb2", 0x6C, 1) + CCU_GATE(A64_CLK_BUS_I2C2, "bus-i2c2", "apb2", 0x6C, 2) + CCU_GATE(A64_CLK_BUS_SCR, "bus-src", "apb2", 0x6C, 5) + CCU_GATE(A64_CLK_BUS_UART0, "bus-uart0", "apb2", 0x6C, 16) + CCU_GATE(A64_CLK_BUS_UART1, "bus-uart1", "apb2", 0x6C, 17) + CCU_GATE(A64_CLK_BUS_UART2, "bus-uart2", "apb2", 0x6C, 18) + CCU_GATE(A64_CLK_BUS_UART3, "bus-uart3", "apb2", 0x6C, 19) + CCU_GATE(A64_CLK_BUS_UART4, "bus-uart4", "apb2", 0x6C, 20) + + CCU_GATE(A64_CLK_BUS_DBG, "bus-dbg", "ahb1", 0x70, 7) + + CCU_GATE(A64_CLK_USB_PHY0, "usb-phy0", "osc24M", 0xcc, 8) + CCU_GATE(A64_CLK_USB_PHY1, "usb-phy1", "osc24M", 0xcc, 9) + CCU_GATE(A64_CLK_USB_HSIC, "usb-hsic", "pll_hsic", 0xcc, 10) + CCU_GATE(A64_CLK_USB_HSIC_12M, "usb-hsic-12M", "osc12M", 0xcc, 11) + CCU_GATE(A64_CLK_USB_OHCI0, "usb-ohci0", "osc12M", 0xcc, 16) + CCU_GATE(A64_CLK_USB_OHCI1, "usb-ohci1", "usb-ohci0", 0xcc, 17) + + CCU_GATE(A64_CLK_DRAM_VE, "dram-ve", "dram", 0x100, 0) + CCU_GATE(A64_CLK_DRAM_CSI, "dram-csi", "dram", 0x100, 1) + CCU_GATE(A64_CLK_DRAM_DEINTERLACE, "dram-deinterlace", "dram", 0x100, 2) + CCU_GATE(A64_CLK_DRAM_TS, "dram-ts", "dram", 0x100, 3) + + CCU_GATE(A64_CLK_CSI_MISC, "csi-misc", "osc24M", 0x130, 31) + + CCU_GATE(A64_CLK_AC_DIG_4X, "ac-dig-4x", "pll_audio-4x", 0x140, 30) + CCU_GATE(A64_CLK_AC_DIG, "ac-dig", "pll_audio", 0x140, 31) + + CCU_GATE(A64_CLK_AVS, "avs", "osc24M", 0x144, 31) + + CCU_GATE(A64_CLK_HDMI_DDC, "hdmi-ddc", "osc24M", 0x154, 31) +}; + +static const char *osc12m_parents[] = {"osc24M"}; +FIXED_CLK(osc12m_clk, + A64_CLK_OSC_12M, /* id */ + "osc12M", /* name */ + osc12m_parents, /* parent */ + 0, /* freq */ + 1, /* mult */ + 2, /* div */ + 0); /* flags */ + +static const char *pll_cpux_parents[] = {"osc24M"}; +NKMP_CLK(pll_cpux_clk, + A64_CLK_PLL_CPUX, /* id */ + "pll_cpux", pll_cpux_parents, /* name, parents */ + 0x00, /* offset */ + 8, 5, 0, 0, /* n factor */ + 4, 2, 0, 0, /* k factor */ + 0, 2, 0, 0, /* m factor */ + 16, 2, 0, AW_CLK_FACTOR_POWER_OF_TWO, /* p factor */ + 31, /* gate */ + 28, 1000, /* lock */ + AW_CLK_HAS_GATE | AW_CLK_HAS_LOCK | AW_CLK_SCALE_CHANGE); /* flags */ + +static const char *pll_audio_parents[] = {"osc24M"}; +NKMP_CLK(pll_audio_clk, + A64_CLK_PLL_AUDIO, /* id */ + "pll_audio", pll_audio_parents, /* name, parents */ + 0x08, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 0, 1, AW_CLK_FACTOR_FIXED, /* k factor (fake) */ + 0, 5, 0, 0, /* m factor */ + 16, 4, 0, 0, /* p factor */ + 31, /* gate */ + 28, 1000, /* lock */ + AW_CLK_HAS_GATE | AW_CLK_HAS_LOCK); /* flags */ + +static const char *pll_audio_mult_parents[] = {"pll_audio"}; +FIXED_CLK(pll_audio_2x_clk, + A64_CLK_PLL_AUDIO_2X, /* id */ + "pll_audio-2x", /* name */ + pll_audio_mult_parents, /* parent */ + 0, /* freq */ + 2, /* mult */ + 1, /* div */ + 0); /* flags */ +FIXED_CLK(pll_audio_4x_clk, + A64_CLK_PLL_AUDIO_4X, /* id */ + "pll_audio-4x", /* name */ + pll_audio_mult_parents, /* parent */ + 0, /* freq */ + 4, /* mult */ + 1, /* div */ + 0); /* flags */ +FIXED_CLK(pll_audio_8x_clk, + A64_CLK_PLL_AUDIO_8X, /* id */ + "pll_audio-8x", /* name */ + pll_audio_mult_parents, /* parent */ + 0, /* freq */ + 8, /* mult */ + 1, /* div */ + 0); /* flags */ + +static const char *pll_video0_parents[] = {"osc24M"}; +NM_CLK_WITH_FRAC(pll_video0_clk, + A64_CLK_PLL_VIDEO0, /* id */ + "pll_video0", pll_video0_parents, /* name, parents */ + 0x10, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 4, 0, 0, /* m factor */ + 31, 28, 1000, /* gate, lock, lock retries */ + AW_CLK_HAS_LOCK, /* flags */ + 270000000, 297000000, /* freq0, freq1 */ + 24, 25); /* mode sel, freq sel */ + +static const char *pll_ve_parents[] = {"osc24M"}; +NM_CLK_WITH_FRAC(pll_ve_clk, + A64_CLK_PLL_VE, /* id */ + "pll_ve", pll_ve_parents, /* name, parents */ + 0x18, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 4, 0, 0, /* m factor */ + 31, 28, 1000, /* gate, lock, lock retries */ + AW_CLK_HAS_LOCK, /* flags */ + 270000000, 297000000, /* freq0, freq1 */ + 24, 25); /* mode sel, freq sel */ + +static const char *pll_ddr0_parents[] = {"osc24M"}; +NKMP_CLK_WITH_UPDATE(pll_ddr0_clk, + A64_CLK_PLL_DDR0, /* id */ + "pll_ddr0", pll_ddr0_parents, /* name, parents */ + 0x20, /* offset */ + 8, 5, 0, 0, /* n factor */ + 4, 2, 0, 0, /* k factor */ + 0, 2, 0, 0, /* m factor */ + 0, 0, 1, AW_CLK_FACTOR_FIXED, /* p factor (fake) */ + 31, /* gate */ + 28, 1000, /* lock */ + 20, /* update */ + AW_CLK_HAS_GATE | AW_CLK_HAS_LOCK); /* flags */ + +static const char *pll_periph0_2x_parents[] = {"osc24M"}; +static const char *pll_periph0_parents[] = {"pll_periph0_2x"}; +NKMP_CLK(pll_periph0_2x_clk, + A64_CLK_PLL_PERIPH0_2X, /* id */ + "pll_periph0_2x", pll_periph0_2x_parents, /* name, parents */ + 0x28, /* offset */ + 8, 5, 0, 0, /* n factor */ + 4, 2, 0, 0, /* k factor */ + 0, 0, 2, AW_CLK_FACTOR_FIXED, /* m factor (fake) */ + 0, 0, 1, AW_CLK_FACTOR_FIXED, /* p factor (fake) */ + 31, /* gate */ + 28, 1000, /* lock */ + AW_CLK_HAS_GATE | AW_CLK_HAS_LOCK); /* flags */ +FIXED_CLK(pll_periph0_clk, + A64_CLK_PLL_PERIPH0, /* id */ + "pll_periph0", /* name */ + pll_periph0_parents, /* parent */ + 0, /* freq */ + 1, /* mult */ + 2, /* div */ + 0); /* flags */ + +static const char *pll_periph1_2x_parents[] = {"osc24M"}; +static const char *pll_periph1_parents[] = {"pll_periph1_2x"}; +NKMP_CLK(pll_periph1_2x_clk, + A64_CLK_PLL_PERIPH1_2X, /* id */ + "pll_periph1_2x", pll_periph1_2x_parents, /* name, parents */ + 0x2C, /* offset */ + 8, 5, 0, 0, /* n factor */ + 4, 2, 0, 0, /* k factor */ + 0, 0, 2, AW_CLK_FACTOR_FIXED, /* m factor (fake) */ + 0, 0, 1, AW_CLK_FACTOR_FIXED, /* p factor (fake) */ + 31, /* gate */ + 28, 1000, /* lock */ + AW_CLK_HAS_GATE | AW_CLK_HAS_LOCK); /* flags */ +FIXED_CLK(pll_periph1_clk, + A64_CLK_PLL_PERIPH1, /* id */ + "pll_periph1", /* name */ + pll_periph1_parents, /* parent */ + 0, /* freq */ + 1, /* mult */ + 2, /* div */ + 0); /* flags */ + +static const char *pll_video1_parents[] = {"osc24M"}; +NM_CLK_WITH_FRAC(pll_video1_clk, + A64_CLK_PLL_VIDEO1, /* id */ + "pll_video1", pll_video1_parents, /* name, parents */ + 0x30, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 4, 0, 0, /* m factor */ + 31, 28, 1000, /* gate, lock, lock retries */ + AW_CLK_HAS_LOCK, /* flags */ + 270000000, 297000000, /* freq0, freq1 */ + 24, 25); /* mode sel, freq sel */ + +static const char *pll_gpu_parents[] = {"osc24M"}; +NM_CLK_WITH_FRAC(pll_gpu_clk, + A64_CLK_PLL_GPU, /* id */ + "pll_gpu", pll_gpu_parents, /* name, parents */ + 0x38, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 4, 0, 0, /* m factor */ + 31, 28, 1000, /* gate, lock, lock retries */ + AW_CLK_HAS_LOCK, /* flags */ + 270000000, 297000000, /* freq0, freq1 */ + 24, 25); /* mode sel, freq sel */ + +/* PLL MIPI is missing */ + +static const char *pll_hsic_parents[] = {"osc24M"}; +NM_CLK_WITH_FRAC(pll_hsic_clk, + A64_CLK_PLL_HSIC, /* id */ + "pll_hsic", pll_hsic_parents, /* name, parents */ + 0x44, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 4, 0, 0, /* m factor */ + 31, 28, 1000, /* gate, lock, lock retries */ + AW_CLK_HAS_LOCK, /* flags */ + 270000000, 297000000, /* freq0, freq1 */ + 24, 25); /* mode sel, freq sel */ + +static const char *pll_de_parents[] = {"osc24M"}; +NM_CLK_WITH_FRAC(pll_de_clk, + A64_CLK_PLL_DE, /* id */ + "pll_de", pll_de_parents, /* name, parents */ + 0x48, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 4, 0, 0, /* m factor */ + 31, 28, 1000, /* gate, lock, lock retries */ + AW_CLK_HAS_LOCK, /* flags */ + 270000000, 297000000, /* freq0, freq1 */ + 24, 25); /* mode sel, freq sel */ + +static const char *pll_ddr1_parents[] = {"osc24M"}; +NKMP_CLK_WITH_UPDATE(pll_ddr1_clk, + A64_CLK_PLL_DDR1, /* id */ + "pll_ddr1", pll_ddr1_parents, /* name, parents */ + 0x4C, /* offset */ + 8, 7, 0, 0, /* n factor */ + 0, 0, 1, AW_CLK_FACTOR_FIXED, /* k factor (fake) */ + 0, 2, 0, 0, /* m factor */ + 0, 0, 1, AW_CLK_FACTOR_FIXED, /* p factor (fake) */ + 31, /* gate */ + 28, 1000, /* lock */ + 20, /* update */ + AW_CLK_HAS_GATE | AW_CLK_HAS_LOCK); /* flags */ + +static const char *cpux_parents[] = {"osc32k", "osc24M", "pll_cpux"}; +MUX_CLK(cpux_clk, + A64_CLK_CPUX, /* id */ + "cpux", cpux_parents, /* name, parents */ + 0x50, 16, 2); /* offset, shift, width */ + +static const char *axi_parents[] = {"cpux"}; +DIV_CLK(axi_clk, + A64_CLK_AXI, /* id */ + "axi", axi_parents, /* name, parents */ + 0x50, /* offset */ + 0, 2, /* shift, width */ + 0, NULL); /* flags, div table */ + +static const char *apb_parents[] = {"cpux"}; +DIV_CLK(apb_clk, + A64_CLK_APB, /* id */ + "apb", apb_parents, /* name, parents */ + 0x50, /* offset */ + 8, 2, /* shift, width */ + 0, NULL); /* flags, div table */ + +static const char *ahb1_parents[] = {"osc32k", "osc24M", "axi", "pll_periph0"}; +PREDIV_CLK(ahb1_clk, A64_CLK_AHB1, /* id */ + "ahb1", ahb1_parents, /* name, parents */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Jul 21 23:08:14 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5900C09EF9 for ; Fri, 21 Jul 2017 23:08:14 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 78E93242D; Fri, 21 Jul 2017 23:08:14 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6LN8DAk072217; Fri, 21 Jul 2017 23:08:13 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6LN8D89072216; Fri, 21 Jul 2017 23:08:13 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201707212308.v6LN8D89072216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 21 Jul 2017 23:08:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321355 - projects/pnfs-planb-server-stable11/sys/fs/nfsclient X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: projects/pnfs-planb-server-stable11/sys/fs/nfsclient X-SVN-Commit-Revision: 321355 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jul 2017 23:08:14 -0000 Author: rmacklem Date: Fri Jul 21 23:08:13 2017 New Revision: 321355 URL: https://svnweb.freebsd.org/changeset/base/321355 Log: r320062 introduced a bug when doing NFSv4.1 mounts against some non-FreeBSD servers. r320062 used nm_rsize, nm_wsize to set the maximum request/response sizes for the NFSv4.1 session. If rsize,wsize are not specified as options, the value of nm_rsize, nm_wsize is 0 at session creation, resulting in values for request/response that are too small. This patch fixes the problem. A workaround is to specify rsize=N,wsize=N mount options explicitly, so they are set before session creation. This bug only affects NFSv4.1 mounts against some non-FreeBSD servers. Modified: projects/pnfs-planb-server-stable11/sys/fs/nfsclient/nfs_clrpcops.c Modified: projects/pnfs-planb-server-stable11/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- projects/pnfs-planb-server-stable11/sys/fs/nfsclient/nfs_clrpcops.c Fri Jul 21 20:55:38 2017 (r321354) +++ projects/pnfs-planb-server-stable11/sys/fs/nfsclient/nfs_clrpcops.c Fri Jul 21 23:08:13 2017 (r321355) @@ -4664,6 +4664,11 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc struct nfsrv_descript *nd = &nfsd; int error, irdcnt; + /* Make sure nm_rsize, nm_wsize is set. */ + if (nmp->nm_rsize > NFS_MAXBSIZE || nmp->nm_rsize == 0) + nmp->nm_rsize = NFS_MAXBSIZE; + if (nmp->nm_wsize > NFS_MAXBSIZE || nmp->nm_wsize == 0) + nmp->nm_wsize = NFS_MAXBSIZE; nfscl_reqstart(nd, NFSPROC_CREATESESSION, nmp, NULL, 0, NULL, NULL); NFSM_BUILD(tl, uint32_t *, 4 * NFSX_UNSIGNED); *tl++ = sep->nfsess_clientid.lval[0];