From owner-svn-src-all@freebsd.org Sun Jan 5 00:58:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 689B91EC702; Sun, 5 Jan 2020 00:58:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r0cs1n2wz4r4M; Sun, 5 Jan 2020 00:58:21 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 383111D8D5; Sun, 5 Jan 2020 00:58:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0050wL6c031179; Sun, 5 Jan 2020 00:58:21 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0050wKju031178; Sun, 5 Jan 2020 00:58:20 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001050058.0050wKju031178@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 5 Jan 2020 00:58:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356361 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 356361 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 00:58:21 -0000 Author: mjg Date: Sun Jan 5 00:58:20 2020 New Revision: 356361 URL: https://svnweb.freebsd.org/changeset/base/356361 Log: vfs: predict VN_IS_DOOMED as false The macro is used everywhere. Modified: head/sys/sys/vnode.h Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Sat Jan 4 23:51:44 2020 (r356360) +++ head/sys/sys/vnode.h Sun Jan 5 00:58:20 2020 (r356361) @@ -893,7 +893,7 @@ do { \ #define VOP_UNSET_TEXT_CHECKED(vp) VOP_UNSET_TEXT((vp)) #endif -#define VN_IS_DOOMED(vp) ((vp)->v_irflag & VIRF_DOOMED) +#define VN_IS_DOOMED(vp) __predict_false((vp)->v_irflag & VIRF_DOOMED) void vput(struct vnode *vp); void vrele(struct vnode *vp); From owner-svn-src-all@freebsd.org Sun Jan 5 00:59:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 540061EC9F3; Sun, 5 Jan 2020 00:59:17 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r0dx1cbBz4rCW; Sun, 5 Jan 2020 00:59:17 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 32C751D8D7; Sun, 5 Jan 2020 00:59:17 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0050xH1r031262; Sun, 5 Jan 2020 00:59:17 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0050xH70031261; Sun, 5 Jan 2020 00:59:17 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001050059.0050xH70031261@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 5 Jan 2020 00:59:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356362 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356362 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 00:59:17 -0000 Author: mjg Date: Sun Jan 5 00:59:16 2020 New Revision: 356362 URL: https://svnweb.freebsd.org/changeset/base/356362 Log: vfs: patch up vnode count assertions to report found value Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sun Jan 5 00:58:20 2020 (r356361) +++ head/sys/kern/vfs_subr.c Sun Jan 5 00:59:16 2020 (r356362) @@ -2846,8 +2846,8 @@ vget_finish(struct vnode *vp, int flags, enum vgetstat */ if (refcount_acquire_if_not_zero(&vp->v_usecount)) { #ifdef INVARIANTS - int old = atomic_fetchadd_int(&vp->v_holdcnt, -1) - 1; - VNASSERT(old > 0, vp, ("%s: wrong hold count", __func__)); + int old = atomic_fetchadd_int(&vp->v_holdcnt, -1); + VNASSERT(old > 1, vp, ("%s: wrong hold count %d", __func__, old)); #else refcount_release(&vp->v_holdcnt); #endif @@ -2872,8 +2872,8 @@ vget_finish(struct vnode *vp, int flags, enum vgetstat */ if (refcount_acquire_if_not_zero(&vp->v_usecount)) { #ifdef INVARIANTS - int old = atomic_fetchadd_int(&vp->v_holdcnt, -1) - 1; - VNASSERT(old > 0, vp, ("%s: wrong hold count", __func__)); + int old = atomic_fetchadd_int(&vp->v_holdcnt, -1); + VNASSERT(old > 1, vp, ("%s: wrong hold count %d", __func__, old)); #else refcount_release(&vp->v_holdcnt); #endif @@ -2953,7 +2953,7 @@ vrefact(struct vnode *vp) CTR2(KTR_VFS, "%s: vp %p", __func__, vp); #ifdef INVARIANTS int old = atomic_fetchadd_int(&vp->v_usecount, 1); - VNASSERT(old > 0, vp, ("%s: wrong use count", __func__)); + VNASSERT(old > 0, vp, ("%s: wrong use count %d", __func__, old)); #else refcount_acquire(&vp->v_usecount); #endif @@ -3189,7 +3189,7 @@ vholdnz(struct vnode *vp) CTR2(KTR_VFS, "%s: vp %p", __func__, vp); #ifdef INVARIANTS int old = atomic_fetchadd_int(&vp->v_holdcnt, 1); - VNASSERT(old > 0, vp, ("%s: wrong hold count", __func__)); + VNASSERT(old > 0, vp, ("%s: wrong hold count %d", __func__, old)); #else atomic_add_int(&vp->v_holdcnt, 1); #endif From owner-svn-src-all@freebsd.org Sun Jan 5 00:59:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1AA041ECA71; Sun, 5 Jan 2020 00:59:48 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r0fW6rcHz4rL5; Sun, 5 Jan 2020 00:59:47 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E63A31D8D8; Sun, 5 Jan 2020 00:59:47 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0050xlcP031333; Sun, 5 Jan 2020 00:59:47 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0050xlfe031331; Sun, 5 Jan 2020 00:59:47 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001050059.0050xlfe031331@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 5 Jan 2020 00:59:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356363 - in head/sys: kern sys ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys ufs/ffs X-SVN-Commit-Revision: 356363 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 00:59:48 -0000 Author: mjg Date: Sun Jan 5 00:59:47 2020 New Revision: 356363 URL: https://svnweb.freebsd.org/changeset/base/356363 Log: vfs: drop thread argument from vinactive Modified: head/sys/kern/vfs_subr.c head/sys/sys/vnode.h head/sys/ufs/ffs/ffs_snapshot.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sun Jan 5 00:59:16 2020 (r356362) +++ head/sys/kern/vfs_subr.c Sun Jan 5 00:59:47 2020 (r356363) @@ -2895,7 +2895,7 @@ vget_finish(struct vnode *vp, int flags, enum vgetstat refcount_acquire(&vp->v_usecount); if (oweinact && VOP_ISLOCKED(vp) == LK_EXCLUSIVE && (flags & LK_NOWAIT) == 0) - vinactive(vp, curthread); + vinactive(vp); VI_UNLOCK(vp); return (0); } @@ -3061,7 +3061,7 @@ vputx(struct vnode *vp, enum vputx_op func) ("vnode with usecount and VI_OWEINACT set")); if (error == 0) { if (vp->v_iflag & VI_OWEINACT) - vinactive(vp, curthread); + vinactive(vp); if (func != VPUTX_VUNREF) VOP_UNLOCK(vp); } @@ -3280,7 +3280,7 @@ vdropl(struct vnode *vp) * failed lock upgrade. */ void -vinactive(struct vnode *vp, struct thread *td) +vinactive(struct vnode *vp) { struct vm_object *obj; @@ -3308,7 +3308,7 @@ vinactive(struct vnode *vp, struct thread *td) vm_object_page_clean(obj, 0, 0, 0); VM_OBJECT_WUNLOCK(obj); } - VOP_INACTIVE(vp, td); + VOP_INACTIVE(vp, curthread); VI_LOCK(vp); VNASSERT(vp->v_iflag & VI_DOINGINACT, vp, ("vinactive: lost VI_DOINGINACT")); @@ -3604,7 +3604,7 @@ vgonel(struct vnode *vp) if (oweinact || active) { VI_LOCK(vp); if ((vp->v_iflag & VI_DOINGINACT) == 0) - vinactive(vp, td); + vinactive(vp); VI_UNLOCK(vp); } if (vp->v_type == VSOCK) Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Sun Jan 5 00:59:16 2020 (r356362) +++ head/sys/sys/vnode.h Sun Jan 5 00:59:47 2020 (r356363) @@ -663,7 +663,7 @@ void vgone(struct vnode *vp); void vhold(struct vnode *); void vholdl(struct vnode *); void vholdnz(struct vnode *); -void vinactive(struct vnode *, struct thread *); +void vinactive(struct vnode *vp); int vinvalbuf(struct vnode *vp, int save, int slpflag, int slptimeo); int vtruncbuf(struct vnode *vp, off_t length, int blksize); void v_inval_buf_range(struct vnode *vp, daddr_t startlbn, daddr_t endlbn, Modified: head/sys/ufs/ffs/ffs_snapshot.c ============================================================================== --- head/sys/ufs/ffs/ffs_snapshot.c Sun Jan 5 00:59:16 2020 (r356362) +++ head/sys/ufs/ffs/ffs_snapshot.c Sun Jan 5 00:59:47 2020 (r356363) @@ -2552,10 +2552,8 @@ process_deferred_inactive(struct mount *mp) { struct vnode *vp, *mvp; struct inode *ip; - struct thread *td; int error; - td = curthread; (void) vn_start_secondary_write(NULL, &mp, V_WAIT); loop: MNT_VNODE_FOREACH_ALL(vp, mp, mvp) { @@ -2591,7 +2589,7 @@ process_deferred_inactive(struct mount *mp) vdrop(vp); continue; } - vinactive(vp, td); + vinactive(vp); VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp, ("process_deferred_inactive: got VI_OWEINACT")); VI_UNLOCK(vp); From owner-svn-src-all@freebsd.org Sun Jan 5 01:00:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 400E01ECB38; Sun, 5 Jan 2020 01:00:12 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r0g00pXxz4rSw; Sun, 5 Jan 2020 01:00:12 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 170431D8E1; Sun, 5 Jan 2020 01:00:12 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00510BWQ031471; Sun, 5 Jan 2020 01:00:11 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00510B4i031470; Sun, 5 Jan 2020 01:00:11 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001050100.00510B4i031470@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 5 Jan 2020 01:00:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356364 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356364 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 01:00:12 -0000 Author: mjg Date: Sun Jan 5 01:00:11 2020 New Revision: 356364 URL: https://svnweb.freebsd.org/changeset/base/356364 Log: vfs: factor out avoidable branches in _vn_lock Modified: head/sys/kern/vfs_vnops.c Modified: head/sys/kern/vfs_vnops.c ============================================================================== --- head/sys/kern/vfs_vnops.c Sun Jan 5 00:59:47 2020 (r356363) +++ head/sys/kern/vfs_vnops.c Sun Jan 5 01:00:11 2020 (r356364) @@ -1564,28 +1564,53 @@ vn_poll(struct file *fp, int events, struct ucred *act * Acquire the requested lock and then check for validity. LK_RETRY * permits vn_lock to return doomed vnodes. */ -int -_vn_lock(struct vnode *vp, int flags, char *file, int line) +static int __noinline +_vn_lock_fallback(struct vnode *vp, int flags, char *file, int line, int error) { - int error; - VNASSERT((flags & LK_TYPE_MASK) != 0, vp, - ("vn_lock: no locktype")); - VNASSERT(vp->v_holdcnt != 0, vp, ("vn_lock: zero hold count")); -retry: - error = VOP_LOCK1(vp, flags, file, line); - flags &= ~LK_INTERLOCK; /* Interlock is always dropped. */ KASSERT((flags & LK_RETRY) == 0 || error == 0, ("vn_lock: error %d incompatible with flags %#x", error, flags)); + if (error == 0) + VNASSERT(VN_IS_DOOMED(vp), vp, ("vnode not doomed")); + if ((flags & LK_RETRY) == 0) { - if (error == 0 && VN_IS_DOOMED(vp)) { + if (error == 0) { VOP_UNLOCK(vp); error = ENOENT; } - } else if (error != 0) - goto retry; - return (error); + return (error); + } + + /* + * LK_RETRY case. + * + * Nothing to do if we got the lock. + */ + if (error == 0) + return (0); + + /* + * Interlock was dropped by the call in _vn_lock. + */ + flags &= ~LK_INTERLOCK; + do { + error = VOP_LOCK1(vp, flags, file, line); + } while (error != 0); + return (0); +} + +int +_vn_lock(struct vnode *vp, int flags, char *file, int line) +{ + int error; + + VNASSERT((flags & LK_TYPE_MASK) != 0, vp, ("vn_lock: no locktype")); + VNASSERT(vp->v_holdcnt != 0, vp, ("vn_lock: zero hold count")); + error = VOP_LOCK1(vp, flags, file, line); + if (__predict_false(error != 0 || VN_IS_DOOMED(vp))) + return (_vn_lock_fallback(vp, flags, file, line, error)); + return (0); } /* From owner-svn-src-all@freebsd.org Sun Jan 5 01:30:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A05821EFE50; Sun, 5 Jan 2020 01:30:45 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r1LF4TXnz4sff; Sun, 5 Jan 2020 01:30:45 +0000 (UTC) (envelope-from mm@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 94C051DEB5; Sun, 5 Jan 2020 01:30:45 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0051Uj5b050179; Sun, 5 Jan 2020 01:30:45 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0051Uf2r050149; Sun, 5 Jan 2020 01:30:41 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202001050130.0051Uf2r050149@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Sun, 5 Jan 2020 01:30:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356365 - in vendor/libarchive/dist: . .github/workflows build build/ci build/ci/cirrus_ci build/cmake libarchive X-SVN-Group: vendor X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in vendor/libarchive/dist: . .github/workflows build build/ci build/ci/cirrus_ci build/cmake libarchive X-SVN-Commit-Revision: 356365 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 01:30:45 -0000 Author: mm Date: Sun Jan 5 01:30:41 2020 New Revision: 356365 URL: https://svnweb.freebsd.org/changeset/base/356365 Log: Update vendor/libarchive/dist to git 5e270715b51d199467195b56f77e21cb8bb1d642 Relevant vendor changes: Issue #1302: Plug memory leak on failure of archive_write_client_open() Added: vendor/libarchive/dist/build/cmake/FindMbedTLS.cmake Modified: vendor/libarchive/dist/.cirrus.yml vendor/libarchive/dist/.github/workflows/ci.yml vendor/libarchive/dist/.gitignore vendor/libarchive/dist/CMakeLists.txt vendor/libarchive/dist/build/ci/build.sh vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc30 vendor/libarchive/dist/build/cmake/config.h.in vendor/libarchive/dist/build/version vendor/libarchive/dist/configure.ac vendor/libarchive/dist/libarchive/archive.h vendor/libarchive/dist/libarchive/archive_cryptor.c vendor/libarchive/dist/libarchive/archive_cryptor_private.h vendor/libarchive/dist/libarchive/archive_digest.c vendor/libarchive/dist/libarchive/archive_digest_private.h vendor/libarchive/dist/libarchive/archive_entry.h vendor/libarchive/dist/libarchive/archive_hmac.c vendor/libarchive/dist/libarchive/archive_hmac_private.h vendor/libarchive/dist/libarchive/archive_write.c Modified: vendor/libarchive/dist/.cirrus.yml ============================================================================== --- vendor/libarchive/dist/.cirrus.yml Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/.cirrus.yml Sun Jan 5 01:30:41 2020 (r356365) @@ -29,11 +29,14 @@ FreeBSD_task: Fedora_30_task: container: dockerfile: build/ci/cirrus_ci/Dockerfile.fc30 - matrix: - env: - BS: autotools - env: - BS: cmake + env: + matrix: + - BS: autotools + - BS: cmake + matrix: + - CRYPTO: mbedtls + - CRYPTO: nettle + - CRYPTO: openssl configure_script: - ./build/ci/build.sh -a autogen - ./build/ci/build.sh -a configure Modified: vendor/libarchive/dist/.github/workflows/ci.yml ============================================================================== --- vendor/libarchive/dist/.github/workflows/ci.yml Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/.github/workflows/ci.yml Sun Jan 5 01:30:41 2020 (r356365) @@ -39,10 +39,11 @@ jobs: strategy: matrix: bs: [autotools, cmake] + crypto: [mbedtls, nettle, openssl] steps: - uses: actions/checkout@master - name: Install dependencies - run: sudo apt-get install -y build-essential cmake libssl-dev libacl1-dev libbz2-dev liblzma-dev libzip-dev liblz4-dev libzstd-dev lzop + run: sudo apt-get install -y build-essential cmake libssl-dev nettle-dev libmbedtls-dev libacl1-dev libbz2-dev liblzma-dev libzip-dev liblz4-dev libzstd-dev lzop - name: Autogen run: ./build/ci/build.sh -a autogen env: @@ -51,6 +52,7 @@ jobs: run: ./build/ci/build.sh -a configure env: BS: ${{ matrix.bs }} + CRYPTO: ${{ matrix.crypto }} - name: Build run: ./build/ci/build.sh -a build env: Modified: vendor/libarchive/dist/.gitignore ============================================================================== --- vendor/libarchive/dist/.gitignore Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/.gitignore Sun Jan 5 01:30:41 2020 (r356365) @@ -4,6 +4,7 @@ *.la *.lo *.cmake +!build/cmake/*.cmake .deps/ .libs/ .dirstamp Modified: vendor/libarchive/dist/CMakeLists.txt ============================================================================== --- vendor/libarchive/dist/CMakeLists.txt Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/CMakeLists.txt Sun Jan 5 01:30:41 2020 (r356365) @@ -18,7 +18,7 @@ endif() # RelWithDebInfo : Release build with Debug Info # MinSizeRel : Release Min Size build IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build Type" FORCE) + SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Type" FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) # Set a value type to properly display CMAKE_BUILD_TYPE on GUI if the # value type is "UNINITIALIZED". @@ -193,7 +193,8 @@ ENDIF (MSVC) # Enable CTest/CDash support include(CTest) -OPTION(ENABLE_NETTLE "Enable use of Nettle" ON) +OPTION(ENABLE_MBEDTLS "Enable use of mbed TLS" OFF) +OPTION(ENABLE_NETTLE "Enable use of Nettle" OFF) OPTION(ENABLE_OPENSSL "Enable use of OpenSSL" ON) OPTION(ENABLE_LIBB2 "Enable the use of the system LIBB2 library if found" ON) OPTION(ENABLE_LZ4 "Enable the use of the system LZ4 library if found" ON) @@ -739,6 +740,26 @@ CHECK_C_SOURCE_COMPILES( SAFE_TO_DEFINE_EXTENSIONS) # +# Find mbed TLS +# +IF(ENABLE_MBEDTLS) + FIND_PACKAGE(MbedTLS) + IF(MBEDTLS_FOUND) + SET(HAVE_LIBMBEDCRYPTO 1) + LIST(APPEND ADDITIONAL_LIBS ${MBEDCRYPTO_LIBRARY}) + INCLUDE_DIRECTORIES(${MBEDTLS_INCLUDE_DIRS}) + + LIST(APPEND CMAKE_REQUIRED_INCLUDES ${MBEDTLS_INCLUDE_DIRS}) + LA_CHECK_INCLUDE_FILE("mbedtls/aes.h" HAVE_MBEDTLS_AES_H) + LA_CHECK_INCLUDE_FILE("mbedtls/md.h" HAVE_MBEDTLS_MD_H) + LA_CHECK_INCLUDE_FILE("mbedtls/pkcs5.h" HAVE_MBEDTLS_PKCS5_H) + + ENDIF(MBEDTLS_FOUND) + MARK_AS_ADVANCED(CLEAR MBEDTLS_INCLUDE_DIRS) + MARK_AS_ADVANCED(CLEAR MBEDCRYPTO_LIBRARY) +ENDIF(ENABLE_MBEDTLS) + +# # Find Nettle # IF(ENABLE_NETTLE) @@ -800,6 +821,8 @@ MACRO(CHECK_CRYPTO ALGORITHMS IMPLEMENTATION) STRING(TOUPPER "${ALGORITHM}" algorithm) IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND NOT OPENSSL_FOUND) SET(ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION} FALSE) + ELSEIF("${IMPLEMENTATION}" MATCHES "^MBEDTLS$" AND NOT MBEDTLS_FOUND) + SET(ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION} FALSE) ELSEIF("${IMPLEMENTATION}" MATCHES "^NETTLE$" AND NOT NETTLE_FOUND) SET(ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION} FALSE) ENDIF("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND NOT OPENSSL_FOUND) @@ -815,6 +838,11 @@ MACRO(CHECK_CRYPTO ALGORITHMS IMPLEMENTATION) "${TRY_CRYPTO_REQUIRED_INCLUDES};${OPENSSL_INCLUDE_DIR}") SET(TRY_CRYPTO_REQUIRED_LIBS "-DLINK_LIBRARIES:STRING=${OPENSSL_LIBRARIES}") + ELSEIF("${IMPLEMENTATION}" MATCHES "^MBEDTLS$" AND MBEDTLS_FOUND) + SET(TRY_CRYPTO_REQUIRED_INCLUDES + "${TRY_CRYPTO_REQUIRED_INCLUDES};${MBEDTLS_INCLUDE_DIRS}") + SET(TRY_CRYPTO_REQUIRED_LIBS + "-DLINK_LIBRARIES:STRING=${MBEDCRYPTO_LIBRARY}") ELSEIF("${IMPLEMENTATION}" MATCHES "^NETTLE$" AND NETTLE_FOUND) SET(TRY_CRYPTO_REQUIRED_INCLUDES "${TRY_CRYPTO_REQUIRED_INCLUDES};${NETTLE_INCLUDE_DIR}") @@ -1960,6 +1988,7 @@ CHECK_CRYPTO("MD5;RMD160;SHA1;SHA256;SHA384;SHA512" LI CHECK_CRYPTO("SHA256;SHA384;SHA512" LIBC2) CHECK_CRYPTO("SHA256;SHA384;SHA512" LIBC3) CHECK_CRYPTO("MD5;SHA1;SHA256;SHA384;SHA512" LIBSYSTEM) +CHECK_CRYPTO("MD5;RMD160;SHA1;SHA256;SHA384;SHA512" MBEDTLS) CHECK_CRYPTO("MD5;RMD160;SHA1;SHA256;SHA384;SHA512" NETTLE) CHECK_CRYPTO("MD5;RMD160;SHA1;SHA256;SHA384;SHA512" OPENSSL) Modified: vendor/libarchive/dist/build/ci/build.sh ============================================================================== --- vendor/libarchive/dist/build/ci/build.sh Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/build/ci/build.sh Sun Jan 5 01:30:41 2020 (r356365) @@ -4,9 +4,11 @@ # # Variables that can be passed via environment: # BS= # build system (autotools or cmake) +# CRYPTO= # cryptography provider (openssl, nettle or mbedtls) # BUILDDIR= # build directory # SRCDIR= # source directory # CONFIGURE_ARGS= # configure arguments +# CMAKE_ARGS= # cmake arguments # MAKE_ARGS= # make arguments # DEBUG= # set -g -fsanitize=address flags @@ -23,14 +25,14 @@ SRCDIR="${SRCDIR:-`pwd`}" RET=0 usage () { - echo "Usage: $0 [-b autotools|cmake] [-a autogen|configure|build|test|install|distcheck ] [ -a ... ] [ -d builddir ] [-s srcdir ]" + echo "Usage: $0 [-b autotools|cmake] [-a autogen|configure|build|test|install|distcheck ] [ -a ... ] [ -d builddir ] [-c openssl|nettle|mbedtls] [-s srcdir ]" } inputerror () { echo $1 usage exit 1 } -while getopts a:b:d:s: opt; do +while getopts a:b:c:d:s: opt; do case ${opt} in a) case "${OPTARG}" in @@ -51,6 +53,14 @@ while getopts a:b:d:s: opt; do *) inputerror "Invalid build system (-b)" ;; esac ;; + c) CRYPTO="${OPTARG}" + case "${CRYPTO}" in + mbedtls) ;; + openssl) ;; + nettle) ;; + *) inputerror "Invalid crypto provider (-c)" ;; + esac + ;; d) BUILDDIR="${OPTARG}" ;; @@ -62,6 +72,16 @@ while getopts a:b:d:s: opt; do ;; esac done +case "${CRYPTO}" in + mbedtls) + CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_OPENSSL=OFF -DENABLE_MBEDTLS=ON" + CONFIGURE_ARGS="${CONFIGURE_ARGS} --without-openssl --with-mbedtls" + ;; + nettle) + CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_OPENSSL=OFF -DENABLE_NETTLE=ON" + CONFIGURE_ARGS="${CONFIGURE_ARGS} --without-openssl --with-nettle" + ;; +esac if [ -z "${MAKE_ARGS}" ]; then if [ "${BS}" = "autotools" ]; then MAKE_ARGS="V=1" @@ -76,7 +96,7 @@ if [ -n "${DEBUG}" ]; then export CFLAGS="-g -fsanitize=address" fi if [ "${BS}" = "cmake" ]; then - CONFIGURE_ARGS="${CONFIGURE_ARGS} -DCMAKE_C_CFLAGS=-g -fsanitize=address" + CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_C_CFLAGS=-g -fsanitize=address" fi fi if [ -z "${ACTIONS}" ]; then @@ -104,7 +124,7 @@ for action in ${ACTIONS}; do configure) case "${BS}" in autotools) "${SRCDIR}/configure" ${CONFIGURE_ARGS} ;; - cmake) ${CMAKE} ${CONFIGURE_ARGS} "${SRCDIR}" ;; + cmake) ${CMAKE} ${CMAKE_ARGS} "${SRCDIR}" ;; esac RET="$?" ;; Modified: vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc30 ============================================================================== --- vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc30 Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc30 Sun Jan 5 01:30:41 2020 (r356365) @@ -1,3 +1,3 @@ FROM fedora:30 -RUN dnf -y install make cmake gcc gcc-c++ kernel-devel automake libtool bison sharutils pkgconf libacl-devel libasan librichacl-devel bzip2-devel libzip-devel zlib-devel xz-devel lz4-devel libzstd-devel openssl-devel +RUN dnf -y install make cmake gcc gcc-c++ kernel-devel automake libtool bison sharutils pkgconf libacl-devel libasan librichacl-devel bzip2-devel libzip-devel zlib-devel xz-devel lz4-devel libzstd-devel openssl-devel nettle-devel mbedtls-devel Added: vendor/libarchive/dist/build/cmake/FindMbedTLS.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libarchive/dist/build/cmake/FindMbedTLS.cmake Sun Jan 5 01:30:41 2020 (r356365) @@ -0,0 +1,13 @@ +find_path(MBEDTLS_INCLUDE_DIRS mbedtls/ssl.h) + +find_library(MBEDTLS_LIBRARY mbedtls) +find_library(MBEDX509_LIBRARY mbedx509) +find_library(MBEDCRYPTO_LIBRARY mbedcrypto) + +set(MBEDTLS_LIBRARIES "${MBEDTLS_LIBRARY}" "${MBEDX509_LIBRARY}" "${MBEDCRYPTO_LIBRARY}") + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(MBEDTLS DEFAULT_MSG + MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY) + +mark_as_advanced(MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY) Modified: vendor/libarchive/dist/build/cmake/config.h.in ============================================================================== --- vendor/libarchive/dist/build/cmake/config.h.in Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/build/cmake/config.h.in Sun Jan 5 01:30:41 2020 (r356365) @@ -710,6 +710,9 @@ typedef uint64_t uintmax_t; /* Define to 1 if you have the `lzo2' library (-llzo2). */ #cmakedefine HAVE_LIBLZO2 1 +/* Define to 1 if you have the `mbedcrypto' library (-lmbedcrypto). */ +#cmakedefine HAVE_LIBMBEDCRYPTO 1 + /* Define to 1 if you have the `nettle' library (-lnettle). */ #cmakedefine HAVE_LIBNETTLE 1 Modified: vendor/libarchive/dist/build/version ============================================================================== --- vendor/libarchive/dist/build/version Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/build/version Sun Jan 5 01:30:41 2020 (r356365) @@ -1 +1 @@ -3004001 +3004002dev Modified: vendor/libarchive/dist/configure.ac ============================================================================== --- vendor/libarchive/dist/configure.ac Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/configure.ac Sun Jan 5 01:30:41 2020 (r356365) @@ -4,8 +4,8 @@ dnl First, define all of the version numbers up front. dnl In particular, this allows the version macro to be used in AC_INIT dnl These first two version numbers are updated automatically on each release. -m4_define([LIBARCHIVE_VERSION_S],[3.4.1]) -m4_define([LIBARCHIVE_VERSION_N],[3004001]) +m4_define([LIBARCHIVE_VERSION_S],[3.4.2dev]) +m4_define([LIBARCHIVE_VERSION_N],[3004002]) dnl bsdtar and bsdcpio versioning tracks libarchive m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S()) @@ -421,8 +421,10 @@ fi AC_ARG_WITH([cng], AS_HELP_STRING([--without-cng], [Don't build support of CNG(Crypto Next Generation)])) +AC_ARG_WITH([mbedtls], + AS_HELP_STRING([--with-mbedtls], [Build with crypto support from mbed TLS])) AC_ARG_WITH([nettle], - AS_HELP_STRING([--without-nettle], [Don't build with crypto support from Nettle])) + AS_HELP_STRING([--with-nettle], [Build with crypto support from Nettle])) AC_ARG_WITH([openssl], AS_HELP_STRING([--without-openssl], [Don't build support for mtree and xar hashes through openssl])) case "$host_os" in @@ -1120,7 +1122,22 @@ if test "x$with_cng" != "xno"; then ]]) fi -if test "x$with_nettle" != "xno"; then +if test "x$with_mbedtls" = "xyes"; then + AC_CHECK_HEADERS([mbedtls/aes.h mbedtls/md.h mbedtls/pkcs5.h]) + saved_LIBS=$LIBS + AC_CHECK_LIB(mbedcrypto,mbedtls_sha1_init) + CRYPTO_CHECK(MD5, MBEDTLS, md5) + CRYPTO_CHECK(RMD160, MBEDTLS, rmd160) + CRYPTO_CHECK(SHA1, MBEDTLS, sha1) + CRYPTO_CHECK(SHA256, MBEDTLS, sha256) + CRYPTO_CHECK(SHA384, MBEDTLS, sha384) + CRYPTO_CHECK(SHA512, MBEDTLS, sha512) + if test "x$found_MBEDTLS" != "xyes"; then + LIBS=$saved_LIBS + fi +fi + +if test "x$with_nettle" = "xyes"; then AC_CHECK_HEADERS([nettle/md5.h nettle/ripemd160.h nettle/sha.h]) AC_CHECK_HEADERS([nettle/pbkdf2.h nettle/aes.h nettle/hmac.h]) saved_LIBS=$LIBS Modified: vendor/libarchive/dist/libarchive/archive.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive.h Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive.h Sun Jan 5 01:30:41 2020 (r356365) @@ -36,7 +36,7 @@ * assert that ARCHIVE_VERSION_NUMBER >= 2012108. */ /* Note: Compiler will complain if this does not match archive_entry.h! */ -#define ARCHIVE_VERSION_NUMBER 3004001 +#define ARCHIVE_VERSION_NUMBER 3004002 #include #include /* for wchar_t */ @@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void); /* * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_VERSION_ONLY_STRING "3.4.1" +#define ARCHIVE_VERSION_ONLY_STRING "3.4.2dev" #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING __LA_DECL const char * archive_version_string(void); Modified: vendor/libarchive/dist/libarchive/archive_cryptor.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_cryptor.c Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_cryptor.c Sun Jan 5 01:30:41 2020 (r356365) @@ -85,6 +85,35 @@ pbkdf2_sha1(const char *pw, size_t pw_len, const uint8 return (BCRYPT_SUCCESS(status)) ? 0: -1; } +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_PKCS5_H) + +static int +pbkdf2_sha1(const char *pw, size_t pw_len, const uint8_t *salt, + size_t salt_len, unsigned rounds, uint8_t *derived_key, + size_t derived_key_len) +{ + mbedtls_md_context_t ctx; + const mbedtls_md_info_t *info; + int ret; + + mbedtls_md_init(&ctx); + info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + if (info == NULL) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_md_setup(&ctx, info, 1); + if (ret != 0) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_pkcs5_pbkdf2_hmac(&ctx, (const unsigned char *)pw, + pw_len, salt, salt_len, rounds, derived_key_len, derived_key); + + mbedtls_md_free(&ctx); + return (ret); +} + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_PBKDF2_H) static int @@ -265,6 +294,38 @@ aes_ctr_release(archive_crypto_ctx *ctx) HeapFree(GetProcessHeap(), 0, ctx->keyObj); ctx->keyObj = NULL; } + memset(ctx, 0, sizeof(*ctx)); + return 0; +} + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) +static int +aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) +{ + mbedtls_aes_init(&ctx->ctx); + ctx->key_len = key_len; + memcpy(ctx->key, key, key_len); + memset(ctx->nonce, 0, sizeof(ctx->nonce)); + ctx->encr_pos = AES_BLOCK_SIZE; + return 0; +} + +static int +aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) +{ + if (mbedtls_aes_setkey_enc(&ctx->ctx, ctx->key, + ctx->key_len * 8) != 0) + return (-1); + if (mbedtls_aes_crypt_ecb(&ctx->ctx, MBEDTLS_AES_ENCRYPT, ctx->nonce, + ctx->encr_buf) != 0) + return (-1); + return 0; +} + +static int +aes_ctr_release(archive_crypto_ctx *ctx) +{ + mbedtls_aes_free(&ctx->ctx); memset(ctx, 0, sizeof(*ctx)); return 0; } Modified: vendor/libarchive/dist/libarchive/archive_cryptor_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_cryptor_private.h Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_cryptor_private.h Sun Jan 5 01:30:41 2020 (r356365) @@ -83,6 +83,23 @@ typedef struct { unsigned encr_pos; } archive_crypto_ctx; +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) +#include +#include +#include + +#define AES_MAX_KEY_SIZE 32 +#define AES_BLOCK_SIZE 16 + +typedef struct { + mbedtls_aes_context ctx; + uint8_t key[AES_MAX_KEY_SIZE]; + unsigned key_len; + uint8_t nonce[AES_BLOCK_SIZE]; + uint8_t encr_buf[AES_BLOCK_SIZE]; + unsigned encr_pos; +} archive_crypto_ctx; + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_AES_H) #if defined(HAVE_NETTLE_PBKDF2_H) #include Modified: vendor/libarchive/dist/libarchive/archive_digest.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_digest.c Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_digest.c Sun Jan 5 01:30:41 2020 (r356365) @@ -178,6 +178,40 @@ __archive_libsystem_md5final(archive_md5_ctx *ctx, voi return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + +static int +__archive_mbedtls_md5init(archive_md5_ctx *ctx) +{ + mbedtls_md5_init(ctx); + if (mbedtls_md5_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md) +{ + if (mbedtls_md5_finish_ret(ctx, md) == 0) { + mbedtls_md5_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_md5_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) static int @@ -335,6 +369,40 @@ __archive_libmd_ripemd160final(archive_rmd160_ctx *ctx return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + +static int +__archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx) +{ + mbedtls_ripemd160_init(ctx); + if (mbedtls_ripemd160_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md) +{ + if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) static int @@ -491,6 +559,40 @@ __archive_libsystem_sha1final(archive_sha1_ctx *ctx, v return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + +static int +__archive_mbedtls_sha1init(archive_sha1_ctx *ctx) +{ + mbedtls_sha1_init(ctx); + if (mbedtls_sha1_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md) +{ + if (mbedtls_sha1_finish_ret(ctx, md) == 0) { + mbedtls_sha1_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha1_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) static int @@ -720,6 +822,40 @@ __archive_libsystem_sha256final(archive_sha256_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + +static int +__archive_mbedtls_sha256init(archive_sha256_ctx *ctx) +{ + mbedtls_sha256_init(ctx); + if (mbedtls_sha256_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md) +{ + if (mbedtls_sha256_finish_ret(ctx, md) == 0) { + mbedtls_sha256_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha256_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) static int @@ -921,6 +1057,40 @@ __archive_libsystem_sha384final(archive_sha384_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + +static int +__archive_mbedtls_sha384init(archive_sha384_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 1) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) static int @@ -1146,6 +1316,40 @@ __archive_libsystem_sha512final(archive_sha512_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + +static int +__archive_mbedtls_sha512init(archive_sha512_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) static int @@ -1276,6 +1480,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_md5init, &__archive_libsystem_md5update, &__archive_libsystem_md5final, +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + &__archive_mbedtls_md5init, + &__archive_mbedtls_md5update, + &__archive_mbedtls_md5final, #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) &__archive_nettle_md5init, &__archive_nettle_md5update, @@ -1303,6 +1511,10 @@ const struct archive_digest __archive_digest = &__archive_libmd_ripemd160init, &__archive_libmd_ripemd160update, &__archive_libmd_ripemd160final, +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + &__archive_mbedtls_ripemd160init, + &__archive_mbedtls_ripemd160update, + &__archive_mbedtls_ripemd160final, #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) &__archive_nettle_ripemd160init, &__archive_nettle_ripemd160update, @@ -1330,6 +1542,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha1init, &__archive_libsystem_sha1update, &__archive_libsystem_sha1final, +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + &__archive_mbedtls_sha1init, + &__archive_mbedtls_sha1update, + &__archive_mbedtls_sha1final, #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) &__archive_nettle_sha1init, &__archive_nettle_sha1update, @@ -1369,6 +1585,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha256init, &__archive_libsystem_sha256update, &__archive_libsystem_sha256final, +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + &__archive_mbedtls_sha256init, + &__archive_mbedtls_sha256update, + &__archive_mbedtls_sha256final, #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) &__archive_nettle_sha256init, &__archive_nettle_sha256update, @@ -1404,6 +1624,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha384init, &__archive_libsystem_sha384update, &__archive_libsystem_sha384final, +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + &__archive_mbedtls_sha384init, + &__archive_mbedtls_sha384update, + &__archive_mbedtls_sha384final, #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) &__archive_nettle_sha384init, &__archive_nettle_sha384update, @@ -1443,6 +1667,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha512init, &__archive_libsystem_sha512update, &__archive_libsystem_sha512final +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + &__archive_mbedtls_sha512init, + &__archive_mbedtls_sha512update, + &__archive_mbedtls_sha512final #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) &__archive_nettle_sha512init, &__archive_nettle_sha512update, Modified: vendor/libarchive/dist/libarchive/archive_digest_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_digest_private.h Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_digest_private.h Sun Jan 5 01:30:41 2020 (r356365) @@ -112,6 +112,24 @@ #include #endif +/* mbed TLS crypto headers */ +#if defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +#include +#endif + /* Nettle crypto headers */ #if defined(ARCHIVE_CRYPTO_MD5_NETTLE) #include @@ -159,6 +177,8 @@ typedef MD5_CTX archive_md5_ctx; typedef MD5_CTX archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) typedef CC_MD5_CTX archive_md5_ctx; +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +typedef mbedtls_md5_context archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) typedef struct md5_ctx archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) @@ -173,6 +193,8 @@ typedef unsigned char archive_md5_ctx; typedef RMD160_CTX archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) typedef RIPEMD160_CTX archive_rmd160_ctx; +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +typedef mbedtls_ripemd160_context archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) typedef struct ripemd160_ctx archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) @@ -187,6 +209,8 @@ typedef SHA1_CTX archive_sha1_ctx; typedef SHA1_CTX archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) typedef CC_SHA1_CTX archive_sha1_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +typedef mbedtls_sha1_context archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) typedef struct sha1_ctx archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) @@ -207,6 +231,8 @@ typedef SHA2_CTX archive_sha256_ctx; typedef SHA256_CTX archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) typedef CC_SHA256_CTX archive_sha256_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +typedef mbedtls_sha256_context archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) typedef struct sha256_ctx archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) @@ -225,6 +251,8 @@ typedef SHA384_CTX archive_sha384_ctx; typedef SHA2_CTX archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha384_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) +typedef mbedtls_sha512_context archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) typedef struct sha384_ctx archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) @@ -245,6 +273,8 @@ typedef SHA2_CTX archive_sha512_ctx; typedef SHA512_CTX archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha512_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +typedef mbedtls_sha512_context archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) typedef struct sha512_ctx archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) @@ -259,6 +289,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_MD5_LIBC) ||\ defined(ARCHIVE_CRYPTO_MD5_LIBMD) || \ defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_MD5_NETTLE) ||\ defined(ARCHIVE_CRYPTO_MD5_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_MD5_WIN) @@ -272,6 +303,7 @@ typedef unsigned char archive_sha512_ctx; __archive_digest.md5update(ctx, buf, n) #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) ||\ + defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_RMD160_NETTLE) ||\ defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) #define ARCHIVE_HAS_RMD160 @@ -286,6 +318,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) ||\ defined(ARCHIVE_CRYPTO_SHA1_LIBMD) || \ defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA1_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA1_WIN) @@ -303,6 +336,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA256_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA256_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA256_WIN) @@ -319,6 +353,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA384_LIBC2) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA384_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA384_WIN) @@ -336,6 +371,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA512_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA512_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA512_WIN) Modified: vendor/libarchive/dist/libarchive/archive_entry.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_entry.h Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_entry.h Sun Jan 5 01:30:41 2020 (r356365) @@ -30,7 +30,7 @@ #define ARCHIVE_ENTRY_H_INCLUDED /* Note: Compiler will complain if this does not match archive.h! */ -#define ARCHIVE_VERSION_NUMBER 3004001 +#define ARCHIVE_VERSION_NUMBER 3004002 /* * Note: archive_entry.h is for use outside of libarchive; the Modified: vendor/libarchive/dist/libarchive/archive_hmac.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_hmac.c Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_hmac.c Sun Jan 5 01:30:41 2020 (r356365) @@ -150,6 +150,52 @@ __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) } } +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_MD_H) +static int +__hmac_sha1_init(archive_hmac_sha1_ctx *ctx, const uint8_t *key, size_t key_len) +{ + const mbedtls_md_info_t *info; + int ret; + + mbedtls_md_init(ctx); + info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + if (info == NULL) { + mbedtls_md_free(ctx); + return (-1); + } + ret = mbedtls_md_setup(ctx, info, 1); + if (ret != 0) { + mbedtls_md_free(ctx); + return (-1); + } + ret = mbedtls_md_hmac_starts(ctx, key, key_len); + if (ret != 0) { + mbedtls_md_free(ctx); + return (-1); + } + return 0; +} + +static void +__hmac_sha1_update(archive_hmac_sha1_ctx *ctx, const uint8_t *data, + size_t data_len) +{ + mbedtls_md_hmac_update(ctx, data, data_len); +} + +static void __hmac_sha1_final(archive_hmac_sha1_ctx *ctx, uint8_t *out, size_t *out_len) +{ + (void)out_len; /* UNUSED */ + + mbedtls_md_hmac_finish(ctx, out); +} + +static void __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) +{ + mbedtls_md_free(ctx); + memset(ctx, 0, sizeof(*ctx)); +} + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_HMAC_H) static int @@ -201,6 +247,7 @@ static void __hmac_sha1_final(archive_hmac_sha1_ctx *ctx, uint8_t *out, size_t *out_len) { unsigned int len = (unsigned int)*out_len; + HMAC_Final(*ctx, out, &len); *out_len = len; } Modified: vendor/libarchive/dist/libarchive/archive_hmac_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_hmac_private.h Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_hmac_private.h Sun Jan 5 01:30:41 2020 (r356365) @@ -64,6 +64,11 @@ typedef struct { } archive_hmac_sha1_ctx; +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_MD_H) +#include + +typedef mbedtls_md_context_t archive_hmac_sha1_ctx; + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_HMAC_H) #include Modified: vendor/libarchive/dist/libarchive/archive_write.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write.c Sun Jan 5 01:00:11 2020 (r356364) +++ vendor/libarchive/dist/libarchive/archive_write.c Sun Jan 5 01:30:41 2020 (r356365) @@ -449,6 +449,30 @@ archive_write_client_write(struct archive_write_filter } static int +archive_write_client_free(struct archive_write_filter *f) +{ + struct archive_write *a = (struct archive_write *)f->archive; + struct archive_none *state = (struct archive_none *)f->data; + + if (state != NULL) { + free(state->buffer); + free(state); + state = NULL; + } + + a->client_data = NULL; + /* Clear passphrase. */ + if (a->passphrase != NULL) { + memset(a->passphrase, 0, strlen(a->passphrase)); + free(a->passphrase); + a->passphrase = NULL; + } + + return (ARCHIVE_OK); +} + + +static int archive_write_client_close(struct archive_write_filter *f) { struct archive_write *a = (struct archive_write *)f->archive; @@ -484,17 +508,9 @@ archive_write_client_close(struct archive_write_filter } if (a->client_closer) (*a->client_closer)(&a->archive, a->client_data); - free(state->buffer); - free(state); + /* Clear the close handler myself not to be called again. */ f->state = ARCHIVE_WRITE_FILTER_STATE_CLOSED; - a->client_data = NULL; - /* Clear passphrase. */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Jan 5 01:33:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9F6F11F03ED; Sun, 5 Jan 2020 01:33:17 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [18.222.6.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r1P93YBpz4t1R; Sun, 5 Jan 2020 01:33:17 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (unknown [18.188.142.31]) by mail.soaustin.net (Postfix) with ESMTPSA id 85B4E170E3; Sun, 5 Jan 2020 01:33:16 +0000 (UTC) Date: Sun, 5 Jan 2020 01:33:15 +0000 From: Mark Linimon To: Jeff Roberson Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356348 - in head/sys: kern vm Message-ID: <20200105013314.GA3681@lonesome.com> References: <202001040315.0043FYhn047977@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001040315.0043FYhn047977@repo.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Rspamd-Queue-Id: 47r1P93YBpz4t1R X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 01:33:17 -0000 On Sat, Jan 04, 2020 at 03:15:34AM +0000, Jeff Roberson wrote: > Use a separate lock for the zone and keg. Out of curiosity, will there be measurable real-world speedups from this an similar work, or will this mostly apply to edge cases, or ... ? mcl From owner-svn-src-all@freebsd.org Sun Jan 5 01:42:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A50611F12AA; Sun, 5 Jan 2020 01:42:22 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r1bf4jGbz4tcq; Sun, 5 Jan 2020 01:42:22 +0000 (UTC) (envelope-from mm@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C96D1E11F; Sun, 5 Jan 2020 01:42:22 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0051gMJX060781; Sun, 5 Jan 2020 01:42:22 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0051gLaj060774; Sun, 5 Jan 2020 01:42:21 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202001050142.0051gLaj060774@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Sun, 5 Jan 2020 01:42:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356366 - head/contrib/libarchive/libarchive X-SVN-Group: head X-SVN-Commit-Author: mm X-SVN-Commit-Paths: head/contrib/libarchive/libarchive X-SVN-Commit-Revision: 356366 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 01:42:22 -0000 Author: mm Date: Sun Jan 5 01:42:21 2020 New Revision: 356366 URL: https://svnweb.freebsd.org/changeset/base/356366 Log: MFV r356365: Sync libarchive with vendor Relevant vendor changes: Issue #1302: Plug memory leak on failure of archive_write_client_open() Modified: head/contrib/libarchive/libarchive/archive_cryptor.c head/contrib/libarchive/libarchive/archive_cryptor_private.h head/contrib/libarchive/libarchive/archive_digest.c head/contrib/libarchive/libarchive/archive_digest_private.h head/contrib/libarchive/libarchive/archive_hmac.c head/contrib/libarchive/libarchive/archive_hmac_private.h head/contrib/libarchive/libarchive/archive_write.c Directory Properties: head/contrib/libarchive/ (props changed) Modified: head/contrib/libarchive/libarchive/archive_cryptor.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_cryptor.c Sun Jan 5 01:30:41 2020 (r356365) +++ head/contrib/libarchive/libarchive/archive_cryptor.c Sun Jan 5 01:42:21 2020 (r356366) @@ -85,6 +85,35 @@ pbkdf2_sha1(const char *pw, size_t pw_len, const uint8 return (BCRYPT_SUCCESS(status)) ? 0: -1; } +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_PKCS5_H) + +static int +pbkdf2_sha1(const char *pw, size_t pw_len, const uint8_t *salt, + size_t salt_len, unsigned rounds, uint8_t *derived_key, + size_t derived_key_len) +{ + mbedtls_md_context_t ctx; + const mbedtls_md_info_t *info; + int ret; + + mbedtls_md_init(&ctx); + info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + if (info == NULL) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_md_setup(&ctx, info, 1); + if (ret != 0) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_pkcs5_pbkdf2_hmac(&ctx, (const unsigned char *)pw, + pw_len, salt, salt_len, rounds, derived_key_len, derived_key); + + mbedtls_md_free(&ctx); + return (ret); +} + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_PBKDF2_H) static int @@ -265,6 +294,38 @@ aes_ctr_release(archive_crypto_ctx *ctx) HeapFree(GetProcessHeap(), 0, ctx->keyObj); ctx->keyObj = NULL; } + memset(ctx, 0, sizeof(*ctx)); + return 0; +} + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) +static int +aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) +{ + mbedtls_aes_init(&ctx->ctx); + ctx->key_len = key_len; + memcpy(ctx->key, key, key_len); + memset(ctx->nonce, 0, sizeof(ctx->nonce)); + ctx->encr_pos = AES_BLOCK_SIZE; + return 0; +} + +static int +aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) +{ + if (mbedtls_aes_setkey_enc(&ctx->ctx, ctx->key, + ctx->key_len * 8) != 0) + return (-1); + if (mbedtls_aes_crypt_ecb(&ctx->ctx, MBEDTLS_AES_ENCRYPT, ctx->nonce, + ctx->encr_buf) != 0) + return (-1); + return 0; +} + +static int +aes_ctr_release(archive_crypto_ctx *ctx) +{ + mbedtls_aes_free(&ctx->ctx); memset(ctx, 0, sizeof(*ctx)); return 0; } Modified: head/contrib/libarchive/libarchive/archive_cryptor_private.h ============================================================================== --- head/contrib/libarchive/libarchive/archive_cryptor_private.h Sun Jan 5 01:30:41 2020 (r356365) +++ head/contrib/libarchive/libarchive/archive_cryptor_private.h Sun Jan 5 01:42:21 2020 (r356366) @@ -83,6 +83,23 @@ typedef struct { unsigned encr_pos; } archive_crypto_ctx; +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) +#include +#include +#include + +#define AES_MAX_KEY_SIZE 32 +#define AES_BLOCK_SIZE 16 + +typedef struct { + mbedtls_aes_context ctx; + uint8_t key[AES_MAX_KEY_SIZE]; + unsigned key_len; + uint8_t nonce[AES_BLOCK_SIZE]; + uint8_t encr_buf[AES_BLOCK_SIZE]; + unsigned encr_pos; +} archive_crypto_ctx; + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_AES_H) #if defined(HAVE_NETTLE_PBKDF2_H) #include Modified: head/contrib/libarchive/libarchive/archive_digest.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_digest.c Sun Jan 5 01:30:41 2020 (r356365) +++ head/contrib/libarchive/libarchive/archive_digest.c Sun Jan 5 01:42:21 2020 (r356366) @@ -178,6 +178,40 @@ __archive_libsystem_md5final(archive_md5_ctx *ctx, voi return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + +static int +__archive_mbedtls_md5init(archive_md5_ctx *ctx) +{ + mbedtls_md5_init(ctx); + if (mbedtls_md5_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md) +{ + if (mbedtls_md5_finish_ret(ctx, md) == 0) { + mbedtls_md5_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_md5_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) static int @@ -335,6 +369,40 @@ __archive_libmd_ripemd160final(archive_rmd160_ctx *ctx return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + +static int +__archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx) +{ + mbedtls_ripemd160_init(ctx); + if (mbedtls_ripemd160_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md) +{ + if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) static int @@ -491,6 +559,40 @@ __archive_libsystem_sha1final(archive_sha1_ctx *ctx, v return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + +static int +__archive_mbedtls_sha1init(archive_sha1_ctx *ctx) +{ + mbedtls_sha1_init(ctx); + if (mbedtls_sha1_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md) +{ + if (mbedtls_sha1_finish_ret(ctx, md) == 0) { + mbedtls_sha1_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha1_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) static int @@ -720,6 +822,40 @@ __archive_libsystem_sha256final(archive_sha256_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + +static int +__archive_mbedtls_sha256init(archive_sha256_ctx *ctx) +{ + mbedtls_sha256_init(ctx); + if (mbedtls_sha256_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md) +{ + if (mbedtls_sha256_finish_ret(ctx, md) == 0) { + mbedtls_sha256_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha256_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) static int @@ -921,6 +1057,40 @@ __archive_libsystem_sha384final(archive_sha384_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + +static int +__archive_mbedtls_sha384init(archive_sha384_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 1) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) static int @@ -1146,6 +1316,40 @@ __archive_libsystem_sha512final(archive_sha512_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + +static int +__archive_mbedtls_sha512init(archive_sha512_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) static int @@ -1276,6 +1480,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_md5init, &__archive_libsystem_md5update, &__archive_libsystem_md5final, +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + &__archive_mbedtls_md5init, + &__archive_mbedtls_md5update, + &__archive_mbedtls_md5final, #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) &__archive_nettle_md5init, &__archive_nettle_md5update, @@ -1303,6 +1511,10 @@ const struct archive_digest __archive_digest = &__archive_libmd_ripemd160init, &__archive_libmd_ripemd160update, &__archive_libmd_ripemd160final, +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + &__archive_mbedtls_ripemd160init, + &__archive_mbedtls_ripemd160update, + &__archive_mbedtls_ripemd160final, #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) &__archive_nettle_ripemd160init, &__archive_nettle_ripemd160update, @@ -1330,6 +1542,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha1init, &__archive_libsystem_sha1update, &__archive_libsystem_sha1final, +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + &__archive_mbedtls_sha1init, + &__archive_mbedtls_sha1update, + &__archive_mbedtls_sha1final, #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) &__archive_nettle_sha1init, &__archive_nettle_sha1update, @@ -1369,6 +1585,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha256init, &__archive_libsystem_sha256update, &__archive_libsystem_sha256final, +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + &__archive_mbedtls_sha256init, + &__archive_mbedtls_sha256update, + &__archive_mbedtls_sha256final, #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) &__archive_nettle_sha256init, &__archive_nettle_sha256update, @@ -1404,6 +1624,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha384init, &__archive_libsystem_sha384update, &__archive_libsystem_sha384final, +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + &__archive_mbedtls_sha384init, + &__archive_mbedtls_sha384update, + &__archive_mbedtls_sha384final, #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) &__archive_nettle_sha384init, &__archive_nettle_sha384update, @@ -1443,6 +1667,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha512init, &__archive_libsystem_sha512update, &__archive_libsystem_sha512final +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + &__archive_mbedtls_sha512init, + &__archive_mbedtls_sha512update, + &__archive_mbedtls_sha512final #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) &__archive_nettle_sha512init, &__archive_nettle_sha512update, Modified: head/contrib/libarchive/libarchive/archive_digest_private.h ============================================================================== --- head/contrib/libarchive/libarchive/archive_digest_private.h Sun Jan 5 01:30:41 2020 (r356365) +++ head/contrib/libarchive/libarchive/archive_digest_private.h Sun Jan 5 01:42:21 2020 (r356366) @@ -112,6 +112,24 @@ #include #endif +/* mbed TLS crypto headers */ +#if defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +#include +#endif + /* Nettle crypto headers */ #if defined(ARCHIVE_CRYPTO_MD5_NETTLE) #include @@ -159,6 +177,8 @@ typedef MD5_CTX archive_md5_ctx; typedef MD5_CTX archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) typedef CC_MD5_CTX archive_md5_ctx; +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +typedef mbedtls_md5_context archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) typedef struct md5_ctx archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) @@ -173,6 +193,8 @@ typedef unsigned char archive_md5_ctx; typedef RMD160_CTX archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) typedef RIPEMD160_CTX archive_rmd160_ctx; +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +typedef mbedtls_ripemd160_context archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) typedef struct ripemd160_ctx archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) @@ -187,6 +209,8 @@ typedef SHA1_CTX archive_sha1_ctx; typedef SHA1_CTX archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) typedef CC_SHA1_CTX archive_sha1_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +typedef mbedtls_sha1_context archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) typedef struct sha1_ctx archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) @@ -207,6 +231,8 @@ typedef SHA2_CTX archive_sha256_ctx; typedef SHA256_CTX archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) typedef CC_SHA256_CTX archive_sha256_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +typedef mbedtls_sha256_context archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) typedef struct sha256_ctx archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) @@ -225,6 +251,8 @@ typedef SHA384_CTX archive_sha384_ctx; typedef SHA2_CTX archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha384_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) +typedef mbedtls_sha512_context archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) typedef struct sha384_ctx archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) @@ -245,6 +273,8 @@ typedef SHA2_CTX archive_sha512_ctx; typedef SHA512_CTX archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha512_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +typedef mbedtls_sha512_context archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) typedef struct sha512_ctx archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) @@ -259,6 +289,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_MD5_LIBC) ||\ defined(ARCHIVE_CRYPTO_MD5_LIBMD) || \ defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_MD5_NETTLE) ||\ defined(ARCHIVE_CRYPTO_MD5_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_MD5_WIN) @@ -272,6 +303,7 @@ typedef unsigned char archive_sha512_ctx; __archive_digest.md5update(ctx, buf, n) #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) ||\ + defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_RMD160_NETTLE) ||\ defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) #define ARCHIVE_HAS_RMD160 @@ -286,6 +318,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) ||\ defined(ARCHIVE_CRYPTO_SHA1_LIBMD) || \ defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA1_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA1_WIN) @@ -303,6 +336,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA256_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA256_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA256_WIN) @@ -319,6 +353,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA384_LIBC2) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA384_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA384_WIN) @@ -336,6 +371,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA512_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA512_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA512_WIN) Modified: head/contrib/libarchive/libarchive/archive_hmac.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_hmac.c Sun Jan 5 01:30:41 2020 (r356365) +++ head/contrib/libarchive/libarchive/archive_hmac.c Sun Jan 5 01:42:21 2020 (r356366) @@ -150,6 +150,52 @@ __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) } } +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_MD_H) +static int +__hmac_sha1_init(archive_hmac_sha1_ctx *ctx, const uint8_t *key, size_t key_len) +{ + const mbedtls_md_info_t *info; + int ret; + + mbedtls_md_init(ctx); + info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + if (info == NULL) { + mbedtls_md_free(ctx); + return (-1); + } + ret = mbedtls_md_setup(ctx, info, 1); + if (ret != 0) { + mbedtls_md_free(ctx); + return (-1); + } + ret = mbedtls_md_hmac_starts(ctx, key, key_len); + if (ret != 0) { + mbedtls_md_free(ctx); + return (-1); + } + return 0; +} + +static void +__hmac_sha1_update(archive_hmac_sha1_ctx *ctx, const uint8_t *data, + size_t data_len) +{ + mbedtls_md_hmac_update(ctx, data, data_len); +} + +static void __hmac_sha1_final(archive_hmac_sha1_ctx *ctx, uint8_t *out, size_t *out_len) +{ + (void)out_len; /* UNUSED */ + + mbedtls_md_hmac_finish(ctx, out); +} + +static void __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) +{ + mbedtls_md_free(ctx); + memset(ctx, 0, sizeof(*ctx)); +} + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_HMAC_H) static int @@ -201,6 +247,7 @@ static void __hmac_sha1_final(archive_hmac_sha1_ctx *ctx, uint8_t *out, size_t *out_len) { unsigned int len = (unsigned int)*out_len; + HMAC_Final(*ctx, out, &len); *out_len = len; } Modified: head/contrib/libarchive/libarchive/archive_hmac_private.h ============================================================================== --- head/contrib/libarchive/libarchive/archive_hmac_private.h Sun Jan 5 01:30:41 2020 (r356365) +++ head/contrib/libarchive/libarchive/archive_hmac_private.h Sun Jan 5 01:42:21 2020 (r356366) @@ -64,6 +64,11 @@ typedef struct { } archive_hmac_sha1_ctx; +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_MD_H) +#include + +typedef mbedtls_md_context_t archive_hmac_sha1_ctx; + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_HMAC_H) #include Modified: head/contrib/libarchive/libarchive/archive_write.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_write.c Sun Jan 5 01:30:41 2020 (r356365) +++ head/contrib/libarchive/libarchive/archive_write.c Sun Jan 5 01:42:21 2020 (r356366) @@ -449,6 +449,30 @@ archive_write_client_write(struct archive_write_filter } static int +archive_write_client_free(struct archive_write_filter *f) +{ + struct archive_write *a = (struct archive_write *)f->archive; + struct archive_none *state = (struct archive_none *)f->data; + + if (state != NULL) { + free(state->buffer); + free(state); + state = NULL; + } + + a->client_data = NULL; + /* Clear passphrase. */ + if (a->passphrase != NULL) { + memset(a->passphrase, 0, strlen(a->passphrase)); + free(a->passphrase); + a->passphrase = NULL; + } + + return (ARCHIVE_OK); +} + + +static int archive_write_client_close(struct archive_write_filter *f) { struct archive_write *a = (struct archive_write *)f->archive; @@ -484,17 +508,9 @@ archive_write_client_close(struct archive_write_filter } if (a->client_closer) (*a->client_closer)(&a->archive, a->client_data); - free(state->buffer); - free(state); + /* Clear the close handler myself not to be called again. */ f->state = ARCHIVE_WRITE_FILTER_STATE_CLOSED; - a->client_data = NULL; - /* Clear passphrase. */ - if (a->passphrase != NULL) { - memset(a->passphrase, 0, strlen(a->passphrase)); - free(a->passphrase); - a->passphrase = NULL; - } return (ret); } @@ -523,6 +539,7 @@ archive_write_open(struct archive *_a, void *client_da client_filter->open = archive_write_client_open; client_filter->write = archive_write_client_write; client_filter->close = archive_write_client_close; + client_filter->free = archive_write_client_free; ret = __archive_write_filters_open(a); if (ret < ARCHIVE_WARN) { From owner-svn-src-all@freebsd.org Sun Jan 5 02:47:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 504861F6F12; Sun, 5 Jan 2020 02:47:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r33K1SlNz3DdF; Sun, 5 Jan 2020 02:47:57 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2D1981ED3E; Sun, 5 Jan 2020 02:47:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0052lv6a098032; Sun, 5 Jan 2020 02:47:57 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0052lu11098031; Sun, 5 Jan 2020 02:47:56 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001050247.0052lu11098031@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 02:47:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356367 - in head: . share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head: . share/mk X-SVN-Commit-Revision: 356367 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 02:47:57 -0000 Author: emaste Date: Sun Jan 5 02:47:56 2020 New Revision: 356367 URL: https://svnweb.freebsd.org/changeset/base/356367 Log: Do not build GCC 4.2.1 by default for any CPU architecture By default set to NO: GCC GCC_BOOTSTRAP GNUCXX As described by imp@ on the freebsd-arch mailing list Aug 13, 2019 with Subject: Gcc 4.2.1 to be removed before FreeBSD 13, a firm timeline https://lists.freebsd.org/pipermail/freebsd-arch/2019-August/019674.html Reviewed by: jhb, imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23026 Modified: head/UPDATING head/share/mk/src.opts.mk Modified: head/UPDATING ============================================================================== --- head/UPDATING Sun Jan 5 01:42:21 2020 (r356366) +++ head/UPDATING Sun Jan 5 02:47:56 2020 (r356367) @@ -26,6 +26,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20200104: + GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 + retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX + options default to off for all supported CPU architectures. As a + short-term transition aid they may be enabled via WITH_* options. + GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. + 20200102: Support for armv5 has been disconnected and is being removed. The machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Sun Jan 5 01:42:21 2020 (r356366) +++ head/share/mk/src.opts.mk Sun Jan 5 02:47:56 2020 (r356367) @@ -199,6 +199,9 @@ __DEFAULT_NO_OPTIONS = \ CLANG_EXTRAS \ DTRACE_TESTS \ EXPERIMENTAL \ + GCC \ + GCC_BOOTSTRAP \ + GNUCXX \ GNU_GREP_COMPAT \ GPL_DTC \ HESIOD \ @@ -297,24 +300,22 @@ __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__ __DEFAULT_NO_OPTIONS+=LLVM_TARGET_BPF .include -# If the compiler is not C++11 capable, disable Clang and use GCC instead. -# This means that architectures that have GCC 4.2 as default can not -# build Clang without using an external compiler. +# If the compiler is not C++11 capable, disable Clang. External toolchain will +# be required. .if ${COMPILER_FEATURES:Mc++11} && (${__TT} != "mips" && \ ${__TT} != "riscv" && ${__TT} != "sparc64") # Clang is enabled, and will be installed as the default /usr/bin/cc. __DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC LLD -__DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX .elif ${COMPILER_FEATURES:Mc++11} && ${__T} != "sparc64" # If an external compiler that supports C++11 is used as ${CC} and Clang -# supports the target, then Clang is enabled but GCC is installed as the +# supports the target, then Clang is enabled but we still require an external +# toolchain. # default /usr/bin/cc. -__DEFAULT_YES_OPTIONS+=CLANG GCC GCC_BOOTSTRAP GNUCXX LLD +__DEFAULT_YES_OPTIONS+=CLANG LLD __DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC .else # Everything else disables Clang, and uses GCC instead. -__DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX __DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC LLD .endif # In-tree binutils/gcc are older versions without modern architecture support. From owner-svn-src-all@freebsd.org Sun Jan 5 02:57:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 009AC1F7BB2; Sun, 5 Jan 2020 02:57:48 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [18.222.6.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r3Gh5BtCz3F2T; Sun, 5 Jan 2020 02:57:48 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (unknown [18.188.142.31]) by mail.soaustin.net (Postfix) with ESMTPSA id AE0A7170E3; Sun, 5 Jan 2020 02:57:47 +0000 (UTC) Date: Sun, 5 Jan 2020 02:57:46 +0000 From: Mark Linimon To: Ed Maste Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356367 - in head: . share/mk Message-ID: <20200105025745.GA8991@lonesome.com> References: <202001050247.0052lu11098031@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001050247.0052lu11098031@repo.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Rspamd-Queue-Id: 47r3Gh5BtCz3F2T X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 02:57:49 -0000 On Sun, Jan 05, 2020 at 02:47:56AM +0000, Ed Maste wrote: > Do not build GCC 4.2.1 by default for any CPU architecture And there was much rejoicing :-) (but plz not to MFC tnx) mcl From owner-svn-src-all@freebsd.org Sun Jan 5 03:00:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B15F81D005B; Sun, 5 Jan 2020 03:00:27 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r3Kl3tj4z3FBL; Sun, 5 Jan 2020 03:00:27 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 66D111EF33; Sun, 5 Jan 2020 03:00:27 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00530RY0004039; Sun, 5 Jan 2020 03:00:27 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00530Qdf004034; Sun, 5 Jan 2020 03:00:26 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001050300.00530Qdf004034@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 03:00:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356368 - head/tools/build/options X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/tools/build/options X-SVN-Commit-Revision: 356368 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 03:00:27 -0000 Author: emaste Date: Sun Jan 5 03:00:26 2020 New Revision: 356368 URL: https://svnweb.freebsd.org/changeset/base/356368 Log: Adjust WITH_/WITHOUT_ descriptions for GCC options after r356367 The options default to NO on all archs now, and will be removed before FreeBSD 13. Sponsored by: The FreeBSD Foundation Modified: head/tools/build/options/WITHOUT_GCC_BOOTSTRAP head/tools/build/options/WITHOUT_GNUCXX head/tools/build/options/WITH_GCC head/tools/build/options/WITH_GCC_BOOTSTRAP head/tools/build/options/WITH_GNUCXX Modified: head/tools/build/options/WITHOUT_GCC_BOOTSTRAP ============================================================================== --- head/tools/build/options/WITHOUT_GCC_BOOTSTRAP Sun Jan 5 02:47:56 2020 (r356367) +++ head/tools/build/options/WITHOUT_GCC_BOOTSTRAP Sun Jan 5 03:00:26 2020 (r356368) @@ -1,5 +1,2 @@ .\" $FreeBSD$ Set to not build gcc and g++ as part of the bootstrap process. -You must enable either gcc or clang bootstrap to be able to build the system, -unless an alternative compiler is provided via -XCC. Modified: head/tools/build/options/WITHOUT_GNUCXX ============================================================================== --- head/tools/build/options/WITHOUT_GNUCXX Sun Jan 5 02:47:56 2020 (r356367) +++ head/tools/build/options/WITHOUT_GNUCXX Sun Jan 5 03:00:26 2020 (r356368) @@ -1,3 +1,2 @@ .\" $FreeBSD$ Do not build the GNU C++ stack (g++, libstdc++). -This is the default on platforms where clang is the system compiler. Modified: head/tools/build/options/WITH_GCC ============================================================================== --- head/tools/build/options/WITH_GCC Sun Jan 5 02:47:56 2020 (r356367) +++ head/tools/build/options/WITH_GCC Sun Jan 5 03:00:26 2020 (r356368) @@ -1,2 +1,4 @@ .\" $FreeBSD$ Set to build and install gcc and g++. +This option is deprecated and will be removed before +.Fx 13 . Modified: head/tools/build/options/WITH_GCC_BOOTSTRAP ============================================================================== --- head/tools/build/options/WITH_GCC_BOOTSTRAP Sun Jan 5 02:47:56 2020 (r356367) +++ head/tools/build/options/WITH_GCC_BOOTSTRAP Sun Jan 5 03:00:26 2020 (r356368) @@ -1,2 +1,4 @@ .\" $FreeBSD$ Set to build gcc and g++ as part of the bootstrap process. +This option is deprecated and will be removed before +.Fx 13 . Modified: head/tools/build/options/WITH_GNUCXX ============================================================================== --- head/tools/build/options/WITH_GNUCXX Sun Jan 5 02:47:56 2020 (r356367) +++ head/tools/build/options/WITH_GNUCXX Sun Jan 5 03:00:26 2020 (r356368) @@ -1,3 +1,4 @@ .\" $FreeBSD$ Build the GNU C++ stack (g++, libstdc++). -This is the default on platforms where gcc is the system compiler. +This option is deprecated and will be removed before +.Fx 13 . From owner-svn-src-all@freebsd.org Sun Jan 5 03:01:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 953BA1D05DF; Sun, 5 Jan 2020 03:01:23 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r3Lp4GG7z3FpC; Sun, 5 Jan 2020 03:01:22 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f175.google.com with SMTP id f10so39662773ils.8; Sat, 04 Jan 2020 19:01:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9V8ieWMsLMmPwVJYw0+RiqGryBckXymnqcQoUtOwVBI=; b=fGMbmVYUhV2OZgVc3bc4ml99eN8cwXp4DerbDO49nPUVl1YCqIjKYu42DnE8TXh3EY ZMCSgjabVWEGpff9FLK4yXhvwcRf+q9i/l3dgR6asMybktS+0tZSobIlTa1UVFbVatn5 iaadskvjt1h6G54ZsVs5tixt68w7s1F/5rhAFi4d21SPTtvZu0JIsHLmlt8DG5QswdKE k432EC7QI5ou/vHHyKtrwIFEukAqqCWEB7uUzixusHkYb/QUD7XHvtiYihZBEd41dcyy 5kHUwXM1P8+aPDqCg+Yl05P8mi/hm3XT2YTdpeSUF0fWmrLxkiuVG67pkqXMeRXSkFvT WXEA== X-Gm-Message-State: APjAAAUt5bCEKHJJiXkB+Xus6F94CQhRSNc6Q20Yv8jnPnVeM7S7nwDn bw1URIf4SOgb7wseDdje935yApvasv2S8/2Z7LMxKQ== X-Google-Smtp-Source: APXvYqyjAYJ1oc2jJKWbo37EZk5kAhcN5rRGs4+GnI3zc2KsQP6jbfi8Ny7hfi1SAUCUW9rQyIb/1jh4cKO0vibBXvo= X-Received: by 2002:a92:5c52:: with SMTP id q79mr67701356ilb.11.1578193281159; Sat, 04 Jan 2020 19:01:21 -0800 (PST) MIME-Version: 1.0 References: <202001050247.0052lu11098031@repo.freebsd.org> <20200105025745.GA8991@lonesome.com> In-Reply-To: <20200105025745.GA8991@lonesome.com> From: Ed Maste Date: Sat, 4 Jan 2020 22:01:09 -0500 Message-ID: Subject: Re: svn commit: r356367 - in head: . share/mk To: Mark Linimon Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47r3Lp4GG7z3FpC X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.175 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-4.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[175.166.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.00)[ip: (-4.98), ipnet: 209.85.128.0/17(-3.11), asn: 15169(-1.86), country: US(-0.05)]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[175.166.85.209.rep.mailspike.net : 127.0.0.17]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 03:01:23 -0000 On Sat, 4 Jan 2020 at 21:57, Mark Linimon wrote: > > On Sun, Jan 05, 2020 at 02:47:56AM +0000, Ed Maste wrote: > > Do not build GCC 4.2.1 by default for any CPU architecture > > And there was much rejoicing :-) > > (but plz not to MFC tnx) Indeed, I should have tagged it with: Relnotes: YES MFC after: never From owner-svn-src-all@freebsd.org Sun Jan 5 03:03:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 45D3D1D0B8C; Sun, 5 Jan 2020 03:03:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r3PM19Gdz3GGq; Sun, 5 Jan 2020 03:03:35 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 225E11F194; Sun, 5 Jan 2020 03:03:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00533Z1b010857; Sun, 5 Jan 2020 03:03:35 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00533Z3G010856; Sun, 5 Jan 2020 03:03:35 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001050303.00533Z3G010856@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 03:03:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356369 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356369 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 03:03:35 -0000 Author: emaste Date: Sun Jan 5 03:03:34 2020 New Revision: 356369 URL: https://svnweb.freebsd.org/changeset/base/356369 Log: src.conf.5: regen after r356367, default to GCC off Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Sun Jan 5 03:00:26 2020 (r356368) +++ head/share/man/man5/src.conf.5 Sun Jan 5 03:03:34 2020 (r356369) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd January 3, 2020 +.Dd January 4, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -726,29 +726,14 @@ and .Xr ftpd 8 . .It Va WITHOUT_GAMES Set to not build games. -.It Va WITHOUT_GCC -Set to not build and install gcc and g++ as part of the normal build process. -.Pp -This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386 and riscv/riscv64. .It Va WITH_GCC Set to build and install gcc and g++. -.Pp -This is a default setting on -mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. -.It Va WITHOUT_GCC_BOOTSTRAP -Set to not build gcc and g++ as part of the bootstrap process. -You must enable either gcc or clang bootstrap to be able to build the system, -unless an alternative compiler is provided via -XCC. -.Pp -This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386 and riscv/riscv64. +This option is deprecated and will be removed before +.Fx 13 . .It Va WITH_GCC_BOOTSTRAP Set to build gcc and g++ as part of the bootstrap process. -.Pp -This is a default setting on -mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +This option is deprecated and will be removed before +.Fx 13 . .It Va WITHOUT_GCOV Set to not build the .Xr gcov 1 @@ -786,18 +771,10 @@ if a newer version is not installed. .Pp This is a default setting on amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. -.It Va WITHOUT_GNUCXX -Do not build the GNU C++ stack (g++, libstdc++). -This is the default on platforms where clang is the system compiler. -.Pp -This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64 and i386/i386. .It Va WITH_GNUCXX Build the GNU C++ stack (g++, libstdc++). -This is the default on platforms where gcc is the system compiler. -.Pp -This is a default setting on -riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +This option is deprecated and will be removed before +.Fx 13 . .It Va WITHOUT_GNU_DIFF Set to not build GNU .Xr diff 1 From owner-svn-src-all@freebsd.org Sun Jan 5 03:08:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3737F1D1412; Sun, 5 Jan 2020 03:08:00 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r3VS0hDcz3GWW; Sun, 5 Jan 2020 03:08:00 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 123651F1AA; Sun, 5 Jan 2020 03:08:00 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00537xce011112; Sun, 5 Jan 2020 03:07:59 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00537xae011111; Sun, 5 Jan 2020 03:07:59 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001050307.00537xae011111@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 03:07:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356370 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 356370 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 03:08:00 -0000 Author: emaste Date: Sun Jan 5 03:07:59 2020 New Revision: 356370 URL: https://svnweb.freebsd.org/changeset/base/356370 Log: arch.7: update to show mips* and sparc64 use external GCC after r356367 Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Sun Jan 5 03:03:34 2020 (r356369) +++ head/share/man/man7/arch.7 Sun Jan 5 03:07:59 2020 (r356370) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 2, 2020 +.Dd January 4, 2020 .Dt ARCH 7 .Os .Sh NAME @@ -307,21 +307,21 @@ This table shows the default tool chain for each archi .It armv6 Ta Clang Ta lld .It armv7 Ta Clang Ta lld .It i386 Ta Clang Ta lld -.It mips Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mipsel Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mipselhf Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mipshf Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mipsn32 Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mips64 Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mips64el Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mips64elhf Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It mips64hf Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It mips Ta GCC(1) Ta GNU ld 2.17.50 +.It mipsel Ta GCC(1) Ta GNU ld 2.17.50 +.It mipselhf Ta GCC(1) Ta GNU ld 2.17.50 +.It mipshf Ta GCC(1) Ta GNU ld 2.17.50 +.It mipsn32 Ta GCC(1) Ta GNU ld 2.17.50 +.It mips64 Ta GCC(1) Ta GNU ld 2.17.50 +.It mips64el Ta GCC(1) Ta GNU ld 2.17.50 +.It mips64elhf Ta GCC(1) Ta GNU ld 2.17.50 +.It mips64hf Ta GCC(1) Ta GNU ld 2.17.50 .It powerpc Ta Clang Ta GNU ld 2.17.50 .It powerpcspe Ta Clang Ta GNU ld 2.17.50 .It powerpc64 Ta Clang Ta lld .It riscv64 Ta GCC(1) Ta GNU ld(1) .It riscv64sf Ta GCC(1) Ta GNU ld(1) -.It sparc64 Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It sparc64 Ta GCC(1) Ta GNU ld 2.17.50 .El .Pp (1) External toolchain provided by ports/packages. From owner-svn-src-all@freebsd.org Sun Jan 5 03:15:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 716C81D1FBD; Sun, 5 Jan 2020 03:15:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r3fs290Hz3GwS; Sun, 5 Jan 2020 03:15:17 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4583B1F374; Sun, 5 Jan 2020 03:15:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0053FH3P017273; Sun, 5 Jan 2020 03:15:17 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0053FHcb017272; Sun, 5 Jan 2020 03:15:17 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001050315.0053FHcb017272@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 03:15:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356371 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356371 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 03:15:17 -0000 Author: kevans Date: Sun Jan 5 03:15:16 2020 New Revision: 356371 URL: https://svnweb.freebsd.org/changeset/base/356371 Log: shmfd/mmap: restrict maxprot with MAP_SHARED + F_SEAL_WRITE If a write seal is set on a shared mapping, we must exclude VM_PROT_WRITE as the fd is effectively read-only. This was discovered by running devel/linux-ltp, which mmap's with acceptable protections specified then attempts to raise to PROT_READ|PROT_WRITE with mprotect(2), which we allowed. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D22978 Modified: head/sys/kern/uipc_shm.c Modified: head/sys/kern/uipc_shm.c ============================================================================== --- head/sys/kern/uipc_shm.c Sun Jan 5 03:07:59 2020 (r356370) +++ head/sys/kern/uipc_shm.c Sun Jan 5 03:15:16 2020 (r356371) @@ -1116,7 +1116,13 @@ shm_mmap(struct file *fp, vm_map_t map, vm_offset_t *a /* FREAD should always be set. */ if ((fp->f_flag & FREAD) != 0) maxprot |= VM_PROT_EXECUTE | VM_PROT_READ; - if ((fp->f_flag & FWRITE) != 0) + + /* + * If FWRITE's set, we can allow VM_PROT_WRITE unless it's a shared + * mapping with a write seal applied. + */ + if ((fp->f_flag & FWRITE) != 0 && ((flags & MAP_SHARED) == 0 || + (shmfd->shm_seals & F_SEAL_WRITE) == 0)) maxprot |= VM_PROT_WRITE; writecnt = (flags & MAP_SHARED) != 0 && (prot & VM_PROT_WRITE) != 0; From owner-svn-src-all@freebsd.org Sun Jan 5 04:06:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 528521D7706; Sun, 5 Jan 2020 04:06:41 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47r4p90yY5z3Jlr; Sun, 5 Jan 2020 04:06:41 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1480E1FCA5; Sun, 5 Jan 2020 04:06:41 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00546e6w047399; Sun, 5 Jan 2020 04:06:40 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00546eN9047396; Sun, 5 Jan 2020 04:06:40 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001050406.00546eN9047396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 04:06:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356372 - in head/sys: compat/cloudabi kern sys X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/sys: compat/cloudabi kern sys X-SVN-Commit-Revision: 356372 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 04:06:41 -0000 Author: kevans Date: Sun Jan 5 04:06:40 2020 New Revision: 356372 URL: https://svnweb.freebsd.org/changeset/base/356372 Log: shm: correct KPI mistake introduced around memfd_create When file sealing and shm_open2 were introduced, we should have grown a new kern_shm_open2 helper that did the brunt of the work with the new interface while kern_shm_open remains the same. Instead, more complexity was introduced to kern_shm_open to handle the additional features and consumers had to keep changing in somewhat awkward ways, and a kern_shm_open2 was added to wrap kern_shm_open. Backpedal on this and correct the situation- kern_shm_open returns to the interface it had prior to file sealing being introduced, and neither function needs an initial_seals argument anymore as it's handled in kern_shm_open2 based on the shmflags. Modified: head/sys/compat/cloudabi/cloudabi_fd.c head/sys/kern/uipc_shm.c head/sys/sys/syscallsubr.h Modified: head/sys/compat/cloudabi/cloudabi_fd.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_fd.c Sun Jan 5 03:15:16 2020 (r356371) +++ head/sys/compat/cloudabi/cloudabi_fd.c Sun Jan 5 04:06:40 2020 (r356372) @@ -96,7 +96,7 @@ cloudabi_sys_fd_create1(struct thread *td, cap_rights_init(&fcaps.fc_rights, CAP_FSTAT, CAP_FTRUNCATE, CAP_MMAP_RWX); return (kern_shm_open(td, SHM_ANON, O_RDWR | O_CLOEXEC, 0, - &fcaps, F_SEAL_SEAL)); + &fcaps)); default: return (EINVAL); } Modified: head/sys/kern/uipc_shm.c ============================================================================== --- head/sys/kern/uipc_shm.c Sun Jan 5 03:15:16 2020 (r356371) +++ head/sys/kern/uipc_shm.c Sun Jan 5 04:06:40 2020 (r356372) @@ -731,8 +731,8 @@ shm_remove(char *path, Fnv32_t fnv, struct ucred *ucre } int -kern_shm_open(struct thread *td, const char *userpath, int flags, mode_t mode, - struct filecaps *fcaps, int initial_seals) +kern_shm_open2(struct thread *td, const char *userpath, int flags, mode_t mode, + int shmflags, struct filecaps *fcaps, const char *name __unused) { struct filedesc *fdp; struct shmfd *shmfd; @@ -741,8 +741,15 @@ kern_shm_open(struct thread *td, const char *userpath, void *rl_cookie; Fnv32_t fnv; mode_t cmode; - int fd, error; + int error, fd, initial_seals; + if ((shmflags & ~SHM_ALLOW_SEALING) != 0) + return (EINVAL); + + initial_seals = F_SEAL_SEAL; + if ((shmflags & SHM_ALLOW_SEALING) != 0) + initial_seals &= ~F_SEAL_SEAL; + #ifdef CAPABILITY_MODE /* * shm_open(2) is only allowed for anonymous objects. @@ -923,8 +930,8 @@ int freebsd12_shm_open(struct thread *td, struct freebsd12_shm_open_args *uap) { - return (kern_shm_open(td, uap->path, uap->flags | O_CLOEXEC, uap->mode, - NULL, F_SEAL_SEAL)); + return (kern_shm_open(td, uap->path, uap->flags | O_CLOEXEC, + uap->mode, NULL)); } #endif @@ -1476,18 +1483,11 @@ SYSCTL_PROC(_kern_ipc, OID_AUTO, posix_shm_list, "POSIX SHM list"); int -kern_shm_open2(struct thread *td, const char *path, int flags, mode_t mode, - int shmflags, const char *name __unused) +kern_shm_open(struct thread *td, const char *path, int flags, mode_t mode, + struct filecaps *caps) { - int initial_seals; - if ((shmflags & ~SHM_ALLOW_SEALING) != 0) - return (EINVAL); - - initial_seals = F_SEAL_SEAL; - if ((shmflags & SHM_ALLOW_SEALING) != 0) - initial_seals &= ~F_SEAL_SEAL; - return (kern_shm_open(td, path, flags, mode, NULL, initial_seals)); + return (kern_shm_open2(td, path, flags, mode, 0, caps, NULL)); } /* @@ -1505,5 +1505,5 @@ sys_shm_open2(struct thread *td, struct shm_open2_args { return (kern_shm_open2(td, uap->path, uap->flags, uap->mode, - uap->shmflags, uap->name)); + uap->shmflags, NULL, uap->name)); } Modified: head/sys/sys/syscallsubr.h ============================================================================== --- head/sys/sys/syscallsubr.h Sun Jan 5 03:15:16 2020 (r356371) +++ head/sys/sys/syscallsubr.h Sun Jan 5 04:06:40 2020 (r356372) @@ -257,9 +257,10 @@ int kern_setsockopt(struct thread *td, int s, int leve int kern_settimeofday(struct thread *td, struct timeval *tv, struct timezone *tzp); int kern_shm_open(struct thread *td, const char *userpath, int flags, - mode_t mode, struct filecaps *fcaps, int initial_seals); + mode_t mode, struct filecaps *fcaps); int kern_shm_open2(struct thread *td, const char *path, int flags, - mode_t mode, int shmflags, const char *name); + mode_t mode, int shmflags, struct filecaps *fcaps, + const char *name); int kern_shmat(struct thread *td, int shmid, const void *shmaddr, int shmflg); int kern_shmctl(struct thread *td, int shmid, int cmd, void *buf, From owner-svn-src-all@freebsd.org Sun Jan 5 04:55:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E43991DD6CE; Sun, 5 Jan 2020 04:55:16 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (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 47r5tC4pWNz3Nsw; Sun, 5 Jan 2020 04:55:15 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 052E721B24; Sat, 4 Jan 2020 23:55:15 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sat, 04 Jan 2020 23:55:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsco.org; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm2; bh=a PYNbb3HTJg2/529k2PxN/CivG8Q+RhhURXZOSo+O2g=; b=E6N/zTuaHTsjtxlo1 yCly5SAYEN0Mx6HAqgrl+qjK7R9XAZ1bEKH/hBKG7Bf90Vp324BkSFuQBAMrWSbG 5Ye9es8B2OkLLyhxaHnl4lTecRjv3/2s4dqJP1nSC78ZBla/n3eWfHXR5P7gOsIX Az6I5J7F/Xz/35mDQsU7qck/D9QAlLNcj16kDQhZEqlsP0ZHh7yuzr5ikrSoShZU +2Ssb30ySGzCkJGdwRgVlJHxwRkSMv4XghLbLeOTlRm9vaho/xvjPYeTqeQQuE3G eWq+g65bObSBgfp2e8/BKGkXkqWv5NK45EsFcA/KhTOVso6WTVdxclLaciIAWHM6 Z9UZg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=aPYNbb3HTJg2/529k2PxN/CivG8Q+RhhURXZOSo+O 2g=; b=lWK98CRQaPEQbi52H7PZ3M0JSDQQK4UGbk+KHx/zhugEeAJuFRAl6jpOB 1pOCGlIF0HfmB5gmXhMNRYp5PLlOEKcSilG4ijRFMoTK81CTXZKMRlxW0RQD4b0I eKlcwRJEMIYFmqgaWK2AEw0mykK1zSZiZlOqIVbeV8PUPni1FA7z4dTnSMQAWtLC PgG/ZRN5b+o46bmiVrPgaRYWywQEEDjP82oZE2VDuc/CVIIYDDXPPmi0AjziC2Mr ZpM4QZYkPZrPPZJ0yz8i23K1xqqIm/Vej3IoCuRXBLughTzPjzdodEgkNljn2yNa mlIlnqmY+U76/apccmaHgQLTKlYzw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrvdegiedgjeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtggfuhfgjfffgkfhfvffosehtje hmtdhhtddvnecuhfhrohhmpefutghothhtucfnohhnghcuoehstghothhtlhesshgrmhhs tghordhorhhgqeenucffohhmrghinhepfhhrvggvsghsugdrohhrghenucfkphepudejge drvddvjedruddtrdduheenucfrrghrrghmpehmrghilhhfrhhomhepshgtohhtthhlsehs rghmshgtohdrohhrghenucevlhhushhtvghrufhiiigvpedt X-ME-Proxy: Received: from [172.20.10.2] (15.sub-174-227-10.myvzw.com [174.227.10.15]) by mail.messagingengine.com (Postfix) with ESMTPA id 3CA4280060; Sat, 4 Jan 2020 23:55:14 -0500 (EST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3601.0.10\)) Subject: Re: svn commit: r356192 - head/sys/geom From: Scott Long In-Reply-To: <201912300046.xBU0kAhm035303@repo.freebsd.org> Date: Sat, 4 Jan 2020 23:55:13 -0500 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: 7bit Message-Id: References: <201912300046.xBU0kAhm035303@repo.freebsd.org> To: Alexander Motin X-Mailer: Apple Mail (2.3601.0.10) X-Rspamd-Queue-Id: 47r5tC4pWNz3Nsw X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=samsco.org header.s=fm2 header.b=E6N/zTua; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=lWK98CRQ; dmarc=none; spf=pass (mx1.freebsd.org: domain of scottl@samsco.org designates 66.111.4.28 as permitted sender) smtp.mailfrom=scottl@samsco.org X-Spamd-Result: default: False [-5.59 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[samsco.org:s=fm2,messagingengine.com:s=fm1]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:66.111.4.28]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MV_CASE(0.50)[]; DMARC_NA(0.00)[samsco.org]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_COUNT_THREE(0.00)[4]; RCVD_TLS_LAST(0.00)[]; DKIM_TRACE(0.00)[samsco.org:+,messagingengine.com:+]; RWL_MAILSPIKE_GOOD(0.00)[28.4.111.66.rep.mailspike.net : 127.0.0.18]; IP_SCORE(-3.49)[ip: (-9.84), ipnet: 66.111.4.0/24(-4.88), asn: 11403(-2.68), country: US(-0.05)]; RCVD_IN_DNSWL_LOW(-0.10)[28.4.111.66.list.dnswl.org : 127.0.5.1]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:11403, ipnet:66.111.4.0/24, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[15.10.227.174.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 04:55:17 -0000 Good job! > On Dec 29, 2019, at 7:46 PM, Alexander Motin wrote: > > Author: mav > Date: Mon Dec 30 00:46:10 2019 > New Revision: 356192 > URL: https://svnweb.freebsd.org/changeset/base/356192 > > Log: > Retire nstart/nend counters. > > Those counters were abused for decade to workaround broken orphanization > process in different classes by delaying the call while there are active > requests. But from one side it did not close all the races, while from > another was quite expensive on SMP due to trashing twice per request cache > lines of consumer and provider and requiring locks. It lost its sense > after I manually went through all the GEOM classes in base and made > orphanization wait for either provider close or request completion. > > Consumer counters are still used under INVARIANTS to detect premature > consumer close and detach. Provider counters are removed completely. > > Sponsored by: iXsystems, Inc. > > Modified: > head/sys/geom/geom.h > head/sys/geom/geom_event.c > head/sys/geom/geom_io.c > head/sys/geom/geom_subr.c From owner-svn-src-all@freebsd.org Sun Jan 5 08:34:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 404AE1F3389 for ; Sun, 5 Jan 2020 08:34:55 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rBld6lBQz43Hw for ; Sun, 5 Jan 2020 08:34:53 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by mail-pl1-x630.google.com with SMTP id b22so20639849pls.12 for ; Sun, 05 Jan 2020 00:34:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jroberson-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=+vfTMhoycwapEZ+lyJ5+TT8Ek8FG4ALeeIW9XxUxs+k=; b=R5cvxoU4vP5AapabaLT8+X0jHXFCL40V+0t6WDcq0kZADothMVIm5KH5V4enuoV0P0 A04KCrZ+g6BqZRqnShVZLKI3KdSsrNoMFzlrTZHRjmd34RwRVeo06CmYqHBLxxOOsjWB fXQp62zZ8C0ZFO0B3lL1XZvWAGBH9CcvTh988Aka0YuMQx/rBRCTZCqkaLnWcYSy8dGl ykT+bRVHNeC724zNcE+4wi9uLz657TXGZYP8KQHyBdD7ssJZLJdMGBeelZDj48yq/R+G EiN+wPRiiCWauR7cKTJbgXUwGV4t6764a8itWf39oAah2vbHFdVvgQlUMNV3o3mCpSlu 6rZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=+vfTMhoycwapEZ+lyJ5+TT8Ek8FG4ALeeIW9XxUxs+k=; b=Jq0tzekpYqycPScK5ebo6dQNxr2xPkzdEr6jqtmQm400bLJnhIleVMNz//YYTfgoiK 0NO95U78YX3IdGpzPhEek9Ikr6grSUdeZ2QAGQ+Zz/EosNlP/KzDXgJZzfFn86hHoX/M PZdC84vqoA4U/di6C9QY8NjlSOZCZis3LY81POEcbHh7uo88Ax/l1LGOsozqqJYOW679 vlispZIYUjqLknPoXT6OA1G74rxlsncVh6RuE3GbKJLcVUzIWT50tSR4OWd03mctCCjv uQYAT0UVEFEo08SM1M8Qx2QVEUm0ebbe6J67ys8E5qsFUika3E7EZ+ri+Dx+NmlzF7Yv Rh9w== X-Gm-Message-State: APjAAAWCibI6ABLG+fFeoccRNRyncc3+mDdDvTo6vGQb6mxkaF8pGN9W paGACHY53V/0YPSJCVrFuudMZQ== X-Google-Smtp-Source: APXvYqx+OvnGcaE4sqlsW4Xr4o72rQVubY1zFW+htY8g08jrgEy6ez1T0Y30lUZn/QQtAYn243LK7A== X-Received: by 2002:a17:90a:33ad:: with SMTP id n42mr36177086pjb.23.1578213291975; Sun, 05 Jan 2020 00:34:51 -0800 (PST) Received: from rrcs-76-81-105-82.west.biz.rr.com (rrcs-76-81-105-82.west.biz.rr.com. [76.81.105.82]) by smtp.gmail.com with ESMTPSA id 2sm66910766pgo.79.2020.01.05.00.34.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 05 Jan 2020 00:34:51 -0800 (PST) Date: Sat, 4 Jan 2020 22:34:49 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Mark Linimon cc: Jeff Roberson , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356348 - in head/sys: kern vm In-Reply-To: <20200105013314.GA3681@lonesome.com> Message-ID: References: <202001040315.0043FYhn047977@repo.freebsd.org> <20200105013314.GA3681@lonesome.com> User-Agent: Alpine 2.21.9999 (BSF 287 2018-06-16) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Rspamd-Queue-Id: 47rBld6lBQz43Hw X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=jroberson-net.20150623.gappssmtp.com header.s=20150623 header.b=R5cvxoU4; dmarc=none; spf=none (mx1.freebsd.org: domain of jroberson@jroberson.net has no SPF policy when checking 2607:f8b0:4864:20::630) smtp.mailfrom=jroberson@jroberson.net X-Spamd-Result: default: False [-4.40 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[jroberson-net.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[jroberson.net]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[jroberson-net.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[0.3.6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-2.60)[ip: (-8.94), ipnet: 2607:f8b0::/32(-2.13), asn: 15169(-1.86), country: US(-0.05)] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 08:34:55 -0000 On Sun, 5 Jan 2020, Mark Linimon wrote: > On Sat, Jan 04, 2020 at 03:15:34AM +0000, Jeff Roberson wrote: >> Use a separate lock for the zone and keg. > > Out of curiosity, will there be measurable real-world speedups from > this an similar work, or will this mostly apply to edge cases, or ... ? It depends on which real world. A lot of workloads don't really show much allocator activity. For very high speed networking, and especially very high speed networking on big NUMA machines, the speedup is considerable. Netflix reported the earlier round of work cut the time spent in uma by about 30%. For non-numa machines the last ~6 patches cut another 30% off of that in my tests. Even for Netflix, uma was not in the top 5 of their profile before this work. The major perf upshot was somewhere around an 8x improvement when freeing on a different NUMA domain than you allocated from when the allocation policy is first-touch. This is called a cross-domain or 'xdomain' free in the code. This made it possible to enable first-touch for UMA by default on all NUMA machines. I wrote a simple allocator perf test that loops allocating 2k mbufs and appending them to a random remote core's queue after which it drains its local queue. 10 million iterations across 32 cores in two numa domains gives 320,000,000 packets allocated and freed. The time within the same domain was about 4 seconds, before this patch series going to a different domain was around 40 seconds and after it was around 5 seconds. So only a ~25% penalty when doing 2 million packets-per-second-per-core. Many of the recent changes were really as much about code organization and readability as performance. After 18 years of features coming and going, reorganizations, etc. it was getting a bit crufty. Jeff > > mcl > From owner-svn-src-all@freebsd.org Sun Jan 5 12:46:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 00B4D1EBC8E; Sun, 5 Jan 2020 12:46:35 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rJL3608dz4Ggn; Sun, 5 Jan 2020 12:46:35 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C8FDF25B32; Sun, 5 Jan 2020 12:46:35 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005CkZ0f062527; Sun, 5 Jan 2020 12:46:35 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005CkZNj062526; Sun, 5 Jan 2020 12:46:35 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001051246.005CkZNj062526@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 5 Jan 2020 12:46:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356373 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356373 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 12:46:36 -0000 Author: mjg Date: Sun Jan 5 12:46:35 2020 New Revision: 356373 URL: https://svnweb.freebsd.org/changeset/base/356373 Log: Mark mtxpool_sleep as read mostly, not frequently. The latter is not justified. Modified: head/sys/kern/kern_mtxpool.c Modified: head/sys/kern/kern_mtxpool.c ============================================================================== --- head/sys/kern/kern_mtxpool.c Sun Jan 5 04:06:40 2020 (r356372) +++ head/sys/kern/kern_mtxpool.c Sun Jan 5 12:46:35 2020 (r356373) @@ -82,7 +82,7 @@ struct mtx_pool { #define mtx_pool_shift mtx_pool_header.mtxpool_shift #define mtx_pool_next mtx_pool_header.mtxpool_next -struct mtx_pool __read_frequently *mtxpool_sleep; +struct mtx_pool __read_mostly *mtxpool_sleep; #if UINTPTR_MAX == UINT64_MAX /* 64 bits */ # define POINTER_BITS 64 From owner-svn-src-all@freebsd.org Sun Jan 5 12:47:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 274A71EBD30; Sun, 5 Jan 2020 12:47:31 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rJM65YFbz4GpS; Sun, 5 Jan 2020 12:47:30 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B9E2225B34; Sun, 5 Jan 2020 12:47:30 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005ClU31062617; Sun, 5 Jan 2020 12:47:30 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005ClTe0062612; Sun, 5 Jan 2020 12:47:29 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001051247.005ClTe0062612@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 5 Jan 2020 12:47:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356374 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 356374 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 12:47:31 -0000 Author: mjg Date: Sun Jan 5 12:47:29 2020 New Revision: 356374 URL: https://svnweb.freebsd.org/changeset/base/356374 Log: locks: convert delay times to u_short int is just a waste of space for this purpose. Modified: head/sys/kern/kern_mutex.c head/sys/kern/kern_rwlock.c head/sys/kern/kern_sx.c head/sys/kern/subr_lock.c head/sys/sys/lock.h Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Sun Jan 5 12:46:35 2020 (r356373) +++ head/sys/kern/kern_mutex.c Sun Jan 5 12:47:29 2020 (r356374) @@ -144,9 +144,9 @@ static SYSCTL_NODE(_debug, OID_AUTO, mtx, CTLFLAG_RD, static struct lock_delay_config __read_frequently mtx_delay; -SYSCTL_INT(_debug_mtx, OID_AUTO, delay_base, CTLFLAG_RW, &mtx_delay.base, +SYSCTL_U16(_debug_mtx, OID_AUTO, delay_base, CTLFLAG_RW, &mtx_delay.base, 0, ""); -SYSCTL_INT(_debug_mtx, OID_AUTO, delay_max, CTLFLAG_RW, &mtx_delay.max, +SYSCTL_U16(_debug_mtx, OID_AUTO, delay_max, CTLFLAG_RW, &mtx_delay.max, 0, ""); LOCK_DELAY_SYSINIT_DEFAULT(mtx_delay); Modified: head/sys/kern/kern_rwlock.c ============================================================================== --- head/sys/kern/kern_rwlock.c Sun Jan 5 12:46:35 2020 (r356373) +++ head/sys/kern/kern_rwlock.c Sun Jan 5 12:47:29 2020 (r356374) @@ -94,18 +94,18 @@ struct lock_class lock_class_rw = { }; #ifdef ADAPTIVE_RWLOCKS -static int __read_frequently rowner_retries; -static int __read_frequently rowner_loops; +static u_short __read_frequently rowner_retries; +static u_short __read_frequently rowner_loops; static SYSCTL_NODE(_debug, OID_AUTO, rwlock, CTLFLAG_RD, NULL, "rwlock debugging"); -SYSCTL_INT(_debug_rwlock, OID_AUTO, retry, CTLFLAG_RW, &rowner_retries, 0, ""); -SYSCTL_INT(_debug_rwlock, OID_AUTO, loops, CTLFLAG_RW, &rowner_loops, 0, ""); +SYSCTL_U16(_debug_rwlock, OID_AUTO, retry, CTLFLAG_RW, &rowner_retries, 0, ""); +SYSCTL_U16(_debug_rwlock, OID_AUTO, loops, CTLFLAG_RW, &rowner_loops, 0, ""); static struct lock_delay_config __read_frequently rw_delay; -SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_base, CTLFLAG_RW, &rw_delay.base, +SYSCTL_U16(_debug_rwlock, OID_AUTO, delay_base, CTLFLAG_RW, &rw_delay.base, 0, ""); -SYSCTL_INT(_debug_rwlock, OID_AUTO, delay_max, CTLFLAG_RW, &rw_delay.max, +SYSCTL_U16(_debug_rwlock, OID_AUTO, delay_max, CTLFLAG_RW, &rw_delay.max, 0, ""); static void Modified: head/sys/kern/kern_sx.c ============================================================================== --- head/sys/kern/kern_sx.c Sun Jan 5 12:46:35 2020 (r356373) +++ head/sys/kern/kern_sx.c Sun Jan 5 12:47:29 2020 (r356374) @@ -143,17 +143,17 @@ struct lock_class lock_class_sx = { #endif #ifdef ADAPTIVE_SX -static __read_frequently u_int asx_retries; -static __read_frequently u_int asx_loops; +static u_short __read_frequently asx_retries; +static u_short __read_frequently asx_loops; static SYSCTL_NODE(_debug, OID_AUTO, sx, CTLFLAG_RD, NULL, "sxlock debugging"); -SYSCTL_UINT(_debug_sx, OID_AUTO, retries, CTLFLAG_RW, &asx_retries, 0, ""); -SYSCTL_UINT(_debug_sx, OID_AUTO, loops, CTLFLAG_RW, &asx_loops, 0, ""); +SYSCTL_U16(_debug_sx, OID_AUTO, retries, CTLFLAG_RW, &asx_retries, 0, ""); +SYSCTL_U16(_debug_sx, OID_AUTO, loops, CTLFLAG_RW, &asx_loops, 0, ""); static struct lock_delay_config __read_frequently sx_delay; -SYSCTL_INT(_debug_sx, OID_AUTO, delay_base, CTLFLAG_RW, &sx_delay.base, +SYSCTL_U16(_debug_sx, OID_AUTO, delay_base, CTLFLAG_RW, &sx_delay.base, 0, ""); -SYSCTL_INT(_debug_sx, OID_AUTO, delay_max, CTLFLAG_RW, &sx_delay.max, +SYSCTL_U16(_debug_sx, OID_AUTO, delay_max, CTLFLAG_RW, &sx_delay.max, 0, ""); static void Modified: head/sys/kern/subr_lock.c ============================================================================== --- head/sys/kern/subr_lock.c Sun Jan 5 12:46:35 2020 (r356373) +++ head/sys/kern/subr_lock.c Sun Jan 5 12:47:29 2020 (r356374) @@ -123,7 +123,7 @@ void lock_delay(struct lock_delay_arg *la) { struct lock_delay_config *lc = la->config; - u_int i; + u_short i; la->delay <<= 1; if (__predict_false(la->delay > lc->max)) Modified: head/sys/sys/lock.h ============================================================================== --- head/sys/sys/lock.h Sun Jan 5 12:46:35 2020 (r356373) +++ head/sys/sys/lock.h Sun Jan 5 12:47:29 2020 (r356374) @@ -183,13 +183,13 @@ extern struct lock_class lock_class_lockmgr; extern struct lock_class *lock_classes[]; struct lock_delay_config { - u_int base; - u_int max; + u_short base; + u_short max; }; struct lock_delay_arg { struct lock_delay_config *config; - u_int delay; + u_short delay; u_int spin_cnt; }; From owner-svn-src-all@freebsd.org Sun Jan 5 12:48:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3359A1EC00C; Sun, 5 Jan 2020 12:48:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rJN50VFzz4GxN; Sun, 5 Jan 2020 12:48:21 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0C6A925B35; Sun, 5 Jan 2020 12:48:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005CmK8w062706; Sun, 5 Jan 2020 12:48:20 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005CmJ53062700; Sun, 5 Jan 2020 12:48:19 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001051248.005CmJ53062700@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 5 Jan 2020 12:48:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356375 - in head/sys: amd64/amd64 kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: amd64/amd64 kern sys X-SVN-Commit-Revision: 356375 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 12:48:21 -0000 Author: mjg Date: Sun Jan 5 12:48:19 2020 New Revision: 356375 URL: https://svnweb.freebsd.org/changeset/base/356375 Log: locks: add default delay struct Use it for all primitives. This makes everything fit in 8 bytes. Modified: head/sys/amd64/amd64/pmap.c head/sys/kern/kern_mutex.c head/sys/kern/kern_rwlock.c head/sys/kern/kern_sx.c head/sys/kern/subr_lock.c head/sys/sys/lock.h Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Sun Jan 5 12:47:29 2020 (r356374) +++ head/sys/amd64/amd64/pmap.c Sun Jan 5 12:48:19 2020 (r356375) @@ -763,8 +763,7 @@ SYSCTL_INT(_vm_pmap, OID_AUTO, invl_max_qlen, CTLFLAG_ ""); #endif -static struct lock_delay_config __read_frequently di_delay; -LOCK_DELAY_SYSINIT_DEFAULT(di_delay); +#define di_delay locks_delay static void pmap_delayed_invl_start_u(void) Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Sun Jan 5 12:47:29 2020 (r356374) +++ head/sys/kern/kern_mutex.c Sun Jan 5 12:48:19 2020 (r356375) @@ -140,6 +140,7 @@ struct lock_class lock_class_mtx_spin = { }; #ifdef ADAPTIVE_MUTEXES +#ifdef MUTEX_CUSTOM_BACKOFF static SYSCTL_NODE(_debug, OID_AUTO, mtx, CTLFLAG_RD, NULL, "mtx debugging"); static struct lock_delay_config __read_frequently mtx_delay; @@ -150,8 +151,12 @@ SYSCTL_U16(_debug_mtx, OID_AUTO, delay_max, CTLFLAG_RW 0, ""); LOCK_DELAY_SYSINIT_DEFAULT(mtx_delay); +#else +#define mtx_delay locks_delay #endif +#endif +#ifdef MUTEX_SPIN_CUSTOM_BACKOFF static SYSCTL_NODE(_debug, OID_AUTO, mtx_spin, CTLFLAG_RD, NULL, "mtx spin debugging"); @@ -163,6 +168,9 @@ SYSCTL_INT(_debug_mtx_spin, OID_AUTO, delay_max, CTLFL &mtx_spin_delay.max, 0, ""); LOCK_DELAY_SYSINIT_DEFAULT(mtx_spin_delay); +#else +#define mtx_spin_delay locks_delay +#endif /* * System-wide mutexes Modified: head/sys/kern/kern_rwlock.c ============================================================================== --- head/sys/kern/kern_rwlock.c Sun Jan 5 12:47:29 2020 (r356374) +++ head/sys/kern/kern_rwlock.c Sun Jan 5 12:48:19 2020 (r356375) @@ -94,6 +94,7 @@ struct lock_class lock_class_rw = { }; #ifdef ADAPTIVE_RWLOCKS +#ifdef RWLOCK_CUSTOM_BACKOFF static u_short __read_frequently rowner_retries; static u_short __read_frequently rowner_loops; static SYSCTL_NODE(_debug, OID_AUTO, rwlock, CTLFLAG_RD, NULL, @@ -117,6 +118,11 @@ rw_lock_delay_init(void *arg __unused) rowner_loops = max(10000, rw_delay.max); } LOCK_DELAY_SYSINIT(rw_lock_delay_init); +#else +#define rw_delay locks_delay +#define rowner_retries locks_delay_retries +#define rowner_loops locks_delay_loops +#endif #endif /* Modified: head/sys/kern/kern_sx.c ============================================================================== --- head/sys/kern/kern_sx.c Sun Jan 5 12:47:29 2020 (r356374) +++ head/sys/kern/kern_sx.c Sun Jan 5 12:48:19 2020 (r356375) @@ -143,6 +143,7 @@ struct lock_class lock_class_sx = { #endif #ifdef ADAPTIVE_SX +#ifdef SX_CUSTOM_BACKOFF static u_short __read_frequently asx_retries; static u_short __read_frequently asx_loops; static SYSCTL_NODE(_debug, OID_AUTO, sx, CTLFLAG_RD, NULL, "sxlock debugging"); @@ -165,6 +166,11 @@ sx_lock_delay_init(void *arg __unused) asx_loops = max(10000, sx_delay.max); } LOCK_DELAY_SYSINIT(sx_lock_delay_init); +#else +#define sx_delay locks_delay +#define asx_retries locks_delay_retries +#define asx_loops locks_delay_loops +#endif #endif void Modified: head/sys/kern/subr_lock.c ============================================================================== --- head/sys/kern/subr_lock.c Sun Jan 5 12:47:29 2020 (r356374) +++ head/sys/kern/subr_lock.c Sun Jan 5 12:48:19 2020 (r356375) @@ -161,6 +161,29 @@ lock_delay_default_init(struct lock_delay_config *lc) lc->max = 32678; } +struct lock_delay_config __read_frequently locks_delay; +u_short __read_frequently locks_delay_retries; +u_short __read_frequently locks_delay_loops; + +SYSCTL_U16(_debug_lock, OID_AUTO, delay_base, CTLFLAG_RW, &locks_delay.base, + 0, ""); +SYSCTL_U16(_debug_lock, OID_AUTO, delay_max, CTLFLAG_RW, &locks_delay.max, + 0, ""); +SYSCTL_U16(_debug_lock, OID_AUTO, delay_retries, CTLFLAG_RW, &locks_delay_retries, + 0, ""); +SYSCTL_U16(_debug_lock, OID_AUTO, delay_loops, CTLFLAG_RW, &locks_delay_loops, + 0, ""); + +static void +locks_delay_init(void *arg __unused) +{ + + lock_delay_default_init(&locks_delay); + locks_delay_retries = 10; + locks_delay_loops = max(10000, locks_delay.max); +} +LOCK_DELAY_SYSINIT(locks_delay_init); + #ifdef DDB DB_SHOW_COMMAND(lock, db_show_lock) { Modified: head/sys/sys/lock.h ============================================================================== --- head/sys/sys/lock.h Sun Jan 5 12:47:29 2020 (r356374) +++ head/sys/sys/lock.h Sun Jan 5 12:48:19 2020 (r356375) @@ -187,6 +187,10 @@ struct lock_delay_config { u_short max; }; +extern struct lock_delay_config locks_delay; +extern u_short locks_delay_retries; +extern u_short locks_delay_loops; + struct lock_delay_arg { struct lock_delay_config *config; u_short delay; From owner-svn-src-all@freebsd.org Sun Jan 5 13:56:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1D46C1F287D; Sun, 5 Jan 2020 13:56:33 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rKtm71w8z4Kj8; Sun, 5 Jan 2020 13:56:32 +0000 (UTC) (envelope-from tuexen@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EAFFA267C4; Sun, 5 Jan 2020 13:56:32 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005DuWon004140; Sun, 5 Jan 2020 13:56:32 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005DuWBM004139; Sun, 5 Jan 2020 13:56:32 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202001051356.005DuWBM004139@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 5 Jan 2020 13:56:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356376 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356376 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 13:56:33 -0000 Author: tuexen Date: Sun Jan 5 13:56:32 2020 New Revision: 356376 URL: https://svnweb.freebsd.org/changeset/base/356376 Log: Ensure that we don't miss a trigger for kicking off the SCTP iterator. Reported by: nwhitehorn@ MFC after: 1 week Modified: head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Sun Jan 5 12:48:19 2020 (r356375) +++ head/sys/netinet/sctputil.c Sun Jan 5 13:56:32 2020 (r356376) @@ -1475,12 +1475,11 @@ no_stcb: void sctp_iterator_worker(void) { - struct sctp_iterator *it, *nit; + struct sctp_iterator *it; /* This function is called with the WQ lock in place */ - sctp_it_ctl.iterator_running = 1; - TAILQ_FOREACH_SAFE(it, &sctp_it_ctl.iteratorhead, sctp_nxt_itr, nit) { + while ((it = TAILQ_FIRST(&sctp_it_ctl.iteratorhead)) != NULL) { /* now lets work on this one */ TAILQ_REMOVE(&sctp_it_ctl.iteratorhead, it, sctp_nxt_itr); SCTP_IPI_ITERATOR_WQ_UNLOCK(); From owner-svn-src-all@freebsd.org Sun Jan 5 14:06:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1D0F81F34FE; Sun, 5 Jan 2020 14:06:41 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rL6S75Ttz4L6x; Sun, 5 Jan 2020 14:06:40 +0000 (UTC) (envelope-from tuexen@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E9EC1269A1; Sun, 5 Jan 2020 14:06:40 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005E6eoE010068; Sun, 5 Jan 2020 14:06:40 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005E6ecB010067; Sun, 5 Jan 2020 14:06:40 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202001051406.005E6ecB010067@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 5 Jan 2020 14:06:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356377 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356377 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 14:06:41 -0000 Author: tuexen Date: Sun Jan 5 14:06:40 2020 New Revision: 356377 URL: https://svnweb.freebsd.org/changeset/base/356377 Log: Return -1 consistently if an error occurs. MFC after: 1 week Modified: head/sys/netinet/sctp_pcb.c Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Sun Jan 5 13:56:32 2020 (r356376) +++ head/sys/netinet/sctp_pcb.c Sun Jan 5 14:06:40 2020 (r356377) @@ -7131,7 +7131,7 @@ sctp_initiate_iterator(inp_func inpf, SCTP_M_ITER); if (it == NULL) { SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOMEM); - return (ENOMEM); + return (-1); } memset(it, 0, sizeof(*it)); it->function_assoc = af; From owner-svn-src-all@freebsd.org Sun Jan 5 14:08:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 372721F3773; Sun, 5 Jan 2020 14:08:02 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rL820k5jz4LFj; Sun, 5 Jan 2020 14:08:02 +0000 (UTC) (envelope-from tuexen@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 13F05269A3; Sun, 5 Jan 2020 14:08:02 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005E81LU010183; Sun, 5 Jan 2020 14:08:01 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005E81PJ010181; Sun, 5 Jan 2020 14:08:01 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202001051408.005E81PJ010181@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 5 Jan 2020 14:08:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356378 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356378 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 14:08:02 -0000 Author: tuexen Date: Sun Jan 5 14:08:01 2020 New Revision: 356378 URL: https://svnweb.freebsd.org/changeset/base/356378 Log: Don't make the sendall iterator as being up if it could not be started. MFC after: 1 week Modified: head/sys/netinet/sctp_output.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Sun Jan 5 14:06:40 2020 (r356377) +++ head/sys/netinet/sctp_output.c Sun Jan 5 14:08:01 2020 (r356378) @@ -6932,7 +6932,7 @@ sctp_sendall(struct sctp_inpcb *inp, struct uio *uio, (void *)ca, 0, sctp_sendall_completes, inp, 1); if (ret) { - SCTP_PRINTF("Failed to initiate iterator for sendall\n"); + inp->sctp_flags &= ~SCTP_PCB_FLAGS_SND_ITERATOR_UP; SCTP_FREE(ca, SCTP_M_COPYAL); SCTP_LTRACE_ERR_RET_PKT(m, inp, NULL, NULL, SCTP_FROM_SCTP_OUTPUT, EFAULT); return (EFAULT); From owner-svn-src-all@freebsd.org Sun Jan 5 14:37:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B26F01F6201; Sun, 5 Jan 2020 14:37:46 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rLpK4pklz4MNv; Sun, 5 Jan 2020 14:37:45 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-wm1-x341.google.com with SMTP id d73so12473068wmd.1; Sun, 05 Jan 2020 06:37:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=/zJ9J222Np/+QIvOhu0JCmCPXMScas+RhXF300UXiuM=; b=LnV/C7+6WDJM/9/Ay7jWxrioy2oz2X7RG7XDKDOvVHZLxezj/DE2OtlZYhWlrQvXG6 Q58sf2KNs6gkHlHX4BhaOT1fWki5u2blFsgR/H8BR77RNvhzVW2uBmwQRJ2BY5KdIFuQ I78w75WEmL0LSqRe6PcC/m/aTGCMP9xDtcyygZ0Al7RaLlqG6X9HRziIDSDM9a2Q6fPk d1WdQIRpc9/xN44JoWPN62zvTjx3SVErLBtQEV0M0GiiUVSPsPXbdrl1Ip8jXtzRnL1c IgMlppEQdARCtsno3soDxUDzs8yxPmhsv+9zwCN/lMOzab4tk3IBJUo8Lru89bonxQM0 6kjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=/zJ9J222Np/+QIvOhu0JCmCPXMScas+RhXF300UXiuM=; b=CpXlDoIaeSWywQnrmjs7ktYk05WluFP2R7OiBTYlLDw0IYBMlpgfmenzLKrrrl4GDT IRk51m7nmsKXtuL4vgyCh9IIWkovdkj1ZB1NZdSa0xIt+oDozp1x3HboNpsWt9eCZfu2 XqqxcZVloCmrFYG2DWRL2ZJ4uYrf9MC8MQKUxnlgi92H9xdw5mjiDMfdVmc6/QdS5Tzu ZsC71i+ZfegxhbWusvo0pwZgkZNg0spe8cOl3AtGjRXqYRqxprNDlf8EHTcojfDkzZ7p pho5KK8SCYUUf0Lk3YRP0SnpFxoC7DLyhvWCwAMrAiGzUMQan4WpTKnAlnJxBhOd7ajd LwZA== X-Gm-Message-State: APjAAAXtXLLYP0NaT38V/xtSRIVQRBWzmxcDGgZXxWaNNhrmZ8+CJkeL WwmDL6R+uMMYqSLBx+avv9OJP2wt X-Google-Smtp-Source: APXvYqyF3G0T8BgQ3om/lC6a159f5xKnS2cfsbc4cv8EdG0k0yw2y+1lIbDs6kn/iAukUBx2W0EPtw== X-Received: by 2002:a7b:cbcd:: with SMTP id n13mr29570710wmi.104.1578235063716; Sun, 05 Jan 2020 06:37:43 -0800 (PST) Received: from brick (cpc92302-cmbg19-2-0-cust461.5-4.cable.virginm.net. [82.1.209.206]) by smtp.gmail.com with ESMTPSA id j12sm72943679wrw.54.2020.01.05.06.37.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jan 2020 06:37:42 -0800 (PST) Sender: =?UTF-8?Q?Edward_Tomasz_Napiera=C5=82a?= Date: Sun, 5 Jan 2020 14:37:43 +0000 From: Edward Tomasz Napierala To: Dmitry Chagin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356241 - in head/sys: amd64/linux amd64/linux32 arm64/linux compat/linux i386/linux Message-ID: <20200105143743.GA22122@brick> Mail-Followup-To: Dmitry Chagin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201912312201.xBVM1889057554@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: 47rLpK4pklz4MNv X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=LnV/C7+6; dmarc=none; spf=pass (mx1.freebsd.org: domain of etnapierala@gmail.com designates 2a00:1450:4864:20::341 as permitted sender) smtp.mailfrom=etnapierala@gmail.com X-Spamd-Result: default: False [-2.07 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-0.997,0]; TO_DN_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-0.37)[ip: (2.65), ipnet: 2a00:1450::/32(-2.61), asn: 15169(-1.86), country: US(-0.05)]; DKIM_TRACE(0.00)[gmail.com:+]; RCVD_IN_DNSWL_NONE(0.00)[1.4.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; FORGED_SENDER(0.30)[trasz@freebsd.org,etnapierala@gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[206.209.1.82.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; MIME_TRACE(0.00)[0:+]; MID_RHS_NOT_FQDN(0.50)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[trasz@freebsd.org,etnapierala@gmail.com] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 14:37:46 -0000 HNY, and sorry for the late response. Now... I don't know. Looking at sys/amd64/linux/linux_locore.asm, it looks like __vdso_getcpu() should return ENOSYS, but for some reason the getcpu(2) syscall works just fine. The VDSO symbol doesn't get used for some reason? On 0101T0116, Dmitry Chagin wrote: > Hi, HNY! What about vdso? > > ср, 1 янв. 2020 г. в 01:01, Edward Tomasz Napierala : > > > Author: trasz > > Date: Tue Dec 31 22:01:08 2019 > > New Revision: 356241 > > URL: https://svnweb.freebsd.org/changeset/base/356241 > > > > Log: > > Add basic getcpu(2) support to linuxulator. The purpose of this > > syscall is to query the CPU number and the NUMA domain the calling > > thread is currently running on. The third argument is ignored. > > It doesn't do anything regarding scheduling - it's literally > > just a way to query the current state, without any guarantees > > you won't get rescheduled an opcode later. > > > > This unbreaks Java from CentOS 8 > > (java-11-openjdk-11.0.5.10-0.el8_0.x86_64). > > > > Reviewed by: kib > > MFC after: 2 weeks > > Sponsored by: The FreeBSD Foundation > > Differential Revision: https://reviews.freebsd.org/D22972 > > > > Modified: > > head/sys/amd64/linux/linux_dummy.c > > head/sys/amd64/linux32/linux32_dummy.c > > head/sys/arm64/linux/linux_dummy.c > > head/sys/compat/linux/linux_misc.c > > head/sys/i386/linux/linux_dummy.c > > > > Modified: head/sys/amd64/linux/linux_dummy.c > > > > ============================================================================== > > --- head/sys/amd64/linux/linux_dummy.c Tue Dec 31 18:58:29 2019 > > (r356240) > > +++ head/sys/amd64/linux/linux_dummy.c Tue Dec 31 22:01:08 2019 > > (r356241) > > @@ -102,8 +102,6 @@ DUMMY(tee); > > DUMMY(vmsplice); > > /* Linux 2.6.18: */ > > DUMMY(move_pages); > > -/* Linux 2.6.19: */ > > -DUMMY(getcpu); > > /* Linux 2.6.22: */ > > DUMMY(signalfd); > > /* Linux 2.6.27: */ > > > > Modified: head/sys/amd64/linux32/linux32_dummy.c > > > > ============================================================================== > > --- head/sys/amd64/linux32/linux32_dummy.c Tue Dec 31 18:58:29 2019 > > (r356240) > > +++ head/sys/amd64/linux32/linux32_dummy.c Tue Dec 31 22:01:08 2019 > > (r356241) > > @@ -108,8 +108,6 @@ DUMMY(tee); > > DUMMY(vmsplice); > > /* Linux 2.6.18: */ > > DUMMY(move_pages); > > -/* Linux 2.6.19: */ > > -DUMMY(getcpu); > > /* Linux 2.6.22: */ > > DUMMY(signalfd); > > /* Linux 2.6.27: */ > > > > Modified: head/sys/arm64/linux/linux_dummy.c > > > > ============================================================================== > > --- head/sys/arm64/linux/linux_dummy.c Tue Dec 31 18:58:29 2019 > > (r356240) > > +++ head/sys/arm64/linux/linux_dummy.c Tue Dec 31 22:01:08 2019 > > (r356241) > > @@ -104,8 +104,6 @@ DUMMY(tee); > > DUMMY(vmsplice); > > /* Linux 2.6.18: */ > > DUMMY(move_pages); > > -/* Linux 2.6.19: */ > > -DUMMY(getcpu); > > /* Linux 2.6.27: */ > > DUMMY(signalfd4); > > DUMMY(inotify_init1); > > > > Modified: head/sys/compat/linux/linux_misc.c > > > > ============================================================================== > > --- head/sys/compat/linux/linux_misc.c Tue Dec 31 18:58:29 2019 > > (r356240) > > +++ head/sys/compat/linux/linux_misc.c Tue Dec 31 22:01:08 2019 > > (r356241) > > @@ -2353,3 +2353,19 @@ out: > > td->td_retval[0] = dst - args->buf; > > return (error); > > } > > + > > +int > > +linux_getcpu(struct thread *td, struct linux_getcpu_args *args) > > +{ > > + int cpu, error, node; > > + > > + cpu = td->td_oncpu; /* Make sure it doesn't change during > > copyout(9) */ > > + error = 0; > > + node = 0; /* XXX: Fake NUMA node 0 for now */ > > + > > + if (args->cpu != NULL) > > + error = copyout(&cpu, args->cpu, sizeof(l_int)); > > + if (args->node != NULL) > > + error = copyout(&node, args->node, sizeof(l_int)); > > + return (error); > > +} > > > > Modified: head/sys/i386/linux/linux_dummy.c > > > > ============================================================================== > > --- head/sys/i386/linux/linux_dummy.c Tue Dec 31 18:58:29 2019 > > (r356240) > > +++ head/sys/i386/linux/linux_dummy.c Tue Dec 31 22:01:08 2019 > > (r356241) > > @@ -104,8 +104,6 @@ DUMMY(tee); > > DUMMY(vmsplice); > > /* Linux 2.6.18: */ > > DUMMY(move_pages); > > -/* Linux 2.6.19: */ > > -DUMMY(getcpu); > > /* Linux 2.6.22: */ > > DUMMY(signalfd); > > /* Linux 2.6.27: */ > > From owner-svn-src-all@freebsd.org Sun Jan 5 15:24:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F3D181F9E50; Sun, 5 Jan 2020 15:24:01 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rMqj18VQz4PHv; Sun, 5 Jan 2020 15:24:00 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f173.google.com with SMTP id t17so40607613ilm.13; Sun, 05 Jan 2020 07:24:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=FRG81yH986WTI+8E7/BsaDh/3zJrWcJWObPJnv1IzPg=; b=UfxwgGERXwumDBkoF/maelc0hqyLFucJJB8Z5dbQMWwlBtdCE6yLR9nb0nNUq92DPR LzlMKA/hUGuTSqtJp5d2Xg84LSBcWqkBU57yTbZcTxRSOSanD4sJxeuJpwvxlLPG6mCM J9z0i3XcpFUqtHGe5YjYcT5IvzV+yL9A7wns904o+fu5IGt7ZDD2/sJicOsWzktd8o8y n0K6O0z52QKiS8sFiRDle8P6pxgcm6c4ah8y3nOO5rqowGMKWJwE7Gh7OLx11+dlqm3f eF/RhL8SE0k89cbGi7qH3LiHU8FK0aRHvPb51vWXwr2houectgBCywKa9SoajKseDSi3 24sw== X-Gm-Message-State: APjAAAVKJ+lAIuygEO15TbxNr+xxnU/81//Plfl973o2qX7SFqivtEYX cWDznXekBltL+nqinVJPyfc4CZO7gRmU2lpfFgiX0yzL X-Google-Smtp-Source: APXvYqx0+ReDxX2bVNDrV+wIIQCJH4xHaEsYu/t4r6lDd0BPYsNiGWmE3jKBPW1233ZVuh9FvKwWZVX65IUZstl2tFA= X-Received: by 2002:a92:db4f:: with SMTP id w15mr77730124ilq.182.1578237838550; Sun, 05 Jan 2020 07:23:58 -0800 (PST) MIME-Version: 1.0 References: <202001050247.0052lu11098031@repo.freebsd.org> In-Reply-To: <202001050247.0052lu11098031@repo.freebsd.org> From: Ed Maste Date: Sun, 5 Jan 2020 10:23:46 -0500 Message-ID: Subject: Re: svn commit: r356367 - in head: . share/mk To: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47rMqj18VQz4PHv X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.173 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-4.35 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-2.35)[ip: (-6.72), ipnet: 209.85.128.0/17(-3.10), asn: 15169(-1.86), country: US(-0.05)]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[173.166.85.209.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[173.166.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 15:24:02 -0000 On Sat, 4 Jan 2020 at 21:48, Ed Maste wrote: > > Author: emaste > Date: Sun Jan 5 02:47:56 2020 > New Revision: 356367 > URL: https://svnweb.freebsd.org/changeset/base/356367 > > Log: > Do not build GCC 4.2.1 by default for any CPU architecture mips.mips64 is currently failing on ci.freebsd.org (but not tinderbox) with: 09:23:51 --- libcxxrt.a --- 09:23:51 building static cxxrt library 09:23:51 ar -crD libcxxrt.a `NM='nm' NMFLAGS='' lorder libelftc_dem_gnu3.o terminate.o dynamic_cast.o memory.o auxhelper.o exception.o stdexcept.o typeinfo.o guard.o | tsort -q` 09:23:51 --- libcxxrt.so.1.full --- 09:23:51 /usr/obj/usr/src/mips.mips64/tmp/usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 assertion fail /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-mips.c:2297 09:23:51 /usr/obj/usr/src/mips.mips64/tmp/usr/bin/ld: BFD 2.17.50 [FreeBSD] 2007-07-03 internal error, aborting at /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/reloc.c line 445 in unsigned int bfd_get_reloc_size(reloc_howto_type *) 09:23:51 09:23:51 /usr/obj/usr/src/mips.mips64/tmp/usr/bin/ld: Please report this bug. 09:23:51 09:23:51 cc: error: linker command failed with exit code 1 (use -v to see invocation) 09:23:51 *** [libcxxrt.so.1.full] Error code 1 It looks like this is just using external GCC, not full external toolchain, and needs to switch. sparc64 is failing with: 09:12:41 --- lib/libssp_nonshared__PL --- 09:12:41 /tmp/libssp_nonshared-e776f8.s: Assembler messages: 09:12:41 /tmp/libssp_nonshared-e776f8.s:15: Error: unknown pseudo-op: `.cfi_sections' 09:12:41 cc: error: assembler command failed with exit code 1 (use -v to see invocation) 09:12:41 *** [libssp_nonshared.o] Error code 1 This might be the same problem as above, for CI. Running in tinderbox sparc64 fails with: collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped compilation terminated. /usr/local/bin/sparc64-unknown-freebsd12.0-ld: BFD (GNU Binutils) 2.33.1 assertion fail elfxx-sparc.c:763 From owner-svn-src-all@freebsd.org Sun Jan 5 16:59:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D9FBC1DA4D9; Sun, 5 Jan 2020 16:59:24 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rPxm5SWmz4Tx0; Sun, 5 Jan 2020 16:59:24 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B6C8B8DA; Sun, 5 Jan 2020 16:59:24 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005GxOdL013760; Sun, 5 Jan 2020 16:59:24 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005GxOOa013759; Sun, 5 Jan 2020 16:59:24 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001051659.005GxOOa013759@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 16:59:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356379 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356379 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 16:59:24 -0000 Author: emaste Date: Sun Jan 5 16:59:24 2020 New Revision: 356379 URL: https://svnweb.freebsd.org/changeset/base/356379 Log: src.opts.mk: disable BINUTILS_BOOTSTRAP on mips64* After GCC was disabled by default in r356367, mips and sparc64 started relying external GCC. However, the in-tree Binutils ld 2.17.50 is not compatible with GCC for some mips64 targets, so turn off BINUTILS_BOOTSTRAP and rely on external binutils (linker) as well. Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Sun Jan 5 14:08:01 2020 (r356378) +++ head/share/mk/src.opts.mk Sun Jan 5 16:59:24 2020 (r356379) @@ -489,6 +489,10 @@ MK_BSDINSTALL:= no MK_SVNLITE:= no .endif +.if ${__T:Mmips64*} && ${MK_GCC} == "no" +MK_BINUTILS_BOOTSTRAP:= no +.endif + .if ${MK_MAIL} == "no" MK_MAILWRAPPER:= no MK_SENDMAIL:= no From owner-svn-src-all@freebsd.org Sun Jan 5 17:12:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C49E11DC2BE; Sun, 5 Jan 2020 17:12:41 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rQF54qt9z4VwB; Sun, 5 Jan 2020 17:12:41 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1141C9C; Sun, 5 Jan 2020 17:12:41 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005HCf8Y025251; Sun, 5 Jan 2020 17:12:41 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005HCfOI025250; Sun, 5 Jan 2020 17:12:41 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001051712.005HCfOI025250@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 17:12:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356380 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356380 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 17:12:41 -0000 Author: emaste Date: Sun Jan 5 17:12:41 2020 New Revision: 356380 URL: https://svnweb.freebsd.org/changeset/base/356380 Log: src.conf.5: regen after r356379, disable BINUTILS_BOOTSTRAP on mips64* Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Sun Jan 5 16:59:24 2020 (r356379) +++ head/share/man/man5/src.conf.5 Sun Jan 5 17:12:41 2020 (r356380) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd January 4, 2020 +.Dd January 5, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -207,13 +207,13 @@ toolchain is provided. .Ef .Pp This is a default setting on -arm64/aarch64 and riscv/riscv64. +arm64/aarch64, riscv/riscv64, mips/mips64el, mips/mips64, mips/mips64elhf and mips/mips64hf. .It Va WITH_BINUTILS_BOOTSTRAP Set build binutils (as, ld, and objdump) as part of the bootstrap process. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. .It Va WITHOUT_BLACKLIST Set this if you do not want to build .Xr blacklistd 8 From owner-svn-src-all@freebsd.org Sun Jan 5 17:22:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CD2B61DD2AD; Sun, 5 Jan 2020 17:22:07 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rQRz0xNTz4W9k; Sun, 5 Jan 2020 17:22:06 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f182.google.com with SMTP id p8so40772171iln.12; Sun, 05 Jan 2020 09:22:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=zTnC4ReBQ+VVTbJKhd5xtTmvQJikKqsTGfHac0+oiD4=; b=jJuJ3OmV7vzpJ/SqblxpHqQuAkxKHI5JFNJKLSol/ogHV9X0tyazLp4/T1dlVUmQ+6 fGqIpJByWmttr73SQBBHE4s6VEMAJNWd/1m7qu99WR2/MwWwqer6IXFtkLGd0nKY+An9 gDuxr63UTYABhG7SULZBM1NHDwdNroRpTsPOFCQ2WroqZFrlKU4awxAhOHVrA0hdO6lS C9PCxqXV0CUmYG9QcrBDOR74csQ2n3RO0lKu0QDTh8PanXmkMf89aGVatejcceEVfbqu 1wgAlKfEwobQajlOiXr/Oe4i1HFUx1koVXsaZmStSlWh5zRpA71ytQOAWFXU7qhtvzus FLVw== X-Gm-Message-State: APjAAAWF43wtUT8et2q7cOxsMQfmYzfXljgGJTI7c/oA6OEljX1Dab16 3uzDA518MERlHJOsTrPyAxo77jTtKqDwCFthuo3yog== X-Google-Smtp-Source: APXvYqwnUAq16wRs5iEXfkpbMOo/JYwrt0KGFX98+XP/LSmhSBzR4HwFwMlUX2SuI+/tR9Ree1r3NsxEBwIMHWy534s= X-Received: by 2002:a92:db4f:: with SMTP id w15mr77990436ilq.182.1578244925748; Sun, 05 Jan 2020 09:22:05 -0800 (PST) MIME-Version: 1.0 References: <202001051659.005GxOOa013759@repo.freebsd.org> In-Reply-To: <202001051659.005GxOOa013759@repo.freebsd.org> From: Ed Maste Date: Sun, 5 Jan 2020 12:21:53 -0500 Message-ID: Subject: Re: svn commit: r356379 - head/share/mk To: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47rQRz0xNTz4W9k X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.182 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-4.28 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-2.28)[ip: (-6.36), ipnet: 209.85.128.0/17(-3.10), asn: 15169(-1.86), country: US(-0.05)]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[182.166.85.209.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[182.166.85.209.rep.mailspike.net : 127.0.0.17]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 17:22:07 -0000 On Sun, 5 Jan 2020 at 11:59, Ed Maste wrote: > > Author: emaste > Date: Sun Jan 5 16:59:24 2020 > New Revision: 356379 > URL: https://svnweb.freebsd.org/changeset/base/356379 > > Log: > src.opts.mk: disable BINUTILS_BOOTSTRAP on mips64* I should probably make this the case for all of mips* and sparc64. Using a decade-old binutils with a contemporary compiler (either Clang or GCC) isn't likely to be a combination used by anyone else and it's not going to be a good use of our time investigating and addressing any issues that arise. From owner-svn-src-all@freebsd.org Sun Jan 5 17:26:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5EC561DDB22 for ; Sun, 5 Jan 2020 17:26:22 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rQXs3qV6z4WZw for ; Sun, 5 Jan 2020 17:26:21 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82d.google.com with SMTP id e6so40778466qtq.7 for ; Sun, 05 Jan 2020 09:26:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qNU8mvvGe4Wt/2Fkm+TCLHYsqdwd0RWyF672F8ABkAk=; b=LRGEzvAKU93wmahLSx6/tvjnShdVxZkvA0Yg5pHH8dff/+WQtwdArfU/2E1K6AHqJ2 fRrIh/ZTNY9qA8KLW/Kpy6K/t/8yfPJI/mC7sB7AoKDBcLuBbd9owI4zOdqKpp7OvGQN zA9tvHAe8ysiGHBAJfFOAVTFZI7DlsuIAVPu6igZVzXkznOAUSgp0NlcDpViMbDU3nsb f+njoOdCrUzBUkmGS1p5OBBlbIUsHU7Jhrotaoj9Jl+glE2q369qgSYCITmDP3tr8I1l m9nMU9Dw3MAs//w+mPXjLCcMMP0qqdRLnZ2aBZNYdmR2pIGRsBRYZyTsRwt3nvP2Pvy4 POvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qNU8mvvGe4Wt/2Fkm+TCLHYsqdwd0RWyF672F8ABkAk=; b=c7XxviANmP2itwHveETDtfe5Uek8QPqI51o8kfB9lwNZGYHN+eGPO3DKOROrcKI/0Q 8Q4v0yWu1FrtdpawhY0JOd0Sz3JoNlLTLDM/CIHTupjfx5wsicEquoifi4i88bXX2VVu OcISC/+zU7IagJtGDEma3ZgLnxAVUL0cDGngWOnBKSbpIDYbx4fhmFI/mcmkthahF/Rn RWqPBaZ2eSXRmlUtb4exDKj2PUBVmYQiThrSz0UBI0fIrm4eWV+FoQd57AVGgM/e51nc YigQZfltfFY+DYC7GFvdhbYWwj1UiZbTgLZ49dDHHvWv8863fXIcSB0RgfGIkr+DEBeC k6OA== X-Gm-Message-State: APjAAAV5L6irx9mqvf+SUuUotuwvbdRcz//T1IRPQ1Y3YPyBGNBhTT7i p0H5zxfQouAyypRTFjg0Bh7XNKDqjY3rpnZZDUobTGQB X-Google-Smtp-Source: APXvYqx8OT/gppzkZQZGuNK6OLqBVgftXhGkZrnRAnEkcDy10sav8IGMnMl4UR25DLB2ShfcOIFCZ4lpl2mKio0AxD4= X-Received: by 2002:aed:3b79:: with SMTP id q54mr61989096qte.187.1578245179792; Sun, 05 Jan 2020 09:26:19 -0800 (PST) MIME-Version: 1.0 References: <202001051659.005GxOOa013759@repo.freebsd.org> In-Reply-To: From: Warner Losh Date: Sun, 5 Jan 2020 11:26:07 -0600 Message-ID: Subject: Re: svn commit: r356379 - head/share/mk To: Ed Maste Cc: src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 47rQXs3qV6z4WZw X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=LRGEzvAK; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::82d) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.67 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[d.2.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.67)[ip: (-9.32), ipnet: 2607:f8b0::/32(-2.13), asn: 15169(-1.86), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 17:26:22 -0000 On Sun, Jan 5, 2020, 10:22 AM Ed Maste wrote: > On Sun, 5 Jan 2020 at 11:59, Ed Maste wrote: > > > > Author: emaste > > Date: Sun Jan 5 16:59:24 2020 > > New Revision: 356379 > > URL: https://svnweb.freebsd.org/changeset/base/356379 > > > > Log: > > src.opts.mk: disable BINUTILS_BOOTSTRAP on mips64* > > I should probably make this the case for all of mips* and sparc64. > Using a decade-old binutils with a contemporary compiler (either Clang > or GCC) isn't likely to be a combination used by anyone else and it's > not going to be a good use of our time investigating and addressing > any issues that arise. > I'd agree. There are lots of bugs or missing features in our binutils that will bite people... Warner > From owner-svn-src-all@freebsd.org Sun Jan 5 17:53:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DA6BE1E0C50; Sun, 5 Jan 2020 17:53:50 +0000 (UTC) (envelope-from yasu@utahime.org) Received: from gate.utahime.jp (gate.utahime.jp [183.180.29.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47rR8Y2RDDz4XxP; Sun, 5 Jan 2020 17:53:48 +0000 (UTC) (envelope-from yasu@utahime.org) Received: from eastasia.home.utahime.org (eastasia.home.utahime.org [192.168.174.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by gate.utahime.jp (Postfix) with ESMTPS id CF40E488BB; Mon, 6 Jan 2020 02:53:44 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=utahime.org; s=maybe2019112701; t=1578246824; bh=LLvNZ2RSkoaFr/LYcks1xZqWzMTcUnMiT6MgyDV4t9Y=; h=Date:To:Cc:Subject:From:In-Reply-To:References; b=qk7VYg8uzmoG/Xz+f2vflSOl9RYyML+7BO/6PSct4//uEOrnDPTfVhHCjeG+p910B 1ZszEBRY/mUjxrY3OUhSqge5oHrRyYwysZG1FQ3FPZDbTu5O6WBn55GWKMIIEvnV9D ETf1f2sKkaHKDTH0Q3mWD8JIIAL21g5yQEYU5I94KPiYZjbRGwXASs+uHaMEWrqukG e6N8YJaqwEgtsSnlJ1RriVzUFYyy10wdbT9TjTjTIDXtBx3J7QlabMbwuHIPdxenyy YwImzWMp1SWBqnQO8jhSBnSmxBkWWFrRIoZBKvwqckf4EFYqQdlEtxBtS7FphcOnGQ oChWuWDrVFF5g== Received: from localhost (rolling.home.utahime.org [192.168.174.11]) (using TLSv1.3 with cipher TLS_CHACHA20_POLY1305_SHA256 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by eastasia.home.utahime.org (Postfix) with ESMTPSA id B3A715EF34; Mon, 6 Jan 2020 02:53:42 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.1 at eastasia.home.utahime.org Date: Mon, 06 Jan 2020 02:52:57 +0900 (JST) Message-Id: <20200106.025257.202876441661893679.yasu@utahime.org> To: imp@bsdimp.com Cc: emaste@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r356379 - head/share/mk From: Yasuhiro KIMURA In-Reply-To: References: <202001051659.005GxOOa013759@repo.freebsd.org> X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47rR8Y2RDDz4XxP X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=utahime.org header.s=maybe2019112701 header.b=qk7VYg8u; dmarc=none; spf=pass (mx1.freebsd.org: domain of yasu@utahime.org designates 183.180.29.210 as permitted sender) smtp.mailfrom=yasu@utahime.org X-Spamd-Result: default: False [0.96 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[utahime.org:s=maybe2019112701]; NEURAL_HAM_MEDIUM(-0.60)[-0.602,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+a:spf-authorized.utahime.org]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; TO_DN_NONE(0.00)[]; DMARC_NA(0.00)[utahime.org]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[utahime.org:+]; NEURAL_SPAM_LONG(0.21)[0.215,0]; MID_CONTAINS_FROM(1.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; IP_SCORE(0.34)[ip: (0.24), ipnet: 183.180.0.0/16(0.12), asn: 2519(1.33), country: JP(0.03)]; ASN(0.00)[asn:2519, ipnet:183.180.0.0/16, country:JP]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 17:53:50 -0000 From: Warner Losh Subject: Re: svn commit: r356379 - head/share/mk Date: Sun, 5 Jan 2020 11:26:07 -0600 >> > Author: emaste >> > Date: Sun Jan 5 16:59:24 2020 >> > New Revision: 356379 >> > URL: https://svnweb.freebsd.org/changeset/base/356379 >> > >> > Log: >> > src.opts.mk: disable BINUTILS_BOOTSTRAP on mips64* >> >> I should probably make this the case for all of mips* and sparc64. >> Using a decade-old binutils with a contemporary compiler (either Clang >> or GCC) isn't likely to be a combination used by anyone else and it's >> not going to be a good use of our time investigating and addressing >> any issues that arise. >> > I'd agree. There are lots of bugs or missing features in our binutils that > will bite people... Just out of curiosity, is there any retirement plan for binutils in base system at the moment? --- Yasuhiro KIMURA From owner-svn-src-all@freebsd.org Sun Jan 5 18:01:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 545921E0F12; Sun, 5 Jan 2020 18:01:16 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRK81g6qz4Y9D; Sun, 5 Jan 2020 18:01:16 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 340DD144B; Sun, 5 Jan 2020 18:01:16 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005I1F35053129; Sun, 5 Jan 2020 18:01:15 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005I1FYt053128; Sun, 5 Jan 2020 18:01:15 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001051801.005I1FYt053128@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 18:01:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356381 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356381 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:01:16 -0000 Author: emaste Date: Sun Jan 5 18:01:15 2020 New Revision: 356381 URL: https://svnweb.freebsd.org/changeset/base/356381 Log: src.opts.mk: disable BINUTILS_BOOTSTRAP on all mips* and sparc64 Extend r356379 to include 32-bit mips and sparc64. Using a decade-old binutils linker with a contemporary compiler (either Clang or GCC) is a combination unlikely to be used by anyone else, and it's not going to be a good use of our time investigating and addressing any issues that arise. Expect that all architectures newly migrated to external GCC will also use external binutils. Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Sun Jan 5 17:12:41 2020 (r356380) +++ head/share/mk/src.opts.mk Sun Jan 5 18:01:15 2020 (r356381) @@ -489,7 +489,7 @@ MK_BSDINSTALL:= no MK_SVNLITE:= no .endif -.if ${__T:Mmips64*} && ${MK_GCC} == "no" +.if (${__TT} == "mips" || ${__TT} == "sparc64") && ${MK_GCC} == "no" MK_BINUTILS_BOOTSTRAP:= no .endif From owner-svn-src-all@freebsd.org Sun Jan 5 18:01:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A0BCC1E0F95; Sun, 5 Jan 2020 18:01:53 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRKs3qRTz4YKD; Sun, 5 Jan 2020 18:01:53 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7E954147A; Sun, 5 Jan 2020 18:01:53 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005I1ros054013; Sun, 5 Jan 2020 18:01:53 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005I1rnm054012; Sun, 5 Jan 2020 18:01:53 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001051801.005I1rnm054012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 18:01:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356382 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356382 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:01:53 -0000 Author: emaste Date: Sun Jan 5 18:01:52 2020 New Revision: 356382 URL: https://svnweb.freebsd.org/changeset/base/356382 Log: src.conf.5: regen after r356381, disable BINUTILS_BOOTSTRAP more widely Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Sun Jan 5 18:01:15 2020 (r356381) +++ head/share/man/man5/src.conf.5 Sun Jan 5 18:01:52 2020 (r356382) @@ -207,13 +207,13 @@ toolchain is provided. .Ef .Pp This is a default setting on -arm64/aarch64, riscv/riscv64, mips/mips64el, mips/mips64, mips/mips64elhf and mips/mips64hf. +arm64/aarch64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_BINUTILS_BOOTSTRAP Set build binutils (as, ld, and objdump) as part of the bootstrap process. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7 and i386/i386. .It Va WITHOUT_BLACKLIST Set this if you do not want to build .Xr blacklistd 8 From owner-svn-src-all@freebsd.org Sun Jan 5 18:03:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3335D1E10C7; Sun, 5 Jan 2020 18:03:54 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRNB0Yp2z4Yfk; Sun, 5 Jan 2020 18:03:54 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0E7A915DF; Sun, 5 Jan 2020 18:03:54 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005I3rGP054787; Sun, 5 Jan 2020 18:03:53 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005I3r7e054786; Sun, 5 Jan 2020 18:03:53 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001051803.005I3r7e054786@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 18:03:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356383 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 356383 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:03:54 -0000 Author: emaste Date: Sun Jan 5 18:03:53 2020 New Revision: 356383 URL: https://svnweb.freebsd.org/changeset/base/356383 Log: arch.7: update toolchain table for external ld use As of r356379 and r356381 mips* and sparc64 now use external Binutils ld as their linker. Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Sun Jan 5 18:01:52 2020 (r356382) +++ head/share/man/man7/arch.7 Sun Jan 5 18:03:53 2020 (r356383) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 4, 2020 +.Dd January 5, 2020 .Dt ARCH 7 .Os .Sh NAME @@ -307,21 +307,21 @@ This table shows the default tool chain for each archi .It armv6 Ta Clang Ta lld .It armv7 Ta Clang Ta lld .It i386 Ta Clang Ta lld -.It mips Ta GCC(1) Ta GNU ld 2.17.50 -.It mipsel Ta GCC(1) Ta GNU ld 2.17.50 -.It mipselhf Ta GCC(1) Ta GNU ld 2.17.50 -.It mipshf Ta GCC(1) Ta GNU ld 2.17.50 -.It mipsn32 Ta GCC(1) Ta GNU ld 2.17.50 -.It mips64 Ta GCC(1) Ta GNU ld 2.17.50 -.It mips64el Ta GCC(1) Ta GNU ld 2.17.50 -.It mips64elhf Ta GCC(1) Ta GNU ld 2.17.50 -.It mips64hf Ta GCC(1) Ta GNU ld 2.17.50 -.It powerpc Ta Clang Ta GNU ld 2.17.50 -.It powerpcspe Ta Clang Ta GNU ld 2.17.50 +.It mips Ta GCC(1) Ta GNU ld(1) +.It mipsel Ta GCC(1) Ta GNU ld(1) +.It mipselhf Ta GCC(1) Ta GNU ld(1) +.It mipshf Ta GCC(1) Ta GNU ld(1) +.It mipsn32 Ta GCC(1) Ta GNU ld(1) +.It mips64 Ta GCC(1) Ta GNU ld(1) +.It mips64el Ta GCC(1) Ta GNU ld(1) +.It mips64elhf Ta GCC(1) Ta GNU ld(1) +.It mips64hf Ta GCC(1) Ta GNU ld(1) +.It powerpc Ta Clang Ta GNU ld(1) +.It powerpcspe Ta Clang Ta GNU ld(1) .It powerpc64 Ta Clang Ta lld .It riscv64 Ta GCC(1) Ta GNU ld(1) .It riscv64sf Ta GCC(1) Ta GNU ld(1) -.It sparc64 Ta GCC(1) Ta GNU ld 2.17.50 +.It sparc64 Ta GCC(1) Ta GNU ld(1) .El .Pp (1) External toolchain provided by ports/packages. From owner-svn-src-all@freebsd.org Sun Jan 5 18:03:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 546651E10FF; Sun, 5 Jan 2020 18:03:59 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-yb1-xb44.google.com (mail-yb1-xb44.google.com [IPv6:2607:f8b0:4864:20::b44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRNH1B4cz4Ym5; Sun, 5 Jan 2020 18:03:58 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-yb1-xb44.google.com with SMTP id x14so21129589ybr.4; Sun, 05 Jan 2020 10:03:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qrOr6c0F4ZIsNJGSW4R5CT1UOeznIPyhvJxU1GPr/iQ=; b=FTTS0GCoC4iA/CFcH9OJ1ZpEzpkTIq5VRP045Dd6bq+uqcdT+d3zRDhQDCHdOxAA0n dbK5m8iJrMCIrF6L2zHwQNyu2g54n+EX/TB3ELsbXOU1pAsKMlys/BvL+LTT+l192kF5 d9AUGlyrJ2CrQDBT7jottgX4wXWq79xmhE6kjhiNpnywWW0I5UDGvaWFS5PGpdWk7TQ1 Ctn8cMgl5S9DGKrosIlKPQJcA12GNveRGKiMjKOq2USKI9iOUr2XAhKnR35FYpy0SuYL 1MBMKFXWuzXS5mz3xQyFDQNhnaGBTNNT+c3nnxqfMnakLuQPaIYm3IfWs0uf9U92Bfjm fYeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qrOr6c0F4ZIsNJGSW4R5CT1UOeznIPyhvJxU1GPr/iQ=; b=I8v630zmBz6OSFEr4O32leloP3Cz+/2CKVzzCZQaMWYYJzZOuNlOHlb7KfTGBUcPO6 10qrPh+LpEjuGuJXzDa98Pz3rdBOu9GTDUSiudZnrM8CsLOLUqIoCiD4dF47eqSRKUYY 3tIw1Vt2kygMJbSq+C2liMhK/aeIoVWhupQzKxPfKQCAcwrV6mJdu0zhO2du1MA1R/WF 1WJm4oJs8fdhvzFlIlNxR9vgnTk666gZ6Z6Qkrg1bcNS1GjmVWxo8cOBv8GZdP49NiN6 B3XjDtUNnKWIcPiWUNcul5JT6Mo32qPDsFyjL8SvNGkpn9eYRPLeUwdsyxkRZ8pFBJ8a O1hA== X-Gm-Message-State: APjAAAXnegUYh32ZgItZ8DG45KYdyHv2v3EdSJybYnEDJ0SnDF8DjGyZ GlIOI0vdGxmbDOA5/Roqhy3P6ODF X-Google-Smtp-Source: APXvYqzodVc5MDNCCY54E++LjO97cinOgULEpxNz8XLrM9/VnLM6GTk0//ZNUq5YJNZ9yUi3L3dxhg== X-Received: by 2002:a25:e616:: with SMTP id d22mr71978301ybh.220.1578247437662; Sun, 05 Jan 2020 10:03:57 -0800 (PST) Received: from titan.knownspace (173-19-125-130.client.mchsi.com. [173.19.125.130]) by smtp.gmail.com with ESMTPSA id l22sm27029583ywl.54.2020.01.05.10.03.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jan 2020 10:03:57 -0800 (PST) Date: Sun, 5 Jan 2020 12:03:54 -0600 From: Justin Hibbits To: Ed Maste Cc: src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r356379 - head/share/mk Message-ID: <20200105120354.3b9c1c49@titan.knownspace> In-Reply-To: References: <202001051659.005GxOOa013759@repo.freebsd.org> X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; powerpc64-portbld-freebsd13.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47rRNH1B4cz4Ym5 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:03:59 -0000 On Sun, 5 Jan 2020 12:21:53 -0500 Ed Maste wrote: > On Sun, 5 Jan 2020 at 11:59, Ed Maste wrote: > > > > Author: emaste > > Date: Sun Jan 5 16:59:24 2020 > > New Revision: 356379 > > URL: https://svnweb.freebsd.org/changeset/base/356379 > > > > Log: > > src.opts.mk: disable BINUTILS_BOOTSTRAP on mips64* > > I should probably make this the case for all of mips* and sparc64. > Using a decade-old binutils with a contemporary compiler (either Clang > or GCC) isn't likely to be a combination used by anyone else and it's > not going to be a good use of our time investigating and addressing > any issues that arise. powerpc and powerpcspe still use in-tree binutils (or external binutils... but in-tree works well enough, until we start adding ifuncs), until such a time that lld is fully functional. - Justin From owner-svn-src-all@freebsd.org Sun Jan 5 18:06:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B814F1E1252; Sun, 5 Jan 2020 18:06:32 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRRD4S2Pz4Yvt; Sun, 5 Jan 2020 18:06:32 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 93F2915E1; Sun, 5 Jan 2020 18:06:32 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005I6WMZ054957; Sun, 5 Jan 2020 18:06:32 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005I6WKm054956; Sun, 5 Jan 2020 18:06:32 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001051806.005I6WKm054956@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sun, 5 Jan 2020 18:06:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356384 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 356384 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:06:32 -0000 Author: emaste Date: Sun Jan 5 18:06:32 2020 New Revision: 356384 URL: https://svnweb.freebsd.org/changeset/base/356384 Log: arch.7: correct overzealous claims of external binutils use powerpc and powerpcspe still use in-tree ld 2.17.50 Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Sun Jan 5 18:03:53 2020 (r356383) +++ head/share/man/man7/arch.7 Sun Jan 5 18:06:32 2020 (r356384) @@ -316,8 +316,8 @@ This table shows the default tool chain for each archi .It mips64el Ta GCC(1) Ta GNU ld(1) .It mips64elhf Ta GCC(1) Ta GNU ld(1) .It mips64hf Ta GCC(1) Ta GNU ld(1) -.It powerpc Ta Clang Ta GNU ld(1) -.It powerpcspe Ta Clang Ta GNU ld(1) +.It powerpc Ta Clang Ta GNU ld 2.17.50 +.It powerpcspe Ta Clang Ta GNU ld 2.17.50 .It powerpc64 Ta Clang Ta lld .It riscv64 Ta GCC(1) Ta GNU ld(1) .It riscv64sf Ta GCC(1) Ta GNU ld(1) From owner-svn-src-all@freebsd.org Sun Jan 5 18:15:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2267F1E1651; Sun, 5 Jan 2020 18:15:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRdp082vz4ZLh; Sun, 5 Jan 2020 18:15:42 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFB6617A2; Sun, 5 Jan 2020 18:15:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005IFfNV061440; Sun, 5 Jan 2020 18:15:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005IFfQt061439; Sun, 5 Jan 2020 18:15:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001051815.005IFfQt061439@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 5 Jan 2020 18:15:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356385 - stable/12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/sys X-SVN-Commit-Revision: 356385 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:15:42 -0000 Author: markj Date: Sun Jan 5 18:15:41 2020 New Revision: 356385 URL: https://svnweb.freebsd.org/changeset/base/356385 Log: MFC r356186: Add ARMv8 static relocation types used for control flow instructions. Modified: stable/12/sys/sys/elf_common.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/sys/elf_common.h ============================================================================== --- stable/12/sys/sys/elf_common.h Sun Jan 5 18:06:32 2020 (r356384) +++ stable/12/sys/sys/elf_common.h Sun Jan 5 18:15:41 2020 (r356385) @@ -962,6 +962,10 @@ typedef struct { #define R_AARCH64_PREL64 260 /* PC relative */ #define R_AARCH64_PREL32 261 /* PC relative, 32-bit overflow check */ #define R_AARCH64_PREL16 262 /* PC relative, 16-bit overflow check */ +#define R_AARCH64_TSTBR14 279 /* TBZ/TBNZ immediate */ +#define R_AARCH64_CONDBR19 280 /* Conditional branch immediate */ +#define R_AARCH64_JUMP26 282 /* Branch immediate */ +#define R_AARCH64_CALL26 283 /* Call immediate */ #define R_AARCH64_COPY 1024 /* Copy data from shared object */ #define R_AARCH64_GLOB_DAT 1025 /* Set GOT entry to data address */ #define R_AARCH64_JUMP_SLOT 1026 /* Set GOT entry to code address */ From owner-svn-src-all@freebsd.org Sun Jan 5 18:16:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 930C91E172E; Sun, 5 Jan 2020 18:16:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRfy3PBNz4ZTB; Sun, 5 Jan 2020 18:16:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.5] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id DA28AC1D8; Sun, 5 Jan 2020 18:16:41 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r356367 - in head: . share/mk To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202001050247.0052lu11098031@repo.freebsd.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: <0b3ae104-ea62-1aa8-c926-c6021565a050@FreeBSD.org> Date: Sun, 5 Jan 2020 13:16:40 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <202001050247.0052lu11098031@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:16:42 -0000 FWIW, On 04/01/2020 21:47, Ed Maste wrote: > Author: emaste > Date: Sun Jan 5 02:47:56 2020 > New Revision: 356367 > URL: https://svnweb.freebsd.org/changeset/base/356367 > > Log: > Do not build GCC 4.2.1 by default for any CPU architecture  It's really nice how the compiler warning trend went down. On FreeBSD-head-mips-build* it went from 7691 warnings to 473 + 83. Cheers, Pedro. *https://ci.freebsd.org/job/FreeBSD-head-mips-build/ From owner-svn-src-all@freebsd.org Sun Jan 5 18:17:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 02A4F1E17E7 for ; Sun, 5 Jan 2020 18:17:35 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRgy37N0z4Zbr for ; Sun, 5 Jan 2020 18:17:34 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x734.google.com with SMTP id z76so38095046qka.2 for ; Sun, 05 Jan 2020 10:17:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=R5asjnM09eV6gmtT5J+HYzmb5e6pRkftWHYdoABqCzs=; b=Krv7aPfXLG1NTgLTYKmVJhOySg5bev+YbsjPnd0o/RnCDjVt2rw9s3ZAlSL9uimy2z upUF6Wvob2DlMc3h2NrCFyOgSrBTlnFsk7ewYGcMRNB7wlehhFbdLdK+3/ffikUD08Ut HEP51VYRTx2tFSve2jMEIVeX5L8ooQ5b0s3a6NcmoVIULW5UCaiSqHeAY4DBmUcWXLsR 7XCaFc6/O+Hs2V5nL7RHmBgBL5Y1ZUrKmrlRq/kMFZX0N+rE6I3UaaKKURkJpndtOQcn SXnGb4DBZVuKyCaYZbuPDODmUzFPBBvq5J80f+ZJwVoDis2cV9LExglerSnN89ZxS58x S0GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=R5asjnM09eV6gmtT5J+HYzmb5e6pRkftWHYdoABqCzs=; b=HHvvzAFXnE06f3cBZDmsxTfBAGyaX0/PQ0TMYYx0MSRzsCg8ArFCEFX/18Wxsiz2AL F62deLzEKsQUedvXTNDytiFCRlh507my1gaEZYQ9ddk74k23nBPI2uZEfm70TAVBBtSR FhuYsn6nMDDED7hCT3J5Pme7YvraZ6T9aCioT+wmNb8Io8dop9BEZUzj9sr6pNMgZrQB CI3g3g9EYomjhuMQUnDyG5DuF6nEBh1VdHMWPcIEtnZ9AA+459K1vZgELq1rsattlUGW jeWXRAD63BuMUyxs0rup6ZATRVe9Qlb9/G7BktSmeES9Jwob8bHRlp95ZMhoK/abXTQd Nr7g== X-Gm-Message-State: APjAAAUnShuhK6b4ZIdEsfakijZW+Oj+JXHOhrKA33gmAcJpapp4R05V pEkx4d4y34pQfwKc3mDc7LLK1niQcbhNRAQiHBcpCA== X-Google-Smtp-Source: APXvYqyZe6UX4PnyYQFgeFdC+lFAaMsVtQcx4eHDsOkQgVTuOMjLWUlHJlhVvdNewojPpy4WGslNE5+/tDmwSrou8LU= X-Received: by 2002:a37:a80a:: with SMTP id r10mr74179261qke.240.1578248253386; Sun, 05 Jan 2020 10:17:33 -0800 (PST) MIME-Version: 1.0 References: <202001051659.005GxOOa013759@repo.freebsd.org> <20200106.025257.202876441661893679.yasu@utahime.org> In-Reply-To: <20200106.025257.202876441661893679.yasu@utahime.org> From: Warner Losh Date: Sun, 5 Jan 2020 12:17:21 -0600 Message-ID: Subject: Re: svn commit: r356379 - head/share/mk To: Yasuhiro KIMURA Cc: Ed Maste , svn-src-head , svn-src-all@freebsd.org, src-committers@freebsd.org X-Rspamd-Queue-Id: 47rRgy37N0z4Zbr X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Krv7aPfX; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::734) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.66 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[5]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[4.3.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.66)[ip: (-9.25), ipnet: 2607:f8b0::/32(-2.13), asn: 15169(-1.86), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:17:35 -0000 On Sun, Jan 5, 2020, 10:53 AM Yasuhiro KIMURA wrote: > From: Warner Losh > Subject: Re: svn commit: r356379 - head/share/mk > Date: Sun, 5 Jan 2020 11:26:07 -0600 > > >> > Author: emaste > >> > Date: Sun Jan 5 16:59:24 2020 > >> > New Revision: 356379 > >> > URL: https://svnweb.freebsd.org/changeset/base/356379 > >> > > >> > Log: > >> > src.opts.mk: disable BINUTILS_BOOTSTRAP on mips64* > >> > >> I should probably make this the case for all of mips* and sparc64. > >> Using a decade-old binutils with a contemporary compiler (either Clang > >> or GCC) isn't likely to be a combination used by anyone else and it's > >> not going to be a good use of our time investigating and addressing > >> any issues that arise. > >> > > I'd agree. There are lots of bugs or missing features in our binutils > that > > will bite people... > > Just out of curiosity, is there any retirement plan for binutils in > base system at the moment? > There are no firm plans at the moment. However, it looks like it's not used except for powerpc. I'd expect that once the issues there are resolved with clang, or that platform migrates to an external toolchain, binutils in base's days will be numbered since it is GPL and the project has a long term goal of being GPL free where possible. Warner --- > Yasuhiro KIMURA > From owner-svn-src-all@freebsd.org Sun Jan 5 18:17:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E01B81E183D; Sun, 5 Jan 2020 18:17:46 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRh95TXYz4Zjv; Sun, 5 Jan 2020 18:17:45 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f178.google.com with SMTP id v15so40896146iln.0; Sun, 05 Jan 2020 10:17:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=x6/NQXW69sVzc1CKyh7h2R1noD+jHj8Cs3w9babuRvo=; b=sJlxzBZw/QRhURkgx5W7UOwmoMWQtfMGmHkiIL7OZefyjjEXhwHSBHHbssAPAuVJ22 EAkIWMms/huGKHnPtfmc+wOQLeGY/VIQPhw2yWQAcRMax3fToeZ73wnK27qO3Y8EA4bT /dydbr8P3ezqcqI2LmOqDURCsc//DcdGwAWt93DlkSOL2wX5nor7IVnCsR/CiBvFKV9l aMMtflnmmHunY/Cf5A1CAIKLvgOg99w5jB3ssO/52CGSxn/PPg84RqZXgKaRBqwGOKUu jxVIeBjPT7uWot61HGv3V+6YFfpq08MmNF+cuuIyUpw3mCgiHHfmD65owmORbcRrfJoO UZMw== X-Gm-Message-State: APjAAAXVO36aCrN+IyuDRpQ+GC7h5DtFfO7jCrkvJjcHtNudyawG7EdP uD2IKwwI57h8covIZ+MGh7ckrAbcfkvibdENpZxIrw== X-Google-Smtp-Source: APXvYqw7MXDlmwLgn9OrHGPIPoAwywQyBun5JYaTybvp/drTGQSWAIDJeYtHPvGZCV9P8qGoObGy99a1M+c/s7IgNAw= X-Received: by 2002:a92:5c52:: with SMTP id q79mr69471028ilb.11.1578248264812; Sun, 05 Jan 2020 10:17:44 -0800 (PST) MIME-Version: 1.0 References: <202001051659.005GxOOa013759@repo.freebsd.org> <20200106.025257.202876441661893679.yasu@utahime.org> In-Reply-To: <20200106.025257.202876441661893679.yasu@utahime.org> From: Ed Maste Date: Sun, 5 Jan 2020 13:17:32 -0500 Message-ID: Subject: Re: svn commit: r356379 - head/share/mk To: Yasuhiro KIMURA Cc: Warner Losh , svn-src-head , svn-src-all , src-committers Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47rRh95TXYz4Zjv X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.178 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-4.32 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[178.166.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.32)[ip: (-6.59), ipnet: 209.85.128.0/17(-3.10), asn: 15169(-1.86), country: US(-0.05)]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:17:46 -0000 On Sun, 5 Jan 2020 at 12:53, Yasuhiro KIMURA wrote: > > Just out of curiosity, is there any retirement plan for binutils in > base system at the moment? There's no specific plan, but it is an ongoing goal. Only three binutils tools are used (for bootstrapping and in the installed system): as, ld, and objdump. BINUTILS_BOOTSTRAP is enabled on x86, 32-bit arm, and powerpc. At least both x86 archs still use GNU as for a few files; there's work in progress to migrate to Clang's IAS for all assembly files. I am not sure if bootstrap as actually gets used on arm or powerpc. objdump is also built, but not used on any arch. ld is built on powerpc and still being used there; it's not built on x86 or 32-bit arm. Making further progress depends on lld maturing (for powerpc) and addressing the assembler issue. There's no commitment to removing binutils for 13.0 but there is a reasonable probability we'll be able to do so. From owner-svn-src-all@freebsd.org Sun Jan 5 18:21:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 488911E1B97; Sun, 5 Jan 2020 18:21:27 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRmQ69ylz4b5v; Sun, 5 Jan 2020 18:21:26 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f169.google.com with SMTP id v15so40900591iln.0; Sun, 05 Jan 2020 10:21:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0qjeOqPSUW8e3Y8r1gLpDeccEOdECDn1uyqdM/5a/Do=; b=XwtGaBWUYwc3P5SQs10eCbWpL1L2+veo9Vbv91kCPT1OY7wc3lxSVVmgVxmvKSR/UL I6Onbw5jknRssuDNE5rjn/vnYhsvmCxz8GyiZSf31kmwPvKSBjDME7UbdSMVE4n7cL6Y lmxXxAIFt6hs8sJ9UGAvC+axeqVHY/1GEg3VWxhxF+JfOAFI/hmVkiHi1Y0C1tj1WVMZ fcnKeS7ThNQGnLZvlTIuITWTDavhjIa8nTAvSuu2DzqBQOrZaX/AMeYUiSFMYdu3pJ8Q 8KXi0LJWpsvOqnLsvgEXKvifOBQcFUVe57SeaEnt9aEiarfEDOPfkefrCVuP7UvgcfoZ g+Gg== X-Gm-Message-State: APjAAAWdYiARukeBLd+262xaoDbo1mOjLLP7dfovdQ9qDPN8wyP3MmzE gkFHFMz89JcMLkawJJwoKlWXITqQEmbhOTi3TjkmSA== X-Google-Smtp-Source: APXvYqwwNPZWbiq3LWTBugmiEGSG6K9nv1Y4a1yc1X3lSM03UXZKN7dQrv/B1a99AlJqVA5QGf49ckuT1JKVfOGowpA= X-Received: by 2002:a92:4448:: with SMTP id a8mr84856960ilm.256.1578248485167; Sun, 05 Jan 2020 10:21:25 -0800 (PST) MIME-Version: 1.0 References: <202001050247.0052lu11098031@repo.freebsd.org> <0b3ae104-ea62-1aa8-c926-c6021565a050@FreeBSD.org> In-Reply-To: <0b3ae104-ea62-1aa8-c926-c6021565a050@FreeBSD.org> From: Ed Maste Date: Sun, 5 Jan 2020 13:21:12 -0500 Message-ID: Subject: Re: svn commit: r356367 - in head: . share/mk To: Pedro Giffuni Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47rRmQ69ylz4b5v X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:21:27 -0000 On Sun, 5 Jan 2020 at 13:16, Pedro Giffuni wrote: > > It's really nice how the compiler warning trend went down. > > On FreeBSD-head-mips-build* it went from 7691 warnings to 473 + 83. Thanks for mentioning that. Continuing to support ancient GCC is a drag on everyone using a contemporary compiler for development (in-tree or external toolchain) and thus I stuck with Warner's original timeline even though there are a few warts to resolve on some archs still. From owner-svn-src-all@freebsd.org Sun Jan 5 18:45:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C110F1E22B7; Sun, 5 Jan 2020 18:45:35 +0000 (UTC) (envelope-from yasu@utahime.org) Received: from gate.utahime.jp (gate.utahime.jp [183.180.29.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47rSJG6TWVz4c0y; Sun, 5 Jan 2020 18:45:34 +0000 (UTC) (envelope-from yasu@utahime.org) Received: from eastasia.home.utahime.org (eastasia.home.utahime.org [192.168.174.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by gate.utahime.jp (Postfix) with ESMTPS id 85F38488E7; Mon, 6 Jan 2020 03:45:31 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=utahime.org; s=maybe2019112701; t=1578249931; bh=zJpzndhXvRbrh1RzC6X5k4JbyVUneaJlJ8s+rWUtAWU=; h=Date:To:Cc:Subject:From:In-Reply-To:References; b=qtZ/p3I4OmwVGfTOuLxyM3PqlLUeFzEHrocDcwxT5ZMsavpoIebXQ7ySAfvvakb5B HquWLQwkScrgmo/jkh8ESHOh2sU6F5vx/xkb/OVu48EcbI4lWhH4Rjq1RNoFvpJnSw BykEiZj6GJkBjR33yihZAqWnipvpIY8hdPdTPOlws2AdTQDz/JqUf2ifSuWGQivGOd YyGXrsZYq/OrCQ8M9XkVnvAlIgqxywxbS6bfCVo5Nm4dPQDJlsFXamF1NtIIEVs8IX V5fce2WwO7iyPsXJkeLkR9ONRiIwtT9DVulSR9Nel/GyrmHoyd+3AA+YkcnVWU8/1Q MwvVeFRfm+Qmg== Received: from localhost (rolling.home.utahime.org [192.168.174.11]) (using TLSv1.3 with cipher TLS_CHACHA20_POLY1305_SHA256 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by eastasia.home.utahime.org (Postfix) with ESMTPSA id 47F6A5EFA9; Mon, 6 Jan 2020 03:45:29 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.1 at eastasia.home.utahime.org Date: Mon, 06 Jan 2020 03:44:59 +0900 (JST) Message-Id: <20200106.034459.54741258810442187.yasu@utahime.org> To: imp@bsdimp.com Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, emaste@freebsd.org Subject: Re: svn commit: r356379 - head/share/mk From: Yasuhiro KIMURA In-Reply-To: References: <20200106.025257.202876441661893679.yasu@utahime.org> X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47rSJG6TWVz4c0y X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=utahime.org header.s=maybe2019112701 header.b=qtZ/p3I4; dmarc=none; spf=pass (mx1.freebsd.org: domain of yasu@utahime.org designates 183.180.29.210 as permitted sender) smtp.mailfrom=yasu@utahime.org X-Spamd-Result: default: False [0.80 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[utahime.org:s=maybe2019112701]; NEURAL_HAM_MEDIUM(-0.55)[-0.546,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+a:spf-authorized.utahime.org:c]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; TO_DN_NONE(0.00)[]; DMARC_NA(0.00)[utahime.org]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[utahime.org:+]; NEURAL_SPAM_LONG(0.00)[0.002,0]; MID_CONTAINS_FROM(1.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; IP_SCORE(0.34)[ip: (0.23), ipnet: 183.180.0.0/16(0.12), asn: 2519(1.33), country: JP(0.03)]; ASN(0.00)[asn:2519, ipnet:183.180.0.0/16, country:JP]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:45:35 -0000 From: Warner Losh Subject: Re: svn commit: r356379 - head/share/mk Date: Sun, 5 Jan 2020 12:17:21 -0600 > There are no firm plans at the moment. However, it looks like it's not used > except for powerpc. I'd expect that once the issues there are resolved with > clang, or that platform migrates to an external toolchain, binutils in > base's days will be numbered since it is GPL and the project has a long > term goal of being GPL free where possible. From: Ed Maste Subject: Re: svn commit: r356379 - head/share/mk Date: Sun, 5 Jan 2020 13:17:32 -0500 > There's no specific plan, but it is an ongoing goal. Only three > binutils tools are used (for bootstrapping and in the installed > system): as, ld, and objdump. > > BINUTILS_BOOTSTRAP is enabled on x86, 32-bit arm, and powerpc. At > least both x86 archs still use GNU as for a few files; there's work in > progress to migrate to Clang's IAS for all assembly files. I am not > sure if bootstrap as actually gets used on arm or powerpc. objdump is > also built, but not used on any arch. ld is built on powerpc and still > being used there; it's not built on x86 or 32-bit arm. > > Making further progress depends on lld maturing (for powerpc) and > addressing the assembler issue. There's no commitment to removing > binutils for 13.0 but there is a reasonable probability we'll be able > to do so. Thank you for reply. I understand current status and hope binutils is successfully removed from base system before the release of 13.0. --- Yasuhiro KIMURA From owner-svn-src-all@freebsd.org Sun Jan 5 19:11:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BCACD1E2EE7 for ; Sun, 5 Jan 2020 19:11:45 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rStS2N9Kz4dFw for ; Sun, 5 Jan 2020 19:11:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x842.google.com with SMTP id g1so543548qtr.13 for ; Sun, 05 Jan 2020 11:11:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=mivEVkhTAg+DlOncDkurfv1jdKKa6o3le6ojI8nvUu0=; b=YwDj/6VNKMM2Brgmfn6sOQtLBSPs/NVoL6oWq5U3BuaFJUOFFE6xIGonHJzO8wpfUw LyGvDYAOnCVyHdslB1T7hes9qBg+qpdbaTEQN4+h4lSXmFfHrrS2lcUKJy95AWnCcMCu uFrNxWfVITyjKtRvl4HRSUZGRGp8IR478pOur0zaxNqNOkpig3Zdn2bVOTpcoglcBOAX c17Qe0kEtxk4Plezg+Is+VJHV0J+q+HPG6hEPbHevwJAOvqHGeeLHCJVEiZKb1HGm2fW eLeAHjYpNRd6yuaBGbS8vAr1AkLO8m6znH4wtqXapg7YMdrdBxwGbf5/47K79yZvTpc7 KFIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=mivEVkhTAg+DlOncDkurfv1jdKKa6o3le6ojI8nvUu0=; b=L69os/ADnk8deZEykmnzSrOAQAGmgQPnLDKVsBOehJZg6WuaVkQE42OJqFhB340pLi HBxz/pa11qTvFvTTA6UsPpXS6i/CFJjKHm5o7VqX7hwmBlyblpNJd/WEiEQkyECTPaaC k1uHH9Y9CinTAOd7oxxCQYRa+R9OBXjKJ3VuTHGbSe4kE1YQPqgQg8vPRAhIhMn5SddI mAMkfiEiegMDzcV/QNYkdJ6wn3AYNc/jw1F8KjyAKNj9ABnlbPgu9dRKaXuZ0WJ0au27 /uwuShkyThJRlYEa6gmrjAI+I1Vq6sLS2WKedP5mVJo1ChokJ1Mr4c4jQfBwjSPcMcA2 5f4Q== X-Gm-Message-State: APjAAAXKZ/JxFqQJgYAG9wpi2eFYi33t++UdbpGqQP+LEbE6lJ/2P+OW G0jzq/J5c4D7YO8GqmIjQ+bSXjs5d7dST4p7rEXSVA== X-Google-Smtp-Source: APXvYqylslzlBYdkn+cpqqPbWch5U2i9iCKaj6ZYsP+J8j8fK7TRMkhM3HEK/sx+Ydz4LzYDc8Ka4VcRyIh1ooSgBeY= X-Received: by 2002:ac8:21ec:: with SMTP id 41mr73266692qtz.242.1578251503196; Sun, 05 Jan 2020 11:11:43 -0800 (PST) MIME-Version: 1.0 References: <202001050247.0052lu11098031@repo.freebsd.org> <0b3ae104-ea62-1aa8-c926-c6021565a050@FreeBSD.org> In-Reply-To: From: Warner Losh Date: Sun, 5 Jan 2020 13:11:30 -0600 Message-ID: Subject: Re: svn commit: r356367 - in head: . share/mk To: Ed Maste Cc: Pedro Giffuni , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 47rStS2N9Kz4dFw X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=YwDj/6VN; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::842) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-2.38 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[2.4.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-0.38)[ip: (2.12), ipnet: 2607:f8b0::/32(-2.13), asn: 15169(-1.86), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 19:11:45 -0000 On Sun, Jan 5, 2020, 11:21 AM Ed Maste wrote: > On Sun, 5 Jan 2020 at 13:16, Pedro Giffuni wrote: > > > > It's really nice how the compiler warning trend went down. > > > > On FreeBSD-head-mips-build* it went from 7691 warnings to 473 + 83. > > Thanks for mentioning that. Continuing to support ancient GCC is a > drag on everyone using a contemporary compiler for development > (in-tree or external toolchain) and thus I stuck with Warner's > original timeline even though there are a few warts to resolve on some > archs still. > And the warts are generally adequately resolved by external toolchain. Except for sparc64, for which nobody has done any nontrivial work on for this transition. All the other architects have had most of this issues identified with process resolved, or well on the way to resolution. This total lack of work on sparc64 may result in an accelerated timeline for its removal. Warner > From owner-svn-src-all@freebsd.org Sun Jan 5 19:14:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3C5BD1E323B; Sun, 5 Jan 2020 19:14:17 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rSxP0v7Rz4dqj; Sun, 5 Jan 2020 19:14:17 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 18C5322A0; Sun, 5 Jan 2020 19:14:17 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005JEGm1096462; Sun, 5 Jan 2020 19:14:16 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005JEGl8096460; Sun, 5 Jan 2020 19:14:16 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001051914.005JEGl8096460@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sun, 5 Jan 2020 19:14:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356386 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 356386 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 19:14:17 -0000 Author: bz Date: Sun Jan 5 19:14:16 2020 New Revision: 356386 URL: https://svnweb.freebsd.org/changeset/base/356386 Log: netgraph/ng_bridge: Reestablish old ABI In order to be able to merge r353026 bring back support for the old cookie API for a transition period in 12.x releases (and possibly 13) before the old API can be removed again entirely. Suggested by: julian Submitted by: Lutz Donnerhacke (lutz donnerhacke.de) PR: 240787 Reviewed by: julian MFC after: 2 weeks X-MFC with: r353026 Differential Revision: https://reviews.freebsd.org/D21961 Modified: head/sys/netgraph/ng_bridge.c head/sys/netgraph/ng_bridge.h Modified: head/sys/netgraph/ng_bridge.c ============================================================================== --- head/sys/netgraph/ng_bridge.c Sun Jan 5 18:15:41 2020 (r356385) +++ head/sys/netgraph/ng_bridge.c Sun Jan 5 19:14:16 2020 (r356386) @@ -393,6 +393,72 @@ ng_bridge_rcvmsg(node_p node, item_p item, hook_p last NGI_GET_MSG(item, msg); switch (msg->header.typecookie) { +#ifdef NGM_BRIDGE_TABLE_ABI + case NGM_BRIDGE_COOKIE_TBL: + switch (msg->header.cmd) { + case NGM_BRIDGE_GET_CONFIG: + { + struct ng_bridge_config_tbl *conf; + + NG_MKRESPONSE(resp, msg, sizeof(*conf), + M_NOWAIT|M_ZERO); + if (resp == NULL) { + error = ENOMEM; + break; + } + conf = (struct ng_bridge_config_tbl *)resp->data; + conf->cfg = priv->conf; + break; + } + case NGM_BRIDGE_SET_CONFIG: + { + struct ng_bridge_config_tbl *conf; + + if (msg->header.arglen != sizeof(*conf)) { + error = EINVAL; + break; + } + conf = (struct ng_bridge_config_tbl *)msg->data; + priv->conf = conf->cfg; + break; + } + case NGM_BRIDGE_GET_TABLE: + { + struct ng_bridge_host_tbl_ary *ary; + struct ng_bridge_hent *hent; + int i, bucket; + + NG_MKRESPONSE(resp, msg, sizeof(*ary) + + (priv->numHosts * sizeof(*ary->hosts)), M_NOWAIT); + if (resp == NULL) { + error = ENOMEM; + break; + } + ary = (struct ng_bridge_host_tbl_ary *)resp->data; + ary->numHosts = priv->numHosts; + i = 0; + for (bucket = 0; bucket < priv->numBuckets; bucket++) { + SLIST_FOREACH(hent, &priv->tab[bucket], next) { + memcpy(ary->hosts[i].addr, + hent->host.addr, + sizeof(ary->hosts[i].addr)); + ary->hosts[i].age = hent->host.age; + ary->hosts[i].staleness = + hent->host.staleness; + ary->hosts[i].linkNum = strtol( + NG_HOOK_NAME(hent->host.link->hook) + + strlen(NG_BRIDGE_HOOK_LINK_PREFIX), + NULL, 10); + i++; + } + } + break; + } + } + /* If already handled break, otherwise use new ABI. */ + if (resp != NULL || error != 0) + break; +#endif /* NGM_BRIDGE_TABLE_ABI */ case NGM_BRIDGE_COOKIE: switch (msg->header.cmd) { case NGM_BRIDGE_GET_CONFIG: Modified: head/sys/netgraph/ng_bridge.h ============================================================================== --- head/sys/netgraph/ng_bridge.h Sun Jan 5 18:15:41 2020 (r356385) +++ head/sys/netgraph/ng_bridge.h Sun Jan 5 19:14:16 2020 (r356386) @@ -43,10 +43,24 @@ #ifndef _NETGRAPH_NG_BRIDGE_H_ #define _NETGRAPH_NG_BRIDGE_H_ +/* + * Support the older ABI based on fixed size tables. + * ABI is deprecated, to be removed in releases > 12 + * Please note: There is no API support! + * You canno create new messages using the old API but messages conforming the + * old ABI are understood. + */ +#define NGM_BRIDGE_TABLE_ABI + /* Node type name and magic cookie */ #define NG_BRIDGE_NODE_TYPE "bridge" #define NGM_BRIDGE_COOKIE 1569321993 +#ifdef NGM_BRIDGE_TABLE_ABI +#define NGM_BRIDGE_COOKIE_TBL 967239368 +#define NG_BRIDGE_MAX_LINKS 32 +#endif /* NGM_BRIDGE_TABLE_ABI */ + /* Hook names */ #define NG_BRIDGE_HOOK_LINK_PREFIX "link" /* append decimal integer */ #define NG_BRIDGE_HOOK_LINK_FMT "link%d" /* for use with printf(3) */ @@ -59,6 +73,13 @@ struct ng_bridge_config { u_int32_t minStableAge; /* min time for a stable host */ }; +#ifdef NGM_BRIDGE_TABLE_ABI +struct ng_bridge_config_tbl { + u_char ipfw[NG_BRIDGE_MAX_LINKS]; + struct ng_bridge_config cfg; +}; +#endif /* NGM_BRIDGE_TABLE_ABI */ + /* Keep this in sync with the above structure definition */ #define NG_BRIDGE_CONFIG_TYPE_INFO { \ { "debugLevel", &ng_parse_uint8_type }, \ @@ -115,6 +136,15 @@ struct ng_bridge_host { u_int16_t staleness; /* seconds ago host last heard from */ }; +#ifdef NGM_BRIDGE_TABLE_ABI +struct ng_bridge_host_tbl { + u_char addr[6]; /* ethernet address */ + u_int16_t linkNum; /* link where addr can be found */ + u_int16_t age; /* seconds ago entry was created */ + u_int16_t staleness; /* seconds ago host last heard from */ +}; +#endif /* NGM_BRIDGE_TABLE_ABI */ + /* external representation of the host */ struct ng_bridge_hostent { u_char addr[6]; /* ethernet address */ @@ -144,6 +174,19 @@ struct ng_bridge_host_ary { { "hosts", (harytype) }, \ { NULL } \ } + +#ifdef NGM_BRIDGE_TABLE_ABI +struct ng_bridge_hostent_tbl { + u_char addr[6]; /* ethernet address */ + u_int16_t linkNum; /* link where addr can be found */ + u_int16_t age; /* seconds ago entry was created */ + u_int16_t staleness; /* seconds ago host last heard from */ +}; +struct ng_bridge_host_tbl_ary { + u_int32_t numHosts; + struct ng_bridge_hostent_tbl hosts[]; +}; +#endif /* NGM_BRIDGE_TABLE_ABI */ /* Netgraph control messages */ enum { From owner-svn-src-all@freebsd.org Sun Jan 5 21:07:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4F8BB1E6C86; Sun, 5 Jan 2020 21:07:20 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [18.222.6.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rWRq5kBTz3HMW; Sun, 5 Jan 2020 21:07:19 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (unknown [18.188.142.31]) by mail.soaustin.net (Postfix) with ESMTPSA id 79520170E3; Sun, 5 Jan 2020 21:07:18 +0000 (UTC) Date: Sun, 5 Jan 2020 21:07:17 +0000 From: Mark Linimon To: Warner Losh Cc: Ed Maste , svn-src-head , svn-src-all , Pedro Giffuni , src-committers Subject: Re: svn commit: r356367 - in head: . share/mk Message-ID: <20200105210716.GA25654@lonesome.com> References: <202001050247.0052lu11098031@repo.freebsd.org> <0b3ae104-ea62-1aa8-c926-c6021565a050@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Rspamd-Queue-Id: 47rWRq5kBTz3HMW X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of linimon@lonesome.com has no SPF policy when checking 18.222.6.11) smtp.mailfrom=linimon@lonesome.com X-Spamd-Result: default: False [-1.09 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-0.92)[-0.922,0]; FROM_HAS_DN(0.00)[]; IP_SCORE(-0.21)[ip: (0.02), ipnet: 18.220.0.0/14(0.19), asn: 16509(-1.21), country: US(-0.05)]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[lonesome.com]; AUTH_NA(1.00)[]; RCPT_COUNT_FIVE(0.00)[6]; NEURAL_HAM_LONG(-0.66)[-0.662,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_MED(-0.20)[11.6.222.18.list.dnswl.org : 127.0.5.2]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:16509, ipnet:18.220.0.0/14, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:07:20 -0000 On Sun, Jan 05, 2020 at 01:11:30PM -0600, Warner Losh wrote: > This total lack of work on sparc64 may result in an accelerated > timeline for its removal. IMHO it's time to just let it go. mcl From owner-svn-src-all@freebsd.org Sun Jan 5 21:23:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6AB511E75A1; Sun, 5 Jan 2020 21:23:14 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [18.222.6.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rWpB0MGFz3JNg; Sun, 5 Jan 2020 21:23:13 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (unknown [18.188.142.31]) by mail.soaustin.net (Postfix) with ESMTPSA id 14630170E3; Sun, 5 Jan 2020 21:23:13 +0000 (UTC) Date: Sun, 5 Jan 2020 21:23:11 +0000 From: Mark Linimon To: Warner Losh Cc: Yasuhiro KIMURA , svn-src-head , svn-src-all@freebsd.org, src-committers@freebsd.org, Ed Maste Subject: Re: svn commit: r356379 - head/share/mk Message-ID: <20200105212311.GB25654@lonesome.com> References: <202001051659.005GxOOa013759@repo.freebsd.org> <20200106.025257.202876441661893679.yasu@utahime.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Rspamd-Queue-Id: 47rWpB0MGFz3JNg X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of linimon@lonesome.com has no SPF policy when checking 18.222.6.11) smtp.mailfrom=linimon@lonesome.com X-Spamd-Result: default: False [-1.09 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-0.92)[-0.919,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; IP_SCORE(-0.21)[ip: (0.02), ipnet: 18.220.0.0/14(0.19), asn: 16509(-1.21), country: US(-0.05)]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[lonesome.com]; AUTH_NA(1.00)[]; RCPT_COUNT_FIVE(0.00)[6]; NEURAL_HAM_LONG(-0.66)[-0.664,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_MED(-0.20)[11.6.222.18.list.dnswl.org : 127.0.5.2]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:16509, ipnet:18.220.0.0/14, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:23:14 -0000 On Sun, Jan 05, 2020 at 12:17:21PM -0600, Warner Losh wrote: > I'd expect that once the issues [on powerpc] are resolved with clang, > or that platform migrates to an external toolchain AFAIK there never was a fallback plan to migrate powerpc to an external toolchain; powerpc64-head (at least) has already been switched to clang. You'll have to ask jhibbits about 32-bit. mcl From owner-svn-src-all@freebsd.org Sun Jan 5 21:32:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6E38B1E78A4; Sun, 5 Jan 2020 21:32:42 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rX1632Dfz3JpT; Sun, 5 Jan 2020 21:32:42 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 631233FF8; Sun, 5 Jan 2020 21:32:42 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005LWgOU079961; Sun, 5 Jan 2020 21:32:42 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005LWfCW079957; Sun, 5 Jan 2020 21:32:41 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001052132.005LWfCW079957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 21:32:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356387 - stable/11/usr.sbin/inetd X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/11/usr.sbin/inetd X-SVN-Commit-Revision: 356387 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:32:42 -0000 Author: kevans Date: Sun Jan 5 21:32:41 2020 New Revision: 356387 URL: https://svnweb.freebsd.org/changeset/base/356387 Log: MFC r310921, r311354, r315644: Light inetd(8) cleanup r310921: - Add static for symbols which need not to be exported. - Clean up warnings to the WARNS=6 level. r311354: Fix build when WITHOUT_INET6 is defined. r315644: Simplify a pipe for signal handling. Modified: stable/11/usr.sbin/inetd/builtins.c stable/11/usr.sbin/inetd/inetd.c stable/11/usr.sbin/inetd/inetd.h Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/inetd/builtins.c ============================================================================== --- stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 19:14:16 2020 (r356386) +++ stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 21:32:41 2020 (r356387) @@ -54,26 +54,25 @@ __FBSDID("$FreeBSD$"); #include "inetd.h" -void chargen_dg(int, struct servtab *); -void chargen_stream(int, struct servtab *); -void daytime_dg(int, struct servtab *); -void daytime_stream(int, struct servtab *); -void discard_dg(int, struct servtab *); -void discard_stream(int, struct servtab *); -void echo_dg(int, struct servtab *); -void echo_stream(int, struct servtab *); +static void chargen_dg(int, struct servtab *); +static void chargen_stream(int, struct servtab *); +static void daytime_dg(int, struct servtab *); +static void daytime_stream(int, struct servtab *); +static void discard_dg(int, struct servtab *); +static void discard_stream(int, struct servtab *); +static void echo_dg(int, struct servtab *); +static void echo_stream(int, struct servtab *); static int get_line(int, char *, int); -void iderror(int, int, int, const char *); -void ident_stream(int, struct servtab *); -void initring(void); -uint32_t machtime(void); -void machtime_dg(int, struct servtab *); -void machtime_stream(int, struct servtab *); +static void iderror(int, int, int, const char *); +static void ident_stream(int, struct servtab *); +static void initring(void); +static uint32_t machtime(void); +static void machtime_dg(int, struct servtab *); +static void machtime_stream(int, struct servtab *); -char ring[128]; -char *endring; +static char ring[128]; +static char *endring; - struct biltin biltins[] = { /* Echo received data */ { "echo", SOCK_STREAM, 1, -1, echo_stream }, @@ -107,7 +106,7 @@ struct biltin biltins[] = { * any regard for input. */ -void +static void initring(void) { int i; @@ -124,7 +123,7 @@ initring(void) * characters chosen from the range 0 to 512. We send LINESIZ+2. */ /* ARGSUSED */ -void +static void chargen_dg(int s, struct servtab *sep) { struct sockaddr_storage ss; @@ -161,7 +160,7 @@ chargen_dg(int s, struct servtab *sep) /* Character generator */ /* ARGSUSED */ -void +static void chargen_stream(int s, struct servtab *sep) { int len; @@ -196,7 +195,7 @@ chargen_stream(int s, struct servtab *sep) /* Return human-readable time of day */ /* ARGSUSED */ -void +static void daytime_dg(int s, struct servtab *sep) { char buffer[256]; @@ -221,7 +220,7 @@ daytime_dg(int s, struct servtab *sep) /* Return human-readable time of day */ /* ARGSUSED */ -void +static void daytime_stream(int s, struct servtab *sep __unused) { char buffer[256]; @@ -240,7 +239,7 @@ daytime_stream(int s, struct servtab *sep __unused) /* Discard service -- ignore data */ /* ARGSUSED */ -void +static void discard_dg(int s, struct servtab *sep __unused) { char buffer[BUFSIZE]; @@ -250,7 +249,7 @@ discard_dg(int s, struct servtab *sep __unused) /* Discard service -- ignore data */ /* ARGSUSED */ -void +static void discard_stream(int s, struct servtab *sep) { int ret; @@ -273,7 +272,7 @@ discard_stream(int s, struct servtab *sep) /* Echo service -- echo data back */ /* ARGSUSED */ -void +static void echo_dg(int s, struct servtab *sep) { char buffer[65536]; /* Should be sizeof(max datagram). */ @@ -294,7 +293,7 @@ echo_dg(int s, struct servtab *sep) /* Echo service -- echo data back */ /* ARGSUSED */ -void +static void echo_stream(int s, struct servtab *sep) { char buffer[BUFSIZE]; @@ -322,7 +321,7 @@ echo_stream(int s, struct servtab *sep) /* Generic ident_stream error-sending func */ /* ARGSUSED */ -void +static void iderror(int lport, int fport, int s, const char *er) { char *p; @@ -340,7 +339,7 @@ iderror(int lport, int fport, int s, const char *er) /* Ident service (AKA "auth") */ /* ARGSUSED */ -void +static void ident_stream(int s, struct servtab *sep) { struct utsname un; @@ -688,7 +687,7 @@ printit: * some seventy years Bell Labs was asleep. */ -uint32_t +static uint32_t machtime(void) { @@ -698,7 +697,7 @@ machtime(void) } /* ARGSUSED */ -void +static void machtime_dg(int s, struct servtab *sep) { uint32_t result; @@ -719,7 +718,7 @@ machtime_dg(int s, struct servtab *sep) } /* ARGSUSED */ -void +static void machtime_stream(int s, struct servtab *sep __unused) { uint32_t result; Modified: stable/11/usr.sbin/inetd/inetd.c ============================================================================== --- stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 19:14:16 2020 (r356386) +++ stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 21:32:41 2020 (r356387) @@ -206,30 +206,33 @@ __FBSDID("$FreeBSD$"); #define SIGBLOCK (sigmask(SIGCHLD)|sigmask(SIGHUP)|sigmask(SIGALRM)) -void close_sep(struct servtab *); -void flag_signal(int); -void flag_config(int); -void config(void); -int cpmip(const struct servtab *, int); -void endconfig(void); -struct servtab *enter(struct servtab *); -void freeconfig(struct servtab *); -struct servtab *getconfigent(void); -int matchservent(const char *, const char *, const char *); -char *nextline(FILE *); -void addchild(struct servtab *, int); -void flag_reapchild(int); -void reapchild(void); -void enable(struct servtab *); -void disable(struct servtab *); -void flag_retry(int); -void retry(void); -int setconfig(void); -void setup(struct servtab *); +#define satosin(sa) ((struct sockaddr_in *)(void *)sa) +#define csatosin(sa) ((const struct sockaddr_in *)(const void *)sa) +#ifdef INET6 +#define satosin6(sa) ((struct sockaddr_in6 *)(void *)sa) +#define csatosin6(sa) ((const struct sockaddr_in6 *)(const void *)sa) +#endif +static void close_sep(struct servtab *); +static void flag_signal(int); +static void config(void); +static int cpmip(const struct servtab *, int); +static void endconfig(void); +static struct servtab *enter(struct servtab *); +static void freeconfig(struct servtab *); +static struct servtab *getconfigent(void); +static int matchservent(const char *, const char *, const char *); +static char *nextline(FILE *); +static void addchild(struct servtab *, int); +static void reapchild(void); +static void enable(struct servtab *); +static void disable(struct servtab *); +static void retry(void); +static int setconfig(void); +static void setup(struct servtab *); #ifdef IPSEC -void ipsecsetup(struct servtab *); +static void ipsecsetup(struct servtab *); #endif -void unregisterrpc(register struct servtab *sep); +static void unregisterrpc(register struct servtab *sep); static struct conninfo *search_conn(struct servtab *sep, int ctrl); static int room_conn(struct servtab *sep, struct conninfo *conn); static void addchild_conn(struct conninfo *conn, pid_t pid); @@ -240,51 +243,55 @@ static void free_connlist(struct servtab *sep); static void free_proc(struct procinfo *); static struct procinfo *search_proc(pid_t pid, int add); static int hashval(char *p, int len); +static char *skip(char **); +static char *sskip(char **); +static char *newstr(const char *); +static void print_service(const char *, const struct servtab *); +/* tcpd.h */ int allow_severity; int deny_severity; -int wrap_ex = 0; -int wrap_bi = 0; + +static int wrap_ex = 0; +static int wrap_bi = 0; int debug = 0; -int dolog = 0; -int maxsock; /* highest-numbered descriptor */ -fd_set allsock; -int options; -int timingout; -int toomany = TOOMANY; -int maxchild = MAXCHILD; -int maxcpm = MAXCPM; -int maxperip = MAXPERIP; -struct servent *sp; -struct rpcent *rpc; -char *hostname = NULL; -struct sockaddr_in *bind_sa4; -int v4bind_ok = 0; +static int dolog = 0; +static int maxsock; /* highest-numbered descriptor */ +static fd_set allsock; +static int options; +static int timingout; +static int toomany = TOOMANY; +static int maxchild = MAXCHILD; +static int maxcpm = MAXCPM; +static int maxperip = MAXPERIP; +static struct servent *sp; +static struct rpcent *rpc; +static char *hostname = NULL; +static struct sockaddr_in *bind_sa4; +static int v4bind_ok = 0; #ifdef INET6 -struct sockaddr_in6 *bind_sa6; -int v6bind_ok = 0; +static struct sockaddr_in6 *bind_sa6; +static int v6bind_ok = 0; #endif -int signalpipe[2]; +static int signalpipe[2]; #ifdef SANITY_CHECK -int nsock; +static int nsock; #endif -uid_t euid; -gid_t egid; -mode_t mask; +static uid_t euid; +static gid_t egid; +static mode_t mask; -struct servtab *servtab; +struct servtab *servtab; -extern struct biltin biltins[]; +static const char *CONFIG = _PATH_INETDCONF; +static const char *pid_file = _PATH_INETDPID; +static struct pidfh *pfh = NULL; -const char *CONFIG = _PATH_INETDCONF; -const char *pid_file = _PATH_INETDPID; -struct pidfh *pfh = NULL; +static struct netconfig *udpconf, *tcpconf, *udp6conf, *tcp6conf; -struct netconfig *udpconf, *tcpconf, *udp6conf, *tcp6conf; - static LIST_HEAD(, procinfo) proctable[PERIPSIZE]; -int +static int getvalue(const char *arg, int *value, const char *whine) { int tmp; @@ -308,9 +315,11 @@ whichaf(struct request_info *req) sa = (struct sockaddr *)req->client->sin; if (sa == NULL) return AF_UNSPEC; +#ifdef INET6 if (sa->sa_family == AF_INET6 && - IN6_IS_ADDR_V4MAPPED(&((struct sockaddr_in6 *)sa)->sin6_addr)) + IN6_IS_ADDR_V4MAPPED(&satosin6(sa)->sin6_addr)) return AF_INET; +#endif return sa->sa_family; } #endif @@ -419,7 +428,7 @@ main(int argc, char **argv) case AF_INET: if (v4bind_ok) continue; - bind_sa4 = (struct sockaddr_in *)res->ai_addr; + bind_sa4 = satosin(res->ai_addr); /* init port num in case servname is dummy */ bind_sa4->sin_port = 0; v4bind_ok = 1; @@ -428,7 +437,7 @@ main(int argc, char **argv) case AF_INET6: if (v6bind_ok) continue; - bind_sa6 = (struct sockaddr_in6 *)res->ai_addr; + bind_sa6 = satosin6(res->ai_addr); /* init port num in case servname is dummy */ bind_sa6->sin6_port = 0; v6bind_ok = 1; @@ -520,17 +529,17 @@ main(int argc, char **argv) } #endif - sa.sa_flags = 0; + sa = (struct sigaction){ + .sa_flags = 0, + .sa_handler = flag_signal, + }; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, SIGALRM); sigaddset(&sa.sa_mask, SIGCHLD); sigaddset(&sa.sa_mask, SIGHUP); - sa.sa_handler = flag_retry; sigaction(SIGALRM, &sa, &saalrm); config(); - sa.sa_handler = flag_config; sigaction(SIGHUP, &sa, &sahup); - sa.sa_handler = flag_reapchild; sigaction(SIGCHLD, &sa, &sachld); sa.sa_handler = SIG_IGN; sigaction(SIGPIPE, &sa, &sapipe); @@ -579,30 +588,34 @@ main(int argc, char **argv) } /* handle any queued signal flags */ if (FD_ISSET(signalpipe[0], &readable)) { - int nsig; + int nsig, signo; + if (ioctl(signalpipe[0], FIONREAD, &nsig) != 0) { - syslog(LOG_ERR, "ioctl: %m"); - exit(EX_OSERR); + syslog(LOG_ERR, "ioctl: %m"); + exit(EX_OSERR); } + nsig /= sizeof(signo); while (--nsig >= 0) { - char c; - if (read(signalpipe[0], &c, 1) != 1) { - syslog(LOG_ERR, "read: %m"); - exit(EX_OSERR); - } - if (debug) - warnx("handling signal flag %c", c); - switch(c) { - case 'A': /* sigalrm */ - retry(); - break; - case 'C': /* sigchld */ - reapchild(); - break; - case 'H': /* sighup */ - config(); - break; - } + size_t len; + + len = read(signalpipe[0], &signo, sizeof(signo)); + if (len != sizeof(signo)) { + syslog(LOG_ERR, "read: %m"); + exit(EX_OSERR); + } + if (debug) + warnx("handling signal flag %d", signo); + switch (signo) { + case SIGALRM: + retry(); + break; + case SIGCHLD: + reapchild(); + break; + case SIGHUP: + config(); + break; + } } } for (sep = servtab; n && sep; sep = sep->se_next) @@ -887,12 +900,13 @@ main(int argc, char **argv) * Add a signal flag to the signal flag queue for later handling */ -void -flag_signal(int c) +static void +flag_signal(int signo) { - char ch = c; + size_t len; - if (write(signalpipe[1], &ch, 1) != 1) { + len = write(signalpipe[1], &signo, sizeof(signo)); + if (len != sizeof(signo)) { syslog(LOG_ERR, "write: %m"); _exit(EX_OSERR); } @@ -903,7 +917,7 @@ flag_signal(int c) * limit on children, then stop accepting incoming requests. */ -void +static void addchild(struct servtab *sep, pid_t pid) { if (sep->se_maxchild <= 0) @@ -920,17 +934,7 @@ addchild(struct servtab *sep, pid_t pid) disable(sep); } -/* - * Some child process has exited. See if it's on somebody's list. - */ - -void -flag_reapchild(int signo __unused) -{ - flag_signal('C'); -} - -void +static void reapchild(void) { int k, status; @@ -968,13 +972,7 @@ reapchild(void) } } -void -flag_config(int signo __unused) -{ - flag_signal('H'); -} - -void +static void config(void) { struct servtab *sep, *new, **sepp; @@ -1182,7 +1180,7 @@ config(void) (void) sigsetmask(omask); } -void +static void unregisterrpc(struct servtab *sep) { u_int i; @@ -1237,13 +1235,7 @@ unregisterrpc(struct servtab *sep) (void) sigsetmask(omask); } -void -flag_retry(int signo __unused) -{ - flag_signal('A'); -} - -void +static void retry(void) { struct servtab *sep; @@ -1254,7 +1246,7 @@ retry(void) setup(sep); } -void +static void setup(struct servtab *sep) { int on = 1; @@ -1281,6 +1273,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o syslog(LOG_ERR, "setsockopt (SO_PRIVSTATE): %m"); #endif /* tftpd opens a new connection then needs more infos */ +#ifdef INET6 if ((sep->se_family == AF_INET6) && (strcmp(sep->se_proto, "udp") == 0) && (sep->se_accept == 0) && @@ -1293,6 +1286,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o (char *)&flag, sizeof (flag)) < 0) syslog(LOG_ERR, "setsockopt (IPV6_V6ONLY): %m"); } +#endif #undef turnon #ifdef IPSEC ipsecsetup(sep); @@ -1330,7 +1324,9 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o u_int i; socklen_t len = sep->se_ctrladdr_size; struct netconfig *netid, *netid2 = NULL; +#ifdef INET6 struct sockaddr_in sock; +#endif struct netbuf nbuf, nbuf2; if (getsockname(sep->se_fd, @@ -1345,6 +1341,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o nbuf.len = sep->se_ctrladdr.sa_len; if (sep->se_family == AF_INET) netid = sep->se_socktype==SOCK_DGRAM? udpconf:tcpconf; +#ifdef INET6 else { netid = sep->se_socktype==SOCK_DGRAM? udp6conf:tcp6conf; if (!sep->se_nomapped) { /* INET and INET6 */ @@ -1356,6 +1353,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o sock.sin_port = sep->se_ctrladdr6.sin6_port; } } +#endif if (debug) print_service("REG ", sep); for (i = sep->se_rpc_lowvers; i <= sep->se_rpc_highvers; i++) { @@ -1377,7 +1375,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o } #ifdef IPSEC -void +static void ipsecsetup(struct servtab *sep) { char *buf; @@ -1451,7 +1449,7 @@ ipsecsetup(struct servtab *sep) /* * Finish with a service and its socket. */ -void +static void close_sep(struct servtab *sep) { if (sep->se_fd >= 0) { @@ -1464,7 +1462,7 @@ close_sep(struct servtab *sep) sep->se_numchild = 0; /* forget about any existing children */ } -int +static int matchservent(const char *name1, const char *name2, const char *proto) { char **alias, *p; @@ -1488,7 +1486,7 @@ matchservent(const char *name1, const char *name2, con return(0); } -struct servtab * +static struct servtab * enter(struct servtab *cp) { struct servtab *sep; @@ -1508,7 +1506,7 @@ enter(struct servtab *cp) return (sep); } -void +static void enable(struct servtab *sep) { if (debug) @@ -1537,7 +1535,7 @@ enable(struct servtab *sep) maxsock = sep->se_fd; } -void +static void disable(struct servtab *sep) { if (debug) @@ -1570,11 +1568,11 @@ disable(struct servtab *sep) maxsock--; } -FILE *fconfig = NULL; -struct servtab serv; -char line[LINE_MAX]; +static FILE *fconfig = NULL; +static struct servtab serv; +static char line[LINE_MAX]; -int +static int setconfig(void) { @@ -1586,7 +1584,7 @@ setconfig(void) return (fconfig != NULL); } -void +static void endconfig(void) { if (fconfig) { @@ -1595,7 +1593,7 @@ endconfig(void) } } -struct servtab * +static struct servtab * getconfigent(void) { struct servtab *sep = &serv; @@ -1973,7 +1971,7 @@ more: return (sep); } -void +static void freeconfig(struct servtab *cp) { int i; @@ -2009,7 +2007,7 @@ freeconfig(struct servtab *cp) * Safe skip - if skip returns null, log a syntax error in the * configuration file and exit. */ -char * +static char * sskip(char **cpp) { char *cp; @@ -2022,7 +2020,7 @@ sskip(char **cpp) return (cp); } -char * +static char * skip(char **cpp) { char *cp = *cpp; @@ -2058,7 +2056,7 @@ again: return (start); } -char * +static char * nextline(FILE *fd) { char *cp; @@ -2071,7 +2069,7 @@ nextline(FILE *fd) return (line); } -char * +static char * newstr(const char *cp) { char *cr; @@ -2111,13 +2109,13 @@ check_loop(const struct sockaddr *sa, const struct ser switch (se2->se_family) { case AF_INET: - if (((const struct sockaddr_in *)sa)->sin_port == + if (csatosin(sa)->sin_port == se2->se_ctrladdr4.sin_port) goto isloop; continue; #ifdef INET6 case AF_INET6: - if (((const struct sockaddr_in6 *)sa)->sin6_port == + if (csatosin6(sa)->sin6_port == se2->se_ctrladdr6.sin6_port) goto isloop; continue; @@ -2141,7 +2139,7 @@ check_loop(const struct sockaddr *sa, const struct ser * print_service: * Dump relevant information to stderr */ -void +static void print_service(const char *action, const struct servtab *sep) { fprintf(stderr, @@ -2189,9 +2187,9 @@ typedef struct CHash { CTime ch_Times[CHTSIZE]; } CHash; -CHash CHashAry[CPMHSIZE]; +static CHash CHashAry[CPMHSIZE]; -int +static int cpmip(const struct servtab *sep, int ctrl) { struct sockaddr_storage rss; Modified: stable/11/usr.sbin/inetd/inetd.h ============================================================================== --- stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 19:14:16 2020 (r356386) +++ stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 21:32:41 2020 (r356387) @@ -123,12 +123,7 @@ struct servtab { #define se_reset se_flags.se_reset int check_loop(const struct sockaddr *, const struct servtab *sep); -int getvalue(const char *, int *, const char *); -char *newstr(const char *); void inetd_setproctitle(const char *, int); -void print_service(const char *, const struct servtab *); -char *sskip(char **); -char *skip(char **); struct servtab *tcpmux(int); extern int debug; @@ -143,3 +138,4 @@ struct biltin { int bi_maxchild; /* max number of children, -1=default */ bi_fn_t *bi_fn; /* function which performs it */ }; +extern struct biltin biltins[]; From owner-svn-src-all@freebsd.org Sun Jan 5 21:35:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0C7261E794B; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rX3r09NYz3Jwt; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F09203FFD; Sun, 5 Jan 2020 21:35:03 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005LZ3Lh080163; Sun, 5 Jan 2020 21:35:03 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005LZ3xp080159; Sun, 5 Jan 2020 21:35:03 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001052135.005LZ3xp080159@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 21:35:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356388 - in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Commit-Revision: 356388 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:35:04 -0000 Author: kevans Date: Sun Jan 5 21:35:02 2020 New Revision: 356388 URL: https://svnweb.freebsd.org/changeset/base/356388 Log: MFC further inetd(8) cleanup: r356204, r356215, r356217-r356218, r356246-r356248, r356254, r356318 r356204: inetd: don't leak `policy` on return sep->se_policy gets a strdup'd version of policy, so we don't need it to stick around afterwards. While here, remove a couple of NULL checks prior to free(policy). r356215: inetd: knock out some clang analyze warnings chargen_dg: clang-analyze is convinced that endring could be non-NULL at entry, and thus wants to assume that rs == NULL. Just independently initialize rs if it's NULL to appease the analyzer. getconfigent: policy leaks on return free_connlist: reorganize the loop to make it clear that we're not going to access `conn` after it's been freed. cpmip/hashval: left-shifts performed will result in UB as we take signed 0xABC3D20F and left shift it by 5. r356217: inetd: prefer strtonum(3) to strspn(3)+atoi(3), NFC strtonum(3) does effectively the same validation as we had, but it's more concise. r356218: inetd: prefer strlcpy to strlen(3) check + strcpy(3), NFC This is again functionally equivalent but more concise. r356246: inetd: add some macros for checking child limits, NFC The main point here is capturing the maxchild > 0 check. A future change to inetd will start tracking all of the child pids so that it can give proper and consistent notification of process exit/signalling. r356247: inetd: track all child pids, regardless of maxchild spec Currently, child pids are only tracked if maxchildren is specified. As a consequence, without a maxchild limit we do not get a notice in syslog on children aborting abnormally. This turns out to be a great debugging aide at times. Children are now tracked in a LIST; the management interface is decidedly less painful when there's no upper bound on the number of entries we may have at the cost of one small allocation per connection. r356248: inetd: convert remaining bzero(3) to memset(3), NFC This change is purely in the name of noise reduction from static analyzers that want to complain that bzero(3) is obsolete in favor of memset(3). With this, clang-analyze at least is now noise free. WARNS= 6 also appears to have been OK for some time now, so drop the current setting and opt for the default. r356254: inetd: final round of trivial cleanup, NFC Highlights: - Use MAX() for maxsock raising; small readability improvement IMO - malloc(3) + memset(3) -> calloc(3) where appropriate - stop casting the return value of malloc(3) - mallloc(3) -> reallocarray(3) where appropriate A future change may enter capability mode when forking for some of the built-in handlers. r356318: inetd: fix WITHOUT_TCP_WRAPPERS build after r356248 After increasing WARNS, building WITHOUT_TCP_WRAPPERS failed because of some unused variables. Modified: stable/11/usr.sbin/inetd/Makefile stable/11/usr.sbin/inetd/builtins.c stable/11/usr.sbin/inetd/inetd.c stable/11/usr.sbin/inetd/inetd.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/inetd/Makefile stable/12/usr.sbin/inetd/builtins.c stable/12/usr.sbin/inetd/inetd.c stable/12/usr.sbin/inetd/inetd.h Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/inetd/Makefile ============================================================================== --- stable/11/usr.sbin/inetd/Makefile Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/Makefile Sun Jan 5 21:35:02 2020 (r356388) @@ -8,7 +8,6 @@ MAN= inetd.8 MLINKS= inetd.8 inetd.conf.5 SRCS= inetd.c builtins.c -WARNS?= 3 CFLAGS+= -DLOGIN_CAP #CFLAGS+= -DSANITY_CHECK Modified: stable/11/usr.sbin/inetd/builtins.c ============================================================================== --- stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 21:35:02 2020 (r356388) @@ -132,10 +132,10 @@ chargen_dg(int s, struct servtab *sep) socklen_t size; char text[LINESIZ+2]; - if (endring == 0) { + if (endring == NULL) initring(); + if (rs == NULL) rs = ring; - } size = sizeof(ss); if (recvfrom(s, text, sizeof(text), 0, @@ -649,8 +649,14 @@ ident_stream(int s, struct servtab *sep) goto fakeid_fail; if (!Fflag) { if (iflag) { - if (p[strspn(p, "0123456789")] == '\0' && - getpwuid(atoi(p)) != NULL) + const char *errstr; + uid_t uid; + + uid = strtonum(p, 0, UID_MAX, &errstr); + if (errstr != NULL) + goto fakeid_fail; + + if (getpwuid(uid) != NULL) goto fakeid_fail; } else { if (getpwnam(p) != NULL) Modified: stable/11/usr.sbin/inetd/inetd.c ============================================================================== --- stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 21:35:02 2020 (r356388) @@ -248,9 +248,11 @@ static char *sskip(char **); static char *newstr(const char *); static void print_service(const char *, const struct servtab *); +#ifdef LIBWRAP /* tcpd.h */ int allow_severity; int deny_severity; +#endif static int wrap_ex = 0; static int wrap_bi = 0; @@ -408,7 +410,7 @@ main(int argc, char **argv) */ servname = (hostname == NULL) ? "0" /* dummy */ : NULL; - bzero(&hints, sizeof(struct addrinfo)); + memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; /* dummy */ @@ -562,10 +564,7 @@ main(int argc, char **argv) #ifdef SANITY_CHECK nsock++; #endif - if (signalpipe[0] > maxsock) - maxsock = signalpipe[0]; - if (signalpipe[1] > maxsock) - maxsock = signalpipe[1]; + maxsock = MAX(MAX(maxsock, signalpipe[0]), signalpipe[1]); for (;;) { int n, ctrl; @@ -920,25 +919,33 @@ flag_signal(int signo) static void addchild(struct servtab *sep, pid_t pid) { - if (sep->se_maxchild <= 0) - return; + struct stabchild *sc; + #ifdef SANITY_CHECK - if (sep->se_numchild >= sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { syslog(LOG_ERR, "%s: %d >= %d", __func__, sep->se_numchild, sep->se_maxchild); exit(EX_SOFTWARE); } #endif - sep->se_pids[sep->se_numchild++] = pid; - if (sep->se_numchild == sep->se_maxchild) + sc = calloc(1, sizeof(*sc)); + if (sc == NULL) { + syslog(LOG_ERR, "calloc: %m"); + exit(EX_OSERR); + } + sc->sc_pid = pid; + LIST_INSERT_HEAD(&sep->se_children, sc, sc_link); + ++sep->se_numchild; + if (SERVTAB_AT_LIMIT(sep)) disable(sep); } static void reapchild(void) { - int k, status; + int status; pid_t pid; + struct stabchild *sc; struct servtab *sep; for (;;) { @@ -951,14 +958,17 @@ reapchild(void) WIFEXITED(status) ? WEXITSTATUS(status) : WTERMSIG(status)); for (sep = servtab; sep; sep = sep->se_next) { - for (k = 0; k < sep->se_numchild; k++) - if (sep->se_pids[k] == pid) + LIST_FOREACH(sc, &sep->se_children, sc_link) { + if (sc->sc_pid == pid) break; - if (k == sep->se_numchild) + } + if (sc == NULL) continue; - if (sep->se_numchild == sep->se_maxchild) + if (SERVTAB_AT_LIMIT(sep)) enable(sep); - sep->se_pids[k] = sep->se_pids[--sep->se_numchild]; + LIST_REMOVE(sc, sc_link); + free(sc); + --sep->se_numchild; if (WIFSIGNALED(status) || WEXITSTATUS(status)) syslog(LOG_WARNING, "%s[%d]: exited, %s %u", @@ -1030,25 +1040,20 @@ config(void) sep->se_nomapped = new->se_nomapped; sep->se_reset = 1; } - /* copy over outstanding child pids */ - if (sep->se_maxchild > 0 && new->se_maxchild > 0) { - new->se_numchild = sep->se_numchild; - if (new->se_numchild > new->se_maxchild) - new->se_numchild = new->se_maxchild; - memcpy(new->se_pids, sep->se_pids, - new->se_numchild * sizeof(*new->se_pids)); - } - SWAP(pid_t *, sep->se_pids, new->se_pids); - sep->se_maxchild = new->se_maxchild; - sep->se_numchild = new->se_numchild; + + /* + * The children tracked remain; we want numchild to + * still reflect how many jobs are running so we don't + * throw off our accounting. + */ sep->se_maxcpm = new->se_maxcpm; + sep->se_maxchild = new->se_maxchild; resize_conn(sep, new->se_maxperip); sep->se_maxperip = new->se_maxperip; sep->se_bi = new->se_bi; /* might need to turn on or off service now */ if (sep->se_fd >= 0) { - if (sep->se_maxchild > 0 - && sep->se_numchild == sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { if (FD_ISSET(sep->se_fd, &allsock)) disable(sep); } else { @@ -1492,8 +1497,8 @@ enter(struct servtab *cp) struct servtab *sep; long omask; - sep = (struct servtab *)malloc(sizeof (*sep)); - if (sep == (struct servtab *)0) { + sep = malloc(sizeof(*sep)); + if (sep == NULL) { syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } @@ -1531,8 +1536,7 @@ enable(struct servtab *sep) nsock++; #endif FD_SET(sep->se_fd, &allsock); - if (sep->se_fd > maxsock) - maxsock = sep->se_fd; + maxsock = MAX(maxsock, sep->se_fd); } static void @@ -1610,6 +1614,7 @@ getconfigent(void) int v6bind; #endif int i; + size_t unsz; #ifdef IPSEC policy = NULL; @@ -1627,12 +1632,10 @@ more: for (p = cp + 2; p && *p && isspace(*p); p++) ; if (*p == '\0') { - if (policy) - free(policy); + free(policy); policy = NULL; } else if (ipsec_get_policylen(p) >= 0) { - if (policy) - free(policy); + free(policy); policy = newstr(p); } else { syslog(LOG_ERR, @@ -1646,8 +1649,11 @@ more: continue; break; } - if (cp == NULL) - return ((struct servtab *)0); + if (cp == NULL) { + free(policy); + return (NULL); + } + /* * clear the static buffer, since some fields (se_ctrladdr, * for example) don't get initialized here. @@ -1829,16 +1835,18 @@ more: break; #endif case AF_UNIX: - if (strlen(sep->se_service) >= sizeof(sep->se_ctrladdr_un.sun_path)) { - syslog(LOG_ERR, +#define SUN_PATH_MAXSIZE sizeof(sep->se_ctrladdr_un.sun_path) + memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); + sep->se_ctrladdr_un.sun_family = sep->se_family; + if ((unsz = strlcpy(sep->se_ctrladdr_un.sun_path, + sep->se_service, SUN_PATH_MAXSIZE) >= SUN_PATH_MAXSIZE)) { + syslog(LOG_ERR, "domain socket pathname too long for service %s", sep->se_service); goto more; } - memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); - sep->se_ctrladdr_un.sun_family = sep->se_family; - sep->se_ctrladdr_un.sun_len = strlen(sep->se_service); - strcpy(sep->se_ctrladdr_un.sun_path, sep->se_service); + sep->se_ctrladdr_un.sun_len = unsz; +#undef SUN_PATH_MAXSIZE sep->se_ctrladdr_size = SUN_LEN(&sep->se_ctrladdr_un); } arg = sskip(&cp); @@ -1944,13 +1952,7 @@ more: else sep->se_maxchild = 1; } - if (sep->se_maxchild > 0) { - sep->se_pids = malloc(sep->se_maxchild * sizeof(*sep->se_pids)); - if (sep->se_pids == NULL) { - syslog(LOG_ERR, "malloc: %m"); - exit(EX_OSERR); - } - } + LIST_INIT(&sep->se_children); argc = 0; for (arg = skip(&cp); cp; arg = skip(&cp)) if (argc < MAXARGV) { @@ -1967,6 +1969,7 @@ more: LIST_INIT(&sep->se_conn[i]); #ifdef IPSEC sep->se_policy = policy ? newstr(policy) : NULL; + free(policy); #endif return (sep); } @@ -1974,31 +1977,28 @@ more: static void freeconfig(struct servtab *cp) { + struct stabchild *sc; int i; - if (cp->se_service) - free(cp->se_service); - if (cp->se_proto) - free(cp->se_proto); - if (cp->se_user) - free(cp->se_user); - if (cp->se_group) - free(cp->se_group); + free(cp->se_service); + free(cp->se_proto); + free(cp->se_user); + free(cp->se_group); #ifdef LOGIN_CAP - if (cp->se_class) - free(cp->se_class); + free(cp->se_class); #endif - if (cp->se_server) - free(cp->se_server); - if (cp->se_pids) - free(cp->se_pids); + free(cp->se_server); + while (!LIST_EMPTY(&cp->se_children)) { + sc = LIST_FIRST(&cp->se_children); + LIST_REMOVE(sc, sc_link); + free(sc); + } for (i = 0; i < MAXARGV; i++) if (cp->se_argv[i]) free(cp->se_argv[i]); free_connlist(cp); #ifdef IPSEC - if (cp->se_policy) - free(cp->se_policy); + free(cp->se_policy); #endif } @@ -2205,7 +2205,7 @@ cpmip(const struct servtab *sep, int ctrl) (sep->se_family == AF_INET || sep->se_family == AF_INET6) && getpeername(ctrl, (struct sockaddr *)&rss, &rssLen) == 0 ) { time_t t = time(NULL); - int hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; int i; int cnt = 0; CHash *chBest = NULL; @@ -2278,10 +2278,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin4->sin_family; chBest->ch_Addr4 = sin4->sin_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #ifdef INET6 if ((rss.ss_family == AF_INET6 && @@ -2292,10 +2291,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin6->sin6_family; chBest->ch_Addr6 = sin6->sin6_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #endif chBest->ch_LTime = t; @@ -2386,9 +2384,10 @@ search_conn(struct servtab *sep, int ctrl) syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } - conn->co_proc = malloc(sep->se_maxperip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(NULL, sep->se_maxperip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "malloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } memcpy(&conn->co_addr, (struct sockaddr *)&ss, sslen); @@ -2477,10 +2476,10 @@ resize_conn(struct servtab *sep, int maxpip) LIST_FOREACH(conn, &sep->se_conn[i], co_link) { for (j = maxpip; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); - conn->co_proc = realloc(conn->co_proc, - maxpip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(conn->co_proc, maxpip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "realloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } if (conn->co_numchild > maxpip) @@ -2492,11 +2491,15 @@ resize_conn(struct servtab *sep, int maxpip) static void free_connlist(struct servtab *sep) { - struct conninfo *conn; + struct conninfo *conn, *conn_temp; int i, j; for (i = 0; i < PERIPSIZE; ++i) { - while ((conn = LIST_FIRST(&sep->se_conn[i])) != NULL) { + LIST_FOREACH_SAFE(conn, &sep->se_conn[i], co_link, conn_temp) { + if (conn == NULL) { + LIST_REMOVE(conn, co_link); + continue; + } for (j = 0; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); conn->co_numchild = 0; @@ -2552,7 +2555,8 @@ free_proc(struct procinfo *proc) static int hashval(char *p, int len) { - int i, hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; + int i; for (i = 0; i < len; ++i, ++p) hv = (hv << 5) ^ (hv >> 23) ^ *p; Modified: stable/11/usr.sbin/inetd/inetd.h ============================================================================== --- stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 21:35:02 2020 (r356388) @@ -64,6 +64,11 @@ struct conninfo { #define PERIPSIZE 256 +struct stabchild { + LIST_ENTRY(stabchild) sc_link; + pid_t sc_pid; +}; + struct servtab { char *se_service; /* name of service */ int se_socktype; /* type of socket to use */ @@ -72,7 +77,6 @@ struct servtab { int se_maxchild; /* max number of children */ int se_maxcpm; /* max connects per IP per minute */ int se_numchild; /* current number of children */ - pid_t *se_pids; /* array of child pids */ char *se_user; /* user name to run as */ char *se_group; /* group name to run as */ #ifdef LOGIN_CAP @@ -117,10 +121,16 @@ struct servtab { } se_flags; int se_maxperip; /* max number of children per src */ LIST_HEAD(, conninfo) se_conn[PERIPSIZE]; + LIST_HEAD(, stabchild) se_children; }; #define se_nomapped se_flags.se_nomapped #define se_reset se_flags.se_reset + +#define SERVTAB_AT_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild == (sep)->se_maxchild) +#define SERVTAB_EXCEEDS_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild >= (sep)->se_maxchild) int check_loop(const struct sockaddr *, const struct servtab *sep); void inetd_setproctitle(const char *, int); From owner-svn-src-all@freebsd.org Sun Jan 5 21:35:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BA1E51E7954; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rX3r5JYjz3Jwv; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B123F3FFE; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005LZ4P8080172; Sun, 5 Jan 2020 21:35:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005LZ4s0080169; Sun, 5 Jan 2020 21:35:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001052135.005LZ4s0080169@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 21:35:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356388 - in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Commit-Revision: 356388 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:35:04 -0000 Author: kevans Date: Sun Jan 5 21:35:02 2020 New Revision: 356388 URL: https://svnweb.freebsd.org/changeset/base/356388 Log: MFC further inetd(8) cleanup: r356204, r356215, r356217-r356218, r356246-r356248, r356254, r356318 r356204: inetd: don't leak `policy` on return sep->se_policy gets a strdup'd version of policy, so we don't need it to stick around afterwards. While here, remove a couple of NULL checks prior to free(policy). r356215: inetd: knock out some clang analyze warnings chargen_dg: clang-analyze is convinced that endring could be non-NULL at entry, and thus wants to assume that rs == NULL. Just independently initialize rs if it's NULL to appease the analyzer. getconfigent: policy leaks on return free_connlist: reorganize the loop to make it clear that we're not going to access `conn` after it's been freed. cpmip/hashval: left-shifts performed will result in UB as we take signed 0xABC3D20F and left shift it by 5. r356217: inetd: prefer strtonum(3) to strspn(3)+atoi(3), NFC strtonum(3) does effectively the same validation as we had, but it's more concise. r356218: inetd: prefer strlcpy to strlen(3) check + strcpy(3), NFC This is again functionally equivalent but more concise. r356246: inetd: add some macros for checking child limits, NFC The main point here is capturing the maxchild > 0 check. A future change to inetd will start tracking all of the child pids so that it can give proper and consistent notification of process exit/signalling. r356247: inetd: track all child pids, regardless of maxchild spec Currently, child pids are only tracked if maxchildren is specified. As a consequence, without a maxchild limit we do not get a notice in syslog on children aborting abnormally. This turns out to be a great debugging aide at times. Children are now tracked in a LIST; the management interface is decidedly less painful when there's no upper bound on the number of entries we may have at the cost of one small allocation per connection. r356248: inetd: convert remaining bzero(3) to memset(3), NFC This change is purely in the name of noise reduction from static analyzers that want to complain that bzero(3) is obsolete in favor of memset(3). With this, clang-analyze at least is now noise free. WARNS= 6 also appears to have been OK for some time now, so drop the current setting and opt for the default. r356254: inetd: final round of trivial cleanup, NFC Highlights: - Use MAX() for maxsock raising; small readability improvement IMO - malloc(3) + memset(3) -> calloc(3) where appropriate - stop casting the return value of malloc(3) - mallloc(3) -> reallocarray(3) where appropriate A future change may enter capability mode when forking for some of the built-in handlers. r356318: inetd: fix WITHOUT_TCP_WRAPPERS build after r356248 After increasing WARNS, building WITHOUT_TCP_WRAPPERS failed because of some unused variables. Modified: stable/12/usr.sbin/inetd/Makefile stable/12/usr.sbin/inetd/builtins.c stable/12/usr.sbin/inetd/inetd.c stable/12/usr.sbin/inetd/inetd.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/inetd/Makefile stable/11/usr.sbin/inetd/builtins.c stable/11/usr.sbin/inetd/inetd.c stable/11/usr.sbin/inetd/inetd.h Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/inetd/Makefile ============================================================================== --- stable/12/usr.sbin/inetd/Makefile Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/Makefile Sun Jan 5 21:35:02 2020 (r356388) @@ -9,7 +9,6 @@ MAN= inetd.8 MLINKS= inetd.8 inetd.conf.5 SRCS= inetd.c builtins.c -WARNS?= 3 CFLAGS+= -DLOGIN_CAP #CFLAGS+= -DSANITY_CHECK Modified: stable/12/usr.sbin/inetd/builtins.c ============================================================================== --- stable/12/usr.sbin/inetd/builtins.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/builtins.c Sun Jan 5 21:35:02 2020 (r356388) @@ -132,10 +132,10 @@ chargen_dg(int s, struct servtab *sep) socklen_t size; char text[LINESIZ+2]; - if (endring == 0) { + if (endring == NULL) initring(); + if (rs == NULL) rs = ring; - } size = sizeof(ss); if (recvfrom(s, text, sizeof(text), 0, @@ -649,8 +649,14 @@ ident_stream(int s, struct servtab *sep) goto fakeid_fail; if (!Fflag) { if (iflag) { - if (p[strspn(p, "0123456789")] == '\0' && - getpwuid(atoi(p)) != NULL) + const char *errstr; + uid_t uid; + + uid = strtonum(p, 0, UID_MAX, &errstr); + if (errstr != NULL) + goto fakeid_fail; + + if (getpwuid(uid) != NULL) goto fakeid_fail; } else { if (getpwnam(p) != NULL) Modified: stable/12/usr.sbin/inetd/inetd.c ============================================================================== --- stable/12/usr.sbin/inetd/inetd.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/inetd.c Sun Jan 5 21:35:02 2020 (r356388) @@ -250,9 +250,11 @@ static char *sskip(char **); static char *newstr(const char *); static void print_service(const char *, const struct servtab *); +#ifdef LIBWRAP /* tcpd.h */ int allow_severity; int deny_severity; +#endif static int wrap_ex = 0; static int wrap_bi = 0; @@ -410,7 +412,7 @@ main(int argc, char **argv) */ servname = (hostname == NULL) ? "0" /* dummy */ : NULL; - bzero(&hints, sizeof(struct addrinfo)); + memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; /* dummy */ @@ -564,10 +566,7 @@ main(int argc, char **argv) #ifdef SANITY_CHECK nsock++; #endif - if (signalpipe[0] > maxsock) - maxsock = signalpipe[0]; - if (signalpipe[1] > maxsock) - maxsock = signalpipe[1]; + maxsock = MAX(MAX(maxsock, signalpipe[0]), signalpipe[1]); for (;;) { int n, ctrl; @@ -922,25 +921,33 @@ flag_signal(int signo) static void addchild(struct servtab *sep, pid_t pid) { - if (sep->se_maxchild <= 0) - return; + struct stabchild *sc; + #ifdef SANITY_CHECK - if (sep->se_numchild >= sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { syslog(LOG_ERR, "%s: %d >= %d", __func__, sep->se_numchild, sep->se_maxchild); exit(EX_SOFTWARE); } #endif - sep->se_pids[sep->se_numchild++] = pid; - if (sep->se_numchild == sep->se_maxchild) + sc = calloc(1, sizeof(*sc)); + if (sc == NULL) { + syslog(LOG_ERR, "calloc: %m"); + exit(EX_OSERR); + } + sc->sc_pid = pid; + LIST_INSERT_HEAD(&sep->se_children, sc, sc_link); + ++sep->se_numchild; + if (SERVTAB_AT_LIMIT(sep)) disable(sep); } static void reapchild(void) { - int k, status; + int status; pid_t pid; + struct stabchild *sc; struct servtab *sep; for (;;) { @@ -953,14 +960,17 @@ reapchild(void) WIFEXITED(status) ? WEXITSTATUS(status) : WTERMSIG(status)); for (sep = servtab; sep; sep = sep->se_next) { - for (k = 0; k < sep->se_numchild; k++) - if (sep->se_pids[k] == pid) + LIST_FOREACH(sc, &sep->se_children, sc_link) { + if (sc->sc_pid == pid) break; - if (k == sep->se_numchild) + } + if (sc == NULL) continue; - if (sep->se_numchild == sep->se_maxchild) + if (SERVTAB_AT_LIMIT(sep)) enable(sep); - sep->se_pids[k] = sep->se_pids[--sep->se_numchild]; + LIST_REMOVE(sc, sc_link); + free(sc); + --sep->se_numchild; if (WIFSIGNALED(status) || WEXITSTATUS(status)) syslog(LOG_WARNING, "%s[%d]: exited, %s %u", @@ -1032,25 +1042,20 @@ config(void) sep->se_nomapped = new->se_nomapped; sep->se_reset = 1; } - /* copy over outstanding child pids */ - if (sep->se_maxchild > 0 && new->se_maxchild > 0) { - new->se_numchild = sep->se_numchild; - if (new->se_numchild > new->se_maxchild) - new->se_numchild = new->se_maxchild; - memcpy(new->se_pids, sep->se_pids, - new->se_numchild * sizeof(*new->se_pids)); - } - SWAP(pid_t *, sep->se_pids, new->se_pids); - sep->se_maxchild = new->se_maxchild; - sep->se_numchild = new->se_numchild; + + /* + * The children tracked remain; we want numchild to + * still reflect how many jobs are running so we don't + * throw off our accounting. + */ sep->se_maxcpm = new->se_maxcpm; + sep->se_maxchild = new->se_maxchild; resize_conn(sep, new->se_maxperip); sep->se_maxperip = new->se_maxperip; sep->se_bi = new->se_bi; /* might need to turn on or off service now */ if (sep->se_fd >= 0) { - if (sep->se_maxchild > 0 - && sep->se_numchild == sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { if (FD_ISSET(sep->se_fd, &allsock)) disable(sep); } else { @@ -1494,8 +1499,8 @@ enter(struct servtab *cp) struct servtab *sep; long omask; - sep = (struct servtab *)malloc(sizeof (*sep)); - if (sep == (struct servtab *)0) { + sep = malloc(sizeof(*sep)); + if (sep == NULL) { syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } @@ -1533,8 +1538,7 @@ enable(struct servtab *sep) nsock++; #endif FD_SET(sep->se_fd, &allsock); - if (sep->se_fd > maxsock) - maxsock = sep->se_fd; + maxsock = MAX(maxsock, sep->se_fd); } static void @@ -1612,6 +1616,7 @@ getconfigent(void) int v6bind; #endif int i; + size_t unsz; #ifdef IPSEC policy = NULL; @@ -1629,12 +1634,10 @@ more: for (p = cp + 2; p && *p && isspace(*p); p++) ; if (*p == '\0') { - if (policy) - free(policy); + free(policy); policy = NULL; } else if (ipsec_get_policylen(p) >= 0) { - if (policy) - free(policy); + free(policy); policy = newstr(p); } else { syslog(LOG_ERR, @@ -1648,8 +1651,11 @@ more: continue; break; } - if (cp == NULL) - return ((struct servtab *)0); + if (cp == NULL) { + free(policy); + return (NULL); + } + /* * clear the static buffer, since some fields (se_ctrladdr, * for example) don't get initialized here. @@ -1831,16 +1837,18 @@ more: break; #endif case AF_UNIX: - if (strlen(sep->se_service) >= sizeof(sep->se_ctrladdr_un.sun_path)) { - syslog(LOG_ERR, +#define SUN_PATH_MAXSIZE sizeof(sep->se_ctrladdr_un.sun_path) + memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); + sep->se_ctrladdr_un.sun_family = sep->se_family; + if ((unsz = strlcpy(sep->se_ctrladdr_un.sun_path, + sep->se_service, SUN_PATH_MAXSIZE) >= SUN_PATH_MAXSIZE)) { + syslog(LOG_ERR, "domain socket pathname too long for service %s", sep->se_service); goto more; } - memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); - sep->se_ctrladdr_un.sun_family = sep->se_family; - sep->se_ctrladdr_un.sun_len = strlen(sep->se_service); - strcpy(sep->se_ctrladdr_un.sun_path, sep->se_service); + sep->se_ctrladdr_un.sun_len = unsz; +#undef SUN_PATH_MAXSIZE sep->se_ctrladdr_size = SUN_LEN(&sep->se_ctrladdr_un); } arg = sskip(&cp); @@ -1946,13 +1954,7 @@ more: else sep->se_maxchild = 1; } - if (sep->se_maxchild > 0) { - sep->se_pids = malloc(sep->se_maxchild * sizeof(*sep->se_pids)); - if (sep->se_pids == NULL) { - syslog(LOG_ERR, "malloc: %m"); - exit(EX_OSERR); - } - } + LIST_INIT(&sep->se_children); argc = 0; for (arg = skip(&cp); cp; arg = skip(&cp)) if (argc < MAXARGV) { @@ -1969,6 +1971,7 @@ more: LIST_INIT(&sep->se_conn[i]); #ifdef IPSEC sep->se_policy = policy ? newstr(policy) : NULL; + free(policy); #endif return (sep); } @@ -1976,31 +1979,28 @@ more: static void freeconfig(struct servtab *cp) { + struct stabchild *sc; int i; - if (cp->se_service) - free(cp->se_service); - if (cp->se_proto) - free(cp->se_proto); - if (cp->se_user) - free(cp->se_user); - if (cp->se_group) - free(cp->se_group); + free(cp->se_service); + free(cp->se_proto); + free(cp->se_user); + free(cp->se_group); #ifdef LOGIN_CAP - if (cp->se_class) - free(cp->se_class); + free(cp->se_class); #endif - if (cp->se_server) - free(cp->se_server); - if (cp->se_pids) - free(cp->se_pids); + free(cp->se_server); + while (!LIST_EMPTY(&cp->se_children)) { + sc = LIST_FIRST(&cp->se_children); + LIST_REMOVE(sc, sc_link); + free(sc); + } for (i = 0; i < MAXARGV; i++) if (cp->se_argv[i]) free(cp->se_argv[i]); free_connlist(cp); #ifdef IPSEC - if (cp->se_policy) - free(cp->se_policy); + free(cp->se_policy); #endif } @@ -2207,7 +2207,7 @@ cpmip(const struct servtab *sep, int ctrl) (sep->se_family == AF_INET || sep->se_family == AF_INET6) && getpeername(ctrl, (struct sockaddr *)&rss, &rssLen) == 0 ) { time_t t = time(NULL); - int hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; int i; int cnt = 0; CHash *chBest = NULL; @@ -2280,10 +2280,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin4->sin_family; chBest->ch_Addr4 = sin4->sin_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #ifdef INET6 if ((rss.ss_family == AF_INET6 && @@ -2294,10 +2293,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin6->sin6_family; chBest->ch_Addr6 = sin6->sin6_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #endif chBest->ch_LTime = t; @@ -2388,9 +2386,10 @@ search_conn(struct servtab *sep, int ctrl) syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } - conn->co_proc = malloc(sep->se_maxperip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(NULL, sep->se_maxperip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "malloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } memcpy(&conn->co_addr, (struct sockaddr *)&ss, sslen); @@ -2479,10 +2478,10 @@ resize_conn(struct servtab *sep, int maxpip) LIST_FOREACH(conn, &sep->se_conn[i], co_link) { for (j = maxpip; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); - conn->co_proc = realloc(conn->co_proc, - maxpip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(conn->co_proc, maxpip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "realloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } if (conn->co_numchild > maxpip) @@ -2494,11 +2493,15 @@ resize_conn(struct servtab *sep, int maxpip) static void free_connlist(struct servtab *sep) { - struct conninfo *conn; + struct conninfo *conn, *conn_temp; int i, j; for (i = 0; i < PERIPSIZE; ++i) { - while ((conn = LIST_FIRST(&sep->se_conn[i])) != NULL) { + LIST_FOREACH_SAFE(conn, &sep->se_conn[i], co_link, conn_temp) { + if (conn == NULL) { + LIST_REMOVE(conn, co_link); + continue; + } for (j = 0; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); conn->co_numchild = 0; @@ -2554,7 +2557,8 @@ free_proc(struct procinfo *proc) static int hashval(char *p, int len) { - int i, hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; + int i; for (i = 0; i < len; ++i, ++p) hv = (hv << 5) ^ (hv >> 23) ^ *p; Modified: stable/12/usr.sbin/inetd/inetd.h ============================================================================== --- stable/12/usr.sbin/inetd/inetd.h Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/inetd.h Sun Jan 5 21:35:02 2020 (r356388) @@ -66,6 +66,11 @@ struct conninfo { #define PERIPSIZE 256 +struct stabchild { + LIST_ENTRY(stabchild) sc_link; + pid_t sc_pid; +}; + struct servtab { char *se_service; /* name of service */ int se_socktype; /* type of socket to use */ @@ -74,7 +79,6 @@ struct servtab { int se_maxchild; /* max number of children */ int se_maxcpm; /* max connects per IP per minute */ int se_numchild; /* current number of children */ - pid_t *se_pids; /* array of child pids */ char *se_user; /* user name to run as */ char *se_group; /* group name to run as */ #ifdef LOGIN_CAP @@ -119,10 +123,16 @@ struct servtab { } se_flags; int se_maxperip; /* max number of children per src */ LIST_HEAD(, conninfo) se_conn[PERIPSIZE]; + LIST_HEAD(, stabchild) se_children; }; #define se_nomapped se_flags.se_nomapped #define se_reset se_flags.se_reset + +#define SERVTAB_AT_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild == (sep)->se_maxchild) +#define SERVTAB_EXCEEDS_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild >= (sep)->se_maxchild) int check_loop(const struct sockaddr *, const struct servtab *sep); void inetd_setproctitle(const char *, int); From owner-svn-src-all@freebsd.org Sun Jan 5 22:25:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB2721E899C for ; Sun, 5 Jan 2020 22:25:03 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound2m.ore.mailhop.org (outbound2m.ore.mailhop.org [54.149.155.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47rY9W1W32z3M3D for ; Sun, 5 Jan 2020 22:25:02 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1578263102; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=cFB8RVHcNMF8gPCqL9FImqFErbkYx9YQvk4qbctJcAr+rn0KakrtBjY01i2HHBItJb4JMY7ffOz3A JhDCrW07q38W4h+S8wgCTFhXLAoC7fTiawPKsolYE6OXSfQdI+wESreZ78GHw0vp0P4BCRGF/VQiXO VNM6vkyNmztwLl4dXww9tuW4RbRfVKZIAoSAh7D7+JhG9z5kr4lCbnKmjUqrt9T3BupY5b2jSo7/Ee /OsP2OHIMPWiWgnpwbgV1qZyW8MSeHSJzloJZKYsbbVQaD5p/wJVaHx7MJcq41V2rtV5LhNk7B9f+f /Ahn1H5E7VyeWIA1ogLCRgiTtxNPKrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=3gLbnQtjOpvjVZ8unURx9ELPeqoACeQbC5hISBECe4g=; b=T+AgJpy2DILrEaO/Yx/Wi8Wg6TSKIXazJzSW+nYxK4WQRRNvNZyHtPYwbjvTY210RTyw2Yb/MX2Cy ffRk86JygOwxucxm1OzXCxC1ni+xr181lqY6ipdwlqsuoQS8CeTeYY7TRfiWWUaNN+IMuXLyFP/atm eIvuBMLLklDeZ2AkULBQNyNwtyeGBO/eRq7lwRy8r/6GxKUe+y+/F5mejh7ujFp2nlYkTTdRpknRMw yEent0PCL/GKAch7oSJQZl55nkLfD1cmjyd6FQKukJMoGv03wU96lHRjOT8Dh5CVcLlTQ/v8bVCFGX qU+4Z56fbMIYIiAiyvrKMeX2qpWPFPg== ARC-Authentication-Results: i=1; outbound4.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=3gLbnQtjOpvjVZ8unURx9ELPeqoACeQbC5hISBECe4g=; b=EQ/o8co+ioKRGPtgj8PQcEPWxvkz72VEBbtSmfbKV2FEEFsLWFzdMeyj81tz7zixOp++AbFE5ECod 9T2PQB5wuDWwBqTwcIj3+WWigfBWBdN886yofBe4GmGh+sgKHzGElGa8hWs2YKdWMrKyQExeO4nj7y TIzC9mkMVM6hfJrni8mhiH0wWUJBcPCVZEJ24TC9P9JPjOF0LGCstHcD7wv5AAq1NPBfiYog5km4+9 3DjZJiYTDdBSnjcRjjRBiHD5ahlP23CFXeuV4rcOm/aKXRgWL9MO8CVj/+SIKp4rioU+Em3NzNT1ws jl8DplH9ZTGQ8KZ3JVDQUrm1wg8R6ag== X-MHO-RoutePath: aGlwcGll X-MHO-User: 3572e957-300a-11ea-829f-79a40d15cccd X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound4.ore.mailhop.org (Halon) with ESMTPSA id 3572e957-300a-11ea-829f-79a40d15cccd; Sun, 05 Jan 2020 22:25:00 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 005MOw7n025702; Sun, 5 Jan 2020 15:24:58 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: Subject: Re: svn commit: r356379 - head/share/mk From: Ian Lepore To: Ed Maste , Yasuhiro KIMURA Cc: Warner Losh , svn-src-head , svn-src-all , src-committers Date: Sun, 05 Jan 2020 15:24:58 -0700 In-Reply-To: References: <202001051659.005GxOOa013759@repo.freebsd.org> <20200106.025257.202876441661893679.yasu@utahime.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47rY9W1W32z3M3D X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.97 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.98)[-0.980,0]; NEURAL_HAM_LONG(-0.99)[-0.994,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 22:25:04 -0000 On Sun, 2020-01-05 at 13:17 -0500, Ed Maste wrote: > On Sun, 5 Jan 2020 at 12:53, Yasuhiro KIMURA > wrote: > > > > Just out of curiosity, is there any retirement plan for binutils in > > base system at the moment? > > There's no specific plan, but it is an ongoing goal. Only three > binutils tools are used (for bootstrapping and in the installed > system): as, ld, and objdump. > > BINUTILS_BOOTSTRAP is enabled on x86, 32-bit arm, and powerpc. At > least both x86 archs still use GNU as for a few files; there's work > in > progress to migrate to Clang's IAS for all assembly files. I am not > sure if bootstrap as actually gets used on arm or powerpc. objdump is > also built, but not used on any arch. ld is built on powerpc and > still > being used there; it's not built on x86 or 32-bit arm. > I just set WITHOUT_BINUTILS_BOOTSTRAP in src.conf and did an arm32 crossbuild from amd64 after an rm -rf in $objdir, and both kernel and world built successfully. -- Ian > Making further progress depends on lld maturing (for powerpc) and > addressing the assembler issue. There's no commitment to removing > binutils for 13.0 but there is a reasonable probability we'll be able > to do so. From owner-svn-src-all@freebsd.org Sun Jan 5 22:54:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5D27E1E9248; Sun, 5 Jan 2020 22:54:26 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rYqQ1QDkz3NBx; Sun, 5 Jan 2020 22:54:26 +0000 (UTC) (envelope-from jeff@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2BA4C4EB5; Sun, 5 Jan 2020 22:54:26 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005MsQcL027910; Sun, 5 Jan 2020 22:54:26 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005MsQsH027909; Sun, 5 Jan 2020 22:54:26 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202001052254.005MsQsH027909@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 5 Jan 2020 22:54:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356389 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356389 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 22:54:26 -0000 Author: jeff Date: Sun Jan 5 22:54:25 2020 New Revision: 356389 URL: https://svnweb.freebsd.org/changeset/base/356389 Log: The fix in r356353 was insufficient. Not every architecture returns 0 for EARLY_COUNTER. Only amd64 seems to. Suggested by: markj Reported by: lwhsu Reviewed by: markj PR: 243117 Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sun Jan 5 21:35:02 2020 (r356388) +++ head/sys/vm/uma_core.c Sun Jan 5 22:54:25 2020 (r356389) @@ -4153,8 +4153,10 @@ uma_zone_get_cur(uma_zone_t zone) int64_t nitems; u_int i; - nitems = counter_u64_fetch(zone->uz_allocs) - - counter_u64_fetch(zone->uz_frees); + nitems = 0; + if (zone->uz_allocs != EARLY_COUNTER && zone->uz_frees != EARLY_COUNTER) + nitems = counter_u64_fetch(zone->uz_allocs) - + counter_u64_fetch(zone->uz_frees); CPU_FOREACH(i) nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs) - atomic_load_64(&zone->uz_cpu[i].uc_frees); @@ -4168,7 +4170,9 @@ uma_zone_get_allocs(uma_zone_t zone) uint64_t nitems; u_int i; - nitems = counter_u64_fetch(zone->uz_allocs); + nitems = 0; + if (zone->uz_allocs != EARLY_COUNTER) + nitems = counter_u64_fetch(zone->uz_allocs); CPU_FOREACH(i) nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs); @@ -4181,7 +4185,9 @@ uma_zone_get_frees(uma_zone_t zone) uint64_t nitems; u_int i; - nitems = counter_u64_fetch(zone->uz_frees); + nitems = 0; + if (zone->uz_frees != EARLY_COUNTER) + nitems = counter_u64_fetch(zone->uz_frees); CPU_FOREACH(i) nitems += atomic_load_64(&zone->uz_cpu[i].uc_frees); From owner-svn-src-all@freebsd.org Sun Jan 5 23:27:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8F25E1EA295; Sun, 5 Jan 2020 23:27:25 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47rZYT2F5lz3Q9g; Sun, 5 Jan 2020 23:27:24 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 005NRFKv078673; Sun, 5 Jan 2020 15:27:15 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 005NRFsk078672; Sun, 5 Jan 2020 15:27:15 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202001052327.005NRFsk078672@gndrsh.dnsmgr.net> Subject: Re: svn commit: r356367 - in head: . share/mk In-Reply-To: To: Ed Maste Date: Sun, 5 Jan 2020 15:27:15 -0800 (PST) CC: Mark Linimon , src-committers , svn-src-all , svn-src-head Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 47rZYT2F5lz3Q9g X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 23:27:25 -0000 [ Charset UTF-8 unsupported, converting... ] > On Sat, 4 Jan 2020 at 21:57, Mark Linimon wrote: > > > > On Sun, Jan 05, 2020 at 02:47:56AM +0000, Ed Maste wrote: > > > Do not build GCC 4.2.1 by default for any CPU architecture > > > > And there was much rejoicing :-) > > > > (but plz not to MFC tnx) > > Indeed, I should have tagged it with: > > Relnotes: YES You can still add a entry to RELNOTES. > MFC after: never -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Mon Jan 6 01:12:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E5A11EC945; Mon, 6 Jan 2020 01:12:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rctS2pqtz40xm; Mon, 6 Jan 2020 01:12:16 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4354C6918; Mon, 6 Jan 2020 01:12:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0061CGmP010443; Mon, 6 Jan 2020 01:12:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0061CGnb010442; Mon, 6 Jan 2020 01:12:16 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001060112.0061CGnb010442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 6 Jan 2020 01:12:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356390 - stable/12/sys/cam X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/cam X-SVN-Commit-Revision: 356390 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 01:12:16 -0000 Author: mav Date: Mon Jan 6 01:12:15 2020 New Revision: 356390 URL: https://svnweb.freebsd.org/changeset/base/356390 Log: MFC r356042: Make pass(4) handle misaligned buffers of MAXPHYS size. Since we are already using malloc()+copyin()/copyout() for smaller data blocks, and since new asynchronous API does it always, I see no reason to keep this ugly artificial size/alignment limitation in old API. Tape applications suffer enough from the MAXPHYS limitations by itself, and additional alignment requirement, often halving effectively usable block size, does not help. It would be good to use unmapped I/O here instead, but it require some HBA drivers polishing first to support non-BIO unmapped buffers. Modified: stable/12/sys/cam/cam_periph.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cam/cam_periph.c ============================================================================== --- stable/12/sys/cam/cam_periph.c Sun Jan 5 22:54:25 2020 (r356389) +++ stable/12/sys/cam/cam_periph.c Mon Jan 6 01:12:15 2020 (r356390) @@ -786,6 +786,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma u_int8_t **data_ptrs[CAM_PERIPH_MAXMAPS]; u_int32_t lengths[CAM_PERIPH_MAXMAPS]; u_int32_t dirs[CAM_PERIPH_MAXMAPS]; + bool misaligned[CAM_PERIPH_MAXMAPS]; bzero(mapinfo, sizeof(*mapinfo)); if (maxmap == 0) @@ -897,6 +898,12 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * have to unmap any previously mapped buffers. */ for (i = 0; i < numbufs; i++) { + if (lengths[i] > maxmap) { + printf("cam_periph_mapmem: attempt to map %lu bytes, " + "which is greater than %lu\n", + (long)(lengths[i]), (u_long)maxmap); + return (E2BIG); + } /* * The userland data pointer passed in may not be page @@ -906,15 +913,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * whatever extra space is necessary to make it to the page * boundary. */ - if ((lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)) > maxmap){ - printf("cam_periph_mapmem: attempt to map %lu bytes, " - "which is greater than %lu\n", - (long)(lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)), - (u_long)maxmap); - return(E2BIG); - } + misaligned[i] = (lengths[i] + + (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK) > MAXPHYS); } /* @@ -938,7 +938,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * small allocations malloc is backed by UMA, and so much * cheaper on SMP systems. */ - if (lengths[i] <= periph_mapmem_thresh && + if ((lengths[i] <= periph_mapmem_thresh || misaligned[i]) && ccb->ccb_h.func_code != XPT_MMC_IO) { *data_ptrs[i] = malloc(lengths[i], M_CAMPERIPH, M_WAITOK); From owner-svn-src-all@freebsd.org Mon Jan 6 01:15:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5F08F1ECA53; Mon, 6 Jan 2020 01:15:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rcyJ1q0Zz415v; Mon, 6 Jan 2020 01:15:36 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 20B856932; Mon, 6 Jan 2020 01:15:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0061FaW0011777; Mon, 6 Jan 2020 01:15:36 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0061Fasi011776; Mon, 6 Jan 2020 01:15:36 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001060115.0061Fasi011776@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 6 Jan 2020 01:15:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356391 - stable/11/sys/cam X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/cam X-SVN-Commit-Revision: 356391 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 01:15:36 -0000 Author: mav Date: Mon Jan 6 01:15:35 2020 New Revision: 356391 URL: https://svnweb.freebsd.org/changeset/base/356391 Log: MFC r356042: Make pass(4) handle misaligned buffers of MAXPHYS size. Since we are already using malloc()+copyin()/copyout() for smaller data blocks, and since new asynchronous API does it always, I see no reason to keep this ugly artificial size/alignment limitation in old API. Tape applications suffer enough from the MAXPHYS limitations by itself, and additional alignment requirement, often halving effectively usable block size, does not help. It would be good to use unmapped I/O here instead, but it require some HBA drivers polishing first to support non-BIO unmapped buffers. Modified: stable/11/sys/cam/cam_periph.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cam/cam_periph.c ============================================================================== --- stable/11/sys/cam/cam_periph.c Mon Jan 6 01:12:15 2020 (r356390) +++ stable/11/sys/cam/cam_periph.c Mon Jan 6 01:15:35 2020 (r356391) @@ -770,6 +770,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma u_int8_t **data_ptrs[CAM_PERIPH_MAXMAPS]; u_int32_t lengths[CAM_PERIPH_MAXMAPS]; u_int32_t dirs[CAM_PERIPH_MAXMAPS]; + bool misaligned[CAM_PERIPH_MAXMAPS]; bzero(mapinfo, sizeof(*mapinfo)); if (maxmap == 0) @@ -869,6 +870,12 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * have to unmap any previously mapped buffers. */ for (i = 0; i < numbufs; i++) { + if (lengths[i] > maxmap) { + printf("cam_periph_mapmem: attempt to map %lu bytes, " + "which is greater than %lu\n", + (long)(lengths[i]), (u_long)maxmap); + return (E2BIG); + } /* * The userland data pointer passed in may not be page @@ -878,15 +885,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * whatever extra space is necessary to make it to the page * boundary. */ - if ((lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)) > maxmap){ - printf("cam_periph_mapmem: attempt to map %lu bytes, " - "which is greater than %lu\n", - (long)(lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)), - (u_long)maxmap); - return(E2BIG); - } + misaligned[i] = (lengths[i] + + (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK) > MAXPHYS); } /* @@ -910,7 +910,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * small allocations malloc is backed by UMA, and so much * cheaper on SMP systems. */ - if (lengths[i] <= periph_mapmem_thresh) { + if (lengths[i] <= periph_mapmem_thresh || misaligned[i]) { *data_ptrs[i] = malloc(lengths[i], M_CAMPERIPH, M_WAITOK); if (dirs[i] != CAM_DIR_IN) { From owner-svn-src-all@freebsd.org Mon Jan 6 01:51:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B5AB41ED5BC; Mon, 6 Jan 2020 01:51:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rdlb4M3Cz42ty; Mon, 6 Jan 2020 01:51:23 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 90D386F2C; Mon, 6 Jan 2020 01:51:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0061pN6X034207; Mon, 6 Jan 2020 01:51:23 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0061pNNB034206; Mon, 6 Jan 2020 01:51:23 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001060151.0061pNNB034206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 6 Jan 2020 01:51:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356392 - head/sbin/nvmecontrol X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sbin/nvmecontrol X-SVN-Commit-Revision: 356392 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 01:51:23 -0000 Author: mav Date: Mon Jan 6 01:51:23 2020 New Revision: 356392 URL: https://svnweb.freebsd.org/changeset/base/356392 Log: Fix host memory buffer sizes reporting. Hardware reports values in 4KB units, not in bytes. MFC after: 3 days Modified: head/sbin/nvmecontrol/identify_ext.c Modified: head/sbin/nvmecontrol/identify_ext.c ============================================================================== --- head/sbin/nvmecontrol/identify_ext.c Mon Jan 6 01:15:35 2020 (r356391) +++ head/sbin/nvmecontrol/identify_ext.c Mon Jan 6 01:51:23 2020 (r356392) @@ -192,8 +192,10 @@ nvme_print_controller(struct nvme_controller_data *cda uint128_to_str(to128(cdata->untncap.unvmcap), cbuf, sizeof(cbuf))); } - printf("Host Buffer Preferred Size: %d bytes\n", cdata->hmpre); - printf("Host Buffer Minimum Size: %d bytes\n", cdata->hmmin); + printf("Host Buffer Preferred Size: %llu bytes\n", + (long long unsigned)cdata->hmpre * 4096); + printf("Host Buffer Minimum Size: %llu bytes\n", + (long long unsigned)cdata->hmmin * 4096); printf("\n"); printf("NVM Command Set Attributes\n"); From owner-svn-src-all@freebsd.org Mon Jan 6 02:51:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A9931EE7BC; Mon, 6 Jan 2020 02:51:20 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rg4m3cgPz452G; Mon, 6 Jan 2020 02:51:20 +0000 (UTC) (envelope-from jeff@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5EAD079F3; Mon, 6 Jan 2020 02:51:20 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0062pKPb067927; Mon, 6 Jan 2020 02:51:20 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0062pJe9067924; Mon, 6 Jan 2020 02:51:19 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202001060251.0062pJe9067924@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 6 Jan 2020 02:51:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356393 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356393 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 02:51:20 -0000 Author: jeff Date: Mon Jan 6 02:51:19 2020 New Revision: 356393 URL: https://svnweb.freebsd.org/changeset/base/356393 Log: Fix uma boot pages calculations on NUMA machines that also don't have MD_UMA_SMALL_ALLOC. This is unusual but not impossible. Fix the alignemnt of zones while here. This was already correct because uz_cpu strongly aligned the zone structure but the specified alignment did not match reality and involved redundant defines. Reviewed by: markj, rlibby Differential Revision: https://reviews.freebsd.org/D23046 Modified: head/sys/vm/uma_core.c head/sys/vm/uma_int.h head/sys/vm/vm_page.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Mon Jan 6 01:51:23 2020 (r356392) +++ head/sys/vm/uma_core.c Mon Jan 6 02:51:19 2020 (r356393) @@ -2508,27 +2508,28 @@ zone_foreach(void (*zfunc)(uma_zone_t, void *arg), voi * zone of zones and zone of kegs are accounted separately. */ #define UMA_BOOT_ZONES 11 -/* Zone of zones and zone of kegs have arbitrary alignment. */ -#define UMA_BOOT_ALIGN 32 static int zsize, ksize; int uma_startup_count(int vm_zones) { int zones, pages; + u_int zppera, zipers; + u_int kppera, kipers; size_t space, size; ksize = sizeof(struct uma_keg) + (sizeof(struct uma_domain) * vm_ndomains); + ksize = roundup(ksize, UMA_SUPER_ALIGN); zsize = sizeof(struct uma_zone) + (sizeof(struct uma_cache) * (mp_maxid + 1)) + (sizeof(struct uma_zone_domain) * vm_ndomains); + zsize = roundup(zsize, UMA_SUPER_ALIGN); /* - * Memory for the zone of kegs and its keg, - * and for zone of zones. + * Memory for the zone of kegs and its keg, and for zone + * of zones. Allocated directly in uma_startup(). */ - pages = howmany(roundup(zsize, CACHE_LINE_SIZE) * 2 + - roundup(ksize, CACHE_LINE_SIZE), PAGE_SIZE); + pages = howmany(zsize * 2 + ksize, PAGE_SIZE); #ifdef UMA_MD_SMALL_ALLOC zones = UMA_BOOT_ZONES; @@ -2542,23 +2543,33 @@ uma_startup_count(int vm_zones) /* Memory for the rest of startup zones, UMA and VM, ... */ if (zsize > space) { /* See keg_large_init(). */ - u_int ppera; + zppera = howmany(zsize + slab_sizeof(1), PAGE_SIZE); + zipers = 1; + zones += vm_zones; + } else { + zppera = 1; + zipers = space / zsize; + } + pages += howmany(zones, zipers) * zppera; - ppera = howmany(roundup2(zsize, UMA_BOOT_ALIGN), PAGE_SIZE); - if (PAGE_SIZE * ppera - roundup2(zsize, UMA_BOOT_ALIGN) < size) - ppera++; - pages += (zones + vm_zones) * ppera; - } else if (roundup2(zsize, UMA_BOOT_ALIGN) > space) - /* See keg_small_init() special case for uk_ppera = 1. */ - pages += zones; - else - pages += howmany(zones, - space / roundup2(zsize, UMA_BOOT_ALIGN)); - /* ... and their kegs. Note that zone of zones allocates a keg! */ - pages += howmany(zones + 1, - space / roundup2(ksize, UMA_BOOT_ALIGN)); + if (ksize > space) { + /* See keg_large_init(). */ + kppera = howmany(ksize + slab_sizeof(1), PAGE_SIZE); + kipers = 1; + } else { + kppera = 1; + kipers = space / ksize; + } + pages += howmany(zones + 1, kipers) * kppera; + /* + * Allocate an additional slab for zones and kegs on NUMA + * systems. The round-robin allocation policy will populate at + * least one slab per-domain. + */ + pages += (vm_ndomains - 1) * (zppera + kppera); + return (pages); } @@ -2578,11 +2589,11 @@ uma_startup(void *mem, int npages) /* Use bootpages memory for the zone of zones and zone of kegs. */ m = (uintptr_t)mem; zones = (uma_zone_t)m; - m += roundup(zsize, CACHE_LINE_SIZE); + m += zsize; kegs = (uma_zone_t)m; - m += roundup(zsize, CACHE_LINE_SIZE); + m += zsize; masterkeg = (uma_keg_t)m; - m += roundup(ksize, CACHE_LINE_SIZE); + m += ksize; m = roundup(m, PAGE_SIZE); npages -= (m - (uintptr_t)mem) / PAGE_SIZE; mem = (void *)m; @@ -2596,7 +2607,7 @@ uma_startup(void *mem, int npages) args.uminit = zero_init; args.fini = NULL; args.keg = masterkeg; - args.align = UMA_BOOT_ALIGN - 1; + args.align = UMA_SUPER_ALIGN - 1; args.flags = UMA_ZFLAG_INTERNAL; zone_ctor(kegs, zsize, &args, M_WAITOK); @@ -2610,7 +2621,7 @@ uma_startup(void *mem, int npages) args.uminit = zero_init; args.fini = NULL; args.keg = NULL; - args.align = UMA_BOOT_ALIGN - 1; + args.align = UMA_SUPER_ALIGN - 1; args.flags = UMA_ZFLAG_INTERNAL; zone_ctor(zones, zsize, &args, M_WAITOK); @@ -4295,10 +4306,7 @@ uma_zone_reserve_kva(uma_zone_t zone, int count) KEG_ASSERT_COLD(keg); ZONE_ASSERT_COLD(zone); - pages = count / keg->uk_ipers; - if (pages * keg->uk_ipers < count) - pages++; - pages *= keg->uk_ppera; + pages = howmany(count, keg->uk_ipers) * keg->uk_ppera; #ifdef UMA_MD_SMALL_ALLOC if (keg->uk_ppera > 1) { @@ -4340,9 +4348,7 @@ uma_prealloc(uma_zone_t zone, int items) int aflags, domain, slabs; KEG_GET(zone, keg); - slabs = items / keg->uk_ipers; - if (slabs * keg->uk_ipers < items) - slabs++; + slabs = howmany(items, keg->uk_ipers); while (slabs-- > 0) { aflags = M_NOWAIT; vm_domainset_iter_policy_ref_init(&di, &keg->uk_dr, &domain, Modified: head/sys/vm/uma_int.h ============================================================================== --- head/sys/vm/uma_int.h Mon Jan 6 01:51:23 2020 (r356392) +++ head/sys/vm/uma_int.h Mon Jan 6 02:51:19 2020 (r356393) @@ -166,14 +166,17 @@ struct uma_hash { }; /* - * align field or structure to cache line + * Align field or structure to cache 'sector' in intel terminology. This + * is more efficient with adjacent line prefetch. */ #if defined(__amd64__) || defined(__powerpc64__) -#define UMA_ALIGN __aligned(128) +#define UMA_SUPER_ALIGN (CACHE_LINE_SIZE * 2) #else -#define UMA_ALIGN __aligned(CACHE_LINE_SIZE) +#define UMA_SUPER_ALIGN CACHE_LINE_SIZE #endif +#define UMA_ALIGN __aligned(UMA_SUPER_ALIGN) + /* * The uma_bucket structure is used to queue and manage buckets divorced * from per-cpu caches. They are loaded into uma_cache_bucket structures @@ -532,7 +535,7 @@ struct uma_zone { KASSERT(uma_zone_get_allocs((z)) == 0, \ ("zone %s initialization after use.", (z)->uz_name)) -#undef UMA_ALIGN +#undef UMA_ALIGN #ifdef _KERNEL /* Internal prototypes */ Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Mon Jan 6 01:51:23 2020 (r356392) +++ head/sys/vm/vm_page.c Mon Jan 6 02:51:19 2020 (r356393) @@ -613,10 +613,17 @@ vm_page_startup(vm_offset_t vaddr) slab_ipers(sizeof(struct vm_map), UMA_ALIGN_PTR)); /* - * Before going fully functional kmem_init() does allocation - * from "KMAP ENTRY" and vmem_create() does allocation from "vmem". + * Before we are fully boot strapped we need to account for the + * following allocations: + * + * "KMAP ENTRY" from kmem_init() + * "vmem btag" from vmem_startup() + * "vmem" from vmem_create() + * "KMAP" from vm_map_startup() + * + * Each needs at least one page per-domain. */ - boot_pages += 2; + boot_pages += 4 * vm_ndomains; #endif /* * CTFLAG_RDTUN doesn't work during the early boot process, so we must From owner-svn-src-all@freebsd.org Mon Jan 6 09:07:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BAC791FDDB9; Mon, 6 Jan 2020 09:07:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqRL4WVTz4QMt; Mon, 6 Jan 2020 09:07:58 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96339C032; Mon, 6 Jan 2020 09:07:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00697wFU095120; Mon, 6 Jan 2020 09:07:58 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00697vpF095114; Mon, 6 Jan 2020 09:07:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060907.00697vpF095114@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:07:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356394 - in stable/12/sys: dev/usb sys X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys: dev/usb sys X-SVN-Commit-Revision: 356394 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:07:58 -0000 Author: hselasky Date: Mon Jan 6 09:07:57 2020 New Revision: 356394 URL: https://svnweb.freebsd.org/changeset/base/356394 Log: MFC r356135: Make USB statistics per device instead of per bus. Bump the FreeBSD version due to structure change to force recompilation of external USB modules. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/usb_bus.h stable/12/sys/dev/usb/usb_device.h stable/12/sys/dev/usb/usb_generic.c stable/12/sys/dev/usb/usb_transfer.c stable/12/sys/sys/param.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/usb_bus.h ============================================================================== --- stable/12/sys/dev/usb/usb_bus.h Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_bus.h Mon Jan 6 09:07:57 2020 (r356394) @@ -2,7 +2,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -42,19 +42,10 @@ struct usb_bus_msg { }; /* - * The following structure defines the USB statistics structure. - */ -struct usb_bus_stat { - uint32_t uds_requests[4]; -}; - -/* * The following structure defines an USB BUS. There is one USB BUS * for every Host or Device controller. */ struct usb_bus { - struct usb_bus_stat stats_err; - struct usb_bus_stat stats_ok; #if USB_HAVE_ROOT_MOUNT_HOLD struct root_hold_token *bus_roothold; #endif Modified: stable/12/sys/dev/usb/usb_device.h ============================================================================== --- stable/12/sys/dev/usb/usb_device.h Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_device.h Mon Jan 6 09:07:57 2020 (r356394) @@ -2,7 +2,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -177,10 +177,21 @@ union usb_device_scratch { }; /* + * Helper structure to keep track of USB device statistics. + */ +struct usb_device_statistics { + uint32_t uds_requests[4]; +}; + +/* * The following structure defines an USB device. There exists one of * these structures for every USB device. */ struct usb_device { + /* statistics */ + struct usb_device_statistics stats_err; + struct usb_device_statistics stats_ok; + /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; struct sx enum_sx; Modified: stable/12/sys/dev/usb/usb_generic.c ============================================================================== --- stable/12/sys/dev/usb/usb_generic.c Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_generic.c Mon Jan 6 09:07:57 2020 (r356394) @@ -2223,10 +2223,9 @@ ugen_ioctl_post(struct usb_fifo *f, u_long cmd, void * for (n = 0; n != 4; n++) { u.stat->uds_requests_fail[n] = - f->udev->bus->stats_err.uds_requests[n]; - + f->udev->stats_err.uds_requests[n]; u.stat->uds_requests_ok[n] = - f->udev->bus->stats_ok.uds_requests[n]; + f->udev->stats_ok.uds_requests[n]; } break; Modified: stable/12/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/12/sys/dev/usb/usb_transfer.c Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_transfer.c Mon Jan 6 09:07:57 2020 (r356394) @@ -2594,10 +2594,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t #endif /* keep some statistics */ if (xfer->error) { - info->bus->stats_err.uds_requests + info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { - info->bus->stats_ok.uds_requests + info->udev->stats_ok.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } Modified: stable/12/sys/sys/param.h ============================================================================== --- stable/12/sys/sys/param.h Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/sys/param.h Mon Jan 6 09:07:57 2020 (r356394) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1201507 /* Master, propagated to newvers */ +#define __FreeBSD_version 1201508 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Jan 6 09:10:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 433AF1FDED3; Mon, 6 Jan 2020 09:10:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqTz14nvz4QbK; Mon, 6 Jan 2020 09:10:15 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2032CC037; Mon, 6 Jan 2020 09:10:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069AEvG095490; Mon, 6 Jan 2020 09:10:14 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069AERf095485; Mon, 6 Jan 2020 09:10:14 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060910.0069AERf095485@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:10:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356395 - in stable/11/sys: dev/usb sys X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: dev/usb sys X-SVN-Commit-Revision: 356395 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:10:15 -0000 Author: hselasky Date: Mon Jan 6 09:10:13 2020 New Revision: 356395 URL: https://svnweb.freebsd.org/changeset/base/356395 Log: MFC r356135: Make USB statistics per device instead of per bus. Bump the FreeBSD version due to structure change to force recompilation of external USB modules. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/usb_bus.h stable/11/sys/dev/usb/usb_device.h stable/11/sys/dev/usb/usb_generic.c stable/11/sys/dev/usb/usb_transfer.c stable/11/sys/sys/param.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/usb_bus.h ============================================================================== --- stable/11/sys/dev/usb/usb_bus.h Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_bus.h Mon Jan 6 09:10:13 2020 (r356395) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,19 +40,10 @@ struct usb_bus_msg { }; /* - * The following structure defines the USB statistics structure. - */ -struct usb_bus_stat { - uint32_t uds_requests[4]; -}; - -/* * The following structure defines an USB BUS. There is one USB BUS * for every Host or Device controller. */ struct usb_bus { - struct usb_bus_stat stats_err; - struct usb_bus_stat stats_ok; #if USB_HAVE_ROOT_MOUNT_HOLD struct root_hold_token *bus_roothold; #endif Modified: stable/11/sys/dev/usb/usb_device.h ============================================================================== --- stable/11/sys/dev/usb/usb_device.h Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_device.h Mon Jan 6 09:10:13 2020 (r356395) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -175,10 +175,21 @@ union usb_device_scratch { }; /* + * Helper structure to keep track of USB device statistics. + */ +struct usb_device_statistics { + uint32_t uds_requests[4]; +}; + +/* * The following structure defines an USB device. There exists one of * these structures for every USB device. */ struct usb_device { + /* statistics */ + struct usb_device_statistics stats_err; + struct usb_device_statistics stats_ok; + /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; struct sx enum_sx; Modified: stable/11/sys/dev/usb/usb_generic.c ============================================================================== --- stable/11/sys/dev/usb/usb_generic.c Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_generic.c Mon Jan 6 09:10:13 2020 (r356395) @@ -2221,10 +2221,9 @@ ugen_ioctl_post(struct usb_fifo *f, u_long cmd, void * for (n = 0; n != 4; n++) { u.stat->uds_requests_fail[n] = - f->udev->bus->stats_err.uds_requests[n]; - + f->udev->stats_err.uds_requests[n]; u.stat->uds_requests_ok[n] = - f->udev->bus->stats_ok.uds_requests[n]; + f->udev->stats_ok.uds_requests[n]; } break; Modified: stable/11/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/11/sys/dev/usb/usb_transfer.c Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_transfer.c Mon Jan 6 09:10:13 2020 (r356395) @@ -2593,10 +2593,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t #endif /* keep some statistics */ if (xfer->error) { - info->bus->stats_err.uds_requests + info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { - info->bus->stats_ok.uds_requests + info->udev->stats_ok.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } Modified: stable/11/sys/sys/param.h ============================================================================== --- stable/11/sys/sys/param.h Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/sys/param.h Mon Jan 6 09:10:13 2020 (r356395) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1103505 /* Master, propagated to newvers */ +#define __FreeBSD_version 1103506 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Jan 6 09:16:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D32701FE0F6; Mon, 6 Jan 2020 09:16:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqdQ5Gfkz4R3n; Mon, 6 Jan 2020 09:16:42 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AFEC0C227; Mon, 6 Jan 2020 09:16:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069GgqK001128; Mon, 6 Jan 2020 09:16:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069Gf04001124; Mon, 6 Jan 2020 09:16:41 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060916.0069Gf04001124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:16:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356396 - in stable/10/sys: dev/usb sys X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/10/sys: dev/usb sys X-SVN-Commit-Revision: 356396 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:16:42 -0000 Author: hselasky Date: Mon Jan 6 09:16:41 2020 New Revision: 356396 URL: https://svnweb.freebsd.org/changeset/base/356396 Log: MFC r356135: Make USB statistics per device instead of per bus. Bump the FreeBSD version due to structure change to force recompilation of external USB modules. Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/usb_bus.h stable/10/sys/dev/usb/usb_device.h stable/10/sys/dev/usb/usb_generic.c stable/10/sys/dev/usb/usb_transfer.c stable/10/sys/sys/param.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/usb_bus.h ============================================================================== --- stable/10/sys/dev/usb/usb_bus.h Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_bus.h Mon Jan 6 09:16:41 2020 (r356396) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,19 +40,10 @@ struct usb_bus_msg { }; /* - * The following structure defines the USB statistics structure. - */ -struct usb_bus_stat { - uint32_t uds_requests[4]; -}; - -/* * The following structure defines an USB BUS. There is one USB BUS * for every Host or Device controller. */ struct usb_bus { - struct usb_bus_stat stats_err; - struct usb_bus_stat stats_ok; #if USB_HAVE_ROOT_MOUNT_HOLD struct root_hold_token *bus_roothold; #endif Modified: stable/10/sys/dev/usb/usb_device.h ============================================================================== --- stable/10/sys/dev/usb/usb_device.h Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_device.h Mon Jan 6 09:16:41 2020 (r356396) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -175,10 +175,21 @@ union usb_device_scratch { }; /* + * Helper structure to keep track of USB device statistics. + */ +struct usb_device_statistics { + uint32_t uds_requests[4]; +}; + +/* * The following structure defines an USB device. There exists one of * these structures for every USB device. */ struct usb_device { + /* statistics */ + struct usb_device_statistics stats_err; + struct usb_device_statistics stats_ok; + /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; struct sx enum_sx; Modified: stable/10/sys/dev/usb/usb_generic.c ============================================================================== --- stable/10/sys/dev/usb/usb_generic.c Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_generic.c Mon Jan 6 09:16:41 2020 (r356396) @@ -2222,10 +2222,9 @@ ugen_ioctl_post(struct usb_fifo *f, u_long cmd, void * for (n = 0; n != 4; n++) { u.stat->uds_requests_fail[n] = - f->udev->bus->stats_err.uds_requests[n]; - + f->udev->stats_err.uds_requests[n]; u.stat->uds_requests_ok[n] = - f->udev->bus->stats_ok.uds_requests[n]; + f->udev->stats_ok.uds_requests[n]; } break; Modified: stable/10/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/10/sys/dev/usb/usb_transfer.c Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_transfer.c Mon Jan 6 09:16:41 2020 (r356396) @@ -2593,10 +2593,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t #endif /* keep some statistics */ if (xfer->error) { - info->bus->stats_err.uds_requests + info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { - info->bus->stats_ok.uds_requests + info->udev->stats_ok.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } Modified: stable/10/sys/sys/param.h ============================================================================== --- stable/10/sys/sys/param.h Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/sys/param.h Mon Jan 6 09:16:41 2020 (r356396) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1004501 /* Master, propagated to newvers */ +#define __FreeBSD_version 1004502 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Jan 6 09:20:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9B58A1FE1F6; Mon, 6 Jan 2020 09:20:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqjL3fsQz4RKS; Mon, 6 Jan 2020 09:20:06 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6038EC240; Mon, 6 Jan 2020 09:20:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069K6KB001382; Mon, 6 Jan 2020 09:20:06 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069K5PH001376; Mon, 6 Jan 2020 09:20:05 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060920.0069K5PH001376@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:20:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356397 - stable/12/lib/libusb X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/lib/libusb X-SVN-Commit-Revision: 356397 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:20:06 -0000 Author: hselasky Date: Mon Jan 6 09:20:04 2020 New Revision: 356397 URL: https://svnweb.freebsd.org/changeset/base/356397 Log: MFC r356136: Implement new libusb v2.0 API function, libusb20_dev_get_stats(). This function is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/12/lib/libusb/Makefile stable/12/lib/libusb/libusb20.3 stable/12/lib/libusb/libusb20.c stable/12/lib/libusb/libusb20.h stable/12/lib/libusb/libusb20_int.h stable/12/lib/libusb/libusb20_ugen20.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libusb/Makefile ============================================================================== --- stable/12/lib/libusb/Makefile Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/Makefile Mon Jan 6 09:20:04 2020 (r356397) @@ -220,6 +220,7 @@ MLINKS += libusb20.3 libusb20_dev_get_backend_name.3 MLINKS += libusb20.3 libusb20_dev_get_info.3 MLINKS += libusb20.3 libusb20_dev_get_iface_desc.3 MLINKS += libusb20.3 libusb20_dev_get_desc.3 +MLINKS += libusb20.3 libusb20_dev_get_stats.3 MLINKS += libusb20.3 libusb20_dev_close.3 MLINKS += libusb20.3 libusb20_dev_detach_kernel_driver.3 MLINKS += libusb20.3 libusb20_dev_set_config_index.3 Modified: stable/12/lib/libusb/libusb20.3 ============================================================================== --- stable/12/lib/libusb/libusb20.3 Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20.3 Mon Jan 6 09:20:04 2020 (r356397) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2008 Hans Petter Selasky +.\" Copyright (c) 2008-2019 Hans Petter Selasky .\" .\" All rights reserved. .\" @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 3, 2013 +.Dd December 27, 2019 .Dt LIBUSB20 3 .Os .Sh NAME @@ -122,6 +122,8 @@ USB access library (libusb -lusb) .Ft const char * .Fn libusb20_dev_get_desc "struct libusb20_device *pdev" .Ft int +.Fn libusb20_dev_get_stats "struct libusb20_device *pdev" "struct libusb20_device_stats *pstats" +.Ft int .Fn libusb20_dev_close "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_detach_kernel_driver "struct libusb20_device *pdev" "uint8_t iface_index" @@ -594,6 +596,14 @@ This function returns zero on success else a LIBUSB20_ .Fn libusb20_dev_get_desc returns a zero terminated string describing the given USB device. The format of the string is: "drivername: " +. +.Pp +. +.Fn libusb20_dev_get_stats +retrieves the device statistics into the structure pointed to by the +.Fa pstats +argument. +This function returns zero on success else a LIBUSB20_ERROR value is returned. . .Pp . Modified: stable/12/lib/libusb/libusb20.c ============================================================================== --- stable/12/lib/libusb/libusb20.c Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20.c Mon Jan 6 09:20:04 2020 (r356397) @@ -78,6 +78,7 @@ dummy_callback(struct libusb20_transfer *xfer) #define dummy_set_power_mode (void *)dummy_int #define dummy_get_power_mode (void *)dummy_int #define dummy_get_power_usage (void *)dummy_int +#define dummy_get_stats (void *)dummy_int #define dummy_kernel_driver_active (void *)dummy_int #define dummy_detach_kernel_driver (void *)dummy_int #define dummy_do_request_sync (void *)dummy_int @@ -1047,6 +1048,31 @@ uint8_t libusb20_dev_get_speed(struct libusb20_device *pdev) { return (pdev->usb_speed); +} + +int +libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + uint8_t do_close; + int error; + + if (!pdev->is_opened) { + error = libusb20_dev_open(pdev, 0); + if (error == 0) { + do_close = 1; + } else { + do_close = 0; + } + } else { + do_close = 0; + } + + error = pdev->methods->get_stats(pdev, pstats); + + if (do_close) + (void) libusb20_dev_close(pdev); + + return (error); } /* if this function returns an error, the device is gone */ Modified: stable/12/lib/libusb/libusb20.h ============================================================================== --- stable/12/lib/libusb/libusb20.h Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20.h Mon Jan 6 09:20:04 2020 (r356397) @@ -195,6 +195,12 @@ struct libusb20_quirk { char quirkname[64 - 12]; }; +struct libusb20_device_stats { + uint64_t xfer_ok[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_fail[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_reserved[24]; /* reserved */ +}; + #define LIBUSB20_MAX_FRAME_PRE_SCALE (1U << 31) /* USB transfer operations */ @@ -243,6 +249,7 @@ int libusb20_dev_detach_kernel_driver(struct libusb20_ int libusb20_dev_set_config_index(struct libusb20_device *pdev, uint8_t configIndex); int libusb20_dev_get_debug(struct libusb20_device *pdev); int libusb20_dev_get_fd(struct libusb20_device *pdev); +int libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstat); int libusb20_dev_kernel_driver_active(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_open(struct libusb20_device *pdev, uint16_t transfer_max); int libusb20_dev_process(struct libusb20_device *pdev); Modified: stable/12/lib/libusb/libusb20_int.h ============================================================================== --- stable/12/lib/libusb/libusb20_int.h Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20_int.h Mon Jan 6 09:20:04 2020 (r356397) @@ -108,10 +108,12 @@ typedef int (libusb20_reset_device_t)(struct libusb20_ typedef int (libusb20_set_power_mode_t)(struct libusb20_device *pdev, uint8_t power_mode); typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode); typedef int (libusb20_get_power_usage_t)(struct libusb20_device *pdev, uint16_t *power_usage); +typedef int (libusb20_get_stats_t)(struct libusb20_device *pdev, struct libusb20_device_stats *pstats); typedef int (libusb20_set_alt_index_t)(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index); typedef int (libusb20_set_config_index_t)(struct libusb20_device *pdev, uint8_t index); typedef int (libusb20_check_connected_t)(struct libusb20_device *pdev); + /* USB transfer specific */ typedef int (libusb20_tr_open_t)(struct libusb20_transfer *xfer, uint32_t MaxBufSize, uint32_t MaxFrameCount, uint8_t ep_no, uint16_t stream_id, uint8_t pre_scale); typedef int (libusb20_tr_close_t)(struct libusb20_transfer *xfer); @@ -131,6 +133,7 @@ typedef void (libusb20_tr_cancel_async_t)(struct libus m(n, set_power_mode) \ m(n, get_power_mode) \ m(n, get_power_usage) \ + m(n, get_stats) \ m(n, set_alt_index) \ m(n, set_config_index) \ m(n, tr_cancel_async) \ Modified: stable/12/lib/libusb/libusb20_ugen20.c ============================================================================== --- stable/12/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:20:04 2020 (r356397) @@ -80,6 +80,7 @@ static libusb20_check_connected_t ugen20_check_connect static libusb20_set_power_mode_t ugen20_set_power_mode; static libusb20_get_power_mode_t ugen20_get_power_mode; static libusb20_get_power_usage_t ugen20_get_power_usage; +static libusb20_get_stats_t ugen20_get_stats; static libusb20_kernel_driver_active_t ugen20_kernel_driver_active; static libusb20_detach_kernel_driver_t ugen20_detach_kernel_driver; static libusb20_do_request_sync_t ugen20_do_request_sync; @@ -666,6 +667,29 @@ ugen20_get_power_usage(struct libusb20_device *pdev, u return (LIBUSB20_ERROR_OTHER); } *power_usage = temp; + return (0); /* success */ +} + +static int +ugen20_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + struct usb_device_stats st; + + if (ioctl(pdev->file_ctrl, IOUSB(USB_DEVICESTATS), &st)) + return (LIBUSB20_ERROR_OTHER); + + memset(pstats, 0, sizeof(*pstats)); + + pstats->xfer_ok[0] = st.uds_requests_ok[0]; + pstats->xfer_ok[1] = st.uds_requests_ok[1]; + pstats->xfer_ok[2] = st.uds_requests_ok[2]; + pstats->xfer_ok[3] = st.uds_requests_ok[3]; + + pstats->xfer_fail[0] = st.uds_requests_fail[0]; + pstats->xfer_fail[1] = st.uds_requests_fail[1]; + pstats->xfer_fail[2] = st.uds_requests_fail[2]; + pstats->xfer_fail[3] = st.uds_requests_fail[3]; + return (0); /* success */ } From owner-svn-src-all@freebsd.org Mon Jan 6 09:21:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8B6A41FE3A9; Mon, 6 Jan 2020 09:21:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqkj3BjXz4RTx; Mon, 6 Jan 2020 09:21:17 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 68E03C398; Mon, 6 Jan 2020 09:21:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069LHp3003162; Mon, 6 Jan 2020 09:21:17 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069LGOj003154; Mon, 6 Jan 2020 09:21:16 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060921.0069LGOj003154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:21:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356398 - stable/11/lib/libusb X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/lib/libusb X-SVN-Commit-Revision: 356398 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:21:17 -0000 Author: hselasky Date: Mon Jan 6 09:21:15 2020 New Revision: 356398 URL: https://svnweb.freebsd.org/changeset/base/356398 Log: MFC r356136: Implement new libusb v2.0 API function, libusb20_dev_get_stats(). This function is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/11/lib/libusb/Makefile stable/11/lib/libusb/libusb20.3 stable/11/lib/libusb/libusb20.c stable/11/lib/libusb/libusb20.h stable/11/lib/libusb/libusb20_int.h stable/11/lib/libusb/libusb20_ugen20.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libusb/Makefile ============================================================================== --- stable/11/lib/libusb/Makefile Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/Makefile Mon Jan 6 09:21:15 2020 (r356398) @@ -220,6 +220,7 @@ MLINKS += libusb20.3 libusb20_dev_get_backend_name.3 MLINKS += libusb20.3 libusb20_dev_get_info.3 MLINKS += libusb20.3 libusb20_dev_get_iface_desc.3 MLINKS += libusb20.3 libusb20_dev_get_desc.3 +MLINKS += libusb20.3 libusb20_dev_get_stats.3 MLINKS += libusb20.3 libusb20_dev_close.3 MLINKS += libusb20.3 libusb20_dev_detach_kernel_driver.3 MLINKS += libusb20.3 libusb20_dev_set_config_index.3 Modified: stable/11/lib/libusb/libusb20.3 ============================================================================== --- stable/11/lib/libusb/libusb20.3 Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20.3 Mon Jan 6 09:21:15 2020 (r356398) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2008 Hans Petter Selasky +.\" Copyright (c) 2008-2019 Hans Petter Selasky .\" .\" All rights reserved. .\" @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 3, 2013 +.Dd December 27, 2019 .Dt LIBUSB20 3 .Os .Sh NAME @@ -122,6 +122,8 @@ USB access library (libusb -lusb) .Ft const char * .Fn libusb20_dev_get_desc "struct libusb20_device *pdev" .Ft int +.Fn libusb20_dev_get_stats "struct libusb20_device *pdev" "struct libusb20_device_stats *pstats" +.Ft int .Fn libusb20_dev_close "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_detach_kernel_driver "struct libusb20_device *pdev" "uint8_t iface_index" @@ -594,6 +596,14 @@ This function returns zero on success else a LIBUSB20_ .Fn libusb20_dev_get_desc returns a zero terminated string describing the given USB device. The format of the string is: "drivername: " +. +.Pp +. +.Fn libusb20_dev_get_stats +retrieves the device statistics into the structure pointed to by the +.Fa pstats +argument. +This function returns zero on success else a LIBUSB20_ERROR value is returned. . .Pp . Modified: stable/11/lib/libusb/libusb20.c ============================================================================== --- stable/11/lib/libusb/libusb20.c Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20.c Mon Jan 6 09:21:15 2020 (r356398) @@ -76,6 +76,7 @@ dummy_callback(struct libusb20_transfer *xfer) #define dummy_set_power_mode (void *)dummy_int #define dummy_get_power_mode (void *)dummy_int #define dummy_get_power_usage (void *)dummy_int +#define dummy_get_stats (void *)dummy_int #define dummy_kernel_driver_active (void *)dummy_int #define dummy_detach_kernel_driver (void *)dummy_int #define dummy_do_request_sync (void *)dummy_int @@ -1045,6 +1046,31 @@ uint8_t libusb20_dev_get_speed(struct libusb20_device *pdev) { return (pdev->usb_speed); +} + +int +libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + uint8_t do_close; + int error; + + if (!pdev->is_opened) { + error = libusb20_dev_open(pdev, 0); + if (error == 0) { + do_close = 1; + } else { + do_close = 0; + } + } else { + do_close = 0; + } + + error = pdev->methods->get_stats(pdev, pstats); + + if (do_close) + (void) libusb20_dev_close(pdev); + + return (error); } /* if this function returns an error, the device is gone */ Modified: stable/11/lib/libusb/libusb20.h ============================================================================== --- stable/11/lib/libusb/libusb20.h Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20.h Mon Jan 6 09:21:15 2020 (r356398) @@ -193,6 +193,12 @@ struct libusb20_quirk { char quirkname[64 - 12]; }; +struct libusb20_device_stats { + uint64_t xfer_ok[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_fail[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_reserved[24]; /* reserved */ +}; + #define LIBUSB20_MAX_FRAME_PRE_SCALE (1U << 31) /* USB transfer operations */ @@ -241,6 +247,7 @@ int libusb20_dev_detach_kernel_driver(struct libusb20_ int libusb20_dev_set_config_index(struct libusb20_device *pdev, uint8_t configIndex); int libusb20_dev_get_debug(struct libusb20_device *pdev); int libusb20_dev_get_fd(struct libusb20_device *pdev); +int libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstat); int libusb20_dev_kernel_driver_active(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_open(struct libusb20_device *pdev, uint16_t transfer_max); int libusb20_dev_process(struct libusb20_device *pdev); Modified: stable/11/lib/libusb/libusb20_int.h ============================================================================== --- stable/11/lib/libusb/libusb20_int.h Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20_int.h Mon Jan 6 09:21:15 2020 (r356398) @@ -106,10 +106,12 @@ typedef int (libusb20_reset_device_t)(struct libusb20_ typedef int (libusb20_set_power_mode_t)(struct libusb20_device *pdev, uint8_t power_mode); typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode); typedef int (libusb20_get_power_usage_t)(struct libusb20_device *pdev, uint16_t *power_usage); +typedef int (libusb20_get_stats_t)(struct libusb20_device *pdev, struct libusb20_device_stats *pstats); typedef int (libusb20_set_alt_index_t)(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index); typedef int (libusb20_set_config_index_t)(struct libusb20_device *pdev, uint8_t index); typedef int (libusb20_check_connected_t)(struct libusb20_device *pdev); + /* USB transfer specific */ typedef int (libusb20_tr_open_t)(struct libusb20_transfer *xfer, uint32_t MaxBufSize, uint32_t MaxFrameCount, uint8_t ep_no, uint16_t stream_id, uint8_t pre_scale); typedef int (libusb20_tr_close_t)(struct libusb20_transfer *xfer); @@ -129,6 +131,7 @@ typedef void (libusb20_tr_cancel_async_t)(struct libus m(n, set_power_mode) \ m(n, get_power_mode) \ m(n, get_power_usage) \ + m(n, get_stats) \ m(n, set_alt_index) \ m(n, set_config_index) \ m(n, tr_cancel_async) \ Modified: stable/11/lib/libusb/libusb20_ugen20.c ============================================================================== --- stable/11/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:21:15 2020 (r356398) @@ -78,6 +78,7 @@ static libusb20_check_connected_t ugen20_check_connect static libusb20_set_power_mode_t ugen20_set_power_mode; static libusb20_get_power_mode_t ugen20_get_power_mode; static libusb20_get_power_usage_t ugen20_get_power_usage; +static libusb20_get_stats_t ugen20_get_stats; static libusb20_kernel_driver_active_t ugen20_kernel_driver_active; static libusb20_detach_kernel_driver_t ugen20_detach_kernel_driver; static libusb20_do_request_sync_t ugen20_do_request_sync; @@ -664,6 +665,29 @@ ugen20_get_power_usage(struct libusb20_device *pdev, u return (LIBUSB20_ERROR_OTHER); } *power_usage = temp; + return (0); /* success */ +} + +static int +ugen20_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + struct usb_device_stats st; + + if (ioctl(pdev->file_ctrl, IOUSB(USB_DEVICESTATS), &st)) + return (LIBUSB20_ERROR_OTHER); + + memset(pstats, 0, sizeof(*pstats)); + + pstats->xfer_ok[0] = st.uds_requests_ok[0]; + pstats->xfer_ok[1] = st.uds_requests_ok[1]; + pstats->xfer_ok[2] = st.uds_requests_ok[2]; + pstats->xfer_ok[3] = st.uds_requests_ok[3]; + + pstats->xfer_fail[0] = st.uds_requests_fail[0]; + pstats->xfer_fail[1] = st.uds_requests_fail[1]; + pstats->xfer_fail[2] = st.uds_requests_fail[2]; + pstats->xfer_fail[3] = st.uds_requests_fail[3]; + return (0); /* success */ } From owner-svn-src-all@freebsd.org Mon Jan 6 09:22:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF8171FE440; Mon, 6 Jan 2020 09:22:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqmB5hs8z4Rny; Mon, 6 Jan 2020 09:22:34 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BEE5CC40B; Mon, 6 Jan 2020 09:22:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069MYG5007232; Mon, 6 Jan 2020 09:22:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069MXan007226; Mon, 6 Jan 2020 09:22:33 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060922.0069MXan007226@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:22:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356399 - stable/10/lib/libusb X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/lib/libusb X-SVN-Commit-Revision: 356399 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:22:34 -0000 Author: hselasky Date: Mon Jan 6 09:22:33 2020 New Revision: 356399 URL: https://svnweb.freebsd.org/changeset/base/356399 Log: MFC r356136: Implement new libusb v2.0 API function, libusb20_dev_get_stats(). This function is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/10/lib/libusb/Makefile stable/10/lib/libusb/libusb20.3 stable/10/lib/libusb/libusb20.c stable/10/lib/libusb/libusb20.h stable/10/lib/libusb/libusb20_int.h stable/10/lib/libusb/libusb20_ugen20.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libusb/Makefile ============================================================================== --- stable/10/lib/libusb/Makefile Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/Makefile Mon Jan 6 09:22:33 2020 (r356399) @@ -222,6 +222,7 @@ MLINKS += libusb20.3 libusb20_dev_get_backend_name.3 MLINKS += libusb20.3 libusb20_dev_get_info.3 MLINKS += libusb20.3 libusb20_dev_get_iface_desc.3 MLINKS += libusb20.3 libusb20_dev_get_desc.3 +MLINKS += libusb20.3 libusb20_dev_get_stats.3 MLINKS += libusb20.3 libusb20_dev_close.3 MLINKS += libusb20.3 libusb20_dev_detach_kernel_driver.3 MLINKS += libusb20.3 libusb20_dev_set_config_index.3 Modified: stable/10/lib/libusb/libusb20.3 ============================================================================== --- stable/10/lib/libusb/libusb20.3 Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20.3 Mon Jan 6 09:22:33 2020 (r356399) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2008 Hans Petter Selasky +.\" Copyright (c) 2008-2019 Hans Petter Selasky .\" .\" All rights reserved. .\" @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 3, 2013 +.Dd December 27, 2019 .Dt LIBUSB20 3 .Os .Sh NAME @@ -122,6 +122,8 @@ USB access library (libusb -lusb) .Ft const char * .Fn libusb20_dev_get_desc "struct libusb20_device *pdev" .Ft int +.Fn libusb20_dev_get_stats "struct libusb20_device *pdev" "struct libusb20_device_stats *pstats" +.Ft int .Fn libusb20_dev_close "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_detach_kernel_driver "struct libusb20_device *pdev" "uint8_t iface_index" @@ -594,6 +596,14 @@ This function returns zero on success else a LIBUSB20_ .Fn libusb20_dev_get_desc returns a zero terminated string describing the given USB device. The format of the string is: "drivername: " +. +.Pp +. +.Fn libusb20_dev_get_stats +retrieves the device statistics into the structure pointed to by the +.Fa pstats +argument. +This function returns zero on success else a LIBUSB20_ERROR value is returned. . .Pp . Modified: stable/10/lib/libusb/libusb20.c ============================================================================== --- stable/10/lib/libusb/libusb20.c Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20.c Mon Jan 6 09:22:33 2020 (r356399) @@ -77,6 +77,7 @@ dummy_callback(struct libusb20_transfer *xfer) #define dummy_get_power_mode (void *)dummy_int #define dummy_get_port_path (void *)dummy_int #define dummy_get_power_usage (void *)dummy_int +#define dummy_get_stats (void *)dummy_int #define dummy_kernel_driver_active (void *)dummy_int #define dummy_detach_kernel_driver (void *)dummy_int #define dummy_do_request_sync (void *)dummy_int @@ -1027,6 +1028,31 @@ uint8_t libusb20_dev_get_speed(struct libusb20_device *pdev) { return (pdev->usb_speed); +} + +int +libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + uint8_t do_close; + int error; + + if (!pdev->is_opened) { + error = libusb20_dev_open(pdev, 0); + if (error == 0) { + do_close = 1; + } else { + do_close = 0; + } + } else { + do_close = 0; + } + + error = pdev->methods->get_stats(pdev, pstats); + + if (do_close) + (void) libusb20_dev_close(pdev); + + return (error); } /* if this function returns an error, the device is gone */ Modified: stable/10/lib/libusb/libusb20.h ============================================================================== --- stable/10/lib/libusb/libusb20.h Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20.h Mon Jan 6 09:22:33 2020 (r356399) @@ -193,6 +193,12 @@ struct libusb20_quirk { char quirkname[64 - 12]; }; +struct libusb20_device_stats { + uint64_t xfer_ok[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_fail[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_reserved[24]; /* reserved */ +}; + #define LIBUSB20_MAX_FRAME_PRE_SCALE (1U << 31) /* USB transfer operations */ @@ -241,6 +247,7 @@ int libusb20_dev_detach_kernel_driver(struct libusb20_ int libusb20_dev_set_config_index(struct libusb20_device *pdev, uint8_t configIndex); int libusb20_dev_get_debug(struct libusb20_device *pdev); int libusb20_dev_get_fd(struct libusb20_device *pdev); +int libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstat); int libusb20_dev_kernel_driver_active(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_open(struct libusb20_device *pdev, uint16_t transfer_max); int libusb20_dev_process(struct libusb20_device *pdev); Modified: stable/10/lib/libusb/libusb20_int.h ============================================================================== --- stable/10/lib/libusb/libusb20_int.h Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20_int.h Mon Jan 6 09:22:33 2020 (r356399) @@ -107,10 +107,12 @@ typedef int (libusb20_set_power_mode_t)(struct libusb2 typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode); typedef int (libusb20_get_port_path_t)(struct libusb20_device *pdev, uint8_t *buf, uint8_t bufsize); typedef int (libusb20_get_power_usage_t)(struct libusb20_device *pdev, uint16_t *power_usage); +typedef int (libusb20_get_stats_t)(struct libusb20_device *pdev, struct libusb20_device_stats *pstats); typedef int (libusb20_set_alt_index_t)(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index); typedef int (libusb20_set_config_index_t)(struct libusb20_device *pdev, uint8_t index); typedef int (libusb20_check_connected_t)(struct libusb20_device *pdev); + /* USB transfer specific */ typedef int (libusb20_tr_open_t)(struct libusb20_transfer *xfer, uint32_t MaxBufSize, uint32_t MaxFrameCount, uint8_t ep_no, uint16_t stream_id, uint8_t pre_scale); typedef int (libusb20_tr_close_t)(struct libusb20_transfer *xfer); @@ -131,6 +133,7 @@ typedef void (libusb20_tr_cancel_async_t)(struct libus m(n, get_power_mode) \ m(n, get_port_path) \ m(n, get_power_usage) \ + m(n, get_stats) \ m(n, set_alt_index) \ m(n, set_config_index) \ m(n, tr_cancel_async) \ Modified: stable/10/lib/libusb/libusb20_ugen20.c ============================================================================== --- stable/10/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:22:33 2020 (r356399) @@ -79,6 +79,7 @@ static libusb20_set_power_mode_t ugen20_set_power_mode static libusb20_get_power_mode_t ugen20_get_power_mode; static libusb20_get_port_path_t ugen20_get_port_path; static libusb20_get_power_usage_t ugen20_get_power_usage; +static libusb20_get_stats_t ugen20_get_stats; static libusb20_kernel_driver_active_t ugen20_kernel_driver_active; static libusb20_detach_kernel_driver_t ugen20_detach_kernel_driver; static libusb20_do_request_sync_t ugen20_do_request_sync; @@ -673,6 +674,29 @@ ugen20_get_power_usage(struct libusb20_device *pdev, u return (LIBUSB20_ERROR_OTHER); } *power_usage = temp; + return (0); /* success */ +} + +static int +ugen20_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + struct usb_device_stats st; + + if (ioctl(pdev->file_ctrl, IOUSB(USB_DEVICESTATS), &st)) + return (LIBUSB20_ERROR_OTHER); + + memset(pstats, 0, sizeof(*pstats)); + + pstats->xfer_ok[0] = st.uds_requests_ok[0]; + pstats->xfer_ok[1] = st.uds_requests_ok[1]; + pstats->xfer_ok[2] = st.uds_requests_ok[2]; + pstats->xfer_ok[3] = st.uds_requests_ok[3]; + + pstats->xfer_fail[0] = st.uds_requests_fail[0]; + pstats->xfer_fail[1] = st.uds_requests_fail[1]; + pstats->xfer_fail[2] = st.uds_requests_fail[2]; + pstats->xfer_fail[3] = st.uds_requests_fail[3]; + return (0); /* success */ } From owner-svn-src-all@freebsd.org Mon Jan 6 09:23:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59D891FE4E4; Mon, 6 Jan 2020 09:23:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqnl1hhtz4Rw8; Mon, 6 Jan 2020 09:23:55 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3552FC40E; Mon, 6 Jan 2020 09:23:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069NtFe007353; Mon, 6 Jan 2020 09:23:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069Ns7n007349; Mon, 6 Jan 2020 09:23:54 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060923.0069Ns7n007349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:23:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356400 - stable/12/usr.sbin/usbconfig X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/usr.sbin/usbconfig X-SVN-Commit-Revision: 356400 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:23:55 -0000 Author: hselasky Date: Mon Jan 6 09:23:54 2020 New Revision: 356400 URL: https://svnweb.freebsd.org/changeset/base/356400 Log: MFC r356137: Implement dump_stats command for usbconfig(8). This command is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/12/usr.sbin/usbconfig/dump.c stable/12/usr.sbin/usbconfig/dump.h stable/12/usr.sbin/usbconfig/usbconfig.8 stable/12/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/usbconfig/dump.c ============================================================================== --- stable/12/usr.sbin/usbconfig/dump.c Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/dump.c Mon Jan 6 09:23:54 2020 (r356400) @@ -483,3 +483,32 @@ dump_string_by_index(struct libusb20_device *pdev, uin } free(pbuf); } + +void +dump_device_stats(struct libusb20_device *pdev) +{ + struct libusb20_device_stats st; + + if (libusb20_dev_get_stats(pdev, &st)) { + printf("{}\n"); + } else { + printf("{\n" + " UE_CONTROL_OK : %llu\n" + " UE_ISOCHRONOUS_OK : %llu\n" + " UE_BULK_OK : %llu\n" + " UE_INTERRUPT_OK : %llu\n" + " UE_CONTROL_FAIL : %llu\n" + " UE_ISOCHRONOUS_FAIL : %llu\n" + " UE_BULK_FAIL : %llu\n" + " UE_INTERRUPT_FAIL : %llu\n" + "}\n", + (unsigned long long)st.xfer_ok[0], + (unsigned long long)st.xfer_ok[1], + (unsigned long long)st.xfer_ok[2], + (unsigned long long)st.xfer_ok[3], + (unsigned long long)st.xfer_fail[0], + (unsigned long long)st.xfer_fail[1], + (unsigned long long)st.xfer_fail[2], + (unsigned long long)st.xfer_fail[3]); + } +} Modified: stable/12/usr.sbin/usbconfig/dump.h ============================================================================== --- stable/12/usr.sbin/usbconfig/dump.h Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/dump.h Mon Jan 6 09:23:54 2020 (r356400) @@ -37,6 +37,7 @@ void dump_device_info(struct libusb20_device *pdev, ui void dump_be_quirk_names(struct libusb20_backend *pbe); void dump_be_dev_quirks(struct libusb20_backend *pbe); void dump_device_desc(struct libusb20_device *pdev); +void dump_device_stats(struct libusb20_device *pdev); void dump_config(struct libusb20_device *pdev, uint8_t all_cfg); #endif /* _DUMP_H_ */ Modified: stable/12/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/12/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:23:54 2020 (r356400) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.\" Copyright (c) 2008-2010 Hans Petter Selasky. All rights reserved. +.\" Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 16, 2019 +.Dd December 27, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -116,6 +116,8 @@ Display all the configuration descriptors. Display string descriptor at selected index. .It Cm dump_info Display summary information about the device. +.It Cm dump_stats +Display USB transfer statistics. .It Cm show_ifdrv Display the list of interface drivers (such as .Xr ukbd 4 Modified: stable/12/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/12/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:23:54 2020 (r356400) @@ -82,6 +82,7 @@ struct options { uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; uint8_t got_dump_info:1; + uint8_t got_dump_stats:1; uint8_t got_show_iface_driver:1; uint8_t got_remove_device_quirk:1; uint8_t got_add_device_quirk:1; @@ -121,6 +122,7 @@ enum { T_DUMP_ALL_CONFIG_DESC, T_DUMP_STRING, T_DUMP_INFO, + T_DUMP_STATS, T_SUSPEND, T_RESUME, T_POWER_OFF, @@ -155,6 +157,7 @@ static const struct token token[] = { {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, {"dump_string", T_DUMP_STRING, 1}, {"dump_info", T_DUMP_INFO, 0}, + {"dump_stats", T_DUMP_STATS, 0}, {"show_ifdrv", T_SHOW_IFACE_DRIVER, 0}, {"suspend", T_SUSPEND, 0}, {"resume", T_RESUME, 0}, @@ -296,6 +299,7 @@ usage(void) " dump_all_config_desc" "\n" " dump_string " "\n" " dump_info" "\n" + " dump_stats" "\n" " show_ifdrv" "\n" " suspend" "\n" " resume" "\n" @@ -506,7 +510,8 @@ flush_command(struct libusb20_backend *pbe, struct opt opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || - opt->got_dump_info); + opt->got_dump_info || + opt->got_dump_stats); if (opt->got_list || dump_any) { dump_device_info(pdev, @@ -527,6 +532,10 @@ flush_command(struct libusb20_backend *pbe, struct opt dump_device_desc(pdev); dump_config(pdev, 1); } + if (opt->got_dump_stats) { + printf("\n"); + dump_device_stats(pdev); + } if (dump_any) { printf("\n"); } @@ -749,6 +758,12 @@ main(int argc, char **argv) if (opt->got_dump_info) duplicate_option(argv[n]); opt->got_dump_info = 1; + opt->got_any++; + break; + case T_DUMP_STATS: + if (opt->got_dump_stats) + duplicate_option(argv[n]); + opt->got_dump_stats = 1; opt->got_any++; break; case T_DUMP_STRING: From owner-svn-src-all@freebsd.org Mon Jan 6 09:24:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A6B71FE57A; Mon, 6 Jan 2020 09:24:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqpm6TsVz4S3W; Mon, 6 Jan 2020 09:24:48 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9D96C410; Mon, 6 Jan 2020 09:24:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069OmVq007461; Mon, 6 Jan 2020 09:24:48 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069Om3W007458; Mon, 6 Jan 2020 09:24:48 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060924.0069Om3W007458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:24:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356401 - stable/11/usr.sbin/usbconfig X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/usr.sbin/usbconfig X-SVN-Commit-Revision: 356401 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:24:49 -0000 Author: hselasky Date: Mon Jan 6 09:24:47 2020 New Revision: 356401 URL: https://svnweb.freebsd.org/changeset/base/356401 Log: MFC r356137: Implement dump_stats command for usbconfig(8). This command is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/11/usr.sbin/usbconfig/dump.c stable/11/usr.sbin/usbconfig/dump.h stable/11/usr.sbin/usbconfig/usbconfig.8 stable/11/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/usbconfig/dump.c ============================================================================== --- stable/11/usr.sbin/usbconfig/dump.c Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/dump.c Mon Jan 6 09:24:47 2020 (r356401) @@ -483,3 +483,32 @@ dump_string_by_index(struct libusb20_device *pdev, uin } free(pbuf); } + +void +dump_device_stats(struct libusb20_device *pdev) +{ + struct libusb20_device_stats st; + + if (libusb20_dev_get_stats(pdev, &st)) { + printf("{}\n"); + } else { + printf("{\n" + " UE_CONTROL_OK : %llu\n" + " UE_ISOCHRONOUS_OK : %llu\n" + " UE_BULK_OK : %llu\n" + " UE_INTERRUPT_OK : %llu\n" + " UE_CONTROL_FAIL : %llu\n" + " UE_ISOCHRONOUS_FAIL : %llu\n" + " UE_BULK_FAIL : %llu\n" + " UE_INTERRUPT_FAIL : %llu\n" + "}\n", + (unsigned long long)st.xfer_ok[0], + (unsigned long long)st.xfer_ok[1], + (unsigned long long)st.xfer_ok[2], + (unsigned long long)st.xfer_ok[3], + (unsigned long long)st.xfer_fail[0], + (unsigned long long)st.xfer_fail[1], + (unsigned long long)st.xfer_fail[2], + (unsigned long long)st.xfer_fail[3]); + } +} Modified: stable/11/usr.sbin/usbconfig/dump.h ============================================================================== --- stable/11/usr.sbin/usbconfig/dump.h Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/dump.h Mon Jan 6 09:24:47 2020 (r356401) @@ -37,6 +37,7 @@ void dump_device_info(struct libusb20_device *pdev, ui void dump_be_quirk_names(struct libusb20_backend *pbe); void dump_be_dev_quirks(struct libusb20_backend *pbe); void dump_device_desc(struct libusb20_device *pdev); +void dump_device_stats(struct libusb20_device *pdev); void dump_config(struct libusb20_device *pdev, uint8_t all_cfg); #endif /* _DUMP_H_ */ Modified: stable/11/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/11/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:24:47 2020 (r356401) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.\" Copyright (c) 2008-2010 Hans Petter Selasky. All rights reserved. +.\" Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 16, 2019 +.Dd December 27, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -116,6 +116,8 @@ Display all the configuration descriptors. Display string descriptor at selected index. .It Cm dump_info Display summary information about the device. +.It Cm dump_stats +Display USB transfer statistics. .It Cm show_ifdrv Display the list of interface drivers (such as .Xr ukbd 4 Modified: stable/11/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/11/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:24:47 2020 (r356401) @@ -82,6 +82,7 @@ struct options { uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; uint8_t got_dump_info:1; + uint8_t got_dump_stats:1; uint8_t got_show_iface_driver:1; uint8_t got_remove_device_quirk:1; uint8_t got_add_device_quirk:1; @@ -121,6 +122,7 @@ enum { T_DUMP_ALL_CONFIG_DESC, T_DUMP_STRING, T_DUMP_INFO, + T_DUMP_STATS, T_SUSPEND, T_RESUME, T_POWER_OFF, @@ -155,6 +157,7 @@ static const struct token token[] = { {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, {"dump_string", T_DUMP_STRING, 1}, {"dump_info", T_DUMP_INFO, 0}, + {"dump_stats", T_DUMP_STATS, 0}, {"show_ifdrv", T_SHOW_IFACE_DRIVER, 0}, {"suspend", T_SUSPEND, 0}, {"resume", T_RESUME, 0}, @@ -296,6 +299,7 @@ usage(void) " dump_all_config_desc" "\n" " dump_string " "\n" " dump_info" "\n" + " dump_stats" "\n" " show_ifdrv" "\n" " suspend" "\n" " resume" "\n" @@ -506,7 +510,8 @@ flush_command(struct libusb20_backend *pbe, struct opt opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || - opt->got_dump_info); + opt->got_dump_info || + opt->got_dump_stats); if (opt->got_list || dump_any) { dump_device_info(pdev, @@ -527,6 +532,10 @@ flush_command(struct libusb20_backend *pbe, struct opt dump_device_desc(pdev); dump_config(pdev, 1); } + if (opt->got_dump_stats) { + printf("\n"); + dump_device_stats(pdev); + } if (dump_any) { printf("\n"); } @@ -749,6 +758,12 @@ main(int argc, char **argv) if (opt->got_dump_info) duplicate_option(argv[n]); opt->got_dump_info = 1; + opt->got_any++; + break; + case T_DUMP_STATS: + if (opt->got_dump_stats) + duplicate_option(argv[n]); + opt->got_dump_stats = 1; opt->got_any++; break; case T_DUMP_STRING: From owner-svn-src-all@freebsd.org Mon Jan 6 09:35:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1E0161FE97D; Mon, 6 Jan 2020 09:35:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr2m01Ggz4Sk6; Mon, 6 Jan 2020 09:35:12 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFD6CC5E7; Mon, 6 Jan 2020 09:35:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069ZBnZ013704; Mon, 6 Jan 2020 09:35:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069ZB3R013703; Mon, 6 Jan 2020 09:35:11 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060935.0069ZB3R013703@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:35:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356402 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356402 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:35:12 -0000 Author: hselasky Date: Mon Jan 6 09:35:11 2020 New Revision: 356402 URL: https://svnweb.freebsd.org/changeset/base/356402 Log: MFC r327382: Improve usbconfig(8) manual page by adding descriptions for subcommands. Reviewed by: hselasky Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D13445 Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:24:47 2020 (r356401) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:11 2020 (r356402) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 6, 2010 +.Dd December 30, 2017 .Dt USBCONFIG 8 .Os .Sh NAME @@ -56,45 +56,124 @@ The unit and address coordinates may be prefixed by th Show help and available commands. .El .Pp -When called without options, +The following commands may be used with +.Nm : +.Bl -tag -width indent +.It Cm set_config Ar cfg_index +Choose the configuration for the USB device. +Valid values range from zero to the number reported as the +.Ar bNumConfigurations +in +.Cm dump_device_desc +output. +The special value of 255 unconfigures the device, detaching +the interface drivers and reducing the power consumption to minimum, +but without going into power saving mode or detaching from the bus. +In some cases, it prevents the device from charging. +.It Cm set_alt Ar alt_index +Choose the alternate interface for the USB device. +Alternative settings for the current configuration are available as the +.Ar bAlternateSetting +in +.Cm dump_curr_config_desc +output. +Usually there is no need to adjust this setting. +.It Cm set_template Ar template +Set the global USB device side template. +See +.Xr usb_template 4 +for more information. +.It Cm get_template +Get the current USB device side template. +.It Cm add_dev_quirk_vplh Ar vid Ar pid Ar lo_rev Ar hi_rev Ar quirk_name +Add a quirk by specifying the Vendor ID, Product ID, low and high +revision numbers, and the quirk name. +See +.Xr usb_quirk 4 +for more information. +.It Cm remove_dev_quirk_vplh Ar vid Ar pid Ar lo_rev Ar hi_rev Ar quirk_name +Remove a quirk. +.It Cm add_quirk Ar quirk_name +Add quirk for the currently selected USB device. +.It Cm remove_quirk Ar quirk_name +Remove a quirk for the currently selected USB device. +.It Cm dump_quirk_names +Display the list of supported quirk names. +.It Cm dump_device_quirks +Display the list of current device quirks. +.It Cm dump_device_desc +Display the device descriptor. +.It Cm dump_curr_config_desc +Display current configuration descriptor. +.It Cm dump_all_config_desc +Display all the configuration descriptors. +.It Cm dump_string Ar index +Display string descriptor at selected index. +.It Cm dump_info +Display summary information about the device. +.It Cm show_ifdrv +Display the list of interface drivers (such as +.Xr ukbd 4 +or +.Xr u3g 4 ) +currently attached to the device. +.It Cm suspend +Force the device to suspend. +.It Cm resume +Force the device to resume. +.It Cm power_off +Turn the device off. +.It Cm power_save +Turn the automatic suspend and resume on. +This is the default for USB hubs. +.It Cm power_on +Turn the device on and disable automatic suspend and resume. +This is the default for non-hub devices. +.It Cm reset +Reset the device. +This forces the USB stack to reenumerate the bus. +.It Cm list +List all available USB devices. +This is the default if .Nm -prints a list of all available USB devices. +is called without specifying a command. +.It Cm do_request Ar bmReqTyp Ar bReq Ar wVal Ar wIdx Ar wLen Ar data... +Perform a synchronous control request on the specified device. +See +.Xr libusb20_dev_request_sync 3 +for more information. +.El .Sh EXAMPLES +.Pp Show information about the device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_info +.Dl usbconfig -d ugen1.2 dump_info .Pp Dump HID descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 do_request 0x81 0x06 0x2200 0 0x100 +.Dl usbconfig -d ugen1.2 do_request 0x81 0x06 0x2200 0 0x100 .Pp Dump string descriptor at index Z for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_string Z +.Dl usbconfig -d ugen1.2 dump_string Z .Pp Dump current configuration descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_curr_config_desc +.Dl usbconfig -d ugen1.2 dump_curr_config_desc .Pp Dump device descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_device_desc +.Dl usbconfig -d ugen1.2 dump_device_desc .Pp Program the device on USB bus 1 at address 2 to suspend, resume, power off, go into power save, or power on: .Pp -.Dl usbconfig -u 1 -a 2 suspend -.Dl usbconfig -u 1 -a 2 resume -.Dl usbconfig -u 1 -a 2 power_off -.Dl usbconfig -u 1 -a 2 power_save -.Dl usbconfig -u 1 -a 2 power_on +.Dl usbconfig -d ugen1.2 suspend +.Dl usbconfig -d ugen1.2 resume +.Dl usbconfig -d ugen1.2 power_off +.Dl usbconfig -d ugen1.2 power_save +.Dl usbconfig -d ugen1.2 power_on .Pp -Display a list of available quirk names: -.Pp -.Dl usbconfig dump_quirk_names -.Pp -See -.Xr usb_quirk 4 -for more information on quirks. .Sh SEE ALSO .Xr usb 4 , -.Xr usb_quirk 4 +.Xr usb_quirk 4 , +.Xr usb_template 4 From owner-svn-src-all@freebsd.org Mon Jan 6 09:35:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B75C1FEA0F; Mon, 6 Jan 2020 09:35:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr3f0p97z4Srl; Mon, 6 Jan 2020 09:35:58 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 16C80C5F7; Mon, 6 Jan 2020 09:35:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069ZvdH013801; Mon, 6 Jan 2020 09:35:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069ZvU7013800; Mon, 6 Jan 2020 09:35:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060935.0069ZvU7013800@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:35:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356403 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356403 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:35:58 -0000 Author: hselasky Date: Mon Jan 6 09:35:57 2020 New Revision: 356403 URL: https://svnweb.freebsd.org/changeset/base/356403 Log: MFC r327522: Fix warnings from "mandoc -Tlint -Wwarning". Reported by: Yuri Pankov Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:11 2020 (r356402) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:57 2020 (r356403) @@ -144,7 +144,6 @@ See for more information. .El .Sh EXAMPLES -.Pp Show information about the device on USB bus 1 at address 2: .Pp .Dl usbconfig -d ugen1.2 dump_info @@ -172,7 +171,6 @@ Program the device on USB bus 1 at address 2 to suspen .Dl usbconfig -d ugen1.2 power_off .Dl usbconfig -d ugen1.2 power_save .Dl usbconfig -d ugen1.2 power_on -.Pp .Sh SEE ALSO .Xr usb 4 , .Xr usb_quirk 4 , From owner-svn-src-all@freebsd.org Mon Jan 6 09:37:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C002B1FEAD0; Mon, 6 Jan 2020 09:37:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr554TSFz4T0B; Mon, 6 Jan 2020 09:37:13 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 950FBC5FB; Mon, 6 Jan 2020 09:37:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069bDc5013919; Mon, 6 Jan 2020 09:37:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069bDrM013918; Mon, 6 Jan 2020 09:37:13 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060937.0069bDrM013918@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:37:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356404 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356404 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:37:13 -0000 Author: hselasky Date: Mon Jan 6 09:37:13 2020 New Revision: 356404 URL: https://svnweb.freebsd.org/changeset/base/356404 Log: MFC r330875: Add "usbconfig dump_all_desc", a subcommand to dump all device and config descriptors. Reviewed by: hselasky@ Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:57 2020 (r356403) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:37:13 2020 (r356404) @@ -97,6 +97,8 @@ Remove a quirk. Add quirk for the currently selected USB device. .It Cm remove_quirk Ar quirk_name Remove a quirk for the currently selected USB device. +.It Cm dump_all_desc +Display the device and configuration descriptors. .It Cm dump_quirk_names Display the list of supported quirk names. .It Cm dump_device_quirks Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:35:57 2020 (r356403) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:37:13 2020 (r356404) @@ -75,6 +75,7 @@ struct options { uint8_t got_power_on:1; uint8_t got_dump_device_quirks:1; uint8_t got_dump_quirk_names:1; + uint8_t got_dump_all_desc:1; uint8_t got_dump_device_desc:1; uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; @@ -110,6 +111,7 @@ enum { T_SHOW_IFACE_DRIVER, T_DUMP_QUIRK_NAMES, T_DUMP_DEVICE_QUIRKS, + T_DUMP_ALL_DESC, T_DUMP_DEVICE_DESC, T_DUMP_CURR_CONFIG_DESC, T_DUMP_ALL_CONFIG_DESC, @@ -142,6 +144,7 @@ static const struct token token[] = { {"remove_quirk", T_REMOVE_QUIRK, 1}, {"dump_quirk_names", T_DUMP_QUIRK_NAMES, 0}, {"dump_device_quirks", T_DUMP_DEVICE_QUIRKS, 0}, + {"dump_all_desc", T_DUMP_ALL_DESC, 0}, {"dump_device_desc", T_DUMP_DEVICE_DESC, 0}, {"dump_curr_config_desc", T_DUMP_CURR_CONFIG_DESC, 0}, {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, @@ -281,6 +284,7 @@ usage(void) " remove_quirk " "\n" " dump_quirk_names" "\n" " dump_device_quirks" "\n" + " dump_all_desc" "\n" " dump_device_desc" "\n" " dump_curr_config_desc" "\n" " dump_all_config_desc" "\n" @@ -487,7 +491,8 @@ flush_command(struct libusb20_backend *pbe, struct opt } } dump_any = - (opt->got_dump_device_desc || + (opt->got_dump_all_desc || + opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || opt->got_dump_info); @@ -506,6 +511,10 @@ flush_command(struct libusb20_backend *pbe, struct opt } else if (opt->got_dump_curr_config) { printf("\n"); dump_config(pdev, 0); + } else if (opt->got_dump_all_desc) { + printf("\n"); + dump_device_desc(pdev); + dump_config(pdev, 1); } if (dump_any) { printf("\n"); @@ -692,6 +701,12 @@ main(int argc, char **argv) if (opt->got_get_template) duplicate_option(argv[n]); opt->got_get_template = 1; + opt->got_any++; + break; + case T_DUMP_ALL_DESC: + if (opt->got_dump_all_desc) + duplicate_option(argv[n]); + opt->got_dump_all_desc = 1; opt->got_any++; break; case T_DUMP_DEVICE_DESC: From owner-svn-src-all@freebsd.org Mon Jan 6 09:38:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F055D1FEB5E; Mon, 6 Jan 2020 09:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr68652pz4T6J; Mon, 6 Jan 2020 09:38:08 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CC498C5FD; Mon, 6 Jan 2020 09:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069c8UV014017; Mon, 6 Jan 2020 09:38:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069c8bu014015; Mon, 6 Jan 2020 09:38:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060938.0069c8bu014015@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:38:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356405 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356405 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:38:09 -0000 Author: hselasky Date: Mon Jan 6 09:38:08 2020 New Revision: 356405 URL: https://svnweb.freebsd.org/changeset/base/356405 Log: MFC r332659: Make it possible to pass the ugenX.Y to usbconfig(8) without using "-d", eg "usbconfig ugen1.2 dump_all_desc". Reviewed by: hselasky@ Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:37:13 2020 (r356404) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:08 2020 (r356405) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 30, 2017 +.Dd April 17, 2018 .Dt USBCONFIG 8 .Os .Sh NAME @@ -35,7 +35,7 @@ .Op Fl a Ar addr .Op cmds... .Nm -.Op Fl d Ar [ugen]. +.Op Oo Fl d Oc Ar [ugen]. .Op cmds... .Sh DESCRIPTION The Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:37:13 2020 (r356404) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:38:08 2020 (r356405) @@ -818,6 +818,29 @@ main(int argc, char **argv) opt->got_any++; break; default: + if (n == 1) { + ptr = argv[n]; + + if ((ptr[0] == 'u') && + (ptr[1] == 'g') && + (ptr[2] == 'e') && + (ptr[3] == 'n')) + ptr += 4; + + if ((sscanf(ptr, "%d.%d", + &unit, &addr) != 2) || + (unit < 0) || (unit > 65535) || + (addr < 0) || (addr > 65535)) { + usage(); + break; + } + + opt->bus = unit; + opt->addr = addr; + opt->got_bus = 1; + opt->got_addr = 1; + break; + } usage(); break; } From owner-svn-src-all@freebsd.org Mon Jan 6 09:38:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C9D201FEBDF; Mon, 6 Jan 2020 09:38:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr754vBbz4TDj; Mon, 6 Jan 2020 09:38:57 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A3659C5FE; Mon, 6 Jan 2020 09:38:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069cv4o014111; Mon, 6 Jan 2020 09:38:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069cv2f014110; Mon, 6 Jan 2020 09:38:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060938.0069cv2f014110@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:38:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356406 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356406 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:38:57 -0000 Author: hselasky Date: Mon Jan 6 09:38:57 2020 New Revision: 356406 URL: https://svnweb.freebsd.org/changeset/base/356406 Log: MFC r333089: Clean up the EXAMPLES section of usbconfig(8). This removes parts that become redundant after documenting all the subcommands, and switches to the new syntax, without the '-d'. Reviewed by: hselasky@ Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:08 2020 (r356405) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:57 2020 (r356406) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 17, 2018 +.Dd April 29, 2018 .Dt USBCONFIG 8 .Os .Sh NAME @@ -146,33 +146,21 @@ See for more information. .El .Sh EXAMPLES -Show information about the device on USB bus 1 at address 2: +List all connected USB devices and their attached interface drivers: .Pp -.Dl usbconfig -d ugen1.2 dump_info +.Dl usbconfig show_ifdrv .Pp -Dump HID descriptor for device on USB bus 1 at address 2: +Dump device and configuration descriptors for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -d ugen1.2 do_request 0x81 0x06 0x2200 0 0x100 +.Dl usbconfig ugen1.2 dump_all_desc .Pp -Dump string descriptor at index Z for device on USB bus 1 at address 2: +Dump HID descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -d ugen1.2 dump_string Z +.Dl usbconfig ugen1.2 do_request 0x81 0x06 0x2200 0 0x100 .Pp -Dump current configuration descriptor for device on USB bus 1 at address 2: +Power off the device on USB bus 1 at address 2: .Pp -.Dl usbconfig -d ugen1.2 dump_curr_config_desc -.Pp -Dump device descriptor for device on USB bus 1 at address 2: -.Pp -.Dl usbconfig -d ugen1.2 dump_device_desc -.Pp -Program the device on USB bus 1 at address 2 to suspend, resume, power off, go into power save, or power on: -.Pp -.Dl usbconfig -d ugen1.2 suspend -.Dl usbconfig -d ugen1.2 resume -.Dl usbconfig -d ugen1.2 power_off -.Dl usbconfig -d ugen1.2 power_save -.Dl usbconfig -d ugen1.2 power_on +.Dl usbconfig ugen1.2 power_off .Sh SEE ALSO .Xr usb 4 , .Xr usb_quirk 4 , From owner-svn-src-all@freebsd.org Mon Jan 6 09:40:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 54EA11FECA7; Mon, 6 Jan 2020 09:40:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr8g1bDTz4TMC; Mon, 6 Jan 2020 09:40:19 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 31CF5C602; Mon, 6 Jan 2020 09:40:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069eJfA014271; Mon, 6 Jan 2020 09:40:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069eIpu014269; Mon, 6 Jan 2020 09:40:18 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060940.0069eIpu014269@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:40:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356407 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356407 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:40:19 -0000 Author: hselasky Date: Mon Jan 6 09:40:18 2020 New Revision: 356407 URL: https://svnweb.freebsd.org/changeset/base/356407 Log: MFC r351146: Implement detach_kernel_driver command in usbconfig(8). Submitted by: Kevin Zheng PR: 239916 Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:57 2020 (r356406) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:40:18 2020 (r356407) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 29, 2018 +.Dd August 16, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -52,6 +52,9 @@ Should only be used in conjunction with the unit argum .It Fl d Ar [ugen]. Limit device range to USB devices connected to the given unit and address. The unit and address coordinates may be prefixed by the lowercased word "ugen". +.It Fl i Ar interface_index +Specify interface index as indicated by the command description. +If this argument is not specified a value of zero will be used for the interface index. .It Fl h Show help and available commands. .El @@ -71,7 +74,7 @@ the interface drivers and reducing the power consumpti but without going into power saving mode or detaching from the bus. In some cases, it prevents the device from charging. .It Cm set_alt Ar alt_index -Choose the alternate interface for the USB device. +Choose the alternate interface for the selected interface and USB device. Alternative settings for the current configuration are available as the .Ar bAlternateSetting in @@ -119,6 +122,8 @@ Display the list of interface drivers (such as or .Xr u3g 4 ) currently attached to the device. +.It Cm detach_kernel_driver +Detach kernel driver for the selected interface and USB device. .It Cm suspend Force the device to suspend. .It Cm resume Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:38:57 2020 (r356406) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:40:18 2020 (r356407) @@ -87,6 +87,7 @@ struct options { uint8_t got_add_quirk:1; uint8_t got_dump_string:1; uint8_t got_do_request:1; + uint8_t got_detach_kernel_driver:1; }; struct token { @@ -109,6 +110,7 @@ enum { T_ADD_QUIRK, T_REMOVE_QUIRK, T_SHOW_IFACE_DRIVER, + T_DETACH_KERNEL_DRIVER, T_DUMP_QUIRK_NAMES, T_DUMP_DEVICE_QUIRKS, T_DUMP_ALL_DESC, @@ -142,6 +144,7 @@ static const struct token token[] = { {"remove_dev_quirk_vplh", T_REMOVE_DEVICE_QUIRK, 5}, {"add_quirk", T_ADD_QUIRK, 1}, {"remove_quirk", T_REMOVE_QUIRK, 1}, + {"detach_kernel_driver", T_DETACH_KERNEL_DRIVER, 0}, {"dump_quirk_names", T_DUMP_QUIRK_NAMES, 0}, {"dump_device_quirks", T_DUMP_DEVICE_QUIRKS, 0}, {"dump_all_desc", T_DUMP_ALL_DESC, 0}, @@ -282,6 +285,7 @@ usage(void) " remove_dev_quirk_vplh " "\n" " add_quirk " "\n" " remove_quirk " "\n" + " detach_kernel_driver" "\n" " dump_quirk_names" "\n" " dump_device_quirks" "\n" " dump_all_desc" "\n" @@ -490,6 +494,11 @@ flush_command(struct libusb20_backend *pbe, struct opt err(1, "could not set power ON"); } } + if (opt->got_detach_kernel_driver) { + if (libusb20_dev_detach_kernel_driver(pdev, opt->iface)) { + err(1, "could not detach kernel driver"); + } + } dump_any = (opt->got_dump_all_desc || opt->got_dump_device_desc || @@ -606,6 +615,13 @@ main(int argc, char **argv) opt->quirkname = argv[n + 5]; n += 5; opt->got_remove_device_quirk = 1; + opt->got_any++; + break; + + case T_DETACH_KERNEL_DRIVER: + if (opt->got_detach_kernel_driver) + duplicate_option(argv[n]); + opt->got_detach_kernel_driver = 1; opt->got_any++; break; From owner-svn-src-all@freebsd.org Mon Jan 6 09:41:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0ED841FED15; Mon, 6 Jan 2020 09:41:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr9S6fJJz4TVX; Mon, 6 Jan 2020 09:41:00 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DF8A3C634; Mon, 6 Jan 2020 09:41:00 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069f0PV015906; Mon, 6 Jan 2020 09:41:00 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069f0hK015897; Mon, 6 Jan 2020 09:41:00 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060941.0069f0hK015897@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:41:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356408 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356408 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:41:01 -0000 Author: hselasky Date: Mon Jan 6 09:40:59 2020 New Revision: 356408 URL: https://svnweb.freebsd.org/changeset/base/356408 Log: MFC r356137: Implement dump_stats command for usbconfig(8). This command is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/10/usr.sbin/usbconfig/dump.c stable/10/usr.sbin/usbconfig/dump.h stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/dump.c ============================================================================== --- stable/10/usr.sbin/usbconfig/dump.c Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/dump.c Mon Jan 6 09:40:59 2020 (r356408) @@ -481,3 +481,32 @@ dump_string_by_index(struct libusb20_device *pdev, uin } free(pbuf); } + +void +dump_device_stats(struct libusb20_device *pdev) +{ + struct libusb20_device_stats st; + + if (libusb20_dev_get_stats(pdev, &st)) { + printf("{}\n"); + } else { + printf("{\n" + " UE_CONTROL_OK : %llu\n" + " UE_ISOCHRONOUS_OK : %llu\n" + " UE_BULK_OK : %llu\n" + " UE_INTERRUPT_OK : %llu\n" + " UE_CONTROL_FAIL : %llu\n" + " UE_ISOCHRONOUS_FAIL : %llu\n" + " UE_BULK_FAIL : %llu\n" + " UE_INTERRUPT_FAIL : %llu\n" + "}\n", + (unsigned long long)st.xfer_ok[0], + (unsigned long long)st.xfer_ok[1], + (unsigned long long)st.xfer_ok[2], + (unsigned long long)st.xfer_ok[3], + (unsigned long long)st.xfer_fail[0], + (unsigned long long)st.xfer_fail[1], + (unsigned long long)st.xfer_fail[2], + (unsigned long long)st.xfer_fail[3]); + } +} Modified: stable/10/usr.sbin/usbconfig/dump.h ============================================================================== --- stable/10/usr.sbin/usbconfig/dump.h Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/dump.h Mon Jan 6 09:40:59 2020 (r356408) @@ -35,6 +35,7 @@ void dump_device_info(struct libusb20_device *pdev, ui void dump_be_quirk_names(struct libusb20_backend *pbe); void dump_be_dev_quirks(struct libusb20_backend *pbe); void dump_device_desc(struct libusb20_device *pdev); +void dump_device_stats(struct libusb20_device *pdev); void dump_config(struct libusb20_device *pdev, uint8_t all_cfg); #endif /* _DUMP_H_ */ Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:40:59 2020 (r356408) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.\" Copyright (c) 2008-2010 Hans Petter Selasky. All rights reserved. +.\" Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 16, 2019 +.Dd December 27, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -116,6 +116,8 @@ Display all the configuration descriptors. Display string descriptor at selected index. .It Cm dump_info Display summary information about the device. +.It Cm dump_stats +Display USB transfer statistics. .It Cm show_ifdrv Display the list of interface drivers (such as .Xr ukbd 4 Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:40:59 2020 (r356408) @@ -80,6 +80,7 @@ struct options { uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; uint8_t got_dump_info:1; + uint8_t got_dump_stats:1; uint8_t got_show_iface_driver:1; uint8_t got_remove_device_quirk:1; uint8_t got_add_device_quirk:1; @@ -119,6 +120,7 @@ enum { T_DUMP_ALL_CONFIG_DESC, T_DUMP_STRING, T_DUMP_INFO, + T_DUMP_STATS, T_SUSPEND, T_RESUME, T_POWER_OFF, @@ -153,6 +155,7 @@ static const struct token token[] = { {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, {"dump_string", T_DUMP_STRING, 1}, {"dump_info", T_DUMP_INFO, 0}, + {"dump_stats", T_DUMP_STATS, 0}, {"show_ifdrv", T_SHOW_IFACE_DRIVER, 0}, {"suspend", T_SUSPEND, 0}, {"resume", T_RESUME, 0}, @@ -294,6 +297,7 @@ usage(void) " dump_all_config_desc" "\n" " dump_string " "\n" " dump_info" "\n" + " dump_stats" "\n" " show_ifdrv" "\n" " suspend" "\n" " resume" "\n" @@ -504,7 +508,8 @@ flush_command(struct libusb20_backend *pbe, struct opt opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || - opt->got_dump_info); + opt->got_dump_info || + opt->got_dump_stats); if (opt->got_list || dump_any) { dump_device_info(pdev, @@ -525,6 +530,10 @@ flush_command(struct libusb20_backend *pbe, struct opt dump_device_desc(pdev); dump_config(pdev, 1); } + if (opt->got_dump_stats) { + printf("\n"); + dump_device_stats(pdev); + } if (dump_any) { printf("\n"); } @@ -747,6 +756,12 @@ main(int argc, char **argv) if (opt->got_dump_info) duplicate_option(argv[n]); opt->got_dump_info = 1; + opt->got_any++; + break; + case T_DUMP_STATS: + if (opt->got_dump_stats) + duplicate_option(argv[n]); + opt->got_dump_stats = 1; opt->got_any++; break; case T_DUMP_STRING: From owner-svn-src-all@freebsd.org Mon Jan 6 09:49:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D9561FF072; Mon, 6 Jan 2020 09:49:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rrM51Qrxz4V5V; Mon, 6 Jan 2020 09:49:21 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2C42EC817; Mon, 6 Jan 2020 09:49:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069nLwF020556; Mon, 6 Jan 2020 09:49:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069nK9e020554; Mon, 6 Jan 2020 09:49:20 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060949.0069nK9e020554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:49:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356409 - in head/sys: dev/usb sys X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in head/sys: dev/usb sys X-SVN-Commit-Revision: 356409 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:49:21 -0000 Author: hselasky Date: Mon Jan 6 09:49:20 2020 New Revision: 356409 URL: https://svnweb.freebsd.org/changeset/base/356409 Log: Add own counter for cancelled USB transfers. Do not count these as errors. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/usb/usb_device.h head/sys/dev/usb/usb_transfer.c head/sys/sys/param.h Modified: head/sys/dev/usb/usb_device.h ============================================================================== --- head/sys/dev/usb/usb_device.h Mon Jan 6 09:40:59 2020 (r356408) +++ head/sys/dev/usb/usb_device.h Mon Jan 6 09:49:20 2020 (r356409) @@ -191,6 +191,7 @@ struct usb_device { /* statistics */ struct usb_device_statistics stats_err; struct usb_device_statistics stats_ok; + struct usb_device_statistics stats_cancelled; /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; Modified: head/sys/dev/usb/usb_transfer.c ============================================================================== --- head/sys/dev/usb/usb_transfer.c Mon Jan 6 09:40:59 2020 (r356408) +++ head/sys/dev/usb/usb_transfer.c Mon Jan 6 09:49:20 2020 (r356409) @@ -2593,7 +2593,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t } #endif /* keep some statistics */ - if (xfer->error) { + if (xfer->error == USB_ERR_CANCELLED) { + info->udev->stats_cancelled.uds_requests + [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; + } else if (xfer->error != USB_ERR_NORMAL_COMPLETION) { info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Mon Jan 6 09:40:59 2020 (r356408) +++ head/sys/sys/param.h Mon Jan 6 09:49:20 2020 (r356409) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300074 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300075 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Jan 6 09:50:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB38F1FF135; Mon, 6 Jan 2020 09:50:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rrNh63L8z4VF5; Mon, 6 Jan 2020 09:50:44 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CB1F3C834; Mon, 6 Jan 2020 09:50:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069oiGW020716; Mon, 6 Jan 2020 09:50:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069oiAE020715; Mon, 6 Jan 2020 09:50:44 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060950.0069oiAE020715@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:50:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356410 - stable/12/sys/dev/hyperv/netvsc X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/hyperv/netvsc X-SVN-Commit-Revision: 356410 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:50:45 -0000 Author: hselasky Date: Mon Jan 6 09:50:44 2020 New Revision: 356410 URL: https://svnweb.freebsd.org/changeset/base/356410 Log: MFC r356201: Fix spelling. PR: 242891 Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/hyperv/netvsc/if_hn.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/hyperv/netvsc/if_hn.c ============================================================================== --- stable/12/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:49:20 2020 (r356409) +++ stable/12/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:50:44 2020 (r356410) @@ -1506,7 +1506,7 @@ hn_vf_rss_fixup(struct hn_softc *sc, bool reconf) strlcpy(ifrk.ifrk_name, vf_ifp->if_xname, sizeof(ifrk.ifrk_name)); error = vf_ifp->if_ioctl(vf_ifp, SIOCGIFRSSKEY, (caddr_t)&ifrk); if (error) { - if_printf(ifp, "%s SIOCGRSSKEY failed: %d\n", + if_printf(ifp, "%s SIOCGIFRSSKEY failed: %d\n", vf_ifp->if_xname, error); goto done; } From owner-svn-src-all@freebsd.org Mon Jan 6 09:51:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C3CFB1FF1DC; Mon, 6 Jan 2020 09:51:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rrPQ4sSfz4VPb; Mon, 6 Jan 2020 09:51:22 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1BBDC984; Mon, 6 Jan 2020 09:51:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069pMXX021532; Mon, 6 Jan 2020 09:51:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069pMuq021531; Mon, 6 Jan 2020 09:51:22 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060951.0069pMuq021531@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:51:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356411 - stable/11/sys/dev/hyperv/netvsc X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/hyperv/netvsc X-SVN-Commit-Revision: 356411 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:51:22 -0000 Author: hselasky Date: Mon Jan 6 09:51:22 2020 New Revision: 356411 URL: https://svnweb.freebsd.org/changeset/base/356411 Log: MFC r356201: Fix spelling. PR: 242891 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/hyperv/netvsc/if_hn.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/hyperv/netvsc/if_hn.c ============================================================================== --- stable/11/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:50:44 2020 (r356410) +++ stable/11/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:51:22 2020 (r356411) @@ -1506,7 +1506,7 @@ hn_vf_rss_fixup(struct hn_softc *sc, bool reconf) strlcpy(ifrk.ifrk_name, vf_ifp->if_xname, sizeof(ifrk.ifrk_name)); error = vf_ifp->if_ioctl(vf_ifp, SIOCGIFRSSKEY, (caddr_t)&ifrk); if (error) { - if_printf(ifp, "%s SIOCGRSSKEY failed: %d\n", + if_printf(ifp, "%s SIOCGIFRSSKEY failed: %d\n", vf_ifp->if_xname, error); goto done; } From owner-svn-src-all@freebsd.org Mon Jan 6 09:51:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E9AB1FF2C5; Mon, 6 Jan 2020 09:51:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rrQ32qX6z4Vhn; Mon, 6 Jan 2020 09:51:55 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C452C9B1; Mon, 6 Jan 2020 09:51:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069ptUn024599; Mon, 6 Jan 2020 09:51:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069ptld024598; Mon, 6 Jan 2020 09:51:55 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060951.0069ptld024598@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:51:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356412 - stable/10/sys/dev/hyperv/netvsc X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/sys/dev/hyperv/netvsc X-SVN-Commit-Revision: 356412 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:51:55 -0000 Author: hselasky Date: Mon Jan 6 09:51:54 2020 New Revision: 356412 URL: https://svnweb.freebsd.org/changeset/base/356412 Log: MFC r356201: Fix spelling. PR: 242891 Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/hyperv/netvsc/if_hn.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/hyperv/netvsc/if_hn.c ============================================================================== --- stable/10/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:51:22 2020 (r356411) +++ stable/10/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:51:54 2020 (r356412) @@ -1502,7 +1502,7 @@ hn_vf_rss_fixup(struct hn_softc *sc, bool reconf) strlcpy(ifrk.ifrk_name, vf_ifp->if_xname, sizeof(ifrk.ifrk_name)); error = vf_ifp->if_ioctl(vf_ifp, SIOCGIFRSSKEY, (caddr_t)&ifrk); if (error) { - if_printf(ifp, "%s SIOCGRSSKEY failed: %d\n", + if_printf(ifp, "%s SIOCGIFRSSKEY failed: %d\n", vf_ifp->if_xname, error); goto done; } From owner-svn-src-all@freebsd.org Mon Jan 6 10:52:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4FF6A1D0D2D; Mon, 6 Jan 2020 10:52:14 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rslf0wGhz4YbT; Mon, 6 Jan 2020 10:52:14 +0000 (UTC) (envelope-from kaktus@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0250FD4A0; Mon, 6 Jan 2020 10:52:14 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006AqD21061354; Mon, 6 Jan 2020 10:52:13 GMT (envelope-from kaktus@FreeBSD.org) Received: (from kaktus@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006AqDQU061353; Mon, 6 Jan 2020 10:52:13 GMT (envelope-from kaktus@FreeBSD.org) Message-Id: <202001061052.006AqDQU061353@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kaktus set sender to kaktus@FreeBSD.org using -f From: Pawel Biernacki Date: Mon, 6 Jan 2020 10:52:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356413 - in head/sys: amd64/amd64 arm64/arm64 X-SVN-Group: head X-SVN-Commit-Author: kaktus X-SVN-Commit-Paths: in head/sys: amd64/amd64 arm64/arm64 X-SVN-Commit-Revision: 356413 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 10:52:14 -0000 Author: kaktus Date: Mon Jan 6 10:52:13 2020 New Revision: 356413 URL: https://svnweb.freebsd.org/changeset/base/356413 Log: sysctl: mark more nodes as MPSAFE vm.kvm_size and vm.kvm_free are read only and marked as MPSAFE on i386 already. Mark them as that on amd64 and arm64 too to avoid locking Giant. Reviewed by: kib (mentor) Approved by: kib (mentor) Differential Revision: https://reviews.freebsd.org/D23039 Modified: head/sys/amd64/amd64/pmap.c head/sys/arm64/arm64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Mon Jan 6 09:51:54 2020 (r356412) +++ head/sys/amd64/amd64/pmap.c Mon Jan 6 10:52:13 2020 (r356413) @@ -4072,8 +4072,9 @@ kvm_size(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &ksize, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_size, "LU", "Size of KVM"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, + 0, 0, kvm_size, "LU", + "Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -4082,8 +4083,9 @@ kvm_free(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &kfree, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_free, "LU", "Amount of KVM free"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, + 0, 0, kvm_free, "LU", + "Amount of KVM free"); /* * Allocate physical memory for the vm_page array and map it into KVA, Modified: head/sys/arm64/arm64/pmap.c ============================================================================== --- head/sys/arm64/arm64/pmap.c Mon Jan 6 09:51:54 2020 (r356412) +++ head/sys/arm64/arm64/pmap.c Mon Jan 6 10:52:13 2020 (r356413) @@ -1845,8 +1845,9 @@ kvm_size(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &ksize, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_size, "LU", "Size of KVM"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, + 0, 0, kvm_size, "LU", + "Size of KVM"); static int kvm_free(SYSCTL_HANDLER_ARGS) @@ -1855,8 +1856,9 @@ kvm_free(SYSCTL_HANDLER_ARGS) return sysctl_handle_long(oidp, &kfree, 0, req); } -SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD, - 0, 0, kvm_free, "LU", "Amount of KVM free"); +SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_MPSAFE, + 0, 0, kvm_free, "LU", + "Amount of KVM free"); /* * grow the number of kernel page table entries, if needed From owner-svn-src-all@freebsd.org Mon Jan 6 12:48:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3BFFD1DA381; Mon, 6 Jan 2020 12:48:07 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rwKM1ZDxz4fXg; Mon, 6 Jan 2020 12:48:07 +0000 (UTC) (envelope-from rrs@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 31134E880; Mon, 6 Jan 2020 12:48:07 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006Cm75x028557; Mon, 6 Jan 2020 12:48:07 GMT (envelope-from rrs@FreeBSD.org) Received: (from rrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006Cm6mN028554; Mon, 6 Jan 2020 12:48:06 GMT (envelope-from rrs@FreeBSD.org) Message-Id: <202001061248.006Cm6mN028554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rrs set sender to rrs@FreeBSD.org using -f From: Randall Stewart Date: Mon, 6 Jan 2020 12:48:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356414 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: rrs X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356414 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 12:48:07 -0000 Author: rrs Date: Mon Jan 6 12:48:06 2020 New Revision: 356414 URL: https://svnweb.freebsd.org/changeset/base/356414 Log: This change adds a small feature to the tcp logging code. Basically a connection can now have a separate tag added to the id. Obtained from: Lawrence Stewart Sponsored by: Netflix Inc Differential Revision: https://reviews.freebsd.org/D22866 Modified: head/sys/netinet/tcp_log_buf.c head/sys/netinet/tcp_log_buf.h head/sys/netinet/tcp_var.h Modified: head/sys/netinet/tcp_log_buf.c ============================================================================== --- head/sys/netinet/tcp_log_buf.c Mon Jan 6 10:52:13 2020 (r356413) +++ head/sys/netinet/tcp_log_buf.c Mon Jan 6 12:48:06 2020 (r356414) @@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include /* Must come after qmath.h and tree.h */ #include #include @@ -78,6 +78,7 @@ static u_long tcp_log_auto_ratio = 0; static volatile u_long tcp_log_auto_ratio_cur = 0; static uint32_t tcp_log_auto_mode = TCP_LOG_STATE_TAIL; static bool tcp_log_auto_all = false; +static uint32_t tcp_disable_all_bb_logs = 0; RB_PROTOTYPE_STATIC(tcp_log_id_tree, tcp_log_id_bucket, tlb_rb, tcp_log_id_cmp) @@ -111,6 +112,10 @@ SYSCTL_UMA_CUR(_net_inet_tcp_bb, OID_AUTO, log_id_tcpc SYSCTL_U32(_net_inet_tcp_bb, OID_AUTO, log_version, CTLFLAG_RD, &tcp_log_version, 0, "Version of log formats exported"); +SYSCTL_U32(_net_inet_tcp_bb, OID_AUTO, disable_all, CTLFLAG_RW, + &tcp_disable_all_bb_logs, TCP_LOG_STATE_HEAD_AUTO, + "Disable all BB logging for all connections"); + SYSCTL_ULONG(_net_inet_tcp_bb, OID_AUTO, log_auto_ratio, CTLFLAG_RW, &tcp_log_auto_ratio, 0, "Do auto capturing for 1 out of N sessions"); @@ -156,7 +161,18 @@ SYSCTL_COUNTER_U64(_net_inet_tcp_bb, OID_AUTO, freed, #ifdef INVARIANTS #define TCPLOG_DEBUG_RINGBUF #endif +/* Number of requests to consider a PBCID "active". */ +#define ACTIVE_REQUEST_COUNT 10 +/* Statistic tracking for "active" PBCIDs. */ +static counter_u64_t tcp_log_pcb_ids_cur; +static counter_u64_t tcp_log_pcb_ids_tot; + +SYSCTL_COUNTER_U64(_net_inet_tcp_bb, OID_AUTO, pcb_ids_cur, CTLFLAG_RD, + &tcp_log_pcb_ids_cur, "Number of pcb IDs allocated in the system"); +SYSCTL_COUNTER_U64(_net_inet_tcp_bb, OID_AUTO, pcb_ids_tot, CTLFLAG_RD, + &tcp_log_pcb_ids_tot, "Total number of pcb IDs that have been allocated"); + struct tcp_log_mem { STAILQ_ENTRY(tcp_log_mem) tlm_queue; @@ -240,10 +256,14 @@ struct tcp_log_id_bucket * (struct tcp_log_id_bucket *) and (char *) interchangeably. */ char tlb_id[TCP_LOG_ID_LEN]; + char tlb_tag[TCP_LOG_TAG_LEN]; RB_ENTRY(tcp_log_id_bucket) tlb_rb; struct tcp_log_id_head tlb_head; struct mtx tlb_mtx; volatile u_int tlb_refcnt; + volatile u_int tlb_reqcnt; + uint32_t tlb_loglimit; + uint8_t tlb_logstate; }; struct tcp_log_id_node @@ -285,6 +305,7 @@ tcp_log_selectauto(void) * this session. */ if (tcp_log_auto_ratio && + (tcp_disable_all_bb_logs == 0) && (atomic_fetchadd_long(&tcp_log_auto_ratio_cur, 1) % tcp_log_auto_ratio) == 0) return (true); @@ -337,6 +358,7 @@ tcp_log_remove_bucket(struct tcp_log_id_bucket *tlb) #endif } TCPID_BUCKET_LOCK_DESTROY(tlb); + counter_u64_add(tcp_log_pcb_ids_cur, (int64_t)-1); uma_zfree(tcp_log_bucket_zone, tlb); } @@ -484,7 +506,53 @@ tcp_log_grow_tlb(char *tlb_id, struct tcpcb *tp) #endif } +static void +tcp_log_increment_reqcnt(struct tcp_log_id_bucket *tlb) +{ + + atomic_fetchadd_int(&tlb->tlb_reqcnt, 1); +} + /* + * Associate the specified tag with a particular TCP log ID. + * Called with INPCB locked. Returns with it unlocked. + * Returns 0 on success or EOPNOTSUPP if the connection has no TCP log ID. + */ +int +tcp_log_set_tag(struct tcpcb *tp, char *tag) +{ + struct tcp_log_id_bucket *tlb; + int tree_locked; + + INP_WLOCK_ASSERT(tp->t_inpcb); + + tree_locked = TREE_UNLOCKED; + tlb = tp->t_lib; + if (tlb == NULL) { + INP_WUNLOCK(tp->t_inpcb); + return (EOPNOTSUPP); + } + + TCPID_BUCKET_REF(tlb); + INP_WUNLOCK(tp->t_inpcb); + TCPID_BUCKET_LOCK(tlb); + strlcpy(tlb->tlb_tag, tag, TCP_LOG_TAG_LEN); + if (!tcp_log_unref_bucket(tlb, &tree_locked, NULL)) + TCPID_BUCKET_UNLOCK(tlb); + + if (tree_locked == TREE_WLOCKED) { + TCPID_TREE_WLOCK_ASSERT(); + TCPID_TREE_WUNLOCK(); + } else if (tree_locked == TREE_RLOCKED) { + TCPID_TREE_RLOCK_ASSERT(); + TCPID_TREE_RUNLOCK(); + } else + TCPID_TREE_UNLOCK_ASSERT(); + + return (0); +} + +/* * Set the TCP log ID for a TCPCB. * Called with INPCB locked. Returns with it unlocked. */ @@ -509,6 +577,21 @@ restart: /* See if the ID is unchanged. */ if ((tp->t_lib != NULL && !strcmp(tp->t_lib->tlb_id, id)) || (tp->t_lib == NULL && *id == 0)) { + if (tp->t_lib != NULL) { + tcp_log_increment_reqcnt(tp->t_lib); + if ((tp->t_lib->tlb_logstate) && + (tp->t_log_state_set == 0)) { + /* Clone in any logging */ + + tp->t_logstate = tp->t_lib->tlb_logstate; + } + if ((tp->t_lib->tlb_loglimit) && + (tp->t_log_state_set == 0)) { + /* We also have a limit set */ + + tp->t_loglimit = tp->t_lib->tlb_loglimit; + } + } rv = 0; goto done; } @@ -677,7 +760,19 @@ refind: rv = ENOBUFS; goto done_noinp; } + counter_u64_add(tcp_log_pcb_ids_cur, 1); + counter_u64_add(tcp_log_pcb_ids_tot, 1); + if ((tcp_log_auto_all == false) && + tcp_log_auto_mode && + tcp_log_selectauto()) { + /* Save off the log state */ + tlb->tlb_logstate = tcp_log_auto_mode; + } else + tlb->tlb_logstate = TCP_LOG_STATE_OFF; + tlb->tlb_loglimit = 0; + tlb->tlb_tag[0] = '\0'; /* Default to an empty tag. */ + /* * Copy the ID to the bucket. * NB: Don't use strlcpy() unless you are sure @@ -699,6 +794,7 @@ refind: */ SLIST_INIT(&tlb->tlb_head); refcount_init(&tlb->tlb_refcnt, 1); + tlb->tlb_reqcnt = 1; memset(&tlb->tlb_mtx, 0, sizeof(struct mtx)); TCPID_BUCKET_LOCK_INIT(tlb); TCPID_BUCKET_LOCK(tlb); @@ -707,6 +803,8 @@ refind: #define FREE_NEW_TLB() do { \ TCPID_BUCKET_LOCK_DESTROY(tlb); \ uma_zfree(tcp_log_bucket_zone, tlb); \ + counter_u64_add(tcp_log_pcb_ids_cur, (int64_t)-1); \ + counter_u64_add(tcp_log_pcb_ids_tot, (int64_t)-1); \ bucket_locked = false; \ tlb = NULL; \ } while (0) @@ -762,6 +860,9 @@ refind: /* Take a reference on the bucket. */ TCPID_BUCKET_REF(tlb); + + /* Record the request. */ + tcp_log_increment_reqcnt(tlb); } tcp_log_grow_tlb(tlb->tlb_id, tp); @@ -770,6 +871,16 @@ refind: SLIST_INSERT_HEAD(&tlb->tlb_head, tln, tln_list); tp->t_lib = tlb; tp->t_lin = tln; + if (tp->t_lib->tlb_logstate) { + /* Clone in any logging */ + + tp->t_logstate = tp->t_lib->tlb_logstate; + } + if (tp->t_lib->tlb_loglimit) { + /* The loglimit too */ + + tp->t_loglimit = tp->t_lib->tlb_loglimit; + } tln = NULL; } @@ -823,6 +934,52 @@ tcp_log_get_id(struct tcpcb *tp, char *buf) } /* + * Get the tag associated with the TCPCB's log ID. + * Called with INPCB locked. Returns with it unlocked. + * 'buf' must point to a buffer that is at least TCP_LOG_TAG_LEN bytes long. + * Returns number of bytes copied. + */ +size_t +tcp_log_get_tag(struct tcpcb *tp, char *buf) +{ + struct tcp_log_id_bucket *tlb; + size_t len; + int tree_locked; + + INP_WLOCK_ASSERT(tp->t_inpcb); + + tree_locked = TREE_UNLOCKED; + tlb = tp->t_lib; + + if (tlb != NULL) { + TCPID_BUCKET_REF(tlb); + INP_WUNLOCK(tp->t_inpcb); + TCPID_BUCKET_LOCK(tlb); + len = strlcpy(buf, tlb->tlb_tag, TCP_LOG_TAG_LEN); + KASSERT(len < TCP_LOG_TAG_LEN, + ("%s:%d: tp->t_lib->tlb_tag too long (%zu)", + __func__, __LINE__, len)); + if (!tcp_log_unref_bucket(tlb, &tree_locked, NULL)) + TCPID_BUCKET_UNLOCK(tlb); + + if (tree_locked == TREE_WLOCKED) { + TCPID_TREE_WLOCK_ASSERT(); + TCPID_TREE_WUNLOCK(); + } else if (tree_locked == TREE_RLOCKED) { + TCPID_TREE_RLOCK_ASSERT(); + TCPID_TREE_RUNLOCK(); + } else + TCPID_TREE_UNLOCK_ASSERT(); + } else { + INP_WUNLOCK(tp->t_inpcb); + *buf = '\0'; + len = 0; + } + + return (len); +} + +/* * Get number of connections with the same log ID. * Log ID is taken from given TCPCB. * Called with INPCB locked. @@ -1005,6 +1162,8 @@ tcp_log_init(void) tcp_log_que_read = counter_u64_alloc(M_WAITOK); tcp_log_que_freed = counter_u64_alloc(M_WAITOK); #endif + tcp_log_pcb_ids_cur = counter_u64_alloc(M_WAITOK); + tcp_log_pcb_ids_tot = counter_u64_alloc(M_WAITOK); rw_init_flags(&tcp_id_tree_lock, "TCP ID tree", RW_NEW); mtx_init(&tcp_log_expireq_mtx, "TCP log expireq", NULL, MTX_DEF); @@ -1023,7 +1182,10 @@ tcp_log_tcpcbinit(struct tcpcb *tp) * If we are doing auto-capturing, figure out whether we will capture * this session. */ - if (tcp_log_selectauto()) { + tp->t_loglimit = tcp_log_session_limit; + if ((tcp_log_auto_all == true) && + tcp_log_auto_mode && + tcp_log_selectauto()) { tp->t_logstate = tcp_log_auto_mode; tp->t_flags2 |= TF2_LOG_AUTO; } @@ -1162,6 +1324,8 @@ tcp_log_tcpcbfini(struct tcpcb *tp) INP_WLOCK_ASSERT(tp->t_inpcb); + TCP_LOG_EVENT(tp, NULL, NULL, NULL, TCP_LOG_CONNEND, 0, 0, NULL, false); + /* * If we were gathering packets to be automatically dumped, try to do * it now. If this succeeds, the log information in the TCPCB will be @@ -1327,6 +1491,25 @@ tcp_log_tcpcbfini(struct tcpcb *tp) tp->t_logstate = TCP_LOG_STATE_OFF; } +static void +tcp_log_purge_tp_logbuf(struct tcpcb *tp) +{ + struct tcp_log_mem *log_entry; + struct inpcb *inp; + + inp = tp->t_inpcb; + INP_WLOCK_ASSERT(inp); + if (tp->t_lognum == 0) + return; + + while ((log_entry = STAILQ_FIRST(&tp->t_logs)) != NULL) + tcp_log_remove_log_head(tp, log_entry); + KASSERT(tp->t_lognum == 0, + ("%s: After freeing entries, tp->t_lognum=%d (expected 0)", + __func__, tp->t_lognum)); + tp->t_logstate = TCP_LOG_STATE_OFF; +} + /* * This logs an event for a TCP socket. Normally, this is called via * TCP_LOG_EVENT or TCP_LOG_EVENT_VERBOSE. See the documentation for @@ -1350,7 +1533,17 @@ tcp_log_event_(struct tcpcb *tp, struct tcphdr *th, st __func__, func, line)); INP_WLOCK_ASSERT(tp->t_inpcb); - + if (tcp_disable_all_bb_logs) { + /* + * The global shutdown logging + * switch has been thrown. Call + * the purge function that frees + * purges out the logs and + * turns off logging. + */ + tcp_log_purge_tp_logbuf(tp); + return (NULL); + } KASSERT(tp->t_logstate == TCP_LOG_STATE_HEAD || tp->t_logstate == TCP_LOG_STATE_TAIL || tp->t_logstate == TCP_LOG_STATE_CONTINUAL || @@ -1371,7 +1564,7 @@ tcp_log_event_(struct tcpcb *tp, struct tcphdr *th, st * here. */ retry: - if (tp->t_lognum < tcp_log_session_limit) { + if (tp->t_lognum < tp->t_loglimit) { if ((log_entry = uma_zalloc(tcp_log_zone, M_NOWAIT)) != NULL) tp->t_lognum++; } else @@ -1574,7 +1767,10 @@ tcp_log_state_change(struct tcpcb *tp, int state) default: return (EINVAL); } - + if (tcp_disable_all_bb_logs) { + /* We are prohibited from doing any logs */ + tp->t_logstate = TCP_LOG_STATE_OFF; + } tp->t_flags2 &= ~(TF2_LOG_AUTO); return (0); @@ -1934,6 +2130,7 @@ tcp_log_expandlogbuf(struct tcp_log_dev_queue *param) hdr->tlh_af = entry->tldl_af; getboottime(&hdr->tlh_offset); strlcpy(hdr->tlh_id, entry->tldl_id, TCP_LOG_ID_LEN); + strlcpy(hdr->tlh_tag, entry->tldl_tag, TCP_LOG_TAG_LEN); strlcpy(hdr->tlh_reason, entry->tldl_reason, TCP_LOG_REASON_LEN); return ((struct tcp_log_common_header *)hdr); } @@ -2026,10 +2223,13 @@ tcp_log_dump_tp_logbuf(struct tcpcb *tp, char *reason, } /* Fill in the unique parts of the queue entry. */ - if (tp->t_lib != NULL) + if (tp->t_lib != NULL) { strlcpy(entry->tldl_id, tp->t_lib->tlb_id, TCP_LOG_ID_LEN); - else + strlcpy(entry->tldl_tag, tp->t_lib->tlb_tag, TCP_LOG_TAG_LEN); + } else { strlcpy(entry->tldl_id, "UNKNOWN", TCP_LOG_ID_LEN); + strlcpy(entry->tldl_tag, "UNKNOWN", TCP_LOG_TAG_LEN); + } if (reason != NULL) strlcpy(entry->tldl_reason, reason, TCP_LOG_REASON_LEN); else @@ -2119,6 +2319,7 @@ tcp_log_dump_node_logbuf(struct tcp_log_id_node *tln, /* Fill in the unique parts of the queue entry. */ strlcpy(entry->tldl_id, tlb->tlb_id, TCP_LOG_ID_LEN); + strlcpy(entry->tldl_tag, tlb->tlb_tag, TCP_LOG_TAG_LEN); if (reason != NULL) strlcpy(entry->tldl_reason, reason, TCP_LOG_REASON_LEN); else Modified: head/sys/netinet/tcp_log_buf.h ============================================================================== --- head/sys/netinet/tcp_log_buf.h Mon Jan 6 10:52:13 2020 (r356413) +++ head/sys/netinet/tcp_log_buf.h Mon Jan 6 12:48:06 2020 (r356414) @@ -31,7 +31,8 @@ #define __tcp_log_buf_h__ #define TCP_LOG_REASON_LEN 32 -#define TCP_LOG_BUF_VER (6) +#define TCP_LOG_TAG_LEN 32 +#define TCP_LOG_BUF_VER (7) /* * Because the (struct tcp_log_buffer) includes 8-byte uint64_t's, it requires @@ -263,6 +264,7 @@ struct tcp_log_header { struct timeval tlh_offset; /* Uptime -> UTC offset */ char tlh_id[TCP_LOG_ID_LEN]; char tlh_reason[TCP_LOG_REASON_LEN]; + char tlh_tag[TCP_LOG_TAG_LEN]; uint8_t tlh_af; uint8_t _pad[7]; } ALIGN_TCP_LOG; @@ -272,6 +274,7 @@ struct tcp_log_dev_log_queue { struct tcp_log_dev_queue tldl_common; char tldl_id[TCP_LOG_ID_LEN]; char tldl_reason[TCP_LOG_REASON_LEN]; + char tldl_tag[TCP_LOG_TAG_LEN]; struct in_endpoints tldl_ie; struct tcp_log_stailq tldl_entries; int tldl_count; @@ -349,10 +352,12 @@ struct tcp_log_buffer *tcp_log_event_(struct tcpcb *tp union tcp_log_stackspecific *stackinfo, int th_hostorder, const char *output_caller, const char *func, int line, const struct timeval *tv); size_t tcp_log_get_id(struct tcpcb *tp, char *buf); +size_t tcp_log_get_tag(struct tcpcb *tp, char *buf); u_int tcp_log_get_id_cnt(struct tcpcb *tp); int tcp_log_getlogbuf(struct sockopt *sopt, struct tcpcb *tp); void tcp_log_init(void); int tcp_log_set_id(struct tcpcb *tp, char *id); +int tcp_log_set_tag(struct tcpcb *tp, char *tag); int tcp_log_state_change(struct tcpcb *tp, int state); void tcp_log_tcpcbinit(struct tcpcb *tp); void tcp_log_tcpcbfini(struct tcpcb *tp); Modified: head/sys/netinet/tcp_var.h ============================================================================== --- head/sys/netinet/tcp_var.h Mon Jan 6 10:52:13 2020 (r356413) +++ head/sys/netinet/tcp_var.h Mon Jan 6 12:48:06 2020 (r356414) @@ -103,7 +103,8 @@ struct tcpcb { t_idle_reduce : 1, t_delayed_ack: 7, /* Delayed ack variable */ t_fin_is_rst: 1, /* Are fin's treated as resets */ - bits_spare : 3; + t_log_state_set: 1, + bits_spare : 2; u_int t_flags; tcp_seq snd_una; /* sent but unacknowledged */ tcp_seq snd_max; /* highest sequence number sent; @@ -206,6 +207,7 @@ struct tcpcb { u_int t_keepcnt; /* number of keepalives before close */ int t_dupacks; /* consecutive dup acks recd */ int t_lognum; /* Number of log entries */ + int t_loglimit; /* Maximum number of log entries */ struct tcp_log_stailq t_logs; /* Log buffer */ struct tcp_log_id_node *t_lin; struct tcp_log_id_bucket *t_lib; From owner-svn-src-all@freebsd.org Mon Jan 6 13:13:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 629301DD190; Mon, 6 Jan 2020 13:13:59 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rwvC21Nnz3CjL; Mon, 6 Jan 2020 13:13:59 +0000 (UTC) (envelope-from mm@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 40643EE56; Mon, 6 Jan 2020 13:13:59 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006DDxoQ050748; Mon, 6 Jan 2020 13:13:59 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006DDwg2050743; Mon, 6 Jan 2020 13:13:58 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202001061313.006DDwg2050743@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Mon, 6 Jan 2020 13:13:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356415 - vendor/libarchive/dist/libarchive X-SVN-Group: vendor X-SVN-Commit-Author: mm X-SVN-Commit-Paths: vendor/libarchive/dist/libarchive X-SVN-Commit-Revision: 356415 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 13:13:59 -0000 Author: mm Date: Mon Jan 6 13:13:58 2020 New Revision: 356415 URL: https://svnweb.freebsd.org/changeset/base/356415 Log: Update vendor/libarchive/dist to git 3f1bad815d02160ab27f7063257aed4b25dbaebe Relevant vendor changes: Issue #1302: Re-do fix for archive_write_client_open() Modified: vendor/libarchive/dist/libarchive/archive_cryptor.c vendor/libarchive/dist/libarchive/archive_hmac.c vendor/libarchive/dist/libarchive/archive_write.c Modified: vendor/libarchive/dist/libarchive/archive_cryptor.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_cryptor.c Mon Jan 6 12:48:06 2020 (r356414) +++ vendor/libarchive/dist/libarchive/archive_cryptor.c Mon Jan 6 13:13:58 2020 (r356415) @@ -299,6 +299,7 @@ aes_ctr_release(archive_crypto_ctx *ctx) } #elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) + static int aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) { Modified: vendor/libarchive/dist/libarchive/archive_hmac.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_hmac.c Mon Jan 6 12:48:06 2020 (r356414) +++ vendor/libarchive/dist/libarchive/archive_hmac.c Mon Jan 6 13:13:58 2020 (r356415) @@ -151,6 +151,7 @@ __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) } #elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_MD_H) + static int __hmac_sha1_init(archive_hmac_sha1_ctx *ctx, const uint8_t *key, size_t key_len) { Modified: vendor/libarchive/dist/libarchive/archive_write.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_write.c Mon Jan 6 12:48:06 2020 (r356414) +++ vendor/libarchive/dist/libarchive/archive_write.c Mon Jan 6 13:13:58 2020 (r356415) @@ -339,6 +339,7 @@ archive_write_client_open(struct archive_write_filter struct archive_none *state; void *buffer; size_t buffer_size; + int ret; f->bytes_per_block = archive_write_get_bytes_per_block(f->archive); f->bytes_in_last_block = @@ -363,7 +364,13 @@ archive_write_client_open(struct archive_write_filter if (a->client_opener == NULL) return (ARCHIVE_OK); - return (a->client_opener(f->archive, a->client_data)); + ret = a->client_opener(f->archive, a->client_data); + if (ret != ARCHIVE_OK) { + free(state->buffer); + free(state); + f->data = NULL; + } + return (ret); } static int @@ -449,30 +456,6 @@ archive_write_client_write(struct archive_write_filter } static int -archive_write_client_free(struct archive_write_filter *f) -{ - struct archive_write *a = (struct archive_write *)f->archive; - struct archive_none *state = (struct archive_none *)f->data; - - if (state != NULL) { - free(state->buffer); - free(state); - state = NULL; - } - - a->client_data = NULL; - /* Clear passphrase. */ - if (a->passphrase != NULL) { - memset(a->passphrase, 0, strlen(a->passphrase)); - free(a->passphrase); - a->passphrase = NULL; - } - - return (ARCHIVE_OK); -} - - -static int archive_write_client_close(struct archive_write_filter *f) { struct archive_write *a = (struct archive_write *)f->archive; @@ -508,7 +491,15 @@ archive_write_client_close(struct archive_write_filter } if (a->client_closer) (*a->client_closer)(&a->archive, a->client_data); - + free(state->buffer); + free(state); + a->client_data = NULL; + /* Clear passphrase. */ + if (a->passphrase != NULL) { + memset(a->passphrase, 0, strlen(a->passphrase)); + free(a->passphrase); + a->passphrase = NULL; + } /* Clear the close handler myself not to be called again. */ f->state = ARCHIVE_WRITE_FILTER_STATE_CLOSED; return (ret); @@ -539,7 +530,6 @@ archive_write_open(struct archive *_a, void *client_da client_filter->open = archive_write_client_open; client_filter->write = archive_write_client_write; client_filter->close = archive_write_client_close; - client_filter->free = archive_write_client_free; ret = __archive_write_filters_open(a); if (ret < ARCHIVE_WARN) { From owner-svn-src-all@freebsd.org Mon Jan 6 13:21:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 115761DDEFB; Mon, 6 Jan 2020 13:21:12 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rx3W6lmDz3D8S; Mon, 6 Jan 2020 13:21:11 +0000 (UTC) (envelope-from mm@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA4F8EFAA; Mon, 6 Jan 2020 13:21:11 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006DLBbw055286; Mon, 6 Jan 2020 13:21:11 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006DLBFY055284; Mon, 6 Jan 2020 13:21:11 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202001061321.006DLBFY055284@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Mon, 6 Jan 2020 13:21:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356416 - head/contrib/libarchive/libarchive X-SVN-Group: head X-SVN-Commit-Author: mm X-SVN-Commit-Paths: head/contrib/libarchive/libarchive X-SVN-Commit-Revision: 356416 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 13:21:12 -0000 Author: mm Date: Mon Jan 6 13:21:10 2020 New Revision: 356416 URL: https://svnweb.freebsd.org/changeset/base/356416 Log: MFV r356415 Sync libarchive with vendor Relevant vendor changes: Issue #1302: Re-do fix for archive_write_client_open() X-MFC-With: r356212,r356365 MFC after: 1 week Modified: head/contrib/libarchive/libarchive/archive_cryptor.c head/contrib/libarchive/libarchive/archive_hmac.c head/contrib/libarchive/libarchive/archive_write.c Directory Properties: head/contrib/libarchive/ (props changed) Modified: head/contrib/libarchive/libarchive/archive_cryptor.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_cryptor.c Mon Jan 6 13:13:58 2020 (r356415) +++ head/contrib/libarchive/libarchive/archive_cryptor.c Mon Jan 6 13:21:10 2020 (r356416) @@ -299,6 +299,7 @@ aes_ctr_release(archive_crypto_ctx *ctx) } #elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) + static int aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) { Modified: head/contrib/libarchive/libarchive/archive_hmac.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_hmac.c Mon Jan 6 13:13:58 2020 (r356415) +++ head/contrib/libarchive/libarchive/archive_hmac.c Mon Jan 6 13:21:10 2020 (r356416) @@ -151,6 +151,7 @@ __hmac_sha1_cleanup(archive_hmac_sha1_ctx *ctx) } #elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_MD_H) + static int __hmac_sha1_init(archive_hmac_sha1_ctx *ctx, const uint8_t *key, size_t key_len) { Modified: head/contrib/libarchive/libarchive/archive_write.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_write.c Mon Jan 6 13:13:58 2020 (r356415) +++ head/contrib/libarchive/libarchive/archive_write.c Mon Jan 6 13:21:10 2020 (r356416) @@ -339,6 +339,7 @@ archive_write_client_open(struct archive_write_filter struct archive_none *state; void *buffer; size_t buffer_size; + int ret; f->bytes_per_block = archive_write_get_bytes_per_block(f->archive); f->bytes_in_last_block = @@ -363,7 +364,13 @@ archive_write_client_open(struct archive_write_filter if (a->client_opener == NULL) return (ARCHIVE_OK); - return (a->client_opener(f->archive, a->client_data)); + ret = a->client_opener(f->archive, a->client_data); + if (ret != ARCHIVE_OK) { + free(state->buffer); + free(state); + f->data = NULL; + } + return (ret); } static int @@ -449,30 +456,6 @@ archive_write_client_write(struct archive_write_filter } static int -archive_write_client_free(struct archive_write_filter *f) -{ - struct archive_write *a = (struct archive_write *)f->archive; - struct archive_none *state = (struct archive_none *)f->data; - - if (state != NULL) { - free(state->buffer); - free(state); - state = NULL; - } - - a->client_data = NULL; - /* Clear passphrase. */ - if (a->passphrase != NULL) { - memset(a->passphrase, 0, strlen(a->passphrase)); - free(a->passphrase); - a->passphrase = NULL; - } - - return (ARCHIVE_OK); -} - - -static int archive_write_client_close(struct archive_write_filter *f) { struct archive_write *a = (struct archive_write *)f->archive; @@ -508,7 +491,15 @@ archive_write_client_close(struct archive_write_filter } if (a->client_closer) (*a->client_closer)(&a->archive, a->client_data); - + free(state->buffer); + free(state); + a->client_data = NULL; + /* Clear passphrase. */ + if (a->passphrase != NULL) { + memset(a->passphrase, 0, strlen(a->passphrase)); + free(a->passphrase); + a->passphrase = NULL; + } /* Clear the close handler myself not to be called again. */ f->state = ARCHIVE_WRITE_FILTER_STATE_CLOSED; return (ret); @@ -539,7 +530,6 @@ archive_write_open(struct archive *_a, void *client_da client_filter->open = archive_write_client_open; client_filter->write = archive_write_client_write; client_filter->close = archive_write_client_close; - client_filter->free = archive_write_client_free; ret = __archive_write_filters_open(a); if (ret < ARCHIVE_WARN) { From owner-svn-src-all@freebsd.org Mon Jan 6 14:35:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C16B91E5FDC; Mon, 6 Jan 2020 14:35:20 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47ryj35kmZz3JR9; Mon, 6 Jan 2020 14:35:19 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2020.home.selasky.org (unknown [62.141.129.235]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 5F7E5260189; Mon, 6 Jan 2020 15:35:17 +0100 (CET) Subject: Re: svn commit: r356097 - in head: share/man/man9 sys/compat/ndis sys/dev/oce sys/kern sys/libkern sys/sys To: Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201912261941.xBQJf9mL053706@repo.freebsd.org> From: Hans Petter Selasky Message-ID: Date: Mon, 6 Jan 2020 15:34:07 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <201912261941.xBQJf9mL053706@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47ryj35kmZz3JR9 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of hps@selasky.org designates 88.99.82.50 as permitted sender) smtp.mailfrom=hps@selasky.org X-Spamd-Result: default: False [-5.42 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+a:mail.turbocat.net]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[selasky.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; IP_SCORE(-3.12)[ip: (-9.33), ipnet: 88.99.0.0/16(-4.72), asn: 24940(-1.51), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:88.99.0.0/16, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 14:35:20 -0000 On 2019-12-26 20:41, Conrad Meyer wrote: > Author: cem > Date: Thu Dec 26 19:41:09 2019 > New Revision: 356097 > URL: https://svnweb.freebsd.org/changeset/base/356097 > > Log: > random(9): Deprecate random(9), remove meaningless srandom(9) > > srandom(9) is meaningless on SMP systems or any system with, say, > interrupts. One could never rely on random(9) to produce a reproducible > sequence of outputs on the basis of a specific srandom() seed because the > global state was shared by all kernel contexts. As such, removing it is > literally indistinguishable to random(9) consumers (as compared with > retaining it). > > Mark random(9) as deprecated and slated for quick removal. This is not to > say we intend to remove all fast, non-cryptographic PRNG(s) in the kernel. > It/they just won't be random(9), as it exists today, in either name or > implementation. > > Before random(9) is removed, a replacement will be provided and in-tree > consumers will be converted. > > Note that despite the name, the random(9) interface does not bear any > resemblance to random(3). Instead, it is the same crummy 1988 Park-Miller > LCG used in libc rand(3). > Hi, Having some kind of replacment for this using atomics(), might be useful for system testing. Sometimes you need a white-noise function for initializing test parameters and you also need srandom to reproducue failing tests. --HPS From owner-svn-src-all@freebsd.org Mon Jan 6 15:29:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D6C581EBEFC; Mon, 6 Jan 2020 15:29:15 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rzvH5Rh5z3MtG; Mon, 6 Jan 2020 15:29:15 +0000 (UTC) (envelope-from rrs@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B632C1862A; Mon, 6 Jan 2020 15:29:15 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006FTFU3040873; Mon, 6 Jan 2020 15:29:15 GMT (envelope-from rrs@FreeBSD.org) Received: (from rrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006FTFwN040870; Mon, 6 Jan 2020 15:29:15 GMT (envelope-from rrs@FreeBSD.org) Message-Id: <202001061529.006FTFwN040870@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rrs set sender to rrs@FreeBSD.org using -f From: Randall Stewart Date: Mon, 6 Jan 2020 15:29:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356417 - in head/sys/netinet: . tcp_stacks X-SVN-Group: head X-SVN-Commit-Author: rrs X-SVN-Commit-Paths: in head/sys/netinet: . tcp_stacks X-SVN-Commit-Revision: 356417 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 15:29:15 -0000 Author: rrs Date: Mon Jan 6 15:29:14 2020 New Revision: 356417 URL: https://svnweb.freebsd.org/changeset/base/356417 Log: This catches rack up in the recent changes to ECN and also commonizes the functions that both the freebsd and rack stack uses. Sponsored by:Netflix Inc Differential Revision: https://reviews.freebsd.org/D23052 Modified: head/sys/netinet/tcp_input.c head/sys/netinet/tcp_stacks/rack.c head/sys/netinet/tcp_var.h Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Mon Jan 6 13:21:10 2020 (r356416) +++ head/sys/netinet/tcp_input.c Mon Jan 6 15:29:14 2020 (r356417) @@ -514,7 +514,7 @@ cc_post_recovery(struct tcpcb *tp, struct tcphdr *th) (tlen <= tp->t_maxseg) && \ (V_tcp_delack_enabled || (tp->t_flags & TF_NEEDSYN))) -static void inline +void inline cc_ecnpkt_handler(struct tcpcb *tp, struct tcphdr *th, uint8_t iptos) { INP_WLOCK_ASSERT(tp->t_inpcb); Modified: head/sys/netinet/tcp_stacks/rack.c ============================================================================== --- head/sys/netinet/tcp_stacks/rack.c Mon Jan 6 13:21:10 2020 (r356416) +++ head/sys/netinet/tcp_stacks/rack.c Mon Jan 6 15:29:14 2020 (r356417) @@ -7715,6 +7715,10 @@ rack_do_segment_nounlock(struct mbuf *m, struct tcphdr TCPSTAT_INC(tcps_ecn_ect1); break; } + + /* Process a packet differently from RFC3168. */ + cc_ecnpkt_handler(tp, th, iptos); + /* Congestion experienced. */ if (thflags & TH_ECE) { rack_cong_signal(tp, th, CC_ECN); Modified: head/sys/netinet/tcp_var.h ============================================================================== --- head/sys/netinet/tcp_var.h Mon Jan 6 13:21:10 2020 (r356416) +++ head/sys/netinet/tcp_var.h Mon Jan 6 15:29:14 2020 (r356417) @@ -891,6 +891,7 @@ void cc_ack_received(struct tcpcb *tp, struct tcphdr * uint16_t nsegs, uint16_t type); void cc_conn_init(struct tcpcb *tp); void cc_post_recovery(struct tcpcb *tp, struct tcphdr *th); +void cc_ecnpkt_handler(struct tcpcb *tp, struct tcphdr *th, uint8_t iptos); void cc_cong_signal(struct tcpcb *tp, struct tcphdr *th, uint32_t type); #ifdef TCP_HHOOK void hhook_run_tcp_est_in(struct tcpcb *tp, From owner-svn-src-all@freebsd.org Mon Jan 6 17:34:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B5E3C1F77FD; Mon, 6 Jan 2020 17:34:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s2gZ2lV8z40D3; Mon, 6 Jan 2020 17:34:18 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 59AA719E51; Mon, 6 Jan 2020 17:34:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006HYIg0031423; Mon, 6 Jan 2020 17:34:18 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006HYIvd031422; Mon, 6 Jan 2020 17:34:18 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001061734.006HYIvd031422@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 6 Jan 2020 17:34:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356418 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356418 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 17:34:18 -0000 Author: jhb Date: Mon Jan 6 17:34:17 2020 New Revision: 356418 URL: https://svnweb.freebsd.org/changeset/base/356418 Log: Only build kernels for enabled TARGET_ARCHes in make universe/tinderbox. Previously, all of the kernels for a given TARGET were built if that target was enabled. This was implemented by having each kernel built via a universe_kernconf_ target that was depended on by a universe_kernconfs target. However, this meant that if one did a build with a limited set of TARGET_ARCH values for a given TARGET, kernels could be built for which we hadn't built a world or toolchain. For example, 'make TARGETS=mips TARGET_ARCHES_mips=mips64' would build mips32 kernels. Fix this by adding an extra layer of indirection in the kernel make targets. universe_kernconf_ is now a dependency of a new universe_kernconfs_. universe_kernconfs in turn depends on a list of universe_kernconfs_ values, but only the values enabled in TARGET_ARCHES_. Reviewed by: imp MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D23031 Modified: head/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Mon Jan 6 15:29:14 2020 (r356417) +++ head/Makefile Mon Jan 6 17:34:17 2020 (r356418) @@ -724,7 +724,7 @@ TARGET_ARCH_${kernel}!= cd ${KERNSRCDIR}/${TARGET}/con .if empty(TARGET_ARCH_${kernel}) .error "Target architecture for ${TARGET}/conf/${kernel} unknown. config(8) likely too old." .endif -universe_kernconfs: universe_kernconf_${TARGET}_${kernel} +universe_kernconfs_${TARGET_ARCH_${kernel}}: universe_kernconf_${TARGET}_${kernel} universe_kernconf_${TARGET}_${kernel}: .MAKE @echo ">> ${TARGET}.${TARGET_ARCH_${kernel}} ${kernel} kernel started on `LC_ALL=C date`" @(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \ @@ -737,6 +737,9 @@ universe_kernconf_${TARGET}_${kernel}: .MAKE (echo "${TARGET} ${kernel} kernel failed," \ "check _.${TARGET}.${kernel} for details"| ${MAKEFAIL})) @echo ">> ${TARGET}.${TARGET_ARCH_${kernel}} ${kernel} kernel completed on `LC_ALL=C date`" +.endfor +.for target_arch in ${TARGET_ARCHES_${TARGET}} +universe_kernconfs: universe_kernconfs_${target_arch} .PHONY .endfor .endif # make(universe_kernels) universe: universe_epilogue From owner-svn-src-all@freebsd.org Mon Jan 6 17:36:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 91D141F7A6C; Mon, 6 Jan 2020 17:36:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s2k53JpWz40MN; Mon, 6 Jan 2020 17:36:29 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 680ED19E57; Mon, 6 Jan 2020 17:36:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006HaTTu031830; Mon, 6 Jan 2020 17:36:29 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006HaTJe031829; Mon, 6 Jan 2020 17:36:29 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001061736.006HaTJe031829@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 6 Jan 2020 17:36:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356419 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356419 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 17:36:29 -0000 Author: jhb Date: Mon Jan 6 17:36:28 2020 New Revision: 356419 URL: https://svnweb.freebsd.org/changeset/base/356419 Log: Enable powerpc in make tinderbox using clang instead of GCC. powerpcspe is disabled for now until clang/llvm issues with spe have been fixed. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D23031 Modified: head/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Mon Jan 6 17:34:17 2020 (r356418) +++ head/Makefile Mon Jan 6 17:36:28 2020 (r356419) @@ -491,15 +491,13 @@ worlds: .PHONY # honor that most of all. # _OBSOLETE_GCC_TARGETS=mips sparc64 -.if defined(MAKE_OBSOLETE_GCC) -_OBSOLETE_GCC_TARGETS+=powerpc -.endif -TARGETS?=amd64 arm arm64 i386 riscv ${_OBSOLETE_GCC_TARGETS} +TARGETS?=amd64 arm arm64 i386 powerpc riscv ${_OBSOLETE_GCC_TARGETS} _UNIVERSE_TARGETS= ${TARGETS} TARGET_ARCHES_arm?= armv6 armv7 TARGET_ARCHES_arm64?= aarch64 TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 mipselhf mipshf mips64elhf mips64hf -TARGET_ARCHES_powerpc?= powerpc powerpc64 powerpcspe +# powerpcspe excluded until clang fixed +TARGET_ARCHES_powerpc?= powerpc powerpc64 # riscv64sf excluded due to PR 232085 TARGET_ARCHES_riscv?= riscv64 .for target in ${TARGETS} @@ -510,12 +508,10 @@ MAKE_PARAMS_riscv?= CROSS_TOOLCHAIN=riscv64-gcc .if !defined(MAKE_OBSOLETE_GCC) OBSOLETE_GCC_TARGETS=${_OBSOLETE_GCC_TARGETS} MAKE_PARAMS_mips?= CROSS_TOOLCHAIN=mips-gcc6 -MAKE_PARAMS_powerpc?= CROSS_TOOLCHAIN=powerpc64-gcc6 MAKE_PARAMS_sparc64?= CROSS_TOOLCHAIN=sparc64-gcc6 .endif TOOLCHAINS_mips= mips-gcc6 -TOOLCHAINS_powerpc= powerpc64-gcc6 TOOLCHAINS_riscv= riscv64-gcc TOOLCHAINS_sparc64= sparc64-gcc6 From owner-svn-src-all@freebsd.org Mon Jan 6 18:02:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BEB291DA776; Mon, 6 Jan 2020 18:02:02 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s3HZ4jSHz41n5; Mon, 6 Jan 2020 18:02:02 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9CE171A3CA; Mon, 6 Jan 2020 18:02:02 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006I227u050704; Mon, 6 Jan 2020 18:02:02 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006I22gn050703; Mon, 6 Jan 2020 18:02:02 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001061802.006I22gn050703@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 6 Jan 2020 18:02:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356420 - head/sys/mips/mips X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/mips/mips X-SVN-Commit-Revision: 356420 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 18:02:02 -0000 Author: jhb Date: Mon Jan 6 18:02:02 2020 New Revision: 356420 URL: https://svnweb.freebsd.org/changeset/base/356420 Log: Simplify arguments to signal handlers on mips. - Use ksi_addr directly as si_addr in the siginfo instead of the 'badvaddr' register. - Remove a duplicate assignment of si_code. - Use ksi_addr as the 4th argument to the old-style handler instead of 'badvaddr'. Reviewed by: brooks, kevans Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23013 Modified: head/sys/mips/mips/pm_machdep.c Modified: head/sys/mips/mips/pm_machdep.c ============================================================================== --- head/sys/mips/mips/pm_machdep.c Mon Jan 6 17:36:28 2020 (r356419) +++ head/sys/mips/mips/pm_machdep.c Mon Jan 6 18:02:02 2020 (r356420) @@ -147,12 +147,10 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask /* fill siginfo structure */ sf.sf_si = ksi->ksi_info; sf.sf_si.si_signo = sig; - sf.sf_si.si_code = ksi->ksi_code; - sf.sf_si.si_addr = (void*)(intptr_t)regs->badvaddr; } else { /* Old FreeBSD-style arguments. */ regs->a1 = ksi->ksi_code; - regs->a3 = regs->badvaddr; + regs->a3 = (uintptr_t)ksi->ksi_addr; /* sf.sf_ahu.sf_handler = catcher; */ } From owner-svn-src-all@freebsd.org Mon Jan 6 18:07:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 98BBF1DAFB8; Mon, 6 Jan 2020 18:07:54 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s3QL414dz422b; Mon, 6 Jan 2020 18:07:54 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 804E51A3FA; Mon, 6 Jan 2020 18:07:54 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006I7sB0052609; Mon, 6 Jan 2020 18:07:54 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006I7sXP052608; Mon, 6 Jan 2020 18:07:54 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001061807.006I7sXP052608@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 6 Jan 2020 18:07:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356421 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356421 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 18:07:54 -0000 Author: emaste Date: Mon Jan 6 18:07:54 2020 New Revision: 356421 URL: https://svnweb.freebsd.org/changeset/base/356421 Log: src.conf.5: regen after r356419, reenabling powerpc in universe Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Mon Jan 6 18:02:02 2020 (r356420) +++ head/share/man/man5/src.conf.5 Mon Jan 6 18:07:54 2020 (r356421) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd January 5, 2020 +.Dd January 6, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -197,7 +197,7 @@ as part of the normal system build. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITHOUT_BINUTILS_BOOTSTRAP Set to not build binutils (as, ld, and objdump) as part of the bootstrap process. @@ -213,7 +213,7 @@ Set build binutils (as, ld, and objdump) as part of the bootstrap process. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7 and i386/i386. +amd64/amd64, arm/armv6, arm/armv7, i386/i386, powerpc/powerpc and powerpc/powerpc64. .It Va WITHOUT_BLACKLIST Set this if you do not want to build .Xr blacklistd 8 @@ -268,7 +268,7 @@ and .Pa crtend.o . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITH_BSD_GREP Install BSD-licensed grep as '[ef]grep' instead of GNU grep. .It Va WITHOUT_BSNMP @@ -380,7 +380,7 @@ When set, it enforces these options: Set to build the Clang C/C++ compiler during the normal phase of the build. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITHOUT_CLANG_BOOTSTRAP Set to not build the Clang C/C++ compiler during the bootstrap phase of the build. @@ -393,7 +393,7 @@ riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, Set to build the Clang C/C++ compiler during the bootstrap phase of the build. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64 and i386/i386. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc and powerpc/powerpc64. .It Va WITH_CLANG_EXTRAS Set to build additional clang and llvm tools, such as bugpoint and clang-format. @@ -408,7 +408,7 @@ Set to build the ARCMigrate, Rewriter and StaticAnalyz Clang C/C++ compiler. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITHOUT_CLANG_IS_CC Set to install the GCC compiler as .Pa /usr/bin/cc , @@ -426,7 +426,7 @@ and .Pa /usr/bin/cpp . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64 and i386/i386. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc and powerpc/powerpc64. .It Va WITHOUT_CPP Set to not build .Xr cpp 1 . @@ -495,13 +495,13 @@ Set to not build .Xr cxgbetool 8 .Pp This is a default setting on -arm/armv6, arm/armv7, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITH_CXGBETOOL Set to build .Xr cxgbetool 8 .Pp This is a default setting on -amd64/amd64, arm64/aarch64, i386/i386 and sparc64/sparc64. +amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_CXX Set to not build .Xr c++ 1 @@ -658,7 +658,7 @@ and .Xr efivar 8 . .Pp This is a default setting on -riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_EFI Set to build .Xr efivar 3 @@ -749,7 +749,7 @@ Set to build .Xr gdb 1 . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITHOUT_GDB_LIBEXEC Set to install .Xr gdb 1 @@ -770,7 +770,7 @@ to be used as a fallback for if a newer version is not installed. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITH_GNUCXX Build the GNU C++ stack (g++, libstdc++). This option is deprecated and will be removed before @@ -802,7 +802,7 @@ Set to build and install and dependent tests. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64 and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and sparc64/sparc64. .It Va WITHOUT_GPIO Set to not build .Xr gpioctl 8 @@ -826,7 +826,7 @@ Set to build and install simple_httpd Set to not build or install HyperV utilities. .Pp This is a default setting on -arm/armv6, arm/armv7, arm64/aarch64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, arm64/aarch64, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_HYPERV Set to build or install HyperV utilities. .Pp @@ -980,7 +980,7 @@ On 64-bit platforms, set to not build 32-bit library s runtime linker. .Pp This is a default setting on -arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. +arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. .It Va WITHOUT_LIBCPLUSPLUS Set to avoid building libcxxrt and libc++. .It Va WITHOUT_LIBPTHREAD @@ -1011,12 +1011,12 @@ sparc64/sparc64. Set to build LLVM's lld linker. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITHOUT_LLDB Set to not build the LLDB debugger. .Pp This is a default setting on -arm/armv6, arm/armv7, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_LLDB Set to build the LLDB debugger. .Pp @@ -1029,23 +1029,23 @@ To be able to build the system, either Binutils or LLD enabled unless an alternate linker is provided via XLD. .Pp This is a default setting on -riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_LLD_BOOTSTRAP Set to build the LLD linker during the bootstrap phase of the build, and use it during buildworld and buildkernel. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64 and i386/i386. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386 and powerpc/powerpc64. .It Va WITHOUT_LLD_IS_LD Set to use GNU binutils ld as the system linker, instead of LLVM's LLD. .Pp This is a default setting on -riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_LLD_IS_LD Set to use LLVM's LLD as the system linker, instead of GNU binutils ld. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64 and i386/i386. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386 and powerpc/powerpc64. .It Va WITHOUT_LLVM_COV Set to not build the .Xr llvm-cov 1 @@ -1059,7 +1059,7 @@ Set to build the tool. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITHOUT_LLVM_LIBUNWIND Set to use GCC's stack unwinder (instead of LLVM's libunwind). .Pp @@ -1069,7 +1069,7 @@ arm/armv6, arm/armv7 and sparc64/sparc64. Set to use LLVM's libunwind stack unwinder (instead of GCC's unwinder). .Pp This is a default setting on -amd64/amd64, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITHOUT_LLVM_TARGET_AARCH64 Set to not build LLVM target support for AArch64. The @@ -1156,7 +1156,7 @@ endian mode. Disable inclusion of GELI crypto support in the boot chain binaries. .Pp This is a default setting on -sparc64/sparc64. +powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITH_LOADER_GELI Set to build GELI bootloader support. .Pp @@ -1166,7 +1166,7 @@ amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386 Set to not build LUA bindings for the boot loader. .Pp This is a default setting on -sparc64/sparc64. +powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITH_LOADER_LUA Set to build LUA bindings for the boot loader. .Pp @@ -1181,7 +1181,7 @@ amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386 Set to build openfirmware bootloader components. .Pp This is a default setting on -sparc64/sparc64. +powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_LOADER_UBOOT Disable building of ubldr. .Pp @@ -1191,7 +1191,7 @@ amd64/amd64, arm64/aarch64, i386/i386, riscv/riscv64 a Set to build ubldr. .Pp This is a default setting on -arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +arm/armv6, arm/armv7, powerpc/powerpc, powerpc/powerpc64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITH_LOADER_VERBOSE Set to build with extra verbose debugging in the loader. May explode already nearly too large loader over the limit. @@ -1351,13 +1351,13 @@ Set to not build .Xr mlx5tool 8 .Pp This is a default setting on -arm/armv6, arm/armv7, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. .It Va WITH_MLX5TOOL Set to build .Xr mlx5tool 8 .Pp This is a default setting on -amd64/amd64, arm64/aarch64, i386/i386 and sparc64/sparc64. +amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_NDIS Set to not build programs and libraries related to NDIS emulation support. @@ -1422,13 +1422,13 @@ and related programs. Set to not build nvme related tools and kernel modules. .Pp This is a default setting on -arm/armv6, arm/armv7, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_NVME Set to build nvme related tools and kernel modules. .Pp This is a default setting on -amd64/amd64, arm64/aarch64 and i386/i386. +amd64/amd64, arm64/aarch64, i386/i386 and powerpc/powerpc64. .It Va WITH_OFED Set to build the .Dq "OpenFabrics Enterprise Distribution" @@ -1443,12 +1443,12 @@ Enable building openldap support for kerberos. Set to not build LLVM's OpenMP runtime. .Pp This is a default setting on -arm/armv6, arm/armv7, arm64/aarch64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, arm64/aarch64, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_OPENMP Set to build LLVM's OpenMP runtime. .Pp This is a default setting on -amd64/amd64 and i386/i386. +amd64/amd64, i386/i386 and powerpc/powerpc64. .It Va WITHOUT_OPENSSH Set to not build OpenSSH. .It Va WITHOUT_OPENSSL @@ -1538,7 +1538,7 @@ Set to build profiled libraries for use with .Xr gprof 8 . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. .It Va WITHOUT_QUOTAS Set to not build .Xr quota 1 @@ -1628,7 +1628,7 @@ mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mi Set to build world with propolice stack smashing protection. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64 and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and sparc64/sparc64. .It Va WITH_STAGING Enable staging of files to a stage tree. This can be best thought of as auto-install to From owner-svn-src-all@freebsd.org Mon Jan 6 18:15:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5CF7F1DC37D; Mon, 6 Jan 2020 18:15:56 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s3bc1Wd5z42j8; Mon, 6 Jan 2020 18:15:56 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 27FD01A5C8; Mon, 6 Jan 2020 18:15:56 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006IFtLP059160; Mon, 6 Jan 2020 18:15:55 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006IFt3W059156; Mon, 6 Jan 2020 18:15:55 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001061815.006IFt3W059156@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Jan 2020 18:15:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356422 - in head: lib/libc lib/libsysdecode targets/pseudo/userland/gnu X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: lib/libc lib/libsysdecode targets/pseudo/userland/gnu X-SVN-Commit-Revision: 356422 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 18:15:56 -0000 Author: kevans Date: Mon Jan 6 18:15:55 2020 New Revision: 356422 URL: https://svnweb.freebsd.org/changeset/base/356422 Log: Update libssp paths in various Makefile.depend* files I've been advised that the model that uses these are fairly resilient, but we do know the proper path to use (or remove, in the case of ^/targets/...), so go ahead and update them to reflect that. Modified: head/lib/libc/Makefile.depend.options head/lib/libsysdecode/Makefile.depend head/targets/pseudo/userland/gnu/Makefile.depend Modified: head/lib/libc/Makefile.depend.options ============================================================================== --- head/lib/libc/Makefile.depend.options Mon Jan 6 18:07:54 2020 (r356421) +++ head/lib/libc/Makefile.depend.options Mon Jan 6 18:15:55 2020 (r356422) @@ -3,6 +3,6 @@ DIRDEPS_OPTIONS= SSP -DIRDEPS.SSP.yes= gnu/lib/libssp/libssp_nonshared +DIRDEPS.SSP.yes= lib/libssp_nonshared .include Modified: head/lib/libsysdecode/Makefile.depend ============================================================================== --- head/lib/libsysdecode/Makefile.depend Mon Jan 6 18:07:54 2020 (r356421) +++ head/lib/libsysdecode/Makefile.depend Mon Jan 6 18:15:55 2020 (r356422) @@ -7,7 +7,6 @@ DIRDEPS = \ gnu/lib/libdialog \ gnu/lib/libgomp \ gnu/lib/libregex \ - gnu/lib/libssp \ gnu/lib/libstdc++ \ gnu/lib/libsupc++ \ include \ @@ -100,6 +99,7 @@ DIRDEPS = \ lib/libsdp \ lib/libsecureboot \ lib/libsqlite3 \ + lib/libssp \ lib/libstand \ lib/libstdthreads \ lib/libtacplus \ Modified: head/targets/pseudo/userland/gnu/Makefile.depend ============================================================================== --- head/targets/pseudo/userland/gnu/Makefile.depend Mon Jan 6 18:07:54 2020 (r356421) +++ head/targets/pseudo/userland/gnu/Makefile.depend Mon Jan 6 18:15:55 2020 (r356422) @@ -12,8 +12,6 @@ DIRDEPS = \ gnu/lib/libgcov \ gnu/lib/libgomp \ gnu/lib/libregex/doc \ - gnu/lib/libssp \ - gnu/lib/libssp/libssp_nonshared \ gnu/lib/libstdc++ \ gnu/lib/libsupc++ \ gnu/usr.bin/binutils/ar \ From owner-svn-src-all@freebsd.org Mon Jan 6 18:25:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 445AF1DD58E; Mon, 6 Jan 2020 18:25:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s3qC18FKz43FZ; Mon, 6 Jan 2020 18:25:59 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 227D31A78D; Mon, 6 Jan 2020 18:25:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006IPxrA066285; Mon, 6 Jan 2020 18:25:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006IPwrP066283; Mon, 6 Jan 2020 18:25:58 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001061825.006IPwrP066283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 6 Jan 2020 18:25:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356423 - in head: share/mk tests/sys/fs X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: share/mk tests/sys/fs X-SVN-Commit-Revision: 356423 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 18:25:59 -0000 Author: kevans Date: Mon Jan 6 18:25:58 2020 New Revision: 356423 URL: https://svnweb.freebsd.org/changeset/base/356423 Log: Refine fusefs test workaround for mips+llvm This re-enables building the googletest suite by default on mips and instead specifically doesn't build fusefs tests for mips+clang builds. clang will easily spent >= 1.5 hours compiling a single file due to a bug in optimization (see LLVM PR 43263), so turn these off for now while that's hashed out. GCC builds are unaffected and build the fusefs tests as-is. Clang builds only happen by early adopters attempting to hash out the remaining issues. The comment has been updated to reflect its new position and use less strong wording about imposing on people. Discussed with: ngie, asomers Reviewed by: ngie Modified: head/share/mk/src.opts.mk head/tests/sys/fs/Makefile Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Mon Jan 6 18:15:55 2020 (r356422) +++ head/share/mk/src.opts.mk Mon Jan 6 18:25:58 2020 (r356423) @@ -108,6 +108,7 @@ __DEFAULT_YES_OPTIONS = \ GDB \ GNU_DIFF \ GNU_GREP \ + GOOGLETEST \ GPIO \ HAST \ HTML \ @@ -263,15 +264,6 @@ __T=${MACHINE_ARCH} __TT=${TARGET} .else __TT=${MACHINE} -.endif - -# Default GOOGLETEST to off for MIPS while LLVM PR 43263 is active. Part -# of the fusefs tests trigger excessively long compile times. It does -# eventually succeed, but this shouldn't be forced on those building by default. -.if ${__TT} == "mips" -__DEFAULT_NO_OPTIONS+= GOOGLETEST -.else -__DEFAULT_YES_OPTIONS+= GOOGLETEST .endif # All supported backends for LLVM_TARGET_XXX Modified: head/tests/sys/fs/Makefile ============================================================================== --- head/tests/sys/fs/Makefile Mon Jan 6 18:15:55 2020 (r356422) +++ head/tests/sys/fs/Makefile Mon Jan 6 18:25:58 2020 (r356423) @@ -12,7 +12,12 @@ TESTSRC= ${SRCTOP}/contrib/netbsd-tests/fs #TESTS_SUBDIRS+= nullfs # XXX: needs rump # fusefs tests cannot be compiled/used without the googletest infrastructure. .if ${COMPILER_FEATURES:Mc++14} && ${MK_GOOGLETEST} != "no" +# Don't build fusefs tests for MIPS while LLVM PR 43263 is active, as part +# of the fusefs tests trigger excessively long compile time. The build does +# eventually succeed, but it's perhaps better to not do so by default for now. +.if ${MACHINE_CPUARCH} != "mips" || ${COMPILER_TYPE} != "clang" TESTS_SUBDIRS+= fusefs +.endif .endif TESTS_SUBDIRS+= tmpfs From owner-svn-src-all@freebsd.org Mon Jan 6 19:35:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C47F81E50D3; Mon, 6 Jan 2020 19:35:23 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s5MH3K0Hz46lS; Mon, 6 Jan 2020 19:35:23 +0000 (UTC) (envelope-from tsoome@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 68CBB1B46C; Mon, 6 Jan 2020 19:35:23 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006JZNwR009288; Mon, 6 Jan 2020 19:35:23 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006JZNQG009287; Mon, 6 Jan 2020 19:35:23 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001061935.006JZNQG009287@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Mon, 6 Jan 2020 19:35:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356424 - head/stand/libsa/zfs X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/libsa/zfs X-SVN-Commit-Revision: 356424 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 19:35:23 -0000 Author: tsoome Date: Mon Jan 6 19:35:22 2020 New Revision: 356424 URL: https://svnweb.freebsd.org/changeset/base/356424 Log: loader: update zfsimpl.c from illumos review suggestions Add extra comments and update error handling. MFH: 1 week Modified: head/stand/libsa/zfs/zfsimpl.c Modified: head/stand/libsa/zfs/zfsimpl.c ============================================================================== --- head/stand/libsa/zfs/zfsimpl.c Mon Jan 6 18:25:58 2020 (r356423) +++ head/stand/libsa/zfs/zfsimpl.c Mon Jan 6 19:35:22 2020 (r356424) @@ -1097,7 +1097,8 @@ vdev_create(uint64_t guid, vdev_read_t *_read) vdev->v_read = _read; /* - * root vdev has no read function. + * root vdev has no read function, we use this fact to + * skip setting up data we do not need for root vdev. * We only point root vdev from spa. */ if (_read != NULL) { @@ -1142,7 +1143,7 @@ vdev_set_initial_state(vdev_t *vdev, const unsigned ch else if (isnt_present != 0) vdev->v_state = VDEV_STATE_CANT_OPEN; - vdev->v_islog = is_log == 1; + vdev->v_islog = is_log != 0; } static int @@ -1234,9 +1235,8 @@ vdev_init(uint64_t guid, const unsigned char *nvlist, if (strcmp(type, "raidz") == 0) { if (vdev->v_nparity < 1 || vdev->v_nparity > 3) { - printf("ZFS: can only boot from disk, " - "mirror, raidz1, raidz2 and raidz3 " - "vdevs\n"); + printf("ZFS: invalid raidz parity: %d\n", + vdev->v_nparity); return (EIO); } (void) asprintf(&name, "%s%d-%" PRIu64, type, @@ -1310,16 +1310,17 @@ vdev_insert(vdev_t *top_vdev, vdev_t *vdev) if (previous == NULL) { STAILQ_INSERT_HEAD(&top_vdev->v_children, vdev, v_childlink); - count = vdev_child_count(top_vdev); - if (top_vdev->v_nchildren < count) - top_vdev->v_nchildren = count; + } else if (previous->v_id == vdev->v_id) { + /* + * This vdev was configured from label config, + * do not insert duplicate. + */ return; + } else { + STAILQ_INSERT_AFTER(&top_vdev->v_children, previous, vdev, + v_childlink); } - if (previous->v_id == vdev->v_id) - return; - - STAILQ_INSERT_AFTER(&top_vdev->v_children, previous, vdev, v_childlink); count = vdev_child_count(top_vdev); if (top_vdev->v_nchildren < count) top_vdev->v_nchildren = count; @@ -1365,6 +1366,10 @@ vdev_from_nvlist(spa_t *spa, uint64_t top_guid, const kids = nvlist_next(kids); } } else { + /* + * When there are no children, nvlist_find() does return + * error, reset it because leaf devices have no children. + */ rc = 0; } @@ -1491,7 +1496,7 @@ vdev_init_from_nvlist(spa_t *spa, const unsigned char /* Wrong guid?! */ if (spa->spa_guid != pool_guid) - return (EIO); + return (EINVAL); spa->spa_root_vdev->v_nchildren = vdev_children; @@ -1502,7 +1507,7 @@ vdev_init_from_nvlist(spa_t *spa, const unsigned char * MOS config has at least one child for root vdev. */ if (rc != 0) - return (EIO); + return (rc); for (int i = 0; i < nkids; i++) { uint64_t guid; @@ -3266,7 +3271,10 @@ zfs_spa_init(spa_t *spa) if (rc != 0) return (rc); - /* Update vdevs from MOS config. */ + /* + * Update vdevs from MOS config. Note, we do skip encoding bytes + * here. See also vdev_label_read_config(). + */ rc = vdev_init_from_nvlist(spa, nvlist + 4); free(nvlist); return (rc); From owner-svn-src-all@freebsd.org Mon Jan 6 19:47:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E94EB1E6A52; Mon, 6 Jan 2020 19:47:59 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s5dq5wByz47Pl; Mon, 6 Jan 2020 19:47:59 +0000 (UTC) (envelope-from kaktus@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C1E8C1B63F; Mon, 6 Jan 2020 19:47:59 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006Jlx0j015635; Mon, 6 Jan 2020 19:47:59 GMT (envelope-from kaktus@FreeBSD.org) Received: (from kaktus@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006Jlxq4015634; Mon, 6 Jan 2020 19:47:59 GMT (envelope-from kaktus@FreeBSD.org) Message-Id: <202001061947.006Jlxq4015634@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kaktus set sender to kaktus@FreeBSD.org using -f From: Pawel Biernacki Date: Mon, 6 Jan 2020 19:47:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356425 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kaktus X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356425 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 19:48:00 -0000 Author: kaktus Date: Mon Jan 6 19:47:59 2020 New Revision: 356425 URL: https://svnweb.freebsd.org/changeset/base/356425 Log: kern_sysctl: make sysctl.debug work as intended r136999 introduced SYSTCL_DEBUG but apparently "opt_sysctl.h" was never included making the option ignored. r322954 introduced sysctl.reuse_test with OID number equal to 0, effectively shadowing the very special sysctl.debug one. Use OID_AUTO as it doesn't need any special treatment. Reviewed by: kib (mentor) Approved by: kib (mentor) Differential Revision: https://reviews.freebsd.org/D23056 Modified: head/sys/kern/kern_sysctl.c Modified: head/sys/kern/kern_sysctl.c ============================================================================== --- head/sys/kern/kern_sysctl.c Mon Jan 6 19:35:22 2020 (r356424) +++ head/sys/kern/kern_sysctl.c Mon Jan 6 19:47:59 2020 (r356425) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include "opt_capsicum.h" #include "opt_ddb.h" #include "opt_ktrace.h" +#include "opt_sysctl.h" #include #include @@ -404,8 +405,9 @@ sysctl_reuse_test(SYSCTL_HANDLER_ARGS) SYSCTL_RUNLOCK(&tracker); return (0); } -SYSCTL_PROC(_sysctl, 0, reuse_test, CTLTYPE_STRING|CTLFLAG_RD|CTLFLAG_MPSAFE, - 0, 0, sysctl_reuse_test, "-", ""); +SYSCTL_PROC(_sysctl, OID_AUTO, reuse_test, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, 0, sysctl_reuse_test, "-", + ""); #endif void From owner-svn-src-all@freebsd.org Mon Jan 6 20:58:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 185B41EDE03; Mon, 6 Jan 2020 20:58:00 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s7Bb6zRHz4CRB; Mon, 6 Jan 2020 20:57:59 +0000 (UTC) (envelope-from andrew@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EAC1C1C305; Mon, 6 Jan 2020 20:57:59 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006KvxWi058190; Mon, 6 Jan 2020 20:57:59 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006KvxZC058188; Mon, 6 Jan 2020 20:57:59 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <202001062057.006KvxZC058188@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 6 Jan 2020 20:57:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356426 - in head/sys/arm64: arm64 include X-SVN-Group: head X-SVN-Commit-Author: andrew X-SVN-Commit-Paths: in head/sys/arm64: arm64 include X-SVN-Commit-Revision: 356426 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 20:58:00 -0000 Author: andrew Date: Mon Jan 6 20:57:59 2020 New Revision: 356426 URL: https://svnweb.freebsd.org/changeset/base/356426 Log: Add more Arm arm64 CPU identification values - Add all the Cortex-A CPU ID register values I can find. - Add the Neoverse-N1 ID regiser value [1] - Sort macros by register value. PR: 243065 Submitted by: Ali Saidi [1] Sponsored by: DARPA, AFRL (other than [1]) Modified: head/sys/arm64/arm64/identcpu.c head/sys/arm64/include/cpu.h Modified: head/sys/arm64/arm64/identcpu.c ============================================================================== --- head/sys/arm64/arm64/identcpu.c Mon Jan 6 19:47:59 2020 (r356425) +++ head/sys/arm64/arm64/identcpu.c Mon Jan 6 20:57:59 2020 (r356426) @@ -156,9 +156,14 @@ static const struct cpu_parts cpu_parts_arm[] = { { CPU_PART_CORTEX_A53, "Cortex-A53" }, { CPU_PART_CORTEX_A55, "Cortex-A55" }, { CPU_PART_CORTEX_A57, "Cortex-A57" }, + { CPU_PART_CORTEX_A65, "Cortex-A65" }, { CPU_PART_CORTEX_A72, "Cortex-A72" }, { CPU_PART_CORTEX_A73, "Cortex-A73" }, { CPU_PART_CORTEX_A75, "Cortex-A75" }, + { CPU_PART_CORTEX_A76, "Cortex-A76" }, + { CPU_PART_CORTEX_A76AE, "Cortex-A76AE" }, + { CPU_PART_CORTEX_A77, "Cortex-A77" }, + { CPU_PART_NEOVERSE_N1, "Neoverse-N1" }, CPU_PART_NONE, }; /* Cavium */ Modified: head/sys/arm64/include/cpu.h ============================================================================== --- head/sys/arm64/include/cpu.h Mon Jan 6 19:47:59 2020 (r356425) +++ head/sys/arm64/include/cpu.h Mon Jan 6 20:57:59 2020 (r356426) @@ -81,13 +81,18 @@ /* ARM Part numbers */ #define CPU_PART_FOUNDATION 0xD00 -#define CPU_PART_CORTEX_A35 0xD04 #define CPU_PART_CORTEX_A53 0xD03 +#define CPU_PART_CORTEX_A35 0xD04 #define CPU_PART_CORTEX_A55 0xD05 +#define CPU_PART_CORTEX_A65 0xD06 #define CPU_PART_CORTEX_A57 0xD07 #define CPU_PART_CORTEX_A72 0xD08 #define CPU_PART_CORTEX_A73 0xD09 #define CPU_PART_CORTEX_A75 0xD0A +#define CPU_PART_CORTEX_A76 0xD0B +#define CPU_PART_NEOVERSE_N1 0xD0C +#define CPU_PART_CORTEX_A77 0xD0D +#define CPU_PART_CORTEX_A76AE 0xD0E /* Cavium Part numbers */ #define CPU_PART_THUNDERX 0x0A1 From owner-svn-src-all@freebsd.org Mon Jan 6 21:14:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF5D31EFA60; Mon, 6 Jan 2020 21:14:27 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s7Yb5fLZz4DRl; Mon, 6 Jan 2020 21:14:27 +0000 (UTC) (envelope-from mckusick@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD2AC1C6BD; Mon, 6 Jan 2020 21:14:27 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006LERBH069982; Mon, 6 Jan 2020 21:14:27 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006LERon069981; Mon, 6 Jan 2020 21:14:27 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202001062114.006LERon069981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Mon, 6 Jan 2020 21:14:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356427 - stable/12/sbin/fsck_ffs X-SVN-Group: stable-12 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/12/sbin/fsck_ffs X-SVN-Commit-Revision: 356427 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 21:14:27 -0000 Author: mckusick Date: Mon Jan 6 21:14:27 2020 New Revision: 356427 URL: https://svnweb.freebsd.org/changeset/base/356427 Log: MFC of 356063 Do not ask to use journal in fsck_ffs if journal is out of date Modified: stable/12/sbin/fsck_ffs/main.c stable/12/sbin/fsck_ffs/suj.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck_ffs/main.c ============================================================================== --- stable/12/sbin/fsck_ffs/main.c Mon Jan 6 20:57:59 2020 (r356426) +++ stable/12/sbin/fsck_ffs/main.c Mon Jan 6 21:14:27 2020 (r356427) @@ -423,13 +423,11 @@ checkfilesys(char *filesys) */ if ((sblock.fs_flags & FS_SUJ) == FS_SUJ) { if ((sblock.fs_flags & FS_NEEDSFSCK) != FS_NEEDSFSCK && skipclean) { - if (preen || reply("USE JOURNAL")) { - if (suj_check(filesys) == 0) { - printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); - if (chkdoreload(mntp) == 0) - exit(0); - exit(4); - } + if (suj_check(filesys) == 0) { + printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); } printf("** Skipping journal, falling through to full fsck\n\n"); } Modified: stable/12/sbin/fsck_ffs/suj.c ============================================================================== --- stable/12/sbin/fsck_ffs/suj.c Mon Jan 6 20:57:59 2020 (r356426) +++ stable/12/sbin/fsck_ffs/suj.c Mon Jan 6 21:14:27 2020 (r356427) @@ -2709,6 +2709,8 @@ suj_check(const char *filesys) printf("** SU+J Recovering %s\n", filesys); if (suj_verifyino(jip) != 0) return (-1); + if (!preen && !reply("USE JOURNAL")) + return (-1); /* * Build a list of journal blocks in jblocks before parsing the * available journal blocks in with suj_read(). From owner-svn-src-all@freebsd.org Mon Jan 6 21:23:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D4A851F0942; Mon, 6 Jan 2020 21:23:15 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s7ll4cN8z4F5b; Mon, 6 Jan 2020 21:23:15 +0000 (UTC) (envelope-from mckusick@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 98FBA1C88D; Mon, 6 Jan 2020 21:23:15 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006LNFxo076240; Mon, 6 Jan 2020 21:23:15 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006LNF4W076234; Mon, 6 Jan 2020 21:23:15 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202001062123.006LNF4W076234@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Mon, 6 Jan 2020 21:23:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356428 - stable/11/sbin/fsck_ffs X-SVN-Group: stable-11 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/11/sbin/fsck_ffs X-SVN-Commit-Revision: 356428 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 21:23:15 -0000 Author: mckusick Date: Mon Jan 6 21:23:14 2020 New Revision: 356428 URL: https://svnweb.freebsd.org/changeset/base/356428 Log: MFC of 356063 Do not ask to use journal in fsck_ffs if journal is out of date Modified: stable/11/sbin/fsck_ffs/main.c stable/11/sbin/fsck_ffs/suj.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/fsck_ffs/main.c ============================================================================== --- stable/11/sbin/fsck_ffs/main.c Mon Jan 6 21:14:27 2020 (r356427) +++ stable/11/sbin/fsck_ffs/main.c Mon Jan 6 21:23:14 2020 (r356428) @@ -420,13 +420,11 @@ checkfilesys(char *filesys) */ if ((sblock.fs_flags & FS_SUJ) == FS_SUJ) { if ((sblock.fs_flags & FS_NEEDSFSCK) != FS_NEEDSFSCK && skipclean) { - if (preen || reply("USE JOURNAL")) { - if (suj_check(filesys) == 0) { - printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); - if (chkdoreload(mntp) == 0) - exit(0); - exit(4); - } + if (suj_check(filesys) == 0) { + printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); } printf("** Skipping journal, falling through to full fsck\n\n"); } Modified: stable/11/sbin/fsck_ffs/suj.c ============================================================================== --- stable/11/sbin/fsck_ffs/suj.c Mon Jan 6 21:14:27 2020 (r356427) +++ stable/11/sbin/fsck_ffs/suj.c Mon Jan 6 21:23:14 2020 (r356428) @@ -2726,6 +2726,8 @@ suj_check(const char *filesys) printf("** SU+J Recovering %s\n", filesys); if (suj_verifyino(jip) != 0) return (-1); + if (!preen && !reply("USE JOURNAL")) + return (-1); /* * Build a list of journal blocks in jblocks before parsing the * available journal blocks in with suj_read(). From owner-svn-src-all@freebsd.org Mon Jan 6 22:08:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 91E5D1F5135; Mon, 6 Jan 2020 22:08:11 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s8lb2XZ8z4JF9; Mon, 6 Jan 2020 22:08:10 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 006M82QG034310 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 6 Jan 2020 14:08:03 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 006M8219034309; Mon, 6 Jan 2020 14:08:02 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Mon, 6 Jan 2020 14:08:02 -0800 From: Gleb Smirnoff To: Jeff Roberson Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356389 - head/sys/vm Message-ID: <20200106220802.GI3339@FreeBSD.org> References: <202001052254.005MsQsH027909@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001052254.005MsQsH027909@repo.freebsd.org> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47s8lb2XZ8z4JF9 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.995,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 22:08:11 -0000 Jeff, On Sun, Jan 05, 2020 at 10:54:26PM +0000, Jeff Roberson wrote: J> Author: jeff J> Date: Sun Jan 5 22:54:25 2020 J> New Revision: 356389 J> URL: https://svnweb.freebsd.org/changeset/base/356389 J> J> Log: J> The fix in r356353 was insufficient. Not every architecture returns 0 for J> EARLY_COUNTER. Only amd64 seems to. J> J> Suggested by: markj J> Reported by: lwhsu J> Reviewed by: markj J> PR: 243117 J> J> Modified: J> head/sys/vm/uma_core.c J> J> Modified: head/sys/vm/uma_core.c J> ============================================================================== J> --- head/sys/vm/uma_core.c Sun Jan 5 21:35:02 2020 (r356388) J> +++ head/sys/vm/uma_core.c Sun Jan 5 22:54:25 2020 (r356389) J> @@ -4153,8 +4153,10 @@ uma_zone_get_cur(uma_zone_t zone) J> int64_t nitems; J> u_int i; J> J> - nitems = counter_u64_fetch(zone->uz_allocs) - J> - counter_u64_fetch(zone->uz_frees); J> + nitems = 0; J> + if (zone->uz_allocs != EARLY_COUNTER && zone->uz_frees != EARLY_COUNTER) J> + nitems = counter_u64_fetch(zone->uz_allocs) - J> + counter_u64_fetch(zone->uz_frees); J> CPU_FOREACH(i) J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs) - J> atomic_load_64(&zone->uz_cpu[i].uc_frees); J> @@ -4168,7 +4170,9 @@ uma_zone_get_allocs(uma_zone_t zone) J> uint64_t nitems; J> u_int i; J> J> - nitems = counter_u64_fetch(zone->uz_allocs); J> + nitems = 0; J> + if (zone->uz_allocs != EARLY_COUNTER) J> + nitems = counter_u64_fetch(zone->uz_allocs); J> CPU_FOREACH(i) J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs); J> J> @@ -4181,7 +4185,9 @@ uma_zone_get_frees(uma_zone_t zone) J> uint64_t nitems; J> u_int i; J> J> - nitems = counter_u64_fetch(zone->uz_frees); J> + nitems = 0; J> + if (zone->uz_frees != EARLY_COUNTER) J> + nitems = counter_u64_fetch(zone->uz_frees); J> CPU_FOREACH(i) J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_frees); IMHO, tidier code would be not to check the pointers, but check UMA booted status: if (__predict_true(booted == BOOT_RUNNING)) nitems = counter_u64_fetch(zone->uz_frees); -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Mon Jan 6 22:28:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F0A3A1F6F17 for ; Mon, 6 Jan 2020 22:28:14 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s9Bj55S0z4KKr for ; Mon, 6 Jan 2020 22:28:13 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by mail-pl1-x633.google.com with SMTP id c13so22379640pls.0 for ; Mon, 06 Jan 2020 14:28:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jroberson-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=y/OjVOrLRG+qDxMHYAUWxp6z0Pgxw0cYHgQ9X2GY2BA=; b=iDcSCZ+7HXkkutpiS/Ofg1QmH7vQl4q+jUcCXZT60kDORAJxiy83JKXOjWdHhdbaBf D3UxDhlEW8VOHdYi/UXjQGpt4WznmeuaSM9xkjfmLydPeLUScIyt1UEZ9APLINrgMMGM OdzFmKyQwLxT6uI4QyrRTu9TS97lYg+g71EhJMmW8eOPI//pP/R+jI/oZehL3MrTL7rn 5O1QWDFVTuKJkZUSLdQ8kW9JX60cYrRxl6ubzAbDUaaaa0bq5lDnAP2gdXZC3ZyOZPPd 4H84LBtHp1enKW1Pqt58Z9yaJ4u6T88X44Ihl37Haa1AZI1WvtVvXsCbRaWr1oonAfNk m9JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=y/OjVOrLRG+qDxMHYAUWxp6z0Pgxw0cYHgQ9X2GY2BA=; b=kr5mf4uSielUil+u8MHKRriXbaPOxKhEwUeeY5uka97AmfqdAf64icvZKBfDxO626v 6CniSdgFg3WuDvCbo/n4xXTVB8XmXHNuW0UY1aIb5vp735LNHErR2eh3DXrnXCUtx/T/ Q+lYOcTc/xgjLGarQWSC01ScUIcsgYCPaGs9BU8n0KrEWlExF6inyKr0k494ApvwaUj2 ARxd7p6Jcirw20AoQcjB1EKbrSrHsqtfAUpiOpwpzJLNLLVujS3hJckejM8aMnW6NkiK mbQJvO6Y5Luhr9bnBh0mkctAyCt49kEnunoLJv48ZWjmCaDl52sDfG4Cutm2kcPpbsZ8 PORA== X-Gm-Message-State: APjAAAUAwRU/ZqYeQvbp3+pggv0Cx0xEbMRS0JVSdF5LX7EKfvTAVEvS Wd4ewARHPRhGwAFVJpMvOdjdDg== X-Google-Smtp-Source: APXvYqxVM8hrZMrVrN0PJJj+jvT0Ce4rQQgDXZKYwAk3Lheaytw4jaSMCSqQOni3tOHlxy+CY17HZw== X-Received: by 2002:a17:902:b08d:: with SMTP id p13mr108906635plr.109.1578349691709; Mon, 06 Jan 2020 14:28:11 -0800 (PST) Received: from rrcs-76-81-105-82.west.biz.rr.com (rrcs-76-81-105-82.west.biz.rr.com. [76.81.105.82]) by smtp.gmail.com with ESMTPSA id q7sm25607665pjd.3.2020.01.06.14.28.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jan 2020 14:28:11 -0800 (PST) Date: Mon, 6 Jan 2020 12:28:08 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Gleb Smirnoff cc: Jeff Roberson , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356389 - head/sys/vm In-Reply-To: <20200106220802.GI3339@FreeBSD.org> Message-ID: References: <202001052254.005MsQsH027909@repo.freebsd.org> <20200106220802.GI3339@FreeBSD.org> User-Agent: Alpine 2.21.9999 (BSF 287 2018-06-16) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Rspamd-Queue-Id: 47s9Bj55S0z4KKr X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=jroberson-net.20150623.gappssmtp.com header.s=20150623 header.b=iDcSCZ+7; dmarc=none; spf=none (mx1.freebsd.org: domain of jroberson@jroberson.net has no SPF policy when checking 2607:f8b0:4864:20::633) smtp.mailfrom=jroberson@jroberson.net X-Spamd-Result: default: False [-4.43 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[jroberson-net.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[jroberson.net]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[jroberson-net.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[3.3.6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-2.63)[ip: (-9.12), ipnet: 2607:f8b0::/32(-2.13), asn: 15169(-1.85), country: US(-0.05)] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 22:28:15 -0000 On Mon, 6 Jan 2020, Gleb Smirnoff wrote: > Jeff, > > On Sun, Jan 05, 2020 at 10:54:26PM +0000, Jeff Roberson wrote: > J> Author: jeff > J> Date: Sun Jan 5 22:54:25 2020 > J> New Revision: 356389 > J> URL: https://svnweb.freebsd.org/changeset/base/356389 > J> > J> Log: > J> The fix in r356353 was insufficient. Not every architecture returns 0 for > J> EARLY_COUNTER. Only amd64 seems to. > J> > J> Suggested by: markj > J> Reported by: lwhsu > J> Reviewed by: markj > J> PR: 243117 > J> > J> Modified: > J> head/sys/vm/uma_core.c > J> > J> Modified: head/sys/vm/uma_core.c > J> ============================================================================== > J> --- head/sys/vm/uma_core.c Sun Jan 5 21:35:02 2020 (r356388) > J> +++ head/sys/vm/uma_core.c Sun Jan 5 22:54:25 2020 (r356389) > J> @@ -4153,8 +4153,10 @@ uma_zone_get_cur(uma_zone_t zone) > J> int64_t nitems; > J> u_int i; > J> > J> - nitems = counter_u64_fetch(zone->uz_allocs) - > J> - counter_u64_fetch(zone->uz_frees); > J> + nitems = 0; > J> + if (zone->uz_allocs != EARLY_COUNTER && zone->uz_frees != EARLY_COUNTER) > J> + nitems = counter_u64_fetch(zone->uz_allocs) - > J> + counter_u64_fetch(zone->uz_frees); > J> CPU_FOREACH(i) > J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs) - > J> atomic_load_64(&zone->uz_cpu[i].uc_frees); > J> @@ -4168,7 +4170,9 @@ uma_zone_get_allocs(uma_zone_t zone) > J> uint64_t nitems; > J> u_int i; > J> > J> - nitems = counter_u64_fetch(zone->uz_allocs); > J> + nitems = 0; > J> + if (zone->uz_allocs != EARLY_COUNTER) > J> + nitems = counter_u64_fetch(zone->uz_allocs); > J> CPU_FOREACH(i) > J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs); > J> > J> @@ -4181,7 +4185,9 @@ uma_zone_get_frees(uma_zone_t zone) > J> uint64_t nitems; > J> u_int i; > J> > J> - nitems = counter_u64_fetch(zone->uz_frees); > J> + nitems = 0; > J> + if (zone->uz_frees != EARLY_COUNTER) > J> + nitems = counter_u64_fetch(zone->uz_frees); > J> CPU_FOREACH(i) > J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_frees); > > IMHO, tidier code would be not to check the pointers, but check UMA booted status: > > if (__predict_true(booted == BOOT_RUNNING)) > nitems = counter_u64_fetch(zone->uz_frees); That seems fine. I have drained my UMA patch queue for now but if I come back around I will include this. Thanks, Jeff > > -- > Gleb Smirnoff > From owner-svn-src-all@freebsd.org Mon Jan 6 22:48:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3BCF51F8E14; Mon, 6 Jan 2020 22:48:53 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s9fX6WbPz4MBv; Mon, 6 Jan 2020 22:48:52 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 006MmoR0034496 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 6 Jan 2020 14:48:50 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 006MmoBt034495; Mon, 6 Jan 2020 14:48:50 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Mon, 6 Jan 2020 14:48:50 -0800 From: Gleb Smirnoff To: Jeff Roberson Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356393 - head/sys/vm Message-ID: <20200106224850.GJ3339@FreeBSD.org> References: <202001060251.0062pJe9067924@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001060251.0062pJe9067924@repo.freebsd.org> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47s9fX6WbPz4MBv X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.995,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 22:48:53 -0000 Jeff, On Mon, Jan 06, 2020 at 02:51:19AM +0000, Jeff Roberson wrote: J> Modified: head/sys/vm/vm_page.c J> ============================================================================== J> --- head/sys/vm/vm_page.c Mon Jan 6 01:51:23 2020 (r356392) J> +++ head/sys/vm/vm_page.c Mon Jan 6 02:51:19 2020 (r356393) J> @@ -613,10 +613,17 @@ vm_page_startup(vm_offset_t vaddr) J> slab_ipers(sizeof(struct vm_map), UMA_ALIGN_PTR)); J> J> /* J> - * Before going fully functional kmem_init() does allocation J> - * from "KMAP ENTRY" and vmem_create() does allocation from "vmem". J> + * Before we are fully boot strapped we need to account for the J> + * following allocations: J> + * J> + * "KMAP ENTRY" from kmem_init() J> + * "vmem btag" from vmem_startup() J> + * "vmem" from vmem_create() J> + * "KMAP" from vm_map_startup() J> + * J> + * Each needs at least one page per-domain. J> */ J> - boot_pages += 2; J> + boot_pages += 4 * vm_ndomains; J> #endif J> /* J> * CTFLAG_RDTUN doesn't work during the early boot process, so we must I think this chunk brings many extraneous pages per domain. Allocations for "vmem btag" from vmem_startup() are covered by vmem_startup_count(), and allocations for "KMAP" from vm_map_startup() are also counted just a few lines above: /* vmem_startup() calls uma_prealloc(). */ boot_pages += vmem_startup_count(); /* vm_map_startup() calls uma_prealloc(). */ boot_pages += howmany(MAX_KMAP, slab_ipers(sizeof(struct vm_map), UMA_ALIGN_PTR)); The uma_prealloc() allocates as much memory as asked, it may not populate all domains. So, on NUMA it will allocate same amount of pages. Not sure if this is a right decision, but at lease the counting is correct. So, change from 2 pages to 4 isn't needed. The vm_ndomains multiplicator also seems incorrect, since at early stage we run with buckets disabled, and this single allocation will end with calling zone_alloc_item() calling zone_import() with count of 1, which will short-circuit into keg_fetch_slab() before entering domain aware code. Then keg_fetch_slab() will short circuit into startup_alloc(). Do machines with NUMA and lack of UMA_MD_SMALL_ALLOC exist? Interesting to see dmesg with DIAGNOSTIC and this change. -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Tue Jan 7 00:54:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 272881DD046; Tue, 7 Jan 2020 00:54:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sDRN0H72z4TLn; Tue, 7 Jan 2020 00:54:24 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04E5F1EEEB; Tue, 7 Jan 2020 00:54:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0070sN5A005204; Tue, 7 Jan 2020 00:54:23 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0070sNUu005203; Tue, 7 Jan 2020 00:54:23 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001070054.0070sNUu005203@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Jan 2020 00:54:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356429 - stable/12/sys/dev/ioat X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/dev/ioat X-SVN-Commit-Revision: 356429 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 00:54:24 -0000 Author: mav Date: Tue Jan 7 00:54:23 2020 New Revision: 356429 URL: https://svnweb.freebsd.org/changeset/base/356429 Log: MFC r356216: Don't spin on cleanup_lock if we are not interrupt. If somebody else holds that lock, it will likely do the work for us. If it won't, then we return here later and retry. Under heavy load it allows to avoid lock congestion between interrupt and polling threads. Modified: stable/12/sys/dev/ioat/ioat.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/ioat/ioat.c ============================================================================== --- stable/12/sys/dev/ioat/ioat.c Mon Jan 6 21:23:14 2020 (r356428) +++ stable/12/sys/dev/ioat/ioat.c Tue Jan 7 00:54:23 2020 (r356429) @@ -788,7 +788,12 @@ ioat_process_events(struct ioat_softc *ioat, boolean_t uint32_t completed, chanerr; int error; - mtx_lock(&ioat->cleanup_lock); + if (intr) { + mtx_lock(&ioat->cleanup_lock); + } else { + if (!mtx_trylock(&ioat->cleanup_lock)) + return; + } /* * Don't run while the hardware is being reset. Reset is responsible From owner-svn-src-all@freebsd.org Tue Jan 7 00:54:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C38431DD0CF; Tue, 7 Jan 2020 00:54:45 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sDRn4rWRz4TSl; Tue, 7 Jan 2020 00:54:45 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A18E01EEEC; Tue, 7 Jan 2020 00:54:45 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0070sjE2005280; Tue, 7 Jan 2020 00:54:45 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0070sjZN005279; Tue, 7 Jan 2020 00:54:45 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001070054.0070sjZN005279@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Jan 2020 00:54:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356430 - stable/11/sys/dev/ioat X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/dev/ioat X-SVN-Commit-Revision: 356430 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 00:54:45 -0000 Author: mav Date: Tue Jan 7 00:54:45 2020 New Revision: 356430 URL: https://svnweb.freebsd.org/changeset/base/356430 Log: MFC r356216: Don't spin on cleanup_lock if we are not interrupt. If somebody else holds that lock, it will likely do the work for us. If it won't, then we return here later and retry. Under heavy load it allows to avoid lock congestion between interrupt and polling threads. Modified: stable/11/sys/dev/ioat/ioat.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/ioat/ioat.c ============================================================================== --- stable/11/sys/dev/ioat/ioat.c Tue Jan 7 00:54:23 2020 (r356429) +++ stable/11/sys/dev/ioat/ioat.c Tue Jan 7 00:54:45 2020 (r356430) @@ -682,7 +682,12 @@ ioat_process_events(struct ioat_softc *ioat, boolean_t uint32_t completed, chanerr; int error; - mtx_lock(&ioat->cleanup_lock); + if (intr) { + mtx_lock(&ioat->cleanup_lock); + } else { + if (!mtx_trylock(&ioat->cleanup_lock)) + return; + } /* * Don't run while the hardware is being reset. Reset is responsible From owner-svn-src-all@freebsd.org Tue Jan 7 04:27:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4A6EA1FA9C0; Tue, 7 Jan 2020 04:27:41 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sK9T1Khnz4f8Q; Tue, 7 Jan 2020 04:27:41 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0C22B215EF; Tue, 7 Jan 2020 04:27:41 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0074Re3G032297; Tue, 7 Jan 2020 04:27:40 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0074Refi032296; Tue, 7 Jan 2020 04:27:40 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001070427.0074Refi032296@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 04:27:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356431 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356431 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 04:27:41 -0000 Author: mjg Date: Tue Jan 7 04:27:40 2020 New Revision: 356431 URL: https://svnweb.freebsd.org/changeset/base/356431 Log: vfs: add a helper for allocating marker vnodes Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 00:54:45 2020 (r356430) +++ head/sys/kern/vfs_subr.c Tue Jan 7 04:27:40 2020 (r356431) @@ -459,6 +459,28 @@ PCTRIE_DEFINE(BUF, buf, b_lblkno, buf_trie_alloc, buf_ #define MAXVNODES_MAX (512 * 1024 * 1024 / 64) /* 8M */ #endif +static MALLOC_DEFINE(M_VNODE_MARKER, "vnodemarker", "vnode marker"); + +static struct vnode * +vn_alloc_marker(struct mount *mp) +{ + struct vnode *vp; + + vp = malloc(sizeof(struct vnode), M_VNODE_MARKER, M_WAITOK | M_ZERO); + vp->v_type = VMARKER; + vp->v_mount = mp; + + return (vp); +} + +static void +vn_free_marker(struct vnode *vp) +{ + + MPASS(vp->v_type == VMARKER); + free(vp, M_VNODE_MARKER); +} + /* * Initialize a vnode as it first enters the zone. */ @@ -5785,7 +5807,6 @@ vfs_cache_root_set(struct mount *mp, struct vnode *vp) * This interface replaces MNT_VNODE_FOREACH. */ -MALLOC_DEFINE(M_VNODE_MARKER, "vnodemarker", "vnode marker"); struct vnode * __mnt_vnode_next_all(struct vnode **mvp, struct mount *mp) @@ -5825,11 +5846,9 @@ __mnt_vnode_first_all(struct vnode **mvp, struct mount { struct vnode *vp; - *mvp = malloc(sizeof(struct vnode), M_VNODE_MARKER, M_WAITOK | M_ZERO); + *mvp = vn_alloc_marker(mp); MNT_ILOCK(mp); MNT_REF(mp); - (*mvp)->v_mount = mp; - (*mvp)->v_type = VMARKER; TAILQ_FOREACH(vp, &mp->mnt_nvnodelist, v_nmntvnodes) { /* Allow a racy peek at VIRF_DOOMED to save a lock acquisition. */ @@ -5845,7 +5864,7 @@ __mnt_vnode_first_all(struct vnode **mvp, struct mount if (vp == NULL) { MNT_REL(mp); MNT_IUNLOCK(mp); - free(*mvp, M_VNODE_MARKER); + vn_free_marker(*mvp); *mvp = NULL; return (NULL); } @@ -5869,7 +5888,7 @@ __mnt_vnode_markerfree_all(struct vnode **mvp, struct TAILQ_REMOVE(&mp->mnt_nvnodelist, *mvp, v_nmntvnodes); MNT_REL(mp); MNT_IUNLOCK(mp); - free(*mvp, M_VNODE_MARKER); + vn_free_marker(*mvp); *mvp = NULL; } @@ -5886,7 +5905,7 @@ mnt_vnode_markerfree_active(struct vnode **mvp, struct MNT_ILOCK(mp); MNT_REL(mp); MNT_IUNLOCK(mp); - free(*mvp, M_VNODE_MARKER); + vn_free_marker(*mvp); *mvp = NULL; } @@ -6029,12 +6048,10 @@ __mnt_vnode_first_active(struct vnode **mvp, struct mo { struct vnode *vp; - *mvp = malloc(sizeof(struct vnode), M_VNODE_MARKER, M_WAITOK | M_ZERO); + *mvp = vn_alloc_marker(mp); MNT_ILOCK(mp); MNT_REF(mp); MNT_IUNLOCK(mp); - (*mvp)->v_type = VMARKER; - (*mvp)->v_mount = mp; mtx_lock(&mp->mnt_listmtx); vp = TAILQ_FIRST(&mp->mnt_activevnodelist); From owner-svn-src-all@freebsd.org Tue Jan 7 04:29:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9F2A01FAC00; Tue, 7 Jan 2020 04:29:35 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sKCg3nBFz4fHR; Tue, 7 Jan 2020 04:29:35 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6477F215F9; Tue, 7 Jan 2020 04:29:35 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0074TZmf032434; Tue, 7 Jan 2020 04:29:35 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0074TYbQ032431; Tue, 7 Jan 2020 04:29:34 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001070429.0074TYbQ032431@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 04:29:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356432 - in head/sys: kern security/mac_veriexec sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern security/mac_veriexec sys X-SVN-Commit-Revision: 356432 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 04:29:35 -0000 Author: mjg Date: Tue Jan 7 04:29:34 2020 New Revision: 356432 URL: https://svnweb.freebsd.org/changeset/base/356432 Log: vfs: eliminate v_tag from struct vnode There was only one consumer and it was using it incorrectly. It is given an equivalent hack. Reviewed by: jeff Differential Revision: https://reviews.freebsd.org/D23037 Modified: head/sys/kern/vfs_subr.c head/sys/security/mac_veriexec/mac_veriexec.c head/sys/sys/vnode.h Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 04:27:40 2020 (r356431) +++ head/sys/kern/vfs_subr.c Tue Jan 7 04:29:34 2020 (r356432) @@ -1657,7 +1657,6 @@ alloc: KASSERT(vp->v_lockf == NULL, ("stale v_lockf %p", vp)); KASSERT(vp->v_pollinfo == NULL, ("stale v_pollinfo %p", vp)); vp->v_type = VNON; - vp->v_tag = tag; vp->v_op = vops; v_init_counters(vp); vp->v_bufobj.bo_ops = &buf_ops_bio; @@ -3679,7 +3678,7 @@ vgonel(struct vnode *vp) if (mp != NULL) vn_finished_secondary_write(mp); VNASSERT(vp->v_object == NULL, vp, - ("vop_reclaim left v_object vp=%p, tag=%s", vp, vp->v_tag)); + ("vop_reclaim left v_object vp=%p", vp)); /* * Clear the advisory locks and wake up waiting threads. */ @@ -3697,7 +3696,6 @@ vgonel(struct vnode *vp) VI_LOCK(vp); vp->v_vnlock = &vp->v_lock; vp->v_op = &dead_vnodeops; - vp->v_tag = "none"; vp->v_type = VBAD; } @@ -3733,7 +3731,7 @@ vn_printf(struct vnode *vp, const char *fmt, ...) vprintf(fmt, ap); va_end(ap); printf("%p: ", (void *)vp); - printf("tag %s, type %s\n", vp->v_tag, typename[vp->v_type]); + printf("type %s\n", typename[vp->v_type]); printf(" usecount %d, writecount %d, refcount %d", vp->v_usecount, vp->v_writecount, vp->v_holdcnt); switch (vp->v_type) { Modified: head/sys/security/mac_veriexec/mac_veriexec.c ============================================================================== --- head/sys/security/mac_veriexec/mac_veriexec.c Tue Jan 7 04:27:40 2020 (r356431) +++ head/sys/security/mac_veriexec/mac_veriexec.c Tue Jan 7 04:29:34 2020 (r356432) @@ -737,6 +737,22 @@ MAC_POLICY_SET(&mac_veriexec_ops, mac_veriexec, MAC_VE MPC_LOADTIME_FLAG_NOTLATE, &mac_veriexec_slot); MODULE_VERSION(mac_veriexec, 1); +static struct vnode * +mac_veriexec_bottom_vnode(struct vnode *vp) +{ + struct vnode *ldvp = NULL; + + /* + * XXX This code is bogus. nullfs is not the only stacking + * filesystem. Less bogus code would add a VOP to reach bottom + * vnode and would not make assumptions how to get there. + */ + if (vp->v_mount != NULL && + strcmp(vp->v_mount->mnt_vfc->vfc_name, "nullfs") == 0) + ldvp = NULLVPTOLOWERVP(vp); + return (ldvp); +} + /** * @brief Get the fingerprint status set on a vnode. * @@ -748,6 +764,7 @@ fingerprint_status_t mac_veriexec_get_fingerprint_status(struct vnode *vp) { fingerprint_status_t fps; + struct vnode *ldvp; fps = SLOT(vp->v_label); switch (fps) { @@ -757,12 +774,9 @@ mac_veriexec_get_fingerprint_status(struct vnode *vp) break; default: /* we may need to recurse */ - if (strcmp(vp->v_tag, "null") == 0) { - struct vnode *ldvp; - - ldvp = NULLVPTOLOWERVP(vp); + ldvp = mac_veriexec_bottom_vnode(vp); + if (ldvp != NULL) return mac_veriexec_get_fingerprint_status(ldvp); - } break; } return fps; @@ -808,12 +822,11 @@ void mac_veriexec_set_fingerprint_status(struct vnode *vp, fingerprint_status_t fp_status) { + struct vnode *ldvp; /* recurse until we find the real storage */ - if (strcmp(vp->v_tag, "null") == 0) { - struct vnode *ldvp; - - ldvp = NULLVPTOLOWERVP(vp); + ldvp = mac_veriexec_bottom_vnode(vp); + if (ldvp != NULL) { mac_veriexec_set_fingerprint_status(ldvp, fp_status); return; } Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Tue Jan 7 04:27:40 2020 (r356431) +++ head/sys/sys/vnode.h Tue Jan 7 04:29:34 2020 (r356432) @@ -174,7 +174,6 @@ struct vnode { int v_writecount; /* I ref count of writers or (negative) text users */ u_int v_hash; - const char *v_tag; /* u type of underlying data */ }; #endif /* defined(_KERNEL) || defined(_KVM_VNODE) */ From owner-svn-src-all@freebsd.org Tue Jan 7 04:30:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7B9E21FAE6B; Tue, 7 Jan 2020 04:30:50 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sKF62m09z4fRB; Tue, 7 Jan 2020 04:30:50 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5A0962161A; Tue, 7 Jan 2020 04:30:50 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0074UoND033297; Tue, 7 Jan 2020 04:30:50 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0074UoEY033296; Tue, 7 Jan 2020 04:30:50 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001070430.0074UoEY033296@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 04:30:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356433 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356433 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 04:30:50 -0000 Author: mjg Date: Tue Jan 7 04:30:49 2020 New Revision: 356433 URL: https://svnweb.freebsd.org/changeset/base/356433 Log: vfs: annotate numvnodes and vnode_free_list_mtx with __exclusive_cache_line Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 04:29:34 2020 (r356432) +++ head/sys/kern/vfs_subr.c Tue Jan 7 04:30:49 2020 (r356433) @@ -139,7 +139,7 @@ static int v_inval_buf_range_locked(struct vnode *vp, * Number of vnodes in existence. Increased whenever getnewvnode() * allocates a new vnode, decreased in vdropl() for VIRF_DOOMED vnode. */ -static unsigned long numvnodes; +static u_long __exclusive_cache_line numvnodes; SYSCTL_ULONG(_vfs, OID_AUTO, numvnodes, CTLFLAG_RD, &numvnodes, 0, "Number of vnodes in existence"); @@ -227,7 +227,7 @@ static struct mtx mntid_mtx; * numvnodes * freevnodes */ -static struct mtx vnode_free_list_mtx; +static struct mtx __exclusive_cache_line vnode_free_list_mtx; /* Publicly exported FS */ struct nfs_public nfs_pub; From owner-svn-src-all@freebsd.org Tue Jan 7 04:33:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 60D271FB370; Tue, 7 Jan 2020 04:33:15 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sKHv20ZKz4fnH; Tue, 7 Jan 2020 04:33:15 +0000 (UTC) (envelope-from delphij@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3FEAE217BD; Tue, 7 Jan 2020 04:33:15 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0074XFmZ038366; Tue, 7 Jan 2020 04:33:15 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0074XF0f038365; Tue, 7 Jan 2020 04:33:15 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202001070433.0074XF0f038365@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 7 Jan 2020 04:33:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356434 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 356434 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 04:33:15 -0000 Author: delphij Date: Tue Jan 7 04:33:14 2020 New Revision: 356434 URL: https://svnweb.freebsd.org/changeset/base/356434 Log: fsck_msdosfs.8: document -M. Reported by: mckusick Reviewed by: mckusick, emaste, bcr MFC after: 28 days X-MFC-with: r356313 Differential Revision: https://reviews.freebsd.org/D23049 Modified: head/sbin/fsck_msdosfs/fsck_msdosfs.8 Modified: head/sbin/fsck_msdosfs/fsck_msdosfs.8 ============================================================================== --- head/sbin/fsck_msdosfs/fsck_msdosfs.8 Tue Jan 7 04:30:49 2020 (r356433) +++ head/sbin/fsck_msdosfs/fsck_msdosfs.8 Tue Jan 7 04:33:14 2020 (r356434) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 3, 2016 +.Dd January 6, 2020 .Dt FSCK_MSDOSFS 8 .Os .Sh NAME @@ -37,7 +37,7 @@ .Op Fl Cf .Ar filesystem ... .Nm -.Op Fl Cny +.Op Fl CMny .Ar filesystem ... .Sh DESCRIPTION The @@ -84,6 +84,21 @@ which seeks to determine whether the file system needs immediately in foreground, or if its cleaning can be deferred to background. FAT (MS-DOS) file systems must always be cleaned in the foreground. A non-zero exit code is always returned for this option. +.It Fl M +Causes +.Nm +to not use +.Xr mmap 2 +when checking a FAT32 file system. +This option is mainly for debugging purposes and is not normally necessary. +The +.Nm +utility will automatically fall back to use a simple LRU cache of 4 MiB +when it failed to perform +.Xr mmap 2 , +or when +.Fl M +is specified. .It Fl f Force .Nm From owner-svn-src-all@freebsd.org Tue Jan 7 04:34:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5C2D31FB41B; Tue, 7 Jan 2020 04:34:04 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sKJr1pbnz4fwS; Tue, 7 Jan 2020 04:34:04 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 39382217CD; Tue, 7 Jan 2020 04:34:04 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0074Y4Dv038450; Tue, 7 Jan 2020 04:34:04 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0074Y4Wn038449; Tue, 7 Jan 2020 04:34:04 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001070434.0074Y4Wn038449@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 04:34:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356435 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356435 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 04:34:04 -0000 Author: mjg Date: Tue Jan 7 04:34:03 2020 New Revision: 356435 URL: https://svnweb.freebsd.org/changeset/base/356435 Log: vfs: prevent numvnodes and freevnodes re-reads when appropriate Otherwise in code like this: if (numvnodes > desiredvnodes) vnlru_free_locked(numvnodes - desiredvnodes, NULL); numvnodes can drop below desiredvnodes prior to the call and if the compiler generated another read the subtraction would get a negative value. Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 04:33:14 2020 (r356434) +++ head/sys/kern/vfs_subr.c Tue Jan 7 04:34:03 2020 (r356435) @@ -1211,16 +1211,19 @@ vnlru_free(int count, struct vfsops *mnt_op) static int vspace(void) { + u_long rnumvnodes, rfreevnodes; int space; gapvnodes = imax(desiredvnodes - wantfreevnodes, 100); vhiwat = gapvnodes / 11; /* 9% -- just under the 10% in vlrureclaim() */ vlowat = vhiwat / 2; - if (numvnodes > desiredvnodes) + rnumvnodes = atomic_load_long(&numvnodes); + rfreevnodes = atomic_load_long(&freevnodes); + if (rnumvnodes > desiredvnodes) return (0); - space = desiredvnodes - numvnodes; + space = desiredvnodes - rnumvnodes; if (freevnodes > wantfreevnodes) - space += freevnodes - wantfreevnodes; + space += rfreevnodes - wantfreevnodes; return (space); } @@ -1292,6 +1295,7 @@ static int vnlruproc_sig; static void vnlru_proc(void) { + u_long rnumvnodes, rfreevnodes; struct mount *mp, *nmp; unsigned long onumvnodes; int done, force, trigger, usevnodes, vsp; @@ -1304,13 +1308,14 @@ vnlru_proc(void) for (;;) { kproc_suspend_check(vnlruproc); mtx_lock(&vnode_free_list_mtx); + rnumvnodes = atomic_load_long(&numvnodes); /* * If numvnodes is too large (due to desiredvnodes being * adjusted using its sysctl, or emergency growth), first * try to reduce it by discarding from the free list. */ - if (numvnodes > desiredvnodes) - vnlru_free_locked(numvnodes - desiredvnodes, NULL); + if (rnumvnodes > desiredvnodes) + vnlru_free_locked(rnumvnodes - desiredvnodes, NULL); /* * Sleep if the vnode cache is in a good state. This is * when it is not over-full and has space for about a 4% @@ -1332,7 +1337,10 @@ vnlru_proc(void) } mtx_unlock(&vnode_free_list_mtx); done = 0; - onumvnodes = numvnodes; + rnumvnodes = atomic_load_long(&numvnodes); + rfreevnodes = atomic_load_long(&freevnodes); + + onumvnodes = rnumvnodes; /* * Calculate parameters for recycling. These are the same * throughout the loop to give some semblance of fairness. @@ -1340,10 +1348,10 @@ vnlru_proc(void) * of resident pages. We aren't trying to free memory; we * are trying to recycle or at least free vnodes. */ - if (numvnodes <= desiredvnodes) - usevnodes = numvnodes - freevnodes; + if (rnumvnodes <= desiredvnodes) + usevnodes = rnumvnodes - rfreevnodes; else - usevnodes = numvnodes; + usevnodes = rnumvnodes; if (usevnodes <= 0) usevnodes = 1; /* @@ -1516,14 +1524,17 @@ getnewvnode_wait(int suspended) void getnewvnode_reserve(u_int count) { + u_long rnumvnodes, rfreevnodes; struct thread *td; /* Pre-adjust like the pre-adjust in getnewvnode(), with any count. */ /* XXX no longer so quick, but this part is not racy. */ mtx_lock(&vnode_free_list_mtx); - if (numvnodes + count > desiredvnodes && freevnodes > wantfreevnodes) - vnlru_free_locked(ulmin(numvnodes + count - desiredvnodes, - freevnodes - wantfreevnodes), NULL); + rnumvnodes = atomic_load_long(&numvnodes); + rfreevnodes = atomic_load_long(&freevnodes); + if (rnumvnodes + count > desiredvnodes && rfreevnodes > wantfreevnodes) + vnlru_free_locked(ulmin(rnumvnodes + count - desiredvnodes, + rfreevnodes - wantfreevnodes), NULL); mtx_unlock(&vnode_free_list_mtx); td = curthread; From owner-svn-src-all@freebsd.org Tue Jan 7 04:34:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 56D991FB4A9; Tue, 7 Jan 2020 04:34:30 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sKKL1Nhmz4g7t; Tue, 7 Jan 2020 04:34:30 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2AC97217CF; Tue, 7 Jan 2020 04:34:30 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0074YUqD038620; Tue, 7 Jan 2020 04:34:30 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0074YUs6038619; Tue, 7 Jan 2020 04:34:30 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001070434.0074YUs6038619@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 04:34:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356436 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 356436 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 04:34:30 -0000 Author: mjg Date: Tue Jan 7 04:34:29 2020 New Revision: 356436 URL: https://svnweb.freebsd.org/changeset/base/356436 Log: zfs: plug a vnode reserve leak in zfs_make_xattrdir Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Tue Jan 7 04:34:03 2020 (r356435) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Tue Jan 7 04:34:29 2020 (r356436) @@ -829,6 +829,7 @@ zfs_make_xattrdir(znode_t *zp, vattr_t *vap, vnode_t * if (error) { zfs_acl_ids_free(&acl_ids); dmu_tx_abort(tx); + getnewvnode_drop_reserve(); return (error); } zfs_mknode(zp, vap, tx, cr, IS_XATTR, &xzp, &acl_ids); From owner-svn-src-all@freebsd.org Tue Jan 7 05:33:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E94781E0670; Tue, 7 Jan 2020 05:33:33 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sLdT5xDsz3Dq2; Tue, 7 Jan 2020 05:33:33 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C692C2229A; Tue, 7 Jan 2020 05:33:33 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0075XXEW076101; Tue, 7 Jan 2020 05:33:33 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0075XX7D076100; Tue, 7 Jan 2020 05:33:33 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001070533.0075XX7D076100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 05:33:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356437 - head/lib/libprocstat X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/lib/libprocstat X-SVN-Commit-Revision: 356437 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 05:33:34 -0000 Author: mjg Date: Tue Jan 7 05:33:33 2020 New Revision: 356437 URL: https://svnweb.freebsd.org/changeset/base/356437 Log: procstat: read lo_name instead of now removed v_tag Modified: head/lib/libprocstat/libprocstat.c Modified: head/lib/libprocstat/libprocstat.c ============================================================================== --- head/lib/libprocstat/libprocstat.c Tue Jan 7 04:34:29 2020 (r356436) +++ head/lib/libprocstat/libprocstat.c Tue Jan 7 05:33:33 2020 (r356437) @@ -1278,10 +1278,10 @@ procstat_get_vnode_info_kvm(kvm_t *kd, struct filestat vn->vn_type = vntype2psfsttype(vnode.v_type); if (vnode.v_type == VNON || vnode.v_type == VBAD) return (0); - error = kvm_read_all(kd, (unsigned long)vnode.v_tag, tagstr, - sizeof(tagstr)); + error = kvm_read_all(kd, (unsigned long)vnode.v_lock.lock_object.lo_name, + tagstr, sizeof(tagstr)); if (error == 0) { - warnx("can't read v_tag at %p", (void *)vp); + warnx("can't read lo_name at %p", (void *)vp); goto fail; } tagstr[sizeof(tagstr) - 1] = '\0'; From owner-svn-src-all@freebsd.org Tue Jan 7 05:43:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4B5291E1672; Tue, 7 Jan 2020 05:43:15 +0000 (UTC) (envelope-from o.hartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass Class 2 CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sLrf4tGqz3FF6; Tue, 7 Jan 2020 05:43:14 +0000 (UTC) (envelope-from o.hartmann@walstatt.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1578375789; bh=EfEvNCPwMIYzOFfQTWNYyi6OOuRohk523XMo1YJBkBw=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=H00uorCO8/ZWRP/VUV5UUD5APBTP9hBtVGSwCmonGs6uqWSKg0H9CwOUw0Xz8RLE+ HJiVPLKakgVWprP0zuvgGLGR/7mh9ayGGIg+Sb9BCYaaulImOd4ajDo/Pj1W+nhee7 OsdZCfqqkTTSPzeBkwA3hD+ea6to6oHSTX/Gm/do= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from freyja ([79.192.173.245]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MD9T1-1ixoRo1rM1-0099S8; Tue, 07 Jan 2020 06:43:09 +0100 Date: Tue, 7 Jan 2020 06:43:02 +0100 From: "O. Hartmann" To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356437 - head/lib/libprocstat Message-ID: <20200107064255.18dad9d2@freyja> In-Reply-To: <202001070533.0075XX7D076100@repo.freebsd.org> References: <202001070533.0075XX7D076100@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:qahe+CePIZL9HvBMFdp7eSN7AmBs7GCiK3YNQyt56cyF08rMCnX In9IMGFkyx+T31By8wc9cObGWKlleHoIf/nuLt6Da79XqkigVo7ArpdHuvSUXSVOSJ7yiAr w4t++UyPI37ldyj0rpR9Vi5SAZ04TEN8kcb9koFJpgeu8uu0d0yhdXQUF7vu2ntlBDbuFFZ we8CFoTDQvnT/n5tOsTiA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:EOjUw3mA3Dg=:mvck+LlKC3MiuZWByZsj9v 5Zc/dGL0nyVOurUOp+wd57uVXUuDEQ/WV+Cos+eNj9oxk5gkdcJeOISXcE+IRTAbuTjb3pLPc IKe0MQa16Lped9GluvDpbwul+y+cpM2CDXstKA1tN6Zus5R2TXBFTlUnkv1Fx/22KN51PRofU ffyr9M+uzJ0FOE4QQqK81o/sJfc5XzJzZef5qQaFXWmwTuIt8pGRHpUW+SQJ55oksnt0Vl6qF oRVYhLSioO1PJgmgf4dJKGIEpW6Ios/n01S8nHmysgDXzoY4bEQtfNl4uct9WQGyY4XtOsgCM FgdGbA4wg4ugR4S849pEkgtW9rqnj8x7d5Zy/yH8UJ/JO4xZXfeHOhpf7pASdddpQ+lkn7kAW Tfkv9dxF4tRLDUdD/Gb7R0MH3OD1aWfTqpzX/6RuKQ46ojFhh0HIZp7bqJvz+f1X1DwLRiFu4 4FEvGQYjJfXR/L410JCkscSdc/xvNAgRBxGsSAEsBKPVo9YOr0mO9yeHqIShqbMyFyk9IDU9D 3F8ISOoVerbaDvZmSHA7jW9JWxAyRJde2sGhtUcA8RbfXTD+fylKAy+SZJGoXBfsR5ofebALx d9BA6Db5bDk+TRzKR6OyTe4BtVO6pQxffgMwypy2GPgYjNOiDWSzyC837WJ/rdX2ByWtUniSc oqV/Avqa3IEHYwVYPDk051uAMpggnDhskftpqgqgYf7XJ4M+4dfFMcIeT3wzqtel9jWEqAuEp PxSiYbV4ueXwcLXt+eDIqABF17/HLUbybbnFRhQC/TB1E42NkoHX3ETbHAvTnUmKbgjroT5O7 GdIzU6PS3WhTw0DrMw3R9+fPqa0L9pmFFO7fxQ/oqcJLZ/58drVEvSnN0x4SdcvipK6mP2/Go RLmWNqWk3ONbEHczNa5IbXGc1AsOK5lUgp6Z5DHV4Xj2psCvhAIiOQwvO1ohccxmBhY9YPLCR uaGmoOclJ1bJgOP6rrtjKLx1gcVRqenFxfSp8aqJsKxjo3B1V05R0ggiyaiw+HxyEWh64YMvb +wDULegsBFPk8rn2G90FqGesd1kwOvJ067UQDh10VRRr6XL4uN/ujisWA6EOFKB6QMGg3s6HU o4wotxGxhObwU9G/oZZOUXp7ZO+28oftxKyPWbdx0Kb0ATGgR1+toZn+jw09K1zNVuD73vEVd ZotgpX3ecVt3zLi80U2bDdTMJF3Io/88A250ScZkkzuOSmPVVvDphBwTO7QQVPmZeYqNynO9n kNBBU82PNVD/Xk0D2UUdKcRKBJZ+z3Os5xluJImpX20nVK+kQPOprGr4IsBQ= X-Rspamd-Queue-Id: 47sLrf4tGqz3FF6 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.995,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 05:43:15 -0000 On Tue, 7 Jan 2020 05:33:33 +0000 (UTC) Mateusz Guzik wrote: > Author: mjg > Date: Tue Jan 7 05:33:33 2020 > New Revision: 356437 > URL: https://svnweb.freebsd.org/changeset/base/356437 > > Log: > procstat: read lo_name instead of now removed v_tag > > Modified: > head/lib/libprocstat/libprocstat.c > > Modified: head/lib/libprocstat/libprocstat.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > --- head/lib/libprocstat/libprocstat.c Tue Jan 7 04:34:29 2020 > (r356436) +++ head/lib/libprocstat/libprocstat.c Tue Jan 7 05:33:33 > 2020 (r356437) @@ -1278,10 +1278,10 @@ > procstat_get_vnode_info_kvm(kvm_t *kd, struct filestat vn->vn_type =3D > vntype2psfsttype(vnode.v_type); if (vnode.v_type =3D=3D VNON || vnode.v_= type =3D=3D > VBAD) return (0); > - error =3D kvm_read_all(kd, (unsigned long)vnode.v_tag, tagstr, > - sizeof(tagstr)); > + error =3D kvm_read_all(kd, (unsigned > long)vnode.v_lock.lock_object.lo_name, > + tagstr, sizeof(tagstr)); > if (error =3D=3D 0) { > - warnx("can't read v_tag at %p", (void *)vp); > + warnx("can't read lo_name at %p", (void *)vp); > goto fail; > } > tagstr[sizeof(tagstr) - 1] =3D '\0'; > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" This commit makes buildworld to fail: [...] =2D-- lib/libprocstat__L --- /usr/src/lib/libprocstat/libprocstat.c:848:2: warning: variable 'files' is= used uninitialized whenever switch default is taken [-Wsometimes-uninitialized] default: ^~~~~~~ /usr/src/lib/libprocstat/libprocstat.c:851:6: note: uninitialized use occu= rs here if (files =3D=3D NULL && errno !=3D EPERM) { ^~~~~ /usr/src/lib/libprocstat/libprocstat.c:827:32: note: initialize the variab= le 'files' to silence this warning struct kinfo_file *kif, *files; ^ =3D NULL /usr/src/lib/libprocstat/libprocstat.c:1281:48: error: no member named 'v_= tag' in 'struct vnode' [...] Kind regards, oh From owner-svn-src-all@freebsd.org Tue Jan 7 06:43:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 36FDA1E7ED5; Tue, 7 Jan 2020 06:43:05 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sN9g2YmMz3HHg; Tue, 7 Jan 2020 06:43:03 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id oiZuiIPzc17ZDoiZwiyKYV; Mon, 06 Jan 2020 23:43:01 -0700 X-Authority-Analysis: v=2.3 cv=ZsqT1OzG c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=Jdjhy38mL1oA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=ic_SNM59hN71-EiAzz4A:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 5871C1B1; Mon, 6 Jan 2020 22:42:58 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id 0076gwdn026498; Mon, 6 Jan 2020 22:42:58 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id 0076gvXR026495; Mon, 6 Jan 2020 22:42:57 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <202001070642.0076gvXR026495@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: "O. Hartmann" cc: Mateusz Guzik , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356437 - head/lib/libprocstat In-reply-to: <20200107064255.18dad9d2@freyja> References: <202001070533.0075XX7D076100@repo.freebsd.org> <20200107064255.18dad9d2@freyja> Comments: In-reply-to "O. Hartmann" message dated "Tue, 07 Jan 2020 06:43:02 +0100." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 06 Jan 2020 22:42:57 -0800 X-CMAE-Envelope: MS4wfDcz/qUhnkRTyKL2Is1dfJ8I0UVCjAgXSAyjCO8ukCM3ZKj9KanSP1alQ46zeK6W35CVpnnImBdlt0kMrG5YTxPqhlqY2GdMNTLqqT2V7jZmVh8pV50Y YisQyVbX05awpTQj3rZmUxkNd0vUxDZPeQSVN3wEdaPEJTZyZ5HyXWgfmi13bwZAoFyg0XoIkmLCY+QPSa9DW9YtKxRutra8uA3gwtyBSnXDWH4zeRYbYTfw YVdfYQTxWy+1A0rBApdu90dhcxSyoNIinjpqkIt8lt5+iVoNFrhGOQtua+L7oVABBZQVYO7ySvIsSdAASN3/jCQkM+kt29PNcBOjkRTMpfA= X-Rspamd-Queue-Id: 47sN9g2YmMz3HHg X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 64.59.136.139) smtp.mailfrom=cy.schubert@cschubert.com X-Spamd-Result: default: False [-4.00 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[5]; REPLYTO_EQ_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-2.30)[ip: (-5.83), ipnet: 64.59.128.0/20(-3.13), asn: 6327(-2.43), country: CA(-0.09)]; RCVD_IN_DNSWL_LOW(-0.10)[139.136.59.64.list.dnswl.org : 127.0.5.1] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 06:43:05 -0000 In message <20200107064255.18dad9d2@freyja>, "O. Hartmann" writes: > On Tue, 7 Jan 2020 05:33:33 +0000 (UTC) > Mateusz Guzik wrote: > > > Author: mjg > > Date: Tue Jan 7 05:33:33 2020 > > New Revision: 356437 > > URL: https://svnweb.freebsd.org/changeset/base/356437 > > > > Log: > > procstat: read lo_name instead of now removed v_tag > > > > Modified: > > head/lib/libprocstat/libprocstat.c > > > > Modified: head/lib/libprocstat/libprocstat.c > > =========================================================================== > === > > --- head/lib/libprocstat/libprocstat.c Tue Jan 7 04:34:29 2020 > > (r356436) +++ head/lib/libprocstat/libprocstat.c Tue Jan 7 05:33:33 > > 2020 (r356437) @@ -1278,10 +1278,10 @@ > > procstat_get_vnode_info_kvm(kvm_t *kd, struct filestat vn->vn_type = > > vntype2psfsttype(vnode.v_type); if (vnode.v_type == VNON || vnode.v_type == > > VBAD) return (0); > > - error = kvm_read_all(kd, (unsigned long)vnode.v_tag, tagstr, > > - sizeof(tagstr)); > > + error = kvm_read_all(kd, (unsigned > > long)vnode.v_lock.lock_object.lo_name, > > + tagstr, sizeof(tagstr)); > > if (error == 0) { > > - warnx("can't read v_tag at %p", (void *)vp); > > + warnx("can't read lo_name at %p", (void *)vp); > > goto fail; > > } > > tagstr[sizeof(tagstr) - 1] = '\0'; > > _______________________________________________ > > svn-src-head@freebsd.org mailing list > > https://lists.freebsd.org/mailman/listinfo/svn-src-head > > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" > > This commit makes buildworld to fail: > > [...] > --- lib/libprocstat__L --- > /usr/src/lib/libprocstat/libprocstat.c:848:2: warning: variable 'files' is us > ed > uninitialized whenever switch default is taken [-Wsometimes-uninitialized] > default: ^~~~~~~ > /usr/src/lib/libprocstat/libprocstat.c:851:6: note: uninitialized use occurs > here if (files == NULL && errno != EPERM) { > ^~~~~ > /usr/src/lib/libprocstat/libprocstat.c:827:32: note: initialize the variable > 'files' to silence this warning struct kinfo_file *kif, *files; > ^ > = NULL > /usr/src/lib/libprocstat/libprocstat.c:1281:48: error: no member named 'v_tag > ' > in 'struct vnode' > > [...] > > Kind regards, > > oh > > It would appear you don't have this commit in your tree. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-all@freebsd.org Tue Jan 7 09:02:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E25161F6B48; Tue, 7 Jan 2020 09:02:14 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sRGG5lTCz3PDm; Tue, 7 Jan 2020 09:02:14 +0000 (UTC) (envelope-from kp@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C08F0248C3; Tue, 7 Jan 2020 09:02:14 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00792EiU001135; Tue, 7 Jan 2020 09:02:14 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00792Exb001134; Tue, 7 Jan 2020 09:02:14 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202001070902.00792Exb001134@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 7 Jan 2020 09:02:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356438 - head/sys/riscv/sifive X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/riscv/sifive X-SVN-Commit-Revision: 356438 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 09:02:14 -0000 Author: kp Date: Tue Jan 7 09:02:14 2020 New Revision: 356438 URL: https://svnweb.freebsd.org/changeset/base/356438 Log: sifive: Fix incorrect tx/rx ctrl defines Happily these were never used, but they should be correct anyway. Reported by: Nicholas O'Brien Sponsored by: Axiado Modified: head/sys/riscv/sifive/sifive_uart.c Modified: head/sys/riscv/sifive/sifive_uart.c ============================================================================== --- head/sys/riscv/sifive/sifive_uart.c Tue Jan 7 05:33:33 2020 (r356437) +++ head/sys/riscv/sifive/sifive_uart.c Tue Jan 7 09:02:14 2020 (r356438) @@ -64,11 +64,11 @@ __FBSDID("$FreeBSD$"); #define SFUART_TXCTRL 0x08 #define SFUART_TXCTRL_ENABLE 0x01 #define SFUART_TXCTRL_NSTOP 0x02 -#define SFUART_TXCTRL_TXCNT 0xb0000 +#define SFUART_TXCTRL_TXCNT 0x70000 #define SFUART_TXCTRL_TXCNT_SHIFT 16 #define SFUART_RXCTRL 0x0c #define SFUART_RXCTRL_ENABLE 0x01 -#define SFUART_RXCTRL_RXCNT 0xb0000 +#define SFUART_RXCTRL_RXCNT 0x70000 #define SFUART_RXCTRL_RXCNT_SHIFT 16 #define SFUART_IRQ_ENABLE 0x10 #define SFUART_IRQ_ENABLE_TXWM 0x01 From owner-svn-src-all@freebsd.org Tue Jan 7 10:38:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7B2751FF52F; Tue, 7 Jan 2020 10:38:56 +0000 (UTC) (envelope-from br@bsdpad.com) Received: from sc1.bsdpad.com (sc1.bsdpad.com [163.172.212.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47sTPr2dHyz3ycX; Tue, 7 Jan 2020 10:38:56 +0000 (UTC) (envelope-from br@bsdpad.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bsdpad.com; s=20190317; h=Subject:To:From; bh=38bmMhNlFuOOSEhAza/ZHL0ByfbZwziWCJCHArQOf1M=; b=a+xuq/BjHhBC44tXYK3va1tEhs Hzn2Gd8WqdWPiiww5wEW+n2Kiz2pFxh8SoJXY1hNXE5Y1kBKGLQG+GDgwmVK1+xYJ7zAAPKU0aHiO iCsSHy+YozAZBpSUEsYJiAj6xQbQRSvMDpIn6iCJHYaQ7iQgo2gSlPLxCZ9LSGQJPcDt9A36ZCsc6 6KtZsfuShpK2lJ/3BUamKJ2mqaYtlYaQmBsXiP1psn/BqScj/DjQzTEPwymii9LeC0UYcc1z1B9qJ cr0J+PW6a88HmsdlU/B5NfViIG0zj72tKr+rhieeOlJrT0tHI/HmAu5puQm9zk2YXoaBwreNt/DL2 kX2oBVhg==; Received: from localhost ([127.0.0.1] helo=bsdpad.com) by sc1.bsdpad.com with smtp (Exim 4.91 (FreeBSD)) (envelope-from ) id 1iomB4-000AEb-FS; Tue, 07 Jan 2020 10:33:34 +0000 Received: by bsdpad.com (nbSMTP-1.00) for uid 1001 br@bsdpad.com; Tue, 7 Jan 2020 10:33:34 +0000 (GMT) Date: Tue, 7 Jan 2020 10:33:34 +0000 From: Ruslan Bukin To: Kristof Provost Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356438 - head/sys/riscv/sifive Message-ID: <20200107103334.GA39280@bsdpad.com> References: <202001070902.00792Exb001134@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <202001070902.00792Exb001134@repo.freebsd.org> User-Agent: Mutt/1.11.2 (2019-01-07) X-Rspamd-Queue-Id: 47sTPr2dHyz3ycX X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 10:38:56 -0000 On Tue, Jan 07, 2020 at 09:02:14AM +0000, Kristof Provost wrote: > Author: kp > Date: Tue Jan 7 09:02:14 2020 > New Revision: 356438 > URL: https://svnweb.freebsd.org/changeset/base/356438 > > Log: > sifive: Fix incorrect tx/rx ctrl defines > > Happily these were never used, but they should be correct anyway. > > Reported by: Nicholas O'Brien > Sponsored by: Axiado > > Modified: > head/sys/riscv/sifive/sifive_uart.c > > Modified: head/sys/riscv/sifive/sifive_uart.c > ============================================================================== > --- head/sys/riscv/sifive/sifive_uart.c Tue Jan 7 05:33:33 2020 (r356437) > +++ head/sys/riscv/sifive/sifive_uart.c Tue Jan 7 09:02:14 2020 (r356438) > @@ -64,11 +64,11 @@ __FBSDID("$FreeBSD$"); > #define SFUART_TXCTRL 0x08 > #define SFUART_TXCTRL_ENABLE 0x01 > #define SFUART_TXCTRL_NSTOP 0x02 > -#define SFUART_TXCTRL_TXCNT 0xb0000 > +#define SFUART_TXCTRL_TXCNT 0x70000 > #define SFUART_TXCTRL_TXCNT_SHIFT 16 > #define SFUART_RXCTRL 0x0c > #define SFUART_RXCTRL_ENABLE 0x01 > -#define SFUART_RXCTRL_RXCNT 0xb0000 > +#define SFUART_RXCTRL_RXCNT 0x70000 > #define SFUART_RXCTRL_RXCNT_SHIFT 16 > #define SFUART_IRQ_ENABLE 0x10 > #define SFUART_IRQ_ENABLE_TXWM 0x01 That could be #define SFUART_RXCTRL_RXCNT_SHIFT 16 #define SFUART_RXCTRL_RXCNT_MASK (0x7 << SFUART_RXCTRL_RXCNT_SHIFT) Ruslan From owner-svn-src-all@freebsd.org Tue Jan 7 15:42:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6B96C1EB37D; Tue, 7 Jan 2020 15:42:02 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sc7Z2GRBz4FtK; Tue, 7 Jan 2020 15:42:02 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 490BC1255; Tue, 7 Jan 2020 15:42:02 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Fg2sf043193; Tue, 7 Jan 2020 15:42:02 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Fg24I043192; Tue, 7 Jan 2020 15:42:02 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001071542.007Fg24I043192@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 15:42:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356439 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356439 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 15:42:02 -0000 Author: mjg Date: Tue Jan 7 15:42:01 2020 New Revision: 356439 URL: https://svnweb.freebsd.org/changeset/base/356439 Log: vfs: use a dedicated counter for free vnode recycling Otherwise vlrureclaim activitity is mixed in and it is hard to tell which vnodes got reclaimed. Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 09:02:14 2020 (r356438) +++ head/sys/kern/vfs_subr.c Tue Jan 7 15:42:01 2020 (r356439) @@ -204,6 +204,10 @@ static counter_u64_t recycles_count; SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles, CTLFLAG_RD, &recycles_count, "Number of vnodes recycled to meet vnode cache targets"); +static counter_u64_t recycles_free_count; +SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles_free, CTLFLAG_RD, &recycles_free_count, + "Number of free vnodes recycled to meet vnode cache targets"); + /* * Various variables used for debugging the new implementation of * reassignbuf(). @@ -603,6 +607,7 @@ vntblinit(void *dummy __unused) vnodes_created = counter_u64_alloc(M_WAITOK); recycles_count = counter_u64_alloc(M_WAITOK); + recycles_free_count = counter_u64_alloc(M_WAITOK); free_owe_inact = counter_u64_alloc(M_WAITOK); /* @@ -1466,7 +1471,7 @@ vtryrecycle(struct vnode *vp) return (EBUSY); } if (!VN_IS_DOOMED(vp)) { - counter_u64_add(recycles_count, 1); + counter_u64_add(recycles_free_count, 1); vgonel(vp); } VOP_UNLOCK(vp); From owner-svn-src-all@freebsd.org Tue Jan 7 15:44:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6AD271EB438; Tue, 7 Jan 2020 15:44:20 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47scBD2GRfz4GCM; Tue, 7 Jan 2020 15:44:20 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 492591298; Tue, 7 Jan 2020 15:44:20 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007FiKc3043391; Tue, 7 Jan 2020 15:44:20 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007FiK1r043390; Tue, 7 Jan 2020 15:44:20 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001071544.007FiK1r043390@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 15:44:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356440 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356440 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 15:44:20 -0000 Author: mjg Date: Tue Jan 7 15:44:19 2020 New Revision: 356440 URL: https://svnweb.freebsd.org/changeset/base/356440 Log: vfs: trylock in vfs_msync and refactor the func - use LK_NOWAIT instead of calling VOP_ISLOCKED before deciding to lock - evaluate flags before looping over vnodes Reviewed by: kib Tested by: pho (in a larger patch, previous version) Differential Revision: https://reviews.freebsd.org/D23035 Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 15:42:01 2020 (r356439) +++ head/sys/kern/vfs_subr.c Tue Jan 7 15:44:19 2020 (r356440) @@ -4390,36 +4390,39 @@ vfs_msync(struct mount *mp, int flags) { struct vnode *vp, *mvp; struct vm_object *obj; + struct thread *td; + int lkflags, objflags; CTR2(KTR_VFS, "%s: mp %p", __func__, mp); if ((mp->mnt_kern_flag & MNTK_NOMSYNC) != 0) return; + td = curthread; + + lkflags = LK_EXCLUSIVE | LK_INTERLOCK; + if (flags != MNT_WAIT) { + lkflags |= LK_NOWAIT; + objflags = OBJPC_NOSYNC; + } else { + objflags = OBJPC_SYNC; + } + MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { obj = vp->v_object; - if (obj != NULL && vm_object_mightbedirty(obj) && - (flags == MNT_WAIT || VOP_ISLOCKED(vp) == 0)) { - if (!vget(vp, - LK_EXCLUSIVE | LK_RETRY | LK_INTERLOCK, - curthread)) { - if (vp->v_vflag & VV_NOSYNC) { /* unlinked */ - vput(vp); - continue; - } - - obj = vp->v_object; - if (obj != NULL) { - VM_OBJECT_WLOCK(obj); - vm_object_page_clean(obj, 0, 0, - flags == MNT_WAIT ? - OBJPC_SYNC : OBJPC_NOSYNC); - VM_OBJECT_WUNLOCK(obj); - } - vput(vp); - } - } else + if (obj == NULL || !vm_object_mightbedirty(obj)) { VI_UNLOCK(vp); + continue; + } + if (vget(vp, lkflags, td) == 0) { + obj = vp->v_object; + if (obj != NULL && (vp->v_vflag & VV_NOSYNC) == 0) { + VM_OBJECT_WLOCK(obj); + vm_object_page_clean(obj, 0, 0, objflags); + VM_OBJECT_WUNLOCK(obj); + } + vput(vp); + } } } From owner-svn-src-all@freebsd.org Tue Jan 7 15:56:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 14A0B1EB7A2; Tue, 7 Jan 2020 15:56:27 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47scSB6dH8z4GhL; Tue, 7 Jan 2020 15:56:26 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C1D331479; Tue, 7 Jan 2020 15:56:26 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007FuQrw049264; Tue, 7 Jan 2020 15:56:26 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007FuPCb049254; Tue, 7 Jan 2020 15:56:25 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001071556.007FuPCb049254@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 15:56:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356441 - in head/sys: compat/linux geom/journal kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: compat/linux geom/journal kern sys X-SVN-Commit-Revision: 356441 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 15:56:27 -0000 Author: mjg Date: Tue Jan 7 15:56:24 2020 New Revision: 356441 URL: https://svnweb.freebsd.org/changeset/base/356441 Log: vfs: reimplement deferred inactive to use a dedicated flag (VI_DEFINACT) The previous behavior of leaving VI_OWEINACT vnodes on the active list without a hold count is eliminated. Hold count is kept and inactive processing gets explicitly deferred by setting the VI_DEFINACT flag. The syncer is then responsible for vdrop. Reviewed by: kib (previous version) Tested by: pho (in a larger patch, previous version) Differential Revision: https://reviews.freebsd.org/D23036 Modified: head/sys/compat/linux/linux_stats.c head/sys/geom/journal/g_journal.c head/sys/kern/vfs_mount.c head/sys/kern/vfs_subr.c head/sys/kern/vfs_syscalls.c head/sys/sys/mount.h head/sys/sys/vnode.h Modified: head/sys/compat/linux/linux_stats.c ============================================================================== --- head/sys/compat/linux/linux_stats.c Tue Jan 7 15:44:19 2020 (r356440) +++ head/sys/compat/linux/linux_stats.c Tue Jan 7 15:56:24 2020 (r356441) @@ -666,7 +666,7 @@ linux_syncfs(struct thread *td, struct linux_syncfs_ar if ((mp->mnt_flag & MNT_RDONLY) == 0 && vn_start_write(NULL, &mp, V_NOWAIT) == 0) { save = curthread_pflags_set(TDP_SYNCIO); - vfs_msync(mp, MNT_NOWAIT); + vfs_periodic(mp, MNT_NOWAIT); VFS_SYNC(mp, MNT_NOWAIT); curthread_pflags_restore(save); vn_finished_write(mp); Modified: head/sys/geom/journal/g_journal.c ============================================================================== --- head/sys/geom/journal/g_journal.c Tue Jan 7 15:44:19 2020 (r356440) +++ head/sys/geom/journal/g_journal.c Tue Jan 7 15:56:24 2020 (r356441) @@ -2874,7 +2874,7 @@ g_journal_do_switch(struct g_class *classp) save = curthread_pflags_set(TDP_SYNCIO); GJ_TIMER_START(1, &bt); - vfs_msync(mp, MNT_NOWAIT); + vfs_periodic(mp, MNT_NOWAIT); GJ_TIMER_STOP(1, &bt, "Msync time of %s", mountpoint); GJ_TIMER_START(1, &bt); Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Tue Jan 7 15:44:19 2020 (r356440) +++ head/sys/kern/vfs_mount.c Tue Jan 7 15:56:24 2020 (r356441) @@ -1692,7 +1692,7 @@ dounmount(struct mount *mp, int flags, struct thread * if (coveredvp != NULL) vdrop(coveredvp); - vfs_msync(mp, MNT_WAIT); + vfs_periodic(mp, MNT_WAIT); MNT_ILOCK(mp); async_flag = mp->mnt_flag & MNT_ASYNC; mp->mnt_flag &= ~MNT_ASYNC; Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 15:44:19 2020 (r356440) +++ head/sys/kern/vfs_subr.c Tue Jan 7 15:56:24 2020 (r356441) @@ -217,10 +217,9 @@ static int reassignbufcalls; SYSCTL_INT(_vfs, OID_AUTO, reassignbufcalls, CTLFLAG_RW | CTLFLAG_STATS, &reassignbufcalls, 0, "Number of calls to reassignbuf"); -static counter_u64_t free_owe_inact; -SYSCTL_COUNTER_U64(_vfs, OID_AUTO, free_owe_inact, CTLFLAG_RD, &free_owe_inact, - "Number of times free vnodes kept on active list due to VFS " - "owing inactivation"); +static counter_u64_t deferred_inact; +SYSCTL_COUNTER_U64(_vfs, OID_AUTO, deferred_inact, CTLFLAG_RD, &deferred_inact, + "Number of times inactive processing was deferred"); /* To keep more than one thread at a time from running vfs_getnewfsid */ static struct mtx mntid_mtx; @@ -608,7 +607,7 @@ vntblinit(void *dummy __unused) vnodes_created = counter_u64_alloc(M_WAITOK); recycles_count = counter_u64_alloc(M_WAITOK); recycles_free_count = counter_u64_alloc(M_WAITOK); - free_owe_inact = counter_u64_alloc(M_WAITOK); + deferred_inact = counter_u64_alloc(M_WAITOK); /* * Initialize the filesystem syncer. @@ -3012,6 +3011,39 @@ vrefcnt(struct vnode *vp) return (vp->v_usecount); } +static void +vdefer_inactive(struct vnode *vp) +{ + + ASSERT_VI_LOCKED(vp, __func__); + VNASSERT(vp->v_iflag & VI_OWEINACT, vp, + ("%s: vnode without VI_OWEINACT", __func__)); + VNASSERT(!VN_IS_DOOMED(vp), vp, + ("%s: doomed vnode", __func__)); + if (vp->v_iflag & VI_DEFINACT) { + VNASSERT(vp->v_holdcnt > 1, vp, ("lost hold count")); + vdropl(vp); + return; + } + vp->v_iflag |= VI_DEFINACT; + VI_UNLOCK(vp); + counter_u64_add(deferred_inact, 1); +} + +static void +vdefer_inactive_cond(struct vnode *vp) +{ + + VI_LOCK(vp); + VNASSERT(vp->v_holdcnt > 0, vp, ("vnode without hold count")); + if (VN_IS_DOOMED(vp) || + (vp->v_iflag & VI_OWEINACT) == 0) { + vdropl(vp); + return; + } + vdefer_inactive(vp); +} + enum vputx_op { VPUTX_VRELE, VPUTX_VPUT, VPUTX_VUNREF }; /* @@ -3101,8 +3133,12 @@ vputx(struct vnode *vp, enum vputx_op func) vinactive(vp); if (func != VPUTX_VUNREF) VOP_UNLOCK(vp); + vdropl(vp); + } else if (vp->v_iflag & VI_OWEINACT) { + vdefer_inactive(vp); + } else { + vdropl(vp); } - vdropl(vp); } /* @@ -3257,28 +3293,27 @@ vdrop_deactivate(struct vnode *vp) ("vdrop: vnode already reclaimed.")); VNASSERT((vp->v_iflag & VI_FREE) == 0, vp, ("vnode already free")); + VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp, + ("vnode with VI_OWEINACT set")); + VNASSERT((vp->v_iflag & VI_DEFINACT) == 0, vp, + ("vnode with VI_DEFINACT set")); VNASSERT(vp->v_holdcnt == 0, vp, ("vdrop: freeing when we shouldn't")); - if ((vp->v_iflag & VI_OWEINACT) == 0) { - mp = vp->v_mount; - mtx_lock(&mp->mnt_listmtx); - if (vp->v_iflag & VI_ACTIVE) { - vp->v_iflag &= ~VI_ACTIVE; - TAILQ_REMOVE(&mp->mnt_activevnodelist, vp, v_actfreelist); - mp->mnt_activevnodelistsize--; - } - TAILQ_INSERT_TAIL(&mp->mnt_tmpfreevnodelist, vp, v_actfreelist); - mp->mnt_tmpfreevnodelistsize++; - vp->v_iflag |= VI_FREE; - vp->v_mflag |= VMP_TMPMNTFREELIST; - VI_UNLOCK(vp); - if (mp->mnt_tmpfreevnodelistsize >= mnt_free_list_batch) - vnlru_return_batch_locked(mp); - mtx_unlock(&mp->mnt_listmtx); - } else { - VI_UNLOCK(vp); - counter_u64_add(free_owe_inact, 1); + mp = vp->v_mount; + mtx_lock(&mp->mnt_listmtx); + if (vp->v_iflag & VI_ACTIVE) { + vp->v_iflag &= ~VI_ACTIVE; + TAILQ_REMOVE(&mp->mnt_activevnodelist, vp, v_actfreelist); + mp->mnt_activevnodelistsize--; } + TAILQ_INSERT_TAIL(&mp->mnt_tmpfreevnodelist, vp, v_actfreelist); + mp->mnt_tmpfreevnodelistsize++; + vp->v_iflag |= VI_FREE; + vp->v_mflag |= VMP_TMPMNTFREELIST; + VI_UNLOCK(vp); + if (mp->mnt_tmpfreevnodelistsize >= mnt_free_list_batch) + vnlru_return_batch_locked(mp); + mtx_unlock(&mp->mnt_listmtx); } void @@ -3629,7 +3664,17 @@ vgonel(struct vnode *vp) */ active = vp->v_usecount > 0; oweinact = (vp->v_iflag & VI_OWEINACT) != 0; - VI_UNLOCK(vp); + /* + * If we need to do inactive VI_OWEINACT will be set. + */ + if (vp->v_iflag & VI_DEFINACT) { + VNASSERT(vp->v_holdcnt > 1, vp, ("lost hold count")); + vp->v_iflag &= ~VI_DEFINACT; + vdropl(vp); + } else { + VNASSERT(vp->v_holdcnt > 0, vp, ("vnode without hold count")); + VI_UNLOCK(vp); + } vfs_notify_upper(vp, VFS_NOTIFY_UPPER_RECLAIM); /* @@ -3823,8 +3868,10 @@ vn_printf(struct vnode *vp, const char *fmt, ...) strlcat(buf, "|VI_DOINGINACT", sizeof(buf)); if (vp->v_iflag & VI_OWEINACT) strlcat(buf, "|VI_OWEINACT", sizeof(buf)); + if (vp->v_iflag & VI_DEFINACT) + strlcat(buf, "|VI_DEFINACT", sizeof(buf)); flags = vp->v_iflag & ~(VI_TEXT_REF | VI_MOUNT | VI_FREE | VI_ACTIVE | - VI_DOINGINACT | VI_OWEINACT); + VI_DOINGINACT | VI_OWEINACT | VI_DEFINACT); if (flags != 0) { snprintf(buf2, sizeof(buf2), "|VI(0x%lx)", flags); strlcat(buf, buf2, sizeof(buf)); @@ -4381,23 +4428,67 @@ vfs_unmountall(void) unmount_or_warn(rootdevmp); } -/* - * perform msync on all vnodes under a mount point - * the mount point must be locked. - */ -void -vfs_msync(struct mount *mp, int flags) +static void +vfs_deferred_inactive(struct vnode *vp, int lkflags) { + + ASSERT_VI_LOCKED(vp, __func__); + VNASSERT((vp->v_iflag & VI_DEFINACT) == 0, vp, ("VI_DEFINACT still set")); + if ((vp->v_iflag & VI_OWEINACT) == 0) { + vdropl(vp); + return; + } + if (vn_lock(vp, lkflags) == 0) { + VI_LOCK(vp); + if ((vp->v_iflag & (VI_OWEINACT | VI_DOINGINACT)) == VI_OWEINACT) + vinactive(vp); + VOP_UNLOCK(vp); + vdropl(vp); + return; + } + vdefer_inactive_cond(vp); +} + +static void __noinline +vfs_periodic_inactive(struct mount *mp, int flags) +{ struct vnode *vp, *mvp; + int lkflags; + + lkflags = LK_EXCLUSIVE | LK_INTERLOCK; + if (flags != MNT_WAIT) + lkflags |= LK_NOWAIT; + + MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { + if ((vp->v_iflag & VI_DEFINACT) == 0) { + VI_UNLOCK(vp); + continue; + } + vp->v_iflag &= ~VI_DEFINACT; + vfs_deferred_inactive(vp, lkflags); + } +} + +static inline bool +vfs_want_msync(struct vnode *vp) +{ struct vm_object *obj; + + if (vp->v_vflag & VV_NOSYNC) + return (false); + obj = vp->v_object; + return (obj != NULL && vm_object_mightbedirty(obj)); +} + +static void __noinline +vfs_periodic_msync_inactive(struct mount *mp, int flags) +{ + struct vnode *vp, *mvp; + struct vm_object *obj; struct thread *td; int lkflags, objflags; + bool seen_defer; - CTR2(KTR_VFS, "%s: mp %p", __func__, mp); - - if ((mp->mnt_kern_flag & MNTK_NOMSYNC) != 0) - return; - td = curthread; lkflags = LK_EXCLUSIVE | LK_INTERLOCK; @@ -4409,9 +4500,16 @@ vfs_msync(struct mount *mp, int flags) } MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { - obj = vp->v_object; - if (obj == NULL || !vm_object_mightbedirty(obj)) { - VI_UNLOCK(vp); + seen_defer = false; + if (vp->v_iflag & VI_DEFINACT) { + vp->v_iflag &= ~VI_DEFINACT; + seen_defer = true; + } + if (!vfs_want_msync(vp)) { + if (seen_defer) + vfs_deferred_inactive(vp, lkflags); + else + VI_UNLOCK(vp); continue; } if (vget(vp, lkflags, td) == 0) { @@ -4422,10 +4520,27 @@ vfs_msync(struct mount *mp, int flags) VM_OBJECT_WUNLOCK(obj); } vput(vp); + if (seen_defer) + vdrop(vp); + } else { + if (seen_defer) + vdefer_inactive_cond(vp); } } } +void +vfs_periodic(struct mount *mp, int flags) +{ + + CTR2(KTR_VFS, "%s: mp %p", __func__, mp); + + if ((mp->mnt_kern_flag & MNTK_NOMSYNC) != 0) + vfs_periodic_inactive(mp, flags); + else + vfs_periodic_msync_inactive(mp, flags); +} + static void destroy_vpollinfo_free(struct vpollinfo *vi) { @@ -4636,7 +4751,7 @@ sync_fsync(struct vop_fsync_args *ap) * batch. Return them instead of letting them stay there indefinitely. */ vnlru_return_batch(mp); - vfs_msync(mp, MNT_NOWAIT); + vfs_periodic(mp, MNT_NOWAIT); error = VFS_SYNC(mp, MNT_LAZY); curthread_pflags_restore(save); vn_finished_write(mp); Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Tue Jan 7 15:44:19 2020 (r356440) +++ head/sys/kern/vfs_syscalls.c Tue Jan 7 15:56:24 2020 (r356441) @@ -129,7 +129,7 @@ kern_sync(struct thread *td) if ((mp->mnt_flag & MNT_RDONLY) == 0 && vn_start_write(NULL, &mp, V_NOWAIT) == 0) { save = curthread_pflags_set(TDP_SYNCIO); - vfs_msync(mp, MNT_NOWAIT); + vfs_periodic(mp, MNT_NOWAIT); VFS_SYNC(mp, MNT_NOWAIT); curthread_pflags_restore(save); vn_finished_write(mp); Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Tue Jan 7 15:44:19 2020 (r356440) +++ head/sys/sys/mount.h Tue Jan 7 15:56:24 2020 (r356441) @@ -396,7 +396,7 @@ void __mnt_vnode_markerfree_active(struct vno #define MNTK_UNMOUNTF 0x00000001 /* forced unmount in progress */ #define MNTK_ASYNC 0x00000002 /* filtered async flag */ #define MNTK_SOFTDEP 0x00000004 /* async disabled by softdep */ -#define MNTK_NOMSYNC 0x00000008 /* don't do vfs_msync */ +#define MNTK_NOMSYNC 0x00000008 /* don't do msync */ #define MNTK_DRAINING 0x00000010 /* lock draining is happening */ #define MNTK_REFEXPIRE 0x00000020 /* refcount expiring is happening */ #define MNTK_EXTENDED_SHARED 0x00000040 /* Allow shared locking for more ops */ @@ -903,7 +903,7 @@ int vfs_setopts(struct vfsoptlist *opts, const char *n const char *value); int vfs_setpublicfs /* set publicly exported fs */ (struct mount *, struct netexport *, struct export_args *); -void vfs_msync(struct mount *, int); +void vfs_periodic(struct mount *, int); int vfs_busy(struct mount *, int); int vfs_export /* process mount export info */ (struct mount *, struct export_args *); Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Tue Jan 7 15:44:19 2020 (r356440) +++ head/sys/sys/vnode.h Tue Jan 7 15:56:24 2020 (r356441) @@ -242,6 +242,7 @@ struct xvnode { #define VI_ACTIVE 0x0200 /* This vnode is on the active list */ #define VI_DOINGINACT 0x0800 /* VOP_INACTIVE is in progress */ #define VI_OWEINACT 0x1000 /* Need to call inactive */ +#define VI_DEFINACT 0x2000 /* deferred inactive */ #define VV_ROOT 0x0001 /* root of its filesystem */ #define VV_ISTTY 0x0002 /* vnode represents a tty */ From owner-svn-src-all@freebsd.org Tue Jan 7 15:59:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E60131EB8F8; Tue, 7 Jan 2020 15:59:02 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47scWB5l08z4H19; Tue, 7 Jan 2020 15:59:02 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C01761480; Tue, 7 Jan 2020 15:59:02 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Fx2C5049760; Tue, 7 Jan 2020 15:59:02 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Fx2nw049759; Tue, 7 Jan 2020 15:59:02 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001071559.007Fx2nw049759@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 7 Jan 2020 15:59:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356442 - head/sys/i386/i386 X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/i386/i386 X-SVN-Commit-Revision: 356442 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 15:59:03 -0000 Author: markj Date: Tue Jan 7 15:59:02 2020 New Revision: 356442 URL: https://svnweb.freebsd.org/changeset/base/356442 Log: Consistently use pmap_t instead of struct pmap *. MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/sys/i386/i386/pmap.c Modified: head/sys/i386/i386/pmap.c ============================================================================== --- head/sys/i386/i386/pmap.c Tue Jan 7 15:56:24 2020 (r356441) +++ head/sys/i386/i386/pmap.c Tue Jan 7 15:59:02 2020 (r356442) @@ -342,12 +342,10 @@ static void pmap_remove_pde(pmap_t pmap, pd_entry_t *p static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva, struct spglist *free); static vm_page_t pmap_remove_pt_page(pmap_t pmap, vm_offset_t va); -static void pmap_remove_page(struct pmap *pmap, vm_offset_t va, - struct spglist *free); +static void pmap_remove_page(pmap_t pmap, vm_offset_t va, struct spglist *free); static bool pmap_remove_ptes(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, struct spglist *free); -static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, - vm_offset_t va); +static void pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va); static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); static boolean_t pmap_try_insert_pv_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); From owner-svn-src-all@freebsd.org Tue Jan 7 15:59:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F0BF51EB979; Tue, 7 Jan 2020 15:59:32 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47scWm67lMz4H7P; Tue, 7 Jan 2020 15:59:32 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CDEC01481; Tue, 7 Jan 2020 15:59:32 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007FxW80049827; Tue, 7 Jan 2020 15:59:32 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007FxWse049824; Tue, 7 Jan 2020 15:59:32 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001071559.007FxWse049824@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 7 Jan 2020 15:59:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356443 - in head/sys/i386: i386 include X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys/i386: i386 include X-SVN-Commit-Revision: 356443 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 15:59:33 -0000 Author: markj Date: Tue Jan 7 15:59:31 2020 New Revision: 356443 URL: https://svnweb.freebsd.org/changeset/base/356443 Log: Define a unified pmap structure for i386. The overloading of struct pmap for PAE and non-PAE pmaps results in three distinct layouts for the structure, which is embedded in struct vmspace. This causes a large number of duplicate structure definitions in the i386 kernel's CTF type graph. Since most pmap fields are the same in the two pmaps, simply provide side-by-side variants of the fields that are distinct, using fixed-size types. PR: 242689 Reviewed by: kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22896 Modified: head/sys/i386/i386/pmap.c head/sys/i386/i386/pmap_nopae.c head/sys/i386/i386/pmap_pae.c head/sys/i386/include/pmap.h Modified: head/sys/i386/i386/pmap.c ============================================================================== --- head/sys/i386/i386/pmap.c Tue Jan 7 15:59:02 2020 (r356442) +++ head/sys/i386/i386/pmap.c Tue Jan 7 15:59:31 2020 (r356443) @@ -216,9 +216,6 @@ __FBSDID("$FreeBSD$"); atomic_clear_int((u_int *)(pte), PG_W)) #define pmap_pte_set_prot(pte, v) ((*(int *)pte &= ~PG_PROT), (*(int *)pte |= (v))) -_Static_assert(sizeof(struct pmap) <= sizeof(struct pmap_KBI), - "pmap_KBI"); - static int pgeflag = 0; /* PG_G or-in */ static int pseflag = 0; /* PG_PS or-in */ Modified: head/sys/i386/i386/pmap_nopae.c ============================================================================== --- head/sys/i386/i386/pmap_nopae.c Tue Jan 7 15:59:02 2020 (r356442) +++ head/sys/i386/i386/pmap_nopae.c Tue Jan 7 15:59:31 2020 (r356443) @@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #define PMTYPE pmap_nopae_ +#define pm_pdir pm_pdir_nopae #include #include -_Static_assert(sizeof(struct pmap_KBI) >= sizeof(struct pmap), "pmap KBI"); #include "pmap.c" Modified: head/sys/i386/i386/pmap_pae.c ============================================================================== --- head/sys/i386/i386/pmap_pae.c Tue Jan 7 15:59:02 2020 (r356442) +++ head/sys/i386/i386/pmap_pae.c Tue Jan 7 15:59:31 2020 (r356443) @@ -43,7 +43,8 @@ __FBSDID("$FreeBSD$"); #include #include #define PMTYPE pmap_pae_ +#define pm_pdir pm_pdir_pae +#define pm_pdpt pm_pdpt_pae #include #include -_Static_assert(sizeof(struct pmap_KBI) >= sizeof(struct pmap), "pmap KBI"); #include "pmap.c" Modified: head/sys/i386/include/pmap.h ============================================================================== --- head/sys/i386/include/pmap.h Tue Jan 7 15:59:02 2020 (r356442) +++ head/sys/i386/include/pmap.h Tue Jan 7 15:59:31 2020 (r356443) @@ -166,30 +166,18 @@ struct md_page { int pat_mode; }; -#define PMAP_EXTERN_FIELDS \ - cpuset_t pm_active; /* active on cpus */ \ - struct mtx pm_mtx; \ - struct pmap_statistics pm_stats; /* pmap statistics */ - -struct pmap_KBI { - PMAP_EXTERN_FIELDS - int32_t pm_fill[32]; -}; - -#ifdef PMTYPE struct pmap { - PMAP_EXTERN_FIELDS - pd_entry_t *pm_pdir; /* KVA of page directory */ + cpuset_t pm_active; /* active on cpus */ + struct mtx pm_mtx; + struct pmap_statistics pm_stats; /* pmap statistics */ + uint32_t *pm_pdir_nopae; /* KVA of page directory */ + uint64_t *pm_pdir_pae; TAILQ_HEAD(,pv_chunk) pm_pvchunk; /* list of mappings in pmap */ LIST_ENTRY(pmap) pm_list; /* List of all pmaps */ - pdpt_entry_t *pm_pdpt; /* KVA of page directory pointer - table */ + uint64_t *pm_pdpt_pae; struct vm_radix pm_root; /* spare page table pages */ - vm_page_t pm_ptdpg[NPGPTD]; + vm_page_t pm_ptdpg[4]; /* PAE NPGPTD */ }; -#else -#define pmap pmap_KBI -#endif typedef struct pmap *pmap_t; From owner-svn-src-all@freebsd.org Tue Jan 7 16:03:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21B911EBBC2; Tue, 7 Jan 2020 16:03:12 +0000 (UTC) (envelope-from rstone@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47scc0049Rz4HWK; Tue, 7 Jan 2020 16:03:12 +0000 (UTC) (envelope-from rstone@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F1D28164B; Tue, 7 Jan 2020 16:03:11 +0000 (UTC) (envelope-from rstone@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007G3BjI056080; Tue, 7 Jan 2020 16:03:11 GMT (envelope-from rstone@FreeBSD.org) Received: (from rstone@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007G3B0S056079; Tue, 7 Jan 2020 16:03:11 GMT (envelope-from rstone@FreeBSD.org) Message-Id: <202001071603.007G3B0S056079@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rstone set sender to rstone@FreeBSD.org using -f From: Ryan Stone Date: Tue, 7 Jan 2020 16:03:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356444 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: rstone X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 356444 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:03:12 -0000 Author: rstone Date: Tue Jan 7 16:03:11 2020 New Revision: 356444 URL: https://svnweb.freebsd.org/changeset/base/356444 Log: rtld: Fix segfault in direct exec mode When rtld is directly executed with arguments, it has to move the program arguments, environment and elf aux data up a few slots to remove its own arguments before the process being executed sees them. When copying the environment, rtld was incorrectly testing whether the location about to be written to currently contained NULL, when was supposed to check whether it had just copied the NULL terminator of the environment string. This had the result that the ELF aux data was mostly treated as environment variables, and rtld would quickly crash when it tried to access required ELF aux data that it didn't think was present. Differential Revision: https://reviews.freebsd.org/D23008 Reviewed by: kib MFC after: 1 month Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Tue Jan 7 15:59:31 2020 (r356443) +++ head/libexec/rtld-elf/rtld.c Tue Jan 7 16:03:11 2020 (r356444) @@ -514,12 +514,13 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr argv[i] = argv[i + rtld_argc]; *argcp -= rtld_argc; environ = env = envp = argv + main_argc + 1; + dbg("move env from %p to %p", envp + rtld_argc, envp); do { *envp = *(envp + rtld_argc); - envp++; - } while (*envp != NULL); + } while (*envp++ != NULL); aux = auxp = (Elf_Auxinfo *)envp; auxpf = (Elf_Auxinfo *)(envp + rtld_argc); + dbg("move aux from %p to %p", auxpf, aux); /* XXXKIB insert place for AT_EXECPATH if not present */ for (;; auxp++, auxpf++) { *auxp = *auxpf; From owner-svn-src-all@freebsd.org Tue Jan 7 16:07:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C81141EBC8C; Tue, 7 Jan 2020 16:07:31 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47schz4yf5z4Hk1; Tue, 7 Jan 2020 16:07:31 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 875CB1651; Tue, 7 Jan 2020 16:07:31 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007G7V8W056371; Tue, 7 Jan 2020 16:07:31 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007G7VBl056370; Tue, 7 Jan 2020 16:07:31 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001071607.007G7VBl056370@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 7 Jan 2020 16:07:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356445 - head/sys/dev/smartpqi X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/smartpqi X-SVN-Commit-Revision: 356445 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:07:31 -0000 Author: markj Date: Tue Jan 7 16:07:30 2020 New Revision: 356445 URL: https://svnweb.freebsd.org/changeset/base/356445 Log: Decrease logging severity when adding a device or reading config table. In PR 243056 a user reports some spam from smartpqi(4). In particular, the driver warns about an unrecognized PQI_CONF_TABLE_SECTION_SOFT_RESET section (not yet defined in the driver, but handled in Linux), but this doesn't cause any problems. The Linux driver also does not warn about unrecognized sections. Also do not log a warning when a device is added, since this is routine. Lower severity to DISC, to match pqisrc_remove_device(). PR: 243056 Reviewed by: sbruno MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23023 Modified: head/sys/dev/smartpqi/smartpqi_discovery.c head/sys/dev/smartpqi/smartpqi_init.c Modified: head/sys/dev/smartpqi/smartpqi_discovery.c ============================================================================== --- head/sys/dev/smartpqi/smartpqi_discovery.c Tue Jan 7 16:03:11 2020 (r356444) +++ head/sys/dev/smartpqi/smartpqi_discovery.c Tue Jan 7 16:07:30 2020 (r356445) @@ -1213,7 +1213,7 @@ static int pqisrc_add_device(pqisrc_softstate_t *softs pqi_scsi_dev_t *device) { DBG_FUNC("IN\n"); - DBG_WARN("vendor: %s model: %s bus:%d target:%d lun:%d is_physical_device:0x%x expose_device:0x%x volume_offline 0x%x volume_status 0x%x \n", + DBG_DISC("vendor: %s model: %s bus:%d target:%d lun:%d is_physical_device:0x%x expose_device:0x%x volume_offline 0x%x volume_status 0x%x \n", device->vendor, device->model, device->bus, device->target, device->lun, device->is_physical_device, device->expose_device, device->volume_offline, device->volume_status); device->invalid = false; Modified: head/sys/dev/smartpqi/smartpqi_init.c ============================================================================== --- head/sys/dev/smartpqi/smartpqi_init.c Tue Jan 7 16:03:11 2020 (r356444) +++ head/sys/dev/smartpqi/smartpqi_init.c Tue Jan 7 16:07:30 2020 (r356445) @@ -453,7 +453,7 @@ int pqisrc_process_config_table(pqisrc_softstate_t *so ret = PQI_STATUS_SUCCESS; break; default: - DBG_ERR("unrecognized PQI config table section ID: 0x%x\n", + DBG_INFO("unrecognized PQI config table section ID: 0x%x\n", LE_16(section_hdr->section_id)); break; } From owner-svn-src-all@freebsd.org Tue Jan 7 16:44:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 496951EC8C7; Tue, 7 Jan 2020 16:44:20 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdWS1F6hz4KWV; Tue, 7 Jan 2020 16:44:20 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 25D911D97; Tue, 7 Jan 2020 16:44:20 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GiK4Y080290; Tue, 7 Jan 2020 16:44:20 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GiKg2080289; Tue, 7 Jan 2020 16:44:20 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071644.007GiKg2080289@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:44:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356446 - stable/12/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Commit-Revision: 356446 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:44:20 -0000 Author: bz Date: Tue Jan 7 16:44:19 2020 New Revision: 356446 URL: https://svnweb.freebsd.org/changeset/base/356446 Log: MFC r351327: athhal: disable unused function (big endian only) Disable ar9300_swap_tx_desc() for the moment. It is an unused function only tried to compile on big endian systems. Modified: stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c ============================================================================== --- stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Tue Jan 7 16:07:30 2020 (r356445) +++ stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Tue Jan 7 16:44:19 2020 (r356446) @@ -26,9 +26,11 @@ #include "ar9300/ar9300phy.h" #include "ah_devid.h" +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN static void ar9300_swap_tx_desc(void *ds); #endif +#endif void ar9300_tx_req_intr_desc(struct ath_hal *ah, void *ds) @@ -174,6 +176,7 @@ ar9300_clear_dest_mask(struct ath_hal *ah, void *ds) } #endif +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN /* XXX what words need swapping */ /* Swap transmit descriptor */ @@ -192,6 +195,7 @@ ar9300_swap_tx_desc(void *dsp) ds->status7 = __bswap32(ds->status7); ds->status8 = __bswap32(ds->status8); } +#endif #endif From owner-svn-src-all@freebsd.org Tue Jan 7 16:47:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3DFFD1EC989; Tue, 7 Jan 2020 16:47:26 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdb20y5Yz4KfR; Tue, 7 Jan 2020 16:47:26 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 015831D9A; Tue, 7 Jan 2020 16:47:26 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GlPSX080521; Tue, 7 Jan 2020 16:47:25 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GlPHa080518; Tue, 7 Jan 2020 16:47:25 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071647.007GlPHa080518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:47:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356447 - stable/12/usr.bin/gprof X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/usr.bin/gprof X-SVN-Commit-Revision: 356447 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:47:26 -0000 Author: bz Date: Tue Jan 7 16:47:25 2020 New Revision: 356447 URL: https://svnweb.freebsd.org/changeset/base/356447 Log: MFC r351329: gprof: disable building of a.out components On arm64, riscv, and s390x disable building of aout components. This allows gprof to build on these architectures which never supported the legacy a.out binary format. Note: there might be more work needed for arm64 or risv and the MACHINE_ checks are based on what was use elsewhere in the tree at that time. Other will fix these parts with follow-up work. Modified: stable/12/usr.bin/gprof/Makefile stable/12/usr.bin/gprof/gprof.c stable/12/usr.bin/gprof/gprof.h Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/gprof/Makefile ============================================================================== --- stable/12/usr.bin/gprof/Makefile Tue Jan 7 16:44:19 2020 (r356446) +++ stable/12/usr.bin/gprof/Makefile Tue Jan 7 16:47:25 2020 (r356447) @@ -2,8 +2,14 @@ # $FreeBSD$ PROG= gprof -SRCS= gprof.c aout.c arcs.c dfn.c elf.c lookup.c hertz.c \ +SRCS= gprof.c arcs.c dfn.c elf.c lookup.c hertz.c \ printgprof.c printlist.c kernel.c + +.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_ARCH} != "riscv" && \ + ${MACHINE_ARCH} != "s390x" +SRCS+= aout.c +CFLAGS+= -DWITH_AOUT +.endif FILES= gprof.flat gprof.callg FILESDIR= ${SHAREDIR}/misc Modified: stable/12/usr.bin/gprof/gprof.c ============================================================================== --- stable/12/usr.bin/gprof/gprof.c Tue Jan 7 16:44:19 2020 (r356446) +++ stable/12/usr.bin/gprof/gprof.c Tue Jan 7 16:47:25 2020 (r356447) @@ -160,8 +160,11 @@ main(int argc, char **argv) * get information from the executable file. */ if ((Kflag && kernel_getnfile(a_outname, &defaultEs) == -1) || - (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1 && - aout_getnfile(a_outname, &defaultEs) == -1)) + (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1 +#ifdef WITH_AOUT + && aout_getnfile(a_outname, &defaultEs) == -1 +#endif + )) errx(1, "%s: bad format", a_outname); /* * sort symbol table. Modified: stable/12/usr.bin/gprof/gprof.h ============================================================================== --- stable/12/usr.bin/gprof/gprof.h Tue Jan 7 16:44:19 2020 (r356446) +++ stable/12/usr.bin/gprof/gprof.h Tue Jan 7 16:47:25 2020 (r356447) @@ -256,7 +256,9 @@ void addarc(nltype *, nltype *, long); bool addcycle(arctype **, arctype **); void addlist(struct stringlist *, char *); void alignentries(void); +#ifdef WITH_AOUT int aout_getnfile(const char *, char ***); +#endif int arccmp(arctype *, arctype *); arctype *arclookup(nltype *, nltype *); void asgnsamples(void); From owner-svn-src-all@freebsd.org Tue Jan 7 16:49:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9527F1ECA4B; Tue, 7 Jan 2020 16:49:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sddp3TZXz4Kpb; Tue, 7 Jan 2020 16:49:50 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 72D381DB9; Tue, 7 Jan 2020 16:49:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gno2U080694; Tue, 7 Jan 2020 16:49:50 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GnoOW080693; Tue, 7 Jan 2020 16:49:50 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071649.007GnoOW080693@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:49:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356448 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 356448 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:49:50 -0000 Author: bz Date: Tue Jan 7 16:49:50 2020 New Revision: 356448 URL: https://svnweb.freebsd.org/changeset/base/356448 Log: MFC r354416: m_pulldown(): Change an if () panic() into a KASSERT(). If we pass in a NULL mbuf to m_pulldown() we are in a bad situation already. There is no point in doing that check for production code. Change the if () panic() into a KASSERT. Modified: stable/12/sys/kern/uipc_mbuf2.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/uipc_mbuf2.c ============================================================================== --- stable/12/sys/kern/uipc_mbuf2.c Tue Jan 7 16:47:25 2020 (r356447) +++ stable/12/sys/kern/uipc_mbuf2.c Tue Jan 7 16:49:50 2020 (r356448) @@ -101,8 +101,8 @@ m_pulldown(struct mbuf *m, int off, int len, int *offp int writable; /* check invalid arguments. */ - if (m == NULL) - panic("m == NULL in m_pulldown()"); + KASSERT(m != NULL, ("%s: fix caller: m is NULL off %d len %d offp %p\n", + __func__, off, len, offp)); if (len > MCLBYTES) { m_freem(m); return NULL; /* impossible */ From owner-svn-src-all@freebsd.org Tue Jan 7 16:49:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5E0BA1ECA88; Tue, 7 Jan 2020 16:49:57 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sddx1xL7z4Kw9; Tue, 7 Jan 2020 16:49:57 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B98D1DBA; Tue, 7 Jan 2020 16:49:57 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gnv6k080744; Tue, 7 Jan 2020 16:49:57 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GnvS1080743; Tue, 7 Jan 2020 16:49:57 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071649.007GnvS1080743@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:49:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356449 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 356449 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:49:57 -0000 Author: bz Date: Tue Jan 7 16:49:56 2020 New Revision: 356449 URL: https://svnweb.freebsd.org/changeset/base/356449 Log: MFC r354416: m_pulldown(): Change an if () panic() into a KASSERT(). If we pass in a NULL mbuf to m_pulldown() we are in a bad situation already. There is no point in doing that check for production code. Change the if () panic() into a KASSERT. Modified: stable/11/sys/kern/uipc_mbuf2.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/uipc_mbuf2.c ============================================================================== --- stable/11/sys/kern/uipc_mbuf2.c Tue Jan 7 16:49:50 2020 (r356448) +++ stable/11/sys/kern/uipc_mbuf2.c Tue Jan 7 16:49:56 2020 (r356449) @@ -99,8 +99,8 @@ m_pulldown(struct mbuf *m, int off, int len, int *offp int writable; /* check invalid arguments. */ - if (m == NULL) - panic("m == NULL in m_pulldown()"); + KASSERT(m != NULL, ("%s: fix caller: m is NULL off %d len %d offp %p\n", + __func__, off, len, offp)); if (len > MCLBYTES) { m_freem(m); return NULL; /* impossible */ From owner-svn-src-all@freebsd.org Tue Jan 7 16:52:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B6D5F1ECC10; Tue, 7 Jan 2020 16:52:06 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdhQ4Ky5z4LK7; Tue, 7 Jan 2020 16:52:06 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 900A31F53; Tue, 7 Jan 2020 16:52:06 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gq6EZ086206; Tue, 7 Jan 2020 16:52:06 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Gq6EB086205; Tue, 7 Jan 2020 16:52:06 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071652.007Gq6EB086205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:52:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356450 - stable/12/lib/libipsec X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/lib/libipsec X-SVN-Commit-Revision: 356450 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:52:06 -0000 Author: bz Date: Tue Jan 7 16:52:05 2020 New Revision: 356450 URL: https://svnweb.freebsd.org/changeset/base/356450 Log: MFC r354572: libipsec: correct a typo Correct a typo in the ipsec_errlist and replicated in a comment. No functional changes. Modified: stable/12/lib/libipsec/ipsec_strerror.c stable/12/lib/libipsec/ipsec_strerror.h Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libipsec/ipsec_strerror.c ============================================================================== --- stable/12/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:49:56 2020 (r356449) +++ stable/12/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:52:05 2020 (r356450) @@ -62,7 +62,7 @@ static const char *ipsec_errlist[] = { "Invalid key length", /*EIPSEC_INVAL_KEYLEN*/ "Invalid address family", /*EIPSEC_INVAL_FAMILY*/ "Invalid prefix length", /*EIPSEC_INVAL_PREFIXLEN*/ -"Invalid direciton", /*EIPSEC_INVAL_DIR*/ +"Invalid direction", /*EIPSEC_INVAL_DIR*/ "SPI range violation", /*EIPSEC_INVAL_SPI*/ "No protocol specified", /*EIPSEC_NO_PROTO*/ "No algorithm specified", /*EIPSEC_NO_ALGS*/ Modified: stable/12/lib/libipsec/ipsec_strerror.h ============================================================================== --- stable/12/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:49:56 2020 (r356449) +++ stable/12/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:52:05 2020 (r356450) @@ -52,7 +52,7 @@ extern void __ipsec_set_strerror(const char *); #define EIPSEC_INVAL_KEYLEN 14 /*invalid key length*/ #define EIPSEC_INVAL_FAMILY 15 /*invalid address family*/ #define EIPSEC_INVAL_PREFIXLEN 16 /*SPI range violation*/ -#define EIPSEC_INVAL_DIR 17 /*Invalid direciton*/ +#define EIPSEC_INVAL_DIR 17 /*Invalid direction*/ #define EIPSEC_INVAL_SPI 18 /*invalid prefixlen*/ #define EIPSEC_NO_PROTO 19 /*no protocol specified*/ #define EIPSEC_NO_ALGS 20 /*No algorithm specified*/ From owner-svn-src-all@freebsd.org Tue Jan 7 16:52:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 931441ECC66; Tue, 7 Jan 2020 16:52:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdhc3SWtz4LRH; Tue, 7 Jan 2020 16:52:16 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 71CD21F5F; Tue, 7 Jan 2020 16:52:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GqGVx086260; Tue, 7 Jan 2020 16:52:16 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GqG4C086259; Tue, 7 Jan 2020 16:52:16 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071652.007GqG4C086259@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:52:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356451 - stable/11/lib/libipsec X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/lib/libipsec X-SVN-Commit-Revision: 356451 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:52:16 -0000 Author: bz Date: Tue Jan 7 16:52:15 2020 New Revision: 356451 URL: https://svnweb.freebsd.org/changeset/base/356451 Log: MFC r354572: libipsec: correct a typo Correct a typo in the ipsec_errlist and replicated in a comment. No functional changes. Modified: stable/11/lib/libipsec/ipsec_strerror.c stable/11/lib/libipsec/ipsec_strerror.h Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libipsec/ipsec_strerror.c ============================================================================== --- stable/11/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:52:05 2020 (r356450) +++ stable/11/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:52:15 2020 (r356451) @@ -60,7 +60,7 @@ static const char *ipsec_errlist[] = { "Invalid key length", /*EIPSEC_INVAL_KEYLEN*/ "Invalid address family", /*EIPSEC_INVAL_FAMILY*/ "Invalid prefix length", /*EIPSEC_INVAL_PREFIXLEN*/ -"Invalid direciton", /*EIPSEC_INVAL_DIR*/ +"Invalid direction", /*EIPSEC_INVAL_DIR*/ "SPI range violation", /*EIPSEC_INVAL_SPI*/ "No protocol specified", /*EIPSEC_NO_PROTO*/ "No algorithm specified", /*EIPSEC_NO_ALGS*/ Modified: stable/11/lib/libipsec/ipsec_strerror.h ============================================================================== --- stable/11/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:52:05 2020 (r356450) +++ stable/11/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:52:15 2020 (r356451) @@ -50,7 +50,7 @@ extern void __ipsec_set_strerror(const char *); #define EIPSEC_INVAL_KEYLEN 14 /*invalid key length*/ #define EIPSEC_INVAL_FAMILY 15 /*invalid address family*/ #define EIPSEC_INVAL_PREFIXLEN 16 /*SPI range violation*/ -#define EIPSEC_INVAL_DIR 17 /*Invalid direciton*/ +#define EIPSEC_INVAL_DIR 17 /*Invalid direction*/ #define EIPSEC_INVAL_SPI 18 /*invalid prefixlen*/ #define EIPSEC_NO_PROTO 19 /*no protocol specified*/ #define EIPSEC_NO_ALGS 20 /*No algorithm specified*/ From owner-svn-src-all@freebsd.org Tue Jan 7 16:53:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6D1621ECE9A; Tue, 7 Jan 2020 16:53:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdkS2Hxtz4LbB; Tue, 7 Jan 2020 16:53:52 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 49FF61F7D; Tue, 7 Jan 2020 16:53:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GrqEP086401; Tue, 7 Jan 2020 16:53:52 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GrqKo086400; Tue, 7 Jan 2020 16:53:52 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001071653.007GrqKo086400@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 7 Jan 2020 16:53:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356452 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356452 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:53:52 -0000 Author: jhb Date: Tue Jan 7 16:53:51 2020 New Revision: 356452 URL: https://svnweb.freebsd.org/changeset/base/356452 Log: Remove support for using GCC 4.2.1 from make tinderbox. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D23054 Modified: head/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Tue Jan 7 16:52:15 2020 (r356451) +++ head/Makefile Tue Jan 7 16:53:51 2020 (r356452) @@ -6,9 +6,7 @@ # universe - *Really* build *everything* (buildworld and # all kernels on all architectures). Define # MAKE_JUST_KERNELS to only build kernels, -# MAKE_JUST_WORLDS to only build userland, and/or -# MAKE_OBSOLETE_GCC to also build architectures -# unsupported by clang using in-tree gcc. +# MAKE_JUST_WORLDS to only build userland. # tinderbox - Same as universe, but presents a list of failed build # targets and exits with an error if there were any. # buildworld - Rebuild *everything*, including glue to help do @@ -490,8 +488,7 @@ worlds: .PHONY # In all cases, if the user specifies TARGETS on the command line, # honor that most of all. # -_OBSOLETE_GCC_TARGETS=mips sparc64 -TARGETS?=amd64 arm arm64 i386 powerpc riscv ${_OBSOLETE_GCC_TARGETS} +TARGETS?=amd64 arm arm64 i386 mips powerpc riscv sparc64 _UNIVERSE_TARGETS= ${TARGETS} TARGET_ARCHES_arm?= armv6 armv7 TARGET_ARCHES_arm64?= aarch64 @@ -505,21 +502,16 @@ TARGET_ARCHES_${target}?= ${target} .endfor MAKE_PARAMS_riscv?= CROSS_TOOLCHAIN=riscv64-gcc -.if !defined(MAKE_OBSOLETE_GCC) -OBSOLETE_GCC_TARGETS=${_OBSOLETE_GCC_TARGETS} MAKE_PARAMS_mips?= CROSS_TOOLCHAIN=mips-gcc6 MAKE_PARAMS_sparc64?= CROSS_TOOLCHAIN=sparc64-gcc6 -.endif TOOLCHAINS_mips= mips-gcc6 TOOLCHAINS_riscv= riscv64-gcc TOOLCHAINS_sparc64= sparc64-gcc6 # Remove architectures only supported by external toolchain from -# universe if required toolchain packages are missing. riscv requires -# an out-of-tree toolchain. When MAKE_OBSOLETE_GCC is not defined, -# the same logic appleis to the obsolete gcc targets. -.for target in riscv ${OBSOLETE_GCC_TARGETS} +# universe if required toolchain packages are missing. +.for target in mips riscv sparc64 .if ${_UNIVERSE_TARGETS:M${target}} .for toolchain in ${TOOLCHAINS_${target}} .if !exists(/usr/local/share/toolchains/${toolchain}.mk) From owner-svn-src-all@freebsd.org Tue Jan 7 16:54:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5E5B31ECF31; Tue, 7 Jan 2020 16:54:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdlS1sKDz4LkY; Tue, 7 Jan 2020 16:54:44 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B2E41F81; Tue, 7 Jan 2020 16:54:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gsi0o086496; Tue, 7 Jan 2020 16:54:44 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Gsing086495; Tue, 7 Jan 2020 16:54:44 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071654.007Gsing086495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:54:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356453 - stable/12/usr.bin/netstat X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/usr.bin/netstat X-SVN-Commit-Revision: 356453 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:54:44 -0000 Author: bz Date: Tue Jan 7 16:54:43 2020 New Revision: 356453 URL: https://svnweb.freebsd.org/changeset/base/356453 Log: MFC r354639: netstat: igmp stats, error on unexpected information, not only warn The igmp stats tend to print two lines of warning for an unexpected version and length. Despite an invalid version and struct size it continues to try to do something with the data. Do not try to parse the remainder of the struct and error on warning. Note the underlying issue of the data not being available properly is still there and needs to be fixed seperately. Reported by: test cases, lwhsu Modified: stable/12/usr.bin/netstat/inet.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/netstat/inet.c ============================================================================== --- stable/12/usr.bin/netstat/inet.c Tue Jan 7 16:53:51 2020 (r356452) +++ stable/12/usr.bin/netstat/inet.c Tue Jan 7 16:54:43 2020 (r356453) @@ -1229,10 +1229,12 @@ igmp_stats(u_long off, const char *name, int af1 __unu if (igmpstat.igps_version != IGPS_VERSION_3) { xo_warnx("%s: version mismatch (%d != %d)", __func__, igmpstat.igps_version, IGPS_VERSION_3); + return; } if (igmpstat.igps_len != IGPS_VERSION3_LEN) { xo_warnx("%s: size mismatch (%d != %d)", __func__, igmpstat.igps_len, IGPS_VERSION3_LEN); + return; } xo_open_container(name); From owner-svn-src-all@freebsd.org Tue Jan 7 16:54:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 02DFB1ECF7E; Tue, 7 Jan 2020 16:54:54 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdld6GLRz4LrH; Tue, 7 Jan 2020 16:54:53 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D208F1F82; Tue, 7 Jan 2020 16:54:53 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GsrZD086551; Tue, 7 Jan 2020 16:54:53 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GsrHq086550; Tue, 7 Jan 2020 16:54:53 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071654.007GsrHq086550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:54:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356454 - stable/11/usr.bin/netstat X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/usr.bin/netstat X-SVN-Commit-Revision: 356454 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:54:54 -0000 Author: bz Date: Tue Jan 7 16:54:53 2020 New Revision: 356454 URL: https://svnweb.freebsd.org/changeset/base/356454 Log: MFC r354639: netstat: igmp stats, error on unexpected information, not only warn The igmp stats tend to print two lines of warning for an unexpected version and length. Despite an invalid version and struct size it continues to try to do something with the data. Do not try to parse the remainder of the struct and error on warning. Note the underlying issue of the data not being available properly is still there and needs to be fixed seperately. Reported by: test cases, lwhsu Modified: stable/11/usr.bin/netstat/inet.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/netstat/inet.c ============================================================================== --- stable/11/usr.bin/netstat/inet.c Tue Jan 7 16:54:43 2020 (r356453) +++ stable/11/usr.bin/netstat/inet.c Tue Jan 7 16:54:53 2020 (r356454) @@ -1330,10 +1330,12 @@ igmp_stats(u_long off, const char *name, int af1 __unu if (igmpstat.igps_version != IGPS_VERSION_3) { xo_warnx("%s: version mismatch (%d != %d)", __func__, igmpstat.igps_version, IGPS_VERSION_3); + return; } if (igmpstat.igps_len != IGPS_VERSION3_LEN) { xo_warnx("%s: size mismatch (%d != %d)", __func__, igmpstat.igps_len, IGPS_VERSION3_LEN); + return; } xo_open_container(name); From owner-svn-src-all@freebsd.org Tue Jan 7 16:58:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF5B31ED0E2; Tue, 7 Jan 2020 16:58:39 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdqz4kHYz4M75; Tue, 7 Jan 2020 16:58:39 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D6051F96; Tue, 7 Jan 2020 16:58:39 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GwdfO086927; Tue, 7 Jan 2020 16:58:39 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GwdfY086926; Tue, 7 Jan 2020 16:58:39 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071658.007GwdfY086926@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:58:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356455 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 356455 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:58:39 -0000 Author: bz Date: Tue Jan 7 16:58:39 2020 New Revision: 356455 URL: https://svnweb.freebsd.org/changeset/base/356455 Log: MFC r355070: Allow kernel to compile without BPF. r297816 added some bpf magic for VIMAGE unconditionally which no longer allows kernels to compile without bpf (but with other networking). Add the missing ifdef checks and allow a kernel to compile without bpf again. PR: 242136 Reported by: dave mischler.com Modified: stable/12/sys/net/if.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/if.c ============================================================================== --- stable/12/sys/net/if.c Tue Jan 7 16:54:53 2020 (r356454) +++ stable/12/sys/net/if.c Tue Jan 7 16:58:39 2020 (r356455) @@ -32,6 +32,7 @@ * $FreeBSD$ */ +#include "opt_bpf.h" #include "opt_inet6.h" #include "opt_inet.h" @@ -1244,16 +1245,20 @@ static void if_vmove(struct ifnet *ifp, struct vnet *new_vnet) { struct if_clone *ifc; +#ifdef DEV_BPF u_int bif_dlt, bif_hdrlen; +#endif void *old; int rc; +#ifdef DEV_BPF /* * if_detach_internal() will call the eventhandler to notify * interface departure. That will detach if_bpf. We need to * safe the dlt and hdrlen so we can re-attach it later. */ bpf_get_bp_params(ifp->if_bpf, &bif_dlt, &bif_hdrlen); +#endif /* * Detach from current vnet, but preserve LLADDR info, do not @@ -1300,8 +1305,10 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet) if_attach_internal(ifp, 1, ifc); +#ifdef DEV_BPF if (ifp->if_bpf == NULL) bpfattach(ifp, bif_dlt, bif_hdrlen); +#endif CURVNET_RESTORE(); } From owner-svn-src-all@freebsd.org Tue Jan 7 17:02:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4C7B41ED35A; Tue, 7 Jan 2020 17:02:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdwp1LPyz4MWb; Tue, 7 Jan 2020 17:02:50 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 29595218F; Tue, 7 Jan 2020 17:02:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007H2oLE092416; Tue, 7 Jan 2020 17:02:50 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007H2ol8092415; Tue, 7 Jan 2020 17:02:50 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071702.007H2ol8092415@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 17:02:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356456 - stable/11/sys/net X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/sys/net X-SVN-Commit-Revision: 356456 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 17:02:50 -0000 Author: bz Date: Tue Jan 7 17:02:49 2020 New Revision: 356456 URL: https://svnweb.freebsd.org/changeset/base/356456 Log: MFC r355070: Allow kernel to compile without BPF. r297816 added some bpf magic for VIMAGE unconditionally which no longer allows kernels to compile without bpf (but with other networking). Add the missing ifdef checks and allow a kernel to compile without bpf again. PR: 242136 Reported by: dave mischler.com MFC after: 2 weeks Modified: stable/11/sys/net/if.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/net/if.c ============================================================================== --- stable/11/sys/net/if.c Tue Jan 7 16:58:39 2020 (r356455) +++ stable/11/sys/net/if.c Tue Jan 7 17:02:49 2020 (r356456) @@ -31,6 +31,7 @@ */ #include "opt_compat.h" +#include "opt_bpf.h" #include "opt_inet6.h" #include "opt_inet.h" @@ -1201,15 +1202,19 @@ static void if_vmove(struct ifnet *ifp, struct vnet *new_vnet) { struct if_clone *ifc; +#ifdef DEV_BPF u_int bif_dlt, bif_hdrlen; +#endif int rc; +#ifdef DEV_BPF /* * if_detach_internal() will call the eventhandler to notify * interface departure. That will detach if_bpf. We need to * safe the dlt and hdrlen so we can re-attach it later. */ bpf_get_bp_params(ifp->if_bpf, &bif_dlt, &bif_hdrlen); +#endif /* * Detach from current vnet, but preserve LLADDR info, do not @@ -1250,8 +1255,10 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet) if_attach_internal(ifp, 1, ifc); +#ifdef DEV_BPF if (ifp->if_bpf == NULL) bpfattach(ifp, bif_dlt, bif_hdrlen); +#endif CURVNET_RESTORE(); } From owner-svn-src-all@freebsd.org Tue Jan 7 17:07:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E4B941ED41E; Tue, 7 Jan 2020 17:07:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sf2k6RFlz4Mfy; Tue, 7 Jan 2020 17:07:58 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D58E6219B; Tue, 7 Jan 2020 17:07:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007H7wwI092760; Tue, 7 Jan 2020 17:07:58 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007H7wsE092759; Tue, 7 Jan 2020 17:07:58 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001071707.007H7wsE092759@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 7 Jan 2020 17:07:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356457 - head/tools/tools/crypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/tools/tools/crypto X-SVN-Commit-Revision: 356457 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 17:07:59 -0000 Author: jhb Date: Tue Jan 7 17:07:58 2020 New Revision: 356457 URL: https://svnweb.freebsd.org/changeset/base/356457 Log: Various cleanups to cryptocheck. - Rename 'blkcipher' to 'cipher'. Some of the ciphers being tested are stream ciphers. - Rename 'authenc' to 'eta' as it is only testing ETA chained operations and not other combination modes. - Add a notion of an OCF session and some helper routines to try to reduce duplicated code. This also uses a single session for both encrypt and decrypt operations during a single test. - Add tests to ensure that AEAD algorithms fail decryption with EBADMSG when given a corrupted tag. - Remove the transitional hack for COP_F_CIPHER_FIRST. - Update block comment to mention plain hashes. Reviewed by: cem Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D22940 Modified: head/tools/tools/crypto/cryptocheck.c Modified: head/tools/tools/crypto/cryptocheck.c ============================================================================== --- head/tools/tools/crypto/cryptocheck.c Tue Jan 7 17:02:49 2020 (r356456) +++ head/tools/tools/crypto/cryptocheck.c Tue Jan 7 17:07:58 2020 (r356457) @@ -73,41 +73,50 @@ * * Supported algorithms: * all Run all tests - * hmac Run all hmac tests - * blkcipher Run all block cipher tests - * authenc Run all authenticated encryption tests + * hash Run all hash tests + * mac Run all mac tests + * cipher Run all cipher tests + * eta Run all encrypt-then-authenticate tests * aead Run all authenticated encryption with associated data * tests * - * HMACs: - * sha1 sha1 hmac - * sha256 256-bit sha2 hmac - * sha384 384-bit sha2 hmac - * sha512 512-bit sha2 hmac + * Hashes: + * sha1 SHA-1 + * sha224 224-bit SHA-2 + * sha256 256-bit SHA-2 + * sha384 384-bit SHA-2 + * sha512 512-bit SHA-2 * blake2b Blake2-B * blake2s Blake2-S * - * Block Ciphers: - * aes-cbc 128-bit aes cbc - * aes-cbc192 192-bit aes cbc - * aes-cbc256 256-bit aes cbc - * aes-ctr 128-bit aes ctr - * aes-ctr192 192-bit aes ctr - * aes-ctr256 256-bit aes ctr - * aes-xts 128-bit aes xts - * aes-xts256 256-bit aes xts + * MACs: + * sha1hmac SHA-1 HMAC + * sha224hmac 224-bit SHA-2 HMAC + * sha256hmac 256-bit SHA-2 HMAC + * sha384hmac 384-bit SHA-2 HMAC + * sha512hmac 512-bit SHA-2 HMAC + * + * Ciphers: + * aes-cbc 128-bit AES-CBC + * aes-cbc192 192-bit AES-CBC + * aes-cbc256 256-bit AES-CBC + * aes-ctr 128-bit AES-CTR + * aes-ctr192 192-bit AES-CTR + * aes-ctr256 256-bit AES-CTR + * aes-xts 128-bit AES-XTS + * aes-xts256 256-bit AES-XTS * chacha20 * - * Authenticated Encryption: - * + + * Encrypt then Authenticate: + * + * * Authenticated Encryption with Associated Data: - * aes-gcm 128-bit aes gcm - * aes-gcm192 192-bit aes gcm - * aes-gcm256 256-bit aes gcm - * aes-ccm 128-bit aes ccm - * aes-ccm192 192-bit aes ccm - * aes-ccm256 256-bit aes ccm + * aes-gcm 128-bit AES-GCM + * aes-gcm192 192-bit AES-GCM + * aes-gcm256 256-bit AES-GCM + * aes-ccm 128-bit AES-CCM + * aes-ccm192 192-bit AES-CCM + * aes-ccm256 256-bit AES-CCM */ #include @@ -126,16 +135,17 @@ #include -/* XXX: Temporary hack */ -#ifndef COP_F_CIPHER_FIRST -#define COP_F_CIPHER_FIRST 0x0001 /* Cipher before MAC. */ -#endif +struct ocf_session { + int fd; + int ses; + int crid; +}; -struct alg { +const struct alg { const char *name; int cipher; int mac; - enum { T_HASH, T_HMAC, T_BLKCIPHER, T_AUTHENC, T_GCM, T_CCM } type; + enum { T_HASH, T_HMAC, T_CIPHER, T_ETA, T_AEAD } type; const EVP_CIPHER *(*evp_cipher)(void); const EVP_MD *(*evp_md)(void); } algs[] = { @@ -163,41 +173,41 @@ struct alg { .evp_md = EVP_blake2b512 }, { .name = "blake2s", .mac = CRYPTO_BLAKE2S, .type = T_HASH, .evp_md = EVP_blake2s256 }, - { .name = "aes-cbc", .cipher = CRYPTO_AES_CBC, .type = T_BLKCIPHER, + { .name = "aes-cbc", .cipher = CRYPTO_AES_CBC, .type = T_CIPHER, .evp_cipher = EVP_aes_128_cbc }, - { .name = "aes-cbc192", .cipher = CRYPTO_AES_CBC, .type = T_BLKCIPHER, + { .name = "aes-cbc192", .cipher = CRYPTO_AES_CBC, .type = T_CIPHER, .evp_cipher = EVP_aes_192_cbc }, - { .name = "aes-cbc256", .cipher = CRYPTO_AES_CBC, .type = T_BLKCIPHER, + { .name = "aes-cbc256", .cipher = CRYPTO_AES_CBC, .type = T_CIPHER, .evp_cipher = EVP_aes_256_cbc }, - { .name = "aes-ctr", .cipher = CRYPTO_AES_ICM, .type = T_BLKCIPHER, + { .name = "aes-ctr", .cipher = CRYPTO_AES_ICM, .type = T_CIPHER, .evp_cipher = EVP_aes_128_ctr }, - { .name = "aes-ctr192", .cipher = CRYPTO_AES_ICM, .type = T_BLKCIPHER, + { .name = "aes-ctr192", .cipher = CRYPTO_AES_ICM, .type = T_CIPHER, .evp_cipher = EVP_aes_192_ctr }, - { .name = "aes-ctr256", .cipher = CRYPTO_AES_ICM, .type = T_BLKCIPHER, + { .name = "aes-ctr256", .cipher = CRYPTO_AES_ICM, .type = T_CIPHER, .evp_cipher = EVP_aes_256_ctr }, - { .name = "aes-xts", .cipher = CRYPTO_AES_XTS, .type = T_BLKCIPHER, + { .name = "aes-xts", .cipher = CRYPTO_AES_XTS, .type = T_CIPHER, .evp_cipher = EVP_aes_128_xts }, - { .name = "aes-xts256", .cipher = CRYPTO_AES_XTS, .type = T_BLKCIPHER, + { .name = "aes-xts256", .cipher = CRYPTO_AES_XTS, .type = T_CIPHER, .evp_cipher = EVP_aes_256_xts }, - { .name = "chacha20", .cipher = CRYPTO_CHACHA20, .type = T_BLKCIPHER, + { .name = "chacha20", .cipher = CRYPTO_CHACHA20, .type = T_CIPHER, .evp_cipher = EVP_chacha20 }, { .name = "aes-gcm", .cipher = CRYPTO_AES_NIST_GCM_16, - .mac = CRYPTO_AES_128_NIST_GMAC, .type = T_GCM, + .mac = CRYPTO_AES_128_NIST_GMAC, .type = T_AEAD, .evp_cipher = EVP_aes_128_gcm }, { .name = "aes-gcm192", .cipher = CRYPTO_AES_NIST_GCM_16, - .mac = CRYPTO_AES_192_NIST_GMAC, .type = T_GCM, + .mac = CRYPTO_AES_192_NIST_GMAC, .type = T_AEAD, .evp_cipher = EVP_aes_192_gcm }, { .name = "aes-gcm256", .cipher = CRYPTO_AES_NIST_GCM_16, - .mac = CRYPTO_AES_256_NIST_GMAC, .type = T_GCM, + .mac = CRYPTO_AES_256_NIST_GMAC, .type = T_AEAD, .evp_cipher = EVP_aes_256_gcm }, { .name = "aes-ccm", .cipher = CRYPTO_AES_CCM_16, - .mac = CRYPTO_AES_CCM_CBC_MAC, .type = T_CCM, + .mac = CRYPTO_AES_CCM_CBC_MAC, .type = T_AEAD, .evp_cipher = EVP_aes_128_ccm }, { .name = "aes-ccm192", .cipher = CRYPTO_AES_CCM_16, - .mac = CRYPTO_AES_CCM_CBC_MAC, .type = T_CCM, + .mac = CRYPTO_AES_CCM_CBC_MAC, .type = T_AEAD, .evp_cipher = EVP_aes_192_ccm }, { .name = "aes-ccm256", .cipher = CRYPTO_AES_CCM_16, - .mac = CRYPTO_AES_CCM_CBC_MAC, .type = T_CCM, + .mac = CRYPTO_AES_CCM_CBC_MAC, .type = T_AEAD, .evp_cipher = EVP_aes_256_ccm }, }; @@ -213,7 +223,7 @@ usage(void) exit(1); } -static struct alg * +static const struct alg * find_alg(const char *name) { u_int i; @@ -225,42 +235,49 @@ find_alg(const char *name) } static struct alg * -build_authenc(struct alg *cipher, struct alg *hmac) +build_eta(const struct alg *cipher, const struct alg *mac) { - static struct alg authenc; + struct alg *eta; char *name; - assert(cipher->type == T_BLKCIPHER); - assert(hmac->type == T_HMAC); - memset(&authenc, 0, sizeof(authenc)); - asprintf(&name, "%s+%s", cipher->name, hmac->name); - authenc.name = name; - authenc.cipher = cipher->cipher; - authenc.mac = hmac->mac; - authenc.type = T_AUTHENC; - authenc.evp_cipher = cipher->evp_cipher; - authenc.evp_md = hmac->evp_md; - return (&authenc); + assert(cipher->type == T_CIPHER); + assert(mac->type == T_HMAC); + eta = calloc(1, sizeof(*eta)); + asprintf(&name, "%s+%s", cipher->name, mac->name); + eta->name = name; + eta->cipher = cipher->cipher; + eta->mac = mac->mac; + eta->type = T_ETA; + eta->evp_cipher = cipher->evp_cipher; + eta->evp_md = mac->evp_md; + return (eta); } +static void +free_eta(struct alg *eta) +{ + free(__DECONST(char *, eta->name)); + free(eta); +} + static struct alg * -build_authenc_name(const char *name) +build_eta_name(const char *name) { - struct alg *cipher, *hmac; - const char *hmac_name; + const struct alg *cipher, *mac; + const char *mac_name; char *cp, *cipher_name; cp = strchr(name, '+'); cipher_name = strndup(name, cp - name); - hmac_name = cp + 1; + mac_name = cp + 1; cipher = find_alg(cipher_name); free(cipher_name); - if (cipher == NULL) + if (cipher == NULL || cipher->type != T_CIPHER) errx(1, "Invalid cipher %s", cipher_name); - hmac = find_alg(hmac_name); - if (hmac == NULL) - errx(1, "Invalid hash %s", hmac_name); - return (build_authenc(cipher, hmac)); + mac = find_alg(mac_name); + if (mac == NULL || mac->type != T_HMAC) + errx(1, "Invalid hmac %s", mac_name); + return (build_eta(cipher, mac)); } static int @@ -371,7 +388,7 @@ alloc_buffer(size_t len) } static char * -generate_iv(size_t len, struct alg *alg) +generate_iv(size_t len, const struct alg *alg) { char *iv; @@ -402,51 +419,93 @@ generate_iv(size_t len, struct alg *alg) return (iv); } +static void +ocf_init_sop(struct session2_op *sop) +{ + memset(sop, 0, sizeof(*sop)); + sop->crid = crid; +} + static bool -ocf_hash(struct alg *alg, const char *buffer, size_t size, char *digest, - int *cridp) +ocf_init_session(struct session2_op *sop, const char *type, const char *name, + struct ocf_session *ses) { - struct session2_op sop; - struct crypt_op cop; int fd; - memset(&sop, 0, sizeof(sop)); - memset(&cop, 0, sizeof(cop)); - sop.crid = crid; - sop.mac = alg->mac; fd = crget(); - if (ioctl(fd, CIOCGSESSION2, &sop) < 0) { - warn("cryptodev %s HASH not supported for device %s", - alg->name, crfind(crid)); + if (ioctl(fd, CIOCGSESSION2, sop) < 0) { + warn("cryptodev %s %s not supported for device %s", + type, name, crfind(crid)); close(fd); + ses->fd = -1; return (false); } + ses->fd = fd; + ses->ses = sop->ses; + ses->crid = sop->crid; + return (true); +} - cop.ses = sop.ses; +static void +ocf_destroy_session(struct ocf_session *ses) +{ + if (ses->fd == -1) + return; + + if (ioctl(ses->fd, CIOCFSESSION, &ses->ses) < 0) + warn("ioctl(CIOCFSESSION)"); + + close(ses->fd); +} + +static void +ocf_init_cop(const struct ocf_session *ses, struct crypt_op *cop) +{ + memset(cop, 0, sizeof(*cop)); + cop->ses = ses->ses; +} + +static void +ocf_init_caead(const struct ocf_session *ses, struct crypt_aead *caead) +{ + memset(caead, 0, sizeof(*caead)); + caead->ses = ses->ses; +} + +static bool +ocf_hash(const struct alg *alg, const char *buffer, size_t size, char *digest, + int *cridp) +{ + struct ocf_session ses; + struct session2_op sop; + struct crypt_op cop; + int error; + + ocf_init_sop(&sop); + sop.mac = alg->mac; + if (!ocf_init_session(&sop, "HASH", alg->name, &ses)) + return (false); + + ocf_init_cop(&ses, &cop); cop.op = 0; cop.len = size; cop.src = (char *)buffer; - cop.dst = NULL; cop.mac = digest; - cop.iv = NULL; - if (ioctl(fd, CIOCCRYPT, &cop) < 0) { + if (ioctl(ses.fd, CIOCCRYPT, &cop) < 0) { warn("cryptodev %s (%zu) HASH failed for device %s", alg->name, size, crfind(crid)); - close(fd); + ocf_destroy_session(&ses); return (false); } - if (ioctl(fd, CIOCFSESSION, &sop.ses) < 0) - warn("ioctl(CIOCFSESSION)"); - - close(fd); - *cridp = sop.crid; + *cridp = ses.crid; + ocf_destroy_session(&ses); return (true); } static void -openssl_hash(struct alg *alg, const EVP_MD *md, const void *buffer, +openssl_hash(const struct alg *alg, const EVP_MD *md, const void *buffer, size_t size, void *digest_out, unsigned *digest_sz_out) { EVP_MD_CTX *mdctx; @@ -480,7 +539,7 @@ err_out: } static void -run_hash_test(struct alg *alg, size_t size) +run_hash_test(const struct alg *alg, size_t size) { const EVP_MD *md; char *buffer; @@ -525,52 +584,40 @@ out: } static bool -ocf_hmac(struct alg *alg, const char *buffer, size_t size, const char *key, - size_t key_len, char *digest, int *cridp) +ocf_hmac(const struct alg *alg, const char *buffer, size_t size, + const char *key, size_t key_len, char *digest, int *cridp) { + struct ocf_session ses; struct session2_op sop; struct crypt_op cop; - int fd; - memset(&sop, 0, sizeof(sop)); - memset(&cop, 0, sizeof(cop)); - sop.crid = crid; + ocf_init_sop(&sop); sop.mackeylen = key_len; sop.mackey = (char *)key; sop.mac = alg->mac; - fd = crget(); - if (ioctl(fd, CIOCGSESSION2, &sop) < 0) { - warn("cryptodev %s HMAC not supported for device %s", - alg->name, crfind(crid)); - close(fd); + if (!ocf_init_session(&sop, "HMAC", alg->name, &ses)) return (false); - } - cop.ses = sop.ses; + ocf_init_cop(&ses, &cop); cop.op = 0; cop.len = size; cop.src = (char *)buffer; - cop.dst = NULL; cop.mac = digest; - cop.iv = NULL; - if (ioctl(fd, CIOCCRYPT, &cop) < 0) { + if (ioctl(ses.fd, CIOCCRYPT, &cop) < 0) { warn("cryptodev %s (%zu) HMAC failed for device %s", alg->name, size, crfind(crid)); - close(fd); + ocf_destroy_session(&ses); return (false); } - if (ioctl(fd, CIOCFSESSION, &sop.ses) < 0) - warn("ioctl(CIOCFSESSION)"); - - close(fd); - *cridp = sop.crid; + *cridp = ses.crid; + ocf_destroy_session(&ses); return (true); } static void -run_hmac_test(struct alg *alg, size_t size) +run_hmac_test(const struct alg *alg, size_t size) { const EVP_MD *md; char *key, *buffer; @@ -621,7 +668,7 @@ out: } static void -openssl_cipher(struct alg *alg, const EVP_CIPHER *cipher, const char *key, +openssl_cipher(const struct alg *alg, const EVP_CIPHER *cipher, const char *key, const char *iv, const char *input, char *output, size_t size, int enc) { EVP_CIPHER_CTX *ctx; @@ -652,59 +699,48 @@ openssl_cipher(struct alg *alg, const EVP_CIPHER *ciph } static bool -ocf_cipher(struct alg *alg, const char *key, size_t key_len, - const char *iv, const char *input, char *output, size_t size, int enc, - int *cridp) +ocf_init_cipher_session(const struct alg *alg, const char *key, size_t key_len, + struct ocf_session *ses) { struct session2_op sop; - struct crypt_op cop; - int fd; - memset(&sop, 0, sizeof(sop)); - memset(&cop, 0, sizeof(cop)); - sop.crid = crid; + ocf_init_sop(&sop); sop.keylen = key_len; sop.key = (char *)key; sop.cipher = alg->cipher; - fd = crget(); - if (ioctl(fd, CIOCGSESSION2, &sop) < 0) { - warn("cryptodev %s block cipher not supported for device %s", - alg->name, crfind(crid)); - close(fd); - return (false); - } + return (ocf_init_session(&sop, "cipher", alg->name, ses)); +} - cop.ses = sop.ses; - cop.op = enc ? COP_ENCRYPT : COP_DECRYPT; +static bool +ocf_cipher(const struct ocf_session *ses, const struct alg *alg, const char *iv, + const char *input, char *output, size_t size, int op) +{ + struct crypt_op cop; + + ocf_init_cop(ses, &cop); + cop.op = op; cop.len = size; cop.src = (char *)input; cop.dst = output; - cop.mac = NULL; cop.iv = (char *)iv; - if (ioctl(fd, CIOCCRYPT, &cop) < 0) { - warn("cryptodev %s (%zu) block cipher failed for device %s", + if (ioctl(ses->fd, CIOCCRYPT, &cop) < 0) { + warn("cryptodev %s (%zu) cipher failed for device %s", alg->name, size, crfind(crid)); - close(fd); return (false); } - if (ioctl(fd, CIOCFSESSION, &sop.ses) < 0) - warn("ioctl(CIOCFSESSION)"); - - close(fd); - *cridp = sop.crid; return (true); } static void -run_blkcipher_test(struct alg *alg, size_t size) +run_cipher_test(const struct alg *alg, size_t size) { + struct ocf_session ses; const EVP_CIPHER *cipher; char *buffer, *cleartext, *ciphertext; char *iv, *key; u_int iv_len, key_len; - int crid; cipher = alg->evp_cipher(); if (size % EVP_CIPHER_block_size(cipher) != 0) { @@ -739,37 +775,39 @@ run_blkcipher_test(struct alg *alg, size_t size) exit(1); } + if (!ocf_init_cipher_session(alg, key, key_len, &ses)) + goto out; + /* OCF encrypt. */ - if (!ocf_cipher(alg, key, key_len, iv, cleartext, buffer, size, 1, - &crid)) + if (!ocf_cipher(&ses, alg, iv, cleartext, buffer, size, COP_ENCRYPT)) goto out; if (memcmp(ciphertext, buffer, size) != 0) { printf("%s (%zu) encryption mismatch:\n", alg->name, size); printf("control:\n"); hexdump(ciphertext, size, NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); + printf("test (cryptodev device %s):\n", crfind(ses.crid)); hexdump(buffer, size, NULL, 0); goto out; } /* OCF decrypt. */ - if (!ocf_cipher(alg, key, key_len, iv, ciphertext, buffer, size, 0, - &crid)) + if (!ocf_cipher(&ses, alg, iv, ciphertext, buffer, size, COP_DECRYPT)) goto out; if (memcmp(cleartext, buffer, size) != 0) { printf("%s (%zu) decryption mismatch:\n", alg->name, size); printf("control:\n"); hexdump(cleartext, size, NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); + printf("test (cryptodev device %s):\n", crfind(ses.crid)); hexdump(buffer, size, NULL, 0); goto out; } if (verbose) printf("%s (%zu) matched (cryptodev device %s)\n", - alg->name, size, crfind(crid)); + alg->name, size, crfind(ses.crid)); out: + ocf_destroy_session(&ses); free(ciphertext); free(buffer); free(cleartext); @@ -778,37 +816,35 @@ out: } static bool -ocf_authenc(struct alg *alg, const char *cipher_key, size_t cipher_key_len, - const char *iv, size_t iv_len, const char *auth_key, size_t auth_key_len, - const char *aad, size_t aad_len, const char *input, char *output, - size_t size, char *digest, int enc, int *cridp) +ocf_init_eta_session(const struct alg *alg, const char *cipher_key, + size_t cipher_key_len, const char *auth_key, size_t auth_key_len, + struct ocf_session *ses) { struct session2_op sop; - int fd; - memset(&sop, 0, sizeof(sop)); - sop.crid = crid; + ocf_init_sop(&sop); sop.keylen = cipher_key_len; sop.key = (char *)cipher_key; sop.cipher = alg->cipher; sop.mackeylen = auth_key_len; sop.mackey = (char *)auth_key; sop.mac = alg->mac; - fd = crget(); - if (ioctl(fd, CIOCGSESSION2, &sop) < 0) { - warn("cryptodev %s AUTHENC not supported for device %s", - alg->name, crfind(crid)); - close(fd); - return (false); - } + return (ocf_init_session(&sop, "ETA", alg->name, ses)); +} +static bool +ocf_eta(const struct ocf_session *ses, const struct alg *alg, const char *iv, + size_t iv_len, const char *aad, size_t aad_len, const char *input, + char *output, size_t size, char *digest, int op) +{ + int ret; + if (aad_len != 0) { struct crypt_aead caead; - memset(&caead, 0, sizeof(caead)); - caead.ses = sop.ses; - caead.op = enc ? COP_ENCRYPT : COP_DECRYPT; - caead.flags = enc ? COP_F_CIPHER_FIRST : 0; + ocf_init_caead(ses, &caead); + caead.op = op; + caead.flags = op == COP_ENCRYPT ? COP_F_CIPHER_FIRST : 0; caead.len = size; caead.aadlen = aad_len; caead.ivlen = iv_len; @@ -818,50 +854,40 @@ ocf_authenc(struct alg *alg, const char *cipher_key, s caead.tag = digest; caead.iv = (char *)iv; - if (ioctl(fd, CIOCCRYPTAEAD, &caead) < 0) { - warn("cryptodev %s (%zu) failed for device %s", - alg->name, size, crfind(crid)); - close(fd); - return (false); - } + ret = ioctl(ses->fd, CIOCCRYPTAEAD, &caead); } else { struct crypt_op cop; - memset(&cop, 0, sizeof(cop)); - cop.ses = sop.ses; - cop.op = enc ? COP_ENCRYPT : COP_DECRYPT; - cop.flags = enc ? COP_F_CIPHER_FIRST : 0; + ocf_init_cop(ses, &cop); + cop.op = op; + cop.flags = op == COP_ENCRYPT ? COP_F_CIPHER_FIRST : 0; cop.len = size; cop.src = (char *)input; cop.dst = output; cop.mac = digest; cop.iv = (char *)iv; - if (ioctl(fd, CIOCCRYPT, &cop) < 0) { - warn("cryptodev %s (%zu) AUTHENC failed for device %s", - alg->name, size, crfind(crid)); - close(fd); - return (false); - } + ret = ioctl(ses->fd, CIOCCRYPT, &cop); } - if (ioctl(fd, CIOCFSESSION, &sop.ses) < 0) - warn("ioctl(CIOCFSESSION)"); + if (ret < 0) { + warn("cryptodev %s (%zu) ETA failed for device %s", + alg->name, size, crfind(crid)); + return (false); + } - close(fd); - *cridp = sop.crid; return (true); } static void -run_authenc_test(struct alg *alg, size_t size) +run_eta_test(const struct alg *alg, size_t size) { + struct ocf_session ses; const EVP_CIPHER *cipher; const EVP_MD *md; char *aad, *buffer, *cleartext, *ciphertext; char *iv, *auth_key, *cipher_key; - u_int iv_len, auth_key_len, cipher_key_len, digest_len; - int crid; + u_int i, iv_len, auth_key_len, cipher_key_len, digest_len; char control_digest[EVP_MAX_MD_SIZE], test_digest[EVP_MAX_MD_SIZE]; cipher = alg->evp_cipher(); @@ -904,16 +930,20 @@ run_authenc_test(struct alg *alg, size_t size) errx(1, "OpenSSL %s (%zu) HMAC failed: %s", alg->name, size, ERR_error_string(ERR_get_error(), NULL)); + if (!ocf_init_eta_session(alg, cipher_key, cipher_key_len, auth_key, + auth_key_len, &ses)) + goto out; + /* OCF encrypt + HMAC. */ - if (!ocf_authenc(alg, cipher_key, cipher_key_len, iv, iv_len, auth_key, - auth_key_len, aad_len != 0 ? cleartext : NULL, aad_len, - cleartext + aad_len, buffer + aad_len, size, test_digest, 1, &crid)) + if (!ocf_eta(&ses, alg, iv, iv_len, + aad_len != 0 ? cleartext : NULL, aad_len, cleartext + aad_len, + buffer + aad_len, size, test_digest, COP_ENCRYPT)) goto out; if (memcmp(ciphertext + aad_len, buffer + aad_len, size) != 0) { printf("%s (%zu) encryption mismatch:\n", alg->name, size); printf("control:\n"); hexdump(ciphertext + aad_len, size, NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); + printf("test (cryptodev device %s):\n", crfind(ses.crid)); hexdump(buffer + aad_len, size, NULL, 0); goto out; } @@ -926,45 +956,31 @@ run_authenc_test(struct alg *alg, size_t size) size); printf("control:\n"); hexdump(control_digest, sizeof(control_digest), NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); + printf("test (cryptodev device %s):\n", crfind(ses.crid)); hexdump(test_digest, sizeof(test_digest), NULL, 0); goto out; } /* OCF HMAC + decrypt. */ - memset(test_digest, 0x3c, sizeof(test_digest)); - if (!ocf_authenc(alg, cipher_key, cipher_key_len, iv, iv_len, auth_key, - auth_key_len, aad_len != 0 ? ciphertext : NULL, aad_len, - ciphertext + aad_len, buffer + aad_len, size, test_digest, 0, - &crid)) + if (!ocf_eta(&ses, alg, iv, iv_len, + aad_len != 0 ? ciphertext : NULL, aad_len, ciphertext + aad_len, + buffer + aad_len, size, test_digest, COP_DECRYPT)) goto out; - if (memcmp(control_digest, test_digest, sizeof(control_digest)) != 0) { - if (memcmp(control_digest, test_digest, EVP_MD_size(md)) == 0) - printf("%s (%zu) dec hash mismatch in trailer:\n", - alg->name, size); - else - printf("%s (%zu) dec hash mismatch:\n", alg->name, - size); - printf("control:\n"); - hexdump(control_digest, sizeof(control_digest), NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); - hexdump(test_digest, sizeof(test_digest), NULL, 0); - goto out; - } if (memcmp(cleartext + aad_len, buffer + aad_len, size) != 0) { printf("%s (%zu) decryption mismatch:\n", alg->name, size); printf("control:\n"); hexdump(cleartext, size, NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); + printf("test (cryptodev device %s):\n", crfind(ses.crid)); hexdump(buffer, size, NULL, 0); goto out; } if (verbose) printf("%s (%zu) matched (cryptodev device %s)\n", - alg->name, size, crfind(crid)); + alg->name, size, crfind(ses.crid)); out: + ocf_destroy_session(&ses); free(ciphertext); free(buffer); free(cleartext); @@ -974,9 +990,9 @@ out: } static void -openssl_gcm_encrypt(struct alg *alg, const EVP_CIPHER *cipher, const char *key, - const char *iv, const char *aad, size_t aad_len, const char *input, - char *output, size_t size, char *tag) +openssl_gcm_encrypt(const struct alg *alg, const EVP_CIPHER *cipher, + const char *key, const char *iv, const char *aad, size_t aad_len, + const char *input, char *output, size_t size, char *tag) { EVP_CIPHER_CTX *ctx; int outl, total; @@ -1016,63 +1032,11 @@ openssl_gcm_encrypt(struct alg *alg, const EVP_CIPHER EVP_CIPHER_CTX_free(ctx); } -static bool -ocf_gcm(struct alg *alg, const char *key, size_t key_len, const char *iv, - size_t iv_len, const char *aad, size_t aad_len, const char *input, - char *output, size_t size, char *tag, int enc, int *cridp) -{ - struct session2_op sop; - struct crypt_aead caead; - int fd; - - memset(&sop, 0, sizeof(sop)); - memset(&caead, 0, sizeof(caead)); - sop.crid = crid; - sop.keylen = key_len; - sop.key = (char *)key; - sop.cipher = alg->cipher; - sop.mackeylen = key_len; - sop.mackey = (char *)key; - sop.mac = alg->mac; - fd = crget(); - if (ioctl(fd, CIOCGSESSION2, &sop) < 0) { - warn("cryptodev %s not supported for device %s", - alg->name, crfind(crid)); - close(fd); - return (false); - } - - caead.ses = sop.ses; - caead.op = enc ? COP_ENCRYPT : COP_DECRYPT; - caead.len = size; - caead.aadlen = aad_len; - caead.ivlen = iv_len; - caead.src = (char *)input; - caead.dst = output; - caead.aad = (char *)aad; - caead.tag = tag; - caead.iv = (char *)iv; - - if (ioctl(fd, CIOCCRYPTAEAD, &caead) < 0) { - warn("cryptodev %s (%zu) failed for device %s", - alg->name, size, crfind(crid)); - close(fd); - return (false); - } - - if (ioctl(fd, CIOCFSESSION, &sop.ses) < 0) - warn("ioctl(CIOCFSESSION)"); - - close(fd); - *cridp = sop.crid; - return (true); -} - #ifdef notused static bool -openssl_gcm_decrypt(struct alg *alg, const EVP_CIPHER *cipher, const char *key, - const char *iv, const char *aad, size_t aad_len, const char *input, - char *output, size_t size, char *tag) +openssl_gcm_decrypt(const struct alg *alg, const EVP_CIPHER *cipher, + const char *key, const char *iv, const char *aad, size_t aad_len, + const char *input, char *output, size_t size, char *tag) { EVP_CIPHER_CTX *ctx; int outl, total; @@ -1114,96 +1078,10 @@ openssl_gcm_decrypt(struct alg *alg, const EVP_CIPHER #endif static void -run_gcm_test(struct alg *alg, size_t size) +openssl_ccm_encrypt(const struct alg *alg, const EVP_CIPHER *cipher, + const char *key, const char *iv, size_t iv_len, const char *aad, + size_t aad_len, const char *input, char *output, size_t size, char *tag) { - const EVP_CIPHER *cipher; - char *aad, *buffer, *cleartext, *ciphertext; - char *iv, *key; - u_int iv_len, key_len; - int crid; - char control_tag[AES_GMAC_HASH_LEN], test_tag[AES_GMAC_HASH_LEN]; - - cipher = alg->evp_cipher(); - if (size % EVP_CIPHER_block_size(cipher) != 0) { - if (verbose) - printf( - "%s (%zu): invalid buffer size (block size %d)\n", - alg->name, size, EVP_CIPHER_block_size(cipher)); - return; - } - - memset(control_tag, 0x3c, sizeof(control_tag)); - memset(test_tag, 0x3c, sizeof(test_tag)); - - key_len = EVP_CIPHER_key_length(cipher); - iv_len = EVP_CIPHER_iv_length(cipher); - - key = alloc_buffer(key_len); - iv = generate_iv(iv_len, alg); - cleartext = alloc_buffer(size); - buffer = malloc(size); - ciphertext = malloc(size); - if (aad_len != 0) - aad = alloc_buffer(aad_len); - else - aad = NULL; - - /* OpenSSL encrypt */ - openssl_gcm_encrypt(alg, cipher, key, iv, aad, aad_len, cleartext, - ciphertext, size, control_tag); - - /* OCF encrypt */ - if (!ocf_gcm(alg, key, key_len, iv, iv_len, aad, aad_len, cleartext, - buffer, size, test_tag, 1, &crid)) - goto out; - if (memcmp(ciphertext, buffer, size) != 0) { - printf("%s (%zu) encryption mismatch:\n", alg->name, size); - printf("control:\n"); - hexdump(ciphertext, size, NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); - hexdump(buffer, size, NULL, 0); - goto out; - } - if (memcmp(control_tag, test_tag, sizeof(control_tag)) != 0) { - printf("%s (%zu) enc tag mismatch:\n", alg->name, size); - printf("control:\n"); - hexdump(control_tag, sizeof(control_tag), NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); - hexdump(test_tag, sizeof(test_tag), NULL, 0); - goto out; - } - - /* OCF decrypt */ - if (!ocf_gcm(alg, key, key_len, iv, iv_len, aad, aad_len, ciphertext, - buffer, size, control_tag, 0, &crid)) - goto out; - if (memcmp(cleartext, buffer, size) != 0) { - printf("%s (%zu) decryption mismatch:\n", alg->name, size); - printf("control:\n"); - hexdump(cleartext, size, NULL, 0); - printf("test (cryptodev device %s):\n", crfind(crid)); - hexdump(buffer, size, NULL, 0); - goto out; - } - - if (verbose) - printf("%s (%zu) matched (cryptodev device %s)\n", - alg->name, size, crfind(crid)); - -out: - free(aad); - free(ciphertext); - free(buffer); - free(cleartext); - free(iv); - free(key); -} - -static void -openssl_ccm_encrypt(struct alg *alg, const EVP_CIPHER *cipher, const char *key, - const char *iv, size_t iv_len, const char *aad, size_t aad_len, - const char *input, char *output, size_t size, char *tag) -{ EVP_CIPHER_CTX *ctx; int outl, total; @@ -1255,34 +1133,30 @@ openssl_ccm_encrypt(struct alg *alg, const EVP_CIPHER } static bool -ocf_ccm(struct alg *alg, const char *key, size_t key_len, const char *iv, - size_t iv_len, const char *aad, size_t aad_len, const char *input, - char *output, size_t size, char *tag, int enc, int *cridp) +ocf_init_aead_session(const struct alg *alg, const char *key, size_t key_len, + struct ocf_session *ses) { struct session2_op sop; - struct crypt_aead caead; - int fd; - bool rv; - memset(&sop, 0, sizeof(sop)); - memset(&caead, 0, sizeof(caead)); - sop.crid = crid; + ocf_init_sop(&sop); sop.keylen = key_len; sop.key = (char *)key; sop.cipher = alg->cipher; sop.mackeylen = key_len; sop.mackey = (char *)key; sop.mac = alg->mac; - fd = crget(); - if (ioctl(fd, CIOCGSESSION2, &sop) < 0) { - warn("cryptodev %s not supported for device %s", - alg->name, crfind(crid)); - close(fd); - return (false); - } + return (ocf_init_session(&sop, "AEAD", alg->name, ses)); +} - caead.ses = sop.ses; - caead.op = enc ? COP_ENCRYPT : COP_DECRYPT; +static int +ocf_aead(const struct ocf_session *ses, const struct alg *alg, const char *iv, + size_t iv_len, const char *aad, size_t aad_len, const char *input, + char *output, size_t size, char *tag, int op) +{ + struct crypt_aead caead; + + ocf_init_caead(ses, &caead); + caead.op = op; caead.len = size; caead.aadlen = aad_len; caead.ivlen = iv_len; @@ -1292,30 +1166,23 @@ ocf_ccm(struct alg *alg, const char *key, size_t key_l caead.tag = tag; caead.iv = (char *)iv; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 7 17:49:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34B3D1EDEDE; Tue, 7 Jan 2020 17:49:50 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sfz20Zqtz4PMJ; Tue, 7 Jan 2020 17:49:50 +0000 (UTC) (envelope-from lwhsu@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0F356292B; Tue, 7 Jan 2020 17:49:50 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Hnn9u017736; Tue, 7 Jan 2020 17:49:49 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Hnn3M017735; Tue, 7 Jan 2020 17:49:49 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202001071749.007Hnn3M017735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Tue, 7 Jan 2020 17:49:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356458 - head/tests/sys/geom/class/multipath X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/tests/sys/geom/class/multipath X-SVN-Commit-Revision: 356458 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 17:49:50 -0000 Author: lwhsu Date: Tue Jan 7 17:49:49 2020 New Revision: 356458 URL: https://svnweb.freebsd.org/changeset/base/356458 Log: Revert r355861 because the issue has been fixed in r356443 PR: 242689 Notified by: markj Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/geom/class/multipath/failloop.sh Modified: head/tests/sys/geom/class/multipath/failloop.sh ============================================================================== --- head/tests/sys/geom/class/multipath/failloop.sh Tue Jan 7 17:07:58 2020 (r356457) +++ head/tests/sys/geom/class/multipath/failloop.sh Tue Jan 7 17:49:49 2020 (r356458) @@ -36,11 +36,6 @@ failloop_head() } failloop_body() { - if [ "$(atf_config_get ci false)" = "true" ] && \ - [ "$(uname -p)" = "i386" ]; then - atf_skip "https://bugs.freebsd.org/242689" - fi - sysctl -n kern.geom.notaste > kern.geom.notaste.txt load_gnop load_gmultipath From owner-svn-src-all@freebsd.org Tue Jan 7 17:57:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DAFA01EE34D; Tue, 7 Jan 2020 17:57:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sg7S5VDNz4PvG; Tue, 7 Jan 2020 17:57:08 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B72512AF8; Tue, 7 Jan 2020 17:57:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Hv8Em023403; Tue, 7 Jan 2020 17:57:08 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Hv86w023402; Tue, 7 Jan 2020 17:57:08 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001071757.007Hv86w023402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 7 Jan 2020 17:57:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356459 - head/sys/netinet/tcp_stacks X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/netinet/tcp_stacks X-SVN-Commit-Revision: 356459 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 17:57:08 -0000 Author: emaste Date: Tue Jan 7 17:57:08 2020 New Revision: 356459 URL: https://svnweb.freebsd.org/changeset/base/356459 Log: Do not define TCPOUTFLAGS in rack_bbr_common tcp_outflags isn't used in this source file and compilation failed with external GCC on sparc64. I'm not sure why only that case failed (perhaps inconsistent -Werror config) but it is a legitimate issue to fix. Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D23068 Modified: head/sys/netinet/tcp_stacks/rack_bbr_common.c Modified: head/sys/netinet/tcp_stacks/rack_bbr_common.c ============================================================================== --- head/sys/netinet/tcp_stacks/rack_bbr_common.c Tue Jan 7 17:49:49 2020 (r356458) +++ head/sys/netinet/tcp_stacks/rack_bbr_common.c Tue Jan 7 17:57:08 2020 (r356459) @@ -91,7 +91,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#define TCPOUTFLAGS #include #include #include From owner-svn-src-all@freebsd.org Tue Jan 7 18:08:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C5EC01EE755; Tue, 7 Jan 2020 18:08:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sgNK5Kzhz4QYC; Tue, 7 Jan 2020 18:08:17 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEE122CFD; Tue, 7 Jan 2020 18:08:17 +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 007I8HoA030446; Tue, 7 Jan 2020 18:08:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007I8Gq5030436; Tue, 7 Jan 2020 18:08:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001071808.007I8Gq5030436@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 18:08:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356460 - in stable/12: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contri... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/builtin... X-SVN-Commit-Revision: 356460 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 18:08:17 -0000 Author: dim Date: Tue Jan 7 18:08:09 2020 New Revision: 356460 URL: https://svnweb.freebsd.org/changeset/base/356460 Log: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316. (NOTE: This does not yet consolidate all the llvm project sources under contrib/llvm-project (e.g., MFC r355940), due to Subversion limitations. It will be done in a follow-up MFC.) MFC r348610 (by emaste): build llvm-ar and llvm-nm with Clang (promote out of CLANG_EXTRAS) To facilitate experimentation with LTO we require an ar that supports LLVM IR, and to a lesser degree also an nm. As a first step always install llvm-ar and llvm-nm. Sponsored by: The FreeBSD Foundation MFC r350467 (by luporl): [PPC64] Backport fix for missing IRELATIVE relocations This is a backport of LLVM commit 8331f61a51a7a0a1efbf5ed398e181593023d151, llvm-svn: 353981: ELF: Allow GOT relocs pointing to non-preemptable ifunc to resolve to an IRELATIVE where possible. This is needed in order to make ifuncs work correctly on PPC64. It fixes an issue with lld, in which it would skip emitting necessary IRELATIVE relocations. Without this change, indirect calls to ifuncs would result in a segmentation fault, in static binaries or when defined in the main binary (outside shared libraries). This change also reverts the local "Preserve relocations against ifuncs when -zifunc-noplt" commit and replaces it by its upstream version, as part of the merge. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D21102 MFC r351662 (by emaste): lldb: shorten thread names to make logs easier to follow lldb prepends the thread name to log entries, and the existing thread name for the FreeBSD ProcessMonitor thread was longer than the kernel's supported thread name length, and so was truncated. This made logs hard to read, as the truncated thread name ran into the log message. Shorten "lldb.process.freebsd.operation" to just "freebsd.op" so that logs are more readable. (Upstreaming to lldb still to be done). MFC r352095 (by emaste): compiler-rt: use more __sanitizer_time_t on FreeBSD A few structs were using long for time_t members. Obtained from: LLVM r370755 MFC r352096 (by emaste): compiler-rt: use 64-bit time_t for all FreeBSD archs except i386 Obtained from: LLVM r370756 MFC r352167 (by imp): Remove dir empty since r276851 MFC r352168 (by imp): Remove dirs empty since r280031 MFC r352169 (by imp): Remove dir empty since r314564 MFC r352170 (by imp): Remove dir empty since r327952 MFC r352171 (by imp): Remove dirs (and their now-empty parents) empty since r344779 MFC r352792 (by emaste): compiler-rt: correct RISC-V struct_kernel_stat64_sz The value of struct_kernel_stat64_sz introduced by review D5021 for RISC-V was incorrect. Also add a __riscv_xlen == 64 conditional as the 32-bit ABI is not yet finalized. Submitted by: Luís Marques Differential Revision: https://reviews.freebsd.org/D21684 MFC r353018 (by kevans): clang: use -mxgot for 32-bit mips Various bits in usr.bin/clang/* will fail to compile without -mxgot due to truncated relocations. -mxgot entails a speed penalty, but I suspect we don't care as much about compiler performance in 32-bit mips land. Reviewed by: arichardson Differential Revision: https://reviews.freebsd.org/D21698 MFC r353358: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316. Release notes for llvm, clang, lld and libc++ 9.0.0 are available here: https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html PR: 240629 MFC r353363: Put in a band-aid fix for lldb 9 exiting with "Expected must be checked before access or destruction" when launching executables, while we sort this out with upstream. Reported by: jbeich PR: 241137 MFC r353415: Revert r353363 in preparation for applying upstream fix: Put in a band-aid fix for lldb 9 exiting with "Expected must be checked before access or destruction" when launching executables, while we sort this out with upstream. PR: 241137 MFC r353416: Pull in r374444 from upstream lldb trunk (by me): Fix process launch failure on FreeBSD after r365761 Summary: After rLLDB365761, and with `LLVM_ENABLE_ABI_BREAKING_CHECKS` enabled, launching any process on FreeBSD crashes lldb with: ``` Expected must be checked before access or destruction. Expected value was in success state. (Note: Expected values in success mode must still be checked prior to being destroyed). ``` This is because `m_operation_thread` and `m_monitor_thread` were wrapped in `llvm::Expected<>`, but this requires the objects to be correctly initialized before accessing them. To fix the crashes, use `llvm::Optional<>` for the members (as indicated by labath), and use local variables to store the return values of `LaunchThread` and `StartMonitoringChildProcess`. Then, only assign to the member variables after checking if the return values indicated success. Reviewers: devnexen, emaste, MaskRay, mgorny Reviewed By: devnexen Subscribers: jfb, labath, krytarowski, lldb-commits Differential Revision: https://reviews.llvm.org/D68723 PR: 241137 MFC r353579 (by jhb): Use __FreeBSD_version to determine if gets() has been removed. GCC compilers set __FreeBSD__ statically to a build-time determined targeted version (which in ports always matches the build host's version). This means that when building any version (12 or 13, etc.) of riscv or some other architecture via GCC on a 12.x host, __FreeBSD__ will always be set to 12. As a result, __FreeBSD__ cannot be used to reliably detect the target FreeBSD version being built. Instead, __FreeBSD_version from either (in the kernel) or (in userland) should be used. This changes the gets() test in libc++ to use __FreeBSD_version from . Reported by: jenkins (riscv64 and amd64-gcc) Reviewed by: dim, imp Differential Revision: https://reviews.freebsd.org/D22034 MFC r353711 (by mhorne): Fix build of LLVM RISC-V backend Reviewed by: dim MFC with: r353358 Differential Revision: https://reviews.freebsd.org/D21963 MFC r353738: Pull in r372651 from upstream lld trunk (by Simon Atanasyan): [mips] Support elf32btsmipn32_fbsd / elf32ltsmipn32_fbsd emulations Patch by Kyle Evans. Requested by: kevans MFC r353739: Pull in r374154 from upstream clang trunk (by Simon Atanasyan): [mips] Set default float ABI to "soft" on FreeBSD Initial patch by Kyle Evans. Fix PR43596 Requested by: kevans MFC r353936: Bump clang's default target CPU for the i386 architecture (aka "x86") to i686, as per the discussion on the freebsd-arch mailing list. Earlier in r352030, I had already bumped it to i586, to work around missing atomic 64 bit functions for the i386 architecture. Relnotes: yes MFC r354097: Pull in r372186 from upstream llvm trunk (by Eli Friedman): [ARM] VFPv2 only supports 16 D registers. r361845 changed the way we handle "D16" vs. "D32" targets; there used to be a negative "d16" which removed instructions from the instruction set, and now there's a "d32" feature which adds instructions to the instruction set. This is good, but there was an oversight in the implementation: the behavior of VFPv2 was changed. In particular, the "vfp2" feature was changed to imply "d32". This is wrong: VFPv2 only supports 16 D registers. In practice, this means if you specify -mfpu=vfpv2, the compiler will generate illegal instructions. This patch gets rid of "vfp2d16" and "vfp2d16sp", and fixes "vfp2" and "vfp2sp" so they don't imply "d32". Differential Revision: https://reviews.llvm.org/D67375 Pull in r372187 from upstream clang trunk (by Eli Friedman): [ARM] Update clang for removal of vfp2d16 and vfp2d16sp Matching fix for https://reviews.llvm.org/D67375 (r372186). Differential Revision: https://reviews.llvm.org/D67467 This should fix clang generating invalid opcodes for floating point operations on armv6. Requested by: mmel MFC r354146: Pull in r373338 from upstream llvm trunk (by Simon Pilgrim): Revert rL349624 : Let TableGen write output only if it changed, instead of doing so in cmake, attempt 2 Differential Revision: https://reviews.llvm.org/D55842 ----------------- As discussed on PR43385 this is causing Visual Studio msbuilds to perpetually rebuild all tablegen generated files Pull in r373664 from upstream llvm trunk (by Nico Weber): Reland r349624: Let TableGen write output only if it changed, instead of doing so in cmake Move the write-if-changed logic behind a flag and don't pass it with the MSVC generator. msbuild doesn't have a restat optimization, so not doing write-if-change there doesn't have a cost, and it should fix whatever causes PR43385. This should fix the scenario where an incremental build from before r353358 (the clang 9.0.0 upgrade) to r353358 or later fails to update the timestamp of the generated lib/clang/headers/arm_fp16.h header. After such a build, installing world from read-only source and object directories would attempt to generate the header again, leading to "clang-tblgen: error opening arm_fp16.h.d:Read-only file system". Reported by: avg, np PR: 241402 MFC r354339: Merge commit 97e362607 from llvm git (by Nemanja Ivanovic): [PowerPC] Do not emit HW loop if the body contains calls to lrint/lround These two intrinsics are lowered to calls so should prevent the formation of CTR loops. In a subsequent patch, we will handle all currently known intrinsics and prevent the formation of HW loops if any unknown intrinsics are encountered. Differential revision: https://reviews.llvm.org/D68841 This should fix an "invalid CRT loop" assertion when building the www/node port for powerpc64. Requested by: Alfredo Dal'Ava Júnior MFC r354347 (by cem): Fix llvm-libunwind userspace build on ARM GCC's libgcc exports a few ARM-specific symbols for ARM EABI, AEABI, or EHABI or whatever it's called. Export the same ones from LLVM-libunwind's libgcc_s, on ARM. As part of this, convert libgcc_s from a direct Version.map to one constructed from component Symbol.map files. This allows the ARM-specific Symbol.map to be included only on ARM. Fix ARM-only oddities in struct name/aliases in LLVM-libunwind to match non-ARM definitions and ARM-specific expectations in libcxxrt / libcompiler_rt. No functional change intended for non-ARM architectures. This commit does not actually flip the switch for ARM defaults from libgcc to llvm-libunwind, but makes it possible (to compile, anyway). MFC r354418 (by cem): clang: Enable unwind tables on !amd64 There doesn't seem to be much sense in defaulting "on" unwind tables on amd64 and not on other arches. It causes surprising differences between platforms, such as the PR below. Prior to this change, FreeBSD inherited the default implementation of the method from the Gnu.h Generic_Elf => Generic_GCC parent class, which returned true only for amd64 targets. Override that and opt on always, similar to, e.g., NetBSD. PR: 241562 Reported by: lwhsu Reviewed by: dim Discussed with: emaste Relnotes: yes Differential Revision: https://reviews.freebsd.org/D22252 MFC r354429: Merge commit 8e34dd941 from llvm git (by Sanjay Patel): [x86] avoid crashing when splitting AVX stores with non-simple type (PR43916) The store splitting transform was assuming a simple type (MVT), but that's not necessarily the case as shown in the test. This should fix 'Assertion failed: (isSimple() && "Expected a SimpleValueType!")' when building the security/openssl111 port targeting a CPU that supports AVX, but not AVX2, such as sandybridge. PR: 241747 MFC r354469: Merge commit f596f4507 from llvm git (by Sam Elliott): [RISCV] Add Custom Parser for Atomic Memory Operands Summary: GCC Accepts both (reg) and 0(reg) for atomic instruction memory operands. These instructions do not allow for an offset in their encoding, so in the latter case, the 0 is silently dropped. Due to how we have structured the RISCVAsmParser, the easiest way to add support for parsing this offset is to add a custom AsmOperand and parser. This parser drops all the parens, and just keeps the register. This commit also adds a custom printer for these operands, which matches the GCC canonical printer, printing both `(a0)` and `0(a0)` as `(a0)`. Reviewers: asb, lewis-revill Reviewed By: asb Subscribers: s.egerton, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, jfb, PkmX, jocewei, psnobl, benna, Jim, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65205 llvm-svn: 367553 Merge commit f596f4507 from llvm git (by Sam Elliott): [RISCV] Add FreeBSD targets Reviewers: asb Reviewed By: asb Subscribers: simoncook, s.egerton, lenary, psnobl, benna, mhorne, emaste, kito-cheng, shiva0217, rogfer01, rkruppe, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57795 Patch by James Clarke (jrtc27) llvm-svn: 367557 Merge commit f596f4507 from llvm git (by Hsiangkai Wang): [DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame. It is necessary to generate fixups in .debug_frame or .eh_frame as relaxation is enabled due to the address delta may be changed after relaxation. There is an opcode with 6-bits data in debug frame encoding. So, we also need 6-bits fixup types. Differential Revision: https://reviews.llvm.org/D58335 llvm-svn: 366524 Merge commit f596f4507 from llvm git (by Hsiangkai Wang): [DebugInfo] Some fields do not need relocations even relax is enabled. In debug frame information, some fields, e.g., Length in CIE/FDE and Offset in FDE are attributes to describe the structure of CIE/FDE. They are not related to the relaxed code. However, these attributes are symbol differences. So, in current design, these attributes will be filled as zero and LLVM generates relocations for them. We only need to generate relocations for symbols in executable sections. So, if the symbols are not located in executable sections, we still evaluate their values under relaxation. Differential Revision: https://reviews.llvm.org/D61584 llvm-svn: 366531 Merge commit f596f4507 from llvm git (by Alex Bradbury): [RISCV] Don't force absolute FK_Data_X fixups to relocs The current behavior of shouldForceRelocation forces relocations for the majority of fixups when relaxation is enabled. This makes sense for fixups which incorporate symbols but is unnecessary for simple data fixups where the fixup target is already resolved to an absolute value. Differential Revision: https://reviews.llvm.org/D63404 Patch by Edward Jones. llvm-svn: 369257 Merge commit f596f4507 from llvm git (by Alex Bradbury): [RISCV] Implement getExprForFDESymbol to ensure RISCV_32_PCREL is used for the FDE location Follow binutils in using RISCV_32_PCREL for the FDE initial location. As explained in the relevant binutils commit , the ADD/SUB pair of relocations is problematic in the presence of linker relaxation. This patch has the same end goal as D64715 but includes test changes and avoids adding a new global VariantKind to MCExpr.h (preferring RISCVMCExpr VKs like the rest of the RISC-V backend). Differential Revision: https://reviews.llvm.org/D66419 llvm-svn: 369375 This series of merges will permit riscv64 kernels and riscv64sf worlds to build with clang instead of gcc (but still using the bfd linker). Requested by: jhb Obtained from: https://github.com/freebsd/freebsd/compare/master...bsdjhb:riscv_clang MFC r354662 (by jhb): Sync target triple generation with the version in Makefile.inc1. Reviewed by: dim Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22333 MFC r354692 (by emaste): llvm: use AT_EXECPATH from ELF auxiliary vectors for getExecutablePath /proc/curproc/file and the KERN_PROC_PATHNAME sysctl may not return the desired path if there are multiple hardlinks to the file. PR: 241932 Tested by: ler Sponsored by: The FreeBSD Foundation MFC r354707 (by emaste): llvm: use elf_aux_info to get executable's path, if available Obtained from: LLVM a0a38b81ea MFC with: r354692 Sponsored by: The FreeBSD Foundation MFC r354979: Merge commit 7bed381ea from llvm git (by Simon Atanasyan): [mips] Implement Octeon+ `saa` and `saad` instructions `saa` and `saad` are 32-bit and 64-bit store atomic add instructions. memory[base] = memory[base] + rt These instructions are available for "Octeon+" CPU. The patch adds support for both instructions to MIPS assembler and diassembler and introduces new CPU type - "octeon+". Next patches will implement `.set arch=octeon+` directive and `AFL_EXT_OCTEONP` ISA extension flag support. Differential Revision: https://reviews.llvm.org/D69849 This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354980: Merge commit 3718102d4 from llvm git (by Simon Atanasyan): [mips] Support `octeon+` CPU in the `.set arch=` directive Differential Revision: https://reviews.llvm.org/D69850 This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354981: Merge commit bf996f761 from llvm git (by Simon Atanasyan): [mips] Write `AFL_EXT_OCTEONP` flag to the `.MIPS.abiflags` section Differential Revision: https://reviews.llvm.org/D69851 This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354982: Merge commit 3552d3e0f from llvm git (by Simon Atanasyan): [mips] Add `octeon+` to the list of CPUs accepted by the driver This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354983: Merge commit e578d0fd2 from llvm git (by Simon Atanasyan): [mips] Fix `__mips_isa_rev` macros value for Octeon CPU This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354984: Merge commit 0d14656b9 from llvm git (by Simon Atanasyan): [mips] Set __OCTEON__ macros This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354985: Merge commit a751f557d from llvm git (by Simon Atanasyan): [mips] Set macros for Octeon+ CPU This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r355397: Merge commit 241cbf201 from llvm git (by Nemanja Ivanovic): [PowerPC] Fix crash in peephole optimization When converting reg+reg shifts to reg+imm rotates, we neglect to consider the CodeGenOnly versions of the 32-bit shift mnemonics. This means we produce a rotate with missing operands which causes a crash. Committing this fix without review since it is non-controversial that the list of mnemonics to consider should include the 64-bit aliases for the exact mnemonics. Fixes PR44183. This should fix "Assertion failed: (idx < size()), function operator[], file /usr/src/contrib/llvm/include/llvm/ADT/SmallVector.h, line 153" when building the graphics/mesa-dri port for the PowerPC64 ELFv2 ABI. Reported by: Alfredo Dal'Ava Júnior MFC r355602: Add a few missed source files to libllvm, for the MK_LLVM_TARGET_BPF=yes case. Otherwise, linking of clang and other llvm based executables would complain about missing symbols. Reported by: rstone MFC r355645 (by cem): arm: libgcc_s: Fix ABI breakage introduced in r354347 Provide the symbol version for llvm-libunwind's _Unwind_Backtrace that libgcc has historically provided on arm, in addition to the (default) standard version used on all other arch. Reported by: mmel MFC r355803 (by mmel): Fix LLVM libunwnwind _Unwind_Backtrace symbol version for ARM. In original GNU libgcc, _Unwind_Backtrace is published with GCC_3.3 version for all architectures but ARM. For ARM should be publishes with GCC_4.3.0 version. This was originally omitted in r255095, fixed in r318024 and omitted aging in LLVM libunwind implementation in r354347. For ARM _Unwind_Backtrace should be published as default with GCC_4.3.0 version , (because this is right original version) and again as normal(not-default) with GCC_3.3 version (to maintain ABI compatibility compiled/linked with wrong pre r318024 libgcc) PR: 233664 Added: stable/12/contrib/compiler-rt/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/compiler-rt/FREEBSD-Xlist stable/12/contrib/compiler-rt/lib/asan/asan_interceptors_vfork.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/asan/asan_interceptors_vfork.S stable/12/contrib/compiler-rt/lib/asan/asan_mapping_sparc64.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/asan/asan_mapping_sparc64.h stable/12/contrib/compiler-rt/lib/cfi/cfi.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/cfi/cfi.cpp stable/12/contrib/compiler-rt/lib/crt/ - copied from r353358, head/contrib/compiler-rt/lib/crt/ stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerFork.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/fuzzer/FuzzerFork.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerFork.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/fuzzer/FuzzerFork.h stable/12/contrib/compiler-rt/lib/fuzzer/utils/ - copied from r353358, head/contrib/compiler-rt/lib/fuzzer/utils/ stable/12/contrib/compiler-rt/lib/gwp_asan/ - copied from r353358, head/contrib/compiler-rt/lib/gwp_asan/ stable/12/contrib/compiler-rt/lib/hwasan/hwasan.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interceptors_vfork.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors_vfork.S stable/12/contrib/compiler-rt/lib/hwasan/hwasan_linux.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_linux.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_malloc_bisect.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_malloc_bisect.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_report.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_thread.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cpp stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c - copied unchanged from r353358, head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c stable/12/contrib/compiler-rt/lib/safestack/safestack_platform.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/safestack/safestack_platform.h stable/12/contrib/compiler-rt/lib/safestack/safestack_util.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/safestack/safestack_util.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_hash.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_hash.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc stable/12/contrib/compiler-rt/lib/scudo/standalone/ - copied from r353358, head/contrib/compiler-rt/lib/scudo/standalone/ stable/12/contrib/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cc stable/12/contrib/compiler-rt/lib/tsan/benchmarks/mop.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/benchmarks/mop.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch.cc stable/12/contrib/libc++/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/libc++/FREEBSD-Xlist stable/12/contrib/libc++/include/fenv.h - copied unchanged from r353358, head/contrib/libc++/include/fenv.h stable/12/contrib/libc++/src/CMakeLists.txt - copied unchanged from r353358, head/contrib/libc++/src/CMakeLists.txt stable/12/contrib/libc++/src/condition_variable_destructor.cpp - copied unchanged from r353358, head/contrib/libc++/src/condition_variable_destructor.cpp stable/12/contrib/libc++/src/mutex_destructor.cpp - copied unchanged from r353358, head/contrib/libc++/src/mutex_destructor.cpp stable/12/contrib/libc++/src/support/runtime/stdexcept_default.ipp - copied unchanged from r353358, head/contrib/libc++/src/support/runtime/stdexcept_default.ipp stable/12/contrib/libc++/src/support/runtime/stdexcept_vcruntime.ipp - copied unchanged from r353358, head/contrib/libc++/src/support/runtime/stdexcept_vcruntime.ipp stable/12/contrib/libunwind/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/libunwind/FREEBSD-Xlist stable/12/contrib/llvm/include/llvm-c/Remarks.h - copied unchanged from r353358, head/contrib/llvm/include/llvm-c/Remarks.h stable/12/contrib/llvm/include/llvm/ADT/fallible_iterator.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ADT/fallible_iterator.h stable/12/contrib/llvm/include/llvm/Analysis/DomTreeUpdater.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Analysis/DomTreeUpdater.h stable/12/contrib/llvm/include/llvm/Analysis/VecFuncs.def - copied unchanged from r353358, head/contrib/llvm/include/llvm/Analysis/VecFuncs.def stable/12/contrib/llvm/include/llvm/BinaryFormat/Minidump.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/Minidump.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MinidumpConstants.def - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/MinidumpConstants.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackDocument.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/MsgPackDocument.h stable/12/contrib/llvm/include/llvm/BinaryFormat/XCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/XCOFF.h stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h stable/12/contrib/llvm/include/llvm/Bitstream/ - copied from r353358, head/contrib/llvm/include/llvm/Bitstream/ stable/12/contrib/llvm/include/llvm/CodeGen/CSEConfigBase.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/CSEConfigBase.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRParser/MIParser.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/MIRParser/MIParser.h stable/12/contrib/llvm/include/llvm/CodeGen/Register.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/Register.h stable/12/contrib/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h stable/12/contrib/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h stable/12/contrib/llvm/include/llvm/DebugInfo/GSYM/ - copied from r353358, head/contrib/llvm/include/llvm/DebugInfo/GSYM/ stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h stable/12/contrib/llvm/include/llvm/Demangle/DemangleConfig.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Demangle/DemangleConfig.h stable/12/contrib/llvm/include/llvm/Demangle/README.txt - copied unchanged from r353358, head/contrib/llvm/include/llvm/Demangle/README.txt stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITLink/ - copied from r353358, head/contrib/llvm/include/llvm/ExecutionEngine/JITLink/ stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/OrcV1Deprecation.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ExecutionEngine/OrcV1Deprecation.h stable/12/contrib/llvm/include/llvm/IR/RemarkStreamer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/IR/RemarkStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoXCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCAsmInfoXCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSectionXCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCSectionXCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolXCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCSymbolXCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCXCOFFObjectWriter.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCXCOFFObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCXCOFFStreamer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCXCOFFStreamer.h stable/12/contrib/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h stable/12/contrib/llvm/include/llvm/Object/Minidump.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/Minidump.h stable/12/contrib/llvm/include/llvm/Object/RelocationResolver.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/RelocationResolver.h stable/12/contrib/llvm/include/llvm/Object/WindowsMachineFlag.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/WindowsMachineFlag.h stable/12/contrib/llvm/include/llvm/Object/XCOFFObjectFile.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/XCOFFObjectFile.h stable/12/contrib/llvm/include/llvm/ObjectYAML/MinidumpYAML.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ObjectYAML/MinidumpYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/XCOFFYAML.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ObjectYAML/XCOFFYAML.h stable/12/contrib/llvm/include/llvm/Remarks/ - copied from r353358, head/contrib/llvm/include/llvm/Remarks/ stable/12/contrib/llvm/include/llvm/Support/CRC.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/CRC.h stable/12/contrib/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h stable/12/contrib/llvm/include/llvm/Support/SMTAPI.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/SMTAPI.h stable/12/contrib/llvm/include/llvm/Support/ScalableSize.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/ScalableSize.h stable/12/contrib/llvm/include/llvm/Support/Signposts.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/Signposts.h stable/12/contrib/llvm/include/llvm/Support/TimeProfiler.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/TimeProfiler.h stable/12/contrib/llvm/include/llvm/Testing/Support/Annotations.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Testing/Support/Annotations.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/Attributor.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/IPO/Attributor.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopFuse.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Scalar/LoopFuse.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MergeICmps.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Scalar/MergeICmps.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SizeOpts.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Utils/SizeOpts.h stable/12/contrib/llvm/lib/Analysis/DomTreeUpdater.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Analysis/DomTreeUpdater.cpp stable/12/contrib/llvm/lib/BinaryFormat/Minidump.cpp - copied unchanged from r353358, head/contrib/llvm/lib/BinaryFormat/Minidump.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackDocument.cpp - copied unchanged from r353358, head/contrib/llvm/lib/BinaryFormat/MsgPackDocument.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackDocumentYAML.cpp - copied unchanged from r353358, head/contrib/llvm/lib/BinaryFormat/MsgPackDocumentYAML.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp stable/12/contrib/llvm/lib/Bitstream/ - copied from r353358, head/contrib/llvm/lib/Bitstream/ stable/12/contrib/llvm/lib/CodeGen/FinalizeISel.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/FinalizeISel.cpp stable/12/contrib/llvm/lib/CodeGen/HardwareLoops.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/HardwareLoops.cpp stable/12/contrib/llvm/lib/CodeGen/SwiftErrorValueTracking.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/SwiftErrorValueTracking.cpp stable/12/contrib/llvm/lib/CodeGen/SwitchLoweringUtils.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/SwitchLoweringUtils.cpp stable/12/contrib/llvm/lib/DebugInfo/GSYM/ - copied from r353358, head/contrib/llvm/lib/DebugInfo/GSYM/ stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp - copied unchanged from r353358, head/contrib/llvm/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp - copied unchanged from r353358, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp stable/12/contrib/llvm/lib/Demangle/Demangle.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Demangle/Demangle.cpp stable/12/contrib/llvm/lib/ExecutionEngine/JITLink/ - copied from r353358, head/contrib/llvm/lib/ExecutionEngine/JITLink/ stable/12/contrib/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp stable/12/contrib/llvm/lib/IR/AbstractCallSite.cpp - copied unchanged from r353358, head/contrib/llvm/lib/IR/AbstractCallSite.cpp stable/12/contrib/llvm/lib/IR/RemarkStreamer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/IR/RemarkStreamer.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoXCOFF.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCAsmInfoXCOFF.cpp stable/12/contrib/llvm/lib/MC/MCSectionXCOFF.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCSectionXCOFF.cpp stable/12/contrib/llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCXCOFFStreamer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCXCOFFStreamer.cpp stable/12/contrib/llvm/lib/MC/XCOFFObjectWriter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/XCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/MCA/Stages/MicroOpQueueStage.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MCA/Stages/MicroOpQueueStage.cpp stable/12/contrib/llvm/lib/Object/Minidump.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Object/Minidump.cpp stable/12/contrib/llvm/lib/Object/RelocationResolver.cpp - copied, changed from r353358, head/contrib/llvm/lib/Object/RelocationResolver.cpp stable/12/contrib/llvm/lib/Object/WindowsMachineFlag.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Object/WindowsMachineFlag.cpp stable/12/contrib/llvm/lib/Object/XCOFFObjectFile.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Object/XCOFFObjectFile.cpp stable/12/contrib/llvm/lib/ObjectYAML/MinidumpYAML.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ObjectYAML/MinidumpYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/XCOFFYAML.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ObjectYAML/XCOFFYAML.cpp stable/12/contrib/llvm/lib/Remarks/ - copied from r353358, head/contrib/llvm/lib/Remarks/ stable/12/contrib/llvm/lib/Support/CRC.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/CRC.cpp stable/12/contrib/llvm/lib/Support/Optional.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/Optional.cpp stable/12/contrib/llvm/lib/Support/Signposts.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/Signposts.cpp stable/12/contrib/llvm/lib/Support/TimeProfiler.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/TimeProfiler.cpp stable/12/contrib/llvm/lib/Support/Z3Solver.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/Z3Solver.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64StackTagging.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64StackTagging.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h stable/12/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h stable/12/contrib/llvm/lib/Target/ARC/ARCOptAddrMode.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/ARCOptAddrMode.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h stable/12/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMCallingConv.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMCallingConv.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMInstrMVE.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMInstrMVE.td stable/12/contrib/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMPredicates.td - copied, changed from r353358, head/contrib/llvm/lib/Target/ARM/ARMPredicates.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleM4.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMScheduleM4.td stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h stable/12/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h stable/12/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFCORE.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/BPFCORE.h stable/12/contrib/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h stable/12/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.inc - copied unchanged from r353358, head/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.inc stable/12/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h stable/12/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h stable/12/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h stable/12/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h stable/12/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.h stable/12/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp - copied, changed from r353358, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h - copied, changed from r353358, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h stable/12/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleArch13.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleArch13.td stable/12/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h stable/12/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.h stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h stable/12/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.h stable/12/contrib/llvm/lib/Testing/Support/Annotations.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Testing/Support/Annotations.cpp stable/12/contrib/llvm/lib/Transforms/IPO/Attributor.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/IPO/Attributor.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopFuse.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Scalar/LoopFuse.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SizeOpts.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Utils/SizeOpts.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDumper.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/ASTDumper.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporterSharedState.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/ASTImporterSharedState.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTNodeTraverser.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/ASTNodeTraverser.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CurrentSourceLocExprScope.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/CurrentSourceLocExprScope.h stable/12/contrib/llvm/tools/clang/include/clang/AST/JSONNodeDumper.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/JSONNodeDumper.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnyCall.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Analysis/AnyCall.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/RetainSummaryManager.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Analysis/RetainSummaryManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/JsonSupport.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Basic/JsonSupport.h stable/12/contrib/llvm/tools/clang/include/clang/DirectoryWatcher/ - copied from r353358, head/contrib/llvm/tools/clang/include/clang/DirectoryWatcher/ stable/12/contrib/llvm/tools/clang/include/clang/Index/DeclOccurrence.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Index/DeclOccurrence.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/DependencyDirectivesSourceMinimizer.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Lex/DependencyDirectivesSourceMinimizer.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/InMemoryModuleCache.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Serialization/InMemoryModuleCache.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/DependencyScanning/ - copied from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/DependencyScanning/ stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RangeSelector.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RangeSelector.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/SourceCode.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/SourceCode.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Stencil.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Stencil.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Transformer.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Transformer.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Syntax/ - copied from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Syntax/ stable/12/contrib/llvm/tools/clang/lib/AST/JSONNodeDumper.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/AST/JSONNodeDumper.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/RetainSummaryManager.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Analysis/RetainSummaryManager.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/plugins/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Analysis/plugins/ stable/12/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.h stable/12/contrib/llvm/tools/clang/lib/DirectoryWatcher/ - copied from r353358, head/contrib/llvm/tools/clang/lib/DirectoryWatcher/ stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.h stable/12/contrib/llvm/tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Headers/avx512bf16intrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512bf16intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlbf16intrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512vlbf16intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlvp2intersectintrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512vlvp2intersectintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vp2intersectintrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512vp2intersectintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/enqcmdintrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/enqcmdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/opencl-c-base.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/opencl-c-base.h stable/12/contrib/llvm/tools/clang/lib/Headers/openmp_wrappers/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Headers/openmp_wrappers/ stable/12/contrib/llvm/tools/clang/lib/Headers/ppc_wrappers/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Headers/ppc_wrappers/ stable/12/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.cpp stable/12/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.h stable/12/contrib/llvm/tools/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/OpenCLBuiltins.td - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Sema/OpenCLBuiltins.td stable/12/contrib/llvm/tools/clang/lib/Sema/SemaModule.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Sema/SemaModule.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/InMemoryModuleCache.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Serialization/InMemoryModuleCache.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Move.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Move.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/DependencyScanning/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Tooling/DependencyScanning/ stable/12/contrib/llvm/tools/clang/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RangeSelector.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RangeSelector.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/SourceCode.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/SourceCode.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Stencil.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Stencil.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Transformer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Transformer.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Syntax/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Syntax/ stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp stable/12/contrib/llvm/tools/lld/COFF/DebugTypes.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lld/COFF/DebugTypes.cpp stable/12/contrib/llvm/tools/lld/COFF/DebugTypes.h - copied unchanged from r353358, head/contrib/llvm/tools/lld/COFF/DebugTypes.h stable/12/contrib/llvm/tools/lld/COFF/TypeMerger.h - copied unchanged from r353358, head/contrib/llvm/tools/lld/COFF/TypeMerger.h stable/12/contrib/llvm/tools/lld/Common/Filesystem.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lld/Common/Filesystem.cpp stable/12/contrib/llvm/tools/lld/docs/Partitions.rst - copied unchanged from r353358, head/contrib/llvm/tools/lld/docs/Partitions.rst stable/12/contrib/llvm/tools/lld/docs/partitions.dot - copied unchanged from r353358, head/contrib/llvm/tools/lld/docs/partitions.dot stable/12/contrib/llvm/tools/lld/docs/partitions.svg - copied unchanged from r353358, head/contrib/llvm/tools/lld/docs/partitions.svg stable/12/contrib/llvm/tools/lld/include/lld/Common/Filesystem.h - copied unchanged from r353358, head/contrib/llvm/tools/lld/include/lld/Common/Filesystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBReproducer.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/API/SBReproducer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointPrecondition.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointPrecondition.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/DynamicCheckerFunctions.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Expression/DynamicCheckerFunctions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/FileAction.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Host/FileAction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLaunchInfo.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLaunchInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CxxModuleHandler.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/CxxModuleHandler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/LocateSymbolFile.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/LocateSymbolFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/PostfixExpression.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/PostfixExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SourceModule.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/SourceModule.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RemoteAwarePlatform.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Target/RemoteAwarePlatform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/FileCollector.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/FileCollector.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessInfo.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RangeMap.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/RangeMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ReproducerInstrumentation.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/ReproducerInstrumentation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UserIDResolver.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/UserIDResolver.h stable/12/contrib/llvm/tools/lldb/source/API/SBReproducer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/API/SBReproducer.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBReproducerPrivate.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/API/SBReproducerPrivate.h stable/12/contrib/llvm/tools/lldb/source/API/Utils.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/API/Utils.h stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointPrecondition.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointPrecondition.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/Options.td - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Commands/Options.td stable/12/contrib/llvm/tools/lldb/source/Commands/OptionsBase.td - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Commands/OptionsBase.td stable/12/contrib/llvm/tools/lldb/source/Host/common/FileAction.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Host/common/FileAction.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/ProcessLaunchInfo.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Host/common/ProcessLaunchInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/Windows-x86_64/ - copied from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ABI/Windows-x86_64/ stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h stable/12/contrib/llvm/tools/lldb/source/Symbol/CxxModuleHandler.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/CxxModuleHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/DeclVendor.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/DeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFile.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/PostfixExpression.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/PostfixExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RemoteAwarePlatform.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Target/RemoteAwarePlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/FileCollector.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/FileCollector.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ProcessInfo.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/ProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ReproducerInstrumentation.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/ReproducerInstrumentation.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UserIDResolver.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/UserIDResolver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-instr/ - copied from r353358, head/contrib/llvm/tools/lldb/tools/lldb-instr/ stable/12/contrib/llvm/tools/lldb/utils/ - copied from r353358, head/contrib/llvm/tools/lldb/utils/ stable/12/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp - copied unchanged from r353358, head/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.h - copied unchanged from r353358, head/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.h stable/12/contrib/llvm/tools/llvm-objcopy/MachO/ - copied from r353358, head/contrib/llvm/tools/llvm-objcopy/MachO/ stable/12/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.h - copied unchanged from r353358, head/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.h stable/12/contrib/llvm/tools/llvm-readobj/XCOFFDumper.cpp - copied unchanged from r353358, head/contrib/llvm/tools/llvm-readobj/XCOFFDumper.cpp stable/12/contrib/openmp/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/openmp/FREEBSD-Xlist stable/12/contrib/openmp/runtime/src/include/omp-tools.h.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp-tools.h.var stable/12/contrib/openmp/runtime/src/include/omp.h.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp.h.var stable/12/contrib/openmp/runtime/src/include/omp_lib.f.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp_lib.f.var stable/12/contrib/openmp/runtime/src/include/omp_lib.f90.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp_lib.f90.var stable/12/contrib/openmp/runtime/src/include/omp_lib.h.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp_lib.h.var stable/12/lib/clang/include/VCSVersion.inc - copied, changed from r353358, head/lib/clang/include/VCSVersion.inc stable/12/lib/libclang_rt/cfi/ - copied from r353358, head/lib/libclang_rt/cfi/ stable/12/lib/libclang_rt/cfi_diag/ - copied from r353358, head/lib/libclang_rt/cfi_diag/ stable/12/lib/libclang_rt/dd/ - copied from r353358, head/lib/libclang_rt/dd/ stable/12/lib/libclang_rt/xray/ - copied from r353358, head/lib/libclang_rt/xray/ stable/12/lib/libclang_rt/xray-basic/ - copied from r353358, head/lib/libclang_rt/xray-basic/ stable/12/lib/libclang_rt/xray-fdr/ - copied from r353358, head/lib/libclang_rt/xray-fdr/ stable/12/lib/libclang_rt/xray-profiling/ - copied from r353358, head/lib/libclang_rt/xray-profiling/ stable/12/lib/libgcc_s/Symbol.map - copied, changed from r354347, head/lib/libgcc_s/Symbol.map stable/12/lib/libgcc_s/SymbolDefault.map - copied unchanged from r355803, head/lib/libgcc_s/SymbolDefault.map stable/12/lib/libgcc_s/Versions.def - copied unchanged from r354347, head/lib/libgcc_s/Versions.def stable/12/lib/libgcc_s/arm/ - copied from r354347, head/lib/libgcc_s/arm/ stable/12/usr.bin/clang/lldb-tblgen/ - copied from r353358, head/usr.bin/clang/lldb-tblgen/ Replaced: stable/12/contrib/llvm/include/llvm/TextAPI/MachO/ - copied from r353358, head/contrib/llvm/include/llvm/TextAPI/MachO/ stable/12/contrib/llvm/lib/TextAPI/MachO/ - copied from r353358, head/contrib/llvm/lib/TextAPI/MachO/ Deleted: stable/12/contrib/compiler-rt/include/sanitizer/esan_interface.h stable/12/contrib/compiler-rt/lib/builtins/armv6m/ stable/12/contrib/compiler-rt/lib/cfi/cfi.cc stable/12/contrib/compiler-rt/lib/esan/ stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmem.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmemFuchsia.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmemPosix.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmemWindows.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cc stable/12/contrib/compiler-rt/lib/sancov/ stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_mips64.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_x86_64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc stable/12/contrib/libc++/include/experimental/any stable/12/contrib/libc++/include/experimental/chrono stable/12/contrib/libc++/include/experimental/numeric stable/12/contrib/libc++/include/experimental/optional stable/12/contrib/libc++/include/experimental/ratio stable/12/contrib/libc++/include/experimental/string_view stable/12/contrib/libc++/include/experimental/system_error stable/12/contrib/libc++/include/experimental/tuple stable/12/contrib/llvm/include/llvm-c/OptRemarks.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackTypes.h stable/12/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs/ stable/12/contrib/llvm/include/llvm/Bitcode/BitCodes.h stable/12/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h stable/12/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h stable/12/contrib/llvm/include/llvm/Demangle/Compiler.h stable/12/contrib/llvm/include/llvm/IR/DomTreeUpdater.h stable/12/contrib/llvm/include/llvm/MC/MCAnalysis/ stable/12/contrib/llvm/include/llvm/Object/RelocVisitor.h stable/12/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackTypes.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitstreamReader.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIParser.h stable/12/contrib/llvm/lib/ExecutionEngine/JIT/ stable/12/contrib/llvm/lib/IR/DomTreeUpdater.cpp stable/12/contrib/llvm/lib/MC/MCAnalysis/ stable/12/contrib/llvm/lib/OptRemarks/ stable/12/contrib/llvm/lib/Target/AArch64/InstPrinter/ stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/InstPrinter/ stable/12/contrib/llvm/lib/Target/AMDGPU/SIDebuggerInsertNops.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIIntrinsics.td stable/12/contrib/llvm/lib/Target/ARC/InstPrinter/ stable/12/contrib/llvm/lib/Target/ARM/ARMComputeBlockSize.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleM3.td stable/12/contrib/llvm/lib/Target/ARM/InstPrinter/ stable/12/contrib/llvm/lib/Target/ARM/LICENSE.TXT stable/12/contrib/llvm/lib/Target/AVR/InstPrinter/ stable/12/contrib/llvm/lib/Target/BPF/InstPrinter/ stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h stable/12/contrib/llvm/lib/Target/Lanai/InstPrinter/ stable/12/contrib/llvm/lib/Target/MSP430/InstPrinter/ stable/12/contrib/llvm/lib/Target/Mips/InstPrinter/ stable/12/contrib/llvm/lib/Target/NVPTX/InstPrinter/ stable/12/contrib/llvm/lib/Target/Nios2/ stable/12/contrib/llvm/lib/Target/PowerPC/InstPrinter/ stable/12/contrib/llvm/lib/Target/RISCV/InstPrinter/ stable/12/contrib/llvm/lib/Target/Sparc/InstPrinter/ stable/12/contrib/llvm/lib/Target/SystemZ/InstPrinter/ stable/12/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h stable/12/contrib/llvm/lib/Target/X86/InstPrinter/ stable/12/contrib/llvm/lib/Target/X86/ShadowCallStack.cpp stable/12/contrib/llvm/lib/Target/XCore/InstPrinter/ stable/12/contrib/llvm/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp stable/12/contrib/llvm/tools/clang/include/clang/Basic/MemoryBufferCache.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTExpr.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSort.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h stable/12/contrib/llvm/tools/clang/lib/Basic/MemoryBufferCache.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TaintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp stable/12/contrib/llvm/tools/lld/ELF/Bits.h stable/12/contrib/llvm/tools/lld/ELF/Filesystem.cpp stable/12/contrib/llvm/tools/lld/ELF/Filesystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBInitializerOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRDynamicChecks.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h stable/12/contrib/llvm/tools/lldb/source/API/SBInitializerOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Java/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/ stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/ stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.h stable/12/contrib/llvm/tools/lldb/source/Target/CPPLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/FileAction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp stable/12/contrib/llvm/tools/llvm-mca/include/ stable/12/contrib/llvm/tools/llvm-mca/lib/ stable/12/contrib/openmp/runtime/src/include/30/ stable/12/contrib/openmp/runtime/src/include/40/ stable/12/contrib/openmp/runtime/src/include/45/ stable/12/contrib/openmp/runtime/src/include/50/ stable/12/lib/libc++fs/ stable/12/lib/libgcc_s/Version.map Modified: stable/12/Makefile.inc1 stable/12/ObsoleteFiles.inc stable/12/UPDATING stable/12/contrib/compiler-rt/LICENSE.TXT stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h stable/12/contrib/compiler-rt/include/sanitizer/coverage_interface.h stable/12/contrib/compiler-rt/include/sanitizer/dfsan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/hwasan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/linux_syscall_hooks.h stable/12/contrib/compiler-rt/include/sanitizer/lsan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/msan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h stable/12/contrib/compiler-rt/include/sanitizer/scudo_interface.h stable/12/contrib/compiler-rt/include/sanitizer/tsan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/tsan_interface_atomic.h stable/12/contrib/compiler-rt/include/xray/xray_interface.h stable/12/contrib/compiler-rt/include/xray/xray_log_interface.h stable/12/contrib/compiler-rt/include/xray/xray_records.h stable/12/contrib/compiler-rt/lib/asan/asan_activation.cc stable/12/contrib/compiler-rt/lib/asan/asan_activation.h stable/12/contrib/compiler-rt/lib/asan/asan_activation_flags.inc stable/12/contrib/compiler-rt/lib/asan/asan_allocator.cc stable/12/contrib/compiler-rt/lib/asan/asan_allocator.h stable/12/contrib/compiler-rt/lib/asan/asan_debugging.cc stable/12/contrib/compiler-rt/lib/asan/asan_descriptions.cc stable/12/contrib/compiler-rt/lib/asan/asan_descriptions.h stable/12/contrib/compiler-rt/lib/asan/asan_errors.cc stable/12/contrib/compiler-rt/lib/asan/asan_errors.h stable/12/contrib/compiler-rt/lib/asan/asan_fake_stack.cc stable/12/contrib/compiler-rt/lib/asan/asan_fake_stack.h stable/12/contrib/compiler-rt/lib/asan/asan_flags.cc stable/12/contrib/compiler-rt/lib/asan/asan_flags.h stable/12/contrib/compiler-rt/lib/asan/asan_flags.inc stable/12/contrib/compiler-rt/lib/asan/asan_fuchsia.cc stable/12/contrib/compiler-rt/lib/asan/asan_globals.cc stable/12/contrib/compiler-rt/lib/asan/asan_globals_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_init_version.h stable/12/contrib/compiler-rt/lib/asan/asan_interceptors.cc stable/12/contrib/compiler-rt/lib/asan/asan_interceptors.h stable/12/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc stable/12/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h stable/12/contrib/compiler-rt/lib/asan/asan_interface.inc stable/12/contrib/compiler-rt/lib/asan/asan_interface_internal.h stable/12/contrib/compiler-rt/lib/asan/asan_internal.h stable/12/contrib/compiler-rt/lib/asan/asan_linux.cc stable/12/contrib/compiler-rt/lib/asan/asan_mac.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_local.h stable/12/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_mapping.h stable/12/contrib/compiler-rt/lib/asan/asan_mapping_myriad.h stable/12/contrib/compiler-rt/lib/asan/asan_memory_profile.cc stable/12/contrib/compiler-rt/lib/asan/asan_new_delete.cc stable/12/contrib/compiler-rt/lib/asan/asan_poisoning.cc stable/12/contrib/compiler-rt/lib/asan/asan_poisoning.h stable/12/contrib/compiler-rt/lib/asan/asan_posix.cc stable/12/contrib/compiler-rt/lib/asan/asan_preinit.cc stable/12/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc stable/12/contrib/compiler-rt/lib/asan/asan_premap_shadow.h stable/12/contrib/compiler-rt/lib/asan/asan_report.cc stable/12/contrib/compiler-rt/lib/asan/asan_report.h stable/12/contrib/compiler-rt/lib/asan/asan_rtems.cc stable/12/contrib/compiler-rt/lib/asan/asan_rtl.cc stable/12/contrib/compiler-rt/lib/asan/asan_scariness_score.h stable/12/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc stable/12/contrib/compiler-rt/lib/asan/asan_stack.cc stable/12/contrib/compiler-rt/lib/asan/asan_stack.h stable/12/contrib/compiler-rt/lib/asan/asan_stats.cc stable/12/contrib/compiler-rt/lib/asan/asan_stats.h stable/12/contrib/compiler-rt/lib/asan/asan_suppressions.cc stable/12/contrib/compiler-rt/lib/asan/asan_suppressions.h stable/12/contrib/compiler-rt/lib/asan/asan_thread.cc stable/12/contrib/compiler-rt/lib/asan/asan_thread.h stable/12/contrib/compiler-rt/lib/asan/asan_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/asan/asan_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/builtins/aarch64/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/absvdi2.c stable/12/contrib/compiler-rt/lib/builtins/absvsi2.c stable/12/contrib/compiler-rt/lib/builtins/absvti2.c stable/12/contrib/compiler-rt/lib/builtins/adddf3.c stable/12/contrib/compiler-rt/lib/builtins/addsf3.c stable/12/contrib/compiler-rt/lib/builtins/addtf3.c stable/12/contrib/compiler-rt/lib/builtins/addvdi3.c stable/12/contrib/compiler-rt/lib/builtins/addvsi3.c stable/12/contrib/compiler-rt/lib/builtins/addvti3.c stable/12/contrib/compiler-rt/lib/builtins/apple_versioning.c stable/12/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3.S stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_dcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_div0.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_drsub.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_frsub.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_ldivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memcpy.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memmove.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memset.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_uldivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/bswapdi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/bswapsi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/arm/clzdi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/clzsi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/comparesf2.S stable/12/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/divmodsi4.S stable/12/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/divsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/modsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/restore_vfp_d8_d15_regs.S stable/12/contrib/compiler-rt/lib/builtins/arm/save_vfp_d8_d15_regs.S stable/12/contrib/compiler-rt/lib/builtins/arm/softfloat-alias.list stable/12/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/switch16.S stable/12/contrib/compiler-rt/lib/builtins/arm/switch32.S stable/12/contrib/compiler-rt/lib/builtins/arm/switch8.S stable/12/contrib/compiler-rt/lib/builtins/arm/switchu8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync-ops.h stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_synchronize.S stable/12/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/udivmodsi4.S stable/12/contrib/compiler-rt/lib/builtins/arm/udivsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/umodsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/ashldi3.c stable/12/contrib/compiler-rt/lib/builtins/ashlti3.c stable/12/contrib/compiler-rt/lib/builtins/ashrdi3.c stable/12/contrib/compiler-rt/lib/builtins/ashrti3.c stable/12/contrib/compiler-rt/lib/builtins/assembly.h stable/12/contrib/compiler-rt/lib/builtins/atomic.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_clear.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_clear_explicit.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set_explicit.c stable/12/contrib/compiler-rt/lib/builtins/atomic_signal_fence.c stable/12/contrib/compiler-rt/lib/builtins/atomic_thread_fence.c stable/12/contrib/compiler-rt/lib/builtins/bswapdi2.c stable/12/contrib/compiler-rt/lib/builtins/bswapsi2.c stable/12/contrib/compiler-rt/lib/builtins/clear_cache.c stable/12/contrib/compiler-rt/lib/builtins/clzdi2.c stable/12/contrib/compiler-rt/lib/builtins/clzsi2.c stable/12/contrib/compiler-rt/lib/builtins/clzti2.c stable/12/contrib/compiler-rt/lib/builtins/cmpdi2.c stable/12/contrib/compiler-rt/lib/builtins/cmpti2.c stable/12/contrib/compiler-rt/lib/builtins/comparedf2.c stable/12/contrib/compiler-rt/lib/builtins/comparesf2.c stable/12/contrib/compiler-rt/lib/builtins/comparetf2.c stable/12/contrib/compiler-rt/lib/builtins/cpu_model.c stable/12/contrib/compiler-rt/lib/builtins/ctzdi2.c stable/12/contrib/compiler-rt/lib/builtins/ctzsi2.c stable/12/contrib/compiler-rt/lib/builtins/ctzti2.c stable/12/contrib/compiler-rt/lib/builtins/divdc3.c stable/12/contrib/compiler-rt/lib/builtins/divdf3.c stable/12/contrib/compiler-rt/lib/builtins/divdi3.c stable/12/contrib/compiler-rt/lib/builtins/divmoddi4.c stable/12/contrib/compiler-rt/lib/builtins/divmodsi4.c stable/12/contrib/compiler-rt/lib/builtins/divsc3.c stable/12/contrib/compiler-rt/lib/builtins/divsf3.c stable/12/contrib/compiler-rt/lib/builtins/divsi3.c stable/12/contrib/compiler-rt/lib/builtins/divtc3.c stable/12/contrib/compiler-rt/lib/builtins/divtf3.c stable/12/contrib/compiler-rt/lib/builtins/divti3.c stable/12/contrib/compiler-rt/lib/builtins/divxc3.c stable/12/contrib/compiler-rt/lib/builtins/emutls.c stable/12/contrib/compiler-rt/lib/builtins/enable_execute_stack.c stable/12/contrib/compiler-rt/lib/builtins/eprintf.c stable/12/contrib/compiler-rt/lib/builtins/extenddftf2.c stable/12/contrib/compiler-rt/lib/builtins/extendhfsf2.c stable/12/contrib/compiler-rt/lib/builtins/extendsfdf2.c stable/12/contrib/compiler-rt/lib/builtins/extendsftf2.c stable/12/contrib/compiler-rt/lib/builtins/ffsdi2.c stable/12/contrib/compiler-rt/lib/builtins/ffssi2.c stable/12/contrib/compiler-rt/lib/builtins/ffsti2.c stable/12/contrib/compiler-rt/lib/builtins/fixdfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixdfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixdfti.c stable/12/contrib/compiler-rt/lib/builtins/fixsfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixsfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixsfti.c stable/12/contrib/compiler-rt/lib/builtins/fixtfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixtfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixtfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunsdfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsdfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsdfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunssfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunssfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunssfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunstfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunstfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunstfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunsxfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsxfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsxfti.c stable/12/contrib/compiler-rt/lib/builtins/fixxfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixxfti.c stable/12/contrib/compiler-rt/lib/builtins/floatdidf.c stable/12/contrib/compiler-rt/lib/builtins/floatdisf.c stable/12/contrib/compiler-rt/lib/builtins/floatditf.c stable/12/contrib/compiler-rt/lib/builtins/floatdixf.c stable/12/contrib/compiler-rt/lib/builtins/floatsidf.c stable/12/contrib/compiler-rt/lib/builtins/floatsisf.c stable/12/contrib/compiler-rt/lib/builtins/floatsitf.c stable/12/contrib/compiler-rt/lib/builtins/floattidf.c stable/12/contrib/compiler-rt/lib/builtins/floattisf.c stable/12/contrib/compiler-rt/lib/builtins/floattitf.c stable/12/contrib/compiler-rt/lib/builtins/floattixf.c stable/12/contrib/compiler-rt/lib/builtins/floatundidf.c stable/12/contrib/compiler-rt/lib/builtins/floatundisf.c stable/12/contrib/compiler-rt/lib/builtins/floatunditf.c stable/12/contrib/compiler-rt/lib/builtins/floatundixf.c stable/12/contrib/compiler-rt/lib/builtins/floatunsidf.c stable/12/contrib/compiler-rt/lib/builtins/floatunsisf.c stable/12/contrib/compiler-rt/lib/builtins/floatunsitf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntidf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntisf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntitf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntixf.c stable/12/contrib/compiler-rt/lib/builtins/fp_add_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_extend.h stable/12/contrib/compiler-rt/lib/builtins/fp_extend_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_fixint_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_fixuint_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_lib.h stable/12/contrib/compiler-rt/lib/builtins/fp_mul_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_trunc.h stable/12/contrib/compiler-rt/lib/builtins/fp_trunc_impl.inc stable/12/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c stable/12/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_abi1.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_abi2.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_legacy.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfaddsub.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfdiv.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dffma.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfminmax.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfmul.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfsqrt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/divdi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/divsi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fabs_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fastmath2_dlib_asm.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fastmath2_ldlib_asm.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fastmath_dlib_asm.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fma_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fmax_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fmin_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/memcpy_forward_vp4cp4n2.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/memcpy_likely_aligned.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/moddi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/modsi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/sfdiv_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/sfsqrt_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivdi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivmoddi4.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivmodsi4.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivsi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/umoddi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/umodsi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/ashldi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/ashrdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/i386/chkstk2.S stable/12/contrib/compiler-rt/lib/builtins/i386/divdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatdidf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatdisf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatdixf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatundidf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatundisf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatundixf.S stable/12/contrib/compiler-rt/lib/builtins/i386/lshrdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/moddi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/muldi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/udivdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/umoddi3.S stable/12/contrib/compiler-rt/lib/builtins/int_endianness.h stable/12/contrib/compiler-rt/lib/builtins/int_lib.h stable/12/contrib/compiler-rt/lib/builtins/int_math.h stable/12/contrib/compiler-rt/lib/builtins/int_types.h stable/12/contrib/compiler-rt/lib/builtins/int_util.c stable/12/contrib/compiler-rt/lib/builtins/int_util.h stable/12/contrib/compiler-rt/lib/builtins/lshrdi3.c stable/12/contrib/compiler-rt/lib/builtins/lshrti3.c stable/12/contrib/compiler-rt/lib/builtins/mingw_fixfloat.c stable/12/contrib/compiler-rt/lib/builtins/moddi3.c stable/12/contrib/compiler-rt/lib/builtins/modsi3.c stable/12/contrib/compiler-rt/lib/builtins/modti3.c stable/12/contrib/compiler-rt/lib/builtins/muldc3.c stable/12/contrib/compiler-rt/lib/builtins/muldf3.c stable/12/contrib/compiler-rt/lib/builtins/muldi3.c stable/12/contrib/compiler-rt/lib/builtins/mulodi4.c stable/12/contrib/compiler-rt/lib/builtins/mulosi4.c stable/12/contrib/compiler-rt/lib/builtins/muloti4.c stable/12/contrib/compiler-rt/lib/builtins/mulsc3.c stable/12/contrib/compiler-rt/lib/builtins/mulsf3.c stable/12/contrib/compiler-rt/lib/builtins/multc3.c stable/12/contrib/compiler-rt/lib/builtins/multf3.c stable/12/contrib/compiler-rt/lib/builtins/multi3.c stable/12/contrib/compiler-rt/lib/builtins/mulvdi3.c stable/12/contrib/compiler-rt/lib/builtins/mulvsi3.c stable/12/contrib/compiler-rt/lib/builtins/mulvti3.c stable/12/contrib/compiler-rt/lib/builtins/mulxc3.c stable/12/contrib/compiler-rt/lib/builtins/negdf2.c stable/12/contrib/compiler-rt/lib/builtins/negdi2.c stable/12/contrib/compiler-rt/lib/builtins/negsf2.c stable/12/contrib/compiler-rt/lib/builtins/negti2.c stable/12/contrib/compiler-rt/lib/builtins/negvdi2.c stable/12/contrib/compiler-rt/lib/builtins/negvsi2.c stable/12/contrib/compiler-rt/lib/builtins/negvti2.c stable/12/contrib/compiler-rt/lib/builtins/os_version_check.c stable/12/contrib/compiler-rt/lib/builtins/paritydi2.c stable/12/contrib/compiler-rt/lib/builtins/paritysi2.c stable/12/contrib/compiler-rt/lib/builtins/parityti2.c stable/12/contrib/compiler-rt/lib/builtins/popcountdi2.c stable/12/contrib/compiler-rt/lib/builtins/popcountsi2.c stable/12/contrib/compiler-rt/lib/builtins/popcountti2.c stable/12/contrib/compiler-rt/lib/builtins/powidf2.c stable/12/contrib/compiler-rt/lib/builtins/powisf2.c stable/12/contrib/compiler-rt/lib/builtins/powitf2.c stable/12/contrib/compiler-rt/lib/builtins/powixf2.c stable/12/contrib/compiler-rt/lib/builtins/ppc/DD.h stable/12/contrib/compiler-rt/lib/builtins/ppc/divtc3.c stable/12/contrib/compiler-rt/lib/builtins/ppc/fixtfdi.c stable/12/contrib/compiler-rt/lib/builtins/ppc/fixunstfdi.c stable/12/contrib/compiler-rt/lib/builtins/ppc/fixunstfti.c stable/12/contrib/compiler-rt/lib/builtins/ppc/floatditf.c stable/12/contrib/compiler-rt/lib/builtins/ppc/floattitf.c stable/12/contrib/compiler-rt/lib/builtins/ppc/floatunditf.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qadd.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qdiv.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qmul.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qsub.c stable/12/contrib/compiler-rt/lib/builtins/ppc/multc3.c stable/12/contrib/compiler-rt/lib/builtins/ppc/restFP.S stable/12/contrib/compiler-rt/lib/builtins/ppc/saveFP.S stable/12/contrib/compiler-rt/lib/builtins/riscv/mulsi3.S stable/12/contrib/compiler-rt/lib/builtins/subdf3.c stable/12/contrib/compiler-rt/lib/builtins/subsf3.c stable/12/contrib/compiler-rt/lib/builtins/subtf3.c stable/12/contrib/compiler-rt/lib/builtins/subvdi3.c stable/12/contrib/compiler-rt/lib/builtins/subvsi3.c stable/12/contrib/compiler-rt/lib/builtins/subvti3.c stable/12/contrib/compiler-rt/lib/builtins/trampoline_setup.c stable/12/contrib/compiler-rt/lib/builtins/truncdfhf2.c stable/12/contrib/compiler-rt/lib/builtins/truncdfsf2.c stable/12/contrib/compiler-rt/lib/builtins/truncsfhf2.c stable/12/contrib/compiler-rt/lib/builtins/trunctfdf2.c stable/12/contrib/compiler-rt/lib/builtins/trunctfsf2.c stable/12/contrib/compiler-rt/lib/builtins/ucmpdi2.c stable/12/contrib/compiler-rt/lib/builtins/ucmpti2.c stable/12/contrib/compiler-rt/lib/builtins/udivdi3.c stable/12/contrib/compiler-rt/lib/builtins/udivmoddi4.c stable/12/contrib/compiler-rt/lib/builtins/udivmodsi4.c stable/12/contrib/compiler-rt/lib/builtins/udivmodti4.c stable/12/contrib/compiler-rt/lib/builtins/udivsi3.c stable/12/contrib/compiler-rt/lib/builtins/udivti3.c stable/12/contrib/compiler-rt/lib/builtins/umoddi3.c stable/12/contrib/compiler-rt/lib/builtins/umodsi3.c stable/12/contrib/compiler-rt/lib/builtins/umodti3.c stable/12/contrib/compiler-rt/lib/builtins/unwind-ehabi-helpers.h stable/12/contrib/compiler-rt/lib/builtins/x86_64/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/chkstk2.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatdidf.c stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatdisf.c stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatdixf.c stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatundidf.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatundisf.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatundixf.S stable/12/contrib/compiler-rt/lib/dfsan/dfsan.cc stable/12/contrib/compiler-rt/lib/dfsan/dfsan.h stable/12/contrib/compiler-rt/lib/dfsan/dfsan_custom.cc stable/12/contrib/compiler-rt/lib/dfsan/dfsan_flags.inc stable/12/contrib/compiler-rt/lib/dfsan/dfsan_interceptors.cc stable/12/contrib/compiler-rt/lib/dfsan/dfsan_platform.h stable/12/contrib/compiler-rt/lib/dfsan/done_abilist.txt stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltins.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCommand.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCorpus.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCrossOver.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDataFlowTrace.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDataFlowTrace.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDefs.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDictionary.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDriver.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctions.def stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctions.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsDlsym.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerFlags.def stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIO.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIO.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIOPosix.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIOWindows.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerInterface.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerInternal.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerLoop.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMain.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMerge.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMerge.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerOptions.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerRandom.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerSHA1.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerSHA1.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerValueBitMap.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_checks.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_flags.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_flags.inc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_mapping.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.h stable/12/contrib/compiler-rt/lib/interception/interception.h stable/12/contrib/compiler-rt/lib/interception/interception_linux.cc stable/12/contrib/compiler-rt/lib/interception/interception_linux.h stable/12/contrib/compiler-rt/lib/interception/interception_mac.cc stable/12/contrib/compiler-rt/lib/interception/interception_mac.h stable/12/contrib/compiler-rt/lib/interception/interception_type_test.cc stable/12/contrib/compiler-rt/lib/interception/interception_win.cc stable/12/contrib/compiler-rt/lib/interception/interception_win.h stable/12/contrib/compiler-rt/lib/lsan/lsan.cc stable/12/contrib/compiler-rt/lib/lsan/lsan.h stable/12/contrib/compiler-rt/lib/lsan/lsan_allocator.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_allocator.h stable/12/contrib/compiler-rt/lib/lsan/lsan_common.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_common.h stable/12/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_flags.inc stable/12/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_linux.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_mac.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_malloc_mac.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_preinit.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_thread.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_thread.h stable/12/contrib/compiler-rt/lib/msan/msan.cc stable/12/contrib/compiler-rt/lib/msan/msan.h stable/12/contrib/compiler-rt/lib/msan/msan_allocator.cc stable/12/contrib/compiler-rt/lib/msan/msan_allocator.h stable/12/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.cc stable/12/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.h stable/12/contrib/compiler-rt/lib/msan/msan_flags.h stable/12/contrib/compiler-rt/lib/msan/msan_flags.inc stable/12/contrib/compiler-rt/lib/msan/msan_interceptors.cc stable/12/contrib/compiler-rt/lib/msan/msan_interface_internal.h stable/12/contrib/compiler-rt/lib/msan/msan_linux.cc stable/12/contrib/compiler-rt/lib/msan/msan_new_delete.cc stable/12/contrib/compiler-rt/lib/msan/msan_origin.h stable/12/contrib/compiler-rt/lib/msan/msan_poisoning.cc stable/12/contrib/compiler-rt/lib/msan/msan_poisoning.h stable/12/contrib/compiler-rt/lib/msan/msan_report.cc stable/12/contrib/compiler-rt/lib/msan/msan_report.h stable/12/contrib/compiler-rt/lib/msan/msan_thread.h stable/12/contrib/compiler-rt/lib/profile/GCDAProfiling.c stable/12/contrib/compiler-rt/lib/profile/InstrProfData.inc stable/12/contrib/compiler-rt/lib/profile/InstrProfiling.c stable/12/contrib/compiler-rt/lib/profile/InstrProfiling.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingFile.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingMerge.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingMergeFile.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformDarwin.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPort.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingRuntime.cc stable/12/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingValue.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c stable/12/contrib/compiler-rt/lib/profile/WindowsMMap.h stable/12/contrib/compiler-rt/lib/safestack/safestack.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_bytemap.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_asm.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_msvc.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface_posix.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_dbghelp.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno_codes.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_lfstack.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_list.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_local_address_space_view.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_placement_new.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepotbase.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_rtems.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.h stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator.h stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator_secondary.h stable/12/contrib/compiler-rt/lib/scudo/scudo_crc32.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_crc32.h stable/12/contrib/compiler-rt/lib/scudo/scudo_errors.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_errors.h stable/12/contrib/compiler-rt/lib/scudo/scudo_flags.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_flags.h stable/12/contrib/compiler-rt/lib/scudo/scudo_flags.inc stable/12/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h stable/12/contrib/compiler-rt/lib/scudo/scudo_malloc.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_platform.h stable/12/contrib/compiler-rt/lib/scudo/scudo_termination.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd.h stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc stable/12/contrib/compiler-rt/lib/scudo/scudo_utils.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_utils.h stable/12/contrib/compiler-rt/lib/stats/stats.cc stable/12/contrib/compiler-rt/lib/stats/stats.h stable/12/contrib/compiler-rt/lib/stats/stats_client.cc stable/12/contrib/compiler-rt/lib/tsan/dd/dd_interceptors.cc stable/12/contrib/compiler-rt/lib/tsan/dd/dd_rtl.cc stable/12/contrib/compiler-rt/lib/tsan/dd/dd_rtl.h stable/12/contrib/compiler-rt/lib/tsan/go/test.c stable/12/contrib/compiler-rt/lib/tsan/go/tsan_go.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_external.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_md5.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutexset.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutexset.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_preinit.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_report.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_trace.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_update_shadow_word_inl.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_diag.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_diag_standalone.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_flags.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_flags.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_monitor.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_monitor.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_platform.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_win.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_value.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_value.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/xray/xray_AArch64.cc stable/12/contrib/compiler-rt/lib/xray/xray_allocator.h stable/12/contrib/compiler-rt/lib/xray/xray_arm.cc stable/12/contrib/compiler-rt/lib/xray/xray_basic_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_basic_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_basic_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_basic_logging.cc stable/12/contrib/compiler-rt/lib/xray/xray_basic_logging.h stable/12/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc stable/12/contrib/compiler-rt/lib/xray/xray_buffer_queue.h stable/12/contrib/compiler-rt/lib/xray/xray_defs.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_controller.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_fdr_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_log_writer.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc stable/12/contrib/compiler-rt/lib/xray/xray_fdr_logging.h stable/12/contrib/compiler-rt/lib/xray/xray_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_function_call_trie.h stable/12/contrib/compiler-rt/lib/xray/xray_init.cc stable/12/contrib/compiler-rt/lib/xray/xray_interface.cc stable/12/contrib/compiler-rt/lib/xray/xray_interface_internal.h stable/12/contrib/compiler-rt/lib/xray/xray_log_interface.cc stable/12/contrib/compiler-rt/lib/xray/xray_mips.cc stable/12/contrib/compiler-rt/lib/xray/xray_mips64.cc stable/12/contrib/compiler-rt/lib/xray/xray_powerpc64.cc stable/12/contrib/compiler-rt/lib/xray/xray_powerpc64.inc stable/12/contrib/compiler-rt/lib/xray/xray_profile_collector.cc stable/12/contrib/compiler-rt/lib/xray/xray_profile_collector.h stable/12/contrib/compiler-rt/lib/xray/xray_profiling.cc stable/12/contrib/compiler-rt/lib/xray/xray_profiling_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_profiling_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_profiling_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_recursion_guard.h stable/12/contrib/compiler-rt/lib/xray/xray_segmented_array.h stable/12/contrib/compiler-rt/lib/xray/xray_trampoline_mips.S stable/12/contrib/compiler-rt/lib/xray/xray_trampoline_mips64.S stable/12/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S stable/12/contrib/compiler-rt/lib/xray/xray_tsc.h stable/12/contrib/compiler-rt/lib/xray/xray_utils.cc stable/12/contrib/compiler-rt/lib/xray/xray_utils.h stable/12/contrib/compiler-rt/lib/xray/xray_x86_64.inc stable/12/contrib/googletest/googlemock/test/gmock-spec-builders_test.cc stable/12/contrib/libc++/LICENSE.TXT stable/12/contrib/libc++/include/__bit_reference stable/12/contrib/libc++/include/__bsd_locale_defaults.h stable/12/contrib/libc++/include/__bsd_locale_fallbacks.h stable/12/contrib/libc++/include/__config stable/12/contrib/libc++/include/__debug stable/12/contrib/libc++/include/__errc stable/12/contrib/libc++/include/__functional_03 stable/12/contrib/libc++/include/__functional_base stable/12/contrib/libc++/include/__functional_base_03 stable/12/contrib/libc++/include/__hash_table stable/12/contrib/libc++/include/__libcpp_version stable/12/contrib/libc++/include/__locale stable/12/contrib/libc++/include/__mutex_base stable/12/contrib/libc++/include/__node_handle stable/12/contrib/libc++/include/__nullptr stable/12/contrib/libc++/include/__sso_allocator stable/12/contrib/libc++/include/__std_stream stable/12/contrib/libc++/include/__string stable/12/contrib/libc++/include/__threading_support stable/12/contrib/libc++/include/__tree stable/12/contrib/libc++/include/__tuple stable/12/contrib/libc++/include/__undef_macros stable/12/contrib/libc++/include/algorithm stable/12/contrib/libc++/include/any stable/12/contrib/libc++/include/array stable/12/contrib/libc++/include/atomic stable/12/contrib/libc++/include/bit stable/12/contrib/libc++/include/bitset stable/12/contrib/libc++/include/cassert stable/12/contrib/libc++/include/ccomplex stable/12/contrib/libc++/include/cctype stable/12/contrib/libc++/include/cerrno stable/12/contrib/libc++/include/cfenv stable/12/contrib/libc++/include/cfloat stable/12/contrib/libc++/include/charconv stable/12/contrib/libc++/include/chrono stable/12/contrib/libc++/include/cinttypes stable/12/contrib/libc++/include/ciso646 stable/12/contrib/libc++/include/climits stable/12/contrib/libc++/include/clocale stable/12/contrib/libc++/include/cmath stable/12/contrib/libc++/include/codecvt stable/12/contrib/libc++/include/compare stable/12/contrib/libc++/include/complex stable/12/contrib/libc++/include/complex.h stable/12/contrib/libc++/include/condition_variable stable/12/contrib/libc++/include/csetjmp stable/12/contrib/libc++/include/csignal stable/12/contrib/libc++/include/cstdarg stable/12/contrib/libc++/include/cstdbool stable/12/contrib/libc++/include/cstddef stable/12/contrib/libc++/include/cstdint stable/12/contrib/libc++/include/cstdio stable/12/contrib/libc++/include/cstdlib stable/12/contrib/libc++/include/cstring stable/12/contrib/libc++/include/ctgmath stable/12/contrib/libc++/include/ctime stable/12/contrib/libc++/include/ctype.h stable/12/contrib/libc++/include/cwchar stable/12/contrib/libc++/include/cwctype stable/12/contrib/libc++/include/deque stable/12/contrib/libc++/include/errno.h stable/12/contrib/libc++/include/exception stable/12/contrib/libc++/include/experimental/__config stable/12/contrib/libc++/include/experimental/__memory stable/12/contrib/libc++/include/experimental/algorithm stable/12/contrib/libc++/include/experimental/coroutine stable/12/contrib/libc++/include/experimental/deque stable/12/contrib/libc++/include/experimental/filesystem stable/12/contrib/libc++/include/experimental/forward_list stable/12/contrib/libc++/include/experimental/functional stable/12/contrib/libc++/include/experimental/iterator stable/12/contrib/libc++/include/experimental/list stable/12/contrib/libc++/include/experimental/map stable/12/contrib/libc++/include/experimental/memory_resource stable/12/contrib/libc++/include/experimental/propagate_const stable/12/contrib/libc++/include/experimental/regex stable/12/contrib/libc++/include/experimental/set stable/12/contrib/libc++/include/experimental/simd stable/12/contrib/libc++/include/experimental/string stable/12/contrib/libc++/include/experimental/type_traits stable/12/contrib/libc++/include/experimental/unordered_map stable/12/contrib/libc++/include/experimental/unordered_set stable/12/contrib/libc++/include/experimental/utility stable/12/contrib/libc++/include/experimental/vector stable/12/contrib/libc++/include/ext/__hash stable/12/contrib/libc++/include/ext/hash_map stable/12/contrib/libc++/include/ext/hash_set stable/12/contrib/libc++/include/filesystem stable/12/contrib/libc++/include/float.h stable/12/contrib/libc++/include/forward_list stable/12/contrib/libc++/include/fstream stable/12/contrib/libc++/include/functional stable/12/contrib/libc++/include/future stable/12/contrib/libc++/include/initializer_list stable/12/contrib/libc++/include/inttypes.h stable/12/contrib/libc++/include/iomanip stable/12/contrib/libc++/include/ios stable/12/contrib/libc++/include/iosfwd stable/12/contrib/libc++/include/iostream stable/12/contrib/libc++/include/istream stable/12/contrib/libc++/include/iterator stable/12/contrib/libc++/include/limits stable/12/contrib/libc++/include/limits.h stable/12/contrib/libc++/include/list stable/12/contrib/libc++/include/locale stable/12/contrib/libc++/include/locale.h stable/12/contrib/libc++/include/map stable/12/contrib/libc++/include/math.h stable/12/contrib/libc++/include/memory stable/12/contrib/libc++/include/module.modulemap stable/12/contrib/libc++/include/mutex stable/12/contrib/libc++/include/new stable/12/contrib/libc++/include/numeric stable/12/contrib/libc++/include/optional stable/12/contrib/libc++/include/ostream stable/12/contrib/libc++/include/queue stable/12/contrib/libc++/include/random stable/12/contrib/libc++/include/ratio stable/12/contrib/libc++/include/regex stable/12/contrib/libc++/include/scoped_allocator stable/12/contrib/libc++/include/set stable/12/contrib/libc++/include/setjmp.h stable/12/contrib/libc++/include/shared_mutex stable/12/contrib/libc++/include/span stable/12/contrib/libc++/include/sstream stable/12/contrib/libc++/include/stack stable/12/contrib/libc++/include/stdbool.h stable/12/contrib/libc++/include/stddef.h stable/12/contrib/libc++/include/stdexcept stable/12/contrib/libc++/include/stdint.h stable/12/contrib/libc++/include/stdio.h stable/12/contrib/libc++/include/stdlib.h stable/12/contrib/libc++/include/streambuf stable/12/contrib/libc++/include/string stable/12/contrib/libc++/include/string.h stable/12/contrib/libc++/include/string_view stable/12/contrib/libc++/include/strstream stable/12/contrib/libc++/include/system_error stable/12/contrib/libc++/include/tgmath.h stable/12/contrib/libc++/include/thread stable/12/contrib/libc++/include/tuple stable/12/contrib/libc++/include/type_traits stable/12/contrib/libc++/include/typeindex stable/12/contrib/libc++/include/typeinfo stable/12/contrib/libc++/include/unordered_map stable/12/contrib/libc++/include/unordered_set stable/12/contrib/libc++/include/utility stable/12/contrib/libc++/include/valarray stable/12/contrib/libc++/include/variant stable/12/contrib/libc++/include/vector stable/12/contrib/libc++/include/version stable/12/contrib/libc++/include/wchar.h stable/12/contrib/libc++/include/wctype.h stable/12/contrib/libc++/src/algorithm.cpp stable/12/contrib/libc++/src/any.cpp stable/12/contrib/libc++/src/bind.cpp stable/12/contrib/libc++/src/charconv.cpp stable/12/contrib/libc++/src/chrono.cpp stable/12/contrib/libc++/src/condition_variable.cpp stable/12/contrib/libc++/src/debug.cpp stable/12/contrib/libc++/src/exception.cpp stable/12/contrib/libc++/src/experimental/memory_resource.cpp stable/12/contrib/libc++/src/filesystem/directory_iterator.cpp stable/12/contrib/libc++/src/filesystem/filesystem_common.h stable/12/contrib/libc++/src/filesystem/int128_builtins.cpp stable/12/contrib/libc++/src/filesystem/operations.cpp stable/12/contrib/libc++/src/functional.cpp stable/12/contrib/libc++/src/future.cpp stable/12/contrib/libc++/src/hash.cpp stable/12/contrib/libc++/src/include/apple_availability.h stable/12/contrib/libc++/src/include/atomic_support.h stable/12/contrib/libc++/src/include/config_elast.h stable/12/contrib/libc++/src/include/refstring.h stable/12/contrib/libc++/src/ios.cpp stable/12/contrib/libc++/src/iostream.cpp stable/12/contrib/libc++/src/locale.cpp stable/12/contrib/libc++/src/memory.cpp stable/12/contrib/libc++/src/mutex.cpp stable/12/contrib/libc++/src/new.cpp stable/12/contrib/libc++/src/optional.cpp stable/12/contrib/libc++/src/random.cpp stable/12/contrib/libc++/src/regex.cpp stable/12/contrib/libc++/src/shared_mutex.cpp stable/12/contrib/libc++/src/stdexcept.cpp stable/12/contrib/libc++/src/string.cpp stable/12/contrib/libc++/src/strstream.cpp stable/12/contrib/libc++/src/support/runtime/exception_fallback.ipp stable/12/contrib/libc++/src/support/runtime/exception_glibcxx.ipp stable/12/contrib/libc++/src/support/runtime/exception_libcxxabi.ipp stable/12/contrib/libc++/src/support/runtime/exception_libcxxrt.ipp stable/12/contrib/libc++/src/support/runtime/exception_msvc.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_cxxabi.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_glibcxx.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_unimplemented.ipp stable/12/contrib/libc++/src/support/runtime/new_handler_fallback.ipp stable/12/contrib/libc++/src/system_error.cpp stable/12/contrib/libc++/src/thread.cpp stable/12/contrib/libc++/src/typeinfo.cpp stable/12/contrib/libc++/src/utility.cpp stable/12/contrib/libc++/src/valarray.cpp stable/12/contrib/libc++/src/variant.cpp stable/12/contrib/libc++/src/vector.cpp stable/12/contrib/libunwind/LICENSE.TXT stable/12/contrib/libunwind/include/__libunwind_config.h stable/12/contrib/libunwind/include/libunwind.h stable/12/contrib/libunwind/include/mach-o/compact_unwind_encoding.h stable/12/contrib/libunwind/include/unwind.h stable/12/contrib/libunwind/src/AddressSpace.hpp stable/12/contrib/libunwind/src/CompactUnwinder.hpp stable/12/contrib/libunwind/src/DwarfInstructions.hpp stable/12/contrib/libunwind/src/DwarfParser.hpp stable/12/contrib/libunwind/src/EHHeaderParser.hpp stable/12/contrib/libunwind/src/RWMutex.hpp stable/12/contrib/libunwind/src/Registers.hpp stable/12/contrib/libunwind/src/Unwind-EHABI.cpp stable/12/contrib/libunwind/src/Unwind-EHABI.h stable/12/contrib/libunwind/src/Unwind-seh.cpp stable/12/contrib/libunwind/src/Unwind-sjlj.c stable/12/contrib/libunwind/src/UnwindCursor.hpp stable/12/contrib/libunwind/src/UnwindLevel1-gcc-ext.c stable/12/contrib/libunwind/src/UnwindLevel1.c stable/12/contrib/libunwind/src/UnwindRegistersRestore.S stable/12/contrib/libunwind/src/UnwindRegistersSave.S stable/12/contrib/libunwind/src/Unwind_AppleExtras.cpp stable/12/contrib/libunwind/src/assembly.h stable/12/contrib/libunwind/src/config.h stable/12/contrib/libunwind/src/dwarf2.h stable/12/contrib/libunwind/src/libunwind.cpp stable/12/contrib/libunwind/src/libunwind_ext.h stable/12/contrib/llvm/FREEBSD-Xlist stable/12/contrib/llvm/LICENSE.TXT stable/12/contrib/llvm/include/llvm-c/Analysis.h stable/12/contrib/llvm/include/llvm-c/BitReader.h stable/12/contrib/llvm/include/llvm-c/BitWriter.h stable/12/contrib/llvm/include/llvm-c/Comdat.h stable/12/contrib/llvm/include/llvm-c/Core.h stable/12/contrib/llvm/include/llvm-c/DataTypes.h stable/12/contrib/llvm/include/llvm-c/DebugInfo.h stable/12/contrib/llvm/include/llvm-c/Disassembler.h stable/12/contrib/llvm/include/llvm-c/DisassemblerTypes.h stable/12/contrib/llvm/include/llvm-c/Error.h stable/12/contrib/llvm/include/llvm-c/ErrorHandling.h stable/12/contrib/llvm/include/llvm-c/ExecutionEngine.h stable/12/contrib/llvm/include/llvm-c/IRReader.h stable/12/contrib/llvm/include/llvm-c/Initialization.h stable/12/contrib/llvm/include/llvm-c/LinkTimeOptimizer.h stable/12/contrib/llvm/include/llvm-c/Linker.h stable/12/contrib/llvm/include/llvm-c/Object.h stable/12/contrib/llvm/include/llvm-c/OrcBindings.h stable/12/contrib/llvm/include/llvm-c/Support.h stable/12/contrib/llvm/include/llvm-c/Target.h stable/12/contrib/llvm/include/llvm-c/TargetMachine.h stable/12/contrib/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h stable/12/contrib/llvm/include/llvm-c/Transforms/Coroutines.h stable/12/contrib/llvm/include/llvm-c/Transforms/IPO.h stable/12/contrib/llvm/include/llvm-c/Transforms/InstCombine.h stable/12/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h stable/12/contrib/llvm/include/llvm-c/Transforms/Scalar.h stable/12/contrib/llvm/include/llvm-c/Transforms/Utils.h stable/12/contrib/llvm/include/llvm-c/Transforms/Vectorize.h stable/12/contrib/llvm/include/llvm-c/Types.h stable/12/contrib/llvm/include/llvm-c/lto.h stable/12/contrib/llvm/include/llvm/ADT/APFloat.h stable/12/contrib/llvm/include/llvm/ADT/APInt.h stable/12/contrib/llvm/include/llvm/ADT/APSInt.h stable/12/contrib/llvm/include/llvm/ADT/AllocatorList.h stable/12/contrib/llvm/include/llvm/ADT/Any.h stable/12/contrib/llvm/include/llvm/ADT/ArrayRef.h stable/12/contrib/llvm/include/llvm/ADT/BitVector.h stable/12/contrib/llvm/include/llvm/ADT/BitmaskEnum.h stable/12/contrib/llvm/include/llvm/ADT/BreadthFirstIterator.h stable/12/contrib/llvm/include/llvm/ADT/CachedHashString.h stable/12/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h stable/12/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h stable/12/contrib/llvm/include/llvm/ADT/DenseMap.h stable/12/contrib/llvm/include/llvm/ADT/DenseMapInfo.h stable/12/contrib/llvm/include/llvm/ADT/DenseSet.h stable/12/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h stable/12/contrib/llvm/include/llvm/ADT/EpochTracker.h stable/12/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h stable/12/contrib/llvm/include/llvm/ADT/FoldingSet.h stable/12/contrib/llvm/include/llvm/ADT/FunctionExtras.h stable/12/contrib/llvm/include/llvm/ADT/GraphTraits.h stable/12/contrib/llvm/include/llvm/ADT/Hashing.h stable/12/contrib/llvm/include/llvm/ADT/ImmutableList.h stable/12/contrib/llvm/include/llvm/ADT/ImmutableMap.h stable/12/contrib/llvm/include/llvm/ADT/ImmutableSet.h stable/12/contrib/llvm/include/llvm/ADT/IndexedMap.h stable/12/contrib/llvm/include/llvm/ADT/IntEqClasses.h stable/12/contrib/llvm/include/llvm/ADT/IntervalMap.h stable/12/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h stable/12/contrib/llvm/include/llvm/ADT/MapVector.h stable/12/contrib/llvm/include/llvm/ADT/None.h stable/12/contrib/llvm/include/llvm/ADT/Optional.h stable/12/contrib/llvm/include/llvm/ADT/PackedVector.h stable/12/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h stable/12/contrib/llvm/include/llvm/ADT/PointerIntPair.h stable/12/contrib/llvm/include/llvm/ADT/PointerSumType.h stable/12/contrib/llvm/include/llvm/ADT/PointerUnion.h stable/12/contrib/llvm/include/llvm/ADT/PostOrderIterator.h stable/12/contrib/llvm/include/llvm/ADT/PriorityQueue.h stable/12/contrib/llvm/include/llvm/ADT/PriorityWorklist.h stable/12/contrib/llvm/include/llvm/ADT/SCCIterator.h stable/12/contrib/llvm/include/llvm/ADT/STLExtras.h stable/12/contrib/llvm/include/llvm/ADT/ScopeExit.h stable/12/contrib/llvm/include/llvm/ADT/ScopedHashTable.h stable/12/contrib/llvm/include/llvm/ADT/Sequence.h stable/12/contrib/llvm/include/llvm/ADT/SetOperations.h stable/12/contrib/llvm/include/llvm/ADT/SetVector.h stable/12/contrib/llvm/include/llvm/ADT/SmallBitVector.h stable/12/contrib/llvm/include/llvm/ADT/SmallPtrSet.h stable/12/contrib/llvm/include/llvm/ADT/SmallSet.h stable/12/contrib/llvm/include/llvm/ADT/SmallString.h stable/12/contrib/llvm/include/llvm/ADT/SmallVector.h stable/12/contrib/llvm/include/llvm/ADT/SparseBitVector.h stable/12/contrib/llvm/include/llvm/ADT/SparseMultiSet.h stable/12/contrib/llvm/include/llvm/ADT/SparseSet.h stable/12/contrib/llvm/include/llvm/ADT/Statistic.h stable/12/contrib/llvm/include/llvm/ADT/StringExtras.h stable/12/contrib/llvm/include/llvm/ADT/StringMap.h stable/12/contrib/llvm/include/llvm/ADT/StringRef.h stable/12/contrib/llvm/include/llvm/ADT/StringSet.h stable/12/contrib/llvm/include/llvm/ADT/StringSwitch.h stable/12/contrib/llvm/include/llvm/ADT/TinyPtrVector.h stable/12/contrib/llvm/include/llvm/ADT/Triple.h stable/12/contrib/llvm/include/llvm/ADT/Twine.h stable/12/contrib/llvm/include/llvm/ADT/UniqueVector.h stable/12/contrib/llvm/include/llvm/ADT/VariadicFunction.h stable/12/contrib/llvm/include/llvm/ADT/bit.h stable/12/contrib/llvm/include/llvm/ADT/edit_distance.h stable/12/contrib/llvm/include/llvm/ADT/ilist.h stable/12/contrib/llvm/include/llvm/ADT/ilist_base.h stable/12/contrib/llvm/include/llvm/ADT/ilist_iterator.h stable/12/contrib/llvm/include/llvm/ADT/ilist_node.h stable/12/contrib/llvm/include/llvm/ADT/ilist_node_base.h stable/12/contrib/llvm/include/llvm/ADT/ilist_node_options.h stable/12/contrib/llvm/include/llvm/ADT/iterator.h stable/12/contrib/llvm/include/llvm/ADT/iterator_range.h stable/12/contrib/llvm/include/llvm/ADT/simple_ilist.h stable/12/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h stable/12/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h stable/12/contrib/llvm/include/llvm/Analysis/AssumptionCache.h stable/12/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h stable/12/contrib/llvm/include/llvm/Analysis/CFG.h stable/12/contrib/llvm/include/llvm/Analysis/CFGPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h stable/12/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h stable/12/contrib/llvm/include/llvm/Analysis/CallGraph.h stable/12/contrib/llvm/include/llvm/Analysis/CallGraphSCCPass.h stable/12/contrib/llvm/include/llvm/Analysis/CallPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/CaptureTracking.h stable/12/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/CodeMetrics.h stable/12/contrib/llvm/include/llvm/Analysis/ConstantFolding.h stable/12/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h stable/12/contrib/llvm/include/llvm/Analysis/DemandedBits.h stable/12/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/DomPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h stable/12/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h stable/12/contrib/llvm/include/llvm/Analysis/EHPersonalities.h stable/12/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h stable/12/contrib/llvm/include/llvm/Analysis/GuardUtils.h stable/12/contrib/llvm/include/llvm/Analysis/IVDescriptors.h stable/12/contrib/llvm/include/llvm/Analysis/IVUsers.h stable/12/contrib/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/IndirectCallVisitor.h stable/12/contrib/llvm/include/llvm/Analysis/InlineCost.h stable/12/contrib/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h stable/12/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h stable/12/contrib/llvm/include/llvm/Analysis/Interval.h stable/12/contrib/llvm/include/llvm/Analysis/IntervalIterator.h stable/12/contrib/llvm/include/llvm/Analysis/IntervalPartition.h stable/12/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h stable/12/contrib/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h stable/12/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/Lint.h stable/12/contrib/llvm/include/llvm/Analysis/Loads.h stable/12/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h stable/12/contrib/llvm/include/llvm/Analysis/LoopInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/LoopIterator.h stable/12/contrib/llvm/include/llvm/Analysis/LoopPass.h stable/12/contrib/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryLocation.h stable/12/contrib/llvm/include/llvm/Analysis/MemorySSA.h stable/12/contrib/llvm/include/llvm/Analysis/MemorySSAUpdater.h stable/12/contrib/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/MustExecute.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h stable/12/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h stable/12/contrib/llvm/include/llvm/Analysis/OrderedBasicBlock.h stable/12/contrib/llvm/include/llvm/Analysis/OrderedInstructions.h stable/12/contrib/llvm/include/llvm/Analysis/PHITransAddr.h stable/12/contrib/llvm/include/llvm/Analysis/Passes.h stable/12/contrib/llvm/include/llvm/Analysis/PhiValues.h stable/12/contrib/llvm/include/llvm/Analysis/PostDominators.h stable/12/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h stable/12/contrib/llvm/include/llvm/Analysis/PtrUseVisitor.h stable/12/contrib/llvm/include/llvm/Analysis/RegionInfo.h stable/12/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/RegionIterator.h stable/12/contrib/llvm/include/llvm/Analysis/RegionPass.h stable/12/contrib/llvm/include/llvm/Analysis/RegionPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h stable/12/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h stable/12/contrib/llvm/include/llvm/Analysis/SparsePropagation.h stable/12/contrib/llvm/include/llvm/Analysis/StackSafetyAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/SyncDependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/SyntheticCountsUtils.h stable/12/contrib/llvm/include/llvm/Analysis/TargetFolder.h stable/12/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def stable/12/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h stable/12/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h stable/12/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/Trace.h stable/12/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/TypeMetadataUtils.h stable/12/contrib/llvm/include/llvm/Analysis/Utils/Local.h stable/12/contrib/llvm/include/llvm/Analysis/ValueLattice.h stable/12/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h stable/12/contrib/llvm/include/llvm/Analysis/ValueTracking.h stable/12/contrib/llvm/include/llvm/Analysis/VectorUtils.h stable/12/contrib/llvm/include/llvm/AsmParser/Parser.h stable/12/contrib/llvm/include/llvm/AsmParser/SlotMapping.h stable/12/contrib/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h stable/12/contrib/llvm/include/llvm/BinaryFormat/COFF.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def stable/12/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h stable/12/contrib/llvm/include/llvm/BinaryFormat/DynamicTags.def stable/12/contrib/llvm/include/llvm/BinaryFormat/ELF.h stable/12/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/ARM.def stable/12/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MachO.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MachO.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Magic.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPack.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPack.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackReader.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackWriter.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Wasm.h stable/12/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h stable/12/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h stable/12/contrib/llvm/include/llvm/CodeGen/AccelTable.h stable/12/contrib/llvm/include/llvm/CodeGen/Analysis.h stable/12/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/AsmPrinterHandler.h stable/12/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h stable/12/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/BuiltinGCs.h stable/12/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h stable/12/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h stable/12/contrib/llvm/include/llvm/CodeGen/CommandFlags.inc stable/12/contrib/llvm/include/llvm/CodeGen/CostTable.h stable/12/contrib/llvm/include/llvm/CodeGen/DAGCombine.h stable/12/contrib/llvm/include/llvm/CodeGen/DFAPacketizer.h stable/12/contrib/llvm/include/llvm/CodeGen/DIE.h stable/12/contrib/llvm/include/llvm/CodeGen/DIEValue.def stable/12/contrib/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h stable/12/contrib/llvm/include/llvm/CodeGen/DebugHandlerBase.h stable/12/contrib/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h stable/12/contrib/llvm/include/llvm/CodeGen/EdgeBundles.h stable/12/contrib/llvm/include/llvm/CodeGen/ExecutionDomainFix.h stable/12/contrib/llvm/include/llvm/CodeGen/ExpandReductions.h stable/12/contrib/llvm/include/llvm/CodeGen/FastISel.h stable/12/contrib/llvm/include/llvm/CodeGen/FaultMaps.h stable/12/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GCMetadata.h stable/12/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/GCStrategy.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Types.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h stable/12/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h stable/12/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h stable/12/contrib/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/LexicalScopes.h stable/12/contrib/llvm/include/llvm/CodeGen/LinkAllAsmWriterComponents.h stable/12/contrib/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveInterval.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveIntervalUnion.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h stable/12/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveStacks.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveVariables.h stable/12/contrib/llvm/include/llvm/CodeGen/LoopTraversal.h stable/12/contrib/llvm/include/llvm/CodeGen/LowLevelType.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h stable/12/contrib/llvm/include/llvm/CodeGen/MachORelocation.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineCombinerPattern.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineDominators.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFunction.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFunctionPass.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstr.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineOperand.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePipeliner.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineRegionInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineTraceMetrics.h stable/12/contrib/llvm/include/llvm/CodeGen/MacroFusion.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/Graph.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/Math.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/Solution.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQPRAConstraint.h stable/12/contrib/llvm/include/llvm/CodeGen/ParallelCG.h stable/12/contrib/llvm/include/llvm/CodeGen/Passes.h stable/12/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h stable/12/contrib/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h stable/12/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h stable/12/contrib/llvm/include/llvm/CodeGen/RegAllocRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterClassInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h stable/12/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h stable/12/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDFS.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h stable/12/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h stable/12/contrib/llvm/include/llvm/CodeGen/StackMaps.h stable/12/contrib/llvm/include/llvm/CodeGen/StackProtector.h stable/12/contrib/llvm/include/llvm/CodeGen/TailDuplicator.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/UnreachableBlockElim.h stable/12/contrib/llvm/include/llvm/CodeGen/ValueTypes.h stable/12/contrib/llvm/include/llvm/CodeGen/ValueTypes.td stable/12/contrib/llvm/include/llvm/CodeGen/VirtRegMap.h stable/12/contrib/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/WinEHFuncInfo.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewTypes.def stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/FunctionId.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/GUID.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/Line.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h stable/12/contrib/llvm/include/llvm/DebugInfo/DIContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MSFError.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASupport.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAUtils.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Formatters.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDB.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h stable/12/contrib/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h stable/12/contrib/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h stable/12/contrib/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h stable/12/contrib/llvm/include/llvm/Demangle/Demangle.h stable/12/contrib/llvm/include/llvm/Demangle/ItaniumDemangle.h stable/12/contrib/llvm/include/llvm/Demangle/MicrosoftDemangle.h stable/12/contrib/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h stable/12/contrib/llvm/include/llvm/Demangle/StringView.h stable/12/contrib/llvm/include/llvm/Demangle/Utility.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/GenericValue.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Interpreter.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/MCJIT.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/OProfileWrapper.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/ObjectCache.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LambdaResolver.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Layer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/OrcMCJITReplacement.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h stable/12/contrib/llvm/include/llvm/FuzzMutate/FuzzerCLI.h stable/12/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h stable/12/contrib/llvm/include/llvm/FuzzMutate/OpDescriptor.h stable/12/contrib/llvm/include/llvm/FuzzMutate/Operations.h stable/12/contrib/llvm/include/llvm/FuzzMutate/Random.h stable/12/contrib/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h stable/12/contrib/llvm/include/llvm/IR/Argument.h stable/12/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h stable/12/contrib/llvm/include/llvm/IR/Attributes.h stable/12/contrib/llvm/include/llvm/IR/Attributes.td stable/12/contrib/llvm/include/llvm/IR/AutoUpgrade.h stable/12/contrib/llvm/include/llvm/IR/BasicBlock.h stable/12/contrib/llvm/include/llvm/IR/CFG.h stable/12/contrib/llvm/include/llvm/IR/CFGDiff.h stable/12/contrib/llvm/include/llvm/IR/CallSite.h stable/12/contrib/llvm/include/llvm/IR/CallingConv.h stable/12/contrib/llvm/include/llvm/IR/Comdat.h stable/12/contrib/llvm/include/llvm/IR/Constant.h stable/12/contrib/llvm/include/llvm/IR/ConstantFolder.h stable/12/contrib/llvm/include/llvm/IR/ConstantRange.h stable/12/contrib/llvm/include/llvm/IR/Constants.h stable/12/contrib/llvm/include/llvm/IR/DIBuilder.h stable/12/contrib/llvm/include/llvm/IR/DataLayout.h stable/12/contrib/llvm/include/llvm/IR/DebugInfo.h stable/12/contrib/llvm/include/llvm/IR/DebugInfoFlags.def stable/12/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h stable/12/contrib/llvm/include/llvm/IR/DebugLoc.h stable/12/contrib/llvm/include/llvm/IR/DerivedTypes.h stable/12/contrib/llvm/include/llvm/IR/DerivedUser.h stable/12/contrib/llvm/include/llvm/IR/DiagnosticHandler.h stable/12/contrib/llvm/include/llvm/IR/DiagnosticInfo.h stable/12/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h stable/12/contrib/llvm/include/llvm/IR/Dominators.h stable/12/contrib/llvm/include/llvm/IR/Function.h stable/12/contrib/llvm/include/llvm/IR/GVMaterializer.h stable/12/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h stable/12/contrib/llvm/include/llvm/IR/GlobalAlias.h stable/12/contrib/llvm/include/llvm/IR/GlobalIFunc.h stable/12/contrib/llvm/include/llvm/IR/GlobalIndirectSymbol.h stable/12/contrib/llvm/include/llvm/IR/GlobalObject.h stable/12/contrib/llvm/include/llvm/IR/GlobalValue.h stable/12/contrib/llvm/include/llvm/IR/GlobalVariable.h stable/12/contrib/llvm/include/llvm/IR/IRBuilder.h stable/12/contrib/llvm/include/llvm/IR/IRPrintingPasses.h stable/12/contrib/llvm/include/llvm/IR/InlineAsm.h stable/12/contrib/llvm/include/llvm/IR/InstIterator.h stable/12/contrib/llvm/include/llvm/IR/InstVisitor.h stable/12/contrib/llvm/include/llvm/IR/InstrTypes.h stable/12/contrib/llvm/include/llvm/IR/Instruction.def stable/12/contrib/llvm/include/llvm/IR/Instruction.h stable/12/contrib/llvm/include/llvm/IR/Instructions.h stable/12/contrib/llvm/include/llvm/IR/IntrinsicInst.h stable/12/contrib/llvm/include/llvm/IR/Intrinsics.h stable/12/contrib/llvm/include/llvm/IR/Intrinsics.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsARM.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsBPF.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsMips.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsNVVM.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsRISCV.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsX86.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsXCore.td stable/12/contrib/llvm/include/llvm/IR/LLVMContext.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassManager.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassManagers.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h stable/12/contrib/llvm/include/llvm/IR/MDBuilder.h stable/12/contrib/llvm/include/llvm/IR/Mangler.h stable/12/contrib/llvm/include/llvm/IR/Metadata.def stable/12/contrib/llvm/include/llvm/IR/Metadata.h stable/12/contrib/llvm/include/llvm/IR/Module.h stable/12/contrib/llvm/include/llvm/IR/ModuleSlotTracker.h stable/12/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h stable/12/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h stable/12/contrib/llvm/include/llvm/IR/NoFolder.h stable/12/contrib/llvm/include/llvm/IR/OperandTraits.h stable/12/contrib/llvm/include/llvm/IR/Operator.h stable/12/contrib/llvm/include/llvm/IR/OptBisect.h stable/12/contrib/llvm/include/llvm/IR/PassInstrumentation.h stable/12/contrib/llvm/include/llvm/IR/PassManager.h stable/12/contrib/llvm/include/llvm/IR/PassManagerInternal.h stable/12/contrib/llvm/include/llvm/IR/PassTimingInfo.h stable/12/contrib/llvm/include/llvm/IR/PatternMatch.h stable/12/contrib/llvm/include/llvm/IR/PredIteratorCache.h stable/12/contrib/llvm/include/llvm/IR/ProfileSummary.h stable/12/contrib/llvm/include/llvm/IR/RuntimeLibcalls.def stable/12/contrib/llvm/include/llvm/IR/SafepointIRVerifier.h stable/12/contrib/llvm/include/llvm/IR/Statepoint.h stable/12/contrib/llvm/include/llvm/IR/SymbolTableListTraits.h stable/12/contrib/llvm/include/llvm/IR/TrackingMDRef.h stable/12/contrib/llvm/include/llvm/IR/Type.h stable/12/contrib/llvm/include/llvm/IR/TypeFinder.h stable/12/contrib/llvm/include/llvm/IR/Use.h stable/12/contrib/llvm/include/llvm/IR/UseListOrder.h stable/12/contrib/llvm/include/llvm/IR/User.h stable/12/contrib/llvm/include/llvm/IR/Value.def stable/12/contrib/llvm/include/llvm/IR/Value.h stable/12/contrib/llvm/include/llvm/IR/ValueHandle.h stable/12/contrib/llvm/include/llvm/IR/ValueMap.h stable/12/contrib/llvm/include/llvm/IR/ValueSymbolTable.h stable/12/contrib/llvm/include/llvm/IR/Verifier.h stable/12/contrib/llvm/include/llvm/IRReader/IRReader.h stable/12/contrib/llvm/include/llvm/InitializePasses.h stable/12/contrib/llvm/include/llvm/LTO/Caching.h stable/12/contrib/llvm/include/llvm/LTO/Config.h stable/12/contrib/llvm/include/llvm/LTO/LTO.h stable/12/contrib/llvm/include/llvm/LTO/LTOBackend.h stable/12/contrib/llvm/include/llvm/LTO/SummaryBasedOptimizations.h stable/12/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h stable/12/contrib/llvm/include/llvm/LTO/legacy/LTOModule.h stable/12/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h stable/12/contrib/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h stable/12/contrib/llvm/include/llvm/LineEditor/LineEditor.h stable/12/contrib/llvm/include/llvm/LinkAllIR.h stable/12/contrib/llvm/include/llvm/LinkAllPasses.h stable/12/contrib/llvm/include/llvm/Linker/IRMover.h stable/12/contrib/llvm/include/llvm/Linker/Linker.h stable/12/contrib/llvm/include/llvm/MC/ConstantPools.h stable/12/contrib/llvm/include/llvm/MC/LaneBitmask.h stable/12/contrib/llvm/include/llvm/MC/MCAsmBackend.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfo.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoDarwin.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoELF.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoWasm.h stable/12/contrib/llvm/include/llvm/MC/MCAsmLayout.h stable/12/contrib/llvm/include/llvm/MC/MCAsmMacro.h stable/12/contrib/llvm/include/llvm/MC/MCAssembler.h stable/12/contrib/llvm/include/llvm/MC/MCCodeEmitter.h stable/12/contrib/llvm/include/llvm/MC/MCCodePadder.h stable/12/contrib/llvm/include/llvm/MC/MCCodeView.h stable/12/contrib/llvm/include/llvm/MC/MCContext.h stable/12/contrib/llvm/include/llvm/MC/MCDirectives.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h stable/12/contrib/llvm/include/llvm/MC/MCDwarf.h stable/12/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCELFStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCExpr.h stable/12/contrib/llvm/include/llvm/MC/MCFixedLenDisassembler.h stable/12/contrib/llvm/include/llvm/MC/MCFixup.h stable/12/contrib/llvm/include/llvm/MC/MCFixupKindInfo.h stable/12/contrib/llvm/include/llvm/MC/MCFragment.h stable/12/contrib/llvm/include/llvm/MC/MCInst.h stable/12/contrib/llvm/include/llvm/MC/MCInstBuilder.h stable/12/contrib/llvm/include/llvm/MC/MCInstPrinter.h stable/12/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h stable/12/contrib/llvm/include/llvm/MC/MCInstrDesc.h stable/12/contrib/llvm/include/llvm/MC/MCInstrInfo.h stable/12/contrib/llvm/include/llvm/MC/MCInstrItineraries.h stable/12/contrib/llvm/include/llvm/MC/MCLabel.h stable/12/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h stable/12/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h stable/12/contrib/llvm/include/llvm/MC/MCObjectStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCParser/AsmCond.h stable/12/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h stable/12/contrib/llvm/include/llvm/MC/MCRegisterInfo.h stable/12/contrib/llvm/include/llvm/MC/MCSchedule.h stable/12/contrib/llvm/include/llvm/MC/MCSection.h stable/12/contrib/llvm/include/llvm/MC/MCSectionCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSectionELF.h stable/12/contrib/llvm/include/llvm/MC/MCSectionMachO.h stable/12/contrib/llvm/include/llvm/MC/MCSectionWasm.h stable/12/contrib/llvm/include/llvm/MC/MCStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h stable/12/contrib/llvm/include/llvm/MC/MCSymbol.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolELF.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolMachO.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolWasm.h stable/12/contrib/llvm/include/llvm/MC/MCTargetOptions.h stable/12/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.inc stable/12/contrib/llvm/include/llvm/MC/MCValue.h stable/12/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCWasmStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCWin64EH.h stable/12/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCWinEH.h stable/12/contrib/llvm/include/llvm/MC/MachineLocation.h stable/12/contrib/llvm/include/llvm/MC/SectionKind.h stable/12/contrib/llvm/include/llvm/MC/StringTableBuilder.h stable/12/contrib/llvm/include/llvm/MC/SubtargetFeature.h stable/12/contrib/llvm/include/llvm/MCA/Context.h stable/12/contrib/llvm/include/llvm/MCA/HWEventListener.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h stable/12/contrib/llvm/include/llvm/MCA/InstrBuilder.h stable/12/contrib/llvm/include/llvm/MCA/Instruction.h stable/12/contrib/llvm/include/llvm/MCA/Pipeline.h stable/12/contrib/llvm/include/llvm/MCA/SourceMgr.h stable/12/contrib/llvm/include/llvm/MCA/Stages/DispatchStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/EntryStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/ExecuteStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/InstructionTables.h stable/12/contrib/llvm/include/llvm/MCA/Stages/RetireStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/Stage.h stable/12/contrib/llvm/include/llvm/MCA/Support.h stable/12/contrib/llvm/include/llvm/Object/Archive.h stable/12/contrib/llvm/include/llvm/Object/ArchiveWriter.h stable/12/contrib/llvm/include/llvm/Object/Binary.h stable/12/contrib/llvm/include/llvm/Object/COFF.h stable/12/contrib/llvm/include/llvm/Object/COFFImportFile.h stable/12/contrib/llvm/include/llvm/Object/COFFModuleDefinition.h stable/12/contrib/llvm/include/llvm/Object/CVDebugRecord.h stable/12/contrib/llvm/include/llvm/Object/Decompressor.h stable/12/contrib/llvm/include/llvm/Object/ELF.h stable/12/contrib/llvm/include/llvm/Object/ELFObjectFile.h stable/12/contrib/llvm/include/llvm/Object/ELFTypes.h stable/12/contrib/llvm/include/llvm/Object/Error.h stable/12/contrib/llvm/include/llvm/Object/IRObjectFile.h stable/12/contrib/llvm/include/llvm/Object/IRSymtab.h stable/12/contrib/llvm/include/llvm/Object/MachO.h stable/12/contrib/llvm/include/llvm/Object/MachOUniversal.h stable/12/contrib/llvm/include/llvm/Object/ModuleSymbolTable.h stable/12/contrib/llvm/include/llvm/Object/ObjectFile.h stable/12/contrib/llvm/include/llvm/Object/StackMapParser.h stable/12/contrib/llvm/include/llvm/Object/SymbolSize.h stable/12/contrib/llvm/include/llvm/Object/SymbolicFile.h stable/12/contrib/llvm/include/llvm/Object/Wasm.h stable/12/contrib/llvm/include/llvm/Object/WasmTraits.h stable/12/contrib/llvm/include/llvm/Object/WindowsResource.h stable/12/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h stable/12/contrib/llvm/include/llvm/ObjectYAML/DWARFEmitter.h stable/12/contrib/llvm/include/llvm/ObjectYAML/DWARFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/ObjectYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/YAML.h stable/12/contrib/llvm/include/llvm/Option/Arg.h stable/12/contrib/llvm/include/llvm/Option/ArgList.h stable/12/contrib/llvm/include/llvm/Option/OptParser.td stable/12/contrib/llvm/include/llvm/Option/OptSpecifier.h stable/12/contrib/llvm/include/llvm/Option/OptTable.h stable/12/contrib/llvm/include/llvm/Option/Option.h stable/12/contrib/llvm/include/llvm/Pass.h stable/12/contrib/llvm/include/llvm/PassAnalysisSupport.h stable/12/contrib/llvm/include/llvm/PassInfo.h stable/12/contrib/llvm/include/llvm/PassRegistry.h stable/12/contrib/llvm/include/llvm/PassSupport.h stable/12/contrib/llvm/include/llvm/Passes/PassBuilder.h stable/12/contrib/llvm/include/llvm/Passes/PassPlugin.h stable/12/contrib/llvm/include/llvm/Passes/StandardInstrumentations.h stable/12/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h stable/12/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h stable/12/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h stable/12/contrib/llvm/include/llvm/ProfileData/GCOV.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProf.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc stable/12/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProfWriter.h stable/12/contrib/llvm/include/llvm/ProfileData/ProfileCommon.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProf.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProfWriter.h stable/12/contrib/llvm/include/llvm/Support/AArch64TargetParser.def stable/12/contrib/llvm/include/llvm/Support/AArch64TargetParser.h stable/12/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h stable/12/contrib/llvm/include/llvm/Support/AMDHSAKernelDescriptor.h stable/12/contrib/llvm/include/llvm/Support/ARMAttributeParser.h stable/12/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h stable/12/contrib/llvm/include/llvm/Support/ARMEHABI.h stable/12/contrib/llvm/include/llvm/Support/ARMTargetParser.def stable/12/contrib/llvm/include/llvm/Support/ARMTargetParser.h stable/12/contrib/llvm/include/llvm/Support/ARMWinEH.h stable/12/contrib/llvm/include/llvm/Support/AlignOf.h stable/12/contrib/llvm/include/llvm/Support/Allocator.h stable/12/contrib/llvm/include/llvm/Support/ArrayRecycler.h stable/12/contrib/llvm/include/llvm/Support/Atomic.h stable/12/contrib/llvm/include/llvm/Support/AtomicOrdering.h stable/12/contrib/llvm/include/llvm/Support/BinaryByteStream.h stable/12/contrib/llvm/include/llvm/Support/BinaryItemStream.h stable/12/contrib/llvm/include/llvm/Support/BinaryStream.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamArray.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamError.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamReader.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamRef.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamWriter.h stable/12/contrib/llvm/include/llvm/Support/BlockFrequency.h stable/12/contrib/llvm/include/llvm/Support/BranchProbability.h stable/12/contrib/llvm/include/llvm/Support/BuryPointer.h stable/12/contrib/llvm/include/llvm/Support/CBindingWrapping.h stable/12/contrib/llvm/include/llvm/Support/CFGUpdate.h stable/12/contrib/llvm/include/llvm/Support/COM.h stable/12/contrib/llvm/include/llvm/Support/CachePruning.h stable/12/contrib/llvm/include/llvm/Support/Capacity.h stable/12/contrib/llvm/include/llvm/Support/Casting.h stable/12/contrib/llvm/include/llvm/Support/CheckedArithmetic.h stable/12/contrib/llvm/include/llvm/Support/Chrono.h stable/12/contrib/llvm/include/llvm/Support/CodeGen.h stable/12/contrib/llvm/include/llvm/Support/CodeGenCoverage.h stable/12/contrib/llvm/include/llvm/Support/CommandLine.h stable/12/contrib/llvm/include/llvm/Support/Compiler.h stable/12/contrib/llvm/include/llvm/Support/Compression.h stable/12/contrib/llvm/include/llvm/Support/ConvertUTF.h stable/12/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h stable/12/contrib/llvm/include/llvm/Support/DJB.h stable/12/contrib/llvm/include/llvm/Support/DOTGraphTraits.h stable/12/contrib/llvm/include/llvm/Support/DataExtractor.h stable/12/contrib/llvm/include/llvm/Support/DataTypes.h stable/12/contrib/llvm/include/llvm/Support/Debug.h stable/12/contrib/llvm/include/llvm/Support/DebugCounter.h stable/12/contrib/llvm/include/llvm/Support/DynamicLibrary.h stable/12/contrib/llvm/include/llvm/Support/Endian.h stable/12/contrib/llvm/include/llvm/Support/EndianStream.h stable/12/contrib/llvm/include/llvm/Support/Errc.h stable/12/contrib/llvm/include/llvm/Support/Errno.h stable/12/contrib/llvm/include/llvm/Support/Error.h stable/12/contrib/llvm/include/llvm/Support/ErrorHandling.h stable/12/contrib/llvm/include/llvm/Support/ErrorOr.h stable/12/contrib/llvm/include/llvm/Support/FileCheck.h stable/12/contrib/llvm/include/llvm/Support/FileOutputBuffer.h stable/12/contrib/llvm/include/llvm/Support/FileSystem.h stable/12/contrib/llvm/include/llvm/Support/FileUtilities.h stable/12/contrib/llvm/include/llvm/Support/Format.h stable/12/contrib/llvm/include/llvm/Support/FormatAdapters.h stable/12/contrib/llvm/include/llvm/Support/FormatCommon.h stable/12/contrib/llvm/include/llvm/Support/FormatProviders.h stable/12/contrib/llvm/include/llvm/Support/FormatVariadic.h stable/12/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h stable/12/contrib/llvm/include/llvm/Support/FormattedStream.h stable/12/contrib/llvm/include/llvm/Support/GenericDomTree.h stable/12/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h stable/12/contrib/llvm/include/llvm/Support/GlobPattern.h stable/12/contrib/llvm/include/llvm/Support/GraphWriter.h stable/12/contrib/llvm/include/llvm/Support/Host.h stable/12/contrib/llvm/include/llvm/Support/InitLLVM.h stable/12/contrib/llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h stable/12/contrib/llvm/include/llvm/Support/JSON.h stable/12/contrib/llvm/include/llvm/Support/JamCRC.h stable/12/contrib/llvm/include/llvm/Support/KnownBits.h stable/12/contrib/llvm/include/llvm/Support/LEB128.h stable/12/contrib/llvm/include/llvm/Support/LineIterator.h stable/12/contrib/llvm/include/llvm/Support/LockFileManager.h stable/12/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h stable/12/contrib/llvm/include/llvm/Support/MSVCErrorWorkarounds.h stable/12/contrib/llvm/include/llvm/Support/MachineValueType.h stable/12/contrib/llvm/include/llvm/Support/ManagedStatic.h stable/12/contrib/llvm/include/llvm/Support/MathExtras.h stable/12/contrib/llvm/include/llvm/Support/MemAlloc.h stable/12/contrib/llvm/include/llvm/Support/Memory.h stable/12/contrib/llvm/include/llvm/Support/MemoryBuffer.h stable/12/contrib/llvm/include/llvm/Support/MipsABIFlags.h stable/12/contrib/llvm/include/llvm/Support/Mutex.h stable/12/contrib/llvm/include/llvm/Support/MutexGuard.h stable/12/contrib/llvm/include/llvm/Support/NativeFormatting.h stable/12/contrib/llvm/include/llvm/Support/OnDiskHashTable.h stable/12/contrib/llvm/include/llvm/Support/Options.h stable/12/contrib/llvm/include/llvm/Support/Parallel.h stable/12/contrib/llvm/include/llvm/Support/Path.h stable/12/contrib/llvm/include/llvm/Support/PluginLoader.h stable/12/contrib/llvm/include/llvm/Support/PointerLikeTypeTraits.h stable/12/contrib/llvm/include/llvm/Support/PrettyStackTrace.h stable/12/contrib/llvm/include/llvm/Support/Printable.h stable/12/contrib/llvm/include/llvm/Support/Process.h stable/12/contrib/llvm/include/llvm/Support/Program.h stable/12/contrib/llvm/include/llvm/Support/RWMutex.h stable/12/contrib/llvm/include/llvm/Support/RandomNumberGenerator.h stable/12/contrib/llvm/include/llvm/Support/Recycler.h stable/12/contrib/llvm/include/llvm/Support/RecyclingAllocator.h stable/12/contrib/llvm/include/llvm/Support/Regex.h stable/12/contrib/llvm/include/llvm/Support/Registry.h stable/12/contrib/llvm/include/llvm/Support/SHA1.h stable/12/contrib/llvm/include/llvm/Support/SMLoc.h stable/12/contrib/llvm/include/llvm/Support/SaveAndRestore.h stable/12/contrib/llvm/include/llvm/Support/ScaledNumber.h stable/12/contrib/llvm/include/llvm/Support/ScopedPrinter.h stable/12/contrib/llvm/include/llvm/Support/Signals.h stable/12/contrib/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h stable/12/contrib/llvm/include/llvm/Support/Solaris/sys/regset.h stable/12/contrib/llvm/include/llvm/Support/SourceMgr.h stable/12/contrib/llvm/include/llvm/Support/SpecialCaseList.h stable/12/contrib/llvm/include/llvm/Support/StringPool.h stable/12/contrib/llvm/include/llvm/Support/StringSaver.h stable/12/contrib/llvm/include/llvm/Support/SwapByteOrder.h stable/12/contrib/llvm/include/llvm/Support/SymbolRemappingReader.h stable/12/contrib/llvm/include/llvm/Support/SystemUtils.h stable/12/contrib/llvm/include/llvm/Support/TarWriter.h stable/12/contrib/llvm/include/llvm/Support/TargetOpcodes.def stable/12/contrib/llvm/include/llvm/Support/TargetParser.h stable/12/contrib/llvm/include/llvm/Support/TargetRegistry.h stable/12/contrib/llvm/include/llvm/Support/TargetSelect.h stable/12/contrib/llvm/include/llvm/Support/TaskQueue.h stable/12/contrib/llvm/include/llvm/Support/ThreadLocal.h stable/12/contrib/llvm/include/llvm/Support/ThreadPool.h stable/12/contrib/llvm/include/llvm/Support/Threading.h stable/12/contrib/llvm/include/llvm/Support/Timer.h stable/12/contrib/llvm/include/llvm/Support/ToolOutputFile.h stable/12/contrib/llvm/include/llvm/Support/TrailingObjects.h stable/12/contrib/llvm/include/llvm/Support/TrigramIndex.h stable/12/contrib/llvm/include/llvm/Support/TypeName.h stable/12/contrib/llvm/include/llvm/Support/Unicode.h stable/12/contrib/llvm/include/llvm/Support/UnicodeCharRanges.h stable/12/contrib/llvm/include/llvm/Support/UniqueLock.h stable/12/contrib/llvm/include/llvm/Support/Valgrind.h stable/12/contrib/llvm/include/llvm/Support/VersionTuple.h stable/12/contrib/llvm/include/llvm/Support/VirtualFileSystem.h stable/12/contrib/llvm/include/llvm/Support/Watchdog.h stable/12/contrib/llvm/include/llvm/Support/Win64EH.h stable/12/contrib/llvm/include/llvm/Support/WindowsError.h stable/12/contrib/llvm/include/llvm/Support/WithColor.h stable/12/contrib/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h stable/12/contrib/llvm/include/llvm/Support/X86TargetParser.def stable/12/contrib/llvm/include/llvm/Support/YAMLParser.h stable/12/contrib/llvm/include/llvm/Support/YAMLTraits.h stable/12/contrib/llvm/include/llvm/Support/circular_raw_ostream.h stable/12/contrib/llvm/include/llvm/Support/raw_os_ostream.h stable/12/contrib/llvm/include/llvm/Support/raw_ostream.h stable/12/contrib/llvm/include/llvm/Support/raw_sha1_ostream.h stable/12/contrib/llvm/include/llvm/Support/thread.h stable/12/contrib/llvm/include/llvm/Support/type_traits.h stable/12/contrib/llvm/include/llvm/TableGen/Error.h stable/12/contrib/llvm/include/llvm/TableGen/Main.h stable/12/contrib/llvm/include/llvm/TableGen/Record.h stable/12/contrib/llvm/include/llvm/TableGen/SearchableTable.td stable/12/contrib/llvm/include/llvm/TableGen/SetTheory.h stable/12/contrib/llvm/include/llvm/TableGen/StringMatcher.h stable/12/contrib/llvm/include/llvm/TableGen/StringToOffsetTable.h stable/12/contrib/llvm/include/llvm/TableGen/TableGenBackend.h stable/12/contrib/llvm/include/llvm/Target/CodeGenCWrappers.h stable/12/contrib/llvm/include/llvm/Target/GenericOpcodes.td stable/12/contrib/llvm/include/llvm/Target/GlobalISel/RegisterBank.td stable/12/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td stable/12/contrib/llvm/include/llvm/Target/GlobalISel/Target.td stable/12/contrib/llvm/include/llvm/Target/Target.td stable/12/contrib/llvm/include/llvm/Target/TargetCallingConv.td stable/12/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td stable/12/contrib/llvm/include/llvm/Target/TargetIntrinsicInfo.h stable/12/contrib/llvm/include/llvm/Target/TargetItinerary.td stable/12/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h stable/12/contrib/llvm/include/llvm/Target/TargetMachine.h stable/12/contrib/llvm/include/llvm/Target/TargetOptions.h stable/12/contrib/llvm/include/llvm/Target/TargetPfmCounters.td stable/12/contrib/llvm/include/llvm/Target/TargetSchedule.td stable/12/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td stable/12/contrib/llvm/include/llvm/Testing/Support/Error.h stable/12/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h stable/12/contrib/llvm/include/llvm/TextAPI/ELF/ELFStub.h stable/12/contrib/llvm/include/llvm/TextAPI/ELF/TBEHandler.h stable/12/contrib/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h stable/12/contrib/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h stable/12/contrib/llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h stable/12/contrib/llvm/include/llvm/Transforms/Coroutines.h stable/12/contrib/llvm/include/llvm/Transforms/IPO.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ConstantMerge.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/GlobalDCE.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/GlobalOpt.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/GlobalSplit.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/Inliner.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/Internalize.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/PartialInlining.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/SCCP.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/SampleProfile.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h stable/12/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombine.h stable/12/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/ObjCARC.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/BDCE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/DCE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Float2Int.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/GVNExpression.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/GuardWidening.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LICM.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopPredication.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopRotation.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopSink.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerAtomic.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/NaryReassociate.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/NewGVN.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Reassociate.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Scalarizer.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Sink.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h stable/12/contrib/llvm/include/llvm/Transforms/Utils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/AddDiscriminators.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CtorUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/EscapeEnumerator.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Evaluator.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/FunctionComparator.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/GlobalStatus.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/GuardUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/IntegerDivision.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LCSSA.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Local.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopSimplify.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopVersioning.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LowerInvoke.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Mem2Reg.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SanitizerStats.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/VNCoercion.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h stable/12/contrib/llvm/include/llvm/WindowsManifest/WindowsManifestMerger.h stable/12/contrib/llvm/include/llvm/WindowsResource/ResourceProcessor.h stable/12/contrib/llvm/include/llvm/WindowsResource/ResourceScriptToken.h stable/12/contrib/llvm/include/llvm/WindowsResource/ResourceScriptTokenList.h stable/12/contrib/llvm/include/llvm/XRay/BlockIndexer.h stable/12/contrib/llvm/include/llvm/XRay/BlockPrinter.h stable/12/contrib/llvm/include/llvm/XRay/BlockVerifier.h stable/12/contrib/llvm/include/llvm/XRay/FDRLogBuilder.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecordConsumer.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecordProducer.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecords.h stable/12/contrib/llvm/include/llvm/XRay/FDRTraceExpander.h stable/12/contrib/llvm/include/llvm/XRay/FDRTraceWriter.h stable/12/contrib/llvm/include/llvm/XRay/FileHeaderReader.h stable/12/contrib/llvm/include/llvm/XRay/Graph.h stable/12/contrib/llvm/include/llvm/XRay/InstrumentationMap.h stable/12/contrib/llvm/include/llvm/XRay/Profile.h stable/12/contrib/llvm/include/llvm/XRay/RecordPrinter.h stable/12/contrib/llvm/include/llvm/XRay/Trace.h stable/12/contrib/llvm/include/llvm/XRay/XRayRecord.h stable/12/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h stable/12/contrib/llvm/include/llvm/module.modulemap stable/12/contrib/llvm/lib/Analysis/AliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp stable/12/contrib/llvm/lib/Analysis/AliasAnalysisSummary.cpp stable/12/contrib/llvm/lib/Analysis/AliasAnalysisSummary.h stable/12/contrib/llvm/lib/Analysis/AliasSetTracker.cpp stable/12/contrib/llvm/lib/Analysis/Analysis.cpp stable/12/contrib/llvm/lib/Analysis/AssumptionCache.cpp stable/12/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp stable/12/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp stable/12/contrib/llvm/lib/Analysis/CFG.cpp stable/12/contrib/llvm/lib/Analysis/CFGPrinter.cpp stable/12/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/CFLGraph.h stable/12/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp stable/12/contrib/llvm/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp stable/12/contrib/llvm/lib/Analysis/CallPrinter.cpp stable/12/contrib/llvm/lib/Analysis/CaptureTracking.cpp stable/12/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/CodeMetrics.cpp stable/12/contrib/llvm/lib/Analysis/ConstantFolding.cpp stable/12/contrib/llvm/lib/Analysis/CostModel.cpp stable/12/contrib/llvm/lib/Analysis/Delinearization.cpp stable/12/contrib/llvm/lib/Analysis/DemandedBits.cpp stable/12/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/DomPrinter.cpp stable/12/contrib/llvm/lib/Analysis/DominanceFrontier.cpp stable/12/contrib/llvm/lib/Analysis/EHPersonalities.cpp stable/12/contrib/llvm/lib/Analysis/GlobalsModRef.cpp stable/12/contrib/llvm/lib/Analysis/GuardUtils.cpp stable/12/contrib/llvm/lib/Analysis/IVDescriptors.cpp stable/12/contrib/llvm/lib/Analysis/IVUsers.cpp stable/12/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/InlineCost.cpp stable/12/contrib/llvm/lib/Analysis/InstCount.cpp stable/12/contrib/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp stable/12/contrib/llvm/lib/Analysis/InstructionSimplify.cpp stable/12/contrib/llvm/lib/Analysis/Interval.cpp stable/12/contrib/llvm/lib/Analysis/IntervalPartition.cpp stable/12/contrib/llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp stable/12/contrib/llvm/lib/Analysis/LazyCallGraph.cpp stable/12/contrib/llvm/lib/Analysis/LazyValueInfo.cpp stable/12/contrib/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/Lint.cpp stable/12/contrib/llvm/lib/Analysis/Loads.cpp stable/12/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp stable/12/contrib/llvm/lib/Analysis/LoopInfo.cpp stable/12/contrib/llvm/lib/Analysis/LoopPass.cpp stable/12/contrib/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp stable/12/contrib/llvm/lib/Analysis/MemDepPrinter.cpp stable/12/contrib/llvm/lib/Analysis/MemDerefPrinter.cpp stable/12/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp stable/12/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/MemoryLocation.cpp stable/12/contrib/llvm/lib/Analysis/MemorySSA.cpp stable/12/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp stable/12/contrib/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp stable/12/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/MustExecute.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp stable/12/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp stable/12/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp stable/12/contrib/llvm/lib/Analysis/OrderedInstructions.cpp stable/12/contrib/llvm/lib/Analysis/PHITransAddr.cpp stable/12/contrib/llvm/lib/Analysis/PhiValues.cpp stable/12/contrib/llvm/lib/Analysis/PostDominators.cpp stable/12/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp stable/12/contrib/llvm/lib/Analysis/PtrUseVisitor.cpp stable/12/contrib/llvm/lib/Analysis/RegionInfo.cpp stable/12/contrib/llvm/lib/Analysis/RegionPass.cpp stable/12/contrib/llvm/lib/Analysis/RegionPrinter.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolution.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp stable/12/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp stable/12/contrib/llvm/lib/Analysis/StackSafetyAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/StratifiedSets.h stable/12/contrib/llvm/lib/Analysis/SyncDependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/SyntheticCountsUtils.cpp stable/12/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp stable/12/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Analysis/Trace.cpp stable/12/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/TypeMetadataUtils.cpp stable/12/contrib/llvm/lib/Analysis/ValueLattice.cpp stable/12/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp stable/12/contrib/llvm/lib/Analysis/ValueTracking.cpp stable/12/contrib/llvm/lib/Analysis/VectorUtils.cpp stable/12/contrib/llvm/lib/AsmParser/LLLexer.cpp stable/12/contrib/llvm/lib/AsmParser/LLLexer.h stable/12/contrib/llvm/lib/AsmParser/LLParser.cpp stable/12/contrib/llvm/lib/AsmParser/LLParser.h stable/12/contrib/llvm/lib/AsmParser/LLToken.h stable/12/contrib/llvm/lib/AsmParser/Parser.cpp stable/12/contrib/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp stable/12/contrib/llvm/lib/BinaryFormat/Dwarf.cpp stable/12/contrib/llvm/lib/BinaryFormat/Magic.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackReader.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackWriter.cpp stable/12/contrib/llvm/lib/BinaryFormat/Wasm.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitReader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h stable/12/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/ValueList.h stable/12/contrib/llvm/lib/Bitcode/Writer/BitWriter.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h stable/12/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp stable/12/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h stable/12/contrib/llvm/lib/CodeGen/AllocationOrder.cpp stable/12/contrib/llvm/lib/CodeGen/AllocationOrder.h stable/12/contrib/llvm/lib/CodeGen/Analysis.cpp stable/12/contrib/llvm/lib/CodeGen/AntiDepBreaker.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.h stable/12/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp stable/12/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp stable/12/contrib/llvm/lib/CodeGen/BranchFolding.cpp stable/12/contrib/llvm/lib/CodeGen/BranchFolding.h stable/12/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp stable/12/contrib/llvm/lib/CodeGen/BreakFalseDeps.cpp stable/12/contrib/llvm/lib/CodeGen/BuiltinGCs.cpp stable/12/contrib/llvm/lib/CodeGen/CFIInstrInserter.cpp stable/12/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp stable/12/contrib/llvm/lib/CodeGen/CallingConvLower.cpp stable/12/contrib/llvm/lib/CodeGen/CodeGen.cpp stable/12/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp stable/12/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h stable/12/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp stable/12/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp stable/12/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp stable/12/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp stable/12/contrib/llvm/lib/CodeGen/EdgeBundles.cpp stable/12/contrib/llvm/lib/CodeGen/ExecutionDomainFix.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandReductions.cpp stable/12/contrib/llvm/lib/CodeGen/FEntryInserter.cpp stable/12/contrib/llvm/lib/CodeGen/FaultMaps.cpp stable/12/contrib/llvm/lib/CodeGen/FuncletLayout.cpp stable/12/contrib/llvm/lib/CodeGen/GCMetadata.cpp stable/12/contrib/llvm/lib/CodeGen/GCMetadataPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/GCRootLowering.cpp stable/12/contrib/llvm/lib/CodeGen/GCStrategy.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Combiner.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalMerge.cpp stable/12/contrib/llvm/lib/CodeGen/IfConversion.cpp stable/12/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp stable/12/contrib/llvm/lib/CodeGen/IndirectBrExpandPass.cpp stable/12/contrib/llvm/lib/CodeGen/InlineSpiller.cpp stable/12/contrib/llvm/lib/CodeGen/InterferenceCache.cpp stable/12/contrib/llvm/lib/CodeGen/InterferenceCache.h stable/12/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp stable/12/contrib/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp stable/12/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp stable/12/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp stable/12/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp stable/12/contrib/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/CodeGen/LexicalScopes.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugVariables.h stable/12/contrib/llvm/lib/CodeGen/LiveInterval.cpp stable/12/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp stable/12/contrib/llvm/lib/CodeGen/LiveIntervals.cpp stable/12/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeCalc.h stable/12/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeShrink.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeUtils.h stable/12/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp stable/12/contrib/llvm/lib/CodeGen/LiveStacks.cpp stable/12/contrib/llvm/lib/CodeGen/LiveVariables.cpp stable/12/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp stable/12/contrib/llvm/lib/CodeGen/LoopTraversal.cpp stable/12/contrib/llvm/lib/CodeGen/LowLevelType.cpp stable/12/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp stable/12/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp stable/12/contrib/llvm/lib/CodeGen/MIRPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/MIRPrintingPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCSE.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCombiner.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp stable/12/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp stable/12/contrib/llvm/lib/CodeGen/MachineDominators.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFrameInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunction.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineInstr.cpp stable/12/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp stable/12/contrib/llvm/lib/CodeGen/MachineLICM.cpp stable/12/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOperand.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOutliner.cpp stable/12/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp stable/12/contrib/llvm/lib/CodeGen/MachinePostDominators.cpp stable/12/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp stable/12/contrib/llvm/lib/CodeGen/MachineScheduler.cpp stable/12/contrib/llvm/lib/CodeGen/MachineSink.cpp stable/12/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp stable/12/contrib/llvm/lib/CodeGen/MachineVerifier.cpp stable/12/contrib/llvm/lib/CodeGen/MacroFusion.cpp stable/12/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp stable/12/contrib/llvm/lib/CodeGen/PHIElimination.cpp stable/12/contrib/llvm/lib/CodeGen/PHIEliminationUtils.cpp stable/12/contrib/llvm/lib/CodeGen/PHIEliminationUtils.h stable/12/contrib/llvm/lib/CodeGen/ParallelCG.cpp stable/12/contrib/llvm/lib/CodeGen/PatchableFunction.cpp stable/12/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp stable/12/contrib/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp stable/12/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp stable/12/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp stable/12/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp stable/12/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp stable/12/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp stable/12/contrib/llvm/lib/CodeGen/ReachingDefAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocBase.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocBase.h stable/12/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocFast.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp stable/12/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp stable/12/contrib/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterCoalescer.h stable/12/contrib/llvm/lib/CodeGen/RegisterPressure.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp stable/12/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp stable/12/contrib/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStack.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStackColoring.h stable/12/contrib/llvm/lib/CodeGen/SafeStackLayout.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStackLayout.h stable/12/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp stable/12/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp stable/12/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp stable/12/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/SlotIndexes.cpp stable/12/contrib/llvm/lib/CodeGen/SpillPlacement.cpp stable/12/contrib/llvm/lib/CodeGen/SpillPlacement.h stable/12/contrib/llvm/lib/CodeGen/Spiller.h stable/12/contrib/llvm/lib/CodeGen/SplitKit.cpp stable/12/contrib/llvm/lib/CodeGen/SplitKit.h stable/12/contrib/llvm/lib/CodeGen/StackColoring.cpp stable/12/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/StackMaps.cpp stable/12/contrib/llvm/lib/CodeGen/StackProtector.cpp stable/12/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp stable/12/contrib/llvm/lib/CodeGen/TailDuplication.cpp stable/12/contrib/llvm/lib/CodeGen/TailDuplicator.cpp stable/12/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp stable/12/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp stable/12/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TargetSchedule.cpp stable/12/contrib/llvm/lib/CodeGen/TargetSubtargetInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp stable/12/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp stable/12/contrib/llvm/lib/CodeGen/ValueTypes.cpp stable/12/contrib/llvm/lib/CodeGen/VirtRegMap.cpp stable/12/contrib/llvm/lib/CodeGen/WasmEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CodeViewError.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/Line.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MSFBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MSFCommon.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MSFError.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIADataStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/IPDBSourceFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleList.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/EnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/Hash.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/HashTable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/RawError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBContext.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymDumper.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolBlock.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCustom.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolExe.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolLabel.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/UDTLayout.cpp stable/12/contrib/llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp stable/12/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp stable/12/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h stable/12/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp stable/12/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp stable/12/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp stable/12/contrib/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp stable/12/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp stable/12/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp stable/12/contrib/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_types.h stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h stable/12/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp stable/12/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h stable/12/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Core.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Layer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Legacy.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/NullResolver.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h stable/12/contrib/llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp stable/12/contrib/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h stable/12/contrib/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp stable/12/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp stable/12/contrib/llvm/lib/FuzzMutate/FuzzerCLI.cpp stable/12/contrib/llvm/lib/FuzzMutate/IRMutator.cpp stable/12/contrib/llvm/lib/FuzzMutate/OpDescriptor.cpp stable/12/contrib/llvm/lib/FuzzMutate/Operations.cpp stable/12/contrib/llvm/lib/FuzzMutate/RandomIRBuilder.cpp stable/12/contrib/llvm/lib/IR/AsmWriter.cpp stable/12/contrib/llvm/lib/IR/AttributeImpl.h stable/12/contrib/llvm/lib/IR/Attributes.cpp stable/12/contrib/llvm/lib/IR/AutoUpgrade.cpp stable/12/contrib/llvm/lib/IR/BasicBlock.cpp stable/12/contrib/llvm/lib/IR/Comdat.cpp stable/12/contrib/llvm/lib/IR/ConstantFold.cpp stable/12/contrib/llvm/lib/IR/ConstantFold.h stable/12/contrib/llvm/lib/IR/ConstantRange.cpp stable/12/contrib/llvm/lib/IR/Constants.cpp stable/12/contrib/llvm/lib/IR/ConstantsContext.h stable/12/contrib/llvm/lib/IR/Core.cpp stable/12/contrib/llvm/lib/IR/DIBuilder.cpp stable/12/contrib/llvm/lib/IR/DataLayout.cpp stable/12/contrib/llvm/lib/IR/DebugInfo.cpp stable/12/contrib/llvm/lib/IR/DebugInfoMetadata.cpp stable/12/contrib/llvm/lib/IR/DebugLoc.cpp stable/12/contrib/llvm/lib/IR/DiagnosticHandler.cpp stable/12/contrib/llvm/lib/IR/DiagnosticInfo.cpp stable/12/contrib/llvm/lib/IR/DiagnosticPrinter.cpp stable/12/contrib/llvm/lib/IR/Dominators.cpp stable/12/contrib/llvm/lib/IR/Function.cpp stable/12/contrib/llvm/lib/IR/GVMaterializer.cpp stable/12/contrib/llvm/lib/IR/Globals.cpp stable/12/contrib/llvm/lib/IR/IRBuilder.cpp stable/12/contrib/llvm/lib/IR/IRPrintingPasses.cpp stable/12/contrib/llvm/lib/IR/InlineAsm.cpp stable/12/contrib/llvm/lib/IR/Instruction.cpp stable/12/contrib/llvm/lib/IR/Instructions.cpp stable/12/contrib/llvm/lib/IR/IntrinsicInst.cpp stable/12/contrib/llvm/lib/IR/LLVMContext.cpp stable/12/contrib/llvm/lib/IR/LLVMContextImpl.cpp stable/12/contrib/llvm/lib/IR/LLVMContextImpl.h stable/12/contrib/llvm/lib/IR/LegacyPassManager.cpp stable/12/contrib/llvm/lib/IR/MDBuilder.cpp stable/12/contrib/llvm/lib/IR/Mangler.cpp stable/12/contrib/llvm/lib/IR/Metadata.cpp stable/12/contrib/llvm/lib/IR/MetadataImpl.h stable/12/contrib/llvm/lib/IR/Module.cpp stable/12/contrib/llvm/lib/IR/ModuleSummaryIndex.cpp stable/12/contrib/llvm/lib/IR/Operator.cpp stable/12/contrib/llvm/lib/IR/OptBisect.cpp stable/12/contrib/llvm/lib/IR/Pass.cpp stable/12/contrib/llvm/lib/IR/PassInstrumentation.cpp stable/12/contrib/llvm/lib/IR/PassManager.cpp stable/12/contrib/llvm/lib/IR/PassRegistry.cpp stable/12/contrib/llvm/lib/IR/PassTimingInfo.cpp stable/12/contrib/llvm/lib/IR/ProfileSummary.cpp stable/12/contrib/llvm/lib/IR/SafepointIRVerifier.cpp stable/12/contrib/llvm/lib/IR/Statepoint.cpp stable/12/contrib/llvm/lib/IR/SymbolTableListTraitsImpl.h stable/12/contrib/llvm/lib/IR/Type.cpp stable/12/contrib/llvm/lib/IR/TypeFinder.cpp stable/12/contrib/llvm/lib/IR/Use.cpp stable/12/contrib/llvm/lib/IR/User.cpp stable/12/contrib/llvm/lib/IR/Value.cpp stable/12/contrib/llvm/lib/IR/ValueSymbolTable.cpp stable/12/contrib/llvm/lib/IR/Verifier.cpp stable/12/contrib/llvm/lib/IRReader/IRReader.cpp stable/12/contrib/llvm/lib/LTO/Caching.cpp stable/12/contrib/llvm/lib/LTO/LTO.cpp stable/12/contrib/llvm/lib/LTO/LTOBackend.cpp stable/12/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp stable/12/contrib/llvm/lib/LTO/LTOModule.cpp stable/12/contrib/llvm/lib/LTO/SummaryBasedOptimizations.cpp stable/12/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp stable/12/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp stable/12/contrib/llvm/lib/LineEditor/LineEditor.cpp stable/12/contrib/llvm/lib/Linker/IRMover.cpp stable/12/contrib/llvm/lib/Linker/LinkDiagnosticInfo.h stable/12/contrib/llvm/lib/Linker/LinkModules.cpp stable/12/contrib/llvm/lib/MC/ConstantPools.cpp stable/12/contrib/llvm/lib/MC/ELFObjectWriter.cpp stable/12/contrib/llvm/lib/MC/MCAsmBackend.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfo.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoELF.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp stable/12/contrib/llvm/lib/MC/MCAsmMacro.cpp stable/12/contrib/llvm/lib/MC/MCAsmStreamer.cpp stable/12/contrib/llvm/lib/MC/MCAssembler.cpp stable/12/contrib/llvm/lib/MC/MCCodeEmitter.cpp stable/12/contrib/llvm/lib/MC/MCCodePadder.cpp stable/12/contrib/llvm/lib/MC/MCCodeView.cpp stable/12/contrib/llvm/lib/MC/MCContext.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h stable/12/contrib/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/MCSymbolizer.cpp stable/12/contrib/llvm/lib/MC/MCDwarf.cpp stable/12/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCELFStreamer.cpp stable/12/contrib/llvm/lib/MC/MCExpr.cpp stable/12/contrib/llvm/lib/MC/MCFragment.cpp stable/12/contrib/llvm/lib/MC/MCInst.cpp stable/12/contrib/llvm/lib/MC/MCInstPrinter.cpp stable/12/contrib/llvm/lib/MC/MCInstrAnalysis.cpp stable/12/contrib/llvm/lib/MC/MCInstrDesc.cpp stable/12/contrib/llvm/lib/MC/MCLabel.cpp stable/12/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp stable/12/contrib/llvm/lib/MC/MCMachOStreamer.cpp stable/12/contrib/llvm/lib/MC/MCMachObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCNullStreamer.cpp stable/12/contrib/llvm/lib/MC/MCObjectFileInfo.cpp stable/12/contrib/llvm/lib/MC/MCObjectStreamer.cpp stable/12/contrib/llvm/lib/MC/MCObjectWriter.cpp stable/12/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp stable/12/contrib/llvm/lib/MC/MCParser/AsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmParserExtension.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/WasmAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCRegisterInfo.cpp stable/12/contrib/llvm/lib/MC/MCSchedule.cpp stable/12/contrib/llvm/lib/MC/MCSection.cpp stable/12/contrib/llvm/lib/MC/MCSectionCOFF.cpp stable/12/contrib/llvm/lib/MC/MCSectionELF.cpp stable/12/contrib/llvm/lib/MC/MCSectionMachO.cpp stable/12/contrib/llvm/lib/MC/MCSectionWasm.cpp stable/12/contrib/llvm/lib/MC/MCStreamer.cpp stable/12/contrib/llvm/lib/MC/MCSubtargetInfo.cpp stable/12/contrib/llvm/lib/MC/MCSymbol.cpp stable/12/contrib/llvm/lib/MC/MCSymbolELF.cpp stable/12/contrib/llvm/lib/MC/MCTargetOptions.cpp stable/12/contrib/llvm/lib/MC/MCValue.cpp stable/12/contrib/llvm/lib/MC/MCWasmObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCWasmStreamer.cpp stable/12/contrib/llvm/lib/MC/MCWin64EH.cpp stable/12/contrib/llvm/lib/MC/MCWinCOFFStreamer.cpp stable/12/contrib/llvm/lib/MC/MCWinEH.cpp stable/12/contrib/llvm/lib/MC/MachObjectWriter.cpp stable/12/contrib/llvm/lib/MC/StringTableBuilder.cpp stable/12/contrib/llvm/lib/MC/SubtargetFeature.cpp stable/12/contrib/llvm/lib/MC/WasmObjectWriter.cpp stable/12/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/MCA/Context.cpp stable/12/contrib/llvm/lib/MCA/HWEventListener.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/HardwareUnit.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/LSUnit.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/RetireControlUnit.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/Scheduler.cpp stable/12/contrib/llvm/lib/MCA/InstrBuilder.cpp stable/12/contrib/llvm/lib/MCA/Instruction.cpp stable/12/contrib/llvm/lib/MCA/Pipeline.cpp stable/12/contrib/llvm/lib/MCA/Stages/DispatchStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/EntryStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/ExecuteStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/InstructionTables.cpp stable/12/contrib/llvm/lib/MCA/Stages/RetireStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/Stage.cpp stable/12/contrib/llvm/lib/MCA/Support.cpp stable/12/contrib/llvm/lib/Object/Archive.cpp stable/12/contrib/llvm/lib/Object/ArchiveWriter.cpp stable/12/contrib/llvm/lib/Object/Binary.cpp stable/12/contrib/llvm/lib/Object/COFFImportFile.cpp stable/12/contrib/llvm/lib/Object/COFFModuleDefinition.cpp stable/12/contrib/llvm/lib/Object/COFFObjectFile.cpp stable/12/contrib/llvm/lib/Object/Decompressor.cpp stable/12/contrib/llvm/lib/Object/ELF.cpp stable/12/contrib/llvm/lib/Object/ELFObjectFile.cpp stable/12/contrib/llvm/lib/Object/Error.cpp stable/12/contrib/llvm/lib/Object/IRObjectFile.cpp stable/12/contrib/llvm/lib/Object/IRSymtab.cpp stable/12/contrib/llvm/lib/Object/MachOObjectFile.cpp stable/12/contrib/llvm/lib/Object/MachOUniversal.cpp stable/12/contrib/llvm/lib/Object/ModuleSymbolTable.cpp stable/12/contrib/llvm/lib/Object/Object.cpp stable/12/contrib/llvm/lib/Object/ObjectFile.cpp stable/12/contrib/llvm/lib/Object/RecordStreamer.cpp stable/12/contrib/llvm/lib/Object/RecordStreamer.h stable/12/contrib/llvm/lib/Object/SymbolSize.cpp stable/12/contrib/llvm/lib/Object/SymbolicFile.cpp stable/12/contrib/llvm/lib/Object/WasmObjectFile.cpp stable/12/contrib/llvm/lib/Object/WindowsResource.cpp stable/12/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp stable/12/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp stable/12/contrib/llvm/lib/ObjectYAML/DWARFVisitor.cpp stable/12/contrib/llvm/lib/ObjectYAML/DWARFVisitor.h stable/12/contrib/llvm/lib/ObjectYAML/DWARFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/ObjectYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/YAML.cpp stable/12/contrib/llvm/lib/Option/Arg.cpp stable/12/contrib/llvm/lib/Option/ArgList.cpp stable/12/contrib/llvm/lib/Option/OptTable.cpp stable/12/contrib/llvm/lib/Option/Option.cpp stable/12/contrib/llvm/lib/Passes/PassBuilder.cpp stable/12/contrib/llvm/lib/Passes/PassPlugin.cpp stable/12/contrib/llvm/lib/Passes/PassRegistry.def stable/12/contrib/llvm/lib/Passes/StandardInstrumentations.cpp stable/12/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp stable/12/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp stable/12/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp stable/12/contrib/llvm/lib/ProfileData/GCOV.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProf.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProfReader.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProfWriter.cpp stable/12/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProf.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProfReader.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp stable/12/contrib/llvm/lib/Support/AArch64TargetParser.cpp stable/12/contrib/llvm/lib/Support/AMDGPUMetadata.cpp stable/12/contrib/llvm/lib/Support/APFloat.cpp stable/12/contrib/llvm/lib/Support/APInt.cpp stable/12/contrib/llvm/lib/Support/APSInt.cpp stable/12/contrib/llvm/lib/Support/ARMAttributeParser.cpp stable/12/contrib/llvm/lib/Support/ARMBuildAttrs.cpp stable/12/contrib/llvm/lib/Support/ARMTargetParser.cpp stable/12/contrib/llvm/lib/Support/ARMWinEH.cpp stable/12/contrib/llvm/lib/Support/Allocator.cpp stable/12/contrib/llvm/lib/Support/Atomic.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamError.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamReader.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamRef.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamWriter.cpp stable/12/contrib/llvm/lib/Support/BlockFrequency.cpp stable/12/contrib/llvm/lib/Support/BranchProbability.cpp stable/12/contrib/llvm/lib/Support/BuryPointer.cpp stable/12/contrib/llvm/lib/Support/COM.cpp stable/12/contrib/llvm/lib/Support/CachePruning.cpp stable/12/contrib/llvm/lib/Support/Chrono.cpp stable/12/contrib/llvm/lib/Support/CodeGenCoverage.cpp stable/12/contrib/llvm/lib/Support/CommandLine.cpp stable/12/contrib/llvm/lib/Support/Compression.cpp stable/12/contrib/llvm/lib/Support/ConvertUTF.cpp stable/12/contrib/llvm/lib/Support/ConvertUTFWrapper.cpp stable/12/contrib/llvm/lib/Support/CrashRecoveryContext.cpp stable/12/contrib/llvm/lib/Support/DAGDeltaAlgorithm.cpp stable/12/contrib/llvm/lib/Support/DJB.cpp stable/12/contrib/llvm/lib/Support/DataExtractor.cpp stable/12/contrib/llvm/lib/Support/Debug.cpp stable/12/contrib/llvm/lib/Support/DeltaAlgorithm.cpp stable/12/contrib/llvm/lib/Support/DynamicLibrary.cpp stable/12/contrib/llvm/lib/Support/Errno.cpp stable/12/contrib/llvm/lib/Support/Error.cpp stable/12/contrib/llvm/lib/Support/ErrorHandling.cpp stable/12/contrib/llvm/lib/Support/FileCheck.cpp stable/12/contrib/llvm/lib/Support/FileOutputBuffer.cpp stable/12/contrib/llvm/lib/Support/FileUtilities.cpp stable/12/contrib/llvm/lib/Support/FoldingSet.cpp stable/12/contrib/llvm/lib/Support/FormatVariadic.cpp stable/12/contrib/llvm/lib/Support/FormattedStream.cpp stable/12/contrib/llvm/lib/Support/GlobPattern.cpp stable/12/contrib/llvm/lib/Support/GraphWriter.cpp stable/12/contrib/llvm/lib/Support/Hashing.cpp stable/12/contrib/llvm/lib/Support/Host.cpp stable/12/contrib/llvm/lib/Support/InitLLVM.cpp stable/12/contrib/llvm/lib/Support/IntEqClasses.cpp stable/12/contrib/llvm/lib/Support/IntervalMap.cpp stable/12/contrib/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp stable/12/contrib/llvm/lib/Support/JSON.cpp stable/12/contrib/llvm/lib/Support/JamCRC.cpp stable/12/contrib/llvm/lib/Support/KnownBits.cpp stable/12/contrib/llvm/lib/Support/LEB128.cpp stable/12/contrib/llvm/lib/Support/LineIterator.cpp stable/12/contrib/llvm/lib/Support/LockFileManager.cpp stable/12/contrib/llvm/lib/Support/LowLevelType.cpp stable/12/contrib/llvm/lib/Support/ManagedStatic.cpp stable/12/contrib/llvm/lib/Support/MathExtras.cpp stable/12/contrib/llvm/lib/Support/Memory.cpp stable/12/contrib/llvm/lib/Support/MemoryBuffer.cpp stable/12/contrib/llvm/lib/Support/Mutex.cpp stable/12/contrib/llvm/lib/Support/NativeFormatting.cpp stable/12/contrib/llvm/lib/Support/Options.cpp stable/12/contrib/llvm/lib/Support/Parallel.cpp stable/12/contrib/llvm/lib/Support/Path.cpp stable/12/contrib/llvm/lib/Support/PluginLoader.cpp stable/12/contrib/llvm/lib/Support/PrettyStackTrace.cpp stable/12/contrib/llvm/lib/Support/Process.cpp stable/12/contrib/llvm/lib/Support/Program.cpp stable/12/contrib/llvm/lib/Support/RWMutex.cpp stable/12/contrib/llvm/lib/Support/RandomNumberGenerator.cpp stable/12/contrib/llvm/lib/Support/Regex.cpp stable/12/contrib/llvm/lib/Support/SHA1.cpp stable/12/contrib/llvm/lib/Support/ScaledNumber.cpp stable/12/contrib/llvm/lib/Support/Signals.cpp stable/12/contrib/llvm/lib/Support/SmallPtrSet.cpp stable/12/contrib/llvm/lib/Support/SmallVector.cpp stable/12/contrib/llvm/lib/Support/SourceMgr.cpp stable/12/contrib/llvm/lib/Support/SpecialCaseList.cpp stable/12/contrib/llvm/lib/Support/Statistic.cpp stable/12/contrib/llvm/lib/Support/StringExtras.cpp stable/12/contrib/llvm/lib/Support/StringMap.cpp stable/12/contrib/llvm/lib/Support/StringPool.cpp stable/12/contrib/llvm/lib/Support/StringRef.cpp stable/12/contrib/llvm/lib/Support/StringSaver.cpp stable/12/contrib/llvm/lib/Support/SymbolRemappingReader.cpp stable/12/contrib/llvm/lib/Support/SystemUtils.cpp stable/12/contrib/llvm/lib/Support/TarWriter.cpp stable/12/contrib/llvm/lib/Support/TargetParser.cpp stable/12/contrib/llvm/lib/Support/TargetRegistry.cpp stable/12/contrib/llvm/lib/Support/ThreadLocal.cpp stable/12/contrib/llvm/lib/Support/ThreadPool.cpp stable/12/contrib/llvm/lib/Support/Threading.cpp stable/12/contrib/llvm/lib/Support/Timer.cpp stable/12/contrib/llvm/lib/Support/ToolOutputFile.cpp stable/12/contrib/llvm/lib/Support/TrigramIndex.cpp stable/12/contrib/llvm/lib/Support/Triple.cpp stable/12/contrib/llvm/lib/Support/Twine.cpp stable/12/contrib/llvm/lib/Support/Unicode.cpp stable/12/contrib/llvm/lib/Support/Unix/COM.inc stable/12/contrib/llvm/lib/Support/Unix/DynamicLibrary.inc stable/12/contrib/llvm/lib/Support/Unix/Host.inc stable/12/contrib/llvm/lib/Support/Unix/Memory.inc stable/12/contrib/llvm/lib/Support/Unix/Mutex.inc stable/12/contrib/llvm/lib/Support/Unix/Path.inc stable/12/contrib/llvm/lib/Support/Unix/Process.inc stable/12/contrib/llvm/lib/Support/Unix/Program.inc stable/12/contrib/llvm/lib/Support/Unix/RWMutex.inc stable/12/contrib/llvm/lib/Support/Unix/Signals.inc stable/12/contrib/llvm/lib/Support/Unix/ThreadLocal.inc stable/12/contrib/llvm/lib/Support/Unix/Threading.inc stable/12/contrib/llvm/lib/Support/Unix/Unix.h stable/12/contrib/llvm/lib/Support/Unix/Watchdog.inc stable/12/contrib/llvm/lib/Support/Valgrind.cpp stable/12/contrib/llvm/lib/Support/VersionTuple.cpp stable/12/contrib/llvm/lib/Support/VirtualFileSystem.cpp stable/12/contrib/llvm/lib/Support/Watchdog.cpp stable/12/contrib/llvm/lib/Support/Windows/COM.inc stable/12/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc stable/12/contrib/llvm/lib/Support/Windows/Host.inc stable/12/contrib/llvm/lib/Support/Windows/Memory.inc stable/12/contrib/llvm/lib/Support/Windows/Mutex.inc stable/12/contrib/llvm/lib/Support/Windows/Path.inc stable/12/contrib/llvm/lib/Support/Windows/Process.inc stable/12/contrib/llvm/lib/Support/Windows/Program.inc stable/12/contrib/llvm/lib/Support/Windows/RWMutex.inc stable/12/contrib/llvm/lib/Support/Windows/Signals.inc stable/12/contrib/llvm/lib/Support/Windows/ThreadLocal.inc stable/12/contrib/llvm/lib/Support/Windows/Threading.inc stable/12/contrib/llvm/lib/Support/Windows/Watchdog.inc stable/12/contrib/llvm/lib/Support/Windows/WindowsSupport.h stable/12/contrib/llvm/lib/Support/WithColor.cpp stable/12/contrib/llvm/lib/Support/YAMLParser.cpp stable/12/contrib/llvm/lib/Support/YAMLTraits.cpp stable/12/contrib/llvm/lib/Support/circular_raw_ostream.cpp stable/12/contrib/llvm/lib/Support/raw_os_ostream.cpp stable/12/contrib/llvm/lib/Support/raw_ostream.cpp stable/12/contrib/llvm/lib/TableGen/Error.cpp stable/12/contrib/llvm/lib/TableGen/JSONBackend.cpp stable/12/contrib/llvm/lib/TableGen/Main.cpp stable/12/contrib/llvm/lib/TableGen/Record.cpp stable/12/contrib/llvm/lib/TableGen/SetTheory.cpp stable/12/contrib/llvm/lib/TableGen/StringMatcher.cpp stable/12/contrib/llvm/lib/TableGen/TGLexer.cpp stable/12/contrib/llvm/lib/TableGen/TGLexer.h stable/12/contrib/llvm/lib/TableGen/TGParser.cpp stable/12/contrib/llvm/lib/TableGen/TGParser.h stable/12/contrib/llvm/lib/TableGen/TableGenBackend.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64PfmCounters.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterBanks.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorDetails.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedKryo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedKryoDetails.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedPredicates.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64Schedule.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td stable/12/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFeatures.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUGISel.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDKernelCodeT.h stable/12/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/CaymanInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h stable/12/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h stable/12/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.h stable/12/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td stable/12/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.h stable/12/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600Defines.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrFormats.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600Packetizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600Processors.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600Schedule.td stable/12/contrib/llvm/lib/Target/AMDGPU/R700Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIDefines.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixVGPRCopies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIModeRegister.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIProgramInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/SISchedule.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h stable/12/contrib/llvm/lib/Target/AMDGPU/VIInstrFormats.td stable/12/contrib/llvm/lib/Target/AMDGPU/VIInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td stable/12/contrib/llvm/lib/Target/ARC/ARC.h stable/12/contrib/llvm/lib/Target/ARC/ARC.td stable/12/contrib/llvm/lib/Target/ARC/ARCAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCBranchFinalize.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCCallingConv.td stable/12/contrib/llvm/lib/Target/ARC/ARCExpandPseudos.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCFrameLowering.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCFrameLowering.h stable/12/contrib/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCISelLowering.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCISelLowering.h stable/12/contrib/llvm/lib/Target/ARC/ARCInstrFormats.td stable/12/contrib/llvm/lib/Target/ARC/ARCInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCInstrInfo.h stable/12/contrib/llvm/lib/Target/ARC/ARCInstrInfo.td stable/12/contrib/llvm/lib/Target/ARC/ARCMCInstLower.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCMCInstLower.h stable/12/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.td stable/12/contrib/llvm/lib/Target/ARC/ARCSubtarget.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCSubtarget.h stable/12/contrib/llvm/lib/Target/ARC/ARCTargetMachine.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCTargetMachine.h stable/12/contrib/llvm/lib/Target/ARC/ARCTargetStreamer.h stable/12/contrib/llvm/lib/Target/ARC/ARCTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInfo.h stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.h stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.h stable/12/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/A15SDOptimizer.cpp stable/12/contrib/llvm/lib/Target/ARM/ARM.h stable/12/contrib/llvm/lib/Target/ARM/ARM.td stable/12/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h stable/12/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMCallLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMCallingConv.h stable/12/contrib/llvm/lib/Target/ARM/ARMCallingConv.td stable/12/contrib/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h stable/12/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFeatures.h stable/12/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.h stable/12/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMISelLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMacroFusion.h stable/12/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMParallelDSP.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMPerfectShuffle.h stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterBanks.td stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td stable/12/contrib/llvm/lib/Target/ARM/ARMSchedule.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA57.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA57WriteRes.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA8.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleV6.td stable/12/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMSubtarget.h stable/12/contrib/llvm/lib/Target/ARM/ARMSystemRegister.td stable/12/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h stable/12/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.h stable/12/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp stable/12/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp stable/12/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h stable/12/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp stable/12/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVR.h stable/12/contrib/llvm/lib/Target/AVR/AVR.td stable/12/contrib/llvm/lib/Target/AVR/AVRAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRCallingConv.td stable/12/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRFrameLowering.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRFrameLowering.h stable/12/contrib/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRISelLowering.h stable/12/contrib/llvm/lib/Target/AVR/AVRInstrFormats.td stable/12/contrib/llvm/lib/Target/AVR/AVRInstrInfo.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRInstrInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td stable/12/contrib/llvm/lib/Target/AVR/AVRMCInstLower.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRMCInstLower.h stable/12/contrib/llvm/lib/Target/AVR/AVRMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.td stable/12/contrib/llvm/lib/Target/AVR/AVRRelaxMemOperations.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRSubtarget.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRSubtarget.h stable/12/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRTargetMachine.h stable/12/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.h stable/12/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp stable/12/contrib/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRFixupKinds.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.h stable/12/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp stable/12/contrib/llvm/lib/Target/BPF/BPF.h stable/12/contrib/llvm/lib/Target/BPF/BPF.td stable/12/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFCallingConv.td stable/12/contrib/llvm/lib/Target/BPF/BPFFrameLowering.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFFrameLowering.h stable/12/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFISelLowering.h stable/12/contrib/llvm/lib/Target/BPF/BPFInstrFormats.td stable/12/contrib/llvm/lib/Target/BPF/BPFInstrInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFInstrInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td stable/12/contrib/llvm/lib/Target/BPF/BPFMCInstLower.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFMCInstLower.h stable/12/contrib/llvm/lib/Target/BPF/BPFMIChecking.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFMIPeephole.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.td stable/12/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFSubtarget.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFSubtarget.h stable/12/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFTargetMachine.h stable/12/contrib/llvm/lib/Target/BPF/BTF.def stable/12/contrib/llvm/lib/Target/BPF/BTF.h stable/12/contrib/llvm/lib/Target/BPF/BTFDebug.cpp stable/12/contrib/llvm/lib/Target/BPF/BTFDebug.h stable/12/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h stable/12/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp stable/12/contrib/llvm/lib/Target/Hexagon/BitTracker.cpp stable/12/contrib/llvm/lib/Target/Hexagon/BitTracker.h stable/12/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/Hexagon.h stable/12/contrib/llvm/lib/Target/Hexagon/Hexagon.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBranchRelaxation.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCallingConv.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepOperands.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIICHVX.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIICScalar.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV60.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV65.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV62.gen.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonOperands.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPatternsV65.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV55.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV60.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV62.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV66.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVExtract.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonFixupKinds.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFCopy.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFGraph.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFRegisters.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFRegisters.h stable/12/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp stable/12/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp stable/12/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h stable/12/contrib/llvm/lib/Target/Lanai/Lanai.h stable/12/contrib/llvm/lib/Target/Lanai/Lanai.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiAluCode.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiCallingConv.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrFormats.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiSchedule.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp stable/12/contrib/llvm/lib/Target/MSP430/Disassembler/MSP430Disassembler.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430CallingConv.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrFormats.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h stable/12/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp stable/12/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips.h stable/12/contrib/llvm/lib/Target/Mips/Mips.td stable/12/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.h stable/12/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.h stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.h stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.h stable/12/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.h stable/12/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h stable/12/contrib/llvm/lib/Target/Mips/MipsBranchExpansion.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCCState.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCCState.h stable/12/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCallLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsCallingConv.td stable/12/contrib/llvm/lib/Target/Mips/MipsCondMov.td stable/12/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsEVAInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsEVAInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsExpandPseudo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsISelLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h stable/12/contrib/llvm/lib/Target/Mips/MipsMSAInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsMTInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h stable/12/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsOptionRecord.h stable/12/contrib/llvm/lib/Target/Mips/MipsOs16.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterBanks.td stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsSchedule.td stable/12/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td stable/12/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td stable/12/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSubtarget.h stable/12/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h stable/12/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h stable/12/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXBaseInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h stable/12/contrib/llvm/lib/Target/NVPTX/ManagedStringPool.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTX.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTX.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrFormats.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.h stable/12/contrib/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp stable/12/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp stable/12/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h stable/12/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td stable/12/contrib/llvm/lib/Target/PowerPC/PPC.h stable/12/contrib/llvm/lib/Target/PowerPC/PPC.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCCState.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCCState.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrBuilder.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrHTM.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrQPX.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrSPE.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCPerfectShuffle.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCPfmCounters.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSchedule440.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleA2.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE5500.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG3.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG5.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP8.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetStreamer.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp stable/12/contrib/llvm/lib/Target/PowerPC/README_P9.txt stable/12/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp stable/12/contrib/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h stable/12/contrib/llvm/lib/Target/RISCV/RISCV.h stable/12/contrib/llvm/lib/Target/RISCV/RISCV.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVSystemOperands.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h stable/12/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.h stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVMatInt.cpp stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVMatInt.h stable/12/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp stable/12/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp stable/12/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp stable/12/contrib/llvm/lib/Target/Sparc/LeonFeatures.td stable/12/contrib/llvm/lib/Target/Sparc/LeonPasses.cpp stable/12/contrib/llvm/lib/Target/Sparc/LeonPasses.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h stable/12/contrib/llvm/lib/Target/Sparc/Sparc.h stable/12/contrib/llvm/lib/Target/Sparc/Sparc.td stable/12/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcCallingConv.td stable/12/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.h stable/12/contrib/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h stable/12/contrib/llvm/lib/Target/Sparc/SparcInstr64Bit.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrFormats.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrVIS.td stable/12/contrib/llvm/lib/Target/Sparc/SparcMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.td stable/12/contrib/llvm/lib/Target/Sparc/SparcSchedule.td stable/12/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp stable/12/contrib/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCFixups.h stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZ.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZ.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrDFP.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrHFP.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZOperands.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZPatterns.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZProcessors.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTDC.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp stable/12/contrib/llvm/lib/Target/Target.cpp stable/12/contrib/llvm/lib/Target/TargetIntrinsicInfo.cpp stable/12/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp stable/12/contrib/llvm/lib/Target/TargetMachine.cpp stable/12/contrib/llvm/lib/Target/TargetMachineC.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/README.txt stable/12/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyReplacePhysRegs.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.h stable/12/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h stable/12/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp stable/12/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp stable/12/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp stable/12/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp stable/12/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h stable/12/contrib/llvm/lib/Target/X86/X86.h stable/12/contrib/llvm/lib/Target/X86/X86.td stable/12/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/X86AsmPrinter.h stable/12/contrib/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallLowering.h stable/12/contrib/llvm/lib/Target/X86/X86CallingConv.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallingConv.h stable/12/contrib/llvm/lib/Target/X86/X86CallingConv.td stable/12/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp stable/12/contrib/llvm/lib/Target/X86/X86CondBrFolding.cpp stable/12/contrib/llvm/lib/Target/X86/X86DiscriminateMemOps.cpp stable/12/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp stable/12/contrib/llvm/lib/Target/X86/X86EvexToVex.cpp stable/12/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp stable/12/contrib/llvm/lib/Target/X86/X86FastISel.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupSetCC.cpp stable/12/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp stable/12/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86FrameLowering.h stable/12/contrib/llvm/lib/Target/X86/X86GenRegisterBankInfo.def stable/12/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86ISelLowering.h stable/12/contrib/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp stable/12/contrib/llvm/lib/Target/X86/X86InsertPrefetch.cpp stable/12/contrib/llvm/lib/Target/X86/X86Instr3DNow.td stable/12/contrib/llvm/lib/Target/X86/X86InstrAVX512.td stable/12/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td stable/12/contrib/llvm/lib/Target/X86/X86InstrBuilder.h stable/12/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td stable/12/contrib/llvm/lib/Target/X86/X86InstrCompiler.td stable/12/contrib/llvm/lib/Target/X86/X86InstrControl.td stable/12/contrib/llvm/lib/Target/X86/X86InstrExtension.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFMA.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.cpp stable/12/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.h stable/12/contrib/llvm/lib/Target/X86/X86InstrFPStack.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFoldTables.cpp stable/12/contrib/llvm/lib/Target/X86/X86InstrFoldTables.h stable/12/contrib/llvm/lib/Target/X86/X86InstrFormats.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.h stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.td stable/12/contrib/llvm/lib/Target/X86/X86InstrMMX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrMPX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSGX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSSE.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSVM.td stable/12/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSystem.td stable/12/contrib/llvm/lib/Target/X86/X86InstrTSX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrVMX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td stable/12/contrib/llvm/lib/Target/X86/X86InstrXOP.td stable/12/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp stable/12/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp stable/12/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h stable/12/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86LegalizerInfo.h stable/12/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp stable/12/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp stable/12/contrib/llvm/lib/Target/X86/X86MacroFusion.h stable/12/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp stable/12/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp stable/12/contrib/llvm/lib/Target/X86/X86PfmCounters.td stable/12/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.h stable/12/contrib/llvm/lib/Target/X86/X86RegisterBanks.td stable/12/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86RegisterInfo.h stable/12/contrib/llvm/lib/Target/X86/X86RegisterInfo.td stable/12/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp stable/12/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td stable/12/contrib/llvm/lib/Target/X86/X86SchedHaswell.td stable/12/contrib/llvm/lib/Target/X86/X86SchedPredicates.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td stable/12/contrib/llvm/lib/Target/X86/X86Schedule.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleBdVer2.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td stable/12/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp stable/12/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h stable/12/contrib/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp stable/12/contrib/llvm/lib/Target/X86/X86Subtarget.cpp stable/12/contrib/llvm/lib/Target/X86/X86Subtarget.h stable/12/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetMachine.h stable/12/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h stable/12/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h stable/12/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp stable/12/contrib/llvm/lib/Target/X86/X86WinAllocaExpander.cpp stable/12/contrib/llvm/lib/Target/X86/X86WinEHState.cpp stable/12/contrib/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.h stable/12/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCore.h stable/12/contrib/llvm/lib/Target/XCore/XCore.td stable/12/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreCallingConv.td stable/12/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.h stable/12/contrib/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrFormats.td stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td stable/12/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.h stable/12/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.td stable/12/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreSubtarget.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetStreamer.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h stable/12/contrib/llvm/lib/Testing/Support/Error.cpp stable/12/contrib/llvm/lib/TextAPI/ELF/ELFStub.cpp stable/12/contrib/llvm/lib/TextAPI/ELF/TBEHandler.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-lib/Options.td stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombineInternal.h stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroCleanup.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroEarly.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroInstr.h stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroInternal.h stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp stable/12/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp stable/12/contrib/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp stable/12/contrib/llvm/lib/Transforms/IPO/BlockExtractor.cpp stable/12/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp stable/12/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp stable/12/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalSplit.cpp stable/12/contrib/llvm/lib/Transforms/IPO/HotColdSplitting.cpp stable/12/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/IPO.cpp stable/12/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp stable/12/contrib/llvm/lib/Transforms/IPO/Inliner.cpp stable/12/contrib/llvm/lib/Transforms/IPO/Internalize.cpp stable/12/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp stable/12/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp stable/12/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SCCP.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp stable/12/contrib/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp stable/12/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp stable/12/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h stable/12/contrib/llvm/lib/Transforms/Instrumentation/CGProfile.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/MaximumSpanningTree.h stable/12/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/BlotMapVector.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/PtrState.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/PtrState.h stable/12/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Float2Int.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVN.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/IVUsersPrinter.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LICM.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopPassManager.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/NaryReassociate.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SROA.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Sink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp stable/12/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp stable/12/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp stable/12/contrib/llvm/lib/Transforms/Utils/EscapeEnumerator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/GlobalStatus.cpp stable/12/contrib/llvm/lib/Transforms/Utils/GuardUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp stable/12/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp stable/12/contrib/llvm/lib/Transforms/Utils/InstructionNamer.cpp stable/12/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Local.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopVersioning.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp stable/12/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/NameAnonGlobals.cpp stable/12/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp stable/12/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SanitizerStats.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp stable/12/contrib/llvm/lib/Transforms/Utils/StripGCRelocates.cpp stable/12/contrib/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp stable/12/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Utils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/VNCoercion.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlan.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanLoopInfo.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.h stable/12/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp stable/12/contrib/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp stable/12/contrib/llvm/lib/XRay/BlockIndexer.cpp stable/12/contrib/llvm/lib/XRay/BlockPrinter.cpp stable/12/contrib/llvm/lib/XRay/BlockVerifier.cpp stable/12/contrib/llvm/lib/XRay/FDRRecordProducer.cpp stable/12/contrib/llvm/lib/XRay/FDRRecords.cpp stable/12/contrib/llvm/lib/XRay/FDRTraceExpander.cpp stable/12/contrib/llvm/lib/XRay/FDRTraceWriter.cpp stable/12/contrib/llvm/lib/XRay/FileHeaderReader.cpp stable/12/contrib/llvm/lib/XRay/InstrumentationMap.cpp stable/12/contrib/llvm/lib/XRay/LogBuilderConsumer.cpp stable/12/contrib/llvm/lib/XRay/Profile.cpp stable/12/contrib/llvm/lib/XRay/RecordInitializer.cpp stable/12/contrib/llvm/lib/XRay/RecordPrinter.cpp stable/12/contrib/llvm/lib/XRay/Trace.cpp stable/12/contrib/llvm/tools/bugpoint/BugDriver.cpp stable/12/contrib/llvm/tools/bugpoint/BugDriver.h stable/12/contrib/llvm/tools/bugpoint/CrashDebugger.cpp stable/12/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp stable/12/contrib/llvm/tools/bugpoint/ExtractFunction.cpp stable/12/contrib/llvm/tools/bugpoint/FindBugs.cpp stable/12/contrib/llvm/tools/bugpoint/ListReducer.h stable/12/contrib/llvm/tools/bugpoint/Miscompilation.cpp stable/12/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp stable/12/contrib/llvm/tools/bugpoint/ToolRunner.cpp stable/12/contrib/llvm/tools/bugpoint/ToolRunner.h stable/12/contrib/llvm/tools/bugpoint/bugpoint.cpp stable/12/contrib/llvm/tools/clang/FREEBSD-Xlist stable/12/contrib/llvm/tools/clang/LICENSE.TXT stable/12/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h stable/12/contrib/llvm/tools/clang/include/clang-c/CXCompilationDatabase.h stable/12/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h stable/12/contrib/llvm/tools/clang/include/clang-c/CXString.h stable/12/contrib/llvm/tools/clang/include/clang-c/Documentation.h stable/12/contrib/llvm/tools/clang/include/clang-c/Index.h stable/12/contrib/llvm/tools/clang/include/clang-c/Platform.h stable/12/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h stable/12/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMTActions.h stable/12/contrib/llvm/tools/clang/include/clang/ARCMigrate/FileRemapper.h stable/12/contrib/llvm/tools/clang/include/clang/AST/APValue.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AST.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTContextAllocate.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDumperUtils.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTFwd.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporterLookupTable.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTLambda.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTStructuralEquivalence.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Attr.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AttrVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Availability.h stable/12/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h stable/12/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def stable/12/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Comment.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentBriefParser.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ComparisonCategories.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Decl.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclAccessPair.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Expr.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExternalASTMerger.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h stable/12/contrib/llvm/tools/clang/include/clang/AST/FormatString.h stable/12/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h stable/12/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h stable/12/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/LocInfoType.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Mangle.h stable/12/contrib/llvm/tools/clang/include/clang/AST/MangleNumberingContext.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NonTrivialTypeVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OSLog.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def stable/12/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ParentMap.h stable/12/contrib/llvm/tools/clang/include/clang/AST/PrettyDeclStackTrace.h stable/12/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h stable/12/contrib/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Stmt.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtGraphTraits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateArgumentVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TextNodeDumper.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Type.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeLocNodes.def stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeLocVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeOrdering.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h stable/12/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Diagnostics.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ReachableCode.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CFGStmtMap.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CodeInjector.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/ConstructionContext.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowValues.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/SelectorExtras.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/ABI.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AddressSpaces.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Attr.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/AttrKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AttrSubjectMatchRules.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/BitmaskEnum.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsLe64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsMips.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsXCore.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/CapturedStmt.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/CharInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/CommentOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DebugInfoOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAST.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysis.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticComment.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTU.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDocs.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriver.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontend.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLex.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParse.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoring.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoringKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSema.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerialization.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/ExpressionTraits.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Features.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileSystemOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FixedPoint.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Lambda.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/MSP430Target.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/MacroBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Module.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensionTypes.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLImageTypes.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OperatorPrecedence.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PragmaKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PrettyStackTrace.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Stack.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetCXXABI.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TemplateKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Version.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Visibility.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/XRayInstr.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/XRayLists.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_fp16.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_neon_incl.td stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitFuture.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/SwiftCallingConv.h stable/12/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTUDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTranslationUnit.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Action.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/ClangOptionDocs.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/DarwinSDKInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Distro.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Driver.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Job.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Options.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Options.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/Phases.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Tool.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Types.def stable/12/contrib/llvm/tools/clang/include/clang/Driver/Types.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Util.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/XRayArgs.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/Commit.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/EditedSource.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/EditsReceiver.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/FileOffset.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/Rewriters.h stable/12/contrib/llvm/tools/clang/include/clang/Format/Format.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LayoutOverrideSource.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/MigratorOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOutputOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticReader.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnostics.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/FrontendTool/Utils.h stable/12/contrib/llvm/tools/clang/include/clang/Index/CodegenNameGenerator.h stable/12/contrib/llvm/tools/clang/include/clang/Index/CommentToXML.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h stable/12/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderMapTypes.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PPConditionalDirectiveRecord.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ScratchBuffer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Token.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/LoopHint.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/Parser.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/DeltaTree.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/HTMLRewrite.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteBuffer.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteRope.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/Rewriter.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/TokenRewriter.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/ASTConsumers.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FixItRewriter.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/Rewriters.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CXXFieldCollector.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CleanupInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Designator.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Overload.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ParsedAttr.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Scope.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Sema.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaFixItUtils.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaLambda.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Template.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/TemplateInstCallback.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Weak.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/Module.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ModuleFileExtension.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/PCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/SerializationDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiff.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiffInternal.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/AllTUsExecution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Core/Diagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Core/Lookup.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/FileMatchTrie.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/FixIt.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/HeaderIncludes.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/IncludeStyle.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/AtomicChange.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/Extract.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/RenamingAction.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/RefactoringCallbacks.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ReplacementsYaml.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMTActions.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/Internals.h stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransARCAssign.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCCalls.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.h stable/12/contrib/llvm/tools/clang/lib/AST/APValue.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTImporterLookupTable.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTTypeTraits.cpp stable/12/contrib/llvm/tools/clang/lib/AST/AttrImpl.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CXXABI.h stable/12/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Comment.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentBriefParser.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentCommandTraits.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentParser.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ComparisonCategories.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Decl.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Expr.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp stable/12/contrib/llvm/tools/clang/lib/AST/FormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/InheritViz.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Linkage.h stable/12/contrib/llvm/tools/clang/lib/AST/Mangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp stable/12/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp stable/12/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp stable/12/contrib/llvm/tools/clang/lib/AST/PrintfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ScanfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Stmt.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtViz.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TextNodeDumper.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Type.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CodeInjector.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ConstructionContext.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/Dominators.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ObjCNoReturn.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/PostOrderCFGView.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/CharInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/CodeGenOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/DiagnosticOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FixedPoint.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Module.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/OperatorPrecedence.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Sanitizers.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.h stable/12/contrib/llvm/tools/clang/lib/Basic/TokenKinds.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Version.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/XRayInstr.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/XRayLists.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/Address.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGGPUBuiltin.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ConstantInitBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/EHScopeStack.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/SwiftCallingConv.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.h stable/12/contrib/llvm/tools/clang/lib/CrossTU/CrossTranslationUnit.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Action.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/DarwinSDKInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Distro.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Driver.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/DriverOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/InputInfo.h stable/12/contrib/llvm/tools/clang/lib/Driver/Job.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Phases.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Tool.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Lanai.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.h stable/12/contrib/llvm/tools/clang/lib/Driver/Types.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Edit/Commit.cpp stable/12/contrib/llvm/tools/clang/lib/Edit/EditedSource.cpp stable/12/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp stable/12/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.cpp stable/12/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.h stable/12/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp stable/12/contrib/llvm/tools/clang/lib/Format/BreakableToken.h stable/12/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.h stable/12/contrib/llvm/tools/clang/lib/Format/Encoding.h stable/12/contrib/llvm/tools/clang/lib/Format/Format.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatInternal.h stable/12/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatToken.h stable/12/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h stable/12/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.h stable/12/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.cpp stable/12/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.h stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.h stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h stable/12/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.h stable/12/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp stable/12/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ChainedDiagnosticConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DependencyGraph.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendTiming.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/LangStandards.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/LayoutOverrideSource.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FixItRewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/HTMLPrint.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteMacros.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteTest.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticReader.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.h stable/12/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_builtin_vars.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_cmath.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_complex_builtins.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_device_functions.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_intrinsics.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_libdevice_declares.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_math_forward_declares.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h stable/12/contrib/llvm/tools/clang/lib/Headers/__stddef_max_align_t.h stable/12/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_aes.h stable/12/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_pclmul.h stable/12/contrib/llvm/tools/clang/lib/Headers/adxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/altivec.h stable/12/contrib/llvm/tools/clang/lib/Headers/ammintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/arm64intr.h stable/12/contrib/llvm/tools/clang/lib/Headers/arm_acle.h stable/12/contrib/llvm/tools/clang/lib/Headers/armintr.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512cdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512erintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512ifmaintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512ifmavlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512pfintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmiintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmivlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlcdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/bmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/cetintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/cldemoteintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/clflushoptintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/clzerointrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/cpuid.h stable/12/contrib/llvm/tools/clang/lib/Headers/emmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/f16cintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/float.h stable/12/contrib/llvm/tools/clang/lib/Headers/fma4intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/fmaintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/fxsrintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/htmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/htmxlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/immintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/inttypes.h stable/12/contrib/llvm/tools/clang/lib/Headers/invpcidintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/iso646.h stable/12/contrib/llvm/tools/clang/lib/Headers/limits.h stable/12/contrib/llvm/tools/clang/lib/Headers/lwpintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/lzcntintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/mm3dnow.h stable/12/contrib/llvm/tools/clang/lib/Headers/mm_malloc.h stable/12/contrib/llvm/tools/clang/lib/Headers/mmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/module.modulemap stable/12/contrib/llvm/tools/clang/lib/Headers/movdirintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/msa.h stable/12/contrib/llvm/tools/clang/lib/Headers/mwaitxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/nmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/opencl-c.h stable/12/contrib/llvm/tools/clang/lib/Headers/pconfigintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/pkuintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/prfchwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/ptwriteintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/rdseedintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/rtmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/s390intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/sgxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/shaintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/smmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdalign.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdarg.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdatomic.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdbool.h stable/12/contrib/llvm/tools/clang/lib/Headers/stddef.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdint.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdnoreturn.h stable/12/contrib/llvm/tools/clang/lib/Headers/tbmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/tgmath.h stable/12/contrib/llvm/tools/clang/lib/Headers/tmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/unwind.h stable/12/contrib/llvm/tools/clang/lib/Headers/vadefs.h stable/12/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/varargs.h stable/12/contrib/llvm/tools/clang/lib/Headers/vecintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/waitpkgintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/wbnoinvdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/wmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/x86intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xopintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsavecintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsaveintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsaveoptintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsavesintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xtestintrin.h stable/12/contrib/llvm/tools/clang/lib/Index/CodegenNameGenerator.cpp stable/12/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingContext.h stable/12/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h stable/12/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPCaching.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPCallbacks.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPConditionalDirectiveRecord.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/UnicodeCharSets.h stable/12/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/Parser.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/CoroutineStmtBuilder.h stable/12/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/ParsedAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/Scope.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/Sema.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h stable/12/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.h stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/Module.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ModuleFileExtension.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h stable/12/contrib/llvm/tools/clang/lib/Serialization/PCHContainerOperations.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIFunctionClassifier.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPITypes.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/APSIntType.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BlockCounter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/FunctionSummary.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SubEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h stable/12/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/AllTUsExecution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Diagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/FixIt.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Inclusions/IncludeStyle.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.h stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/RefactoringCallbacks.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp stable/12/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1gen_reproducer_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/driver.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangASTNodesEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangOptionDocEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm/tools/llc/llc.cpp stable/12/contrib/llvm/tools/lld/CMakeLists.txt stable/12/contrib/llvm/tools/lld/COFF/CMakeLists.txt stable/12/contrib/llvm/tools/lld/COFF/Chunks.cpp stable/12/contrib/llvm/tools/lld/COFF/Chunks.h stable/12/contrib/llvm/tools/lld/COFF/Config.h stable/12/contrib/llvm/tools/lld/COFF/DLL.cpp stable/12/contrib/llvm/tools/lld/COFF/DLL.h stable/12/contrib/llvm/tools/lld/COFF/Driver.cpp stable/12/contrib/llvm/tools/lld/COFF/Driver.h stable/12/contrib/llvm/tools/lld/COFF/DriverUtils.cpp stable/12/contrib/llvm/tools/lld/COFF/ICF.cpp stable/12/contrib/llvm/tools/lld/COFF/ICF.h stable/12/contrib/llvm/tools/lld/COFF/InputFiles.cpp stable/12/contrib/llvm/tools/lld/COFF/InputFiles.h stable/12/contrib/llvm/tools/lld/COFF/LTO.cpp stable/12/contrib/llvm/tools/lld/COFF/LTO.h stable/12/contrib/llvm/tools/lld/COFF/MapFile.cpp stable/12/contrib/llvm/tools/lld/COFF/MapFile.h stable/12/contrib/llvm/tools/lld/COFF/MarkLive.cpp stable/12/contrib/llvm/tools/lld/COFF/MarkLive.h stable/12/contrib/llvm/tools/lld/COFF/MinGW.cpp stable/12/contrib/llvm/tools/lld/COFF/MinGW.h stable/12/contrib/llvm/tools/lld/COFF/Options.td stable/12/contrib/llvm/tools/lld/COFF/PDB.cpp stable/12/contrib/llvm/tools/lld/COFF/PDB.h stable/12/contrib/llvm/tools/lld/COFF/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/COFF/SymbolTable.h stable/12/contrib/llvm/tools/lld/COFF/Symbols.cpp stable/12/contrib/llvm/tools/lld/COFF/Symbols.h stable/12/contrib/llvm/tools/lld/COFF/Writer.cpp stable/12/contrib/llvm/tools/lld/COFF/Writer.h stable/12/contrib/llvm/tools/lld/Common/Args.cpp stable/12/contrib/llvm/tools/lld/Common/CMakeLists.txt stable/12/contrib/llvm/tools/lld/Common/ErrorHandler.cpp stable/12/contrib/llvm/tools/lld/Common/Memory.cpp stable/12/contrib/llvm/tools/lld/Common/Reproduce.cpp stable/12/contrib/llvm/tools/lld/Common/Strings.cpp stable/12/contrib/llvm/tools/lld/Common/TargetOptionsCommandFlags.cpp stable/12/contrib/llvm/tools/lld/Common/Threads.cpp stable/12/contrib/llvm/tools/lld/Common/Timer.cpp stable/12/contrib/llvm/tools/lld/Common/Version.cpp stable/12/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp stable/12/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h stable/12/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/Hexagon.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/MSP430.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/RISCV.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/X86.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp stable/12/contrib/llvm/tools/lld/ELF/CMakeLists.txt stable/12/contrib/llvm/tools/lld/ELF/CallGraphSort.cpp stable/12/contrib/llvm/tools/lld/ELF/CallGraphSort.h stable/12/contrib/llvm/tools/lld/ELF/Config.h stable/12/contrib/llvm/tools/lld/ELF/DWARF.cpp stable/12/contrib/llvm/tools/lld/ELF/DWARF.h stable/12/contrib/llvm/tools/lld/ELF/Driver.cpp stable/12/contrib/llvm/tools/lld/ELF/Driver.h stable/12/contrib/llvm/tools/lld/ELF/DriverUtils.cpp stable/12/contrib/llvm/tools/lld/ELF/EhFrame.cpp stable/12/contrib/llvm/tools/lld/ELF/EhFrame.h stable/12/contrib/llvm/tools/lld/ELF/ICF.cpp stable/12/contrib/llvm/tools/lld/ELF/ICF.h stable/12/contrib/llvm/tools/lld/ELF/InputFiles.cpp stable/12/contrib/llvm/tools/lld/ELF/InputFiles.h stable/12/contrib/llvm/tools/lld/ELF/InputSection.cpp stable/12/contrib/llvm/tools/lld/ELF/InputSection.h stable/12/contrib/llvm/tools/lld/ELF/LTO.cpp stable/12/contrib/llvm/tools/lld/ELF/LTO.h stable/12/contrib/llvm/tools/lld/ELF/LinkerScript.cpp stable/12/contrib/llvm/tools/lld/ELF/LinkerScript.h stable/12/contrib/llvm/tools/lld/ELF/MapFile.cpp stable/12/contrib/llvm/tools/lld/ELF/MapFile.h stable/12/contrib/llvm/tools/lld/ELF/MarkLive.cpp stable/12/contrib/llvm/tools/lld/ELF/MarkLive.h stable/12/contrib/llvm/tools/lld/ELF/Options.td stable/12/contrib/llvm/tools/lld/ELF/OutputSections.cpp stable/12/contrib/llvm/tools/lld/ELF/OutputSections.h stable/12/contrib/llvm/tools/lld/ELF/Relocations.cpp stable/12/contrib/llvm/tools/lld/ELF/Relocations.h stable/12/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp stable/12/contrib/llvm/tools/lld/ELF/ScriptLexer.h stable/12/contrib/llvm/tools/lld/ELF/ScriptParser.cpp stable/12/contrib/llvm/tools/lld/ELF/ScriptParser.h stable/12/contrib/llvm/tools/lld/ELF/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/ELF/SymbolTable.h stable/12/contrib/llvm/tools/lld/ELF/Symbols.cpp stable/12/contrib/llvm/tools/lld/ELF/Symbols.h stable/12/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp stable/12/contrib/llvm/tools/lld/ELF/SyntheticSections.h stable/12/contrib/llvm/tools/lld/ELF/Target.cpp stable/12/contrib/llvm/tools/lld/ELF/Target.h stable/12/contrib/llvm/tools/lld/ELF/Thunks.cpp stable/12/contrib/llvm/tools/lld/ELF/Thunks.h stable/12/contrib/llvm/tools/lld/ELF/Writer.cpp stable/12/contrib/llvm/tools/lld/ELF/Writer.h stable/12/contrib/llvm/tools/lld/LICENSE.TXT stable/12/contrib/llvm/tools/lld/docs/NewLLD.rst stable/12/contrib/llvm/tools/lld/docs/ReleaseNotes.rst stable/12/contrib/llvm/tools/lld/docs/WebAssembly.rst stable/12/contrib/llvm/tools/lld/docs/conf.py stable/12/contrib/llvm/tools/lld/docs/getting_started.rst stable/12/contrib/llvm/tools/lld/docs/index.rst stable/12/contrib/llvm/tools/lld/docs/ld.lld.1 stable/12/contrib/llvm/tools/lld/docs/missingkeyfunction.rst stable/12/contrib/llvm/tools/lld/docs/sphinx_intro.rst stable/12/contrib/llvm/tools/lld/include/lld/Common/Args.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Driver.h stable/12/contrib/llvm/tools/lld/include/lld/Common/ErrorHandler.h stable/12/contrib/llvm/tools/lld/include/lld/Common/LLVM.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Memory.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Reproduce.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Strings.h stable/12/contrib/llvm/tools/lld/include/lld/Common/TargetOptionsCommandFlags.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Threads.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Timer.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Version.h stable/12/contrib/llvm/tools/lld/include/lld/Core/AbsoluteAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/ArchiveLibraryFile.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Atom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/DefinedAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Error.h stable/12/contrib/llvm/tools/lld/include/lld/Core/File.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Instrumentation.h stable/12/contrib/llvm/tools/lld/include/lld/Core/LinkingContext.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Node.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Pass.h stable/12/contrib/llvm/tools/lld/include/lld/Core/PassManager.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Reader.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Reference.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Resolver.h stable/12/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryFile.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Simple.h stable/12/contrib/llvm/tools/lld/include/lld/Core/SymbolTable.h stable/12/contrib/llvm/tools/lld/include/lld/Core/UndefinedAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Writer.h stable/12/contrib/llvm/tools/lld/include/lld/ReaderWriter/MachOLinkingContext.h stable/12/contrib/llvm/tools/lld/include/lld/ReaderWriter/YamlContext.h stable/12/contrib/llvm/tools/lld/lib/Core/DefinedAtom.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Error.cpp stable/12/contrib/llvm/tools/lld/lib/Core/File.cpp stable/12/contrib/llvm/tools/lld/lib/Core/LinkingContext.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Reader.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Resolver.cpp stable/12/contrib/llvm/tools/lld/lib/Core/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Writer.cpp stable/12/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/Atoms.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/DebugInfo.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ExecutableAtoms.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/File.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/FlatNamespaceFile.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOPasses.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ObjCPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ShimPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/TLVPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/WriterMachO.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp stable/12/contrib/llvm/tools/lld/tools/lld/CMakeLists.txt stable/12/contrib/llvm/tools/lld/tools/lld/lld.cpp stable/12/contrib/llvm/tools/lldb/FREEBSD-Xlist stable/12/contrib/llvm/tools/lldb/LICENSE.TXT stable/12/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBAttachInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBlock.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBroadcaster.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommunication.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCompileUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBData.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDeclaration.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBError.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBExecutionContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBExpressionOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBHostOS.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBInstructionList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBLaunchInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBLineEntry.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfoList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBModule.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBModuleSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBPlatform.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBQueue.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBQueueItem.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSection.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSourceManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBStringList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContextList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTrace.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTraceOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBType.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeNameSpecifier.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSummary.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSynthetic.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBValueList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBVariablesOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBWatchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSiteList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Stoppoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointCallbackContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Address.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverFileLine.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ClangForward.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/DumpDataExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/DumpRegisterValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FileLineResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FormatEntity.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Highlighter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/IOStreamMacros.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Module.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Opcode.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/PluginInterface.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/RichManglingContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/STLUtils.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Section.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamAsynchronousIO.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamBuffer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseSet.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLVector.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/UniqueCStringMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/UserSettingsController.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Value.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectCast.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultImpl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectDynamicValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectMemory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectRegister.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/dwarf.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFunctionPointer.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatCache.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatClasses.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategoryMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorIterator.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/DiagnosticManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionSourceCode.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/Materializer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Config.h.cmake stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ConnectionFileDescriptor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/File.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Host.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostGetOpt.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcess.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcessBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThread.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadForward.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostThread.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/LockFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/LockFileBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/OptionParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/PipeBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/PosixApi.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLauncher.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ProcessRunLock.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/PseudoTerminal.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/SafeMachO.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Terminal.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ThreadLauncher.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Time.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/XML.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeWatchpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/TCPSocket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/UDPSocket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/netbsd/HostInfoNetBSD.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/openbsd/HostInfoOpenBSD.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/DomainSocket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/Fcntl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostInfoPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostThreadPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/LockFilePosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/PipePosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/ProcessLauncherPosixFork.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializerCommon.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemLifetimeManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandAlias.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectMultiword.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandReturnObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionArgParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupArchitecture.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupBoolean.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupOutputFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupPlatform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupWatchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArch.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArgs.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArray.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueBoolean.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueDictionary.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueEnumeration.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValuePathMappings.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueRegex.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueSInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValues.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/Property.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangUtil.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompactUnwindInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDecl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDeclContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/DeclVendor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Declaration.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/LineEntry.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Symtab.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TaggedASTType.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Variable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/VariableList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/VerifyDecl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/DynamicLoader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContextScope.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Language.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/LanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Memory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/MemoryHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ModuleCache.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/OperatingSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/PathMappingList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Process.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessStructReader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Queue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/QueueList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RegisterCheckpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RegisterNumber.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameRecognizer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StructuredDataPlugin.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Target.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadCollection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallOnFunctionExit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanRunToAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOut.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepThrough.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepUntil.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanTracer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Unwind.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/UnwindAssembly.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/AnsiTerminal.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Args.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Baton.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Broadcaster.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/CleanUp.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/CompletionRequest.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ConstString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBuffer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferHeap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataEncoder.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Endian.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Environment.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Event.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Flags.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/IOObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Iterable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/LLDBAssert.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Listener.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Logging.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/NameMatches.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Predicate.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RegularExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Reproducer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Scalar.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SelectHelper.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SharedCluster.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/State.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Stream.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamCallback.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamGDBRemote.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamTee.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractorGDBRemote.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/TildeExpressionResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Timeout.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/TraceOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UriParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UserID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/VASPrintf.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/VMRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-defines.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-enumerations.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-public.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-types.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-versioning.h stable/12/contrib/llvm/tools/lldb/include/lldb/module.modulemap stable/12/contrib/llvm/tools/lldb/source/API/SBAddress.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBAttachInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBlock.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h stable/12/contrib/llvm/tools/lldb/source/API/SBBroadcaster.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommandReturnObject.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommunication.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBData.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBDeclaration.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBError.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBEvent.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBExecutionContext.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBExpressionOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFileSpecList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFrame.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFunction.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBInstructionList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLaunchInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLineEntry.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBListener.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfoList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBModule.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBModuleSpec.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBProcess.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBQueue.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBQueueItem.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSection.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSourceManager.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStream.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStringList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbol.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbolContext.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbolContextList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTarget.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThread.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThreadCollection.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTrace.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTraceOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBType.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeCategory.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeFilter.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeFormat.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeNameSpecifier.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeSummary.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeSynthetic.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBValue.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBValueList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBVariablesOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp stable/12/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.h stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverScripted.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSiteList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Stoppoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/StoppointCallbackContext.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/StoppointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Watchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMultiword.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.h stable/12/contrib/llvm/tools/lldb/source/Core/Address.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolverFileLine.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Communication.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Debugger.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DumpRegisterValue.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DynamicLoader.cpp stable/12/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FileLineResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Highlighter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Mangled.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Module.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ModuleChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Opcode.cpp stable/12/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp stable/12/contrib/llvm/tools/lldb/source/Core/RichManglingContext.cpp stable/12/contrib/llvm/tools/lldb/source/Core/SearchFilter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Section.cpp stable/12/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp stable/12/contrib/llvm/tools/lldb/source/Core/StreamAsynchronousIO.cpp stable/12/contrib/llvm/tools/lldb/source/Core/StreamFile.cpp stable/12/contrib/llvm/tools/lldb/source/Core/UserSettingsController.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Value.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultCast.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectRegister.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/DataVisualization.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatCache.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatClasses.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategory.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategoryMap.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeValidator.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/DiagnosticManager.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/Expression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/ExpressionVariable.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/REPL.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/UserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/File.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/FileSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/GetOptInc.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostNativeThreadBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostProcess.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostThread.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/LockFileBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/MonitoringProcessLauncher.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeWatchpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/OptionParser.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/PipeBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/ProcessRunLock.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/StringConvert.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Terminal.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/ThreadLauncher.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/UDPSocket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/XML.cpp stable/12/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/netbsd/HostInfoNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/openbsd/HostInfoOpenBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/DomainSocket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostThreadPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/LockFilePosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemInitializer.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemLifetimeManager.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandAlias.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.h stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionArgParser.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupBoolean.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFile.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupOutputFile.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupString.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUUID.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupVariable.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArgs.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueChar.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormatEntity.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValuePathMappings.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueRegex.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueSInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/Options.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/embedded_interpreter.py stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ArchitectureMips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ArchitecturePPC64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ArchitecturePPC64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSError.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.h stable/12/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/LaunchFlavor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessMessage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessMessage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMDefines.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InstructionUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwinConstants.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm64-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-freebsd-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-linux-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-s390x-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/NtStructures.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h stable/12/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbSymUid.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbSymUid.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h stable/12/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Block.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangUtil.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompilerDecl.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompilerDeclContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/DebugMacros.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Declaration.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Function.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LineEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LineTable.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Type.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/VariableList.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/VerifyDecl.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ABI.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ExecutionContext.cpp stable/12/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp stable/12/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Language.cpp stable/12/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Memory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/MemoryHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ModuleCache.cpp stable/12/contrib/llvm/tools/lldb/source/Target/OperatingSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Platform.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Process.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Queue.cpp stable/12/contrib/llvm/tools/lldb/source/Target/QueueItem.cpp stable/12/contrib/llvm/tools/lldb/source/Target/QueueList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RegisterNumber.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SectionLoadHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SectionLoadList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrameRecognizer.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackID.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StructuredDataPlugin.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SystemRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Target.cpp stable/12/contrib/llvm/tools/lldb/source/Target/TargetList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Thread.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadCollection.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanBase.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallOnFunctionExit.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanPython.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Target/UnwindAssembly.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ARM64_ehframe_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ARM_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ARM_ehframe_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Args.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Baton.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Broadcaster.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/CompletionRequest.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Connection.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ConstString.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataBufferHeap.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Environment.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Event.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/IOObject.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/JSON.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/LLDBAssert.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Listener.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Log.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Logging.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/NameMatches.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/PPC64_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/RegisterValue.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/RegularExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Reproducer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Scalar.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/SharingPtr.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/State.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Status.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Stream.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamCallback.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamString.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringList.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/TildeExpressionResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Timer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UUID.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UserID.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UuidCompatibility.h stable/12/contrib/llvm/tools/lldb/source/Utility/VASprintf.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/VMRange.cpp stable/12/contrib/llvm/tools/lldb/source/lldb.cpp stable/12/contrib/llvm/tools/lldb/tools/argdumper/argdumper.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Driver.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Driver.h stable/12/contrib/llvm/tools/lldb/tools/driver/Options.td stable/12/contrib/llvm/tools/lldb/tools/driver/Platform.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Platform.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnConfig.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonHelper.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/Platform.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Darwin/resources/lldb-server-entitlements.plist stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Darwin/resources/lldb-server-macos-entitlements.plist stable/12/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.cpp stable/12/contrib/llvm/tools/lli/RemoteJITUtils.h stable/12/contrib/llvm/tools/lli/lli.cpp stable/12/contrib/llvm/tools/llvm-ar/llvm-ar.cpp stable/12/contrib/llvm/tools/llvm-as/llvm-as.cpp stable/12/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp stable/12/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporter.h stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterJson.h stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.h stable/12/contrib/llvm/tools/llvm-cov/CoverageFilters.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageFilters.h stable/12/contrib/llvm/tools/llvm-cov/CoverageReport.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageReport.h stable/12/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.h stable/12/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h stable/12/contrib/llvm/tools/llvm-cov/RenderingSupport.h stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageView.h stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.h stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.cpp stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.h stable/12/contrib/llvm/tools/llvm-cov/TestingSupport.cpp stable/12/contrib/llvm/tools/llvm-cov/gcov.cpp stable/12/contrib/llvm/tools/llvm-cov/llvm-cov.cpp stable/12/contrib/llvm/tools/llvm-cxxdump/Error.cpp stable/12/contrib/llvm/tools/llvm-cxxdump/Error.h stable/12/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp stable/12/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.h stable/12/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp stable/12/contrib/llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp stable/12/contrib/llvm/tools/llvm-diff/DiffConsumer.cpp stable/12/contrib/llvm/tools/llvm-diff/DiffConsumer.h stable/12/contrib/llvm/tools/llvm-diff/DiffLog.cpp stable/12/contrib/llvm/tools/llvm-diff/DiffLog.h stable/12/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp stable/12/contrib/llvm/tools/llvm-diff/DifferenceEngine.h stable/12/contrib/llvm/tools/llvm-diff/llvm-diff.cpp stable/12/contrib/llvm/tools/llvm-dis/llvm-dis.cpp stable/12/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp stable/12/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp stable/12/contrib/llvm/tools/llvm-extract/llvm-extract.cpp stable/12/contrib/llvm/tools/llvm-link/llvm-link.cpp stable/12/contrib/llvm/tools/llvm-lto/llvm-lto.cpp stable/12/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp stable/12/contrib/llvm/tools/llvm-mc/Disassembler.cpp stable/12/contrib/llvm/tools/llvm-mc/Disassembler.h stable/12/contrib/llvm/tools/llvm-mc/llvm-mc.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegion.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegion.h stable/12/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.h stable/12/contrib/llvm/tools/llvm-mca/PipelinePrinter.cpp stable/12/contrib/llvm/tools/llvm-mca/PipelinePrinter.h stable/12/contrib/llvm/tools/llvm-mca/Views/DispatchStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/DispatchStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/InstructionInfoView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/InstructionInfoView.h stable/12/contrib/llvm/tools/llvm-mca/Views/RegisterFileStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/RegisterFileStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/ResourcePressureView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/ResourcePressureView.h stable/12/contrib/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/SchedulerStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/SchedulerStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/SummaryView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/SummaryView.h stable/12/contrib/llvm/tools/llvm-mca/Views/TimelineView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/TimelineView.h stable/12/contrib/llvm/tools/llvm-mca/Views/View.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/View.h stable/12/contrib/llvm/tools/llvm-mca/llvm-mca.cpp stable/12/contrib/llvm/tools/llvm-modextract/llvm-modextract.cpp stable/12/contrib/llvm/tools/llvm-nm/llvm-nm.cpp stable/12/contrib/llvm/tools/llvm-objcopy/Buffer.cpp stable/12/contrib/llvm/tools/llvm-objcopy/Buffer.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Object.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Object.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Reader.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Reader.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Writer.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Writer.h stable/12/contrib/llvm/tools/llvm-objcopy/CopyConfig.cpp stable/12/contrib/llvm/tools/llvm-objcopy/CopyConfig.h stable/12/contrib/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp stable/12/contrib/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.h stable/12/contrib/llvm/tools/llvm-objcopy/ELF/Object.cpp stable/12/contrib/llvm/tools/llvm-objcopy/ELF/Object.h stable/12/contrib/llvm/tools/llvm-objcopy/ObjcopyOpts.td stable/12/contrib/llvm/tools/llvm-objcopy/StripOpts.td stable/12/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp stable/12/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.h stable/12/contrib/llvm/tools/llvm-objdump/COFFDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/ELFDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/MachODump.cpp stable/12/contrib/llvm/tools/llvm-objdump/WasmDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp stable/12/contrib/llvm/tools/llvm-objdump/llvm-objdump.h stable/12/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h stable/12/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/InputFile.h stable/12/contrib/llvm/tools/llvm-pdbutil/LinePrinter.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/LinePrinter.h stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/OutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/StreamUtil.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/StreamUtil.h stable/12/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h stable/12/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp stable/12/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp stable/12/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/Error.cpp stable/12/contrib/llvm/tools/llvm-readobj/Error.h stable/12/contrib/llvm/tools/llvm-readobj/MachODumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/ObjDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/ObjDumper.h stable/12/contrib/llvm/tools/llvm-readobj/StackMapPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/Win64EHDumper.h stable/12/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h stable/12/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp stable/12/contrib/llvm/tools/llvm-readobj/llvm-readobj.h stable/12/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp stable/12/contrib/llvm/tools/llvm-stress/llvm-stress.cpp stable/12/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp stable/12/contrib/llvm/tools/llvm-xray/func-id-helper.cpp stable/12/contrib/llvm/tools/llvm-xray/func-id-helper.h stable/12/contrib/llvm/tools/llvm-xray/llvm-xray.cpp stable/12/contrib/llvm/tools/llvm-xray/trie-node.h stable/12/contrib/llvm/tools/llvm-xray/xray-account.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-account.h stable/12/contrib/llvm/tools/llvm-xray/xray-color-helper.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-color-helper.h stable/12/contrib/llvm/tools/llvm-xray/xray-converter.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-converter.h stable/12/contrib/llvm/tools/llvm-xray/xray-extract.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-fdr-dump.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-graph-diff.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-graph-diff.h stable/12/contrib/llvm/tools/llvm-xray/xray-graph.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-graph.h stable/12/contrib/llvm/tools/llvm-xray/xray-registry.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-registry.h stable/12/contrib/llvm/tools/llvm-xray/xray-stacks.cpp stable/12/contrib/llvm/tools/opt/AnalysisWrappers.cpp stable/12/contrib/llvm/tools/opt/BreakpointPrinter.cpp stable/12/contrib/llvm/tools/opt/BreakpointPrinter.h stable/12/contrib/llvm/tools/opt/Debugify.cpp stable/12/contrib/llvm/tools/opt/Debugify.h stable/12/contrib/llvm/tools/opt/GraphPrinters.cpp stable/12/contrib/llvm/tools/opt/NewPMDriver.cpp stable/12/contrib/llvm/tools/opt/NewPMDriver.h stable/12/contrib/llvm/tools/opt/PassPrinters.cpp stable/12/contrib/llvm/tools/opt/PassPrinters.h stable/12/contrib/llvm/tools/opt/PrintSCC.cpp stable/12/contrib/llvm/tools/opt/opt.cpp stable/12/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp stable/12/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp stable/12/contrib/llvm/utils/TableGen/AsmWriterInst.cpp stable/12/contrib/llvm/utils/TableGen/AsmWriterInst.h stable/12/contrib/llvm/utils/TableGen/Attributes.cpp stable/12/contrib/llvm/utils/TableGen/CTagsEmitter.cpp stable/12/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp stable/12/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h stable/12/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenHwModes.h stable/12/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenInstruction.h stable/12/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h stable/12/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenRegisters.h stable/12/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenSchedule.h stable/12/contrib/llvm/utils/TableGen/CodeGenTarget.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenTarget.h stable/12/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcher.h stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherOpt.cpp stable/12/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp stable/12/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp stable/12/contrib/llvm/utils/TableGen/ExegesisEmitter.cpp stable/12/contrib/llvm/utils/TableGen/FastISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp stable/12/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/InfoByHwMode.cpp stable/12/contrib/llvm/utils/TableGen/InfoByHwMode.h stable/12/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp stable/12/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp stable/12/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp stable/12/contrib/llvm/utils/TableGen/OptParserEmitter.cpp stable/12/contrib/llvm/utils/TableGen/PredicateExpander.cpp stable/12/contrib/llvm/utils/TableGen/PredicateExpander.h stable/12/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.cpp stable/12/contrib/llvm/utils/TableGen/RISCVCompressInstEmitter.cpp stable/12/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp stable/12/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SDNodeProperties.cpp stable/12/contrib/llvm/utils/TableGen/SDNodeProperties.h stable/12/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SequenceToOffsetTable.h stable/12/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.cpp stable/12/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.h stable/12/contrib/llvm/utils/TableGen/TableGen.cpp stable/12/contrib/llvm/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm/utils/TableGen/Types.cpp stable/12/contrib/llvm/utils/TableGen/Types.h stable/12/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp stable/12/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.h stable/12/contrib/llvm/utils/TableGen/X86DisassemblerShared.h stable/12/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp stable/12/contrib/llvm/utils/TableGen/X86DisassemblerTables.h stable/12/contrib/llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp stable/12/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp stable/12/contrib/llvm/utils/TableGen/X86ModRMFilters.cpp stable/12/contrib/llvm/utils/TableGen/X86ModRMFilters.h stable/12/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp stable/12/contrib/llvm/utils/TableGen/X86RecognizableInstr.h stable/12/contrib/openmp/LICENSE.txt stable/12/contrib/openmp/runtime/src/dllexports stable/12/contrib/openmp/runtime/src/exports_so.txt stable/12/contrib/openmp/runtime/src/extractExternal.cpp stable/12/contrib/openmp/runtime/src/i18n/en_US.txt stable/12/contrib/openmp/runtime/src/kmp.h stable/12/contrib/openmp/runtime/src/kmp_affinity.cpp stable/12/contrib/openmp/runtime/src/kmp_affinity.h stable/12/contrib/openmp/runtime/src/kmp_alloc.cpp stable/12/contrib/openmp/runtime/src/kmp_atomic.cpp stable/12/contrib/openmp/runtime/src/kmp_atomic.h stable/12/contrib/openmp/runtime/src/kmp_barrier.cpp stable/12/contrib/openmp/runtime/src/kmp_cancel.cpp stable/12/contrib/openmp/runtime/src/kmp_config.h.cmake stable/12/contrib/openmp/runtime/src/kmp_csupport.cpp stable/12/contrib/openmp/runtime/src/kmp_debug.cpp stable/12/contrib/openmp/runtime/src/kmp_debug.h stable/12/contrib/openmp/runtime/src/kmp_debugger.cpp stable/12/contrib/openmp/runtime/src/kmp_debugger.h stable/12/contrib/openmp/runtime/src/kmp_dispatch.cpp stable/12/contrib/openmp/runtime/src/kmp_dispatch.h stable/12/contrib/openmp/runtime/src/kmp_dispatch_hier.h stable/12/contrib/openmp/runtime/src/kmp_environment.cpp stable/12/contrib/openmp/runtime/src/kmp_environment.h stable/12/contrib/openmp/runtime/src/kmp_error.cpp stable/12/contrib/openmp/runtime/src/kmp_error.h stable/12/contrib/openmp/runtime/src/kmp_ftn_cdecl.cpp stable/12/contrib/openmp/runtime/src/kmp_ftn_entry.h stable/12/contrib/openmp/runtime/src/kmp_ftn_extra.cpp stable/12/contrib/openmp/runtime/src/kmp_ftn_os.h stable/12/contrib/openmp/runtime/src/kmp_ftn_stdcall.cpp stable/12/contrib/openmp/runtime/src/kmp_global.cpp stable/12/contrib/openmp/runtime/src/kmp_gsupport.cpp stable/12/contrib/openmp/runtime/src/kmp_i18n.cpp stable/12/contrib/openmp/runtime/src/kmp_i18n.h stable/12/contrib/openmp/runtime/src/kmp_import.cpp stable/12/contrib/openmp/runtime/src/kmp_io.cpp stable/12/contrib/openmp/runtime/src/kmp_io.h stable/12/contrib/openmp/runtime/src/kmp_itt.cpp stable/12/contrib/openmp/runtime/src/kmp_itt.h stable/12/contrib/openmp/runtime/src/kmp_itt.inl stable/12/contrib/openmp/runtime/src/kmp_lock.cpp stable/12/contrib/openmp/runtime/src/kmp_lock.h stable/12/contrib/openmp/runtime/src/kmp_omp.h stable/12/contrib/openmp/runtime/src/kmp_os.h stable/12/contrib/openmp/runtime/src/kmp_platform.h stable/12/contrib/openmp/runtime/src/kmp_runtime.cpp stable/12/contrib/openmp/runtime/src/kmp_safe_c_api.h stable/12/contrib/openmp/runtime/src/kmp_sched.cpp stable/12/contrib/openmp/runtime/src/kmp_settings.cpp stable/12/contrib/openmp/runtime/src/kmp_settings.h stable/12/contrib/openmp/runtime/src/kmp_stats.cpp stable/12/contrib/openmp/runtime/src/kmp_stats.h stable/12/contrib/openmp/runtime/src/kmp_stats_timing.cpp stable/12/contrib/openmp/runtime/src/kmp_stats_timing.h stable/12/contrib/openmp/runtime/src/kmp_str.cpp stable/12/contrib/openmp/runtime/src/kmp_str.h stable/12/contrib/openmp/runtime/src/kmp_stub.cpp stable/12/contrib/openmp/runtime/src/kmp_stub.h stable/12/contrib/openmp/runtime/src/kmp_taskdeps.cpp stable/12/contrib/openmp/runtime/src/kmp_taskdeps.h stable/12/contrib/openmp/runtime/src/kmp_tasking.cpp stable/12/contrib/openmp/runtime/src/kmp_taskq.cpp stable/12/contrib/openmp/runtime/src/kmp_threadprivate.cpp stable/12/contrib/openmp/runtime/src/kmp_utility.cpp stable/12/contrib/openmp/runtime/src/kmp_version.cpp stable/12/contrib/openmp/runtime/src/kmp_version.h stable/12/contrib/openmp/runtime/src/kmp_wait_release.cpp stable/12/contrib/openmp/runtime/src/kmp_wait_release.h stable/12/contrib/openmp/runtime/src/kmp_wrapper_getpid.h stable/12/contrib/openmp/runtime/src/kmp_wrapper_malloc.h stable/12/contrib/openmp/runtime/src/libomp.rc.var stable/12/contrib/openmp/runtime/src/ompt-event-specific.h stable/12/contrib/openmp/runtime/src/ompt-general.cpp stable/12/contrib/openmp/runtime/src/ompt-internal.h stable/12/contrib/openmp/runtime/src/ompt-specific.cpp stable/12/contrib/openmp/runtime/src/ompt-specific.h stable/12/contrib/openmp/runtime/src/test-touch.c stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/disable_warnings.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_types.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/legacy/ittnotify.h stable/12/contrib/openmp/runtime/src/tsan_annotations.cpp stable/12/contrib/openmp/runtime/src/tsan_annotations.h stable/12/contrib/openmp/runtime/src/z_Linux_asm.S stable/12/contrib/openmp/runtime/src/z_Linux_util.cpp stable/12/contrib/openmp/runtime/src/z_Windows_NT-586_asm.asm stable/12/contrib/openmp/runtime/src/z_Windows_NT-586_util.cpp stable/12/contrib/openmp/runtime/src/z_Windows_NT_util.cpp stable/12/etc/mtree/BSD.debug.dist stable/12/etc/mtree/BSD.usr.dist stable/12/lib/Makefile stable/12/lib/atf/libatf-c++/Makefile stable/12/lib/clang/freebsd_cc_version.h stable/12/lib/clang/headers/Makefile stable/12/lib/clang/include/clang/Basic/Version.inc stable/12/lib/clang/include/clang/Config/config.h stable/12/lib/clang/include/lld/Common/Version.inc stable/12/lib/clang/include/lldb/Host/Config.h stable/12/lib/clang/include/llvm/Config/abi-breaking.h stable/12/lib/clang/include/llvm/Config/config.h stable/12/lib/clang/include/llvm/Config/llvm-config.h stable/12/lib/clang/include/llvm/Support/VCSRevision.h stable/12/lib/clang/libclang/Makefile stable/12/lib/clang/liblldb/Makefile stable/12/lib/clang/libllvm/Makefile stable/12/lib/clang/libllvmminimal/Makefile stable/12/lib/clang/llvm.build.mk stable/12/lib/googletest/Makefile.inc stable/12/lib/libc++/Makefile stable/12/lib/libclang_rt/Makefile stable/12/lib/libclang_rt/Makefile.inc stable/12/lib/libclang_rt/fuzzer/Makefile stable/12/lib/libclang_rt/fuzzer_no_main/Makefile stable/12/lib/libclang_rt/include/Makefile stable/12/lib/libclang_rt/msan_cxx/Makefile stable/12/lib/libclang_rt/profile/Makefile stable/12/lib/libclang_rt/safestack/Makefile stable/12/lib/libclang_rt/ubsan_standalone/Makefile stable/12/lib/libcompiler_rt/Makefile stable/12/lib/libcompiler_rt/Makefile.inc stable/12/lib/libdevdctl/Makefile stable/12/lib/libgcc_s/Makefile stable/12/lib/libgcc_s/arm/Symbol.map stable/12/lib/libomp/Makefile stable/12/lib/libomp/kmp_config.h stable/12/lib/libomp/kmp_i18n_default.inc stable/12/lib/libomp/kmp_i18n_id.inc stable/12/lib/libomp/omp-tools.h stable/12/lib/libomp/omp.h stable/12/lib/libpmc/Makefile stable/12/libexec/atf/atf-check/Makefile stable/12/libexec/atf/atf-sh/Makefile stable/12/share/man/man5/src.conf.5 stable/12/share/mk/atf.test.mk stable/12/share/mk/bsd.sys.mk stable/12/share/mk/src.opts.mk stable/12/sys/conf/kmod.mk stable/12/sys/sys/param.h stable/12/tools/build/mk/OptionalObsoleteFiles.inc stable/12/usr.bin/clang/Makefile stable/12/usr.bin/clang/Makefile.inc stable/12/usr.bin/clang/clang-tblgen/Makefile stable/12/usr.bin/clang/clang.prog.mk stable/12/usr.bin/clang/lld/Makefile stable/12/usr.bin/clang/lldb/Makefile stable/12/usr.bin/clang/llvm-mca/Makefile stable/12/usr.bin/clang/llvm-objcopy/Makefile stable/12/usr.bin/clang/llvm-pdbutil/Makefile stable/12/usr.bin/clang/llvm.prog.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/Makefile.inc1 Tue Jan 7 18:08:09 2020 (r356460) @@ -2116,10 +2116,13 @@ _localedef= usr.bin/localedef _clang_tblgen= \ lib/clang/libllvmminimal \ usr.bin/clang/llvm-tblgen \ - usr.bin/clang/clang-tblgen + usr.bin/clang/clang-tblgen \ + usr.bin/clang/lldb-tblgen +# XXX: lldb-tblgen is not needed, if top-level MK_LLDB=no ${_bt}-usr.bin/clang/clang-tblgen: ${_bt}-lib/clang/libllvmminimal ${_bt}-usr.bin/clang/llvm-tblgen: ${_bt}-lib/clang/libllvmminimal +${_bt}-usr.bin/clang/lldb-tblgen: ${_bt}-lib/clang/libllvmminimal .endif # Default to building the GPL DTC, but build the BSDL one if users explicitly Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/ObsoleteFiles.inc Tue Jan 7 18:08:09 2020 (r356460) @@ -38,6 +38,167 @@ # xargs -n1 | sort | uniq -d; # done +# 20200107: new clang import which bumps version from 8.0.1 to 9.0.0. +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/8.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/8.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm64intr.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/8.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cetintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/8.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/8.0.1/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/8.0.1/include +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/8.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/8.0.1/lib +OLD_DIRS+=usr/lib/clang/8.0.1 +# 20200107: libc++ 9.0.0 removed some experimental files +OLD_FILES+=usr/include/c++/v1/experimental/any +OLD_FILES+=usr/include/c++/v1/experimental/chrono +OLD_FILES+=usr/include/c++/v1/experimental/numeric +OLD_FILES+=usr/include/c++/v1/experimental/optional +OLD_FILES+=usr/include/c++/v1/experimental/ratio +OLD_FILES+=usr/include/c++/v1/experimental/string_view +OLD_FILES+=usr/include/c++/v1/experimental/system_error +OLD_FILES+=usr/include/c++/v1/experimental/tuple +OLD_FILES+=usr/lib/libc++fs.a +OLD_FILES+=usr/lib32/libc++fs.a # 20191003: Remove useless ZFS tests OLD_FILES+=usr/tests/sys/cddl/zfs/tests/cli_root/zpool_create/zpool_create_013_neg.ksh OLD_FILES+=usr/tests/sys/cddl/zfs/tests/cli_root/zpool_create/zpool_create_014_neg.ksh Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/UPDATING Tue Jan 7 18:08:09 2020 (r356460) @@ -16,6 +16,12 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20200107: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 9.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. + 20191107: The nctgpio and wbwd drivers have been moved to the superio bus. If you have one of these drivers in a kernel configuration, then Copied: stable/12/contrib/compiler-rt/FREEBSD-Xlist (from r353358, head/contrib/compiler-rt/FREEBSD-Xlist) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/compiler-rt/FREEBSD-Xlist Tue Jan 7 18:08:09 2020 (r356460, copy of r353358, head/contrib/compiler-rt/FREEBSD-Xlist) @@ -0,0 +1,71 @@ +# $FreeBSD$ +.arcconfig +.gitignore +CMakeLists.txt +CODE_OWNERS.TXT +cmake/ +docs/ +include/CMakeLists.txt +lib/CMakeLists.txt +lib/asan/.clang-format +lib/asan/CMakeLists.txt +lib/asan/scripts/ +lib/asan/tests/ +lib/builtins/CMakeLists.txt +lib/builtins/Darwin-excludes/ +lib/builtins/macho_embedded/ +lib/cfi/CMakeLists.txt +lib/crt/CMakeLists.txt +lib/dfsan/.clang-format +lib/dfsan/CMakeLists.txt +lib/dfsan/scripts/ +lib/esan/CMakeLists.txt +lib/fuzzer/CMakeLists.txt +lib/fuzzer/afl/ +lib/fuzzer/build.sh +lib/fuzzer/dataflow/ +lib/fuzzer/scripts/ +lib/fuzzer/standalone/ +lib/fuzzer/tests/ +lib/gwp_asan/CMakeLists.txt +lib/gwp_asan/tests/ +lib/hwasan/.clang-format +lib/hwasan/CMakeLists.txt +lib/interception/.clang-format +lib/interception/CMakeLists.txt +lib/interception/tests/ +lib/lsan/.clang-format +lib/lsan/CMakeLists.txt +lib/msan/.clang-format +lib/msan/CMakeLists.txt +lib/msan/tests/ +lib/profile/CMakeLists.txt +lib/safestack/.clang-format +lib/safestack/CMakeLists.txt +lib/sanitizer_common/.clang-format +lib/sanitizer_common/.clang-tidy +lib/sanitizer_common/CMakeLists.txt +lib/sanitizer_common/scripts/ +lib/sanitizer_common/tests/ +lib/scudo/CMakeLists.txt +lib/scudo/standalone/CMakeLists.txt +lib/scudo/standalone/tests/ +lib/stats/CMakeLists.txt +lib/tsan/.clang-format +lib/tsan/CMakeLists.txt +lib/tsan/analyze_libtsan.sh +lib/tsan/check_analyze.sh +lib/tsan/check_cmake.sh +lib/tsan/dd/CMakeLists.txt +lib/tsan/go/build.bat +lib/tsan/go/buildgo.sh +lib/tsan/tests/ +lib/ubsan/CMakeLists.txt +lib/ubsan_minimal/CMakeLists.txt +lib/xray/CMakeLists.txt +lib/xray/tests/ +make/ +test/ +unittests/ +utils/ +www/ Modified: stable/12/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- stable/12/contrib/compiler-rt/LICENSE.TXT Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/LICENSE.TXT Tue Jan 7 18:08:09 2020 (r356460) @@ -1,7 +1,242 @@ ============================================================================== -compiler_rt License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: ============================================================================== + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== + The compiler_rt library is dual licensed under both the University of Illinois "BSD-Like" license and the MIT license. As a user of this code you may choose to use it under either license. As a contributor, you agree to allow your code @@ -74,18 +309,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -============================================================================== -Copyrights and Licenses for Third Party Software Distributed with LLVM: -============================================================================== -The LLVM software contains code written by third parties. Such software will -have its own individual LICENSE.TXT file in the directory in which it appears. -This file will describe the copyrights, license, and restrictions which apply -to that code. - -The disclaimer of warranty in the University of Illinois Open Source License -applies to all code in the LLVM Distribution, and nothing in any of the -other licenses gives permission to use the names of the LLVM Team or the -University of Illinois to endorse or promote products derived from this -Software. - Modified: stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h Tue Jan 7 18:08:09 2020 (r356460) @@ -1,9 +1,8 @@ //===-- allocator_interface.h ---------------------------------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // Modified: stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h Tue Jan 7 18:08:09 2020 (r356460) @@ -1,13 +1,12 @@ //===-- sanitizer/asan_interface.h ------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // -// This file is a part of AddressSanitizer. +// This file is a part of AddressSanitizer (ASan). // // Public interface header. //===----------------------------------------------------------------------===// @@ -19,28 +18,54 @@ #ifdef __cplusplus extern "C" { #endif - // Marks memory region [addr, addr+size) as unaddressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region from instrumented code is forbidden until - // this region is unpoisoned. This function is not guaranteed to poison - // the whole region - it may poison only subregion of [addr, addr+size) due - // to ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_poison_memory_region(void const volatile *addr, size_t size); - // Marks memory region [addr, addr+size) as addressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region is allowed until this region is poisoned again. - // This function may unpoison a superregion of [addr, addr+size) due to - // ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +/// Marks a memory region ([addr, addr+size)) as unaddressable. +/// +/// This memory must be previously allocated by your program. Instrumented +/// code is forbidden from accessing addresses in this region until it is +/// unpoisoned. This function is not guaranteed to poison the entire region - +/// it could poison only a subregion of [addr, addr+size) due to ASan +/// alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can poison or +/// unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_poison_memory_region(void const volatile *addr, size_t size); -// User code should use macros instead of functions. +/// Marks a memory region ([addr, addr+size)) as addressable. +/// +/// This memory must be previously allocated by your program. Accessing +/// addresses in this region is allowed until this region is poisoned again. +/// This function could unpoison a super-region of [addr, addr+size) due +/// to ASan alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can +/// poison or unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); + +// Macros provided for convenience. #if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) +/// Marks a memory region as unaddressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_POISON_MEMORY_REGION(addr, size) \ __asan_poison_memory_region((addr), (size)) + +/// Marks a memory region as addressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_UNPOISON_MEMORY_REGION(addr, size) \ __asan_unpoison_memory_region((addr), (size)) #else @@ -50,103 +75,245 @@ extern "C" { ((void)(addr), (void)(size)) #endif - // Returns 1 if addr is poisoned (i.e. 1-byte read/write access to this - // address will result in error report from AddressSanitizer). - // Otherwise returns 0. - int __asan_address_is_poisoned(void const volatile *addr); +/// Checks if an address is poisoned. +/// +/// Returns 1 if addr is poisoned (that is, 1-byte read/write +/// access to this address would result in an error report from ASan). +/// Otherwise returns 0. +/// +/// \param addr Address to check. +/// +/// \retval 1 Address is poisoned. +/// \retval 0 Address is not poisoned. +int __asan_address_is_poisoned(void const volatile *addr); - // If at least one byte in [beg, beg+size) is poisoned, return the address - // of the first such byte. Otherwise return 0. - void *__asan_region_is_poisoned(void *beg, size_t size); +/// Checks if a region is poisoned. +/// +/// If at least one byte in [beg, beg+size) is poisoned, returns the +/// address of the first such byte. Otherwise returns 0. +/// +/// \param beg Start of memory region. +/// \param size Start of memory region. +/// \returns Address of first poisoned byte. +void *__asan_region_is_poisoned(void *beg, size_t size); - // Print the description of addr (useful when debugging in gdb). - void __asan_describe_address(void *addr); +/// Describes an address (useful for calling from the debugger). +/// +/// Prints the description of addr. +/// +/// \param addr Address to describe. +void __asan_describe_address(void *addr); - // Useful for calling from a debugger to get information about an ASan error. - // Returns 1 if an error has been (or is being) reported, otherwise returns 0. - int __asan_report_present(void); +/// Checks if an error has been or is being reported (useful for calling from +/// the debugger to get information about an ASan error). +/// +/// Returns 1 if an error has been (or is being) reported. Otherwise returns 0. +/// +/// \returns 1 if an error has been (or is being) reported. Otherwise returns +/// 0. +int __asan_report_present(void); - // Useful for calling from a debugger to get information about an ASan error. - // If an error has been (or is being) reported, the following functions return - // the pc, bp, sp, address, access type (0 = read, 1 = write), access size and - // bug description (e.g. "heap-use-after-free"). Otherwise they return 0. - void *__asan_get_report_pc(void); - void *__asan_get_report_bp(void); - void *__asan_get_report_sp(void); - void *__asan_get_report_address(void); - int __asan_get_report_access_type(void); - size_t __asan_get_report_access_size(void); - const char *__asan_get_report_description(void); +/// Gets the PC (program counter) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns PC if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns PC value. +void *__asan_get_report_pc(void); - // Useful for calling from the debugger to get information about a pointer. - // Returns the category of the given pointer as a constant string. - // Possible return values are "global", "stack", "stack-fake", "heap", - // "heap-invalid", "shadow-low", "shadow-gap", "shadow-high", "unknown". - // If global or stack, tries to also return the variable name, address and - // size. If heap, tries to return the chunk address and size. 'name' should - // point to an allocated buffer of size 'name_size'. - const char *__asan_locate_address(void *addr, char *name, size_t name_size, - void **region_address, size_t *region_size); +/// Gets the BP (base pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns BP if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns BP value. +void *__asan_get_report_bp(void); - // Useful for calling from the debugger to get the allocation stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the SP (stack pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// If an error has been (or is being) reported, returns SP. +/// Otherwise returns 0. +/// +/// \returns SP value. +void *__asan_get_report_sp(void); - // Useful for calling from the debugger to get the free stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_free_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the address of the report buffer of an ASan error (useful for calling +/// from the debugger). +/// +/// Returns the address of the report buffer if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Address of report buffer. +void *__asan_get_report_address(void); - // Useful for calling from the debugger to get the current shadow memory - // mapping. - void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); +/// Gets access type of an ASan error (useful for calling from the debugger). +/// +/// Returns access type (read or write) if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Access type (0 = read, 1 = write). +int __asan_get_report_access_type(void); - // This is an internal function that is called to report an error. - // However it is still a part of the interface because users may want to - // set a breakpoint on this function in a debugger. - void __asan_report_error(void *pc, void *bp, void *sp, - void *addr, int is_write, size_t access_size); +/// Gets access size of an ASan error (useful for calling from the debugger). +/// +/// Returns access size if an error has been (or is being) reported. Otherwise +/// returns 0. +/// +/// \returns Access size in bytes. +size_t __asan_get_report_access_size(void); - // Deprecated. Call __sanitizer_set_death_callback instead. - void __asan_set_death_callback(void (*callback)(void)); +/// Gets the bug description of an ASan error (useful for calling from a +/// debugger). +/// +/// \returns Returns a bug description if an error has been (or is being) +/// reported - for example, "heap-use-after-free". Otherwise returns an empty +/// string. +const char *__asan_get_report_description(void); - void __asan_set_error_report_callback(void (*callback)(const char*)); +/// Gets information about a pointer (useful for calling from the debugger). +/// +/// Returns the category of the given pointer as a constant string. +/// Possible return values are global, stack, stack-fake, +/// heap, heap-invalid, shadow-low, shadow-gap, +/// shadow-high, and unknown. +/// +/// If the return value is global or stack, tries to also return +/// the variable name, address, and size. If the return value is heap, +/// tries to return the chunk address and size. name should point +/// to an allocated buffer of size name_size. +/// +/// \param addr Address to locate. +/// \param name Buffer to store the variable's name. +/// \param name_size Size in bytes of the variable's name buffer. +/// \param region_address [out] Address of the region. +/// \param region_size [out] Size of the region in bytes. +/// +/// \returns Returns the category of the given pointer as a constant string. +const char *__asan_locate_address(void *addr, char *name, size_t name_size, + void **region_address, size_t *region_size); - // User may provide function that would be called right when ASan detects - // an error. This can be used to notice cases when ASan detects an error, but - // the program crashes before ASan report is printed. - void __asan_on_error(void); +/// Gets the allocation stack trace and thread ID for a heap address (useful +/// for calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, + int *thread_id); - // Prints accumulated stats to stderr. Used for debugging. - void __asan_print_accumulated_stats(void); +/// Gets the free stack trace and thread ID for a heap address (useful for +/// calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_free_stack(void *addr, void **trace, size_t size, + int *thread_id); - // This function may be optionally provided by user and should return - // a string containing ASan runtime options. See asan_flags.h for details. - const char* __asan_default_options(void); +/// Gets the current shadow memory mapping (useful for calling from the +/// debugger). +/// +/// \param shadow_scale [out] Shadow scale value. +/// \param shadow_offset [out] Offset value. +void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); - // The following 2 functions facilitate garbage collection in presence of - // asan's fake stack. +/// This is an internal function that is called to report an error. However, +/// it is still a part of the interface because you might want to set a +/// breakpoint on this function in the debugger. +/// +/// \param pc pc value of the ASan error. +/// \param bp bp value of the ASan error. +/// \param sp sp value of the ASan error. +/// \param addr Address of the ASan error. +/// \param is_write True if the error is a write error; false otherwise. +/// \param access_size Size of the memory access of the ASan error. +void __asan_report_error(void *pc, void *bp, void *sp, + void *addr, int is_write, size_t access_size); - // Returns an opaque handler to be used later in __asan_addr_is_in_fake_stack. - // Returns NULL if the current thread does not have a fake stack. - void *__asan_get_current_fake_stack(void); +// Deprecated. Call __sanitizer_set_death_callback instead. +void __asan_set_death_callback(void (*callback)(void)); - // If fake_stack is non-NULL and addr belongs to a fake frame in - // fake_stack, returns the address on real stack that corresponds to - // the fake frame and sets beg/end to the boundaries of this fake frame. - // Otherwise returns NULL and does not touch beg/end. - // If beg/end are NULL, they are not touched. - // This function may be called from a thread other than the owner of - // fake_stack, but the owner thread need to be alive. - void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, - void **end); +/// Sets the callback function to be called during ASan error reporting. +/// +/// The callback provides a string pointer to the report. +/// +/// \param callback User-provided function. +void __asan_set_error_report_callback(void (*callback)(const char *)); - // Performs cleanup before a [[noreturn]] function. Must be called - // before things like _exit and execl to avoid false positives on stack. - void __asan_handle_no_return(void); +/// User-provided callback on ASan errors. +/// +/// You can provide a function that would be called immediately when ASan +/// detects an error. This is useful in cases when ASan detects an error but +/// your program crashes before the ASan report is printed. +void __asan_on_error(void); + +/// Prints accumulated statistics to stderr (useful for calling from the +/// debugger). +void __asan_print_accumulated_stats(void); + +/// User-provided default option settings. +/// +/// You can provide your own implementation of this function to return a string +/// containing ASan runtime options (for example, +/// verbosity=1:halt_on_error=0). +/// +/// \returns Default options string. +const char* __asan_default_options(void); + +// The following two functions facilitate garbage collection in presence of +// ASan's fake stack. + +/// Gets an opaque handler to the current thread's fake stack. +/// +/// Returns an opaque handler to be used by +/// __asan_addr_is_in_fake_stack(). Returns NULL if the current thread +/// does not have a fake stack. +/// +/// \returns An opaque handler to the fake stack or NULL. +void *__asan_get_current_fake_stack(void); + +/// Checks if an address belongs to a given fake stack. +/// +/// If fake_stack is non-NULL and addr belongs to a +/// fake frame in fake_stack, returns the address of the real +/// stack that corresponds to the fake frame and sets beg and +/// end to the boundaries of this fake frame. Otherwise returns +/// NULL and does not touch beg and end. +/// +/// If beg or end are NULL, they are not touched. +/// +/// \note This function can be called from a thread other than the owner of +/// fake_stack, but the owner thread needs to be alive. +/// +/// \param fake_stack An opaque handler to a fake stack. +/// \param addr Address to test. +/// \param beg [out] Beginning of fake frame. +/// \param end [out] End of fake frame. +/// \returns Stack address or NULL. +void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, + void **end); + +/// Performs shadow memory cleanup of the current thread's stack before a +/// function marked with the [[noreturn]] attribute is called. +/// +/// To avoid false positives on the stack, must be called before no-return +/// functions like _exit() and execl(). +void __asan_handle_no_return(void); #ifdef __cplusplus } // extern "C" Modified: stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Tue Jan 7 18:08:09 2020 (r356460) @@ -1,10 +1,9 @@ //===-- sanitizer/common_interface_defs.h -----------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // // Common part of the public sanitizer interface. @@ -18,189 +17,335 @@ // GCC does not understand __has_feature. #if !defined(__has_feature) -# define __has_feature(x) 0 +#define __has_feature(x) 0 #endif #ifdef __cplusplus extern "C" { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 7 18:42:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9AC751EF4F4; Tue, 7 Jan 2020 18:42:55 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sh8H3dZYz4SWW; Tue, 7 Jan 2020 18:42:55 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 77C623479; Tue, 7 Jan 2020 18:42:55 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007IgtlW054736; Tue, 7 Jan 2020 18:42:55 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007IgrB1054727; Tue, 7 Jan 2020 18:42:53 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001071842.007IgrB1054727@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 7 Jan 2020 18:42:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356461 - in stable/11/lib: libc/gen libutil X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: in stable/11/lib: libc/gen libutil X-SVN-Commit-Revision: 356461 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 18:42:55 -0000 Author: ian Date: Tue Jan 7 18:42:53 2020 New Revision: 356461 URL: https://svnweb.freebsd.org/changeset/base/356461 Log: MFC r336746, r336779 r336746: Make pw_scan(3) more compatible with getpwent(3) et. al. when processing data from /etc/passwd rather than /etc/master.passwd. The libc getpwent(3) and related functions automatically read master.passwd when run by root, or passwd when run by a non-root user. When run by non- root, getpwent() copes with the missing data by setting the corresponding fields in the passwd struct to known values (zeroes for numbers, or a pointer to an empty string for literals). When libutil's pw_scan(3) was used to parse a line without the root-accessible data, it was leaving garbage in the corresponding fields. These changes rename the static pw_init() function used by getpwent() and friends to __pw_initpwd(), and move it into pw_scan.c so that common init code can be shared between libc and libutil. pw_scan(3) now calls __pw_initpwd() before __pw_scan(), just like the getpwent() family does, so that reading an arbitrary passwd file in either format and parsing it with pw_scan(3) returns the same results as getpwent(3) would. This also adds a new pw_initpwd(3) function to libutil, so that code which creates passwd structs from scratch in some manner that doesn't involve pw_scan() can initialize the struct to the values expected by lots of existing code, which doesn't expect to encounter NULL pointers or garbage values in some fields. r336779: Stop exporting __pw_scan and __pw_initpwd as freebsd-private libc functions for use in libutil, and instead compile the small amount of common code directly into libutil with a .PATH reachover. Modified: stable/11/lib/libc/gen/Symbol.map stable/11/lib/libc/gen/getpwent.c stable/11/lib/libc/gen/pw_scan.c stable/11/lib/libc/gen/pw_scan.h stable/11/lib/libutil/Makefile stable/11/lib/libutil/libutil.h stable/11/lib/libutil/pw_util.3 stable/11/lib/libutil/pw_util.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/gen/Symbol.map ============================================================================== --- stable/11/lib/libc/gen/Symbol.map Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/Symbol.map Tue Jan 7 18:42:53 2020 (r356461) @@ -518,7 +518,6 @@ FBSDprivate_1.0 { __opendir2; __pause; _pause; - __pw_scan; /* Used by (at least) libutil */ __raise; _raise; __sleep; Modified: stable/11/lib/libc/gen/getpwent.c ============================================================================== --- stable/11/lib/libc/gen/getpwent.c Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/getpwent.c Tue Jan 7 18:42:53 2020 (r356461) @@ -94,8 +94,6 @@ int __pw_match_entry(const char *, size_t, enum nss_lo const char *, uid_t); int __pw_parse_entry(char *, size_t, struct passwd *, int, int *errnop); -static void pwd_init(struct passwd *); - union key { const char *name; uid_t uid; @@ -525,7 +523,7 @@ getpwent_r(struct passwd *pwd, char *buffer, size_t bu }; int rv, ret_errno; - pwd_init(pwd); + __pw_initpwd(pwd); ret_errno = 0; *result = NULL; rv = _nsdispatch(result, dtab, NSDB_PASSWD, "getpwent_r", defaultsrc, @@ -564,7 +562,7 @@ getpwnam_r(const char *name, struct passwd *pwd, char }; int rv, ret_errno; - pwd_init(pwd); + __pw_initpwd(pwd); ret_errno = 0; *result = NULL; rv = _nsdispatch(result, dtab, NSDB_PASSWD, "getpwnam_r", defaultsrc, @@ -603,7 +601,7 @@ getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer }; int rv, ret_errno; - pwd_init(pwd); + __pw_initpwd(pwd); ret_errno = 0; *result = NULL; rv = _nsdispatch(result, dtab, NSDB_PASSWD, "getpwuid_r", defaultsrc, @@ -615,23 +613,6 @@ getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer } -static void -pwd_init(struct passwd *pwd) -{ - static char nul[] = ""; - - memset(pwd, 0, sizeof(*pwd)); - pwd->pw_uid = (uid_t)-1; /* Considered least likely to lead to */ - pwd->pw_gid = (gid_t)-1; /* a security issue. */ - pwd->pw_name = nul; - pwd->pw_passwd = nul; - pwd->pw_class = nul; - pwd->pw_gecos = nul; - pwd->pw_dir = nul; - pwd->pw_shell = nul; -} - - static struct passwd pwd; static char *pwd_storage; static size_t pwd_storage_size; @@ -1612,7 +1593,7 @@ compat_redispatch(struct compat_state *st, enum nss_lo for (i = 0; i < (int)(nitems(dtab) - 1); i++) dtab[i].mdata = (void *)lookup_how; more: - pwd_init(pwd); + __pw_initpwd(pwd); switch (lookup_how) { case nss_lt_all: rv = _nsdispatch(&discard, dtab, NSDB_PASSWD_COMPAT, Modified: stable/11/lib/libc/gen/pw_scan.c ============================================================================== --- stable/11/lib/libc/gen/pw_scan.c Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/pw_scan.c Tue Jan 7 18:42:53 2020 (r356461) @@ -27,10 +27,10 @@ * SUCH DAMAGE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)pw_scan.c 8.3 (Berkeley) 4/2/94"; +static char sccsid[] __unused = "@(#)pw_scan.c 8.3 (Berkeley) 4/2/94"; #endif /* LIBC_SCCS and not lint */ -#include __FBSDID("$FreeBSD$"); /* @@ -66,6 +66,22 @@ __FBSDID("$FreeBSD$"); * system lag behind. */ static int pw_big_ids_warning = 0; + +void +__pw_initpwd(struct passwd *pwd) +{ + static char nul[] = ""; + + memset(pwd, 0, sizeof(*pwd)); + pwd->pw_uid = (uid_t)-1; /* Considered least likely to lead to */ + pwd->pw_gid = (gid_t)-1; /* a security issue. */ + pwd->pw_name = nul; + pwd->pw_passwd = nul; + pwd->pw_class = nul; + pwd->pw_gecos = nul; + pwd->pw_dir = nul; + pwd->pw_shell = nul; +} int __pw_scan(char *bp, struct passwd *pw, int flags) Modified: stable/11/lib/libc/gen/pw_scan.h ============================================================================== --- stable/11/lib/libc/gen/pw_scan.h Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/pw_scan.h Tue Jan 7 18:42:53 2020 (r356461) @@ -33,4 +33,5 @@ #define _PWSCAN_MASTER 0x01 #define _PWSCAN_WARN 0x02 +extern void __pw_initpwd(struct passwd *); extern int __pw_scan(char *, struct passwd *, int); Modified: stable/11/lib/libutil/Makefile ============================================================================== --- stable/11/lib/libutil/Makefile Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/Makefile Tue Jan 7 18:42:53 2020 (r356461) @@ -6,6 +6,8 @@ SHLIBDIR?= /lib .include +.PATH: ${SRCTOP}/lib/libc/gen # for pw_scan.c + LIB= util SHLIB_MAJOR= 9 @@ -15,8 +17,8 @@ SRCS= _secure_path.c auth.c expand_number.c flopen.c f kinfo_getvmobject.c kld.c \ login_auth.c login_cap.c \ login_class.c login_crypt.c login_ok.c login_times.c login_tty.c \ - pidfile.c property.c pty.c pw_util.c quotafile.c realhostname.c \ - stub.c trimdomain.c uucplock.c + pidfile.c property.c pty.c pw_scan.c pw_util.c quotafile.c \ + realhostname.c stub.c trimdomain.c uucplock.c INCS= libutil.h login_cap.h CFLAGS+= -DLIBC_SCCS Modified: stable/11/lib/libutil/libutil.h ============================================================================== --- stable/11/lib/libutil/libutil.h Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/libutil.h Tue Jan 7 18:42:53 2020 (r356461) @@ -152,6 +152,7 @@ int pw_edit(int _notsetuid); int pw_equal(const struct passwd *_pw1, const struct passwd *_pw2); void pw_fini(void); int pw_init(const char *_dir, const char *_master); +void pw_initpwd(struct passwd *_pw); char *pw_make(const struct passwd *_pw); char *pw_make_v7(const struct passwd *_pw); int pw_mkdb(const char *_user); Modified: stable/11/lib/libutil/pw_util.3 ============================================================================== --- stable/11/lib/libutil/pw_util.3 Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/pw_util.3 Tue Jan 7 18:42:53 2020 (r356461) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 02, 2015 +.Dd July 26, 2018 .Dt PW_UTIL 3 .Os .Sh NAME @@ -59,6 +59,8 @@ .Fn pw_fini "void" .Ft int .Fn pw_init "const char *dir" const char *master" +.Ft void +.Fn pw_initpwd "struct passwd *pw" .Ft "char *" .Fn pw_make "const struct passwd *pw" .Ft "char *" @@ -179,7 +181,7 @@ if any. .Pp The .Fn pw_init -initialize the static variable representing the path a password file. +initializes the static variable representing the path to a password file. .Fa dir is the directory where the password file is located. If set to @@ -192,6 +194,18 @@ If set to .Dv NULL? it will default to .Pa master.passwd +.Pp +The +.Fn pw_initpwd +function initializes the +.Vt passwd +struct to canonical values. +The entire structure is zeroed, then +.Va pw_uid +and +.Va pw_gid +are set to -1, and all string pointers are set to point at +an internally-defined zero-length string. .Pp The .Fn pw_make Modified: stable/11/lib/libutil/pw_util.c ============================================================================== --- stable/11/lib/libutil/pw_util.c Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/pw_util.c Tue Jan 7 18:42:53 2020 (r356461) @@ -654,8 +654,16 @@ pw_dup(const struct passwd *pw) #include "pw_scan.h" /* - * Wrapper around an internal libc function + * Wrapper around some internal libc functions. */ + +void +pw_initpwd(struct passwd *pw) +{ + + __pw_initpwd(pw); +} + struct passwd * pw_scan(const char *line, int flags) { @@ -664,6 +672,7 @@ pw_scan(const char *line, int flags) if ((bp = strdup(line)) == NULL) return (NULL); + __pw_initpwd(&pw); if (!__pw_scan(bp, &pw, flags)) { free(bp); return (NULL); From owner-svn-src-all@freebsd.org Tue Jan 7 19:49:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B35D31F0EF7; Tue, 7 Jan 2020 19:49:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sjd050fHz4X8W; Tue, 7 Jan 2020 19:49:24 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A23444221; Tue, 7 Jan 2020 19:49:24 +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 007JnOpx091471; Tue, 7 Jan 2020 19:49:24 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007JnA7p091402; Tue, 7 Jan 2020 19:49:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001071949.007JnA7p091402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 19:49:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356462 - in stable/12: . contrib/compiler-rt contrib/libc++ contrib/libunwind contrib/llvm contrib/llvm-project/libcxx/include contrib/openmp gnu/usr.bin/cc/include lib/clang lib/clang... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/compiler-rt contrib/libc++ contrib/libunwind contrib/llvm contrib/llvm-project/libcxx/include contrib/openmp gnu/usr.bin/cc/include lib/clang lib/clang/libclang lib/clang/libll... X-SVN-Commit-Revision: 356462 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 19:49:24 -0000 Author: dim Date: Tue Jan 7 19:49:10 2020 New Revision: 356462 URL: https://svnweb.freebsd.org/changeset/base/356462 Log: MFC r355940: Move all sources from the llvm project into contrib/llvm-project. This uses the new layout of the upstream repository, which was recently migrated to GitHub, and converted into a "monorepo". That is, most of the earlier separate sub-projects with their own branches and tags were consolidated into one top-level directory, and are now branched and tagged together. Updating the vendor area to match this layout is next. Added: - copied from r355940, head/contrib/llvm-project/ Directory Properties: stable/12/contrib/llvm-project/ (props changed) Deleted: stable/12/contrib/compiler-rt/ stable/12/contrib/libc++/ stable/12/contrib/libunwind/ stable/12/contrib/llvm/ stable/12/contrib/openmp/ Modified: stable/12/MAINTAINERS stable/12/contrib/llvm-project/libcxx/include/__errc stable/12/contrib/llvm-project/libcxx/include/errno.h stable/12/gnu/usr.bin/cc/include/Makefile stable/12/lib/clang/clang.build.mk stable/12/lib/clang/clang.pre.mk stable/12/lib/clang/libclang/Makefile stable/12/lib/clang/liblldb/Makefile stable/12/lib/clang/libllvm/Makefile stable/12/lib/clang/libllvmminimal/Makefile stable/12/lib/clang/lldb.pre.mk stable/12/lib/clang/llvm.build.mk stable/12/lib/clang/llvm.pre.mk stable/12/lib/libblocksruntime/Makefile stable/12/lib/libc++/Makefile stable/12/lib/libc++experimental/Makefile stable/12/lib/libc/arm/aeabi/Makefile.inc stable/12/lib/libclang_rt/Makefile.inc stable/12/lib/libcompiler_rt/Makefile.inc stable/12/lib/libgcc_eh/Makefile.inc stable/12/lib/libomp/Makefile stable/12/share/doc/llvm/Makefile stable/12/share/doc/llvm/clang/Makefile stable/12/share/mk/bsd.clang-analyze.mk stable/12/stand/i386/boot2/Makefile stable/12/stand/libsa/Makefile stable/12/sys/modules/aesni/Makefile stable/12/sys/modules/blake2/Makefile stable/12/usr.bin/clang/bugpoint/Makefile stable/12/usr.bin/clang/clang-format/Makefile stable/12/usr.bin/clang/clang-tblgen/Makefile stable/12/usr.bin/clang/clang/Makefile stable/12/usr.bin/clang/llc/Makefile stable/12/usr.bin/clang/lld/Makefile stable/12/usr.bin/clang/lldb-tblgen/Makefile stable/12/usr.bin/clang/lldb/Makefile stable/12/usr.bin/clang/lli/Makefile stable/12/usr.bin/clang/llvm-ar/Makefile stable/12/usr.bin/clang/llvm-as/Makefile stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile stable/12/usr.bin/clang/llvm-cov/Makefile stable/12/usr.bin/clang/llvm-cxxdump/Makefile stable/12/usr.bin/clang/llvm-cxxfilt/Makefile stable/12/usr.bin/clang/llvm-diff/Makefile stable/12/usr.bin/clang/llvm-dis/Makefile stable/12/usr.bin/clang/llvm-dwarfdump/Makefile stable/12/usr.bin/clang/llvm-extract/Makefile stable/12/usr.bin/clang/llvm-link/Makefile stable/12/usr.bin/clang/llvm-lto/Makefile stable/12/usr.bin/clang/llvm-lto2/Makefile stable/12/usr.bin/clang/llvm-mc/Makefile stable/12/usr.bin/clang/llvm-mca/Makefile stable/12/usr.bin/clang/llvm-modextract/Makefile stable/12/usr.bin/clang/llvm-nm/Makefile stable/12/usr.bin/clang/llvm-objcopy/Makefile stable/12/usr.bin/clang/llvm-objdump/Makefile stable/12/usr.bin/clang/llvm-pdbutil/Makefile stable/12/usr.bin/clang/llvm-profdata/Makefile stable/12/usr.bin/clang/llvm-rtdyld/Makefile stable/12/usr.bin/clang/llvm-symbolizer/Makefile stable/12/usr.bin/clang/llvm-tblgen/Makefile stable/12/usr.bin/clang/llvm-xray/Makefile stable/12/usr.bin/clang/opt/Makefile Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) stable/12/contrib/llvm-project/libunwind/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) stable/12/contrib/llvm-project/openmp/ (props changed) Modified: stable/12/MAINTAINERS ============================================================================== --- stable/12/MAINTAINERS Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/MAINTAINERS Tue Jan 7 19:49:10 2020 (r356462) @@ -37,14 +37,13 @@ subsystem login notes ----------------------------- atf freebsd-testing,jmmv,ngie Pre-commit review requested. ath(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org -contrib/compiler-rt dim Pre-commit review preferred. -contrib/libc++ dim Pre-commit review preferred. -contrib/libcxxrt dim Pre-commit review preferred. -contrib/llvm dim Pre-commit review preferred. -contrib/llvm/tools/lldb emaste Pre-commit review preferred. -contrib/netbsd-tests freebsd-testing,ngie Pre-commit review requested. -contrib/pjdfstest freebsd-testing,asomers,ngie,pjd Pre-commit review requested. -dev/usb/wlan adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org +contrib/libcxxrt dim,emaste Pre-commit review preferred. +contrib/llvm-project/compiler-rt dim Pre-commit review preferred. +contrib/llvm-project/libcxx dim Pre-commit review preferred. +contrib/llvm-project/libunwind dim,emaste,jhb Pre-commit review preferred. +contrib/llvm-project/lldb dim,emaste Pre-commit review preferred. +contrib/llvm-project/llvm dim Pre-commit review preferred. +contrib/llvm-project/openmp dim,emaste Pre-commit review preferred. *env(3) secteam Due to the problematic security history of this code, please have patches reviewed by secteam. etc/mail gshapiro Pre-commit review requested. Keep in sync with -STABLE. Modified: stable/12/contrib/llvm-project/libcxx/include/__errc ============================================================================== --- head/contrib/llvm-project/libcxx/include/__errc Fri Dec 20 19:53:05 2019 (r355940) +++ stable/12/contrib/llvm-project/libcxx/include/__errc Tue Jan 7 19:49:10 2020 (r356462) @@ -45,7 +45,6 @@ enum class errc identifier_removed, // EIDRM illegal_byte_sequence, // EILSEQ inappropriate_io_control_operation, // ENOTTY - integrity_check_failed, // EINTEGRITY interrupted, // EINTR invalid_argument, // EINVAL invalid_seek, // ESPIPE @@ -143,7 +142,6 @@ _LIBCPP_DECLARE_STRONG_ENUM(errc) identifier_removed = EIDRM, illegal_byte_sequence = EILSEQ, inappropriate_io_control_operation = ENOTTY, - integrity_check_failed = EINTEGRITY, interrupted = EINTR, invalid_argument = EINVAL, invalid_seek = ESPIPE, Modified: stable/12/contrib/llvm-project/libcxx/include/errno.h ============================================================================== --- head/contrib/llvm-project/libcxx/include/errno.h Fri Dec 20 19:53:05 2019 (r355940) +++ stable/12/contrib/llvm-project/libcxx/include/errno.h Tue Jan 7 19:49:10 2020 (r356462) @@ -32,79 +32,49 @@ Macros: #ifdef __cplusplus -#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) || !defined(EINTEGRITY) +#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) -#if defined(ELAST) +#ifdef ELAST static const int __elast1 = ELAST+1; static const int __elast2 = ELAST+2; -static const int __elast3 = ELAST+3; #else static const int __elast1 = 104; static const int __elast2 = 105; -static const int __elast3 = 106; #endif -#if !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EOWNERDEAD __elast2 -#define EINTEGRITY __elast3 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif +#ifdef ENOTRECOVERABLE -#elif !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EOWNERDEAD __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EOWNERDEAD -#endif - -#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) #define EOWNERDEAD __elast1 -#define EINTEGRITY __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif -#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && defined(EINTEGRITY) -#define EOWNERDEAD __elast1 -#if defined(ELAST) +#ifdef ELAST #undef ELAST #define ELAST EOWNERDEAD #endif -#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EINTEGRITY __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif +#elif defined(EOWNERDEAD) -#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) #define ENOTRECOVERABLE __elast1 -#if defined(ELAST) +#ifdef ELAST #undef ELAST #define ELAST ENOTRECOVERABLE #endif -#elif defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define EINTEGRITY __elast1 -#if defined(ELAST) +#else // defined(EOWNERDEAD) + +#define EOWNERDEAD __elast1 +#define ENOTRECOVERABLE __elast2 +#ifdef ELAST #undef ELAST -#define ELAST EINTEGRITY +#define ELAST ENOTRECOVERABLE #endif -#endif // !defined(OWNERDEAD) && !defined(NOTRECOVERABLE) && !defined(INTEGRITY) +#endif // defined(EOWNERDEAD) -#endif // !defined(OWNERDEAD) || !defined(NOTRECOVERABLE) || !defined(INTEGRITY) +#endif // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) // supply errno values likely to be missing, particularly on Windows @@ -420,10 +390,6 @@ static const int __elast3 = 106; #ifndef EMLINK #define EMLINK 9979 -#endif - -#ifndef EINTEGRITY -#define EINTEGRITY 9980 #endif #endif // __cplusplus Modified: stable/12/gnu/usr.bin/cc/include/Makefile ============================================================================== --- stable/12/gnu/usr.bin/cc/include/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/gnu/usr.bin/cc/include/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -6,7 +6,7 @@ INCSDIR=${INCLUDEDIR}/gcc/${GCCVER} -.PATH: ${GCCDIR}/config/${GCC_CPU} ${SRCTOP}/contrib/llvm/tools/clang/lib/Headers +.PATH: ${GCCDIR}/config/${GCC_CPU} ${SRCTOP}/contrib/llvm-project/clang/lib/Headers .if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" INCS= ammintrin.h emmintrin.h mmintrin.h mm3dnow.h pmmintrin.h \ Modified: stable/12/lib/clang/clang.build.mk ============================================================================== --- stable/12/lib/clang/clang.build.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/clang.build.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,16 +2,8 @@ .include -.ifndef LLVM_SRCS -.error Please define LLVM_SRCS before including this file -.endif - .ifndef CLANG_SRCS .error Please define CLANG_SRCS before including this file -.endif - -.ifndef SRCDIR -.error Please define SRCDIR before including this file .endif CFLAGS+= -I${CLANG_SRCS}/include Modified: stable/12/lib/clang/clang.pre.mk ============================================================================== --- stable/12/lib/clang/clang.pre.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/clang.pre.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,6 +2,6 @@ .include "llvm.pre.mk" -CLANG_SRCS= ${LLVM_SRCS}/tools/clang +CLANG_SRCS= ${LLVM_BASE}/clang CLANG_TBLGEN?= clang-tblgen Modified: stable/12/lib/clang/libclang/Makefile ============================================================================== --- stable/12/lib/clang/libclang/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/libclang/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -18,7 +18,7 @@ CFLAGS.Targets.cpp+= -include ../freebsd_cc_version.h CXXFLAGS.Module.cpp+= -fpermissive .endif -SRCDIR= tools/clang/lib +SRCDIR= clang/lib # Explanation of different SRCS variants below: # SRCS_MIN: always required, even for bootstrap Modified: stable/12/lib/clang/liblldb/Makefile ============================================================================== --- stable/12/lib/clang/liblldb/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/liblldb/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ .include "../lldb.pre.mk" LIB= lldb -SRCDIR= tools/lldb/source +SRCDIR= lldb/source CFLAGS+= -I${LLDB_SRCS}/include CFLAGS+= -I${LLDB_SRCS}/source Modified: stable/12/lib/clang/libllvm/Makefile ============================================================================== --- stable/12/lib/clang/libllvm/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/libllvm/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -24,7 +24,7 @@ CFLAGS+= -I${LLVM_SRCS}/lib/Target/${arch} . endif .endfor -SRCDIR= lib +SRCDIR= llvm/lib # Explanation of different SRCS variants below: # SRCS_MIN: always required, even for bootstrap Modified: stable/12/lib/clang/libllvmminimal/Makefile ============================================================================== --- stable/12/lib/clang/libllvmminimal/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/libllvmminimal/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -5,7 +5,7 @@ LIB= llvmminimal INTERNALLIB= -SRCDIR= lib +SRCDIR= llvm/lib SRCS+= Demangle/ItaniumDemangle.cpp SRCS+= Support/APFloat.cpp SRCS+= Support/APInt.cpp Modified: stable/12/lib/clang/lldb.pre.mk ============================================================================== --- stable/12/lib/clang/lldb.pre.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/lldb.pre.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,4 +2,4 @@ .include "clang.pre.mk" -LLDB_SRCS= ${LLVM_SRCS}/tools/lldb +LLDB_SRCS= ${LLVM_BASE}/lldb Modified: stable/12/lib/clang/llvm.build.mk ============================================================================== --- stable/12/lib/clang/llvm.build.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/llvm.build.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,6 +2,10 @@ .include +.ifndef LLVM_BASE +.error Please define LLVM_BASE before including this file +.endif + .ifndef LLVM_SRCS .error Please define LLVM_SRCS before including this file .endif @@ -10,7 +14,7 @@ .error Please define SRCDIR before including this file .endif -.PATH: ${LLVM_SRCS}/${SRCDIR} +.PATH: ${LLVM_BASE}/${SRCDIR} CFLAGS+= -I${SRCTOP}/lib/clang/include CFLAGS+= -I${LLVM_SRCS}/include Modified: stable/12/lib/clang/llvm.pre.mk ============================================================================== --- stable/12/lib/clang/llvm.pre.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/llvm.pre.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -1,5 +1,7 @@ + # $FreeBSD$ -LLVM_SRCS= ${SRCTOP}/contrib/llvm +LLVM_BASE= ${SRCTOP}/contrib/llvm-project +LLVM_SRCS= ${LLVM_BASE}/llvm LLVM_TBLGEN?= llvm-tblgen Modified: stable/12/lib/libblocksruntime/Makefile ============================================================================== --- stable/12/lib/libblocksruntime/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libblocksruntime/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -6,7 +6,7 @@ SHLIB_MAJOR=0 CFLAGS+=-I${.CURDIR} WARNS?= 2 -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/BlocksRuntime +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/BlocksRuntime INCS= Block.h Block_private.h SRCS= data.c runtime.c Modified: stable/12/lib/libc++/Makefile ============================================================================== --- stable/12/lib/libc++/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libc++/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -4,8 +4,8 @@ PACKAGE= clibs _LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt -HDRDIR= ${SRCTOP}/contrib/libc++/include -SRCDIR= ${SRCTOP}/contrib/libc++/src +HDRDIR= ${SRCTOP}/contrib/llvm-project/libcxx/include +SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx/src CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} .if ${MACHINE_CPUARCH} == "arm" STATIC_CXXFLAGS+= -mlong-calls Modified: stable/12/lib/libc++experimental/Makefile ============================================================================== --- stable/12/lib/libc++experimental/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libc++experimental/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ .include PACKAGE= clibs -SRCDIR= ${SRCTOP}/contrib/libc++ +SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx LIB= c++experimental NO_PIC= Modified: stable/12/lib/libc/arm/aeabi/Makefile.inc ============================================================================== --- stable/12/lib/libc/arm/aeabi/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libc/arm/aeabi/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -21,7 +21,7 @@ SRCS+= aeabi_vfp_double.S \ # libc. This causes issues when other parts of libc call these functions. # We work around this by including these functions in libc but mark them as # hidden so users of libc will not pick up these versions. -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins/arm +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins/arm SRCS+= aeabi_memcmp.S \ aeabi_memcpy.S \ Modified: stable/12/lib/libclang_rt/Makefile.inc ============================================================================== --- stable/12/lib/libclang_rt/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libclang_rt/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -10,7 +10,7 @@ CRTARCH?= armhf .else CRTARCH?= ${MACHINE_CPUARCH:C/amd64/x86_64/} .endif -CRTSRC= ${SRCTOP}/contrib/compiler-rt +CRTSRC= ${SRCTOP}/contrib/llvm-project/compiler-rt .PATH: ${CRTSRC}/lib Modified: stable/12/lib/libcompiler_rt/Makefile.inc ============================================================================== --- stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ CRTARCH= ${MACHINE_CPUARCH:C/amd64/x86_64/} -CRTSRC= ${SRCTOP}/contrib/compiler-rt/lib/builtins +CRTSRC= ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins .PATH: ${CRTSRC}/${CRTARCH} .PATH: ${CRTSRC} Modified: stable/12/lib/libgcc_eh/Makefile.inc ============================================================================== --- stable/12/lib/libgcc_eh/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libgcc_eh/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -1,8 +1,8 @@ # $FreeBSD$ -COMPILERRTDIR= ${SRCTOP}/contrib/compiler-rt -UNWINDINCDIR= ${SRCTOP}/contrib/libunwind/include -UNWINDSRCDIR= ${SRCTOP}/contrib/libunwind/src +COMPILERRTDIR= ${SRCTOP}/contrib/llvm-project/compiler-rt +UNWINDINCDIR= ${SRCTOP}/contrib/llvm-project/libunwind/include +UNWINDSRCDIR= ${SRCTOP}/contrib/llvm-project/libunwind/src STATIC_CFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN @@ -33,5 +33,5 @@ STATIC_CXXFLAGS+= -fvisibility=hidden -fPIC # Probably need to just move this earlier or use CXXFLAGS .if ${MK_DIRDEPS_BUILD} == "yes" # Avoid dependency on lib/libc++ -CFLAGS+= -isystem ${SRCTOP}/contrib/libc++/include -nostdinc++ +CFLAGS+= -isystem ${SRCTOP}/contrib/llvm-project/libcxx/include -nostdinc++ .endif Modified: stable/12/lib/libomp/Makefile ============================================================================== --- stable/12/lib/libomp/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libomp/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -4,7 +4,7 @@ SHLIB_NAME= libomp.so -OMPSRC= ${SRCTOP}/contrib/openmp/runtime/src +OMPSRC= ${SRCTOP}/contrib/llvm-project/openmp/runtime/src ITTSRC= ${OMPSRC}/thirdparty/ittnotify .PATH: ${OMPSRC} .PATH: ${ITTSRC} Modified: stable/12/share/doc/llvm/Makefile ============================================================================== --- stable/12/share/doc/llvm/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/share/doc/llvm/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ SUBDIR= clang -SRCDIR= ${SRCTOP}/contrib/llvm +SRCDIR= ${SRCTOP}/contrib/llvm-project/llvm .PATH: ${SRCDIR} ${SRCDIR}/lib/Support Modified: stable/12/share/doc/llvm/clang/Makefile ============================================================================== --- stable/12/share/doc/llvm/clang/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/share/doc/llvm/clang/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -1,6 +1,6 @@ # $FreeBSD$ -SRCDIR= ${SRCTOP}/contrib/llvm/tools/clang +SRCDIR= ${SRCTOP}/contrib/llvm-project/clang .PATH: ${SRCDIR} Modified: stable/12/share/mk/bsd.clang-analyze.mk ============================================================================== --- stable/12/share/mk/bsd.clang-analyze.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/share/mk/bsd.clang-analyze.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -14,7 +14,7 @@ # html - generate html in obj.plist/ directories. # plist - generate xml obj.plist files. # See also: -# contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def +# contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/Analyses.def # # CLANG_ANALYZE_OUTPUT_DIR Sets which directory output set by # CLANG_ANALYZE_OUTPUT is placed into. Modified: stable/12/stand/i386/boot2/Makefile ============================================================================== --- stable/12/stand/i386/boot2/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/stand/i386/boot2/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -79,7 +79,7 @@ boot2.bin: boot2.out ${OBJCOPY} -S -O binary boot2.out ${.TARGET} # For __ashldi3 -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins CFLAGS.ashldi3.c= -Wno-missing-prototypes -Wno-missing-declarations CLEANFILES+= ashldi3.o Modified: stable/12/stand/libsa/Makefile ============================================================================== --- stable/12/stand/libsa/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/stand/libsa/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -53,7 +53,7 @@ CFLAGS.clang+= -mno-movt .endif CFLAGS.clang+= -mfpu=none -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins/arm/ +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins/arm/ SRCS+= aeabi_idivmod.S aeabi_ldivmod.S aeabi_uidivmod.S aeabi_uldivmod.S SRCS+= aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S aeabi_memset.S .endif @@ -63,7 +63,7 @@ SRCS+= aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S a .endif # Compiler support functions -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins/ +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins/ # __clzsi2 and ctzsi2 for various builtin functions SRCS+= clzsi2.c ctzsi2.c # Divide and modulus functions called by the compiler Modified: stable/12/sys/modules/aesni/Makefile ============================================================================== --- stable/12/sys/modules/aesni/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/sys/modules/aesni/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -1,7 +1,7 @@ # $FreeBSD$ .PATH: ${SRCTOP}/sys/crypto/aesni -.PATH: ${SRCTOP}/contrib/llvm/tools/clang/lib/Headers +.PATH: ${SRCTOP}/contrib/llvm-project/clang/lib/Headers KMOD= aesni SRCS= aesni.c Modified: stable/12/sys/modules/blake2/Makefile ============================================================================== --- stable/12/sys/modules/blake2/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/sys/modules/blake2/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ .PATH: ${SRCTOP}/sys/contrib/libb2 .PATH: ${SRCTOP}/sys/crypto/blake2 .PATH: ${SRCTOP}/sys/opencrypto -.PATH: ${SRCTOP}/contrib/llvm/tools/clang/lib/Headers +.PATH: ${SRCTOP}/contrib/llvm-project/clang/lib/Headers KMOD = blake2 Modified: stable/12/usr.bin/clang/bugpoint/Makefile ============================================================================== --- stable/12/usr.bin/clang/bugpoint/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/bugpoint/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= bugpoint -SRCDIR= tools/bugpoint +SRCDIR= llvm/tools/bugpoint SRCS+= BugDriver.cpp SRCS+= CrashDebugger.cpp SRCS+= ExecutionDriver.cpp Modified: stable/12/usr.bin/clang/clang-format/Makefile ============================================================================== --- stable/12/usr.bin/clang/clang-format/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/clang-format/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= clang-format MAN= -SRCDIR= tools/clang/tools/clang-format +SRCDIR= clang/tools/clang-format SRCS+= ClangFormat.cpp .include "../clang.prog.mk" Modified: stable/12/usr.bin/clang/clang-tblgen/Makefile ============================================================================== --- stable/12/usr.bin/clang/clang-tblgen/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/clang-tblgen/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= clang-tblgen MAN= -SRCDIR= tools/clang/utils/TableGen +SRCDIR= clang/utils/TableGen SRCS+= ClangASTNodesEmitter.cpp SRCS+= ClangAttrEmitter.cpp SRCS+= ClangCommentCommandInfoEmitter.cpp Modified: stable/12/usr.bin/clang/clang/Makefile ============================================================================== --- stable/12/usr.bin/clang/clang/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/clang/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -4,7 +4,7 @@ PROG_CXX= clang -SRCDIR= tools/clang/tools/driver +SRCDIR= clang/tools/driver SRCS+= cc1_main.cpp SRCS+= cc1as_main.cpp SRCS+= cc1gen_reproducer_main.cpp Modified: stable/12/usr.bin/clang/llc/Makefile ============================================================================== --- stable/12/usr.bin/clang/llc/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llc/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llc -SRCDIR= tools/llc +SRCDIR= llvm/tools/llc SRCS+= llc.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/lld/Makefile ============================================================================== --- stable/12/usr.bin/clang/lld/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lld/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,8 +2,9 @@ .include -LLVM_SRCS= ${SRCTOP}/contrib/llvm -LLD_SRCS= ${LLVM_SRCS}/tools/lld +LLVM_BASE= ${SRCTOP}/contrib/llvm-project +LLVM_SRCS= ${LLVM_BASE}/llvm +LLD_SRCS= ${LLVM_BASE}/lld PACKAGE= lld PROG_CXX= ld.lld @@ -24,7 +25,7 @@ CFLAGS+= -I${LLD_SRCS}/include CFLAGS+= -I${.OBJDIR} CFLAGS+= -I${OBJTOP}/lib/clang/libllvm -SRCDIR= tools/lld +SRCDIR= lld SRCS+= Common/Args.cpp SRCS+= Common/ErrorHandler.cpp SRCS+= Common/Filesystem.cpp Modified: stable/12/usr.bin/clang/lldb-tblgen/Makefile ============================================================================== --- stable/12/usr.bin/clang/lldb-tblgen/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lldb-tblgen/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= lldb-tblgen MAN= -SRCDIR= tools/lldb/utils/TableGen +SRCDIR= lldb/utils/TableGen SRCS+= LLDBOptionDefEmitter.cpp SRCS+= LLDBTableGen.cpp Modified: stable/12/usr.bin/clang/lldb/Makefile ============================================================================== --- stable/12/usr.bin/clang/lldb/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lldb/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -10,7 +10,7 @@ PROG_CXX= lldb CFLAGS+= -I${LLDB_SRCS}/include CFLAGS+= -I${.OBJDIR} -SRCDIR= tools/lldb/tools/driver +SRCDIR= lldb/tools/driver SRCS+= Driver.cpp .include "${SRCTOP}/lib/clang/clang.build.mk" Modified: stable/12/usr.bin/clang/lli/Makefile ============================================================================== --- stable/12/usr.bin/clang/lli/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lli/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= lli -SRCDIR= tools/lli +SRCDIR= llvm/tools/lli SRCS+= lli.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-ar/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-ar/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-ar/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-ar -SRCDIR= tools/llvm-ar +SRCDIR= llvm/tools/llvm-ar SRCS+= llvm-ar.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-as/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-as/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-as/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-as -SRCDIR= tools/llvm-as +SRCDIR= llvm/tools/llvm-as SRCS+= llvm-as.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-bcanalyzer -SRCDIR= tools/llvm-bcanalyzer +SRCDIR= llvm/tools/llvm-bcanalyzer SRCS+= llvm-bcanalyzer.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-cov/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-cov/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-cov/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -8,7 +8,7 @@ LINKS= ${BINDIR}/llvm-cov ${BINDIR}/gcov MLINKS= llvm-cov.1 gcov.1 .endif -SRCDIR= tools/llvm-cov +SRCDIR= llvm/tools/llvm-cov SRCS+= CodeCoverage.cpp SRCS+= CoverageExporterJson.cpp SRCS+= CoverageExporterLcov.cpp Modified: stable/12/usr.bin/clang/llvm-cxxdump/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-cxxdump/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-cxxdump/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-cxxdump MAN= -SRCDIR= tools/llvm-cxxdump +SRCDIR= llvm/tools/llvm-cxxdump SRCS+= Error.cpp SRCS+= llvm-cxxdump.cpp Modified: stable/12/usr.bin/clang/llvm-cxxfilt/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-cxxfilt/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-cxxfilt/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-cxxfilt MAN= -SRCDIR= tools/llvm-cxxfilt +SRCDIR= llvm/tools/llvm-cxxfilt SRCS+= llvm-cxxfilt.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-diff/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-diff/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-diff/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-diff -SRCDIR= tools/llvm-diff +SRCDIR= llvm/tools/llvm-diff SRCS+= DiffConsumer.cpp SRCS+= DiffLog.cpp SRCS+= DifferenceEngine.cpp Modified: stable/12/usr.bin/clang/llvm-dis/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-dis/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-dis/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-dis -SRCDIR= tools/llvm-dis +SRCDIR= llvm/tools/llvm-dis SRCS+= llvm-dis.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-dwarfdump/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-dwarfdump/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-dwarfdump/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-dwarfdump -SRCDIR= tools/llvm-dwarfdump +SRCDIR= llvm/tools/llvm-dwarfdump SRCS+= Statistics.cpp SRCS+= llvm-dwarfdump.cpp Modified: stable/12/usr.bin/clang/llvm-extract/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-extract/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-extract/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-extract -SRCDIR= tools/llvm-extract +SRCDIR= llvm/tools/llvm-extract SRCS+= llvm-extract.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-link/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-link/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-link/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-link -SRCDIR= tools/llvm-link +SRCDIR= llvm/tools/llvm-link SRCS+= llvm-link.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-lto/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-lto/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-lto/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-lto MAN= -SRCDIR= tools/llvm-lto +SRCDIR= llvm/tools/llvm-lto SRCS= llvm-lto.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-lto2/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-lto2/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-lto2/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-lto2 MAN= -SRCDIR= tools/llvm-lto2 +SRCDIR= llvm/tools/llvm-lto2 SRCS= llvm-lto2.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-mc/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-mc/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-mc/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-mc MAN= -SRCDIR= tools/llvm-mc +SRCDIR= llvm/tools/llvm-mc SRCS+= Disassembler.cpp SRCS+= llvm-mc.cpp Modified: stable/12/usr.bin/clang/llvm-mca/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-mca/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-mca/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-mca -SRCDIR= tools/llvm-mca +SRCDIR= llvm/tools/llvm-mca SRCS+= CodeRegion.cpp SRCS+= CodeRegionGenerator.cpp SRCS+= PipelinePrinter.cpp @@ -18,7 +18,7 @@ SRCS+= Views/TimelineView.cpp SRCS+= Views/View.cpp SRCS+= llvm-mca.cpp -CFLAGS+= -I${LLVM_SRCS}/${SRCDIR} +CFLAGS+= -I${LLVM_BASE}/${SRCDIR} LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-modextract/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-modextract/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-modextract/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-modextract MAN= -SRCDIR= tools/llvm-modextract +SRCDIR= llvm/tools/llvm-modextract SRCS= llvm-modextract.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-nm/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-nm/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-nm/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-nm -SRCDIR= tools/llvm-nm +SRCDIR= llvm/tools/llvm-nm SRCS+= llvm-nm.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-objcopy/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-objcopy/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-objcopy/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-objcopy MAN= -SRCDIR= tools/llvm-objcopy +SRCDIR= llvm/tools/llvm-objcopy SRCS+= Buffer.cpp SRCS+= COFF/COFFObjcopy.cpp SRCS+= COFF/Object.cpp @@ -21,15 +21,15 @@ SRCS+= llvm-objcopy.cpp .include "${SRCTOP}/lib/clang/llvm.pre.mk" CFLAGS+= -I${.OBJDIR} -CFLAGS+= -I${LLVM_SRCS}/${SRCDIR} +CFLAGS+= -I${LLVM_BASE}/${SRCDIR} .include "${SRCTOP}/lib/clang/llvm.build.mk" .for hdr in ObjcopyOpts StripOpts -${hdr}.inc: ${LLVM_SRCS}/${SRCDIR}/${hdr}.td +${hdr}.inc: ${LLVM_BASE}/${SRCDIR}/${hdr}.td ${LLVM_TBLGEN} -gen-opt-parser-defs \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ - ${LLVM_SRCS}/${SRCDIR}/${hdr}.td + ${LLVM_BASE}/${SRCDIR}/${hdr}.td TGHDRS+= ${hdr}.inc .endfor Modified: stable/12/usr.bin/clang/llvm-objdump/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-objdump/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-objdump/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-objdump -SRCDIR= tools/llvm-objdump +SRCDIR= llvm/tools/llvm-objdump SRCS+= COFFDump.cpp SRCS+= ELFDump.cpp SRCS+= MachODump.cpp Modified: stable/12/usr.bin/clang/llvm-pdbutil/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-pdbutil/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-pdbutil/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-pdbutil -SRCDIR= tools/llvm-pdbutil +SRCDIR= llvm/tools/llvm-pdbutil SRCS+= BytesOutputStyle.cpp SRCS+= DumpOutputStyle.cpp SRCS+= ExplainOutputStyle.cpp Modified: stable/12/usr.bin/clang/llvm-profdata/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-profdata/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-profdata/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-profdata -SRCDIR= tools/llvm-profdata +SRCDIR= llvm/tools/llvm-profdata SRCS+= llvm-profdata.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-rtdyld/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-rtdyld/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-rtdyld/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-rtdyld MAN= -SRCDIR= tools/llvm-rtdyld +SRCDIR= llvm/tools/llvm-rtdyld SRCS+= llvm-rtdyld.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-symbolizer/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-symbolizer/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-symbolizer/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-symbolizer -SRCDIR= tools/llvm-symbolizer +SRCDIR= llvm/tools/llvm-symbolizer SRCS+= llvm-symbolizer.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-tblgen/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-tblgen/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-tblgen/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-tblgen -SRCDIR= utils/TableGen +SRCDIR= llvm/utils/TableGen SRCS+= AsmMatcherEmitter.cpp SRCS+= AsmWriterEmitter.cpp SRCS+= AsmWriterInst.cpp Modified: stable/12/usr.bin/clang/llvm-xray/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-xray/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-xray/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-xray MAN= -SRCDIR= tools/llvm-xray +SRCDIR= llvm/tools/llvm-xray SRCS+= func-id-helper.cpp SRCS+= llvm-xray.cpp SRCS+= xray-account.cpp Modified: stable/12/usr.bin/clang/opt/Makefile ============================================================================== --- stable/12/usr.bin/clang/opt/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/opt/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= opt -SRCDIR= tools/opt +SRCDIR= llvm/tools/opt SRCS+= AnalysisWrappers.cpp SRCS+= BreakpointPrinter.cpp SRCS+= Debugify.cpp From owner-svn-src-all@freebsd.org Tue Jan 7 19:49:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2246B1F0F27; Tue, 7 Jan 2020 19:49:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sjd80B5zz4XFs; Tue, 7 Jan 2020 19:49:32 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 014BE4222; Tue, 7 Jan 2020 19:49:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007JnVcX091523; Tue, 7 Jan 2020 19:49:31 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007JnV2Q091522; Tue, 7 Jan 2020 19:49:31 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001071949.007JnV2Q091522@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 7 Jan 2020 19:49:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356463 - head/gnu/lib/libssp X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/gnu/lib/libssp X-SVN-Commit-Revision: 356463 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 19:49:32 -0000 Author: kevans Date: Tue Jan 7 19:49:31 2020 New Revision: 356463 URL: https://svnweb.freebsd.org/changeset/base/356463 Log: Remove gcclibs libssp build glue r356356 started providing libssp based on ^/lib/libc/secure and disconnected this version from the build. This one did formally provide runtime support for _FORTIFY_SOURCE, but FreeBSD lacks the build support that would have been needed to take advantage of it. MFC after: never Deleted: head/gnu/lib/libssp/ From owner-svn-src-all@freebsd.org Tue Jan 7 19:54:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 145F91F11C3; Tue, 7 Jan 2020 19:54:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sjks5crsz4XhP; Tue, 7 Jan 2020 19:54:29 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A21064402; Tue, 7 Jan 2020 19:54:29 +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 007JsTl4097053; Tue, 7 Jan 2020 19:54:29 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007JsTjx097052; Tue, 7 Jan 2020 19:54:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001071954.007JsTjx097052@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 19:54:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356464 - in stable/12/contrib/llvm-project: . clang clang/lib/Basic compiler-rt libcxx libunwind lld lldb llvm llvm/lib/Target/WebAssembly/InstPrinter openmp X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/contrib/llvm-project: . clang clang/lib/Basic compiler-rt libcxx libunwind lld lldb llvm llvm/lib/Target/WebAssembly/InstPrinter openmp X-SVN-Commit-Revision: 356464 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 19:54:30 -0000 Author: dim Date: Tue Jan 7 19:54:29 2020 New Revision: 356464 URL: https://svnweb.freebsd.org/changeset/base/356464 Log: MFC r355948: Bootstrap mergeinfo for contrib/llvm-project Merge (record-only) the following paths to contrib/llvm-project: * ^/vendor/llvm-project/master * ^/vendor/llvm-project/release-8.x * ^/vendor/llvm-project/release-9.x MFC r355951: Merge empty dir updates from r355950 in vendor/llvm-project. MFC r355957: Merge diff elimination updates from r355953 into vendor/llvm-project. MFC r355959: Consolidate FREEBSD-Xlist files of different llvm sub-projects into one. Added: stable/12/contrib/llvm-project/FREEBSD-Xlist - copied unchanged from r355959, head/contrib/llvm-project/FREEBSD-Xlist Deleted: stable/12/contrib/llvm-project/clang/FREEBSD-Xlist stable/12/contrib/llvm-project/compiler-rt/FREEBSD-Xlist stable/12/contrib/llvm-project/libcxx/FREEBSD-Xlist stable/12/contrib/llvm-project/libcxx/FREEBSD-upgrade stable/12/contrib/llvm-project/libunwind/FREEBSD-Xlist stable/12/contrib/llvm-project/lld/FREEBSD-Xlist stable/12/contrib/llvm-project/lldb/FREEBSD-Xlist stable/12/contrib/llvm-project/llvm/FREEBSD-Xlist stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/InstPrinter/ stable/12/contrib/llvm-project/openmp/FREEBSD-Xlist Modified: stable/12/contrib/llvm-project/clang/lib/Basic/Version.cpp Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) stable/12/contrib/llvm-project/libunwind/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) stable/12/contrib/llvm-project/openmp/ (props changed) Copied: stable/12/contrib/llvm-project/FREEBSD-Xlist (from r355959, head/contrib/llvm-project/FREEBSD-Xlist) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/FREEBSD-Xlist Tue Jan 7 19:54:29 2020 (r356464, copy of r355959, head/contrib/llvm-project/FREEBSD-Xlist) @@ -0,0 +1,1000 @@ +# $FreeBSD$ +.arcconfig +.clang-format +.clang-tidy +.gitignore +README.md +clang/.arcconfig +clang/.clang-format +clang/.clang-tidy +clang/.gitignore +clang/CMakeLists.txt +clang/CODE_OWNERS.TXT +clang/INPUTS/ +clang/INSTALL.txt +clang/ModuleInfo.txt +clang/NOTES.txt +clang/README.txt +clang/bindings/ +clang/cmake/ +clang/docs/ +clang/examples/ +clang/include/CMakeLists.txt +clang/include/clang/AST/CMakeLists.txt +clang/include/clang/Basic/CMakeLists.txt +clang/include/clang/Basic/Version.inc.in +clang/include/clang/CMakeLists.txt +clang/include/clang/Config/ +clang/include/clang/Driver/CMakeLists.txt +clang/include/clang/Parse/CMakeLists.txt +clang/include/clang/Sema/CMakeLists.txt +clang/include/clang/Serialization/CMakeLists.txt +clang/include/clang/StaticAnalyzer/Checkers/CMakeLists.txt +clang/lib/ARCMigrate/CMakeLists.txt +clang/lib/AST/CMakeLists.txt +clang/lib/ASTMatchers/CMakeLists.txt +clang/lib/ASTMatchers/Dynamic/CMakeLists.txt +clang/lib/Analysis/CMakeLists.txt +clang/lib/Analysis/plugins/CMakeLists.txt +clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt +clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt +clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt +clang/lib/Basic/CMakeLists.txt +clang/lib/CMakeLists.txt +clang/lib/CodeGen/CMakeLists.txt +clang/lib/CodeGen/README.txt +clang/lib/CrossTU/CMakeLists.txt +clang/lib/DirectoryWatcher/CMakeLists.txt +clang/lib/Driver/CMakeLists.txt +clang/lib/Edit/CMakeLists.txt +clang/lib/Format/CMakeLists.txt +clang/lib/Frontend/CMakeLists.txt +clang/lib/Frontend/Rewrite/CMakeLists.txt +clang/lib/FrontendTool/CMakeLists.txt +clang/lib/Headers/CMakeLists.txt +clang/lib/Index/CMakeLists.txt +clang/lib/Lex/CMakeLists.txt +clang/lib/Parse/CMakeLists.txt +clang/lib/Rewrite/CMakeLists.txt +clang/lib/Sema/CMakeLists.txt +clang/lib/Serialization/CMakeLists.txt +clang/lib/StaticAnalyzer/CMakeLists.txt +clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt +clang/lib/StaticAnalyzer/Core/CMakeLists.txt +clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt +clang/lib/StaticAnalyzer/README.txt +clang/lib/Tooling/ASTDiff/CMakeLists.txt +clang/lib/Tooling/CMakeLists.txt +clang/lib/Tooling/Core/CMakeLists.txt +clang/lib/Tooling/DependencyScanning/CMakeLists.txt +clang/lib/Tooling/Inclusions/CMakeLists.txt +clang/lib/Tooling/Refactoring/CMakeLists.txt +clang/lib/Tooling/Syntax/CMakeLists.txt +clang/runtime/ +clang/test/ +clang/tools/CMakeLists.txt +clang/tools/arcmt-test/ +clang/tools/c-arcmt-test/ +clang/tools/c-index-test/ +clang/tools/clang-check/ +clang/tools/clang-diff/ +clang/tools/clang-extdef-mapping/ +clang/tools/clang-format/CMakeLists.txt +clang/tools/clang-format/clang-format-bbedit.applescript +clang/tools/clang-format/clang-format-diff.py +clang/tools/clang-format/clang-format-sublime.py +clang/tools/clang-format/clang-format-test.el +clang/tools/clang-format/clang-format.el +clang/tools/clang-format/clang-format.py +clang/tools/clang-format/fuzzer/ +clang/tools/clang-format/git-clang-format +clang/tools/clang-format-vs/ +clang/tools/clang-fuzzer/ +clang/tools/clang-import-test/ +clang/tools/clang-offload-bundler/ +clang/tools/clang-refactor/ +clang/tools/clang-rename/ +clang/tools/clang-scan-deps/ +clang/tools/clang-shlib/ +clang/tools/diag-build/ +clang/tools/diagtool/ +clang/tools/driver/CMakeLists.txt +clang/tools/driver/Info.plist.in +clang/tools/libclang/ +clang/tools/scan-build/ +clang/tools/scan-build-py/ +clang/tools/scan-view/ +clang/unittests/ +clang/utils/ABITest/ +clang/utils/CIndex/ +clang/utils/CaptureCmd +clang/utils/ClangDataFormat.py +clang/utils/ClangVisualizers/ +clang/utils/CmpDriver +clang/utils/FindSpecRefs +clang/utils/FuzzTest +clang/utils/TableGen/CMakeLists.txt +clang/utils/TestUtils/ +clang/utils/VtableTest/ +clang/utils/analyzer/ +clang/utils/bash-autocomplete.sh +clang/utils/builtin-defines.c +clang/utils/check_cfc/ +clang/utils/clangdiag.py +clang/utils/creduce-clang-crash.py +clang/utils/find-unused-diagnostics.sh +clang/utils/hmaptool/ +clang/utils/make-ast-dump-check.sh +clang/utils/modfuzz.py +clang/utils/perf-training/ +clang/utils/token-delta.py +clang/utils/valgrind/ +clang/www/ +clang-tools-extra/ +compiler-rt/.arcconfig +compiler-rt/.gitignore +compiler-rt/CMakeLists.txt +compiler-rt/CODE_OWNERS.TXT +compiler-rt/cmake/ +compiler-rt/docs/ +compiler-rt/include/CMakeLists.txt +compiler-rt/lib/CMakeLists.txt +compiler-rt/lib/asan/.clang-format +compiler-rt/lib/asan/CMakeLists.txt +compiler-rt/lib/asan/scripts/ +compiler-rt/lib/asan/tests/ +compiler-rt/lib/builtins/CMakeLists.txt +compiler-rt/lib/builtins/Darwin-excludes/ +compiler-rt/lib/builtins/macho_embedded/ +compiler-rt/lib/cfi/CMakeLists.txt +compiler-rt/lib/crt/CMakeLists.txt +compiler-rt/lib/dfsan/.clang-format +compiler-rt/lib/dfsan/CMakeLists.txt +compiler-rt/lib/dfsan/scripts/ +compiler-rt/lib/fuzzer/CMakeLists.txt +compiler-rt/lib/fuzzer/afl/ +compiler-rt/lib/fuzzer/build.sh +compiler-rt/lib/fuzzer/dataflow/ +compiler-rt/lib/fuzzer/scripts/ +compiler-rt/lib/fuzzer/standalone/ +compiler-rt/lib/fuzzer/tests/ +compiler-rt/lib/gwp_asan/CMakeLists.txt +compiler-rt/lib/gwp_asan/tests/ +compiler-rt/lib/hwasan/.clang-format +compiler-rt/lib/hwasan/CMakeLists.txt +compiler-rt/lib/interception/.clang-format +compiler-rt/lib/interception/CMakeLists.txt +compiler-rt/lib/interception/tests/ +compiler-rt/lib/lsan/.clang-format +compiler-rt/lib/lsan/CMakeLists.txt +compiler-rt/lib/msan/.clang-format +compiler-rt/lib/msan/CMakeLists.txt +compiler-rt/lib/msan/tests/ +compiler-rt/lib/profile/CMakeLists.txt +compiler-rt/lib/safestack/.clang-format +compiler-rt/lib/safestack/CMakeLists.txt +compiler-rt/lib/sanitizer_common/.clang-format +compiler-rt/lib/sanitizer_common/.clang-tidy +compiler-rt/lib/sanitizer_common/CMakeLists.txt +compiler-rt/lib/sanitizer_common/scripts/ +compiler-rt/lib/sanitizer_common/tests/ +compiler-rt/lib/scudo/CMakeLists.txt +compiler-rt/lib/scudo/standalone/CMakeLists.txt +compiler-rt/lib/scudo/standalone/tests/ +compiler-rt/lib/stats/CMakeLists.txt +compiler-rt/lib/tsan/.clang-format +compiler-rt/lib/tsan/CMakeLists.txt +compiler-rt/lib/tsan/analyze_libtsan.sh +compiler-rt/lib/tsan/check_analyze.sh +compiler-rt/lib/tsan/check_cmake.sh +compiler-rt/lib/tsan/dd/CMakeLists.txt +compiler-rt/lib/tsan/go/build.bat +compiler-rt/lib/tsan/go/buildgo.sh +compiler-rt/lib/tsan/tests/ +compiler-rt/lib/ubsan/CMakeLists.txt +compiler-rt/lib/ubsan_minimal/CMakeLists.txt +compiler-rt/lib/xray/CMakeLists.txt +compiler-rt/lib/xray/tests/ +compiler-rt/test/ +compiler-rt/unittests/ +compiler-rt/utils/ +compiler-rt/www/ +debuginfo-tests/ +libclc/ +libcxx/.arcconfig +libcxx/.clang-format +libcxx/.gitignore +libcxx/CMakeLists.txt +libcxx/NOTES.TXT +libcxx/TODO.TXT +libcxx/appveyor-reqs-install.cmd +libcxx/appveyor.yml +libcxx/benchmarks/ +libcxx/cmake/ +libcxx/docs/ +libcxx/fuzzing/ +libcxx/include/CMakeLists.txt +libcxx/include/__config_site.in +libcxx/include/support/ +libcxx/lib/ +libcxx/src/support/solaris/ +libcxx/src/support/win32/ +libcxx/test/ +libcxx/utils/ +libcxx/www/ +libcxxabi/ +libunwind/.arcconfig +libunwind/.clang-format +libunwind/CMakeLists.txt +libunwind/cmake/ +libunwind/docs/ +libunwind/src/CMakeLists.txt +libunwind/test/ +lld/MinGW/ +lld/cmake/ +lld/test/ +lld/unittests/ +lld/utils/ +lld/wasm/ +lldb/.arcconfig +lldb/.clang-format +lldb/.gitignore +lldb/CMakeLists.txt +lldb/CODE_OWNERS.txt +lldb/INSTALL.txt +lldb/cmake/ +lldb/docs/.htaccess +lldb/docs/CMakeLists.txt +lldb/docs/_static/ +lldb/docs/conf.py +lldb/docs/doxygen-mainpage.dox +lldb/docs/doxygen.cfg.in +lldb/docs/index.rst +lldb/docs/lldb-for-gdb-users.txt +lldb/docs/lldb-gdb-remote.txt +lldb/docs/lldb-platform-packets.txt +lldb/docs/resources/ +lldb/docs/status/ +lldb/docs/structured_data/ +lldb/docs/testsuite/ +lldb/docs/use/ +lldb/examples/ +lldb/include/lldb/Host/Config.h +lldb/include/lldb/Host/android/ +lldb/include/lldb/Host/linux/ +lldb/include/lldb/Host/macosx/ +lldb/include/lldb/Host/windows/ +lldb/lit/ +lldb/lldb.xcodeproj/ +lldb/lldb.xcworkspace/ +lldb/packages/ +lldb/resources/ +lldb/scripts/ +lldb/source/API/CMakeLists.txt +lldb/source/Breakpoint/CMakeLists.txt +lldb/source/CMakeLists.txt +lldb/source/Commands/CMakeLists.txt +lldb/source/Core/CMakeLists.txt +lldb/source/DataFormatters/CMakeLists.txt +lldb/source/Expression/CMakeLists.txt +lldb/source/Host/CMakeLists.txt +lldb/source/Host/android/ +lldb/source/Host/linux/ +lldb/source/Host/macosx/ +lldb/source/Host/windows/ +lldb/source/Initialization/CMakeLists.txt +lldb/source/Interpreter/CMakeLists.txt +lldb/source/Plugins/ABI/CMakeLists.txt +lldb/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt +lldb/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt +lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-i386/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-mips/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-mips64/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-ppc/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-ppc64/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-s390x/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt +lldb/source/Plugins/ABI/Windows-x86_64/CMakeLists.txt +lldb/source/Plugins/Architecture/Arm/CMakeLists.txt +lldb/source/Plugins/Architecture/CMakeLists.txt +lldb/source/Plugins/Architecture/Mips/CMakeLists.txt +lldb/source/Plugins/Architecture/PPC64/CMakeLists.txt +lldb/source/Plugins/CMakeLists.txt +lldb/source/Plugins/Disassembler/CMakeLists.txt +lldb/source/Plugins/Disassembler/llvm/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/Darwin-Kernel/ +lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/ +lldb/source/Plugins/DynamicLoader/POSIX-DYLD/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/Static/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/Windows-DYLD/CMakeLists.txt +lldb/source/Plugins/ExpressionParser/CMakeLists.txt +lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt +lldb/source/Plugins/Instruction/ARM/CMakeLists.txt +lldb/source/Plugins/Instruction/ARM64/CMakeLists.txt +lldb/source/Plugins/Instruction/CMakeLists.txt +lldb/source/Plugins/Instruction/MIPS/CMakeLists.txt +lldb/source/Plugins/Instruction/MIPS64/CMakeLists.txt +lldb/source/Plugins/Instruction/PPC64/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/ASan/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/TSan/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/UBSan/CMakeLists.txt +lldb/source/Plugins/JITLoader/CMakeLists.txt +lldb/source/Plugins/JITLoader/GDB/CMakeLists.txt +lldb/source/Plugins/Language/CMakeLists.txt +lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt +lldb/source/Plugins/Language/ClangCommon/CMakeLists.txt +lldb/source/Plugins/Language/ObjC/CMakeLists.txt +lldb/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/Go/ +lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/RenderScript/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt +lldb/source/Plugins/MemoryHistory/CMakeLists.txt +lldb/source/Plugins/MemoryHistory/asan/CMakeLists.txt +lldb/source/Plugins/ObjectContainer/BSD-Archive/CMakeLists.txt +lldb/source/Plugins/ObjectContainer/CMakeLists.txt +lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ +lldb/source/Plugins/ObjectFile/Breakpad/CMakeLists.txt +lldb/source/Plugins/ObjectFile/CMakeLists.txt +lldb/source/Plugins/ObjectFile/ELF/CMakeLists.txt +lldb/source/Plugins/ObjectFile/JIT/CMakeLists.txt +lldb/source/Plugins/ObjectFile/Mach-O/ +lldb/source/Plugins/ObjectFile/PECOFF/ +lldb/source/Plugins/OperatingSystem/CMakeLists.txt +lldb/source/Plugins/OperatingSystem/Python/CMakeLists.txt +lldb/source/Plugins/Platform/Android/ +lldb/source/Plugins/Platform/CMakeLists.txt +lldb/source/Plugins/Platform/FreeBSD/CMakeLists.txt +lldb/source/Plugins/Platform/Linux/ +lldb/source/Plugins/Platform/MacOSX/ +lldb/source/Plugins/Platform/NetBSD/CMakeLists.txt +lldb/source/Plugins/Platform/OpenBSD/CMakeLists.txt +lldb/source/Plugins/Platform/POSIX/CMakeLists.txt +lldb/source/Plugins/Platform/Windows/ +lldb/source/Plugins/Platform/gdb-server/CMakeLists.txt +lldb/source/Plugins/Process/CMakeLists.txt +lldb/source/Plugins/Process/FreeBSD/CMakeLists.txt +lldb/source/Plugins/Process/Linux/ +lldb/source/Plugins/Process/MacOSX-Kernel/ +lldb/source/Plugins/Process/NetBSD/CMakeLists.txt +lldb/source/Plugins/Process/POSIX/CMakeLists.txt +lldb/source/Plugins/Process/Utility/CMakeLists.txt +lldb/source/Plugins/Process/Windows/ +lldb/source/Plugins/Process/elf-core/CMakeLists.txt +lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt +lldb/source/Plugins/Process/mach-core/ +lldb/source/Plugins/Process/minidump/CMakeLists.txt +lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt +lldb/source/Plugins/ScriptInterpreter/None/CMakeLists.txt +lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt +lldb/source/Plugins/StructuredData/CMakeLists.txt +lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt +lldb/source/Plugins/SymbolFile/Breakpad/CMakeLists.txt +lldb/source/Plugins/SymbolFile/CMakeLists.txt +lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt +lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt +lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt +lldb/source/Plugins/SymbolFile/Symtab/CMakeLists.txt +lldb/source/Plugins/SymbolVendor/CMakeLists.txt +lldb/source/Plugins/SymbolVendor/ELF/CMakeLists.txt +lldb/source/Plugins/SymbolVendor/MacOSX/ +lldb/source/Plugins/SystemRuntime/ +lldb/source/Plugins/UnwindAssembly/CMakeLists.txt +lldb/source/Plugins/UnwindAssembly/InstEmulation/CMakeLists.txt +lldb/source/Plugins/UnwindAssembly/x86/CMakeLists.txt +lldb/source/Symbol/CMakeLists.txt +lldb/source/Target/CMakeLists.txt +lldb/source/Utility/CMakeLists.txt +lldb/test/ +lldb/third_party/ +lldb/tools/CMakeLists.txt +lldb/tools/argdumper/CMakeLists.txt +lldb/tools/darwin-debug/ +lldb/tools/darwin-threads/ +lldb/tools/debugserver/ +lldb/tools/driver/CMakeLists.txt +lldb/tools/driver/lldb-Info.plist +lldb/tools/intel-features/ +lldb/tools/lldb-instr/CMakeLists.txt +lldb/tools/lldb-mi/CMakeLists.txt +lldb/tools/lldb-mi/lldb-Info.plist +lldb/tools/lldb-perf/ +lldb/tools/lldb-server/CMakeLists.txt +lldb/tools/lldb-test/ +lldb/tools/lldb-vscode/ +lldb/unittests/ +lldb/use_lldb_suite_root.py +lldb/utils/TableGen/CMakeLists.txt +lldb/utils/git-svn/ +lldb/utils/lit-cpuid/ +lldb/utils/lldb-dotest/ +lldb/utils/lui/ +lldb/utils/misc/ +lldb/utils/sync-source/ +lldb/utils/test/ +lldb/utils/vim-lldb/ +llgo/ +llvm/.arcconfig +llvm/.clang-format +llvm/.clang-tidy +llvm/.gitattributes +llvm/.gitignore +llvm/CMakeLists.txt +llvm/CODE_OWNERS.TXT +llvm/CREDITS.TXT +llvm/LLVMBuild.txt +llvm/README.txt +llvm/RELEASE_TESTERS.TXT +llvm/benchmarks/ +llvm/bindings/ +llvm/cmake/ +llvm/configure +llvm/docs/ +llvm/examples/ +llvm/include/llvm/CMakeLists.txt +llvm/include/llvm/Config/ +llvm/include/llvm/IR/CMakeLists.txt +llvm/include/llvm/Support/CMakeLists.txt +llvm/include/llvm/Support/LICENSE.TXT +llvm/lib/Analysis/CMakeLists.txt +llvm/lib/Analysis/LLVMBuild.txt +llvm/lib/Analysis/README.txt +llvm/lib/AsmParser/CMakeLists.txt +llvm/lib/AsmParser/LLVMBuild.txt +llvm/lib/BinaryFormat/CMakeLists.txt +llvm/lib/BinaryFormat/LLVMBuild.txt +llvm/lib/Bitcode/CMakeLists.txt +llvm/lib/Bitcode/LLVMBuild.txt +llvm/lib/Bitcode/Reader/CMakeLists.txt +llvm/lib/Bitcode/Reader/LLVMBuild.txt +llvm/lib/Bitcode/Writer/CMakeLists.txt +llvm/lib/Bitcode/Writer/LLVMBuild.txt +llvm/lib/Bitstream/CMakeLists.txt +llvm/lib/Bitstream/LLVMBuild.txt +llvm/lib/Bitstream/Reader/CMakeLists.txt +llvm/lib/Bitstream/Reader/LLVMBuild.txt +llvm/lib/CMakeLists.txt +llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt +llvm/lib/CodeGen/AsmPrinter/LLVMBuild.txt +llvm/lib/CodeGen/CMakeLists.txt +llvm/lib/CodeGen/GlobalISel/CMakeLists.txt +llvm/lib/CodeGen/GlobalISel/LLVMBuild.txt +llvm/lib/CodeGen/LLVMBuild.txt +llvm/lib/CodeGen/MIRParser/CMakeLists.txt +llvm/lib/CodeGen/MIRParser/LLVMBuild.txt +llvm/lib/CodeGen/README.txt +llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt +llvm/lib/CodeGen/SelectionDAG/LLVMBuild.txt +llvm/lib/DebugInfo/CMakeLists.txt +llvm/lib/DebugInfo/CodeView/CMakeLists.txt +llvm/lib/DebugInfo/CodeView/LLVMBuild.txt +llvm/lib/DebugInfo/DWARF/CMakeLists.txt +llvm/lib/DebugInfo/DWARF/LLVMBuild.txt +llvm/lib/DebugInfo/GSYM/CMakeLists.txt +llvm/lib/DebugInfo/GSYM/LLVMBuild.txt +llvm/lib/DebugInfo/LLVMBuild.txt +llvm/lib/DebugInfo/MSF/CMakeLists.txt +llvm/lib/DebugInfo/MSF/LLVMBuild.txt +llvm/lib/DebugInfo/PDB/CMakeLists.txt +llvm/lib/DebugInfo/PDB/LLVMBuild.txt +llvm/lib/DebugInfo/Symbolize/CMakeLists.txt +llvm/lib/DebugInfo/Symbolize/LLVMBuild.txt +llvm/lib/Demangle/CMakeLists.txt +llvm/lib/Demangle/LLVMBuild.txt +llvm/lib/ExecutionEngine/CMakeLists.txt +llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt +llvm/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt +llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt +llvm/lib/ExecutionEngine/Interpreter/LLVMBuild.txt +llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt +llvm/lib/ExecutionEngine/JITLink/LLVMBuild.txt +llvm/lib/ExecutionEngine/LLVMBuild.txt +llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt +llvm/lib/ExecutionEngine/MCJIT/LLVMBuild.txt +llvm/lib/ExecutionEngine/OProfileJIT/CMakeLists.txt +llvm/lib/ExecutionEngine/OProfileJIT/LLVMBuild.txt +llvm/lib/ExecutionEngine/Orc/CMakeLists.txt +llvm/lib/ExecutionEngine/Orc/LLVMBuild.txt +llvm/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt +llvm/lib/ExecutionEngine/PerfJITEvents/LLVMBuild.txt +llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt +llvm/lib/ExecutionEngine/RuntimeDyld/LLVMBuild.txt +llvm/lib/FuzzMutate/CMakeLists.txt +llvm/lib/FuzzMutate/LLVMBuild.txt +llvm/lib/Fuzzer/ +llvm/lib/IR/CMakeLists.txt +llvm/lib/IR/LLVMBuild.txt +llvm/lib/IRReader/CMakeLists.txt +llvm/lib/IRReader/LLVMBuild.txt +llvm/lib/LLVMBuild.txt +llvm/lib/LTO/CMakeLists.txt +llvm/lib/LTO/LLVMBuild.txt +llvm/lib/LineEditor/CMakeLists.txt +llvm/lib/LineEditor/LLVMBuild.txt +llvm/lib/Linker/CMakeLists.txt +llvm/lib/Linker/LLVMBuild.txt +llvm/lib/MC/CMakeLists.txt +llvm/lib/MC/LLVMBuild.txt +llvm/lib/MC/MCDisassembler/CMakeLists.txt +llvm/lib/MC/MCDisassembler/LLVMBuild.txt +llvm/lib/MC/MCParser/CMakeLists.txt +llvm/lib/MC/MCParser/LLVMBuild.txt +llvm/lib/MCA/CMakeLists.txt +llvm/lib/MCA/LLVMBuild.txt +llvm/lib/Object/CMakeLists.txt +llvm/lib/Object/LLVMBuild.txt +llvm/lib/ObjectYAML/CMakeLists.txt +llvm/lib/ObjectYAML/LLVMBuild.txt +llvm/lib/Option/CMakeLists.txt +llvm/lib/Option/LLVMBuild.txt +llvm/lib/Passes/CMakeLists.txt +llvm/lib/Passes/LLVMBuild.txt +llvm/lib/ProfileData/CMakeLists.txt +llvm/lib/ProfileData/Coverage/CMakeLists.txt +llvm/lib/ProfileData/Coverage/LLVMBuild.txt +llvm/lib/ProfileData/LLVMBuild.txt +llvm/lib/Remarks/CMakeLists.txt +llvm/lib/Remarks/LLVMBuild.txt +llvm/lib/Support/CMakeLists.txt +llvm/lib/Support/LLVMBuild.txt +llvm/lib/TableGen/CMakeLists.txt +llvm/lib/TableGen/LLVMBuild.txt +llvm/lib/Target/AArch64/AsmParser/CMakeLists.txt +llvm/lib/Target/AArch64/AsmParser/LLVMBuild.txt +llvm/lib/Target/AArch64/CMakeLists.txt +llvm/lib/Target/AArch64/Disassembler/CMakeLists.txt +llvm/lib/Target/AArch64/Disassembler/LLVMBuild.txt +llvm/lib/Target/AArch64/LLVMBuild.txt +llvm/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/AArch64/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/AArch64/TargetInfo/CMakeLists.txt +llvm/lib/Target/AArch64/TargetInfo/LLVMBuild.txt +llvm/lib/Target/AArch64/Utils/CMakeLists.txt +llvm/lib/Target/AArch64/Utils/LLVMBuild.txt +llvm/lib/Target/AMDGPU/AsmParser/CMakeLists.txt +llvm/lib/Target/AMDGPU/AsmParser/LLVMBuild.txt +llvm/lib/Target/AMDGPU/CMakeLists.txt +llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt +llvm/lib/Target/AMDGPU/Disassembler/LLVMBuild.txt +llvm/lib/Target/AMDGPU/LLVMBuild.txt +llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/AMDGPU/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/AMDGPU/TargetInfo/CMakeLists.txt +llvm/lib/Target/AMDGPU/TargetInfo/LLVMBuild.txt +llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt +llvm/lib/Target/AMDGPU/Utils/LLVMBuild.txt +llvm/lib/Target/ARC/CMakeLists.txt +llvm/lib/Target/ARC/Disassembler/CMakeLists.txt +llvm/lib/Target/ARC/Disassembler/LLVMBuild.txt +llvm/lib/Target/ARC/LLVMBuild.txt +llvm/lib/Target/ARC/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/ARC/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/ARC/TargetInfo/CMakeLists.txt +llvm/lib/Target/ARC/TargetInfo/LLVMBuild.txt +llvm/lib/Target/ARM/AsmParser/CMakeLists.txt +llvm/lib/Target/ARM/AsmParser/LLVMBuild.txt +llvm/lib/Target/ARM/CMakeLists.txt +llvm/lib/Target/ARM/Disassembler/CMakeLists.txt +llvm/lib/Target/ARM/Disassembler/LLVMBuild.txt +llvm/lib/Target/ARM/LLVMBuild.txt +llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/ARM/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/ARM/README-Thumb.txt +llvm/lib/Target/ARM/README-Thumb2.txt +llvm/lib/Target/ARM/README.txt +llvm/lib/Target/ARM/TargetInfo/CMakeLists.txt +llvm/lib/Target/ARM/TargetInfo/LLVMBuild.txt +llvm/lib/Target/ARM/Utils/CMakeLists.txt +llvm/lib/Target/ARM/Utils/LLVMBuild.txt +llvm/lib/Target/AVR/AsmParser/CMakeLists.txt +llvm/lib/Target/AVR/AsmParser/LLVMBuild.txt +llvm/lib/Target/AVR/CMakeLists.txt +llvm/lib/Target/AVR/Disassembler/CMakeLists.txt +llvm/lib/Target/AVR/Disassembler/LLVMBuild.txt +llvm/lib/Target/AVR/LLVMBuild.txt +llvm/lib/Target/AVR/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/AVR/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/AVR/TargetInfo/CMakeLists.txt +llvm/lib/Target/AVR/TargetInfo/LLVMBuild.txt +llvm/lib/Target/BPF/AsmParser/CMakeLists.txt +llvm/lib/Target/BPF/AsmParser/LLVMBuild.txt +llvm/lib/Target/BPF/CMakeLists.txt +llvm/lib/Target/BPF/Disassembler/CMakeLists.txt +llvm/lib/Target/BPF/Disassembler/LLVMBuild.txt +llvm/lib/Target/BPF/LLVMBuild.txt +llvm/lib/Target/BPF/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/BPF/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/BPF/TargetInfo/CMakeLists.txt +llvm/lib/Target/BPF/TargetInfo/LLVMBuild.txt +llvm/lib/Target/CMakeLists.txt +llvm/lib/Target/Hexagon/AsmParser/CMakeLists.txt +llvm/lib/Target/Hexagon/AsmParser/LLVMBuild.txt +llvm/lib/Target/Hexagon/CMakeLists.txt +llvm/lib/Target/Hexagon/Disassembler/CMakeLists.txt +llvm/lib/Target/Hexagon/Disassembler/LLVMBuild.txt +llvm/lib/Target/Hexagon/LLVMBuild.txt +llvm/lib/Target/Hexagon/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Hexagon/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Hexagon/TargetInfo/CMakeLists.txt +llvm/lib/Target/Hexagon/TargetInfo/LLVMBuild.txt +llvm/lib/Target/LLVMBuild.txt +llvm/lib/Target/Lanai/AsmParser/CMakeLists.txt +llvm/lib/Target/Lanai/AsmParser/LLVMBuild.txt +llvm/lib/Target/Lanai/CMakeLists.txt +llvm/lib/Target/Lanai/Disassembler/CMakeLists.txt +llvm/lib/Target/Lanai/Disassembler/LLVMBuild.txt +llvm/lib/Target/Lanai/LLVMBuild.txt +llvm/lib/Target/Lanai/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Lanai/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Lanai/TargetInfo/CMakeLists.txt +llvm/lib/Target/Lanai/TargetInfo/LLVMBuild.txt +llvm/lib/Target/MSP430/AsmParser/CMakeLists.txt +llvm/lib/Target/MSP430/AsmParser/LLVMBuild.txt +llvm/lib/Target/MSP430/CMakeLists.txt +llvm/lib/Target/MSP430/Disassembler/CMakeLists.txt +llvm/lib/Target/MSP430/Disassembler/LLVMBuild.txt +llvm/lib/Target/MSP430/LLVMBuild.txt +llvm/lib/Target/MSP430/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/MSP430/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/MSP430/README.txt +llvm/lib/Target/MSP430/TargetInfo/CMakeLists.txt +llvm/lib/Target/MSP430/TargetInfo/LLVMBuild.txt +llvm/lib/Target/Mips/AsmParser/CMakeLists.txt +llvm/lib/Target/Mips/AsmParser/LLVMBuild.txt +llvm/lib/Target/Mips/CMakeLists.txt +llvm/lib/Target/Mips/Disassembler/CMakeLists.txt +llvm/lib/Target/Mips/Disassembler/LLVMBuild.txt +llvm/lib/Target/Mips/LLVMBuild.txt +llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Mips/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Mips/TargetInfo/CMakeLists.txt +llvm/lib/Target/Mips/TargetInfo/LLVMBuild.txt +llvm/lib/Target/NVPTX/CMakeLists.txt +llvm/lib/Target/NVPTX/LLVMBuild.txt +llvm/lib/Target/NVPTX/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/NVPTX/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/NVPTX/TargetInfo/CMakeLists.txt +llvm/lib/Target/NVPTX/TargetInfo/LLVMBuild.txt +llvm/lib/Target/PowerPC/AsmParser/CMakeLists.txt +llvm/lib/Target/PowerPC/AsmParser/LLVMBuild.txt +llvm/lib/Target/PowerPC/CMakeLists.txt +llvm/lib/Target/PowerPC/Disassembler/CMakeLists.txt +llvm/lib/Target/PowerPC/Disassembler/LLVMBuild.txt +llvm/lib/Target/PowerPC/LLVMBuild.txt +llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/PowerPC/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/PowerPC/README.txt +llvm/lib/Target/PowerPC/README_ALTIVEC.txt +llvm/lib/Target/PowerPC/TargetInfo/CMakeLists.txt +llvm/lib/Target/PowerPC/TargetInfo/LLVMBuild.txt +llvm/lib/Target/README.txt +llvm/lib/Target/RISCV/AsmParser/CMakeLists.txt +llvm/lib/Target/RISCV/AsmParser/LLVMBuild.txt +llvm/lib/Target/RISCV/CMakeLists.txt +llvm/lib/Target/RISCV/Disassembler/CMakeLists.txt +llvm/lib/Target/RISCV/Disassembler/LLVMBuild.txt +llvm/lib/Target/RISCV/LLVMBuild.txt +llvm/lib/Target/RISCV/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/RISCV/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/RISCV/TargetInfo/CMakeLists.txt +llvm/lib/Target/RISCV/TargetInfo/LLVMBuild.txt +llvm/lib/Target/RISCV/Utils/CMakeLists.txt +llvm/lib/Target/RISCV/Utils/LLVMBuild.txt +llvm/lib/Target/Sparc/AsmParser/CMakeLists.txt +llvm/lib/Target/Sparc/AsmParser/LLVMBuild.txt +llvm/lib/Target/Sparc/CMakeLists.txt +llvm/lib/Target/Sparc/Disassembler/CMakeLists.txt +llvm/lib/Target/Sparc/Disassembler/LLVMBuild.txt +llvm/lib/Target/Sparc/LLVMBuild.txt +llvm/lib/Target/Sparc/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Sparc/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Sparc/README.txt +llvm/lib/Target/Sparc/TargetInfo/CMakeLists.txt +llvm/lib/Target/Sparc/TargetInfo/LLVMBuild.txt +llvm/lib/Target/SystemZ/AsmParser/CMakeLists.txt +llvm/lib/Target/SystemZ/AsmParser/LLVMBuild.txt +llvm/lib/Target/SystemZ/CMakeLists.txt +llvm/lib/Target/SystemZ/Disassembler/CMakeLists.txt +llvm/lib/Target/SystemZ/Disassembler/LLVMBuild.txt +llvm/lib/Target/SystemZ/LLVMBuild.txt +llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/SystemZ/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/SystemZ/TargetInfo/CMakeLists.txt +llvm/lib/Target/SystemZ/TargetInfo/LLVMBuild.txt +llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt +llvm/lib/Target/WebAssembly/AsmParser/LLVMBuild.txt +llvm/lib/Target/WebAssembly/CMakeLists.txt +llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt +llvm/lib/Target/WebAssembly/Disassembler/LLVMBuild.txt +llvm/lib/Target/WebAssembly/LLVMBuild.txt +llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/WebAssembly/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/WebAssembly/TargetInfo/CMakeLists.txt +llvm/lib/Target/WebAssembly/TargetInfo/LLVMBuild.txt +llvm/lib/Target/X86/AsmParser/CMakeLists.txt +llvm/lib/Target/X86/AsmParser/LLVMBuild.txt +llvm/lib/Target/X86/CMakeLists.txt +llvm/lib/Target/X86/Disassembler/CMakeLists.txt +llvm/lib/Target/X86/Disassembler/LLVMBuild.txt +llvm/lib/Target/X86/LLVMBuild.txt +llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/X86/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/X86/README-FPStack.txt +llvm/lib/Target/X86/README-SSE.txt +llvm/lib/Target/X86/README-X86-64.txt +llvm/lib/Target/X86/README.txt +llvm/lib/Target/X86/TargetInfo/CMakeLists.txt +llvm/lib/Target/X86/TargetInfo/LLVMBuild.txt +llvm/lib/Target/X86/Utils/CMakeLists.txt +llvm/lib/Target/X86/Utils/LLVMBuild.txt +llvm/lib/Target/XCore/CMakeLists.txt +llvm/lib/Target/XCore/Disassembler/CMakeLists.txt +llvm/lib/Target/XCore/Disassembler/LLVMBuild.txt +llvm/lib/Target/XCore/LLVMBuild.txt +llvm/lib/Target/XCore/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/XCore/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/XCore/README.txt +llvm/lib/Target/XCore/TargetInfo/CMakeLists.txt +llvm/lib/Target/XCore/TargetInfo/LLVMBuild.txt +llvm/lib/Testing/CMakeLists.txt +llvm/lib/Testing/LLVMBuild.txt +llvm/lib/Testing/Support/CMakeLists.txt +llvm/lib/Testing/Support/LLVMBuild.txt +llvm/lib/TextAPI/CMakeLists.txt +llvm/lib/TextAPI/LLVMBuild.txt +llvm/lib/ToolDrivers/CMakeLists.txt +llvm/lib/ToolDrivers/LLVMBuild.txt +llvm/lib/ToolDrivers/llvm-dlltool/CMakeLists.txt +llvm/lib/ToolDrivers/llvm-dlltool/LLVMBuild.txt +llvm/lib/ToolDrivers/llvm-lib/CMakeLists.txt +llvm/lib/ToolDrivers/llvm-lib/LLVMBuild.txt +llvm/lib/Transforms/AggressiveInstCombine/CMakeLists.txt +llvm/lib/Transforms/AggressiveInstCombine/LLVMBuild.txt +llvm/lib/Transforms/CMakeLists.txt +llvm/lib/Transforms/Coroutines/CMakeLists.txt +llvm/lib/Transforms/Coroutines/LLVMBuild.txt +llvm/lib/Transforms/Hello/ +llvm/lib/Transforms/IPO/CMakeLists.txt +llvm/lib/Transforms/IPO/LLVMBuild.txt +llvm/lib/Transforms/InstCombine/CMakeLists.txt +llvm/lib/Transforms/InstCombine/LLVMBuild.txt +llvm/lib/Transforms/Instrumentation/CMakeLists.txt +llvm/lib/Transforms/Instrumentation/LLVMBuild.txt +llvm/lib/Transforms/LLVMBuild.txt +llvm/lib/Transforms/ObjCARC/CMakeLists.txt +llvm/lib/Transforms/ObjCARC/LLVMBuild.txt +llvm/lib/Transforms/Scalar/CMakeLists.txt +llvm/lib/Transforms/Scalar/LLVMBuild.txt +llvm/lib/Transforms/Utils/CMakeLists.txt +llvm/lib/Transforms/Utils/LLVMBuild.txt +llvm/lib/Transforms/Vectorize/CMakeLists.txt +llvm/lib/Transforms/Vectorize/LLVMBuild.txt +llvm/lib/WindowsManifest/CMakeLists.txt +llvm/lib/WindowsManifest/LLVMBuild.txt +llvm/lib/XRay/CMakeLists.txt +llvm/lib/XRay/LLVMBuild.txt +llvm/llvm.spec.in +llvm/projects/ +llvm/resources/ +llvm/runtimes/ +llvm/test/ +llvm/tools/CMakeLists.txt +llvm/tools/LLVMBuild.txt +llvm/tools/bugpoint/CMakeLists.txt +llvm/tools/bugpoint/LLVMBuild.txt +llvm/tools/bugpoint-passes/ +llvm/tools/dsymutil/ +llvm/tools/gold/ +llvm/tools/llc/CMakeLists.txt +llvm/tools/llc/LLVMBuild.txt +llvm/tools/lli/CMakeLists.txt +llvm/tools/lli/ChildTarget/CMakeLists.txt +llvm/tools/lli/ChildTarget/LLVMBuild.txt +llvm/tools/lli/LLVMBuild.txt +llvm/tools/llvm-ar/CMakeLists.txt +llvm/tools/llvm-ar/LLVMBuild.txt +llvm/tools/llvm-as/CMakeLists.txt +llvm/tools/llvm-as/LLVMBuild.txt +llvm/tools/llvm-as-fuzzer/ +llvm/tools/llvm-bcanalyzer/CMakeLists.txt +llvm/tools/llvm-bcanalyzer/LLVMBuild.txt +llvm/tools/llvm-c-test/ +llvm/tools/llvm-cat/ +llvm/tools/llvm-cfi-verify/ +llvm/tools/llvm-config/ +llvm/tools/llvm-cov/CMakeLists.txt +llvm/tools/llvm-cov/LLVMBuild.txt +llvm/tools/llvm-cvtres/ +llvm/tools/llvm-cxxdump/CMakeLists.txt +llvm/tools/llvm-cxxdump/LLVMBuild.txt +llvm/tools/llvm-cxxfilt/CMakeLists.txt +llvm/tools/llvm-cxxmap/CMakeLists.txt +llvm/tools/llvm-cxxmap/LLVMBuild.txt +llvm/tools/llvm-diff/CMakeLists.txt +llvm/tools/llvm-diff/LLVMBuild.txt +llvm/tools/llvm-dis/CMakeLists.txt +llvm/tools/llvm-dis/LLVMBuild.txt +llvm/tools/llvm-dwarfdump/CMakeLists.txt +llvm/tools/llvm-dwarfdump/LLVMBuild.txt +llvm/tools/llvm-dwarfdump/fuzzer/ +llvm/tools/llvm-dwp/ +llvm/tools/llvm-elfabi/ +llvm/tools/llvm-exegesis/ +llvm/tools/llvm-extract/CMakeLists.txt +llvm/tools/llvm-extract/LLVMBuild.txt +llvm/tools/llvm-go/ +llvm/tools/llvm-isel-fuzzer/ +llvm/tools/llvm-itanium-demangle-fuzzer/ +llvm/tools/llvm-jitlink/ +llvm/tools/llvm-jitlistener/ +llvm/tools/llvm-link/CMakeLists.txt +llvm/tools/llvm-link/LLVMBuild.txt +llvm/tools/llvm-lipo/ +llvm/tools/llvm-lto/CMakeLists.txt +llvm/tools/llvm-lto/LLVMBuild.txt +llvm/tools/llvm-lto2/CMakeLists.txt +llvm/tools/llvm-lto2/LLVMBuild.txt +llvm/tools/llvm-mc/CMakeLists.txt +llvm/tools/llvm-mc/LLVMBuild.txt +llvm/tools/llvm-mc-assemble-fuzzer/ +llvm/tools/llvm-mc-disassemble-fuzzer/ +llvm/tools/llvm-mca/CMakeLists.txt +llvm/tools/llvm-mca/LLVMBuild.txt +llvm/tools/llvm-microsoft-demangle-fuzzer/ +llvm/tools/llvm-modextract/CMakeLists.txt +llvm/tools/llvm-modextract/LLVMBuild.txt +llvm/tools/llvm-mt/ +llvm/tools/llvm-nm/CMakeLists.txt +llvm/tools/llvm-nm/LLVMBuild.txt +llvm/tools/llvm-objcopy/CMakeLists.txt +llvm/tools/llvm-objcopy/LLVMBuild.txt +llvm/tools/llvm-objdump/CMakeLists.txt +llvm/tools/llvm-objdump/LLVMBuild.txt +llvm/tools/llvm-opt-fuzzer/ +llvm/tools/llvm-opt-report/ +llvm/tools/llvm-pdbutil/CMakeLists.txt +llvm/tools/llvm-pdbutil/LLVMBuild.txt +llvm/tools/llvm-profdata/CMakeLists.txt +llvm/tools/llvm-profdata/LLVMBuild.txt +llvm/tools/llvm-rc/ +llvm/tools/llvm-readobj/CMakeLists.txt +llvm/tools/llvm-readobj/LLVMBuild.txt +llvm/tools/llvm-rtdyld/CMakeLists.txt +llvm/tools/llvm-rtdyld/LLVMBuild.txt +llvm/tools/llvm-shlib/ +llvm/tools/llvm-size/ +llvm/tools/llvm-special-case-list-fuzzer/ +llvm/tools/llvm-split/ +llvm/tools/llvm-stress/CMakeLists.txt +llvm/tools/llvm-stress/LLVMBuild.txt +llvm/tools/llvm-strings/ +llvm/tools/llvm-symbolizer/CMakeLists.txt +llvm/tools/llvm-undname/ +llvm/tools/llvm-xray/CMakeLists.txt +llvm/tools/llvm-yaml-numeric-parser-fuzzer/ +llvm/tools/lto/ +llvm/tools/msbuild/ +llvm/tools/obj2yaml/ +llvm/tools/opt/CMakeLists.txt +llvm/tools/opt/LLVMBuild.txt +llvm/tools/opt-viewer/ +llvm/tools/remarks-shlib/ +llvm/tools/sancov/ +llvm/tools/sanstats/ +llvm/tools/verify-uselistorder/ +llvm/tools/xcode-toolchain/ +llvm/tools/yaml2obj/ +llvm/unittests/ +llvm/utils/DSAclean.py +llvm/utils/DSAextract.py +llvm/utils/FileCheck/ +llvm/utils/GenLibDeps.pl +llvm/utils/GetRepositoryPath +llvm/utils/GetSourceVersion +llvm/utils/KillTheDoctor/ +llvm/utils/LLVMBuild.txt +llvm/utils/LLVMVisualizers/ +llvm/utils/Misc/ +llvm/utils/PerfectShuffle/ +llvm/utils/Reviewing/ +llvm/utils/TableGen/CMakeLists.txt +llvm/utils/TableGen/LLVMBuild.txt +llvm/utils/TableGen/tdtags +llvm/utils/Target/ +llvm/utils/UpdateCMakeLists.pl +llvm/utils/UpdateTestChecks/ +llvm/utils/abtest.py +llvm/utils/benchmark/ +llvm/utils/bisect +llvm/utils/bisect-skip-count +llvm/utils/bugpoint/ +llvm/utils/bugpoint_gisel_reducer.py +llvm/utils/check-each-file +llvm/utils/chunk-print-before-all.py +llvm/utils/clang-parse-diagnostics-file +llvm/utils/codegen-diff +llvm/utils/collect_and_build_with_pgo.py +llvm/utils/count/ +llvm/utils/countloc.sh +llvm/utils/create_ladder_graph.py +llvm/utils/crosstool/ +llvm/utils/demangle_tree.py +llvm/utils/docker/ +llvm/utils/emacs/ +llvm/utils/extract_symbols.py +llvm/utils/extract_vplan.py +llvm/utils/findmisopt +llvm/utils/findoptdiff +llvm/utils/findsym.pl +llvm/utils/fpcmp/ +llvm/utils/gdb-scripts/ +llvm/utils/getsrcs.sh +llvm/utils/git-svn/ +llvm/utils/gn/ +llvm/utils/indirect_calls.py +llvm/utils/jedit/ +llvm/utils/kate/ +llvm/utils/lint/ +llvm/utils/lit/ +llvm/utils/lldbDataFormatters.py +llvm/utils/llvm-build/ +llvm/utils/llvm-compilers-check +llvm/utils/llvm-gisel-cov.py +llvm/utils/llvm-lit/ +llvm/utils/llvm-native-gxx +llvm/utils/llvm.grm +llvm/utils/llvmdo +llvm/utils/llvmgrep +llvm/utils/not/ +llvm/utils/prepare-code-coverage-artifact.py +llvm/utils/release/ +llvm/utils/sanitizers/ +llvm/utils/schedcover.py +llvm/utils/shuffle_fuzz.py +llvm/utils/shuffle_select_fuzz_tester.py +llvm/utils/sort_includes.py +llvm/utils/testgen/ +llvm/utils/textmate/ +llvm/utils/unicode-case-fold.py +llvm/utils/unittest/ +llvm/utils/update_analyze_test_checks.py +llvm/utils/update_cc_test_checks.py +llvm/utils/update_llc_test_checks.py +llvm/utils/update_mca_test_checks.py +llvm/utils/update_mir_test_checks.py +llvm/utils/update_test_checks.py +llvm/utils/valgrind/ +llvm/utils/vim/ +llvm/utils/vscode/ +llvm/utils/wciia.py +llvm/utils/yaml-bench/ +openmp/.arcconfig +openmp/.gitignore +openmp/CMakeLists.txt +openmp/README.rst +openmp/cmake/ +openmp/libomptarget/ +openmp/runtime/.clang-format +openmp/runtime/CMakeLists.txt +openmp/runtime/README.txt +openmp/runtime/cmake/ +openmp/runtime/doc/ +openmp/runtime/src/CMakeLists.txt +openmp/runtime/test/ +openmp/runtime/tools/ +openmp/www/ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 7 20:02:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4874B1F1426; Tue, 7 Jan 2020 20:02:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sjvd1v0vz4Y53; Tue, 7 Jan 2020 20:02:05 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3BA7445B0; Tue, 7 Jan 2020 20:02:05 +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 007K25HX001083; Tue, 7 Jan 2020 20:02:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K1xv8001046; Tue, 7 Jan 2020 20:01:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072001.007K1xv8001046@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:01:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356465 - in stable/12: . contrib/llvm-project/clang/include/clang/CodeGen contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/clang/lib/CodeGen contrib/llvm-project/clang... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/llvm-project/clang/include/clang/CodeGen contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/clang/lib/CodeGen contrib/llvm-project/clang/lib/Driver/ToolChains co... X-SVN-Commit-Revision: 356465 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:02:05 -0000 Author: dim Date: Tue Jan 7 20:01:59 2020 New Revision: 356465 URL: https://svnweb.freebsd.org/changeset/base/356465 Log: MFC r356004: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.1 final release c1a0a213378a458fbea1a5c77b315c7dce08fd05. Release notes for llvm, clang, lld and libc++ 9.0.1 will become available here: https://releases.llvm.org/9.0.1/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/projects/libcxx/docs/ReleaseNotes.html PR: 240629 Added: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp - copied unchanged from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h - copied unchanged from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h Modified: stable/12/ObsoleteFiles.inc stable/12/UPDATING stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExpr.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c stable/12/contrib/llvm-project/lld/COFF/Driver.cpp stable/12/contrib/llvm-project/lld/ELF/Symbols.h stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineFunction.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineInstr.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/StackProtector.cpp stable/12/contrib/llvm-project/llvm/lib/Object/ELFObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ARMTargetParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARM.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMPredicates.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/P9InstrResources.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstr64Bit.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86MachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86RegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/GVN.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ObjcopyOpts.td stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/StripOpts.td stable/12/contrib/llvm-project/llvm/tools/opt/opt.cpp stable/12/etc/mtree/BSD.debug.dist stable/12/etc/mtree/BSD.usr.dist stable/12/lib/clang/freebsd_cc_version.h stable/12/lib/clang/headers/Makefile stable/12/lib/clang/include/VCSVersion.inc stable/12/lib/clang/include/clang/Basic/Version.inc stable/12/lib/clang/include/clang/Config/config.h stable/12/lib/clang/include/lld/Common/Version.inc stable/12/lib/clang/include/llvm/Config/config.h stable/12/lib/clang/include/llvm/Config/llvm-config.h stable/12/lib/clang/include/llvm/Support/VCSRevision.h stable/12/lib/libclang_rt/Makefile.inc stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/ObsoleteFiles.inc Tue Jan 7 20:01:59 2020 (r356465) @@ -38,6 +38,242 @@ # xargs -n1 | sort | uniq -d; # done +# 20200107: new clang import which bumps version from 9.0.0 to 9.0.1. +OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/algorithm +OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/complex +OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/new +OLD_DIRS+=usr/lib/clang/9.0.0/include/cuda_wrappers +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/__clang_openmp_math.h +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/__clang_openmp_math_declares.h +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/cmath +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/math.h +OLD_DIRS+=usr/lib/clang/9.0.0/include/openmp_wrappers +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/emmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/mm_malloc.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/mmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/xmmintrin.h +OLD_DIRS+=usr/lib/clang/9.0.0/include/ppc_wrappers +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/9.0.0/include/sanitizer +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/9.0.0/include/adxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/altivec.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ammintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm64intr.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm_acle.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm_neon.h +OLD_FILES+=usr/lib/clang/9.0.0/include/armintr.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512bf16intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlbf16intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlvp2intersectintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vp2intersectintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/cetintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/cpuid.h +OLD_FILES+=usr/lib/clang/9.0.0/include/emmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/enqcmdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/htmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/immintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/module.modulemap +OLD_FILES+=usr/lib/clang/9.0.0/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/msa.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/opencl-c-base.h +OLD_FILES+=usr/lib/clang/9.0.0/include/opencl-c.h +OLD_FILES+=usr/lib/clang/9.0.0/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/s390intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/shaintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/smmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vadefs.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vecintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/x86intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xopintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/9.0.0/include +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-aarch64.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-arm.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-armhf.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.dd-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.dd-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-powerpc.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-powerpc64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.safestack-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-x86_64.a +OLD_DIRS+=usr/lib/clang/9.0.0/lib/freebsd +OLD_DIRS+=usr/lib/clang/9.0.0/lib +OLD_DIRS+=usr/lib/clang/9.0.0 # 20200107: new clang import which bumps version from 8.0.1 to 9.0.0. OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/asan_interface.h Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/UPDATING Tue Jan 7 20:01:59 2020 (r356465) @@ -18,7 +18,7 @@ from older version of current across the gcc/clang cut 20200107: Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have - been upgraded to 9.0.0. Please see the 20141231 entry below for + been upgraded to 9.0.1. 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: stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h Tue Jan 7 20:01:59 2020 (r356465) @@ -109,14 +109,12 @@ class ABIArgInfo { (private) UnpaddedCoerceAndExpandType = T; } - ABIArgInfo(Kind K) - : TheKind(K), PaddingInReg(false), InReg(false) { - } - public: - ABIArgInfo() + ABIArgInfo(Kind K = Direct) : TypeData(nullptr), PaddingType(nullptr), DirectOffset(0), - TheKind(Direct), PaddingInReg(false), InReg(false) {} + TheKind(K), PaddingInReg(false), InAllocaSRet(false), + IndirectByVal(false), IndirectRealign(false), SRetAfterThis(false), + InReg(false), CanBeFlattened(false), SignExt(false) {} static ABIArgInfo getDirect(llvm::Type *T = nullptr, unsigned Offset = 0, llvm::Type *Padding = nullptr, Modified: stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -427,10 +427,11 @@ bool ARMTargetInfo::handleTargetFeatures(std::vectorgetType()); + auto *PTy = llvm::PointerType::get( + VarTy, getContext().getTargetAddressSpace(VD->getType())); + if (PTy != Addr.getType()) + Addr = Builder.CreatePointerBitCastOrAddrSpaceCast(Addr, PTy); } else { // Should we be using the alignment of the constant pointer we emitted? CharUnits Alignment = Modified: stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -617,6 +617,9 @@ class MicrosoftCXXABI : public CGCXXABI { (private) llvm::Function *EmitVirtualMemPtrThunk(const CXXMethodDecl *MD, const MethodVFTableLocation &ML); + llvm::Constant *EmitMemberDataPointer(const CXXRecordDecl *RD, + CharUnits offset); + public: llvm::Type *ConvertMemberPointerType(const MemberPointerType *MPT) override; @@ -2700,7 +2703,11 @@ MicrosoftCXXABI::EmitFullMemberPointer(llvm::Constant llvm::Constant * MicrosoftCXXABI::EmitMemberDataPointer(const MemberPointerType *MPT, CharUnits offset) { - const CXXRecordDecl *RD = MPT->getMostRecentCXXRecordDecl(); + return EmitMemberDataPointer(MPT->getMostRecentCXXRecordDecl(), offset); +} + +llvm::Constant *MicrosoftCXXABI::EmitMemberDataPointer(const CXXRecordDecl *RD, + CharUnits offset) { if (RD->getMSInheritanceModel() == MSInheritanceAttr::Keyword_virtual_inheritance) offset -= getContext().getOffsetOfBaseWithVBPtr(RD); @@ -2724,8 +2731,17 @@ llvm::Constant *MicrosoftCXXABI::EmitMemberPointer(con if (const CXXMethodDecl *MD = dyn_cast(MPD)) { C = EmitMemberFunctionPointer(MD); } else { + // For a pointer to data member, start off with the offset of the field in + // the class in which it was declared, and convert from there if necessary. + // For indirect field decls, get the outermost anonymous field and use the + // parent class. CharUnits FieldOffset = Ctx.toCharUnitsFromBits(Ctx.getFieldOffset(MPD)); - C = EmitMemberDataPointer(DstTy, FieldOffset); + const FieldDecl *FD = dyn_cast(MPD); + if (!FD) + FD = cast(*cast(MPD)->chain_begin()); + const CXXRecordDecl *RD = cast(FD->getParent()); + RD = RD->getMostRecentNonInjectedDecl(); + C = EmitMemberDataPointer(RD, FieldOffset); } if (!MemberPointerPath.empty()) { Modified: stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -460,7 +460,7 @@ fp16_fml_fallthrough: // now just be explicit and disable all known dependent features // as well. for (std::string Feature : { - "vfp2", "vfp2sp", + "vfp2", "vfp2sp", "vfp2d16", "vfp2d16sp", "vfp3", "vfp3sp", "vfp3d16", "vfp3d16sp", "vfp4", "vfp4sp", "vfp4d16", "vfp4d16sp", "fp-armv8", "fp-armv8sp", "fp-armv8d16", "fp-armv8d16sp", Modified: stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -658,11 +658,11 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &D if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include"); - if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { - SmallString<128> P(D.ResourceDir); - llvm::sys::path::append(P, "include"); - addSystemInclude(DriverArgs, CC1Args, P); - } + SmallString<128> ResourceDirInclude(D.ResourceDir); + llvm::sys::path::append(ResourceDirInclude, "include"); + if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && + (!getTriple().isMusl() || DriverArgs.hasArg(options::OPT_nostdlibinc))) + addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude); if (DriverArgs.hasArg(options::OPT_nostdlibinc)) return; @@ -860,6 +860,9 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &D addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/include"); addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); + + if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && getTriple().isMusl()) + addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude); } static std::string DetectLibcxxIncludePath(llvm::vfs::FileSystem &vfs, Modified: stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -3475,7 +3475,12 @@ bool Sema::MergeFunctionDecl(FunctionDecl *New, NamedD } } - if (OldQTypeForComparison == NewQType) + // If the function types are compatible, merge the declarations. Ignore the + // exception specifier because it was already checked above in + // CheckEquivalentExceptionSpec, and we don't want follow-on diagnostics + // about incompatible types under -fms-compatibility. + if (Context.hasSameFunctionTypeIgnoringExceptionSpec(OldQTypeForComparison, + NewQType)) return MergeCompatibleFunctionDecls(New, Old, S, MergeTypeWithOld); // If the types are imprecise (due to dependent constructs in friends or Modified: stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -6325,7 +6325,8 @@ namespace { Pointer, BlockPointer, Reference, - MemberPointer + MemberPointer, + MacroQualified, }; QualType Original; @@ -6356,6 +6357,9 @@ namespace { } else if (isa(Ty)) { T = cast(Ty)->getEquivalentType(); Stack.push_back(Attributed); + } else if (isa(Ty)) { + T = cast(Ty)->getUnderlyingType(); + Stack.push_back(MacroQualified); } else { const Type *DTy = Ty->getUnqualifiedDesugaredType(); if (Ty == DTy) { @@ -6411,6 +6415,9 @@ namespace { QualType New = wrap(C, cast(Old)->getInnerType(), I); return C.getParenType(New); } + + case MacroQualified: + return wrap(C, cast(Old)->getUnderlyingType(), I); case Pointer: { QualType New = wrap(C, cast(Old)->getPointeeType(), I); Modified: stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c ============================================================================== --- stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c Tue Jan 7 20:01:59 2020 (r356465) @@ -189,8 +189,9 @@ COMPILER_RT_VISIBILITY FILE *lprofOpenFileEx(const cha f = fdopen(fd, "r+b"); #elif defined(_WIN32) // FIXME: Use the wide variants to handle Unicode filenames. - HANDLE h = CreateFileA(ProfileName, GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); + HANDLE h = CreateFileA(ProfileName, GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL, 0); if (h == INVALID_HANDLE_VALUE) return NULL; @@ -199,6 +200,10 @@ COMPILER_RT_VISIBILITY FILE *lprofOpenFileEx(const cha CloseHandle(h); return NULL; } + + if (lprofLockFd(fd) != 0) + PROF_WARN("Data may be corrupted during profile merging : %s\n", + "Fail to obtain file lock due to system limit."); f = _fdopen(fd, "r+b"); if (f == 0) { Modified: stable/12/contrib/llvm-project/lld/COFF/Driver.cpp ============================================================================== --- stable/12/contrib/llvm-project/lld/COFF/Driver.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lld/COFF/Driver.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -1138,7 +1138,7 @@ void LinkerDriver::link(ArrayRef argsArr } } - if (!args.hasArg(OPT_INPUT)) { + if (!args.hasArg(OPT_INPUT, OPT_wholearchive_file)) { if (args.hasArg(OPT_deffile)) config->noEntry = true; else @@ -1626,7 +1626,7 @@ void LinkerDriver::link(ArrayRef argsArr } // Handle generation of import library from a def file. - if (!args.hasArg(OPT_INPUT)) { + if (!args.hasArg(OPT_INPUT, OPT_wholearchive_file)) { fixupExports(); createImportLibrary(/*asLib=*/true); return; @@ -1672,8 +1672,8 @@ void LinkerDriver::link(ArrayRef argsArr // Set default image name if neither /out or /def set it. if (config->outputFile.empty()) { - config->outputFile = - getOutputPath((*args.filtered(OPT_INPUT).begin())->getValue()); + config->outputFile = getOutputPath( + (*args.filtered(OPT_INPUT, OPT_wholearchive_file).begin())->getValue()); } // Fail early if an output file is not writable. Modified: stable/12/contrib/llvm-project/lld/ELF/Symbols.h ============================================================================== --- stable/12/contrib/llvm-project/lld/ELF/Symbols.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lld/ELF/Symbols.h Tue Jan 7 20:01:59 2020 (r356465) @@ -108,27 +108,27 @@ class Symbol { (public) // Symbol visibility. This is the computed minimum visibility of all // observed non-DSO symbols. - unsigned visibility : 2; + uint8_t visibility : 2; // True if the symbol was used for linking and thus need to be added to the // output file's symbol table. This is true for all symbols except for // unreferenced DSO symbols, lazy (archive) symbols, and bitcode symbols that // are unreferenced except by other bitcode objects. - unsigned isUsedInRegularObj : 1; + uint8_t isUsedInRegularObj : 1; // If this flag is true and the symbol has protected or default visibility, it // will appear in .dynsym. This flag is set by interposable DSO symbols in // executables, by most symbols in DSOs and executables built with // --export-dynamic, and by dynamic lists. - unsigned exportDynamic : 1; + uint8_t exportDynamic : 1; // False if LTO shouldn't inline whatever this symbol points to. If a symbol // is overwritten after LTO, LTO shouldn't inline the symbol because it // doesn't know the final contents of the symbol. - unsigned canInline : 1; + uint8_t canInline : 1; // True if this symbol is specified by --trace-symbol option. - unsigned traced : 1; + uint8_t traced : 1; inline void replace(const Symbol &New); @@ -236,28 +236,28 @@ class Symbol { (public) public: // True the symbol should point to its PLT entry. // For SharedSymbol only. - unsigned needsPltAddr : 1; + uint8_t needsPltAddr : 1; // True if this symbol is in the Iplt sub-section of the Plt and the Igot // sub-section of the .got.plt or .got. - unsigned isInIplt : 1; + uint8_t isInIplt : 1; // True if this symbol needs a GOT entry and its GOT entry is actually in // Igot. This will be true only for certain non-preemptible ifuncs. - unsigned gotInIgot : 1; + uint8_t gotInIgot : 1; // True if this symbol is preemptible at load time. - unsigned isPreemptible : 1; + uint8_t isPreemptible : 1; // True if an undefined or shared symbol is used from a live section. - unsigned used : 1; + uint8_t used : 1; // True if a call to this symbol needs to be followed by a restore of the // PPC64 toc pointer. - unsigned needsTocRestore : 1; + uint8_t needsTocRestore : 1; // True if this symbol is defined by a linker script. - unsigned scriptDefined : 1; + uint8_t scriptDefined : 1; // The partition whose dynamic symbol table contains this symbol's definition. uint8_t partition = 1; Modified: stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst ============================================================================== --- stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst Tue Jan 7 20:01:59 2020 (r356465) @@ -153,7 +153,7 @@ COFF Improvements * Having more than two ``/natvis:`` now works correctly; it used to not work for larger binaries before. - (`r327895 `_) + (`r359515 `_) * Undefined symbols are now printed only in demangled form. Pass ``/demangle:no`` to see raw symbol names instead. Copied: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp (from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp Tue Jan 7 20:01:59 2020 (r356465, copy of r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp) @@ -0,0 +1,88 @@ +#include "PythonReadline.h" + +#ifdef LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE + +#include + +#include + +// Simple implementation of the Python readline module using libedit. +// In the event that libedit is excluded from the build, this turns +// back into a null implementation that blocks the module from pulling +// in the GNU readline shared lib, which causes linkage confusion when +// both readline and libedit's readline compatibility symbols collide. +// +// Currently it only installs a PyOS_ReadlineFunctionPointer, without +// implementing any of the readline module methods. This is meant to +// work around LLVM pr18841 to avoid seg faults in the stock Python +// readline.so linked against GNU readline. +// +// Bug on the cpython side: https://bugs.python.org/issue38634 + +PyDoc_STRVAR(moduleDocumentation, + "Simple readline module implementation based on libedit."); + +#if PY_MAJOR_VERSION >= 3 +static struct PyModuleDef readline_module = { + PyModuleDef_HEAD_INIT, // m_base + "lldb_editline", // m_name + moduleDocumentation, // m_doc + -1, // m_size + nullptr, // m_methods + nullptr, // m_reload + nullptr, // m_traverse + nullptr, // m_clear + nullptr, // m_free +}; +#else +static struct PyMethodDef moduleMethods[] = {{nullptr, nullptr, 0, nullptr}}; +#endif + +static char * +#if PY_MAJOR_VERSION >= 3 +simple_readline(FILE *stdin, FILE *stdout, const char *prompt) +#else +simple_readline(FILE *stdin, FILE *stdout, char *prompt) +#endif +{ + rl_instream = stdin; + rl_outstream = stdout; + char *line = readline(prompt); + if (!line) { +#if PY_MAJOR_VERSION >= 3 + char *ret = (char *)PyMem_RawMalloc(1); +#else + char *ret = (char *)PyMem_Malloc(1); +#endif + if (ret != NULL) + *ret = '\0'; + return ret; + } + if (*line) + add_history(line); + int n = strlen(line); +#if PY_MAJOR_VERSION >= 3 + char *ret = (char *)PyMem_RawMalloc(n + 2); +#else + char *ret = (char *)PyMem_Malloc(n + 2); +#endif + if (ret) { + strncpy(ret, line, n); + free(line); + ret[n] = '\n'; + ret[n + 1] = '\0'; + } + return ret; +} + +PyMODINIT_FUNC initlldb_readline(void) { + PyOS_ReadlineFunctionPointer = simple_readline; + +#if PY_MAJOR_VERSION >= 3 + return PyModule_Create(&readline_module); +#else + Py_InitModule4("readline", moduleMethods, moduleDocumentation, + static_cast(NULL), PYTHON_API_VERSION); +#endif +} +#endif Copied: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h (from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h Tue Jan 7 20:01:59 2020 (r356465, copy of r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h) @@ -0,0 +1,26 @@ +//===-- PythonReadline.h ----------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H +#define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H + +#if !defined(LLDB_DISABLE_LIBEDIT) && defined(__linux__) +// NOTE: Since Python may define some pre-processor definitions which affect the +// standard headers on some systems, you must include Python.h before any +// standard headers are included. +#include "Python.h" + +// no need to hack into Python's readline module if libedit isn't used. +// +#define LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE 1 + +extern "C" PyMODINIT_FUNC initlldb_readline(void); + +#endif + +#endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H Modified: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp ============================================================================== --- stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -17,6 +17,7 @@ #include "PythonDataObjects.h" #include "PythonExceptionState.h" +#include "PythonReadline.h" #include "ScriptInterpreterPythonImpl.h" #include "lldb/API/SBFrame.h" @@ -206,6 +207,22 @@ struct InitializePythonRAII { (public) m_stdin_tty_state.Save(STDIN_FILENO, false); InitializePythonHome(); + +#ifdef LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE + // Python's readline is incompatible with libedit being linked into lldb. + // Provide a patched version local to the embedded interpreter. + bool ReadlinePatched = false; + for (auto *p = PyImport_Inittab; p->name != NULL; p++) { + if (strcmp(p->name, "readline") == 0) { + p->initfunc = initlldb_readline; + break; + } + } + if (!ReadlinePatched) { + PyImport_AppendInittab("readline", initlldb_readline); + ReadlinePatched = true; + } +#endif // Register _lldb as a built-in module. PyImport_AppendInittab("_lldb", LLDBSwigPyInit); Modified: stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp ============================================================================== --- stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -896,14 +896,8 @@ void Symtab::InitAddressIndexes() { for (size_t i = 0; i < num_entries; i++) { FileRangeToIndexMap::Entry *entry = m_file_addr_to_index.GetMutableEntryAtIndex(i); - if (entry->GetByteSize() > 0) - continue; - addr_t curr_base_addr = entry->GetRangeBase(); - // Symbols with non-zero size will show after zero-sized symbols on the - // same address. So do not set size of a non-last zero-sized symbol. - if (i == num_entries - 1 || - m_file_addr_to_index.GetMutableEntryAtIndex(i + 1) - ->GetRangeBase() != curr_base_addr) { + if (entry->GetByteSize() == 0) { + addr_t curr_base_addr = entry->GetRangeBase(); const RangeVector::Entry *containing_section = section_ranges.FindEntryThatContains(curr_base_addr); Modified: stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h Tue Jan 7 20:01:59 2020 (r356465) @@ -792,6 +792,10 @@ class MachineFunction { (public) MCSymbol *PreInstrSymbol = nullptr, MCSymbol *PostInstrSymbol = nullptr); + MachineInstr::ExtraInfo *createMIExtraInfoWithMarker( + ArrayRef MMOs, MCSymbol *PreInstrSymbol, + MCSymbol *PostInstrSymbol, MDNode *HeapAllocMarker); + /// Allocate a string and populate it with the given external symbol name. const char *createExternalSymbolName(StringRef Name); Modified: stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h Tue Jan 7 20:01:59 2020 (r356465) @@ -137,19 +137,23 @@ class MachineInstr (private) /// This has to be defined eagerly due to the implementation constraints of /// `PointerSumType` where it is used. class ExtraInfo final - : TrailingObjects { + : TrailingObjects { public: static ExtraInfo *create(BumpPtrAllocator &Allocator, ArrayRef MMOs, MCSymbol *PreInstrSymbol = nullptr, - MCSymbol *PostInstrSymbol = nullptr) { + MCSymbol *PostInstrSymbol = nullptr, + MDNode *HeapAllocMarker = nullptr) { bool HasPreInstrSymbol = PreInstrSymbol != nullptr; bool HasPostInstrSymbol = PostInstrSymbol != nullptr; + bool HasHeapAllocMarker = HeapAllocMarker != nullptr; auto *Result = new (Allocator.Allocate( - totalSizeToAlloc( - MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol), + totalSizeToAlloc( + MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol, + HasHeapAllocMarker), alignof(ExtraInfo))) - ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol); + ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol, + HasHeapAllocMarker); // Copy the actual data into the trailing objects. std::copy(MMOs.begin(), MMOs.end(), @@ -160,6 +164,8 @@ class MachineInstr (private) if (HasPostInstrSymbol) Result->getTrailingObjects()[HasPreInstrSymbol] = PostInstrSymbol; + if (HasHeapAllocMarker) + Result->getTrailingObjects()[0] = HeapAllocMarker; return Result; } @@ -178,6 +184,10 @@ class MachineInstr (private) : nullptr; } + MDNode *getHeapAllocMarker() const { + return HasHeapAllocMarker ? getTrailingObjects()[0] : nullptr; + } + private: friend TrailingObjects; @@ -189,6 +199,7 @@ class MachineInstr (private) const int NumMMOs; const bool HasPreInstrSymbol; const bool HasPostInstrSymbol; + const bool HasHeapAllocMarker; // Implement the `TrailingObjects` internal API. size_t numTrailingObjects(OverloadToken) const { @@ -197,12 +208,17 @@ class MachineInstr (private) size_t numTrailingObjects(OverloadToken) const { return HasPreInstrSymbol + HasPostInstrSymbol; } + size_t numTrailingObjects(OverloadToken) const { + return HasHeapAllocMarker; + } // Just a boring constructor to allow us to initialize the sizes. Always use // the `create` routine above. - ExtraInfo(int NumMMOs, bool HasPreInstrSymbol, bool HasPostInstrSymbol) + ExtraInfo(int NumMMOs, bool HasPreInstrSymbol, bool HasPostInstrSymbol, + bool HasHeapAllocMarker) : NumMMOs(NumMMOs), HasPreInstrSymbol(HasPreInstrSymbol), - HasPostInstrSymbol(HasPostInstrSymbol) {} + HasPostInstrSymbol(HasPostInstrSymbol), + HasHeapAllocMarker(HasHeapAllocMarker) {} }; /// Enumeration of the kinds of inline extra info available. It is important @@ -577,6 +593,16 @@ class MachineInstr (private) return nullptr; } + /// Helper to extract a heap alloc marker if one has been added. + MDNode *getHeapAllocMarker() const { + if (!Info) + return nullptr; + if (ExtraInfo *EI = Info.get()) + return EI->getHeapAllocMarker(); + + return nullptr; + } + /// API for querying MachineInstr properties. They are the same as MCInstrDesc /// queries but they are bundle aware. @@ -1578,6 +1604,12 @@ class MachineInstr (private) /// replace ours with it. void cloneInstrSymbols(MachineFunction &MF, const MachineInstr &MI); + /// Set a marker on instructions that denotes where we should create and emit + /// heap alloc site labels. This waits until after instruction selection and + /// optimizations to create the label, so it should still work if the + /// instruction is removed or duplicated. + void setHeapAllocMarker(MachineFunction &MF, MDNode *MD); + /// Return the MIFlags which represent both MachineInstrs. This /// should be used when merging two MachineInstrs into one. This routine does /// not modify the MIFlags of this MachineInstr. @@ -1632,6 +1664,12 @@ class MachineInstr (private) const TargetRegisterClass *getRegClassConstraintEffectForVRegImpl( unsigned OpIdx, unsigned Reg, const TargetRegisterClass *CurRC, const TargetInstrInfo *TII, const TargetRegisterInfo *TRI) const; + + /// Stores extra instruction information inline or allocates as ExtraInfo + /// based on the number of pointers. + void setExtraInfo(MachineFunction &MF, ArrayRef MMOs, + MCSymbol *PreInstrSymbol, MCSymbol *PostInstrSymbol, + MDNode *HeapAllocMarker); }; /// Special DenseMapInfo traits to compare MachineInstr* by *value* of the Modified: stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h Tue Jan 7 20:01:59 2020 (r356465) @@ -89,7 +89,8 @@ class StackProtector : public FunctionPass { (private) bool InStruct = false) const; /// Check whether a stack allocation has its address taken. - bool HasAddressTaken(const Instruction *AI); + bool HasAddressTaken(const Instruction *AI, + SmallPtrSetImpl &VisitedPHIs); /// RequiresStackProtector - Check whether or not this function needs a /// stack protector based upon the stack protector level. Modified: stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h Tue Jan 7 20:01:59 2020 (r356465) @@ -16,6 +16,8 @@ #include "llvm/Demangle/DemangleConfig.h" #include "llvm/Demangle/StringView.h" #include +#include +#include namespace llvm { namespace itanium_demangle { Modified: stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h Tue Jan 7 20:01:59 2020 (r356465) @@ -120,6 +120,8 @@ class GVN : public PassInfoMixin { (public) uint32_t lookupOrAddCall(CallInst *C); uint32_t phiTranslateImpl(const BasicBlock *BB, const BasicBlock *PhiBlock, uint32_t Num, GVN &Gvn); + bool areCallValsEqual(uint32_t Num, uint32_t NewNum, const BasicBlock *Pred, + const BasicBlock *PhiBlock, GVN &Gvn); std::pair assignExpNewValueNum(Expression &exp); bool areAllValsInBB(uint32_t num, const BasicBlock *BB, GVN &Gvn); Modified: stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -1127,15 +1127,9 @@ void CodeViewDebug::emitDebugInfoForFunction(const Fun } for (auto HeapAllocSite : FI.HeapAllocSites) { - MCSymbol *BeginLabel = std::get<0>(HeapAllocSite); - MCSymbol *EndLabel = std::get<1>(HeapAllocSite); - - // The labels might not be defined if the instruction was replaced - // somewhere in the codegen pipeline. - if (!BeginLabel->isDefined() || !EndLabel->isDefined()) - continue; - - DIType *DITy = std::get<2>(HeapAllocSite); + const MCSymbol *BeginLabel = std::get<0>(HeapAllocSite); + const MCSymbol *EndLabel = std::get<1>(HeapAllocSite); + const DIType *DITy = std::get<2>(HeapAllocSite); MCSymbol *HeapAllocEnd = beginSymbolRecord(SymbolKind::S_HEAPALLOCSITE); OS.AddComment("Call site offset"); OS.EmitCOFFSecRel32(BeginLabel, /*Offset=*/0); @@ -1454,6 +1448,16 @@ void CodeViewDebug::beginFunctionImpl(const MachineFun DebugLoc FnStartDL = PrologEndLoc.getFnDebugLoc(); maybeRecordLocation(FnStartDL, MF); } + + // Find heap alloc sites and emit labels around them. + for (const auto &MBB : *MF) { + for (const auto &MI : MBB) { + if (MI.getHeapAllocMarker()) { + requestLabelBeforeInsn(&MI); + requestLabelAfterInsn(&MI); + } + } + } } static bool shouldEmitUdt(const DIType *T) { @@ -2888,8 +2892,18 @@ void CodeViewDebug::endFunctionImpl(const MachineFunct return; } + // Find heap alloc sites and add to list. + for (const auto &MBB : *MF) { + for (const auto &MI : MBB) { + if (MDNode *MD = MI.getHeapAllocMarker()) { + CurFn->HeapAllocSites.push_back(std::make_tuple(getLabelBeforeInsn(&MI), + getLabelAfterInsn(&MI), + dyn_cast(MD))); + } + } + } + CurFn->Annotations = MF->getCodeViewAnnotations(); - CurFn->HeapAllocSites = MF->getCodeViewHeapAllocSites(); CurFn->End = Asm->getFunctionEnd(); Modified: stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h Tue Jan 7 20:01:59 2020 (r356465) @@ -148,7 +148,8 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDebug : public D SmallVector ChildBlocks; std::vector> Annotations; - std::vector> HeapAllocSites; + std::vector> + HeapAllocSites; const MCSymbol *Begin = nullptr; const MCSymbol *End = nullptr; Modified: stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -588,8 +588,8 @@ void IRTranslator::emitSwitchCase(SwitchCG::CaseBlock Register CondRHS = getOrCreateVReg(*CB.CmpRHS); Cond = MIB.buildICmp(CB.PredInfo.Pred, i1Ty, CondLHS, CondRHS).getReg(0); } else { - assert(CB.PredInfo.Pred == CmpInst::ICMP_ULE && - "Can only handle ULE ranges"); + assert(CB.PredInfo.Pred == CmpInst::ICMP_SLE && + "Can only handle SLE ranges"); const APInt& Low = cast(CB.CmpLHS)->getValue(); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 7 20:06:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF4E41F1666; Tue, 7 Jan 2020 20:06:28 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk0h4hLWz4YMc; Tue, 7 Jan 2020 20:06:28 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 97B7D45DC; Tue, 7 Jan 2020 20:06:28 +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 007K6SvO003662; Tue, 7 Jan 2020 20:06:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K6RhN003655; Tue, 7 Jan 2020 20:06:27 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072006.007K6RhN003655@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:06:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356466 - in stable/12/contrib/llvm-project/libcxx/include: . ext X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/contrib/llvm-project/libcxx/include: . ext X-SVN-Commit-Revision: 356466 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:06:28 -0000 Author: dim Date: Tue Jan 7 20:06:26 2020 New Revision: 356466 URL: https://svnweb.freebsd.org/changeset/base/356466 Log: MFC r356005: Merge commit f97936fab from llvm git (by Eric Fiselier): [libc++] Cleanup and enable multiple warnings. Too many warnings are being disabled too quickly. Warnings are important to keeping libc++ correct. This patch re-enables two warnings: -Wconstant-evaluated and -Wdeprecated-copy. In future, all warnings disabled for the test suite should require an attached bug. The bug should state the plan for re-enabling that warning, or a strong case why it should remain disabled. This should fix a number of new g++ 9 warnings. Requested by: rlibby Modified: stable/12/contrib/llvm-project/libcxx/include/__bit_reference stable/12/contrib/llvm-project/libcxx/include/__hash_table stable/12/contrib/llvm-project/libcxx/include/__tree stable/12/contrib/llvm-project/libcxx/include/ext/hash_map stable/12/contrib/llvm-project/libcxx/include/random stable/12/contrib/llvm-project/libcxx/include/valarray Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) Modified: stable/12/contrib/llvm-project/libcxx/include/__bit_reference ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/__bit_reference Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/__bit_reference Tue Jan 7 20:06:26 2020 (r356466) @@ -1108,8 +1108,12 @@ class __bit_iterator (public) #endif {} + // avoid re-declaring a copy constructor for the non-const version. + using __type_for_copy_to_const = + _If<_IsConst, __bit_iterator<_Cp, false>, struct __private_nat>; + _LIBCPP_INLINE_VISIBILITY - __bit_iterator(const __bit_iterator<_Cp, false>& __it) _NOEXCEPT + __bit_iterator(const __type_for_copy_to_const& __it) _NOEXCEPT : __seg_(__it.__seg_), __ctz_(__it.__ctz_) {} _LIBCPP_INLINE_VISIBILITY reference operator*() const _NOEXCEPT Modified: stable/12/contrib/llvm-project/libcxx/include/__hash_table ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/__hash_table Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/__hash_table Tue Jan 7 20:06:26 2020 (r356466) @@ -825,10 +825,12 @@ class __hash_node_destructor (private) allocator_type& __na_; - __hash_node_destructor& operator=(const __hash_node_destructor&); - public: bool __value_constructed; + + __hash_node_destructor(__hash_node_destructor const&) = default; + __hash_node_destructor& operator=(const __hash_node_destructor&) = delete; + _LIBCPP_INLINE_VISIBILITY explicit __hash_node_destructor(allocator_type& __na, Modified: stable/12/contrib/llvm-project/libcxx/include/__tree ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/__tree Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/__tree Tue Jan 7 20:06:26 2020 (r356466) @@ -775,10 +775,13 @@ class __tree_node_destructor (private) typedef __tree_node_types _NodeTypes; allocator_type& __na_; - __tree_node_destructor& operator=(const __tree_node_destructor&); public: bool __value_constructed; + + + __tree_node_destructor(const __tree_node_destructor &) = default; + __tree_node_destructor& operator=(const __tree_node_destructor&) = delete; _LIBCPP_INLINE_VISIBILITY explicit __tree_node_destructor(allocator_type& __na, bool __val = false) _NOEXCEPT Modified: stable/12/contrib/llvm-project/libcxx/include/ext/hash_map ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/ext/hash_map Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/ext/hash_map Tue Jan 7 20:06:26 2020 (r356466) @@ -315,11 +315,12 @@ class __hash_map_node_destructor (private) allocator_type& __na_; - __hash_map_node_destructor& operator=(const __hash_map_node_destructor&); - public: bool __first_constructed; bool __second_constructed; + + __hash_map_node_destructor(__hash_map_node_destructor const&) = default; + __hash_map_node_destructor& operator=(const __hash_map_node_destructor&) = delete; _LIBCPP_INLINE_VISIBILITY explicit __hash_map_node_destructor(allocator_type& __na) Modified: stable/12/contrib/llvm-project/libcxx/include/random ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/random Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/random Tue Jan 7 20:06:26 2020 (r356466) @@ -6105,6 +6105,7 @@ class _LIBCPP_TEMPLATE_VIS piecewise_constant_distribu template param_type(size_t __nw, result_type __xmin, result_type __xmax, _UnaryOperation __fw); + param_type(param_type const&) = default; param_type & operator=(const param_type& __rhs); _LIBCPP_INLINE_VISIBILITY @@ -6428,6 +6429,7 @@ class _LIBCPP_TEMPLATE_VIS piecewise_linear_distributi template param_type(size_t __nw, result_type __xmin, result_type __xmax, _UnaryOperation __fw); + param_type(param_type const&) = default; param_type & operator=(const param_type& __rhs); _LIBCPP_INLINE_VISIBILITY Modified: stable/12/contrib/llvm-project/libcxx/include/valarray ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/valarray Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/valarray Tue Jan 7 20:06:26 2020 (r356466) @@ -1256,6 +1256,8 @@ class _LIBCPP_TEMPLATE_VIS slice_array (public) _LIBCPP_INLINE_VISIBILITY operator>>=(const _Expr& __v) const; + slice_array(slice_array const&) = default; + _LIBCPP_INLINE_VISIBILITY const slice_array& operator=(const slice_array& __sa) const; @@ -1505,11 +1507,6 @@ class _LIBCPP_TYPE_VIS gslice (public) #endif // _LIBCPP_CXX03_LANG -// gslice(const gslice&) = default; -// gslice(gslice&&) = default; -// gslice& operator=(const gslice&) = default; -// gslice& operator=(gslice&&) = default; - _LIBCPP_INLINE_VISIBILITY size_t start() const {return __1d_.size() ? __1d_[0] : 0;} @@ -1645,10 +1642,7 @@ class _LIBCPP_TEMPLATE_VIS gslice_array (public) _LIBCPP_INLINE_VISIBILITY void operator=(const value_type& __x) const; -// gslice_array(const gslice_array&) = default; -// gslice_array(gslice_array&&) = default; -// gslice_array& operator=(const gslice_array&) = default; -// gslice_array& operator=(gslice_array&&) = default; + gslice_array(const gslice_array&) = default; private: gslice_array(const gslice& __gs, const valarray& __v) @@ -1977,17 +1971,14 @@ class _LIBCPP_TEMPLATE_VIS mask_array (public) _LIBCPP_INLINE_VISIBILITY operator>>=(const _Expr& __v) const; + mask_array(const mask_array&) = default; + _LIBCPP_INLINE_VISIBILITY const mask_array& operator=(const mask_array& __ma) const; _LIBCPP_INLINE_VISIBILITY void operator=(const value_type& __x) const; -// mask_array(const mask_array&) = default; -// mask_array(mask_array&&) = default; -// mask_array& operator=(const mask_array&) = default; -// mask_array& operator=(mask_array&&) = default; - private: _LIBCPP_INLINE_VISIBILITY mask_array(const valarray& __vb, const valarray& __v) @@ -2336,16 +2327,13 @@ class _LIBCPP_TEMPLATE_VIS indirect_array (public) _LIBCPP_INLINE_VISIBILITY operator>>=(const _Expr& __v) const; + indirect_array(const indirect_array&) = default; + _LIBCPP_INLINE_VISIBILITY const indirect_array& operator=(const indirect_array& __ia) const; _LIBCPP_INLINE_VISIBILITY void operator=(const value_type& __x) const; - -// indirect_array(const indirect_array&) = default; -// indirect_array(indirect_array&&) = default; -// indirect_array& operator=(const indirect_array&) = default; -// indirect_array& operator=(indirect_array&&) = default; private: _LIBCPP_INLINE_VISIBILITY From owner-svn-src-all@freebsd.org Tue Jan 7 20:09:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7D4701F1749; Tue, 7 Jan 2020 20:09:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk3h2pTkz4YVL; Tue, 7 Jan 2020 20:09:04 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5732945DE; Tue, 7 Jan 2020 20:09:04 +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 007K94wk003855; Tue, 7 Jan 2020 20:09:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K93jh003849; Tue, 7 Jan 2020 20:09:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072009.007K93jh003849@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:09:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356467 - in stable/12: contrib/llvm-project/clang/lib/AST contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/compiler-rt/lib/builtins contrib/llvm-project/llvm/lib/Targe... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: contrib/llvm-project/clang/lib/AST contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/compiler-rt/lib/builtins contrib/llvm-project/llvm/lib/Target/PowerPC lib/libcompiler... X-SVN-Commit-Revision: 356467 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:09:04 -0000 Author: dim Date: Tue Jan 7 20:09:02 2020 New Revision: 356467 URL: https://svnweb.freebsd.org/changeset/base/356467 Log: MFC r356100: Merge commit d3aeac8e2 from llvm git (by Justin Hibbits) [PowerPC] Only use PLT annotations if using PIC relocation model Summary: The default static (non-PIC, non-PIE) model for 32-bit powerpc does not use @PLT annotations and relocations in GCC. LLVM shouldn't use @PLT annotations either, because it breaks secure-PLT linking with (some versions of?) GNU LD. Update the available-externally.ll test to reflect that default mode should be the same as the static relocation, by using the same check prefix. Reviewed by: sfertile Differential Revision: https://reviews.llvm.org/D70570 Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D22913 MFC r356104 (by jhibbits): [PowerPC] enable atomic.c in compiler_rt and do not check and forces lock/lock_free decisions in compiled time Summary: Enables atomic.c in compiler_rt and forces clang to not emit a call for runtime decision about lock/lock_free. At compiling time, if clang can't decide if atomic operation can be lock free, it emits calls to external functions like `__atomic_is_lock_free`, `__c11_atomic_is_lock_free` and `__atomic_always_lock_free`, postponing decision to a runtime check. According to LLVM code documentation, the mechanism exists due to differences between x86_64 processors that can't be decided at runtime. On PowerPC and PowerPCSPE (32 bits), we already know in advance it can't be lock free, so we force the decision at compile time and avoid having to implement it in an external library. This patch was made after 32 bit users testing the PowePC32 bit ISO reported llvm could not be compiled with in-base llvm due to `__atomic_load8` not implemented. Submitted by: alfredo.junior_eldorado.org.br Reviewed by: jhibbits, dim Differential Revision: https://reviews.freebsd.org/D22549 MFC r356112 (by jhibbits): [PowerPC64] Starting from FreeBSD 13.0, default to ELFv2 ABI This changes the LLVM default powerpc64 ABI to ELFv2, if target OS is FreeBSD >= 13.0 This will also be sent upstream. Submitted by: alfredo.junior_eldorado.org.br Reviewed by: dim, luporl Relnotes: YES Differential Revision: https://reviews.freebsd.org/D20383 Modified: stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp stable/12/lib/libcompiler_rt/Makefile.inc Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp Tue Jan 7 20:09:02 2020 (r356467) @@ -9896,6 +9896,13 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const Call } } + // Avoid emiting call for runtime decision on PowerPC 32-bit + // The lock free possibilities on this platform are covered by the lines + // above and we know in advance other cases require lock + if (Info.Ctx.getTargetInfo().getTriple().getArch() == llvm::Triple::ppc) { + return Success(0, E); + } + return BuiltinOp == Builtin::BI__atomic_always_lock_free ? Success(0, E) : Error(E); } Modified: stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h Tue Jan 7 20:09:02 2020 (r356467) @@ -375,12 +375,29 @@ class LLVM_LIBRARY_VISIBILITY PPC64TargetInfo : public IntMaxType = SignedLong; Int64Type = SignedLong; + if (Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) { + switch (Triple.getEnvironment()){ + case llvm::Triple::ELFv1: + ABI = "elfv1"; + break; + default: + ABI = "elfv2"; + break; + } + } else { + if ((Triple.getOS() == llvm::Triple::FreeBSD) && + (Triple.getOSMajorVersion() < 13)) { + ABI = "elfv1"; + } else { + ABI = "elfv2"; + } + } + + if ((Triple.getArch() == llvm::Triple::ppc64le)) { resetDataLayout("e-m:e-i64:64-n32:64"); - ABI = "elfv2"; } else { resetDataLayout("E-m:e-i64:64-n32:64"); - ABI = Triple.getEnvironment() == llvm::Triple::ELFv2 ? "elfv2" : "elfv1"; } if (Triple.getOS() == llvm::Triple::AIX) Modified: stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c ============================================================================== --- stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c Tue Jan 7 20:09:02 2020 (r356467) @@ -51,8 +51,8 @@ static const long SPINLOCK_MASK = SPINLOCK_COUNT - 1; //////////////////////////////////////////////////////////////////////////////// #ifdef __FreeBSD__ #include -#include #include +#include #include typedef struct _usem Lock; __inline static void unlock(Lock *l) { @@ -117,13 +117,20 @@ static __inline Lock *lock_for_pointer(void *ptr) { return locks + (hash & SPINLOCK_MASK); } -/// Macros for determining whether a size is lock free. Clang can not yet -/// codegen __atomic_is_lock_free(16), so for now we assume 16-byte values are -/// not lock free. +/// Macros for determining whether a size is lock free. #define IS_LOCK_FREE_1 __c11_atomic_is_lock_free(1) #define IS_LOCK_FREE_2 __c11_atomic_is_lock_free(2) #define IS_LOCK_FREE_4 __c11_atomic_is_lock_free(4) + +/// 32 bit PowerPC doesn't support 8-byte lock_free atomics +#if !defined(__powerpc64__) && defined(__powerpc__) +#define IS_LOCK_FREE_8 0 +#else #define IS_LOCK_FREE_8 __c11_atomic_is_lock_free(8) +#endif + +/// Clang can not yet codegen __atomic_is_lock_free(16), so for now we assume +/// 16-byte values are not lock free. #define IS_LOCK_FREE_16 0 /// Macro that calls the compiler-generated lock-free versions of functions Modified: stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp Tue Jan 7 20:09:02 2020 (r356467) @@ -4952,7 +4952,12 @@ PrepareCall(SelectionDAG &DAG, SDValue &Callee, SDValu if (auto *G = dyn_cast(Callee)) GV = G->getGlobal(); bool Local = TM.shouldAssumeDSOLocal(*Mod, GV); - bool UsePlt = !Local && Subtarget.isTargetELF() && !isPPC64; + // The PLT is only used in 32-bit ELF PIC mode. Attempting to use the PLT in + // a static relocation model causes some versions of GNU LD (2.17.50, at + // least) to force BSS-PLT, instead of secure-PLT, even if all objects are + // built with secure-PLT. + bool UsePlt = !Local && Subtarget.isTargetELF() && !isPPC64 && + Subtarget.getTargetMachine().getRelocationModel() == Reloc::PIC_; // If the callee is a GlobalAddress/ExternalSymbol node (quite common, // every direct call is) turn it into a TargetGlobalAddress / Modified: stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp Tue Jan 7 20:09:02 2020 (r356467) @@ -209,6 +209,20 @@ static PPCTargetMachine::PPCABI computeTargetABI(const if (TT.isMacOSX()) return PPCTargetMachine::PPC_ABI_UNKNOWN; + if (TT.isOSFreeBSD()) { + switch (TT.getArch()) { + case Triple::ppc64le: + case Triple::ppc64: + if (TT.getOSMajorVersion() >= 13) + return PPCTargetMachine::PPC_ABI_ELFv2; + else + return PPCTargetMachine::PPC_ABI_ELFv1; + case Triple::ppc: + default: + return PPCTargetMachine::PPC_ABI_UNKNOWN; + } + } + switch (TT.getArch()) { case Triple::ppc64le: return PPCTargetMachine::PPC_ABI_ELFv2; Modified: stable/12/lib/libcompiler_rt/Makefile.inc ============================================================================== --- stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 20:09:02 2020 (r356467) @@ -205,6 +205,14 @@ CFLAGS+= -DEMIT_SYNC_ATOMICS SRCF+= stdatomic .endif + +.if "${COMPILER_TYPE}" == "clang" && \ + (${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe") +SRCS+= atomic.c +CFLAGS.atomic.c+= -Wno-atomic-alignment +.endif + + .for file in ${SRCF} .if ${MACHINE_ARCH:Marmv[67]*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") \ && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) From owner-svn-src-all@freebsd.org Tue Jan 7 20:09:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EF3FE1F17E5; Tue, 7 Jan 2020 20:09:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk4k67RCz4Ycb; Tue, 7 Jan 2020 20:09:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CDA1F45DF; Tue, 7 Jan 2020 20:09:58 +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 007K9wJL003959; Tue, 7 Jan 2020 20:09:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K9wnD003957; Tue, 7 Jan 2020 20:09:58 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072009.007K9wnD003957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:09:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356468 - stable/12/contrib/llvm-project/llvm/lib/Target/X86 X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12/contrib/llvm-project/llvm/lib/Target/X86 X-SVN-Commit-Revision: 356468 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:09:59 -0000 Author: dim Date: Tue Jan 7 20:09:58 2020 New Revision: 356468 URL: https://svnweb.freebsd.org/changeset/base/356468 Log: MFC r356256: Merge commit 468a0cb5f from llvm git (by Craig Topper): [X86] Add X87 FCMOV support to X86FlagsCopyLowering. Fixes PR44396 Merge commit 86f48999f from llvm git (by Craig Topper): [X86] Fix typo in getCMovOpcode. The 64-bit HasMemoryOperand line was using CMOV32rm instead of CMOV64rm. Not sure how to test this. We have no test coverage that passes true for HasMemoryOperand. This fixes 'Assertion failed: (MI.findRegisterDefOperand(X86::EFLAGS) && "Expected a def of EFLAGS for this instruction!"), function runOnMachineFunction' when compiling the misc/gpsim port for i386. Reported by: yuri Upstream PR: https://bugs.llvm.org/show_bug.cgi?id=44396 Modified: stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp Tue Jan 7 20:09:02 2020 (r356467) +++ stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp Tue Jan 7 20:09:58 2020 (r356468) @@ -115,6 +115,10 @@ class X86FlagsCopyLoweringPass : public MachineFunctio MachineBasicBlock::iterator TestPos, DebugLoc TestLoc, MachineInstr &CMovI, MachineOperand &FlagUse, CondRegArray &CondRegs); + void rewriteFCMov(MachineBasicBlock &TestMBB, + MachineBasicBlock::iterator TestPos, DebugLoc TestLoc, + MachineInstr &CMovI, MachineOperand &FlagUse, + CondRegArray &CondRegs); void rewriteCondJmp(MachineBasicBlock &TestMBB, MachineBasicBlock::iterator TestPos, DebugLoc TestLoc, MachineInstr &JmpI, CondRegArray &CondRegs); @@ -334,6 +338,28 @@ static MachineBasicBlock &splitBlock(MachineBasicBlock return NewMBB; } +static X86::CondCode getCondFromFCMOV(unsigned Opcode) { + switch (Opcode) { + default: return X86::COND_INVALID; + case X86::CMOVBE_Fp32: case X86::CMOVBE_Fp64: case X86::CMOVBE_Fp80: + return X86::COND_BE; + case X86::CMOVB_Fp32: case X86::CMOVB_Fp64: case X86::CMOVB_Fp80: + return X86::COND_B; + case X86::CMOVE_Fp32: case X86::CMOVE_Fp64: case X86::CMOVE_Fp80: + return X86::COND_E; + case X86::CMOVNBE_Fp32: case X86::CMOVNBE_Fp64: case X86::CMOVNBE_Fp80: + return X86::COND_A; + case X86::CMOVNB_Fp32: case X86::CMOVNB_Fp64: case X86::CMOVNB_Fp80: + return X86::COND_AE; + case X86::CMOVNE_Fp32: case X86::CMOVNE_Fp64: case X86::CMOVNE_Fp80: + return X86::COND_NE; + case X86::CMOVNP_Fp32: case X86::CMOVNP_Fp64: case X86::CMOVNP_Fp80: + return X86::COND_NP; + case X86::CMOVP_Fp32: case X86::CMOVP_Fp64: case X86::CMOVP_Fp80: + return X86::COND_P; + } +} + bool X86FlagsCopyLoweringPass::runOnMachineFunction(MachineFunction &MF) { LLVM_DEBUG(dbgs() << "********** " << getPassName() << " : " << MF.getName() << " **********\n"); @@ -593,6 +619,8 @@ bool X86FlagsCopyLoweringPass::runOnMachineFunction(Ma // Otherwise we can just rewrite in-place. if (X86::getCondFromCMov(MI) != X86::COND_INVALID) { rewriteCMov(*TestMBB, TestPos, TestLoc, MI, *FlagUse, CondRegs); + } else if (getCondFromFCMOV(MI.getOpcode()) != X86::COND_INVALID) { + rewriteFCMov(*TestMBB, TestPos, TestLoc, MI, *FlagUse, CondRegs); } else if (X86::getCondFromSETCC(MI) != X86::COND_INVALID) { rewriteSetCC(*TestMBB, TestPos, TestLoc, MI, *FlagUse, CondRegs); } else if (MI.getOpcode() == TargetOpcode::COPY) { @@ -849,6 +877,51 @@ void X86FlagsCopyLoweringPass::rewriteCMov(MachineBasi .setImm(Inverted ? X86::COND_E : X86::COND_NE); FlagUse.setIsKill(true); LLVM_DEBUG(dbgs() << " fixed cmov: "; CMovI.dump()); +} + +void X86FlagsCopyLoweringPass::rewriteFCMov(MachineBasicBlock &TestMBB, + MachineBasicBlock::iterator TestPos, + DebugLoc TestLoc, + MachineInstr &CMovI, + MachineOperand &FlagUse, + CondRegArray &CondRegs) { + // First get the register containing this specific condition. + X86::CondCode Cond = getCondFromFCMOV(CMovI.getOpcode()); + unsigned CondReg; + bool Inverted; + std::tie(CondReg, Inverted) = + getCondOrInverseInReg(TestMBB, TestPos, TestLoc, Cond, CondRegs); + + MachineBasicBlock &MBB = *CMovI.getParent(); + + // Insert a direct test of the saved register. + insertTest(MBB, CMovI.getIterator(), CMovI.getDebugLoc(), CondReg); + + auto getFCMOVOpcode = [](unsigned Opcode, bool Inverted) { + switch (Opcode) { + default: llvm_unreachable("Unexpected opcode!"); + case X86::CMOVBE_Fp32: case X86::CMOVNBE_Fp32: + case X86::CMOVB_Fp32: case X86::CMOVNB_Fp32: + case X86::CMOVE_Fp32: case X86::CMOVNE_Fp32: + case X86::CMOVP_Fp32: case X86::CMOVNP_Fp32: + return Inverted ? X86::CMOVE_Fp32 : X86::CMOVNE_Fp32; + case X86::CMOVBE_Fp64: case X86::CMOVNBE_Fp64: + case X86::CMOVB_Fp64: case X86::CMOVNB_Fp64: + case X86::CMOVE_Fp64: case X86::CMOVNE_Fp64: + case X86::CMOVP_Fp64: case X86::CMOVNP_Fp64: + return Inverted ? X86::CMOVE_Fp64 : X86::CMOVNE_Fp64; + case X86::CMOVBE_Fp80: case X86::CMOVNBE_Fp80: + case X86::CMOVB_Fp80: case X86::CMOVNB_Fp80: + case X86::CMOVE_Fp80: case X86::CMOVNE_Fp80: + case X86::CMOVP_Fp80: case X86::CMOVNP_Fp80: + return Inverted ? X86::CMOVE_Fp80 : X86::CMOVNE_Fp80; + } + }; + + // Rewrite the CMov to use the !ZF flag from the test. + CMovI.setDesc(TII->get(getFCMOVOpcode(CMovI.getOpcode(), Inverted))); + FlagUse.setIsKill(true); + LLVM_DEBUG(dbgs() << " fixed fcmov: "; CMovI.dump()); } void X86FlagsCopyLoweringPass::rewriteCondJmp( Modified: stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp Tue Jan 7 20:09:02 2020 (r356467) +++ stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp Tue Jan 7 20:09:58 2020 (r356468) @@ -2198,7 +2198,7 @@ unsigned X86::getCMovOpcode(unsigned RegBytes, bool Ha default: llvm_unreachable("Illegal register size!"); case 2: return HasMemoryOperand ? X86::CMOV16rm : X86::CMOV16rr; case 4: return HasMemoryOperand ? X86::CMOV32rm : X86::CMOV32rr; - case 8: return HasMemoryOperand ? X86::CMOV32rm : X86::CMOV64rr; + case 8: return HasMemoryOperand ? X86::CMOV64rm : X86::CMOV64rr; } } From owner-svn-src-all@freebsd.org Tue Jan 7 20:13:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C349E1F1AFE; Tue, 7 Jan 2020 20:13:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk8r4sBbz4Z6L; Tue, 7 Jan 2020 20:13:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1E0747A5; Tue, 7 Jan 2020 20:13:32 +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 007KDWZj009888; Tue, 7 Jan 2020 20:13:32 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007KDViQ009883; Tue, 7 Jan 2020 20:13:31 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072013.007KDViQ009883@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:13:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356469 - in stable/12/contrib/llvm-project: lld/ELF/Arch llvm/lib/Target/RISCV llvm/lib/Target/RISCV/MCTargetDesc X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/contrib/llvm-project: lld/ELF/Arch llvm/lib/Target/RISCV llvm/lib/Target/RISCV/MCTargetDesc X-SVN-Commit-Revision: 356469 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:13:32 -0000 Author: dim Date: Tue Jan 7 20:13:31 2020 New Revision: 356469 URL: https://svnweb.freebsd.org/changeset/base/356469 Log: MFC r356329: Merge commit 41449c58c from llvm git (by Roger Ferrer Ibanez): [RISCV] Fix evaluation of %pcrel_lo The following testcase function: .Lpcrel_label1: auipc a0, %pcrel_hi(other_function) addi a1, a0, %pcrel_lo(.Lpcrel_label1) .p2align 2 # Causes a new fragment to be emitted .type other_function,@function other_function: ret exposes an odd behaviour in which only the %pcrel_hi relocation is evaluated but not the %pcrel_lo. $ llvm-mc -triple riscv64 -filetype obj t.s | llvm-objdump -d -r - : file format ELF64-riscv Disassembly of section .text: 0000000000000000 function: 0: 17 05 00 00 auipc a0, 0 4: 93 05 05 00 mv a1, a0 0000000000000004: R_RISCV_PCREL_LO12_I other_function+4 0000000000000008 other_function: 8: 67 80 00 00 ret The reason seems to be that in RISCVAsmBackend::shouldForceRelocation we only consider the fragment but in RISCVMCExpr::evaluatePCRelLo we consider the section. This usually works but there are cases where the section may still be the same but the fragment may be another one. In that case we end forcing a %pcrel_lo relocation without any %pcrel_hi. This patch makes RISCVAsmBackend::shouldForceRelocation use the section, if any, to determine if the relocation must be forced or not. Differential Revision: https://reviews.llvm.org/D60657 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356330: Merge commit da7b129b1 from llvm git (by James Clarke): [RISCV] Don't force Local Exec TLS for non-PIC Summary: Forcing Local Exec TLS requires the use of copy relocations. Copy relocations need special handling in the runtime linker when being used against TLS symbols, which is present in glibc, but not in FreeBSD nor musl, and so cannot be relied upon. Moreover, copy relocations are a hack that embed the size of an object in the ABI when it otherwise wouldn't be, and break protected symbols (which are expected to be DSO local), whilst also wasting space, thus they should be avoided whenever possible. As discussed in D70398, RISC-V should move away from forcing Local Exec, and instead use Initial Exec like other targets, with possible linker relaxation to follow. The RISC-V GCC maintainers also intend to adopt this more-conventional behaviour (see https://github.com/riscv/riscv-elf-psabi-doc/issues/122). Reviewers: asb, MaskRay Reviewed By: MaskRay Subscribers: emaste, krytarowski, hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, llvm-commits, bsdjhb Tags: #llvm Differential Revision: https://reviews.llvm.org/D70649 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356331: Merge commit c6b09bff5 from llvm git (by Luís Marques): [RISCV] Fix wrong CFI directives Summary: Removes CFI CFA directives that could incorrectly propagate beyond the basic block they were inteded for. Specifically it removes the epilogue CFI directives. See the branch_and_tail_call test for an example of the issue. Should fix the stack unwinding issues caused by the incorrect directives. Reviewers: asb, lenary, shiva0217 Reviewed By: lenary Tags: #llvm Differential Revision: https://reviews.llvm.org/D69723 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356332: Merge commit d7be3eab5 from llvm git (by Luís Marques): [RISCV] Handle fcopysign(f32, f64) and fcopysign(f64, f32) Summary: Adds tablegen patterns to explicitly handle fcopysign where the magnitude and sign arguments have different types, due to the sign value casts being removed the by DAGCombiner. Support for RV32IF follows in a separate commit. Adds tests for all relevant scenarios except RV32IF. Reviewers: lenary Reviewed By: lenary Tags: #llvm Differential Revision: https://reviews.llvm.org/D70678 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356333: Merge commit 189b7393d from llvm git (by John Baldwin): [lld][RISCV] Use an e_flags of 0 if there are only binary input files. Summary: If none of the input files are ELF object files (for example, when generating an object file from a single binary input file via "-b binary"), use a fallback value for the ELF header flags instead of crashing with an assertion failure. Reviewers: MaskRay, ruiu, espindola Reviewed By: MaskRay, ruiu Subscribers: kevans, grimar, emaste, arichardson, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits, jrtc27 Tags: #llvm Differential Revision: https://reviews.llvm.org/D71101 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb Modified: stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp ============================================================================== --- stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -105,7 +105,10 @@ static uint32_t getEFlags(InputFile *f) { } uint32_t RISCV::calcEFlags() const { - assert(!objectFiles.empty()); + // If there are only binary input files (from -b binary), use a + // value of 0 for the ELF header flags. + if (objectFiles.empty()) + return 0; uint32_t target = getEFlags(objectFiles.front()); Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -64,10 +64,14 @@ bool RISCVAsmBackend::shouldForceRelocation(const MCAs case RISCV::fixup_riscv_tls_gd_hi20: ShouldForce = true; break; - case RISCV::fixup_riscv_pcrel_hi20: - ShouldForce = T->getValue()->findAssociatedFragment() != - Fixup.getValue()->findAssociatedFragment(); + case RISCV::fixup_riscv_pcrel_hi20: { + MCFragment *TFragment = T->getValue()->findAssociatedFragment(); + MCFragment *FixupFragment = Fixup.getValue()->findAssociatedFragment(); + assert(FixupFragment && "We should have a fragment for this fixup"); + ShouldForce = + !TFragment || TFragment->getParent() != FixupFragment->getParent(); break; + } } break; } Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -205,7 +205,6 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction MachineFrameInfo &MFI = MF.getFrameInfo(); auto *RVFI = MF.getInfo(); DebugLoc DL = MBBI->getDebugLoc(); - const RISCVInstrInfo *TII = STI.getInstrInfo(); unsigned FPReg = getFPReg(STI); unsigned SPReg = getSPReg(STI); @@ -226,47 +225,8 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction MachineInstr::FrameDestroy); } - if (hasFP(MF)) { - // To find the instruction restoring FP from stack. - for (auto &I = LastFrameDestroy; I != MBBI; ++I) { - if (I->mayLoad() && I->getOperand(0).isReg()) { - unsigned DestReg = I->getOperand(0).getReg(); - if (DestReg == FPReg) { - // If there is frame pointer, after restoring $fp registers, we - // need adjust CFA to ($sp - FPOffset). - // Emit ".cfi_def_cfa $sp, -FPOffset" - unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::createDefCfa( - nullptr, RI->getDwarfRegNum(SPReg, true), -FPOffset)); - BuildMI(MBB, std::next(I), DL, - TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex); - break; - } - } - } - } - - // Add CFI directives for callee-saved registers. - const std::vector &CSI = MFI.getCalleeSavedInfo(); - // Iterate over list of callee-saved registers and emit .cfi_restore - // directives. - for (const auto &Entry : CSI) { - unsigned Reg = Entry.getReg(); - unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::createRestore( - nullptr, RI->getDwarfRegNum(Reg, true))); - BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex); - } - // Deallocate stack adjustReg(MBB, MBBI, DL, SPReg, SPReg, StackSize, MachineInstr::FrameDestroy); - - // After restoring $sp, we need to adjust CFA to $(sp + 0) - // Emit ".cfi_def_cfa_offset 0" - unsigned CFIIndex = - MF.addFrameInst(MCCFIInstruction::createDefCfaOffset(nullptr, 0)); - BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex); } int RISCVFrameLowering::getFrameIndexReference(const MachineFunction &MF, Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -570,10 +570,7 @@ SDValue RISCVTargetLowering::lowerGlobalTLSAddress(SDV int64_t Offset = N->getOffset(); MVT XLenVT = Subtarget.getXLenVT(); - // Non-PIC TLS lowering should always use the LocalExec model. - TLSModel::Model Model = isPositionIndependent() - ? getTargetMachine().getTLSModel(N->getGlobal()) - : TLSModel::LocalExec; + TLSModel::Model Model = getTargetMachine().getTLSModel(N->getGlobal()); SDValue Addr; switch (Model) { Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td Tue Jan 7 20:13:31 2020 (r356469) @@ -231,6 +231,9 @@ def : Pat<(fabs FPR64:$rs1), (FSGNJX_D $rs1, $rs1)>; def : PatFpr64Fpr64; def : Pat<(fcopysign FPR64:$rs1, (fneg FPR64:$rs2)), (FSGNJN_D $rs1, $rs2)>; +def : Pat<(fcopysign FPR64:$rs1, FPR32:$rs2), (FSGNJ_D $rs1, (FCVT_D_S $rs2))>; +def : Pat<(fcopysign FPR32:$rs1, FPR64:$rs2), (FSGNJ_S $rs1, (FCVT_S_D $rs2, + 0b111))>; // fmadd: rs1 * rs2 + rs3 def : Pat<(fma FPR64:$rs1, FPR64:$rs2, FPR64:$rs3), From owner-svn-src-all@freebsd.org Tue Jan 7 20:24:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 24FA11F1E3C; Tue, 7 Jan 2020 20:24:22 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47skPL06Yyz4Zk8; Tue, 7 Jan 2020 20:24:22 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F3293498C; Tue, 7 Jan 2020 20:24:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007KOLdg015985; Tue, 7 Jan 2020 20:24:21 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007KOLna015984; Tue, 7 Jan 2020 20:24:21 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001072024.007KOLna015984@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 7 Jan 2020 20:24:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356470 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356470 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:24:22 -0000 Author: mjg Date: Tue Jan 7 20:24:21 2020 New Revision: 356470 URL: https://svnweb.freebsd.org/changeset/base/356470 Log: vfs: handle doomed vnodes in vdefer_inactive vgone dooms the vnode while keeping VI_OWEINACT set and then drops the interlock. vputx can pick up the interlock and pass it to vdefer_inactive since the flag is set. The race is harmless, just don't defer anything as vgone will take care of it. Reported by: pho Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Jan 7 20:13:31 2020 (r356469) +++ head/sys/kern/vfs_subr.c Tue Jan 7 20:24:21 2020 (r356470) @@ -3018,8 +3018,10 @@ vdefer_inactive(struct vnode *vp) ASSERT_VI_LOCKED(vp, __func__); VNASSERT(vp->v_iflag & VI_OWEINACT, vp, ("%s: vnode without VI_OWEINACT", __func__)); - VNASSERT(!VN_IS_DOOMED(vp), vp, - ("%s: doomed vnode", __func__)); + if (VN_IS_DOOMED(vp)) { + vdropl(vp); + return; + } if (vp->v_iflag & VI_DEFINACT) { VNASSERT(vp->v_holdcnt > 1, vp, ("lost hold count")); vdropl(vp); @@ -3036,8 +3038,7 @@ vdefer_inactive_cond(struct vnode *vp) VI_LOCK(vp); VNASSERT(vp->v_holdcnt > 0, vp, ("vnode without hold count")); - if (VN_IS_DOOMED(vp) || - (vp->v_iflag & VI_OWEINACT) == 0) { + if ((vp->v_iflag & VI_OWEINACT) == 0) { vdropl(vp); return; } From owner-svn-src-all@freebsd.org Tue Jan 7 20:35:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 94CA11F238E; Tue, 7 Jan 2020 20:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47skfX4CbSz4bW2; Tue, 7 Jan 2020 20:35:48 +0000 (UTC) (envelope-from jkim@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8A0584B7F; Tue, 7 Jan 2020 20:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007KZmme022257; Tue, 7 Jan 2020 20:35:48 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007KZhAm022234; Tue, 7 Jan 2020 20:35:43 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001072035.007KZhAm022234@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Tue, 7 Jan 2020 20:35:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356471 - in stable/12: sys/contrib/dev/acpica sys/contrib/dev/acpica/common sys/contrib/dev/acpica/compiler sys/contrib/dev/acpica/components/debugger sys/contrib/dev/acpica/components... X-SVN-Group: stable-12 X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in stable/12: sys/contrib/dev/acpica sys/contrib/dev/acpica/common sys/contrib/dev/acpica/compiler sys/contrib/dev/acpica/components/debugger sys/contrib/dev/acpica/components/disassembler sys/contrib... X-SVN-Commit-Revision: 356471 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:35:48 -0000 Author: jkim Date: Tue Jan 7 20:35:43 2020 New Revision: 356471 URL: https://svnweb.freebsd.org/changeset/base/356471 Log: MFC: r351081, r353764, r355739 Merge ACPICA 20190816, 20191018, and 20191213. Added: stable/12/sys/contrib/dev/acpica/compiler/dtcompilerparser.l - copied unchanged from r353764, head/sys/contrib/dev/acpica/compiler/dtcompilerparser.l stable/12/sys/contrib/dev/acpica/compiler/dtcompilerparser.y - copied unchanged from r353764, head/sys/contrib/dev/acpica/compiler/dtcompilerparser.y Modified: stable/12/sys/contrib/dev/acpica/acpica_prep.sh stable/12/sys/contrib/dev/acpica/changes.txt stable/12/sys/contrib/dev/acpica/common/acgetline.c stable/12/sys/contrib/dev/acpica/common/adisasm.c stable/12/sys/contrib/dev/acpica/common/adwalk.c stable/12/sys/contrib/dev/acpica/common/dmrestag.c stable/12/sys/contrib/dev/acpica/common/dmtables.c stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c stable/12/sys/contrib/dev/acpica/compiler/aslcache.c stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h stable/12/sys/contrib/dev/acpica/compiler/asldebug.c stable/12/sys/contrib/dev/acpica/compiler/asldefine.h stable/12/sys/contrib/dev/acpica/compiler/aslerror.c stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h stable/12/sys/contrib/dev/acpica/compiler/aslhelp.c stable/12/sys/contrib/dev/acpica/compiler/aslkeywords.y stable/12/sys/contrib/dev/acpica/compiler/asllength.c stable/12/sys/contrib/dev/acpica/compiler/asllistsup.c stable/12/sys/contrib/dev/acpica/compiler/aslload.c stable/12/sys/contrib/dev/acpica/compiler/aslmain.c stable/12/sys/contrib/dev/acpica/compiler/aslmessages.c stable/12/sys/contrib/dev/acpica/compiler/aslmessages.h stable/12/sys/contrib/dev/acpica/compiler/aslmethod.c stable/12/sys/contrib/dev/acpica/compiler/aslnamesp.c stable/12/sys/contrib/dev/acpica/compiler/asloptions.c stable/12/sys/contrib/dev/acpica/compiler/aslparseop.c stable/12/sys/contrib/dev/acpica/compiler/aslprepkg.c stable/12/sys/contrib/dev/acpica/compiler/aslresource.c stable/12/sys/contrib/dev/acpica/compiler/aslrestype2.c stable/12/sys/contrib/dev/acpica/compiler/aslrestype2s.c stable/12/sys/contrib/dev/acpica/compiler/aslstartup.c stable/12/sys/contrib/dev/acpica/compiler/asltransform.c stable/12/sys/contrib/dev/acpica/compiler/asltypes.h stable/12/sys/contrib/dev/acpica/compiler/aslutils.c stable/12/sys/contrib/dev/acpica/compiler/aslxref.c stable/12/sys/contrib/dev/acpica/compiler/aslxrefout.c stable/12/sys/contrib/dev/acpica/compiler/cvdisasm.c stable/12/sys/contrib/dev/acpica/compiler/cvparser.c stable/12/sys/contrib/dev/acpica/compiler/dtcompile.c stable/12/sys/contrib/dev/acpica/compiler/dtcompiler.h stable/12/sys/contrib/dev/acpica/compiler/dtfield.c stable/12/sys/contrib/dev/acpica/compiler/dtio.c stable/12/sys/contrib/dev/acpica/compiler/dtparser.l stable/12/sys/contrib/dev/acpica/compiler/dttable2.c stable/12/sys/contrib/dev/acpica/compiler/dttemplate.c stable/12/sys/contrib/dev/acpica/compiler/prmacros.c stable/12/sys/contrib/dev/acpica/compiler/prscan.c stable/12/sys/contrib/dev/acpica/components/debugger/dbconvert.c stable/12/sys/contrib/dev/acpica/components/debugger/dbdisply.c stable/12/sys/contrib/dev/acpica/components/debugger/dbfileio.c stable/12/sys/contrib/dev/acpica/components/debugger/dbhistry.c stable/12/sys/contrib/dev/acpica/components/debugger/dbinput.c stable/12/sys/contrib/dev/acpica/components/debugger/dbmethod.c stable/12/sys/contrib/dev/acpica/components/debugger/dbnames.c stable/12/sys/contrib/dev/acpica/components/debugger/dbobject.c stable/12/sys/contrib/dev/acpica/components/debugger/dbstats.c stable/12/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c stable/12/sys/contrib/dev/acpica/components/disassembler/dmresrc.c stable/12/sys/contrib/dev/acpica/components/disassembler/dmwalk.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dsfield.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dswload.c stable/12/sys/contrib/dev/acpica/components/events/evgpe.c stable/12/sys/contrib/dev/acpica/components/events/evgpeblk.c stable/12/sys/contrib/dev/acpica/components/events/evgpeinit.c stable/12/sys/contrib/dev/acpica/components/events/evmisc.c stable/12/sys/contrib/dev/acpica/components/events/evregion.c stable/12/sys/contrib/dev/acpica/components/events/evrgnini.c stable/12/sys/contrib/dev/acpica/components/events/evxfgpe.c stable/12/sys/contrib/dev/acpica/components/executer/exdump.c stable/12/sys/contrib/dev/acpica/components/executer/exfield.c stable/12/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c stable/12/sys/contrib/dev/acpica/components/namespace/nsaccess.c stable/12/sys/contrib/dev/acpica/components/namespace/nsalloc.c stable/12/sys/contrib/dev/acpica/components/namespace/nsconvert.c stable/12/sys/contrib/dev/acpica/components/namespace/nsdump.c stable/12/sys/contrib/dev/acpica/components/namespace/nsrepair2.c stable/12/sys/contrib/dev/acpica/components/namespace/nsxfname.c stable/12/sys/contrib/dev/acpica/components/parser/psobject.c stable/12/sys/contrib/dev/acpica/components/resources/rscreate.c stable/12/sys/contrib/dev/acpica/components/tables/tbdata.c stable/12/sys/contrib/dev/acpica/components/tables/tbxfload.c stable/12/sys/contrib/dev/acpica/components/utilities/utbuffer.c stable/12/sys/contrib/dev/acpica/components/utilities/utdebug.c stable/12/sys/contrib/dev/acpica/components/utilities/uterror.c stable/12/sys/contrib/dev/acpica/components/utilities/utosi.c stable/12/sys/contrib/dev/acpica/components/utilities/utownerid.c stable/12/sys/contrib/dev/acpica/components/utilities/uttrack.c stable/12/sys/contrib/dev/acpica/include/acconfig.h stable/12/sys/contrib/dev/acpica/include/acdebug.h stable/12/sys/contrib/dev/acpica/include/aclocal.h stable/12/sys/contrib/dev/acpica/include/acobject.h stable/12/sys/contrib/dev/acpica/include/acpiosxf.h stable/12/sys/contrib/dev/acpica/include/acpixf.h stable/12/sys/contrib/dev/acpica/include/acstruct.h stable/12/sys/contrib/dev/acpica/include/actypes.h stable/12/sys/contrib/dev/acpica/include/acutils.h stable/12/sys/contrib/dev/acpica/include/platform/acenv.h stable/12/sys/contrib/dev/acpica/include/platform/acfreebsd.h stable/12/usr.sbin/acpi/iasl/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/contrib/dev/acpica/acpica_prep.sh ============================================================================== --- stable/12/sys/contrib/dev/acpica/acpica_prep.sh Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/acpica_prep.sh Tue Jan 7 20:35:43 2020 (r356471) @@ -18,12 +18,13 @@ fulldirs="common compiler components include os_specif # files to remove stripdirs="generate libraries parsers preprocessor tests tools" -stripfiles="Makefile README accygwin.h acdragonfly.h acdragonflyex.h \ - acefi.h acefiex.h achaiku.h acintel.h aclinux.h aclinuxex.h \ - acmacosx.h acmsvc.h acmsvcex.h acnetbsd.h acos2.h acqnx.h \ - acwin.h acwin64.h acwinex.h new_table.txt osbsdtbl.c osefitbl.c \ - osefixf.c osfreebsdtbl.c oslinuxtbl.c osunixdir.c osunixmap.c \ - oswindir.c oswintbl.c oswinxf.c readme.txt utclib.c utprint.c" +stripfiles="Makefile README aslcompiler.y accygwin.h acdragonfly.h \ + acdragonflyex.h acefi.h acefiex.h achaiku.h acintel.h aclinux.h \ + aclinuxex.h acmacosx.h acmsvc.h acmsvcex.h acnetbsd.h acos2.h \ + acqnx.h acwin.h acwin64.h acwinex.h new_table.txt osbsdtbl.c \ + osefitbl.c osefixf.c osfreebsdtbl.c oslinuxtbl.c osunixdir.c \ + osunixmap.c oswindir.c oswintbl.c oswinxf.c readme.txt utclib.c \ + utprint.c" # include files to canonify src_headers="acapps.h acbuffer.h acclib.h accommon.h acconfig.h \ Modified: stable/12/sys/contrib/dev/acpica/changes.txt ============================================================================== --- stable/12/sys/contrib/dev/acpica/changes.txt Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/changes.txt Tue Jan 7 20:35:43 2020 (r356471) @@ -1,4 +1,138 @@ ---------------------------------------- +13 December 2019. Summary of changes for version 20191213: + + +1) ACPICA kernel-resident subsystem: + +Return a Buffer object for all fields created via the CreateField operator. Previously, an Integer would be returned if the size of the field was less than or equal to the current size of an Integer. Although this goes against the ACPI specification, it provides compatibility with other ACPI implementations. Also updated the ASLTS test suite to reflect this new behavior. + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: Implemented detection of (and throw an error for) duplicate values for Case statements within a single Switch statement. Duplicate Integers, Strings, and Buffers are supported. + +iASL: Fix error logging issue during multiple file compilation -- Switch to the correct input file during error node creation. + +iASL: For duplicate named object creation, now emit an error instead of a warning - since this will cause a runtime error. + +AcpiSrc: Add unix line-ending support for non-Windows builds. + +iASL: Add an error condition for an attempt to create a NameString with > 255 NameSegs (the max allowable via the AML definition). + + +---------------------------------------- +18 October 2019. Summary of changes for version 20191018: + + +1) ACPICA kernel-resident subsystem: + +Debugger: added a new command: ?Fields [address space ID]?. This command +dumps the contents of all field units that are defined within the +namespace with a particular address space ID. + +Modified the external interface AcpiLoadTable() to return a table index. +This table index can be used for unloading a table for debugging. + ACPI_STATUS + AcpiLoadTable ( + ACPI_TABLE_HEADER *Table, + UINT32 *TableIndex)) + +Implemented a new external interface: AcpiUnloadTable() This new function +takes a table index as an argument and unloads the table. Useful for +debugging only. + ACPI_STATUS + AcpiUnloadTable ( + UINT32 TableIndex)) + +Ported the AcpiNames utility to use the new table initialization +sequence. The utility was broken before this change. Also, it was +required to include most of the AML interpreter into the utility in order +to process table initialization (module-level code execution.) + +Update for results from running Clang V8.0.1. This fixes all "dead +assignment" warnings. There are still several "Dereference of NULL +pointer" warnings, but these have been found to be false positive +warnings. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: numerous table compiler changes to ensure that the usage of +yacc/bison syntax is POSIX-compliant. + +iASL/disassembler: several simple bug fixes in the data table +disassembler. + +Acpiexec: expanded the initialization file (the -fi option) to initialize +strings, buffers, packages, and field units. + + +---------------------------------------- +16 August 2019. Summary of changes for version 20190816: + +This release is available at https://acpica.org/downloads + + +1) ACPICA kernel-resident subsystem: + +Modified the OwnerId mechanism to allow for more Owner Ids. The previous +limit was 256 Ids, now it is 4096 Ids. This prevents OWNER_ID_LIMIT +exceptions on machines with a large number of initialization threads, +many CPU cores and nested initialization control methods. + +Introduced acpi_dispatch_gpe() as a wrapper around AcpiEvDetectGpe() for +checking if the given GPE (as represented by a GPE device handle and a +GPE number) is currently active and dispatching it (if that's the case) +outside of interrupt context. + +Table load: exit the interpreter before initializing objects within the +new table This prevents re-acquiring the interpreter lock when loading +tables + +Added the "Windows 2019" string to the _OSI support (version 1903). Jung- +uk Kim + +Macros: removed pointer math on a null pointer. Causes warnings on some +compilers and/or tools. Changed ACPI_TO_POINTER to use ACPI_CAST_PTR +instead of using arithmetic. + +Fully deployed the ACPI_PRINTF_LIKE macro. This macro was not being used +across all "printf-like" internal functions. Also, cleanup all calls to +such functions (both in 32-bit mode and 64-bit mode) now that they are +analyzed by the gcc compiler via ACPI_PRINTF_LIKE. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: implemented a new data table compiler flex/bison front-end. This +change is internal and is not intended to result in changes to the +compiled code. This new compiler front-end can be invoked using the -tp +option for now, until the old mechanism is removed. + +ASLTS: Implemented a new data table compiler test suite. This test suite +generates all table templates and compile/disassemble/re-compile/binary- +compare each file. + +iASL: return -1 if AML files were not generated due to compiler errors + +iASL: added a warning on use of the now-legacy ASL Processor () keyword. + +iASL: added an error on _UID object declaration that returns a String +within a Processor () declaration. A _UID for a processor must be an +Integer. + +iASL: added a null terminator to name strings that consist only of +multiple parent prefixes (^) + +iASL: added support to compile both ASL and data table files in a single +command. + +Updated the tool generation project files that were recently migrated to +MSVC 2017 to eliminate all new warnings. The new project files appear in +the directory \acpica\generate\msvc2017. This change effectively +deprecates the older project files in \acpica\generate\msvc9. + + +---------------------------------------- 03 July 2019. Summary of changes for version 20190703: Modified: stable/12/sys/contrib/dev/acpica/common/acgetline.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/acgetline.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/acgetline.c Tue Jan 7 20:35:43 2020 (r356471) @@ -532,7 +532,7 @@ AcpiOsGetLine ( * Ignore the various keys like insert/delete/home/end, etc. * But we must eat the final character of the ESC sequence. */ - InputChar = getchar (); + (void) getchar (); continue; default: Modified: stable/12/sys/contrib/dev/acpica/common/adisasm.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/adisasm.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/adisasm.c Tue Jan 7 20:35:43 2020 (r356471) @@ -746,7 +746,6 @@ AdDoExternalFileList ( { ExternalFileList = ExternalFileList->Next; GlobalStatus = AE_TYPE; - Status = AE_OK; continue; } Modified: stable/12/sys/contrib/dev/acpica/common/adwalk.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/adwalk.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/adwalk.c Tue Jan 7 20:35:43 2020 (r356471) @@ -480,6 +480,7 @@ AcpiDmDumpDescending ( { ACPI_OP_WALK_INFO *Info = Context; char *Path; + ACPI_STATUS Status; if (!Op) @@ -522,10 +523,18 @@ AcpiDmDumpDescending ( if (Op->Common.Value.String) { - AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String, + Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String, NULL, &Path); - AcpiOsPrintf ("%s %p", Path, Op->Common.Node); - ACPI_FREE (Path); + if (ACPI_SUCCESS (Status)) + { + AcpiOsPrintf ("%s %p", Path, Op->Common.Node); + ACPI_FREE (Path); + } + else + { + AcpiOsPrintf ("Could not externalize pathname for node [%4.4s]", + Op->Common.Node->Name.Ascii); + } } else { @@ -592,7 +601,9 @@ AcpiDmFindOrphanDescending ( return (AE_OK); } +#ifdef ACPI_UNDER_DEVELOPMENT OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode); +#endif switch (Op->Common.AmlOpcode) { @@ -830,9 +841,9 @@ AcpiDmLoadDescendingOp ( * 2) Not the root node * 3) Not a node created by Scope */ - - if (!PreDefined && Node != AcpiGbl_RootNode && - Op->Common.AmlOpcode != AML_SCOPE_OP) + if (!PreDefined && + (Node != AcpiGbl_RootNode) && + (Op->Common.AmlOpcode != AML_SCOPE_OP)) { Node->OwnerId = WalkState->OwnerId; } @@ -1091,7 +1102,7 @@ AcpiDmCommonDescendingOp ( /* Switch/Case conversion */ Status = AcpiDmProcessSwitch (Op); - return (AE_OK); + return (Status); } Modified: stable/12/sys/contrib/dev/acpica/common/dmrestag.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmrestag.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmrestag.c Tue Jan 7 20:35:43 2020 (r356471) @@ -833,8 +833,12 @@ AcpiGetTagPathname ( /* Internalize the namepath to AML format */ - AcpiNsInternalizeName (Pathname, &InternalPath); + Status = AcpiNsInternalizeName (Pathname, &InternalPath); ACPI_FREE (Pathname); + if (ACPI_FAILURE (Status)) + { + return (NULL); + } /* Update the Op with the symbol */ Modified: stable/12/sys/contrib/dev/acpica/common/dmtables.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtables.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtables.c Tue Jan 7 20:35:43 2020 (r356471) @@ -327,7 +327,7 @@ AdCreateTableHeader ( * makes it easier to rename the disassembled ASL file if needed. */ AcpiOsPrintf ( - "DefinitionBlock (\"\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n", + "DefinitionBlock (\"\", \"%4.4s\", %u, \"%.6s\", \"%.8s\", 0x%8.8X)\n", Table->Signature, Table->Revision, Table->OemId, Table->OemTableId, Table->OemRevision); } @@ -443,8 +443,8 @@ AdGetLocalTables ( /* Get the DSDT via table override */ ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT); - AcpiOsTableOverride (&TableHeader, &NewTable); - if (!NewTable) + Status = AcpiOsTableOverride (&TableHeader, &NewTable); + if (ACPI_FAILURE (Status) || !NewTable) { fprintf (stderr, "Could not obtain DSDT\n"); return (AE_NO_ACPI_TABLES); @@ -508,6 +508,8 @@ AdParseTable ( AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); ASL_CV_INIT_FILETREE(Table, AmlStart, AmlLength); + AcpiUtSetIntegerWidth (Table->Revision); + /* Create the root object */ AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp (AmlStart); @@ -543,7 +545,6 @@ AdParseTable ( } WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE; - WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE; Status = AcpiPsParseAml (WalkState); if (ACPI_FAILURE (Status)) @@ -601,7 +602,7 @@ AdParseTable ( fprintf (stderr, "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n"); - Status = AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); + (void) AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); fprintf (stderr, "\n"); /* Process Resource Templates */ Modified: stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c Tue Jan 7 20:35:43 2020 (r356471) @@ -474,7 +474,6 @@ AcpiDmDumpCsrt ( { return; } - SubSubOffset += InfoLength; } /* Point to next sub-subtable */ @@ -1401,7 +1400,6 @@ AcpiDmDumpHmat ( while (Offset < Table->Length) { AcpiOsPrintf ("\n"); - SubtableOffset = 0; /* Dump HMAT structure header */ @@ -1484,6 +1482,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 4, AcpiDmTableInfoHmat1a); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 4; } @@ -1500,6 +1503,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 4, AcpiDmTableInfoHmat1b); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 4; } @@ -1519,6 +1527,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 2, AcpiDmTableInfoHmat1c); + if (ACPI_FAILURE(Status)) + { + return; + } + SubtableOffset += 2; } } @@ -1542,6 +1555,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 2, AcpiDmTableInfoHmat2a); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 2; } break; Modified: stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c Tue Jan 7 20:35:43 2020 (r356471) @@ -187,6 +187,7 @@ AcpiDmDumpIort ( ACPI_DMTABLE_INFO *InfoTable; char *String; UINT32 i; + UINT32 MappingByteLength; /* Main table */ @@ -314,6 +315,11 @@ AcpiDmDumpIort ( Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 4, AcpiDmTableInfoIort0a); + if (ACPI_FAILURE (Status)) + { + return; + } + NodeOffset += 4; } } @@ -325,8 +331,10 @@ AcpiDmDumpIort ( if (IortNode->Length > NodeOffset) { + MappingByteLength = + IortNode->MappingCount * sizeof (ACPI_IORT_ID_MAPPING); Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - Table, IortNode->Length - NodeOffset, + Table, IortNode->Length - NodeOffset - MappingByteLength, AcpiDmTableInfoIort1a); if (ACPI_FAILURE (Status)) { @@ -410,7 +418,6 @@ NextSubtable: /* Point to next node subtable */ Offset += IortNode->Length; - IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, IortNode->Length); } } @@ -871,7 +878,7 @@ AcpiDmDumpMcfg ( if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length) { AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n", - sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length)); + (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length)); return; } @@ -1211,7 +1218,6 @@ AcpiDmDumpNfit ( /* Has a variable number of 32-bit values at the end */ InfoTable = AcpiDmTableInfoNfit2; - Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable); FieldOffset = sizeof (ACPI_NFIT_INTERLEAVE); break; @@ -1236,7 +1242,6 @@ AcpiDmDumpNfit ( /* Has a variable number of 64-bit addresses at the end */ InfoTable = AcpiDmTableInfoNfit6; - Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable); FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS) - sizeof (UINT64); break; @@ -1273,6 +1278,7 @@ AcpiDmDumpNfit ( { case ACPI_NFIT_TYPE_INTERLEAVE: + Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable); for (i = 0; i < Interleave->LineCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, @@ -1308,6 +1314,7 @@ AcpiDmDumpNfit ( case ACPI_NFIT_TYPE_FLUSH_ADDRESS: + Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable); for (i = 0; i < Hint->HintCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, @@ -1806,6 +1813,11 @@ AcpiDmDumpPptt ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, SubtableOffset), 4, AcpiDmTableInfoPptt0a); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 4; } break; @@ -2063,6 +2075,10 @@ AcpiDmDumpSdev ( Status = AcpiDmDumpTable (Table->Length, 0, ACPI_ADD_PTR (UINT8, Pcie, VendorDataOffset), VendorDataLength, AcpiDmTableInfoSdev1b); + if (ACPI_FAILURE (Status)) + { + return; + } } break; Modified: stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c Tue Jan 7 20:35:43 2020 (r356471) @@ -410,7 +410,7 @@ AcpiDmDumpStao ( Namepath = ACPI_ADD_PTR (char, Table, Offset); StringLength = strlen (Namepath) + 1; - AcpiDmLineHeader (Offset, StringLength, "Namestring"); + AcpiDmLineHeader (Offset, StringLength, "Namepath"); AcpiOsPrintf ("\"%s\"\n", Namepath); /* Point to next namepath */ @@ -526,7 +526,7 @@ AcpiDmDumpTpm2Rev3 ( { case ACPI_TPM23_ACPI_START_METHOD: - Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + (void) AcpiDmDumpTable (Table->Length, Offset, Subtable, Table->Length - Offset, AcpiDmTableInfoTpm23a); break; @@ -591,7 +591,7 @@ AcpiDmDumpTpm2 ( Offset += sizeof (ACPI_TPM2_TRAILER); AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Table->Length, Offset, ArmSubtable, + (void) AcpiDmDumpTable (Table->Length, Offset, ArmSubtable, Table->Length - Offset, AcpiDmTableInfoTpm211); break; Modified: stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c Tue Jan 7 20:35:43 2020 (r356471) @@ -569,7 +569,7 @@ ApCheckForGpeNameConflict ( /* Need a null-terminated string version of NameSeg */ - ACPI_MOVE_32_TO_32 (Name, &Op->Asl.NameSeg); + ACPI_MOVE_32_TO_32 (Name, Op->Asl.NameSeg); Name[ACPI_NAMESEG_SIZE] = 0; /* Modified: stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c Tue Jan 7 20:35:43 2020 (r356471) @@ -474,7 +474,6 @@ AnFormatBtype ( strcat (Buffer, "|"); } - First = FALSE; strcat (Buffer, "Resource"); } } Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcache.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcache.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcache.c Tue Jan 7 20:35:43 2020 (r356471) @@ -421,7 +421,7 @@ UtDeleteLocalCaches ( DbgPrint (ASL_DEBUG_OUTPUT, "%u ParseOps, Buffer size: %u ops (%u bytes), %u Buffers\n", AslGbl_ParseOpCount, ASL_PARSEOP_CACHE_SIZE, - (sizeof (ACPI_PARSE_OBJECT) * ASL_PARSEOP_CACHE_SIZE), BufferCount); + ((UINT32) sizeof (ACPI_PARSE_OBJECT) * ASL_PARSEOP_CACHE_SIZE), BufferCount); /* Reset cache globals */ @@ -445,7 +445,7 @@ UtDeleteLocalCaches ( DbgPrint (ASL_DEBUG_OUTPUT, "%u Fields, Buffer size: %u fields (%u bytes), %u Buffers\n", AslGbl_FieldCount, ASL_FIELD_CACHE_SIZE, - (sizeof (DT_FIELD) * ASL_FIELD_CACHE_SIZE), BufferCount); + ((UINT32) sizeof (DT_FIELD) * ASL_FIELD_CACHE_SIZE), BufferCount); /* Reset cache globals */ @@ -468,7 +468,7 @@ UtDeleteLocalCaches ( DbgPrint (ASL_DEBUG_OUTPUT, "%u Subtables, Buffer size: %u subtables (%u bytes), %u Buffers\n", AslGbl_SubtableCount, ASL_SUBTABLE_CACHE_SIZE, - (sizeof (DT_SUBTABLE) * ASL_SUBTABLE_CACHE_SIZE), BufferCount); + ((UINT32) sizeof (DT_SUBTABLE) * ASL_SUBTABLE_CACHE_SIZE), BufferCount); /* Reset cache globals */ Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c Tue Jan 7 20:35:43 2020 (r356471) @@ -618,8 +618,8 @@ CgWriteTableHeader ( Op->Asl.AmlSubtreeLength += strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3; - CvDbgPrint (" Length: %lu\n", - strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3); + CvDbgPrint (" Length: %u\n", + (UINT32) strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3); if (Op->Asl.CommentList) { Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c Tue Jan 7 20:35:43 2020 (r356471) @@ -220,6 +220,7 @@ CmDoCompile ( PrDoPreprocess (); AslGbl_CurrentLineNumber = 1; AslGbl_LogicalLineNumber = 1; + AslGbl_CurrentLineOffset = 0; if (AslGbl_PreprocessOnly) { @@ -282,25 +283,6 @@ CmDoCompile ( LsDumpParseTree (); - OpcGetIntegerWidth (AslGbl_ParseTreeRoot->Asl.Child); - UtEndEvent (Event); - - /* Pre-process parse tree for any operator transforms */ - - Event = UtBeginEvent ("Parse tree transforms"); - DbgPrint (ASL_DEBUG_OUTPUT, "\nParse tree transforms\n\n"); - TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE, - TrAmlTransformWalkBegin, TrAmlTransformWalkEnd, NULL); - UtEndEvent (Event); - - /* Generate AML opcodes corresponding to the parse tokens */ - - Event = UtBeginEvent ("Generate AML opcodes"); - DbgPrint (ASL_DEBUG_OUTPUT, "Generating AML opcodes\n\n"); - TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL, - OpcAmlOpcodeWalk, NULL); - UtEndEvent (Event); - UtEndEvent (FullCompile); return (AE_OK); @@ -331,6 +313,25 @@ CmDoAslMiddleAndBackEnd ( ACPI_STATUS Status; + OpcGetIntegerWidth (AslGbl_ParseTreeRoot->Asl.Child); + + /* Pre-process parse tree for any operator transforms */ + + Event = UtBeginEvent ("Parse tree transforms"); + DbgPrint (ASL_DEBUG_OUTPUT, "\nParse tree transforms\n\n"); + TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE, + TrAmlTransformWalkBegin, TrAmlTransformWalkEnd, NULL); + UtEndEvent (Event); + + /* Generate AML opcodes corresponding to the parse tokens */ + + Event = UtBeginEvent ("Generate AML opcodes"); + DbgPrint (ASL_DEBUG_OUTPUT, "Generating AML opcodes\n\n"); + TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, + NULL, OpcAmlOpcodeWalk, NULL); + UtEndEvent (Event); + + /* Interpret and generate all compile-time constants */ Event = UtBeginEvent ("Constant folding via AML interpreter"); @@ -853,10 +854,11 @@ CmDumpAllEvents ( * ******************************************************************************/ -void +int CmCleanupAndExit ( void) { + int Status = 0; BOOLEAN DeleteAmlFile = FALSE; ASL_GLOBAL_FILE_NODE *CurrentFileNode = AslGbl_FilesList; @@ -915,20 +917,38 @@ CmCleanupAndExit ( UtDisplaySummary (ASL_FILE_STDOUT); /* - * We will delete the AML file if there are errors and the - * force AML output option has not been used. + * Delete the AML file if there are errors and the force AML output option + * (-f) has not been used. + * + * Return -1 as a status of the compiler if no AML files are generated. If + * the AML file is generated in the presence of errors, return 0. In the + * latter case, the errors were ignored by the user so the compilation is + * considered successful. */ - if (AslGbl_ParserErrorDetected || AslGbl_PreprocessOnly || ((AslGbl_ExceptionCount[ASL_ERROR] > 0) && + if (AslGbl_ParserErrorDetected || AslGbl_PreprocessOnly || + ((AslGbl_ExceptionCount[ASL_ERROR] > 0) && (!AslGbl_IgnoreErrors) && AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle)) { DeleteAmlFile = TRUE; + Status = -1; } /* Close all open files */ while (CurrentFileNode) { + /* + * Set the program return status based on file errors. If there are any + * errors and during compilation, the command is not considered + * successful. + */ + if (Status != -1 && !AslGbl_IgnoreErrors && + CurrentFileNode->ParserErrorDetected) + { + Status = -1; + } + switch (FlSwitchFileSet (CurrentFileNode->Files[ASL_FILE_INPUT].Filename)) { case SWITCH_TO_SAME_FILE: @@ -952,6 +972,8 @@ CmCleanupAndExit ( { UtDeleteLocalCaches (); } + + return (Status); } Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h Tue Jan 7 20:35:43 2020 (r356471) @@ -266,7 +266,7 @@ void CmDoOutputFiles ( void); -void +int CmCleanupAndExit ( void); @@ -1052,6 +1052,7 @@ void FlCloseFile ( UINT32 FileId); +ACPI_PRINTF_LIKE (2) void FlPrintFile ( UINT32 FileId, @@ -1195,6 +1196,7 @@ OtXrefWalkPart1 ( /* * aslutils - common compiler utilities */ +ACPI_PRINTF_LIKE(2) void DbgPrint ( UINT32 Type, @@ -1288,6 +1290,10 @@ UtInternalizeName ( char *ExternalName, char **ConvertedName); +BOOLEAN +UtNameContainsAllPrefix ( + ACPI_PARSE_OBJECT *Op); + void UtAttachNamepathToOwner ( ACPI_PARSE_OBJECT *Op, @@ -1303,7 +1309,16 @@ UINT64 UtDoConstant ( char *String); +char * +AcpiUtStrdup ( + char *String); +char * +AcpiUtStrcat ( + char *String1, + char *String2); + + /* * asluuid - UUID support */ @@ -1604,6 +1619,7 @@ DtCreateTemplates ( /* * ASL/ASL+ converter debug */ +ACPI_PRINTF_LIKE (1) void CvDbgPrint ( char *Fmt, Modified: stable/12/sys/contrib/dev/acpica/compiler/asldebug.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/asldebug.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/asldebug.c Tue Jan 7 20:35:43 2020 (r356471) @@ -239,7 +239,7 @@ UtDumpIntegerOp ( case 8: /* Dword */ DbgPrint (ASL_TREE_OUTPUT, - "%*.*X", IntegerLength, IntegerLength, Op->Asl.Value.Integer); + "%*.*X", IntegerLength, IntegerLength, (UINT32) Op->Asl.Value.Integer); break; case 16: /* Qword and Integer */ Modified: stable/12/sys/contrib/dev/acpica/compiler/asldefine.h ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/asldefine.h Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/asldefine.h Tue Jan 7 20:35:43 2020 (r356471) @@ -222,11 +222,11 @@ /* Misc */ -#define ASL_EXTERNAL_METHOD 255 -#define ASL_ABORT TRUE -#define ASL_NO_ABORT FALSE -#define ASL_EOF ACPI_UINT32_MAX -#define ASL_IGNORE_LINE (ACPI_UINT32_MAX -1) +#define ASL_EXTERNAL_METHOD_UNKNOWN_PARAMS 255 +#define ASL_ABORT TRUE +#define ASL_NO_ABORT FALSE +#define ASL_EOF ACPI_UINT32_MAX +#define ASL_IGNORE_LINE (ACPI_UINT32_MAX -1) /* Listings */ @@ -290,7 +290,7 @@ #define ASL_PARSE_TREE_DEBUG2 \ " %08X %04X %04X %01X %04X %04X %05X %05X "\ - "%08X %08X %08X %08X %08X %08X %04X %02d %5d %5d %5d %5d" + "%8p %8p %8p %8p %08X %08X %04X %02d %5d %5d %5d %5d" /* * Macros for ASL/ASL+ converter Modified: stable/12/sys/contrib/dev/acpica/compiler/aslerror.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslerror.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslerror.c Tue Jan 7 20:35:43 2020 (r356471) @@ -335,7 +335,7 @@ AeAddToErrorLog ( * PARAMETERS: OutputFile - Output file * Enode - Error node to print * PrematureEOF - True = PrematureEOF has been reached - * Total - Total legth of line + * Total - Total length of line * * RETURN: None * @@ -445,7 +445,7 @@ AeDecodeErrorMessageId ( * PARAMETERS: OutputFile - Output file * Enode - Error node to print * PrematureEOF - True = PrematureEOF has been reached - * Total - amount of characters printed so far + * Total - Number of characters printed so far * * * RETURN: Status @@ -527,6 +527,7 @@ AePrintErrorSourceLine ( fprintf (OutputFile, "\n"); return AE_OK; } + /* * Seek to the offset in the combined source file, * read the source line, and write it to the output. @@ -550,8 +551,9 @@ AePrintErrorSourceLine ( AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename); return AE_IO_ERROR; } - /* Read/write the source line, up to the maximum line length */ + /* Read/write the source line, up to the maximum line length */ + while (RActual && SourceByte && (SourceByte != '\n')) { if (*Total < 256) @@ -732,7 +734,7 @@ AePrintException ( * * RETURN: None * - * DESCRIPTION: Print the contents of an error nodes. This function is tailored + * DESCRIPTION: Print the contents of an error node. This function is tailored * to print error nodes that are SubErrors within ASL_ERROR_MSG * ******************************************************************************/ @@ -795,8 +797,8 @@ AePrintErrorLog ( * LogicalLineNumber - Cumulative line number * LogicalByteOffset - Byte offset in source file * Column - Column in current line - * Filename - source filename - * ExtraMessage - additional error message + * Filename - Source filename + * ExtraMessage - Additional error message * SourceLine - Line of error source code * SubError - SubError of this InputEnode * @@ -863,10 +865,17 @@ static void AslInitEnode ( Enode->FilenameLength = 6; } - FileNode = FlGetCurrentFileNode (); + /* + * Attempt to get the file node of the filename listed in the parse + * node. If the name doesn't exist in the global file node, it is + * because the file is included by #include or ASL include. In this + * case, get the current file node. The source output of the current + * file will contain the contents of the file listed in the parse node. + */ + FileNode = FlGetFileNode (ASL_FILE_INPUT, Filename); if (!FileNode) { - return; + FileNode = FlGetCurrentFileNode (); } Enode->SourceFilename = @@ -884,8 +893,8 @@ static void AslInitEnode ( * LineNumber - Actual file line number * Column - Column in current line * SourceLine - Actual source code line - * Filename - source filename - * ExtraMessage - additional error message + * Filename - Source filename + * ExtraMessage - Additional error message * * RETURN: None * @@ -918,8 +927,8 @@ AslCommonError2 ( * LogicalLineNumber - Cumulative line number * LogicalByteOffset - Byte offset in source file * Column - Column in current line - * Filename - source filename - * ExtraMessage - additional error message + * Filename - Source filename + * ExtraMessage - Additional error message * * RETURN: None * @@ -961,8 +970,8 @@ AslCommonError ( * LogicalLineNumber - Cumulative line number * LogicalByteOffset - Byte offset in source file * Column - Column in current line - * Filename - source filename - * Message - additional error message + * Filename - Source filename + * Message - Additional error message * SourceLine - Actual line of source code * SubError - Sub-error associated with this error * @@ -1025,7 +1034,7 @@ AslLogNewError ( * PARAMETERS: Level - Seriousness (Warning/error, etc.) * MessageId - Index into global message buffer * - * RETURN: UINT8 - modified level + * RETURN: UINT8 - Modified level * * DESCRIPTION: Get the modified level of exception codes that are reported as * errors from the -ww option. @@ -1369,7 +1378,7 @@ AslIsExceptionDisabled ( * MainMsg - Message pertaining to the MainOp * SubMsgId - Index into global message buffer * SubOp - Additional parse node for better message - * SubMsg - Message pertainint to SubOp + * SubMsg - Message pertaining to SubOp * * * RETURN: None @@ -1421,7 +1430,7 @@ AslDualParseOpError ( * PARAMETERS: Level - Seriousness (Warning/error, etc.) * MessageId - Index into global message buffer * Op - Parse node where error happened - * ExtraMessage - additional error message + * ExtraMessage - Additional error message * * RETURN: None * @@ -1459,7 +1468,7 @@ AslError ( * * PARAMETERS: Op - Parse node where error happened * Status - The ACPICA Exception - * ExtraMessage - additional error message + * ExtraMessage - Additional error message * Abort - TRUE -> Abort compilation * * RETURN: None Modified: stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c Tue Jan 7 20:35:43 2020 (r356471) @@ -207,12 +207,6 @@ FlInitOneFile ( NewFileNode = ACPI_CAST_PTR (ASL_GLOBAL_FILE_NODE, UtLocalCacheCalloc (sizeof (ASL_GLOBAL_FILE_NODE))); - if (!NewFileNode) - { - AslError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION, NULL, NULL); - return (AE_NO_MEMORY); - } - NewFileNode->ParserErrorDetected = FALSE; NewFileNode->Next = AslGbl_FilesList; @@ -420,8 +414,22 @@ ASL_GLOBAL_FILE_NODE * FlGetCurrentFileNode ( void) { - return (FlGetFileNode ( - ASL_FILE_INPUT,AslGbl_Files[ASL_FILE_INPUT].Filename)); + ASL_GLOBAL_FILE_NODE *FileNode = + FlGetFileNode (ASL_FILE_INPUT,AslGbl_Files[ASL_FILE_INPUT].Filename); + + + if (!FileNode) + { + /* + * If the current file node does not exist after initializing the file + * node structures, something went wrong and this is an unrecoverable + * condition. + */ + FlFileError (ASL_FILE_INPUT, ASL_MSG_COMPILER_INTERNAL); + AslAbort (); + } + + return (FileNode); } Modified: stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h Tue Jan 7 20:35:43 2020 (r356471) @@ -244,7 +244,6 @@ extern const char *AslGbl_SpecialNam #endif - /* *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 7 21:13:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 72AB41F2D97; Tue, 7 Jan 2020 21:13:35 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47slV72SYqz4dqQ; Tue, 7 Jan 2020 21:13:35 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4FBE152E8; Tue, 7 Jan 2020 21:13:35 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007LDZYl045648; Tue, 7 Jan 2020 21:13:35 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007LDZUK045647; Tue, 7 Jan 2020 21:13:35 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001072113.007LDZUK045647@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 7 Jan 2020 21:13:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356472 - head/sys/arm/arm X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: head/sys/arm/arm X-SVN-Commit-Revision: 356472 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 21:13:35 -0000 Author: ian Date: Tue Jan 7 21:13:34 2020 New Revision: 356472 URL: https://svnweb.freebsd.org/changeset/base/356472 Log: Add #ifdef option-test wrappers around another call to an arm/unwind.c function which is only compiled-in with certain options. Why is it always the most trivial part of a big commit that takes 3 tries to get right? Modified: head/sys/arm/arm/elf_machdep.c Modified: head/sys/arm/arm/elf_machdep.c ============================================================================== --- head/sys/arm/arm/elf_machdep.c Tue Jan 7 20:35:43 2020 (r356471) +++ head/sys/arm/arm/elf_machdep.c Tue Jan 7 21:13:34 2020 (r356472) @@ -337,7 +337,9 @@ int elf_cpu_unload_file(linker_file_t lf) { +#if defined(DDB) || defined(KDTRACE_HOOKS) || defined(STACK) /* Inform the stack(9) code that this module is gone. */ unwind_module_unloaded(lf); +#endif return (0); } From owner-svn-src-all@freebsd.org Tue Jan 7 21:16:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 30B911F2F8A; Tue, 7 Jan 2020 21:16:32 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47slYX1DlTz4f4L; Tue, 7 Jan 2020 21:16:32 +0000 (UTC) (envelope-from melifaro@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2134C52E9; Tue, 7 Jan 2020 21:16:32 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007LGWqC045835; Tue, 7 Jan 2020 21:16:32 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007LGU6C045827; Tue, 7 Jan 2020 21:16:30 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202001072116.007LGU6C045827@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Tue, 7 Jan 2020 21:16:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356473 - in head: sys/net sys/netinet6 tests/sys/net/routing X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head: sys/net sys/netinet6 tests/sys/net/routing X-SVN-Commit-Revision: 356473 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 21:16:32 -0000 Author: melifaro Date: Tue Jan 7 21:16:30 2020 New Revision: 356473 URL: https://svnweb.freebsd.org/changeset/base/356473 Log: Fix rtsock route message generation for interface addresses. Reviewed by: olivier MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D22974 Modified: head/sys/net/route.c head/sys/net/route.h head/sys/net/rtsock.c head/sys/netinet6/in6.c head/sys/netinet6/nd6_rtr.c head/tests/sys/net/routing/rtsock_common.h head/tests/sys/net/routing/rtsock_print.h head/tests/sys/net/routing/test_rtsock_l3.c Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Tue Jan 7 21:13:34 2020 (r356472) +++ head/sys/net/route.c Tue Jan 7 21:16:30 2020 (r356473) @@ -2147,7 +2147,7 @@ rtinit1(struct ifaddr *ifa, int cmd, int flags, int fi #endif RT_ADDREF(rt); RT_UNLOCK(rt); - rt_newaddrmsg_fib(cmd, ifa, error, rt, fibnum); + rt_newaddrmsg_fib(cmd, ifa, rt, fibnum); RT_LOCK(rt); RT_REMREF(rt); if (cmd == RTM_DELETE) { @@ -2233,17 +2233,16 @@ rt_addrmsg(int cmd, struct ifaddr *ifa, int fibnum) } /* - * Announce route addition/removal. - * Users of this function MUST validate input data BEFORE calling. - * However we have to be able to handle invalid data: - * if some userland app sends us "invalid" route message (invalid mask, - * no dst, wrong address families, etc...) we need to pass it back - * to app (and any other rtsock consumers) with rtm_errno field set to - * non-zero value. + * Announce kernel-originated route addition/removal to rtsock based on @rt data. + * cmd: RTM_ cmd + * @rt: valid rtentry + * @ifp: target route interface + * @fibnum: fib id or RT_ALL_FIBS + * * Returns 0 on success. */ int -rt_routemsg(int cmd, struct ifnet *ifp, int error, struct rtentry *rt, +rt_routemsg(int cmd, struct rtentry *rt, struct ifnet *ifp, int rti_addrs, int fibnum) { @@ -2255,23 +2254,39 @@ rt_routemsg(int cmd, struct ifnet *ifp, int error, str KASSERT(rt_key(rt) != NULL, (":%s: rt_key must be supplied", __func__)); - return (rtsock_routemsg(cmd, ifp, error, rt, fibnum)); + return (rtsock_routemsg(cmd, rt, ifp, 0, fibnum)); } -void -rt_newaddrmsg(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt) +/* + * Announce kernel-originated route addition/removal to rtsock based on @rt data. + * cmd: RTM_ cmd + * @info: addrinfo structure with valid data. + * @fibnum: fib id or RT_ALL_FIBS + * + * Returns 0 on success. + */ +int +rt_routemsg_info(int cmd, struct rt_addrinfo *info, int fibnum) { - rt_newaddrmsg_fib(cmd, ifa, error, rt, RT_ALL_FIBS); + KASSERT(cmd == RTM_ADD || cmd == RTM_DELETE || cmd == RTM_CHANGE, + ("unexpected cmd %d", cmd)); + + KASSERT(fibnum == RT_ALL_FIBS || (fibnum >= 0 && fibnum < rt_numfibs), + ("%s: fib out of range 0 <=%d<%d", __func__, fibnum, rt_numfibs)); + + KASSERT(info->rti_info[RTAX_DST] != NULL, (":%s: RTAX_DST must be supplied", __func__)); + + return (rtsock_routemsg_info(cmd, info, fibnum)); } + /* * This is called to generate messages from the routing socket * indicating a network interface has had addresses associated with it. */ void -rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt, - int fibnum) +rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, struct rtentry *rt, int fibnum) { KASSERT(cmd == RTM_ADD || cmd == RTM_DELETE, @@ -2282,10 +2297,10 @@ rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int err if (cmd == RTM_ADD) { rt_addrmsg(cmd, ifa, fibnum); if (rt != NULL) - rt_routemsg(cmd, ifa->ifa_ifp, error, rt, fibnum); + rt_routemsg(cmd, rt, ifa->ifa_ifp, 0, fibnum); } else { if (rt != NULL) - rt_routemsg(cmd, ifa->ifa_ifp, error, rt, fibnum); + rt_routemsg(cmd, rt, ifa->ifa_ifp, 0, fibnum); rt_addrmsg(cmd, ifa, fibnum); } } Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Tue Jan 7 21:13:34 2020 (r356472) +++ head/sys/net/route.h Tue Jan 7 21:16:30 2020 (r356473) @@ -448,10 +448,10 @@ void rt_ifannouncemsg(struct ifnet *, int); void rt_ifmsg(struct ifnet *); void rt_missmsg(int, struct rt_addrinfo *, int, int); void rt_missmsg_fib(int, struct rt_addrinfo *, int, int, int); -void rt_newaddrmsg(int, struct ifaddr *, int, struct rtentry *); -void rt_newaddrmsg_fib(int, struct ifaddr *, int, struct rtentry *, int); +void rt_newaddrmsg_fib(int, struct ifaddr *, struct rtentry *, int); int rt_addrmsg(int, struct ifaddr *, int); -int rt_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); +int rt_routemsg(int, struct rtentry *, struct ifnet *ifp, int, int); +int rt_routemsg_info(int, struct rt_addrinfo *, int); void rt_newmaddrmsg(int, struct ifmultiaddr *); int rt_setgate(struct rtentry *, struct sockaddr *, struct sockaddr *); void rt_maskedcopy(struct sockaddr *, struct sockaddr *, struct sockaddr *); @@ -460,7 +460,8 @@ void rt_table_destroy(struct rib_head *); u_int rt_tables_get_gen(int table, int fam); int rtsock_addrmsg(int, struct ifaddr *, int); -int rtsock_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); +int rtsock_routemsg(int, struct rtentry *, struct ifnet *ifp, int, int); +int rtsock_routemsg_info(int, struct rt_addrinfo *, int); /* * Note the following locking behavior: Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Tue Jan 7 21:13:34 2020 (r356472) +++ head/sys/net/rtsock.c Tue Jan 7 21:16:30 2020 (r356473) @@ -1450,7 +1450,7 @@ rtsock_addrmsg(int cmd, struct ifaddr *ifa, int fibnum info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr; info.rti_info[RTAX_IFP] = ifp->if_addr->ifa_addr; info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask( - info.rti_info[RTAX_IFP], ifa->ifa_netmask, &ss); + info.rti_info[RTAX_IFA], ifa->ifa_netmask, &ss); info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr; if ((m = rtsock_msg_mbuf(ncmd, &info)) == NULL) return (ENOBUFS); @@ -1471,46 +1471,69 @@ rtsock_addrmsg(int cmd, struct ifaddr *ifa, int fibnum } /* - * Announce route addition/removal. - * Please do not call directly, use rt_routemsg(). - * Note that @rt data MAY be inconsistent/invalid: - * if some userland app sends us "invalid" route message (invalid mask, - * no dst, wrong address families, etc...) we need to pass it back - * to app (and any other rtsock consumers) with rtm_errno field set to - * non-zero value. + * Announce route addition/removal to rtsock based on @rt data. + * Callers are advives to use rt_routemsg() instead of using this + * function directly. + * Assume @rt data is consistent. * * Returns 0 on success. */ int -rtsock_routemsg(int cmd, struct ifnet *ifp, int error, struct rtentry *rt, +rtsock_routemsg(int cmd, struct rtentry *rt, struct ifnet *ifp, int rti_addrs, int fibnum) { - struct rt_addrinfo info; - struct sockaddr *sa; - struct mbuf *m; - struct rt_msghdr *rtm; struct sockaddr_storage ss; + struct rt_addrinfo info; if (V_route_cb.any_count == 0) return (0); bzero((caddr_t)&info, sizeof(info)); - info.rti_info[RTAX_DST] = sa = rt_key(rt); - info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(sa, rt_mask(rt), &ss); + info.rti_info[RTAX_DST] = rt_key(rt); + info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(rt_key(rt), rt_mask(rt), &ss); info.rti_info[RTAX_GATEWAY] = rt->rt_gateway; - if ((m = rtsock_msg_mbuf(cmd, &info)) == NULL) + info.rti_flags = rt->rt_flags; + info.rti_ifp = ifp; + + return (rtsock_routemsg_info(cmd, &info, fibnum)); +} + +int +rtsock_routemsg_info(int cmd, struct rt_addrinfo *info, int fibnum) +{ + struct rt_msghdr *rtm; + struct sockaddr *sa; + struct mbuf *m; + + if (V_route_cb.any_count == 0) + return (0); + + if (info->rti_flags & RTF_HOST) + info->rti_info[RTAX_NETMASK] = NULL; + + m = rtsock_msg_mbuf(cmd, info); + if (m == NULL) return (ENOBUFS); - rtm = mtod(m, struct rt_msghdr *); - rtm->rtm_index = ifp->if_index; - rtm->rtm_flags |= rt->rt_flags; - rtm->rtm_errno = error; - rtm->rtm_addrs = info.rti_addrs; if (fibnum != RT_ALL_FIBS) { + KASSERT(fibnum >= 0 && fibnum < rt_numfibs, ("%s: fibnum out " + "of range 0 <= %d < %d", __func__, fibnum, rt_numfibs)); M_SETFIB(m, fibnum); m->m_flags |= RTS_FILTER_FIB; } + rtm = mtod(m, struct rt_msghdr *); + rtm->rtm_addrs = info->rti_addrs; + if (info->rti_ifp != NULL) + rtm->rtm_index = info->rti_ifp->if_index; + /* Add RTF_DONE to indicate command 'completion' required by API */ + info->rti_flags |= RTF_DONE; + /* Reported routes has to be up */ + if (cmd == RTM_ADD || cmd == RTM_CHANGE) + info->rti_flags |= RTF_UP; + rtm->rtm_flags = info->rti_flags; + + sa = info->rti_info[RTAX_DST]; rt_dispatch(m, sa ? sa->sa_family : AF_UNSPEC); return (0); Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Tue Jan 7 21:13:34 2020 (r356472) +++ head/sys/netinet6/in6.c Tue Jan 7 21:16:30 2020 (r356473) @@ -168,30 +168,35 @@ static int in6_broadcast_ifa(struct ifnet *, struct in void in6_newaddrmsg(struct in6_ifaddr *ia, int cmd) { + struct rt_addrinfo info; + struct ifaddr *ifa; struct sockaddr_dl gateway; - struct sockaddr_in6 mask, addr; - struct rtentry rt; int fibnum; + ifa = &ia->ia_ifa; + /* - * initialize for rtmsg generation + * Prepare info data for the host route. + * This code mimics one from ifa_maintain_loopback_route(). */ - bzero(&gateway, sizeof(gateway)); - gateway.sdl_len = sizeof(gateway); - gateway.sdl_family = AF_LINK; + bzero(&info, sizeof(struct rt_addrinfo)); + info.rti_flags = ifa->ifa_flags | RTF_HOST | RTF_STATIC | RTF_PINNED; + info.rti_info[RTAX_DST] = ifa->ifa_addr; + info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&gateway; + link_init_sdl(ifa->ifa_ifp, (struct sockaddr *)&gateway, ifa->ifa_ifp->if_type); + if (cmd != RTM_DELETE) + info.rti_ifp = V_loif; - bzero(&rt, sizeof(rt)); - rt.rt_gateway = (struct sockaddr *)&gateway; - memcpy(&mask, &ia->ia_prefixmask, sizeof(ia->ia_prefixmask)); - memcpy(&addr, &ia->ia_addr, sizeof(ia->ia_addr)); - rt_mask(&rt) = (struct sockaddr *)&mask; - rt_key(&rt) = (struct sockaddr *)&addr; - rt.rt_flags = RTF_HOST | RTF_STATIC; - if (cmd == RTM_ADD) - rt.rt_flags |= RTF_UP; + fibnum = V_rt_add_addr_allfibs ? RT_ALL_FIBS : ia62ifa(ia)->ifa_ifp->if_fib; - /* Announce arrival of local address to this FIB. */ - rt_newaddrmsg_fib(cmd, &ia->ia_ifa, 0, &rt, fibnum); + + if (cmd == RTM_ADD) { + rt_addrmsg(cmd, &ia->ia_ifa, fibnum); + rt_routemsg_info(cmd, &info, fibnum); + } else if (cmd == RTM_DELETE) { + rt_routemsg_info(cmd, &info, fibnum); + rt_addrmsg(cmd, &ia->ia_ifa, fibnum); + } } int Modified: head/sys/netinet6/nd6_rtr.c ============================================================================== --- head/sys/netinet6/nd6_rtr.c Tue Jan 7 21:13:34 2020 (r356472) +++ head/sys/netinet6/nd6_rtr.c Tue Jan 7 21:16:30 2020 (r356473) @@ -609,30 +609,8 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) static void nd6_rtmsg(int cmd, struct rtentry *rt) { - struct rt_addrinfo info; - struct ifnet *ifp; - struct ifaddr *ifa; - bzero((caddr_t)&info, sizeof(info)); - info.rti_info[RTAX_DST] = rt_key(rt); - info.rti_info[RTAX_GATEWAY] = rt->rt_gateway; - info.rti_info[RTAX_NETMASK] = rt_mask(rt); - ifp = rt->rt_ifp; - if (ifp != NULL) { - struct epoch_tracker et; - - NET_EPOCH_ENTER(et); - ifa = CK_STAILQ_FIRST(&ifp->if_addrhead); - info.rti_info[RTAX_IFP] = ifa->ifa_addr; - ifa_ref(ifa); - NET_EPOCH_EXIT(et); - info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr; - } else - ifa = NULL; - - rt_missmsg_fib(cmd, &info, rt->rt_flags, 0, rt->rt_fibnum); - if (ifa != NULL) - ifa_free(ifa); + rt_routemsg(cmd, rt, rt->rt_ifp, 0, rt->rt_fibnum); } /* PFXRTR */ Modified: head/tests/sys/net/routing/rtsock_common.h ============================================================================== --- head/tests/sys/net/routing/rtsock_common.h Tue Jan 7 21:13:34 2020 (r356472) +++ head/tests/sys/net/routing/rtsock_common.h Tue Jan 7 21:16:30 2020 (r356473) @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -594,7 +595,18 @@ struct rt_msghdr * rtsock_read_rtm(int fd, char *buffer, size_t buflen) { ssize_t len; + struct pollfd pfd; + int poll_delay = 5 * 1000; /* 5 seconds */ + /* Check for the data available to read first */ + memset(&pfd, 0, sizeof(pfd)); + pfd.fd = fd; + pfd.events = POLLIN; + + if (poll(&pfd, 1, poll_delay) == 0) + ATF_REQUIRE_MSG(1 == 0, "rtsock read timed out (%d seconds passed)", + poll_delay / 1000); + len = read(fd, buffer, buflen); int my_errno = errno; ATF_REQUIRE_MSG(len > 0, "rtsock read failed: %s", strerror(my_errno)); @@ -706,35 +718,36 @@ rtsock_update_rtm_len(struct rt_msghdr *rtm) } static void -_validate_route_message(struct rt_msghdr *rtm) +_validate_message_sockaddrs(char *buffer, int rtm_len, size_t offset, int rtm_addrs) { struct sockaddr *sa; - size_t parsed_len = sizeof(struct rt_msghdr); - int len = rtm->rtm_msglen; + size_t parsed_len = offset; - sa = (struct sockaddr *)(rtm + 1); + /* Offset denotes initial header size */ + sa = (struct sockaddr *)(buffer + offset); for (int i = 0; i < RTAX_MAX; i++) { - if ((rtm->rtm_addrs & (1 << i)) == 0) + if ((rtm_addrs & (1 << i)) == 0) continue; parsed_len += SA_SIZE(sa); - RTSOCK_ATF_REQUIRE_MSG(rtm, parsed_len <= len, - "SA %d: len %d exceeds msg size %d", i, (int)sa->sa_len, len); + RTSOCK_ATF_REQUIRE_MSG((struct rt_msghdr *)buffer, parsed_len <= rtm_len, + "SA %d: len %d exceeds msg size %d", i, (int)sa->sa_len, rtm_len); if (sa->sa_family == AF_LINK) { struct sockaddr_dl *sdl = (struct sockaddr_dl *)sa; int data_len = sdl->sdl_nlen + sdl->sdl_alen; data_len += offsetof(struct sockaddr_dl, sdl_data); - RTSOCK_ATF_REQUIRE_MSG(rtm, data_len <= len, - "AF_LINK data size exceeds total len: %u vs %u", - data_len, len); + RTSOCK_ATF_REQUIRE_MSG((struct rt_msghdr *)buffer, + data_len <= rtm_len, + "AF_LINK data size exceeds total len: %u vs %u, nlen=%d alen=%d", + data_len, rtm_len, sdl->sdl_nlen, sdl->sdl_alen); } sa = (struct sockaddr *)((char *)sa + SA_SIZE(sa)); } - RTSOCK_ATF_REQUIRE_MSG(rtm, parsed_len == rtm->rtm_msglen, + RTSOCK_ATF_REQUIRE_MSG((struct rt_msghdr *)buffer, parsed_len == rtm_len, "message len != parsed len: expected %d parsed %d", - rtm->rtm_msglen, (int)parsed_len); + rtm_len, (int)parsed_len); } /* @@ -758,9 +771,36 @@ rtsock_validate_message(char *buffer, ssize_t len) case RTM_ADD: case RTM_DELETE: case RTM_CHANGE: - _validate_route_message(rtm); + _validate_message_sockaddrs(buffer, rtm->rtm_msglen, + sizeof(struct rt_msghdr), rtm->rtm_addrs); break; + case RTM_DELADDR: + case RTM_NEWADDR: + _validate_message_sockaddrs(buffer, rtm->rtm_msglen, + sizeof(struct ifa_msghdr), ((struct ifa_msghdr *)buffer)->ifam_addrs); + break; } +} + +void +rtsock_validate_pid_ours(struct rt_msghdr *rtm) +{ + RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_pid == getpid(), "expected pid %d, got %d", + getpid(), rtm->rtm_pid); +} + +void +rtsock_validate_pid_user(struct rt_msghdr *rtm) +{ + RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_pid > 0, "expected non-zero pid, got %d", + rtm->rtm_pid); +} + +void +rtsock_validate_pid_kernel(struct rt_msghdr *rtm) +{ + RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_pid == 0, "expected zero pid, got %d", + rtm->rtm_pid); } #endif Modified: head/tests/sys/net/routing/rtsock_print.h ============================================================================== --- head/tests/sys/net/routing/rtsock_print.h Tue Jan 7 21:13:34 2020 (r356472) +++ head/tests/sys/net/routing/rtsock_print.h Tue Jan 7 21:16:30 2020 (r356473) @@ -40,12 +40,20 @@ #define RTSOCK_ATF_REQUIRE_MSG(_rtm, _cond, _fmt, ...) do { \ if (!(_cond)) { \ printf("-- CONDITION FAILED, rtm dump --\n\n");\ - rtsock_print_rtm(_rtm); \ + rtsock_print_message(_rtm); \ } \ ATF_REQUIRE_MSG(_cond, _fmt, ##__VA_ARGS__); \ } while (0); +#define RTSOCKHD_ATF_REQUIRE_MSG(_rtm, _cond, _fmt, ...) do { \ + if (!(_cond)) { \ + printf("-- CONDITION FAILED, rtm hexdump--\n\n");\ + rtsock_print_message_hd(_rtm); \ + } \ + ATF_REQUIRE_MSG(_cond, _fmt, ##__VA_ARGS__); \ +} while (0); + /* from route.c */ static const char *const msgtypes[] = { "", @@ -145,7 +153,7 @@ sa_print_hd(char *buf, int buflen, const char *data, i unsigned char v; int repeat_count = 0; for (int i = 0; i < len; i++) { - if (last_char && *last_char == data[i]) { + if (last_char && *last_char == data[i] && data[i] == 0x00) { repeat_count++; continue; } @@ -157,9 +165,9 @@ sa_print_hd(char *buf, int buflen, const char *data, i v = ((const unsigned char *)data)[i]; if (last_char == NULL) - _PRINTX("%02X", v); + _PRINTX("x%02X", v); else - _PRINTX(", %02X", v); + _PRINTX(", x%02X", v); last_char = &data[i]; repeat_count = 1; @@ -259,6 +267,19 @@ rtsock_print_rtm(struct rt_msghdr *rtm) printf("%s: len %hu, pid: %d, seq %d, errno %d, flags: %s\n", msgtypes[rtm->rtm_type], rtm->rtm_msglen, rtm->rtm_pid, rtm->rtm_seq, rtm->rtm_errno, flags_buf); + if (rtm->rtm_inits > 0) { + _printb(flags_buf, sizeof(flags_buf), rtm->rtm_inits, metricnames); + printf("metrics: %s\n", flags_buf); + if (rtm->rtm_inits & RTV_MTU) + printf("mtu: %lu\n", rtm->rtm_rmx.rmx_mtu); + if (rtm->rtm_inits & RTV_EXPIRE) { + struct timeval tv; + gettimeofday(&tv, NULL); + printf("expire: %d (%lu raw)\n", + (int)(rtm->rtm_rmx.rmx_expire - tv.tv_sec), rtm->rtm_rmx.rmx_expire); + } + } + _printb(flags_buf, sizeof(flags_buf), rtm->rtm_addrs, addrnames); printf("sockaddrs: 0x%X %s\n", rtm->rtm_addrs, flags_buf); @@ -275,6 +296,81 @@ rtsock_print_rtm(struct rt_msghdr *rtm) printf("\n"); +} + +void +rtsock_print_ifa(struct ifa_msghdr *ifam) +{ + struct timeval tv; + struct tm tm_res; + char buf[64]; + + gettimeofday(&tv, NULL); + localtime_r(&tv.tv_sec, &tm_res); + strftime(buf, sizeof(buf), "%F %T", &tm_res); + printf("Got message of size %hu on %s\n", ifam->ifam_msglen, buf); + + char flags_buf[256]; + _printb(flags_buf, sizeof(flags_buf), ifam->ifam_flags, routeflags); + + printf("%s: len %hu, ifindex: %d, flags: %s\n", msgtypes[ifam->ifam_type], + ifam->ifam_msglen, ifam->ifam_index, flags_buf); + + _printb(flags_buf, sizeof(flags_buf), ifam->ifam_addrs, addrnames); + printf("sockaddrs: 0x%X %s\n", ifam->ifam_addrs, flags_buf); + + char *ptr = (char *)(ifam + 1); + for (int i = 0; i < RTAX_MAX; i++) { + if (ifam->ifam_addrs & (1 << i)) { + struct sockaddr *sa = (struct sockaddr *)ptr; + sa_print(sa, 1); + + /* add */ + ptr += ALIGN(((struct sockaddr *)ptr)->sa_len); + } + } + + printf("\n"); + +} + +void +rtsock_print_message_hd(struct rt_msghdr *rtm) +{ + struct timeval tv; + struct tm tm_res; + char buf[64]; + char dumpbuf[2048]; + + gettimeofday(&tv, NULL); + localtime_r(&tv.tv_sec, &tm_res); + strftime(buf, sizeof(buf), "%F %T", &tm_res); + printf("Got message type %s of size %hu on %s\n", + rtsock_print_cmdtype(rtm->rtm_type), + rtm->rtm_msglen, buf); + + sa_print_hd(dumpbuf, sizeof(dumpbuf), (char *)rtm, rtm->rtm_msglen); + printf(" %s\n", dumpbuf); +} + +void +rtsock_print_message(struct rt_msghdr *rtm) +{ + + switch (rtm->rtm_type) { + case RTM_GET: + case RTM_ADD: + case RTM_DELETE: + case RTM_CHANGE: + rtsock_print_rtm(rtm); + break; + case RTM_DELADDR: + case RTM_NEWADDR: + rtsock_print_ifa((struct ifa_msghdr *)rtm); + break; + default: + printf("unknown rt message type %X\n", rtm->rtm_type); + } } #endif Modified: head/tests/sys/net/routing/test_rtsock_l3.c ============================================================================== --- head/tests/sys/net/routing/test_rtsock_l3.c Tue Jan 7 21:13:34 2020 (r356472) +++ head/tests/sys/net/routing/test_rtsock_l3.c Tue Jan 7 21:16:30 2020 (r356473) @@ -29,9 +29,14 @@ #include "rtsock_common.h" #include "rtsock_config.h" +#include "sys/types.h" +#include +#include +#include "net/bpf.h" + static inline struct rtsock_test_config * -presetup_ipv6(const atf_tc_t *tc) +presetup_ipv6_iface(const atf_tc_t *tc) { struct rtsock_test_config *c; int ret; @@ -44,6 +49,17 @@ presetup_ipv6(const atf_tc_t *tc) ret = iface_enable_ipv6(c->ifname); ATF_REQUIRE_MSG(ret == 0, "Unable to enable IPv6 on %s", c->ifname); + return (c); +} + +static inline struct rtsock_test_config * +presetup_ipv6(const atf_tc_t *tc) +{ + struct rtsock_test_config *c; + int ret; + + c = presetup_ipv6_iface(tc); + ret = iface_setup_addr(c->ifname, c->addr6_str, c->plen6); c->rtsock_fd = rtsock_setup_socket(); @@ -52,16 +68,15 @@ presetup_ipv6(const atf_tc_t *tc) } static inline struct rtsock_test_config * -presetup_ipv4(const atf_tc_t *tc) +presetup_ipv4_iface(const atf_tc_t *tc) { struct rtsock_test_config *c; int ret; c = config_setup(tc); - /* assumes ifconfig doing IFF_UP */ - ret = iface_setup_addr(c->ifname, c->addr4_str, c->plen4); - ATF_REQUIRE_MSG(ret == 0, "ifconfig failed"); + ret = iface_turn_up(c->ifname); + ATF_REQUIRE_MSG(ret == 0, "Unable to turn up %s", c->ifname); /* Actually open interface, so kernel writes won't fail */ if (c->autocreated_interface) { @@ -69,6 +84,21 @@ presetup_ipv4(const atf_tc_t *tc) ATF_REQUIRE_MSG(ret >= 0, "unable to open interface %s", c->ifname); } + return (c); +} + +static inline struct rtsock_test_config * +presetup_ipv4(const atf_tc_t *tc) +{ + struct rtsock_test_config *c; + int ret; + + c = presetup_ipv4_iface(tc); + + /* assumes ifconfig doing IFF_UP */ + ret = iface_setup_addr(c->ifname, c->addr4_str, c->plen4); + ATF_REQUIRE_MSG(ret == 0, "ifconfig failed"); + c->rtsock_fd = rtsock_setup_socket(); return (c); @@ -158,8 +188,6 @@ verify_route_message(struct rt_msghdr *rtm, int cmd, s ret = sa_equal_msg(sa, gw, msg, sizeof(msg)); RTSOCK_ATF_REQUIRE_MSG(rtm, ret != 0, "GATEWAY sa diff: %s", msg); } - - RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_pid > 0, "expected non-zero pid"); } static void @@ -169,9 +197,22 @@ verify_route_message_extra(struct rt_msghdr *rtm, int "expected ifindex %d, got %d", ifindex, rtm->rtm_index); RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_flags == rtm_flags, - "expected flags: %X, got %X", rtm_flags, rtm->rtm_flags); + "expected flags: 0x%X, got 0x%X", rtm_flags, rtm->rtm_flags); } +static void +verify_link_gateway(struct rt_msghdr *rtm, int ifindex) +{ + struct sockaddr *sa; + struct sockaddr_dl *sdl; + + sa = rtsock_find_rtm_sa(rtm, RTA_GATEWAY); + RTSOCK_ATF_REQUIRE_MSG(rtm, sa != NULL, "GATEWAY is not set"); + RTSOCK_ATF_REQUIRE_MSG(rtm, sa->sa_family == AF_LINK, "GW sa family is %d", sa->sa_family); + sdl = (struct sockaddr_dl *)sa; + RTSOCK_ATF_REQUIRE_MSG(rtm, sdl->sdl_index == ifindex, "GW ifindex is %d", sdl->sdl_index); +} + /* TESTS */ #define DECLARE_TEST_VARS \ @@ -185,6 +226,16 @@ verify_route_message_extra(struct rt_msghdr *rtm, int #define DESCRIBE_ROOT_TEST(_msg) config_describe_root_test(tc, _msg) #define CLEANUP_AFTER_TEST config_generic_cleanup(config_setup(tc)) +#define RTM_DECLARE_ROOT_TEST(_name, _descr) \ +ATF_TC_WITH_CLEANUP(_name); \ +ATF_TC_HEAD(_name, tc) \ +{ \ + DESCRIBE_ROOT_TEST(_descr); \ +} \ +ATF_TC_CLEANUP(_name, tc) \ +{ \ + CLEANUP_AFTER_TEST; \ +} ATF_TC_WITH_CLEANUP(rtm_get_v4_exact_success); ATF_TC_HEAD(rtm_get_v4_exact_success, tc) @@ -219,6 +270,7 @@ ATF_TC_BODY(rtm_get_v4_exact_success, tc) verify_route_message_extra(rtm, c->ifindex, RTF_UP | RTF_DONE | RTF_PINNED); /* Explicitly verify gateway for the interface route */ + verify_link_gateway(rtm, c->ifindex); sa = rtsock_find_rtm_sa(rtm, RTA_GATEWAY); RTSOCK_ATF_REQUIRE_MSG(rtm, sa != NULL, "GATEWAY is not set"); RTSOCK_ATF_REQUIRE_MSG(rtm, sa->sa_family == AF_LINK, "GW sa family is %d", sa->sa_family); @@ -247,7 +299,7 @@ ATF_TC_BODY(rtm_get_v4_lpm_success, tc) rtsock_send_rtm(c->rtsock_fd, rtm); - rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); + rtm = rtsock_read_rtm_reply(c->rtsock_fd, buffer, sizeof(buffer), rtm->rtm_seq); /* * RTM_GET: Report Metrics: len 312, pid: 67074, seq 1, errno 0, flags: @@ -503,8 +555,432 @@ ATF_TC_CLEANUP(rtm_del_v6_gu_prefix_nogw_success, tc) CLEANUP_AFTER_TEST; } +ATF_TC_WITH_CLEANUP(rtm_add_v4_temporal1_success); +ATF_TC_HEAD(rtm_add_v4_temporal1_success, tc) +{ + DESCRIBE_ROOT_TEST("Tests IPv4 route expiration with expire time set"); +} +ATF_TC_BODY(rtm_add_v4_temporal1_success, tc) +{ + DECLARE_TEST_VARS; + c = presetup_ipv4(tc); + + /* Create IPv4 subnetwork with smaller prefix */ + struct sockaddr_in mask4; + struct sockaddr_in net4; + struct sockaddr_in gw4; + prepare_v4_network(c, &net4, &mask4, &gw4); + + prepare_route_message(rtm, RTM_ADD, (struct sockaddr *)&net4, + (struct sockaddr *)&mask4, (struct sockaddr *)&gw4); + + /* Set expire time to now */ + struct timeval tv; + gettimeofday(&tv, NULL); + rtm->rtm_rmx.rmx_expire = tv.tv_sec - 1; + rtm->rtm_inits |= RTV_EXPIRE; + + rtsock_send_rtm(c->rtsock_fd, rtm); + rtm = rtsock_read_rtm_reply(c->rtsock_fd, buffer, sizeof(buffer), rtm->rtm_seq); + ATF_REQUIRE_MSG(rtm != NULL, "unable to get rtsock reply for RTM_ADD"); + RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_inits & RTV_EXPIRE, "RTV_EXPIRE not set"); + + /* The next should be route deletion */ + rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); + + verify_route_message(rtm, RTM_DELETE, (struct sockaddr *)&net4, + (struct sockaddr *)&mask4, (struct sockaddr *)&gw4); + + /* TODO: add RTF_DONE */ + verify_route_message_extra(rtm, c->ifindex, RTF_GATEWAY | RTF_STATIC); +} + +ATF_TC_CLEANUP(rtm_add_v4_temporal1_success, tc) +{ + CLEANUP_AFTER_TEST; +} + +ATF_TC_WITH_CLEANUP(rtm_add_v6_temporal1_success); +ATF_TC_HEAD(rtm_add_v6_temporal1_success, tc) +{ + DESCRIBE_ROOT_TEST("Tests IPv6 global unicast prefix addition with directly-reachable GU GW"); +} + +ATF_TC_BODY(rtm_add_v6_temporal1_success, tc) +{ + DECLARE_TEST_VARS; + + c = presetup_ipv6(tc); + + /* Create IPv6 subnetwork with smaller prefix */ + struct sockaddr_in6 mask6; + struct sockaddr_in6 net6; + struct sockaddr_in6 gw6; + prepare_v6_network(c, &net6, &mask6, &gw6); + + prepare_route_message(rtm, RTM_ADD, (struct sockaddr *)&net6, + (struct sockaddr *)&mask6, (struct sockaddr *)&gw6); + + /* Set expire time to now */ + struct timeval tv; + gettimeofday(&tv, NULL); + rtm->rtm_rmx.rmx_expire = tv.tv_sec - 1; + rtm->rtm_inits |= RTV_EXPIRE; + + rtsock_send_rtm(c->rtsock_fd, rtm); + rtm = rtsock_read_rtm_reply(c->rtsock_fd, buffer, sizeof(buffer), rtm->rtm_seq); + ATF_REQUIRE_MSG(rtm != NULL, "unable to get rtsock reply for RTM_ADD"); + RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_inits & RTV_EXPIRE, "RTV_EXPIRE not set"); + + /* The next should be route deletion */ + rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); + + verify_route_message(rtm, RTM_DELETE, (struct sockaddr *)&net6, + (struct sockaddr *)&mask6, (struct sockaddr *)&gw6); + + + /* XXX: Currently kernel sets RTF_UP automatically but does NOT report it in the reply */ + /* TODO: add RTF_DONE */ + verify_route_message_extra(rtm, c->ifindex, RTF_GATEWAY | RTF_STATIC); +} + +ATF_TC_CLEANUP(rtm_add_v6_temporal1_success, tc) +{ + CLEANUP_AFTER_TEST; +} + +/* Interface address messages tests */ + +RTM_DECLARE_ROOT_TEST(rtm_add_v6_gu_ifa_hostroute_success, + "Tests validness for /128 host route announce after ifaddr assignment"); + +ATF_TC_BODY(rtm_add_v6_gu_ifa_hostroute_success, tc) +{ + DECLARE_TEST_VARS; + + c = presetup_ipv6_iface(tc); + + c->rtsock_fd = rtsock_setup_socket(); + + ret = iface_setup_addr(c->ifname, c->addr6_str, c->plen6); + + /* + * There will be multiple. + * RTM_ADD without llinfo. + */ + + while (true) { + rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); + if ((rtm->rtm_type == RTM_ADD) && ((rtm->rtm_flags & RTF_LLINFO) == 0)) + break; + } + /* This should be a message for the host route */ + + verify_route_message(rtm, RTM_ADD, (struct sockaddr *)&c->addr6, NULL, NULL); + rtsock_validate_pid_kernel(rtm); + /* No netmask should be set */ + RTSOCK_ATF_REQUIRE_MSG(rtm, rtsock_find_rtm_sa(rtm, RTA_NETMASK) == NULL, "netmask is set"); + + /* gateway should be link sdl with ifindex of an address interface */ + verify_link_gateway(rtm, c->ifindex); + + int expected_rt_flags = RTF_UP | RTF_HOST | RTF_DONE | RTF_STATIC | RTF_PINNED; + verify_route_message_extra(rtm, if_nametoindex("lo0"), expected_rt_flags); +} + +RTM_DECLARE_ROOT_TEST(rtm_add_v6_gu_ifa_prefixroute_success, + "Tests validness for the prefix route announce after ifaddr assignment"); + +ATF_TC_BODY(rtm_add_v6_gu_ifa_prefixroute_success, tc) +{ + DECLARE_TEST_VARS; + + c = presetup_ipv6_iface(tc); + + c->rtsock_fd = rtsock_setup_socket(); + + ret = iface_setup_addr(c->ifname, c->addr6_str, c->plen6); + + /* + * Multiple RTM_ADD messages will be generated: + * 1) lladdr mapping (RTF_LLDATA) + * 2) host route (one w/o netmask) + * 3) prefix route + */ + + while (true) { + rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); + /* Find RTM_ADD with netmask - this should skip both host route and LLADDR */ + if ((rtm->rtm_type == RTM_ADD) && (rtsock_find_rtm_sa(rtm, RTA_NETMASK))) + break; + } + + /* This should be a message for the prefix route */ + verify_route_message(rtm, RTM_ADD, (struct sockaddr *)&c->net6, + (struct sockaddr *)&c->mask6, NULL); + + /* gateway should be link sdl with ifindex of an address interface */ + verify_link_gateway(rtm, c->ifindex); + + /* TODO: PINNED? */ + int expected_rt_flags = RTF_UP | RTF_DONE; + verify_route_message_extra(rtm, c->ifindex, expected_rt_flags); +} + +RTM_DECLARE_ROOT_TEST(rtm_add_v6_gu_ifa_ordered_success, + "Tests ordering of the messages for IPv6 global unicast ifaddr assignment"); + +ATF_TC_BODY(rtm_add_v6_gu_ifa_ordered_success, tc) +{ + DECLARE_TEST_VARS; + + c = presetup_ipv6_iface(tc); + + c->rtsock_fd = rtsock_setup_socket(); + + ret = iface_setup_addr(c->ifname, c->addr6_str, c->plen6); + + int count = 0, tries = 0; + + enum msgtype { + MSG_IFADDR, + MSG_HOSTROUTE, + MSG_PREFIXROUTE, + MSG_MAX, + }; + + int msg_array[MSG_MAX]; + + bzero(msg_array, sizeof(msg_array)); + + while (count < 3 && tries < 20) { + rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); + tries++; + /* Classify */ + if (rtm->rtm_type == RTM_NEWADDR) { + RLOG("MSG_IFADDR: %d", count); + msg_array[MSG_IFADDR] = count++; + continue; + } + + /* Find RTM_ADD with netmask - this should skip both host route and LLADDR */ + if ((rtm->rtm_type == RTM_ADD) && (rtsock_find_rtm_sa(rtm, RTA_NETMASK))) { + RLOG("MSG_PREFIXROUTE: %d", count); + msg_array[MSG_PREFIXROUTE] = count++; + continue; + } + + if ((rtm->rtm_type == RTM_ADD) && ((rtm->rtm_flags & RTF_LLDATA) == 0)) { + RLOG("MSG_HOSTROUTE: %d", count); + msg_array[MSG_HOSTROUTE] = count++; + continue; + } + + RLOG("skipping msg type %s, try: %d", rtsock_print_cmdtype(rtm->rtm_type), + tries); + } + + /* TODO: verify multicast */ + ATF_REQUIRE_MSG(count == 3, "Received only %d/3 messages", count); + ATF_REQUIRE_MSG(msg_array[MSG_IFADDR] == 0, "ifaddr message is not the first"); +} + +RTM_DECLARE_ROOT_TEST(rtm_del_v6_gu_ifa_hostroute_success, + "Tests validness for /128 host route removal after ifaddr removal"); + +ATF_TC_BODY(rtm_del_v6_gu_ifa_hostroute_success, tc) +{ + DECLARE_TEST_VARS; + + c = presetup_ipv6_iface(tc); + + ret = iface_setup_addr(c->ifname, c->addr6_str, c->plen6); + + c->rtsock_fd = rtsock_setup_socket(); + + ret = iface_delete_addr(c->ifname, c->addr6_str); + + while (true) { + rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); + if ((rtm->rtm_type == RTM_DELETE) && + ((rtm->rtm_flags & RTF_LLINFO) == 0) && + rtsock_find_rtm_sa(rtm, RTA_NETMASK) == NULL) + break; + } + /* This should be a message for the host route */ + + verify_route_message(rtm, RTM_DELETE, (struct sockaddr *)&c->addr6, NULL, NULL); + rtsock_validate_pid_kernel(rtm); + /* No netmask should be set */ + RTSOCK_ATF_REQUIRE_MSG(rtm, rtsock_find_rtm_sa(rtm, RTA_NETMASK) == NULL, "netmask is set"); + + /* gateway should be link sdl with ifindex of an address interface */ + verify_link_gateway(rtm, c->ifindex); + + /* XXX: consider passing ifindex in rtm_index as done in RTM_ADD. */ + int expected_rt_flags = RTF_HOST | RTF_DONE | RTF_STATIC | RTF_PINNED; + RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_flags == expected_rt_flags, + "expected rtm flags: 0x%X, got 0x%X", expected_rt_flags, rtm->rtm_flags); +} + +RTM_DECLARE_ROOT_TEST(rtm_del_v6_gu_ifa_prefixroute_success, + "Tests validness for the prefix route removal after ifaddr assignment"); + +ATF_TC_BODY(rtm_del_v6_gu_ifa_prefixroute_success, tc) +{ + DECLARE_TEST_VARS; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jan 7 21:17:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E98541F309C; Tue, 7 Jan 2020 21:17:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47slZJ5dvvz4fHZ; Tue, 7 Jan 2020 21:17:12 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BCCA35318; Tue, 7 Jan 2020 21:17:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007LHCwl045920; Tue, 7 Jan 2020 21:17:12 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007LHB3i045915; Tue, 7 Jan 2020 21:17:11 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001072117.007LHB3i045915@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Jan 2020 21:17:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356474 - in head: share/man/man4 sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/nvme X-SVN-Commit-Revision: 356474 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 21:17:13 -0000 Author: mav Date: Tue Jan 7 21:17:11 2020 New Revision: 356474 URL: https://svnweb.freebsd.org/changeset/base/356474 Log: Add Host Memory Buffer support to nvme(4). This allows cheapest DRAM-less NVMe SSDs to use some of host RAM (about 1MB per 1GB on the devices I have) for its metadata cache, significantly improving random I/O performance. Device reports minimal and preferable size of the buffer. The code limits it to 1% of physical RAM by default. If the buffer can not be allocated or below minimal size, the device will just have to work without it. MFC after: 2 weeks Relnotes: yes Sponsored by: iXsystems, Inc. Modified: head/share/man/man4/nvme.4 head/sys/dev/nvme/nvme.h head/sys/dev/nvme/nvme_ctrlr.c head/sys/dev/nvme/nvme_ctrlr_cmd.c head/sys/dev/nvme/nvme_private.h Modified: head/share/man/man4/nvme.4 ============================================================================== --- head/share/man/man4/nvme.4 Tue Jan 7 21:16:30 2020 (r356473) +++ head/share/man/man4/nvme.4 Tue Jan 7 21:17:11 2020 (r356474) @@ -33,7 +33,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 21, 2019 +.Dd January 6, 2020 .Dt NVME 4 .Os .Sh NAME @@ -119,6 +119,14 @@ hw.nvme.force_intx=1 .Ed .Pp Note that use of INTx implies disabling of per-CPU I/O queue pairs. +.Pp +To control maximum amount of system RAM in bytes to use as Host Memory +Buffer for capable devices, set the following tunable: +.Bd -literal -offset indent +hw.nvme.hmb_max +.Ed +.Pp +The default value is 1% of physical memory size per device. .Pp The .Xr nvd 4 Modified: head/sys/dev/nvme/nvme.h ============================================================================== --- head/sys/dev/nvme/nvme.h Tue Jan 7 21:16:30 2020 (r356473) +++ head/sys/dev/nvme/nvme.h Tue Jan 7 21:17:11 2020 (r356474) @@ -1531,6 +1531,12 @@ struct nvme_get_nsid { uint32_t nsid; }; +struct nvme_hmb_desc { + uint64_t addr; + uint32_t size; + uint32_t reserved; +}; + #define nvme_completion_is_error(cpl) \ (NVME_STATUS_GET_SC((cpl)->status) != 0 || NVME_STATUS_GET_SCT((cpl)->status) != 0) @@ -1566,6 +1572,8 @@ int nvme_ctrlr_passthrough_cmd(struct nvme_controller /* Admin functions */ void nvme_ctrlr_cmd_set_feature(struct nvme_controller *ctrlr, uint8_t feature, uint32_t cdw11, + uint32_t cdw12, uint32_t cdw13, + uint32_t cdw14, uint32_t cdw15, void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn, void *cb_arg); void nvme_ctrlr_cmd_get_feature(struct nvme_controller *ctrlr, Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 21:16:30 2020 (r356473) +++ head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 21:17:11 2020 (r356474) @@ -841,6 +841,169 @@ nvme_ctrlr_configure_int_coalescing(struct nvme_contro } static void +nvme_ctrlr_hmb_free(struct nvme_controller *ctrlr) +{ + struct nvme_hmb_chunk *hmbc; + int i; + + if (ctrlr->hmb_desc_paddr) { + bus_dmamap_unload(ctrlr->hmb_desc_tag, ctrlr->hmb_desc_map); + bus_dmamem_free(ctrlr->hmb_desc_tag, ctrlr->hmb_desc_vaddr, + ctrlr->hmb_desc_map); + ctrlr->hmb_desc_paddr = 0; + } + if (ctrlr->hmb_desc_tag) { + bus_dma_tag_destroy(ctrlr->hmb_desc_tag); + ctrlr->hmb_tag = NULL; + } + for (i = 0; i < ctrlr->hmb_nchunks; i++) { + hmbc = &ctrlr->hmb_chunks[i]; + bus_dmamap_unload(ctrlr->hmb_tag, hmbc->hmbc_map); + bus_dmamem_free(ctrlr->hmb_tag, hmbc->hmbc_vaddr, + hmbc->hmbc_map); + } + ctrlr->hmb_nchunks = 0; + if (ctrlr->hmb_tag) { + bus_dma_tag_destroy(ctrlr->hmb_tag); + ctrlr->hmb_tag = NULL; + } + if (ctrlr->hmb_chunks) { + free(ctrlr->hmb_chunks, M_NVME); + ctrlr->hmb_chunks = NULL; + } +} + +static void +nvme_ctrlr_hmb_alloc(struct nvme_controller *ctrlr) +{ + struct nvme_hmb_chunk *hmbc; + size_t pref, min, minc, size; + int err, i; + uint64_t max; + + /* Limit HMB to 1% of RAM size per device by default. */ + max = (uint64_t)physmem * PAGE_SIZE / 100; + TUNABLE_UINT64_FETCH("hw.nvme.hmb_max", &max); + + min = (long long unsigned)ctrlr->cdata.hmmin * 4096; + if (max < min) + return; + pref = MIN((long long unsigned)ctrlr->cdata.hmpre * 4096, max); + minc = MAX(ctrlr->cdata.hmminds * 4096, PAGE_SIZE); + if (min > 0 && ctrlr->cdata.hmmaxd > 0) + minc = MAX(minc, min / ctrlr->cdata.hmmaxd); + ctrlr->hmb_chunk = pref; + +again: + ctrlr->hmb_chunk = roundup2(ctrlr->hmb_chunk, PAGE_SIZE); + ctrlr->hmb_nchunks = howmany(pref, ctrlr->hmb_chunk); + if (ctrlr->cdata.hmmaxd > 0 && ctrlr->hmb_nchunks > ctrlr->cdata.hmmaxd) + ctrlr->hmb_nchunks = ctrlr->cdata.hmmaxd; + ctrlr->hmb_chunks = malloc(sizeof(struct nvme_hmb_chunk) * + ctrlr->hmb_nchunks, M_NVME, M_WAITOK); + err = bus_dma_tag_create(bus_get_dma_tag(ctrlr->dev), + PAGE_SIZE, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, + ctrlr->hmb_chunk, 1, ctrlr->hmb_chunk, 0, NULL, NULL, &ctrlr->hmb_tag); + if (err != 0) { + nvme_printf(ctrlr, "HMB tag create failed %d\n", err); + nvme_ctrlr_hmb_free(ctrlr); + return; + } + + for (i = 0; i < ctrlr->hmb_nchunks; i++) { + hmbc = &ctrlr->hmb_chunks[i]; + if (bus_dmamem_alloc(ctrlr->hmb_tag, + (void **)&hmbc->hmbc_vaddr, BUS_DMA_NOWAIT, + &hmbc->hmbc_map)) { + nvme_printf(ctrlr, "failed to alloc HMB\n"); + break; + } + if (bus_dmamap_load(ctrlr->hmb_tag, hmbc->hmbc_map, + hmbc->hmbc_vaddr, ctrlr->hmb_chunk, nvme_single_map, + &hmbc->hmbc_paddr, BUS_DMA_NOWAIT) != 0) { + bus_dmamem_free(ctrlr->hmb_tag, hmbc->hmbc_vaddr, + hmbc->hmbc_map); + nvme_printf(ctrlr, "failed to load HMB\n"); + break; + } + bus_dmamap_sync(ctrlr->hmb_tag, hmbc->hmbc_map, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); + } + + if (i < ctrlr->hmb_nchunks && i * ctrlr->hmb_chunk < min && + ctrlr->hmb_chunk / 2 >= minc) { + ctrlr->hmb_nchunks = i; + nvme_ctrlr_hmb_free(ctrlr); + ctrlr->hmb_chunk /= 2; + goto again; + } + ctrlr->hmb_nchunks = i; + if (ctrlr->hmb_nchunks * ctrlr->hmb_chunk < min) { + nvme_ctrlr_hmb_free(ctrlr); + return; + } + + size = sizeof(struct nvme_hmb_desc) * ctrlr->hmb_nchunks; + err = bus_dma_tag_create(bus_get_dma_tag(ctrlr->dev), + 16, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, + size, 1, size, 0, NULL, NULL, &ctrlr->hmb_desc_tag); + if (err != 0) { + nvme_printf(ctrlr, "HMB desc tag create failed %d\n", err); + nvme_ctrlr_hmb_free(ctrlr); + return; + } + if (bus_dmamem_alloc(ctrlr->hmb_desc_tag, + (void **)&ctrlr->hmb_desc_vaddr, BUS_DMA_WAITOK, + &ctrlr->hmb_desc_map)) { + nvme_printf(ctrlr, "failed to alloc HMB desc\n"); + nvme_ctrlr_hmb_free(ctrlr); + return; + } + if (bus_dmamap_load(ctrlr->hmb_desc_tag, ctrlr->hmb_desc_map, + ctrlr->hmb_desc_vaddr, size, nvme_single_map, + &ctrlr->hmb_desc_paddr, BUS_DMA_NOWAIT) != 0) { + bus_dmamem_free(ctrlr->hmb_desc_tag, ctrlr->hmb_desc_vaddr, + ctrlr->hmb_desc_map); + nvme_printf(ctrlr, "failed to load HMB desc\n"); + nvme_ctrlr_hmb_free(ctrlr); + return; + } + + for (i = 0; i < ctrlr->hmb_nchunks; i++) { + ctrlr->hmb_desc_vaddr[i].addr = + htole64(ctrlr->hmb_chunks[i].hmbc_paddr); + ctrlr->hmb_desc_vaddr[i].size = htole32(ctrlr->hmb_chunk / 4096); + } + bus_dmamap_sync(ctrlr->hmb_desc_tag, ctrlr->hmb_desc_map, + BUS_DMASYNC_PREWRITE); + + nvme_printf(ctrlr, "Allocated %lluMB host memory buffer\n", + (long long unsigned)ctrlr->hmb_nchunks * ctrlr->hmb_chunk + / 1024 / 1024); +} + +static void +nvme_ctrlr_hmb_enable(struct nvme_controller *ctrlr, bool enable, bool memret) +{ + struct nvme_completion_poll_status status; + uint32_t cdw11; + + cdw11 = 0; + if (enable) + cdw11 |= 1; + if (memret) + cdw11 |= 2; + status.done = 0; + nvme_ctrlr_cmd_set_feature(ctrlr, NVME_FEAT_HOST_MEMORY_BUFFER, cdw11, + ctrlr->hmb_nchunks * ctrlr->hmb_chunk / 4096, ctrlr->hmb_desc_paddr, + ctrlr->hmb_desc_paddr >> 32, ctrlr->hmb_nchunks, NULL, 0, + nvme_completion_poll_cb, &status); + nvme_completion_poll(&status); + if (nvme_completion_is_error(&status.cpl)) + nvme_printf(ctrlr, "nvme_ctrlr_hmb_enable failed!\n"); +} + +static void nvme_ctrlr_start(void *ctrlr_arg, bool resetting) { struct nvme_controller *ctrlr = ctrlr_arg; @@ -888,6 +1051,13 @@ nvme_ctrlr_start(void *ctrlr_arg, bool resetting) } } + if (ctrlr->cdata.hmpre > 0 && ctrlr->hmb_nchunks == 0) { + nvme_ctrlr_hmb_alloc(ctrlr); + if (ctrlr->hmb_nchunks > 0) + nvme_ctrlr_hmb_enable(ctrlr, true, false); + } else if (ctrlr->hmb_nchunks > 0) + nvme_ctrlr_hmb_enable(ctrlr, true, true); + if (nvme_ctrlr_create_qpairs(ctrlr) != 0) { nvme_ctrlr_fail(ctrlr); return; @@ -1240,11 +1410,15 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, dev destroy_dev(ctrlr->cdev); if (ctrlr->is_initialized) { - if (!gone) + if (!gone) { + if (ctrlr->hmb_nchunks > 0) + nvme_ctrlr_hmb_enable(ctrlr, false, false); nvme_ctrlr_delete_qpairs(ctrlr); + } for (i = 0; i < ctrlr->num_io_queues; i++) nvme_io_qpair_destroy(&ctrlr->ioq[i]); free(ctrlr->ioq, M_NVME); + nvme_ctrlr_hmb_free(ctrlr); nvme_admin_qpair_destroy(&ctrlr->adminq); } @@ -1367,6 +1541,9 @@ nvme_ctrlr_suspend(struct nvme_controller *ctrlr) "Competing reset task didn't finish. Try again later.\n"); return (EWOULDBLOCK); } + + if (ctrlr->hmb_nchunks > 0) + nvme_ctrlr_hmb_enable(ctrlr, false, false); /* * Per Section 7.6.2 of NVMe spec 1.4, to properly suspend, we need to Modified: head/sys/dev/nvme/nvme_ctrlr_cmd.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr_cmd.c Tue Jan 7 21:16:30 2020 (r356473) +++ head/sys/dev/nvme/nvme_ctrlr_cmd.c Tue Jan 7 21:17:11 2020 (r356474) @@ -166,7 +166,8 @@ nvme_ctrlr_cmd_delete_io_sq(struct nvme_controller *ct void nvme_ctrlr_cmd_set_feature(struct nvme_controller *ctrlr, uint8_t feature, - uint32_t cdw11, void *payload, uint32_t payload_size, + uint32_t cdw11, uint32_t cdw12, uint32_t cdw13, uint32_t cdw14, + uint32_t cdw15, void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn, void *cb_arg) { struct nvme_request *req; @@ -178,6 +179,10 @@ nvme_ctrlr_cmd_set_feature(struct nvme_controller *ctr cmd->opc = NVME_OPC_SET_FEATURES; cmd->cdw10 = htole32(feature); cmd->cdw11 = htole32(cdw11); + cmd->cdw12 = htole32(cdw12); + cmd->cdw13 = htole32(cdw13); + cmd->cdw14 = htole32(cdw14); + cmd->cdw15 = htole32(cdw15); nvme_ctrlr_submit_admin_request(ctrlr, req); } @@ -208,7 +213,7 @@ nvme_ctrlr_cmd_set_num_queues(struct nvme_controller * cdw11 = ((num_queues - 1) << 16) | (num_queues - 1); nvme_ctrlr_cmd_set_feature(ctrlr, NVME_FEAT_NUMBER_OF_QUEUES, cdw11, - NULL, 0, cb_fn, cb_arg); + 0, 0, 0, 0, NULL, 0, cb_fn, cb_arg); } void @@ -219,8 +224,8 @@ nvme_ctrlr_cmd_set_async_event_config(struct nvme_cont cdw11 = state; nvme_ctrlr_cmd_set_feature(ctrlr, - NVME_FEAT_ASYNC_EVENT_CONFIGURATION, cdw11, NULL, 0, cb_fn, - cb_arg); + NVME_FEAT_ASYNC_EVENT_CONFIGURATION, cdw11, 0, 0, 0, 0, NULL, 0, + cb_fn, cb_arg); } void @@ -245,7 +250,7 @@ nvme_ctrlr_cmd_set_interrupt_coalescing(struct nvme_co cdw11 = ((microseconds/100) << 8) | threshold; nvme_ctrlr_cmd_set_feature(ctrlr, NVME_FEAT_INTERRUPT_COALESCING, cdw11, - NULL, 0, cb_fn, cb_arg); + 0, 0, 0, 0, NULL, 0, cb_fn, cb_arg); } void Modified: head/sys/dev/nvme/nvme_private.h ============================================================================== --- head/sys/dev/nvme/nvme_private.h Tue Jan 7 21:16:30 2020 (r356473) +++ head/sys/dev/nvme/nvme_private.h Tue Jan 7 21:17:11 2020 (r356474) @@ -279,9 +279,6 @@ struct nvme_controller { struct resource *res; void *tag; - bus_dma_tag_t hw_desc_tag; - bus_dmamap_t hw_desc_map; - /** maximum i/o size in bytes */ uint32_t max_xfer_size; @@ -324,6 +321,20 @@ struct nvme_controller { bool is_failed; STAILQ_HEAD(, nvme_request) fail_req; + + /* Host Memory Buffer */ + int hmb_nchunks; + size_t hmb_chunk; + bus_dma_tag_t hmb_tag; + struct nvme_hmb_chunk { + bus_dmamap_t hmbc_map; + void *hmbc_vaddr; + uint64_t hmbc_paddr; + } *hmb_chunks; + bus_dma_tag_t hmb_desc_tag; + bus_dmamap_t hmb_desc_map; + struct nvme_hmb_desc *hmb_desc_vaddr; + uint64_t hmb_desc_paddr; }; #define nvme_mmio_offsetof(reg) \ From owner-svn-src-all@freebsd.org Tue Jan 7 21:29:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CF0A91F361E; Tue, 7 Jan 2020 21:29:42 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47slrk3Lljz4gBk; Tue, 7 Jan 2020 21:29:42 +0000 (UTC) (envelope-from glebius@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6E2365512; Tue, 7 Jan 2020 21:29:42 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007LTgf9051922; Tue, 7 Jan 2020 21:29:42 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007LTglf051921; Tue, 7 Jan 2020 21:29:42 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001072129.007LTglf051921@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 7 Jan 2020 21:29:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356475 - head/sys/dev/cxgbe X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/dev/cxgbe X-SVN-Commit-Revision: 356475 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 21:29:42 -0000 Author: glebius Date: Tue Jan 7 21:29:42 2020 New Revision: 356475 URL: https://svnweb.freebsd.org/changeset/base/356475 Log: Fix a typo - passing wrong mbuf pointer to needs_udp_csum(). Will trigger panic only on a kernel with RATELIMIT. Submitted by: rrs Modified: head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Tue Jan 7 21:17:11 2020 (r356474) +++ head/sys/dev/cxgbe/t4_sge.c Tue Jan 7 21:29:42 2020 (r356475) @@ -2700,7 +2700,7 @@ restart: V_FW_ETH_TX_EO_WR_TSOFF(sizeof(*tcp) / 2 + 1)); } else set_mbuf_eo_tsclk_tsoff(m0, 0); - } else if (needs_udp_csum(m)) { + } else if (needs_udp_csum(m0)) { m0->m_pkthdr.l4hlen = sizeof(struct udphdr); #endif } From owner-svn-src-all@freebsd.org Tue Jan 7 21:44:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 11FA11F3A4F; Tue, 7 Jan 2020 21:44:28 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sm9l6YcPz3CKt; Tue, 7 Jan 2020 21:44:27 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DC2BA58AB; Tue, 7 Jan 2020 21:44:27 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007LiRHL063463; Tue, 7 Jan 2020 21:44:27 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007LiRb7063462; Tue, 7 Jan 2020 21:44:27 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001072144.007LiRb7063462@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 7 Jan 2020 21:44:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356476 - head/lib/libjail X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/lib/libjail X-SVN-Commit-Revision: 356476 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 21:44:28 -0000 Author: markj Date: Tue Jan 7 21:44:27 2020 New Revision: 356476 URL: https://svnweb.freebsd.org/changeset/base/356476 Log: libjail: Handle an error from reallocarray() when trimming the buffer. There is no API guarantee that realloc() will not fail when the buffer is shrinking. Handle it by simply returning the untrimmed buffer. While this is unlikely to ever happen in practice, it seems worth handling just to silence static analyzer warnings. PR: 243106 Submitted by: Hans Christian Woithe MFC after: 1 week Modified: head/lib/libjail/jail.c Modified: head/lib/libjail/jail.c ============================================================================== --- head/lib/libjail/jail.c Tue Jan 7 21:29:42 2020 (r356475) +++ head/lib/libjail/jail.c Tue Jan 7 21:44:27 2020 (r356476) @@ -262,7 +262,10 @@ jailparam_all(struct jailparam **jpp) goto error; mib1[1] = 2; } - jp = reallocarray(jp, njp, sizeof(*jp)); + /* Just return the untrimmed buffer if reallocarray() somehow fails. */ + tjp = reallocarray(jp, njp, sizeof(*jp)); + if (tjp != NULL) + jp = tjp; *jpp = jp; return (njp); From owner-svn-src-all@freebsd.org Tue Jan 7 21:56:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 305111F3D42; Tue, 7 Jan 2020 21:56:21 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47smRT0JKvz3CwN; Tue, 7 Jan 2020 21:56:21 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 014435A94; Tue, 7 Jan 2020 21:56:21 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007LuK9K069451; Tue, 7 Jan 2020 21:56:20 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007LuKYN069450; Tue, 7 Jan 2020 21:56:20 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001072156.007LuKYN069450@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 7 Jan 2020 21:56:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356477 - head/cddl/contrib/opensolaris/lib/libdtrace/common X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/lib/libdtrace/common X-SVN-Commit-Revision: 356477 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 21:56:21 -0000 Author: markj Date: Tue Jan 7 21:56:20 2020 New Revision: 356477 URL: https://svnweb.freebsd.org/changeset/base/356477 Log: Use a deterministic hash for USDT symbol names. Previously libdtrace used ftok(3), which hashes the inode number of the input object file. To increase reproducibility of builds that embed USDT probes, include a hash of the object file path in the symbol name instead. Reported and tested by: bdrewery Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Tue Jan 7 21:44:27 2020 (r356476) +++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Tue Jan 7 21:56:20 2020 (r356477) @@ -57,7 +57,6 @@ #include #endif #include -#include #include #include @@ -1249,13 +1248,32 @@ dt_link_error(dtrace_hdl_t *dtp, Elf *elf, int fd, dt_ return (dt_set_errno(dtp, EDT_COMPILER)); } +/* + * Provide a unique identifier used when adding global symbols to an object. + * This is the FNV-1a hash of an absolute path for the file. + */ +static unsigned int +hash_obj(const char *obj, int fd) +{ + char path[PATH_MAX]; + unsigned int h; + + if (realpath(obj, path) == NULL) + return (-1); + + for (h = 2166136261u, obj = &path[0]; *obj != '\0'; obj++) + h = (h ^ *obj) * 16777619; + h &= 0x7fffffff; + return (h); +} + static int process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp) { static const char dt_prefix[] = "__dtrace"; static const char dt_enabled[] = "enabled"; static const char dt_symprefix[] = "$dtrace"; - static const char dt_symfmt[] = "%s%ld.%s"; + static const char dt_symfmt[] = "%s%u.%s"; static const char dt_weaksymfmt[] = "%s.%s"; char probename[DTRACE_NAMELEN]; int fd, i, ndx, eprobe, mod = 0; @@ -1272,7 +1290,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *e dt_probe_t *prp; uint32_t off, eclass, emachine1, emachine2; size_t symsize, osym, nsym, isym, istr, len; - key_t objkey; + unsigned int objkey; dt_link_pair_t *pair, *bufs = NULL; dt_strtab_t *strtab; void *tmp; @@ -1350,10 +1368,9 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *e * system in order to disambiguate potential conflicts between files of * the same name which contain identially named local symbols. */ - if ((objkey = ftok(obj, 0)) == (key_t)-1) { + if ((objkey = hash_obj(obj, fd)) == (unsigned int)-1) return (dt_link_error(dtp, elf, fd, bufs, "failed to generate unique key for object file: %s", obj)); - } scn_rel = NULL; while ((scn_rel = elf_nextscn(elf, scn_rel)) != NULL) { From owner-svn-src-all@freebsd.org Tue Jan 7 21:56:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 52FEB1F3D82; Tue, 7 Jan 2020 21:56:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47smRd1c21z3D3N; Tue, 7 Jan 2020 21:56:29 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 327805A96; Tue, 7 Jan 2020 21:56:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007LuT4m069501; Tue, 7 Jan 2020 21:56:29 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007LuTwa069500; Tue, 7 Jan 2020 21:56:29 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001072156.007LuTwa069500@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 7 Jan 2020 21:56:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356478 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356478 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 21:56:29 -0000 Author: jhb Date: Tue Jan 7 21:56:28 2020 New Revision: 356478 URL: https://svnweb.freebsd.org/changeset/base/356478 Log: Don't fail universe kernel stage for TARGET_ARCHes without a kernel config. This fixes a regression in r356418 where the entire universe would fail early due to an undefined make target when a given TARGET_ARCH had no associated kernel configs. This is true for all of the hard-float mips TARGET_ARCHes currently. Pointy hat to: me Reviewed by: emaste MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D23071 Modified: head/Makefile Modified: head/Makefile ============================================================================== --- head/Makefile Tue Jan 7 21:56:20 2020 (r356477) +++ head/Makefile Tue Jan 7 21:56:28 2020 (r356478) @@ -728,6 +728,7 @@ universe_kernconf_${TARGET}_${kernel}: .MAKE .endfor .for target_arch in ${TARGET_ARCHES_${TARGET}} universe_kernconfs: universe_kernconfs_${target_arch} .PHONY +universe_kernconfs_${target_arch}: .endfor .endif # make(universe_kernels) universe: universe_epilogue From owner-svn-src-all@freebsd.org Tue Jan 7 22:45:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D441D1F4D75; Tue, 7 Jan 2020 22:45:02 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47snWf514Vz3GS2; Tue, 7 Jan 2020 22:45:02 +0000 (UTC) (envelope-from bdragon@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A2CA864FE; Tue, 7 Jan 2020 22:45:02 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Mj2Jj098844; Tue, 7 Jan 2020 22:45:02 GMT (envelope-from bdragon@FreeBSD.org) Received: (from bdragon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Mj2lK098843; Tue, 7 Jan 2020 22:45:02 GMT (envelope-from bdragon@FreeBSD.org) Message-Id: <202001072245.007Mj2lK098843@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdragon set sender to bdragon@FreeBSD.org using -f From: Brandon Bergren Date: Tue, 7 Jan 2020 22:45:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356479 - head/lib/clang/libllvmminimal X-SVN-Group: head X-SVN-Commit-Author: bdragon X-SVN-Commit-Paths: head/lib/clang/libllvmminimal X-SVN-Commit-Revision: 356479 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 22:45:02 -0000 Author: bdragon Date: Tue Jan 7 22:45:02 2020 New Revision: 356479 URL: https://svnweb.freebsd.org/changeset/base/356479 Log: [PowerPC] Fix libllvmminimal build when building from powerpc64 ELFv1. When bootstrapping on powerpc64 ELFv1, it is necessary to use binutils ld.bfd from ports for the bootstrap, as this is the only modern linker for ELFv1 host tools. As binutils ld.bfd is rather strict in its handling of undefined symbols, it is necessary to pull in Support/Atomic.cpp to avoid an undefined symbol. Reviewed by: dim, emaste Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23072 Modified: head/lib/clang/libllvmminimal/Makefile Modified: head/lib/clang/libllvmminimal/Makefile ============================================================================== --- head/lib/clang/libllvmminimal/Makefile Tue Jan 7 21:56:28 2020 (r356478) +++ head/lib/clang/libllvmminimal/Makefile Tue Jan 7 22:45:02 2020 (r356479) @@ -10,6 +10,7 @@ SRCS+= Demangle/ItaniumDemangle.cpp SRCS+= Support/APFloat.cpp SRCS+= Support/APInt.cpp SRCS+= Support/ARMTargetParser.cpp +SRCS+= Support/Atomic.cpp SRCS+= Support/CodeGenCoverage.cpp SRCS+= Support/CommandLine.cpp SRCS+= Support/ConvertUTF.cpp From owner-svn-src-all@freebsd.org Tue Jan 7 23:10:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E3321F564A; Tue, 7 Jan 2020 23:10:39 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sp5C2plBz3HvQ; Tue, 7 Jan 2020 23:10:39 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5BC0F690C; Tue, 7 Jan 2020 23:10:39 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007NAd1k011347; Tue, 7 Jan 2020 23:10:39 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007NAdmV011346; Tue, 7 Jan 2020 23:10:39 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001072310.007NAdmV011346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Jan 2020 23:10:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356480 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 356480 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 23:10:39 -0000 Author: mav Date: Tue Jan 7 23:10:38 2020 New Revision: 356480 URL: https://svnweb.freebsd.org/changeset/base/356480 Log: Increate HMB limit from 1% to 5%. SSD capacity in laptops is growing faster then RAM size, so my original guess seems too low on second thought. Hopefully nobody will build large array of those crappy SSDs. MFC after: 2 weeks X-MFC-with: 356474 Modified: head/sys/dev/nvme/nvme_ctrlr.c Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 22:45:02 2020 (r356479) +++ head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 23:10:38 2020 (r356480) @@ -881,8 +881,8 @@ nvme_ctrlr_hmb_alloc(struct nvme_controller *ctrlr) int err, i; uint64_t max; - /* Limit HMB to 1% of RAM size per device by default. */ - max = (uint64_t)physmem * PAGE_SIZE / 100; + /* Limit HMB to 5% of RAM size per device by default. */ + max = (uint64_t)physmem * PAGE_SIZE / 20; TUNABLE_UINT64_FETCH("hw.nvme.hmb_max", &max); min = (long long unsigned)ctrlr->cdata.hmmin * 4096; From owner-svn-src-all@freebsd.org Tue Jan 7 23:18:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 15E851F5865; Tue, 7 Jan 2020 23:18:32 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47spGH6kCPz3JLM; Tue, 7 Jan 2020 23:18:31 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDA456AC0; Tue, 7 Jan 2020 23:18:31 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007NIVjm017248; Tue, 7 Jan 2020 23:18:31 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007NIVqE017246; Tue, 7 Jan 2020 23:18:31 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001072318.007NIVqE017246@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 7 Jan 2020 23:18:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356481 - in head/sys: conf riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: conf riscv/riscv X-SVN-Commit-Revision: 356481 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 23:18:32 -0000 Author: jhb Date: Tue Jan 7 23:18:31 2020 New Revision: 356481 URL: https://svnweb.freebsd.org/changeset/base/356481 Log: Work around lld's inability to handle undefined weak symbols on risc-v. lld on RISC-V is not yet able to handle undefined weak symbols for non-PIC code in the code model (medany/medium) used by the RISC-V kernel. Both GCC and clang emit an auipc / addi pair of instructions to generate an address relative to the current PC with a 31-bit offset. Undefined weak symbols need to have an address of 0, but the kernel runs with PC values much greater than 2^31, so there is no way to construct a NULL pointer as a PC-relative value. The bfd linker rewrites the instruction pair to use lui / addi with values of 0 to force a NULL pointer address. (There are similar cases for 'ld' becoming auipc / ld that bfd rewrites to lui / ld with an address of 0.) To work around this, compile the kernel with -fPIE when using lld. This does not make the kernel position-independent, but it does force the compiler to indirect address lookups through GOT entries (so auipc / ld against a GOT entry to fetch the address). This adds extra memory indirections for global symbols, so should be disabled once lld is finally fixed. A few 'la' instructions in locore that depend on PC-relative addressing to load physical addresses before paging is enabled have to use auipc / addi and not indirect via GOT entries, so change those to use 'lla' which always uses auipc / addi for both PIC and non-PIC. Submitted by: jrtc27 Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23064 Modified: head/sys/conf/kern.pre.mk head/sys/riscv/riscv/locore.S Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Tue Jan 7 23:10:38 2020 (r356480) +++ head/sys/conf/kern.pre.mk Tue Jan 7 23:18:31 2020 (r356481) @@ -170,6 +170,17 @@ LDFLAGS+= -z notext -z ifunc-noplt .endif .endif +.if ${MACHINE_CPUARCH} == "riscv" +# Hack: Work around undefined weak symbols being out of range when linking with +# LLD (address is a PC-relative calculation, and BFD works around this by +# rewriting the instructions to generate an absolute address of 0); -fPIE +# avoids this since it uses the GOT for all extern symbols, which is overly +# inefficient for us. Drop once undefined weak symbols work with medany. +.if ${LINKER_TYPE} == "lld" +CFLAGS+= -fPIE +.endif +.endif + NORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.IMPSRC} NORMAL_S= ${CC:N${CCACHE_BIN}} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC} PROFILE_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC} Modified: head/sys/riscv/riscv/locore.S ============================================================================== --- head/sys/riscv/riscv/locore.S Tue Jan 7 23:10:38 2020 (r356480) +++ head/sys/riscv/riscv/locore.S Tue Jan 7 23:18:31 2020 (r356481) @@ -54,7 +54,7 @@ .globl _start _start: /* Get the physical address kernel loaded to */ - la t0, virt_map + lla t0, virt_map ld t1, 0(t0) sub t1, t1, t0 li t2, KERNBASE @@ -66,7 +66,7 @@ _start: */ /* Pick a hart to run the boot process. */ - la t0, hart_lottery + lla t0, hart_lottery li t1, 1 amoadd.w t0, t1, 0(t0) @@ -82,8 +82,8 @@ _start: */ 1: /* Add L1 entry for kernel */ - la s1, pagetable_l1 - la s2, pagetable_l2 /* Link to next level PN */ + lla s1, pagetable_l1 + lla s2, pagetable_l2 /* Link to next level PN */ srli s2, s2, PAGE_SHIFT li a5, KERNBASE @@ -100,7 +100,7 @@ _start: sd t6, (t0) /* Level 2 superpages (512 x 2MiB) */ - la s1, pagetable_l2 + lla s1, pagetable_l2 srli t4, s9, 21 /* Div physmem base by 2 MiB */ li t2, 512 /* Build 512 entries */ add t3, t4, t2 @@ -116,8 +116,8 @@ _start: bltu t4, t3, 2b /* Create an L1 page for early devmap */ - la s1, pagetable_l1 - la s2, pagetable_l2_devmap /* Link to next level PN */ + lla s1, pagetable_l1 + lla s2, pagetable_l2_devmap /* Link to next level PN */ srli s2, s2, PAGE_SHIFT li a5, (VM_MAX_KERNEL_ADDRESS - L2_SIZE) @@ -134,7 +134,7 @@ _start: sd t6, (t0) /* Create an L2 page superpage for DTB */ - la s1, pagetable_l2_devmap + lla s1, pagetable_l2_devmap mv s2, a1 srli s2, s2, PAGE_SHIFT @@ -152,14 +152,14 @@ _start: /* Page tables END */ /* Setup supervisor trap vector */ - la t0, va + lla t0, va sub t0, t0, s9 li t1, KERNBASE add t0, t0, t1 csrw stvec, t0 /* Set page tables base register */ - la s2, pagetable_l1 + lla s2, pagetable_l1 srli s2, s2, PAGE_SHIFT li t0, SATP_MODE_SV39 or s2, s2, t0 From owner-svn-src-all@freebsd.org Tue Jan 7 23:29:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 005881F5B7A; Tue, 7 Jan 2020 23:29:55 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47spWQ6Hm5z3JpB; Tue, 7 Jan 2020 23:29:54 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D33E46C8F; Tue, 7 Jan 2020 23:29:54 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007NTsPE022988; Tue, 7 Jan 2020 23:29:54 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007NTslE022986; Tue, 7 Jan 2020 23:29:54 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001072329.007NTslE022986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Jan 2020 23:29:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356482 - in head: share/man/man4 sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/nvme X-SVN-Commit-Revision: 356482 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 23:29:55 -0000 Author: mav Date: Tue Jan 7 23:29:54 2020 New Revision: 356482 URL: https://svnweb.freebsd.org/changeset/base/356482 Log: Minor adjustments to r356474 and r356480. Reported by: jkim, imp MFC after: 2 weeks X-MFC-with: r356474 Modified: head/share/man/man4/nvme.4 head/sys/dev/nvme/nvme_ctrlr.c Modified: head/share/man/man4/nvme.4 ============================================================================== --- head/share/man/man4/nvme.4 Tue Jan 7 23:18:31 2020 (r356481) +++ head/share/man/man4/nvme.4 Tue Jan 7 23:29:54 2020 (r356482) @@ -126,7 +126,7 @@ Buffer for capable devices, set the following tunable: hw.nvme.hmb_max .Ed .Pp -The default value is 1% of physical memory size per device. +The default value is 5% of physical memory size per device. .Pp The .Xr nvd 4 Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 23:18:31 2020 (r356481) +++ head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 23:29:54 2020 (r356482) @@ -886,7 +886,7 @@ nvme_ctrlr_hmb_alloc(struct nvme_controller *ctrlr) TUNABLE_UINT64_FETCH("hw.nvme.hmb_max", &max); min = (long long unsigned)ctrlr->cdata.hmmin * 4096; - if (max < min) + if (max == 0 || max < min) return; pref = MIN((long long unsigned)ctrlr->cdata.hmpre * 4096, max); minc = MAX(ctrlr->cdata.hmminds * 4096, PAGE_SIZE); From owner-svn-src-all@freebsd.org Tue Jan 7 23:30:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D62931F5C06 for ; Tue, 7 Jan 2020 23:30:45 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47spXN60WCz3JxM for ; Tue, 7 Jan 2020 23:30:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x835.google.com with SMTP id t3so1245444qtr.11 for ; Tue, 07 Jan 2020 15:30:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=BSngzVfvY/agjI1pdvDX420nzK1Dwm8FKf9fIIfbjps=; b=Cwef7ab4X129OarwFy4ynAoABQp3s3rr1tZVD3v4sxsXfhsgd8Nz6/oCw89kUQ5YII MsB56myeKphPVwdOYAnfVuMqTN3jl6bYHM35PRJZlhwS0lehXRdRcv4n3afdpWNKfWxp XwhPvVijcU0cXmm4pQxZbQYghQ4GdSPA8r9eObFMMYcJsoUhxECUG+wxaTNpXcYCW0W8 s9wL2hsNLUmCcW4DcnK44WUQ9JFnaT36HpLTPgOzMxvE2F/Ebys66u5/OaRjyosTK74O 9ETYnTnIHcDIDQg9OZh//nO+MDr118870gqvK4FqSzf2gk7J3pu494XMXnDGZVPFq0TQ GMCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=BSngzVfvY/agjI1pdvDX420nzK1Dwm8FKf9fIIfbjps=; b=pRfWs+pEyqdFlsV4r6CUWvQFZbTmAI55kwxLwp+OuYBk5QJljnZyM50gBhCuViRQlT xg5Qr/kTNdgRq6cbFzPUwI3exSpNfJOIGZC/CZFVH+lR5PbS7jnTSI8Lc2Iv787Mn2bM BQRhrikDYRuKYQWVFUxM8DFeISOkEmrPbN2hx2L8RJG/BEnDqT7fQCOV5NOmEPZYdPHg AS+JD7o02+mFd49pLWYh2n5RPO58xsF3uTw+ermrK8mTR8hQ+2Gs4vMVp8ILebtmu5L8 GA6buyT9QKp1GTUOt+Frd1MxxrY7m3vGYtOwsbL+/OQ8HUtzw2RrEnQ/4FPxI3nJh76w aDKw== X-Gm-Message-State: APjAAAV8reSqz2CmjFzrR8IEdOpl8TWkufvd9agpZc2HSx6ysqDIYgyW xNAHoeV8p7vtVgHiqinS6hmy1pS/tSNIDkFX4PerXg== X-Google-Smtp-Source: APXvYqy0gY2Hom+YRTSDy8oJinKpV9U/lqG/ytFU/shCQbM32/NqWbd9QBs2fmLsYzPf6JjVFmfaZ3jjWpY6AFgLz5U= X-Received: by 2002:ac8:490f:: with SMTP id e15mr1256217qtq.32.1578439843948; Tue, 07 Jan 2020 15:30:43 -0800 (PST) MIME-Version: 1.0 References: <202001072310.007NAdmV011346@repo.freebsd.org> In-Reply-To: <202001072310.007NAdmV011346@repo.freebsd.org> From: Warner Losh Date: Tue, 7 Jan 2020 16:30:32 -0700 Message-ID: Subject: Re: svn commit: r356480 - head/sys/dev/nvme To: Alexander Motin Cc: src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 47spXN60WCz3JxM X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Cwef7ab4; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::835) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.67 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[5.3.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.67)[ip: (-9.31), ipnet: 2607:f8b0::/32(-2.12), asn: 15169(-1.85), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 23:30:45 -0000 On Tue, Jan 7, 2020 at 4:10 PM Alexander Motin wrote: > Author: mav > Date: Tue Jan 7 23:10:38 2020 > New Revision: 356480 > URL: https://svnweb.freebsd.org/changeset/base/356480 > > Log: > Increate HMB limit from 1% to 5%. > > SSD capacity in laptops is growing faster then RAM size, so my original > guess seems too low on second thought. Hopefully nobody will build large > array of those crappy SSDs. > If they do, they will likely want to turn off host buffer support anyway, since it uses PCIe bandwidth and large arrays tend to oversubscribe the PCIe bus... Warner > MFC after: 2 weeks > X-MFC-with: 356474 > > Modified: > head/sys/dev/nvme/nvme_ctrlr.c > > Modified: head/sys/dev/nvme/nvme_ctrlr.c > > ============================================================================== > --- head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 22:45:02 2020 > (r356479) > +++ head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 23:10:38 2020 > (r356480) > @@ -881,8 +881,8 @@ nvme_ctrlr_hmb_alloc(struct nvme_controller *ctrlr) > int err, i; > uint64_t max; > > - /* Limit HMB to 1% of RAM size per device by default. */ > - max = (uint64_t)physmem * PAGE_SIZE / 100; > + /* Limit HMB to 5% of RAM size per device by default. */ > + max = (uint64_t)physmem * PAGE_SIZE / 20; > TUNABLE_UINT64_FETCH("hw.nvme.hmb_max", &max); > > min = (long long unsigned)ctrlr->cdata.hmmin * 4096; > From owner-svn-src-all@freebsd.org Wed Jan 8 07:25:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0BA2F1FDBB6; Wed, 8 Jan 2020 07:25:38 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47t14K6NvWz49wq; Wed, 8 Jan 2020 07:25:37 +0000 (UTC) (envelope-from mmel@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D1CDAC657; Wed, 8 Jan 2020 07:25:37 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0087PbS8009040; Wed, 8 Jan 2020 07:25:37 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0087PbMj009039; Wed, 8 Jan 2020 07:25:37 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <202001080725.0087PbMj009039@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Wed, 8 Jan 2020 07:25:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356483 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356483 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 07:25:38 -0000 Author: mmel Date: Wed Jan 8 07:25:37 2020 New Revision: 356483 URL: https://svnweb.freebsd.org/changeset/base/356483 Log: Switch 32-bit arm back to LLVM libunwind. Actual LLVM libunwind passed all testing without issues, switch back to it. PR: 233664 Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Tue Jan 7 23:29:54 2020 (r356482) +++ head/share/mk/src.opts.mk Wed Jan 8 07:25:37 2020 (r356483) @@ -317,7 +317,7 @@ BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BO .if ${__T:Mriscv*} != "" BROKEN_OPTIONS+=OFED .endif -.if ${__T} != "armv6" && ${__T} != "armv7" && ${__T} != "sparc64" +.if ${__T} != "sparc64" __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND .else __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND From owner-svn-src-all@freebsd.org Wed Jan 8 09:29:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EE7F01E887B; Wed, 8 Jan 2020 09:29:11 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47t3pv4zr5z4H13; Wed, 8 Jan 2020 09:29:11 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id 0089Suks040892 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 8 Jan 2020 11:28:59 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 0089Suks040892 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 0089SuJY040891; Wed, 8 Jan 2020 11:28:56 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 8 Jan 2020 11:28:56 +0200 From: Konstantin Belousov To: Alexander Motin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356480 - head/sys/dev/nvme Message-ID: <20200108092856.GW23031@kib.kiev.ua> References: <202001072310.007NAdmV011346@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001072310.007NAdmV011346@repo.freebsd.org> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.3 X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on tom.home X-Rspamd-Queue-Id: 47t3pv4zr5z4H13 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 09:29:12 -0000 On Tue, Jan 07, 2020 at 11:10:39PM +0000, Alexander Motin wrote: > Author: mav > Date: Tue Jan 7 23:10:38 2020 > New Revision: 356480 > URL: https://svnweb.freebsd.org/changeset/base/356480 > > Log: > Increate HMB limit from 1% to 5%. > > SSD capacity in laptops is growing faster then RAM size, so my original > guess seems too low on second thought. Hopefully nobody will build large > array of those crappy SSDs. It seems that this should be a knob. > > MFC after: 2 weeks > X-MFC-with: 356474 > > Modified: > head/sys/dev/nvme/nvme_ctrlr.c > > Modified: head/sys/dev/nvme/nvme_ctrlr.c > ============================================================================== > --- head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 22:45:02 2020 (r356479) > +++ head/sys/dev/nvme/nvme_ctrlr.c Tue Jan 7 23:10:38 2020 (r356480) > @@ -881,8 +881,8 @@ nvme_ctrlr_hmb_alloc(struct nvme_controller *ctrlr) > int err, i; > uint64_t max; > > - /* Limit HMB to 1% of RAM size per device by default. */ > - max = (uint64_t)physmem * PAGE_SIZE / 100; > + /* Limit HMB to 5% of RAM size per device by default. */ > + max = (uint64_t)physmem * PAGE_SIZE / 20; > TUNABLE_UINT64_FETCH("hw.nvme.hmb_max", &max); > > min = (long long unsigned)ctrlr->cdata.hmmin * 4096; From owner-svn-src-all@freebsd.org Wed Jan 8 10:06:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3099B1E9934; Wed, 8 Jan 2020 10:06:33 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47t4f10X0rz4K29; Wed, 8 Jan 2020 10:06:33 +0000 (UTC) (envelope-from kp@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D52BE3C2; Wed, 8 Jan 2020 10:06:33 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008A6W5x003824; Wed, 8 Jan 2020 10:06:32 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008A6WWO003823; Wed, 8 Jan 2020 10:06:32 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202001081006.008A6WWO003823@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Wed, 8 Jan 2020 10:06:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356484 - head/sys/dev/virtio/network X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/dev/virtio/network X-SVN-Commit-Revision: 356484 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 10:06:33 -0000 Author: kp Date: Wed Jan 8 10:06:32 2020 New Revision: 356484 URL: https://svnweb.freebsd.org/changeset/base/356484 Log: vtnet: Pre-allocate debugnet data immediately Don't wait until the vtnet_debugnet_init() call happens, because at that point we might already have allocated something from vtnet_tx_header_zone. Some systems showed this panic: vtnet0: link state changed to UP panic: keg vtnet_tx_hdr initialization after use. cpuid = 5 time = 1578427700 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe004db427f0 vpanic() at vpanic+0x17e/frame 0xfffffe004db42850 panic() at panic+0x43/frame 0xfffffe004db428b0 uma_zone_reserve() at uma_zone_reserve+0xf6/frame 0xfffffe004db428f0 vtnet_debugnet_init() at vtnet_debugnet_init+0x77/frame 0xfffffe004db42930 debugnet_any_ifnet_update() at debugnet_any_ifnet_update+0x42/frame 0xfffffe004db42980 do_link_state_change() at do_link_state_change+0x1b3/frame 0xfffffe004db429d0 taskqueue_run_locked() at taskqueue_run_locked+0x178/frame 0xfffffe004db42a30 taskqueue_run() at taskqueue_run+0x4d/frame 0xfffffe004db42a50 ithread_loop() at ithread_loop+0x1d6/frame 0xfffffe004db42ab0 fork_exit() at fork_exit+0x80/frame 0xfffffe004db42af0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe004db42af0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- KDB: enter: panic [ thread pid 12 tid 100011 ] Stopped at kdb_enter+0x37: movq $0,0x1084eb6(%rip) db> Reviewed by: cem, markj Differential Revision: https://reviews.freebsd.org/D23073 Modified: head/sys/dev/virtio/network/if_vtnet.c Modified: head/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- head/sys/dev/virtio/network/if_vtnet.c Wed Jan 8 07:25:37 2020 (r356483) +++ head/sys/dev/virtio/network/if_vtnet.c Wed Jan 8 10:06:32 2020 (r356484) @@ -337,10 +337,21 @@ vtnet_modevent(module_t mod, int type, void *unused) switch (type) { case MOD_LOAD: - if (loaded++ == 0) + if (loaded++ == 0) { vtnet_tx_header_zone = uma_zcreate("vtnet_tx_hdr", sizeof(struct vtnet_tx_header), NULL, NULL, NULL, NULL, 0, 0); +#ifdef DEBUGNET + /* + * We need to allocate from this zone in the transmit path, so ensure + * that we have at least one item per header available. + * XXX add a separate zone like we do for mbufs? otherwise we may alloc + * buckets + */ + uma_zone_reserve(vtnet_tx_header_zone, DEBUGNET_MAX_IN_FLIGHT * 2); + uma_prealloc(vtnet_tx_header_zone, DEBUGNET_MAX_IN_FLIGHT * 2); +#endif + } break; case MOD_QUIESCE: if (uma_zone_get_cur(vtnet_tx_header_zone) > 0) @@ -3982,15 +3993,6 @@ vtnet_debugnet_init(struct ifnet *ifp, int *nrxr, int *ncl = DEBUGNET_MAX_IN_FLIGHT; *clsize = sc->vtnet_rx_clsize; VTNET_CORE_UNLOCK(sc); - - /* - * We need to allocate from this zone in the transmit path, so ensure - * that we have at least one item per header available. - * XXX add a separate zone like we do for mbufs? otherwise we may alloc - * buckets - */ - uma_zone_reserve(vtnet_tx_header_zone, DEBUGNET_MAX_IN_FLIGHT * 2); - uma_prealloc(vtnet_tx_header_zone, DEBUGNET_MAX_IN_FLIGHT * 2); } static void From owner-svn-src-all@freebsd.org Wed Jan 8 11:29:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 60F781EB3A7; Wed, 8 Jan 2020 11:29:23 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47t6Tb1wNxz4NR0; Wed, 8 Jan 2020 11:29:23 +0000 (UTC) (envelope-from manu@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3D307F2B8; Wed, 8 Jan 2020 11:29:23 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008BTNGg051738; Wed, 8 Jan 2020 11:29:23 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008BTNa5051737; Wed, 8 Jan 2020 11:29:23 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001081129.008BTNa5051737@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 8 Jan 2020 11:29:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356485 - head/sys/arm64/rockchip X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip X-SVN-Commit-Revision: 356485 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 11:29:23 -0000 Author: manu Date: Wed Jan 8 11:29:22 2020 New Revision: 356485 URL: https://svnweb.freebsd.org/changeset/base/356485 Log: rk808: Add min/max for the switch regulators The two switch regulator are always 3.0V. Add a special case in get_voltage that if min=max we directly return the value without calculating it. Reviewed by: mmel Differential Revision: https://reviews.freebsd.org/D23004 Modified: head/sys/arm64/rockchip/rk805.c Modified: head/sys/arm64/rockchip/rk805.c ============================================================================== --- head/sys/arm64/rockchip/rk805.c Wed Jan 8 10:06:32 2020 (r356484) +++ head/sys/arm64/rockchip/rk805.c Wed Jan 8 11:29:22 2020 (r356485) @@ -204,6 +204,7 @@ static struct rk805_regdef rk808_regdefs[] = { .voltage_nstep = 64, }, { + /* BUCK3 voltage is calculated based on external resistor */ .id = RK805_DCDC3, .name = "DCDC_REG3", .enable_reg = RK805_DCDC_EN, @@ -322,12 +323,16 @@ static struct rk805_regdef rk808_regdefs[] = { .name = "SWITCH_REG1", .enable_reg = RK805_DCDC_EN, .enable_mask = 0x20, + .voltage_min = 3000000, + .voltage_max = 3000000, }, { .id = RK808_SWITCH2, .name = "SWITCH_REG2", .enable_reg = RK805_DCDC_EN, .enable_mask = 0x40, + .voltage_min = 3000000, + .voltage_max = 3000000, }, }; @@ -449,6 +454,11 @@ rk805_regnode_get_voltage(struct regnode *regnode, int uint8_t val; sc = regnode_get_softc(regnode); + + if (sc->def->voltage_min == sc->def->voltage_max) { + *uvolt = sc->def->voltage_min; + return (0); + } if (!sc->def->voltage_step) return (ENXIO); From owner-svn-src-all@freebsd.org Wed Jan 8 11:30:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6901D1EB45C; Wed, 8 Jan 2020 11:30:04 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47t6VN2DY1z4NZL; Wed, 8 Jan 2020 11:30:04 +0000 (UTC) (envelope-from manu@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47CB3F2CC; Wed, 8 Jan 2020 11:30:04 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008BU4he051849; Wed, 8 Jan 2020 11:30:04 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008BU4Qh051848; Wed, 8 Jan 2020 11:30:04 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001081130.008BU4Qh051848@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 8 Jan 2020 11:30:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356486 - head/sys/arm64/rockchip X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip X-SVN-Commit-Revision: 356486 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 11:30:04 -0000 Author: manu Date: Wed Jan 8 11:30:03 2020 New Revision: 356486 URL: https://svnweb.freebsd.org/changeset/base/356486 Log: rk805: Add regnode_status method This allow consumers to check if the regulator is enable or not. Reviewed by: mmel Differential Revision: https://reviews.freebsd.org/D23005 Modified: head/sys/arm64/rockchip/rk805.c Modified: head/sys/arm64/rockchip/rk805.c ============================================================================== --- head/sys/arm64/rockchip/rk805.c Wed Jan 8 11:29:22 2020 (r356485) +++ head/sys/arm64/rockchip/rk805.c Wed Jan 8 11:30:03 2020 (r356486) @@ -413,6 +413,22 @@ rk805_regnode_voltage_to_reg(struct rk805_reg_sc *sc, } static int +rk805_regnode_status(struct regnode *regnode, int *status) +{ + struct rk805_reg_sc *sc; + uint8_t val; + + sc = regnode_get_softc(regnode); + + *status = 0; + rk805_read(sc->base_dev, sc->def->enable_reg, &val, 1); + if (val & sc->def->enable_mask) + *status = REGULATOR_STATUS_ENABLED; + + return (0); +} + +static int rk805_regnode_set_voltage(struct regnode *regnode, int min_uvolt, int max_uvolt, int *udelay) { @@ -477,6 +493,7 @@ static regnode_method_t rk805_regnode_methods[] = { /* Regulator interface */ REGNODEMETHOD(regnode_init, rk805_regnode_init), REGNODEMETHOD(regnode_enable, rk805_regnode_enable), + REGNODEMETHOD(regnode_status, rk805_regnode_status), REGNODEMETHOD(regnode_set_voltage, rk805_regnode_set_voltage), REGNODEMETHOD(regnode_get_voltage, rk805_regnode_get_voltage), REGNODEMETHOD(regnode_check_voltage, regnode_method_check_voltage), From owner-svn-src-all@freebsd.org Wed Jan 8 11:30:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 654D81EB4E3; Wed, 8 Jan 2020 11:30:43 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47t6W725LPz4Nk5; Wed, 8 Jan 2020 11:30:43 +0000 (UTC) (envelope-from manu@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 430CAF2EE; Wed, 8 Jan 2020 11:30:43 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008BUhkd051921; Wed, 8 Jan 2020 11:30:43 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008BUh3V051920; Wed, 8 Jan 2020 11:30:43 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001081130.008BUh3V051920@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 8 Jan 2020 11:30:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356487 - head/sys/dev/extres/regulator X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dev/extres/regulator X-SVN-Commit-Revision: 356487 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 11:30:43 -0000 Author: manu Date: Wed Jan 8 11:30:42 2020 New Revision: 356487 URL: https://svnweb.freebsd.org/changeset/base/356487 Log: regulator: fix regnode_method_get_voltage This method is supposed to write the voltage into uvolt and return an errno compatible value. Reviewed by: mmel Differential Revision: https://reviews.freebsd.org/D23006 Modified: head/sys/dev/extres/regulator/regulator.c Modified: head/sys/dev/extres/regulator/regulator.c ============================================================================== --- head/sys/dev/extres/regulator/regulator.c Wed Jan 8 11:30:03 2020 (r356486) +++ head/sys/dev/extres/regulator/regulator.c Wed Jan 8 11:30:42 2020 (r356487) @@ -275,8 +275,9 @@ static int regnode_method_get_voltage(struct regnode *regnode, int *uvolt) { - return (regnode->std_param.min_uvolt + - (regnode->std_param.max_uvolt - regnode->std_param.min_uvolt) / 2); + *uvolt = regnode->std_param.min_uvolt + + (regnode->std_param.max_uvolt - regnode->std_param.min_uvolt) / 2; + return (0); } int From owner-svn-src-all@freebsd.org Wed Jan 8 14:01:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F2FF31EF862; Wed, 8 Jan 2020 14:01:15 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47t9rq6FtLz4Wk4; Wed, 8 Jan 2020 14:01:15 +0000 (UTC) (envelope-from maxim@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D21A819036; Wed, 8 Jan 2020 14:01:15 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008E1FfV042483; Wed, 8 Jan 2020 14:01:15 GMT (envelope-from maxim@FreeBSD.org) Received: (from maxim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008E1FtH042482; Wed, 8 Jan 2020 14:01:15 GMT (envelope-from maxim@FreeBSD.org) Message-Id: <202001081401.008E1FtH042482@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: maxim set sender to maxim@FreeBSD.org using -f From: Maxim Konovalov Date: Wed, 8 Jan 2020 14:01:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356488 - head/usr.sbin/bsdinstall X-SVN-Group: head X-SVN-Commit-Author: maxim X-SVN-Commit-Paths: head/usr.sbin/bsdinstall X-SVN-Commit-Revision: 356488 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 14:01:16 -0000 Author: maxim Date: Wed Jan 8 14:01:15 2020 New Revision: 356488 URL: https://svnweb.freebsd.org/changeset/base/356488 Log: o Spell "Redundancy" and "Remember" correctly. PR: 243187 Submitted by: mikael.urankar@gmail.com (partially) Modified: head/usr.sbin/bsdinstall/bsdinstall.8 Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 8 11:30:42 2020 (r356487) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 8 14:01:15 2020 (r356488) @@ -336,8 +336,8 @@ Default: The type of pool to be created for the base system. This variable can take one of this values: stripe (No redundacy), mirror (n-Way mirroring), raid10 (RAID 1+0 - n x 2-Way Mirrors), -raidz1 (RAID-Z1 - Single Redundacy RAID), raidz2 (RAID-Z2 - Double Redundacy RAID) -or raidz3 (RAID-Z3 Triple Redundacy RAID). +raidz1 (RAID-Z1 - Single Redundancy RAID), raidz2 (RAID-Z2 - Double Redundancy RAID) +or raidz3 (RAID-Z3 Triple Redundancy RAID). Default: .Dq stripe .It Ev ZFSBOOT_FORCE_4K_SECTORS @@ -505,7 +505,7 @@ ZFSBOOT_DISKS="ada0 ada1" ZFSBOOT_VDEV_TYPE=mirror .Ed .Pp -Remenber to export all the variables for the +Remember to export all the variables for the .Cm zfsboot command, otherwise it will not get set. .Ss SETUP SCRIPT From owner-svn-src-all@freebsd.org Wed Jan 8 15:41:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 792841F2866; Wed, 8 Jan 2020 15:41:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tD412dhPz3Dsj; Wed, 8 Jan 2020 15:41:05 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 55AB41A2F3; Wed, 8 Jan 2020 15:41:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Ff5Sb008707; Wed, 8 Jan 2020 15:41:05 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Ff460008705; Wed, 8 Jan 2020 15:41:05 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081541.008Ff460008705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 15:41:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356489 - in stable/12/sys: netinet netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/sys: netinet netinet6 X-SVN-Commit-Revision: 356489 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 15:41:05 -0000 Author: bz Date: Wed Jan 8 15:41:04 2020 New Revision: 356489 URL: https://svnweb.freebsd.org/changeset/base/356489 Log: MFC r353635 (by hselasky): Fix panic in network stack due to use after free when receiving partial fragmented packets before a network interface is detached. When sending IPv4 or IPv6 fragmented packets and a fragment is lost before the network device is freed, the mbuf making up the fragment will remain in the temporary hashed fragment list and cause a panic when it times out due to accessing a freed network interface structure. 1) Make sure the m_pkthdr.rcvif always points to a valid network interface. Else the rcvif field should be set to NULL. 2) Use the rcvif of the last received fragment as m_pkthdr.rcvif for the fully defragged packet, instead of the first received fragment. Modified: stable/12/sys/netinet/ip_reass.c stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_reass.c ============================================================================== --- stable/12/sys/netinet/ip_reass.c Wed Jan 8 14:01:15 2020 (r356488) +++ stable/12/sys/netinet/ip_reass.c Wed Jan 8 15:41:04 2020 (r356489) @@ -46,7 +46,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include +#include #include #include #include @@ -180,6 +183,7 @@ ip_reass(struct mbuf *m) struct ip *ip; struct mbuf *p, *q, *nq, *t; struct ipq *fp; + struct ifnet *srcifp; struct ipqhead *head; int i, hlen, next, tmpmax; u_int8_t ecn, ecn0; @@ -240,6 +244,11 @@ ip_reass(struct mbuf *m) } /* + * Store receive network interface pointer for later. + */ + srcifp = m->m_pkthdr.rcvif; + + /* * Attempt reassembly; if it succeeds, proceed. * ip_reass() will return a different mbuf. */ @@ -489,8 +498,11 @@ ip_reass(struct mbuf *m) m->m_len += (ip->ip_hl << 2); m->m_data -= (ip->ip_hl << 2); /* some debugging cruft by sklower, below, will go away soon */ - if (m->m_flags & M_PKTHDR) /* XXX this should be done elsewhere */ + if (m->m_flags & M_PKTHDR) { /* XXX this should be done elsewhere */ m_fixhdr(m); + /* set valid receive interface pointer */ + m->m_pkthdr.rcvif = srcifp; + } IPSTAT_INC(ips_reassembled); IPQ_UNLOCK(hash); @@ -606,6 +618,43 @@ ipreass_drain(void) } } +/* + * Drain off all datagram fragments belonging to + * the given network interface. + */ +static void +ipreass_cleanup(void *arg __unused, struct ifnet *ifp) +{ + struct ipq *fp, *temp; + struct mbuf *m; + int i; + + KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + + /* + * Skip processing if IPv4 reassembly is not initialised or + * torn down by ipreass_destroy(). + */ + if (V_ipq_zone == NULL) + return; + + CURVNET_SET_QUIET(ifp->if_vnet); + for (i = 0; i < IPREASS_NHASH; i++) { + IPQ_LOCK(i); + /* Scan fragment list. */ + TAILQ_FOREACH_SAFE(fp, &V_ipq[i].head, ipq_list, temp) { + for (m = fp->ipq_frags; m != NULL; m = m->m_nextpkt) { + /* clear no longer valid rcvif pointer */ + if (m->m_pkthdr.rcvif == ifp) + m->m_pkthdr.rcvif = NULL; + } + } + IPQ_UNLOCK(i); + } + CURVNET_RESTORE(); +} +EVENTHANDLER_DEFINE(ifnet_departure_event, ipreass_cleanup, NULL, 0); + #ifdef VIMAGE /* * Destroy IP reassembly structures. @@ -616,6 +665,7 @@ ipreass_destroy(void) ipreass_drain(); uma_zdestroy(V_ipq_zone); + V_ipq_zone = NULL; for (int i = 0; i < IPREASS_NHASH; i++) mtx_destroy(&V_ipq[i].lock); } Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 14:01:15 2020 (r356488) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 15:41:04 2020 (r356489) @@ -234,7 +234,7 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) * Return ICMP time exceeded error for the 1st fragment. * Just free other fragments. */ - if (af6->ip6af_off == 0) { + if (af6->ip6af_off == 0 && m->m_pkthdr.rcvif != NULL) { /* Adjust pointer. */ ip6 = mtod(m, struct ip6_hdr *); @@ -260,6 +260,43 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) } /* + * Drain off all datagram fragments belonging to + * the given network interface. + */ +static void +frag6_cleanup(void *arg __unused, struct ifnet *ifp) +{ + struct ip6q *q6, *q6n, *head; + struct ip6asfrag *af6; + struct mbuf *m; + int i; + + KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + + CURVNET_SET_QUIET(ifp->if_vnet); + for (i = 0; i < IP6REASS_NHASH; i++) { + IP6QB_LOCK(i); + head = IP6QB_HEAD(i); + /* Scan fragment list. */ + for (q6 = head->ip6q_next; q6 != head; q6 = q6n) { + q6n = q6->ip6q_next; + + for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; + af6 = af6->ip6af_down) { + m = IP6_REASS_MBUF(af6); + + /* clear no longer valid rcvif pointer */ + if (m->m_pkthdr.rcvif == ifp) + m->m_pkthdr.rcvif = NULL; + } + } + IP6QB_UNLOCK(i); + } + CURVNET_RESTORE(); +} +EVENTHANDLER_DEFINE(ifnet_departure_event, frag6_cleanup, NULL, 0); + +/* * Like in RFC2460, in RFC8200, fragment and reassembly rules do not agree with * each other, in terms of next header field handling in fragment header. * While the sender will use the same value for all of the fragmented packets, @@ -295,6 +332,7 @@ int frag6_input(struct mbuf **mp, int *offp, int proto) { struct ifnet *dstifp; + struct ifnet *srcifp; struct in6_ifaddr *ia6; struct ip6_hdr *ip6; struct ip6_frag *ip6f; @@ -326,6 +364,11 @@ frag6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); #endif + /* + * Store receive network interface pointer for later. + */ + srcifp = m->m_pkthdr.rcvif; + dstifp = NULL; /* Find the destination interface of the packet. */ ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */); @@ -523,6 +566,9 @@ frag6_input(struct mbuf **mp, int *offp, int proto) frag6_deq(af6, bucket); free(af6, M_FRAG6); + /* Set a valid receive interface pointer. */ + merr->m_pkthdr.rcvif = srcifp; + /* Adjust pointer. */ ip6err = mtod(merr, struct ip6_hdr *); @@ -709,6 +755,8 @@ insert: for (t = m; t; t = t->m_next) plen += t->m_len; m->m_pkthdr.len = plen; + /* Set a valid receive interface pointer. */ + m->m_pkthdr.rcvif = srcifp; } #ifdef RSS From owner-svn-src-all@freebsd.org Wed Jan 8 15:50:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B84E1F2C8C; Wed, 8 Jan 2020 15:50:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tDHB0KrLz3FMs; Wed, 8 Jan 2020 15:50:46 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 06B601A49D; Wed, 8 Jan 2020 15:50:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Foj33013201; Wed, 8 Jan 2020 15:50:45 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Foj4e013200; Wed, 8 Jan 2020 15:50:45 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081550.008Foj4e013200@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 15:50:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356490 - stable/12/sys/netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet6 X-SVN-Commit-Revision: 356490 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 15:50:46 -0000 Author: bz Date: Wed Jan 8 15:50:45 2020 New Revision: 356490 URL: https://svnweb.freebsd.org/changeset/base/356490 Log: MFC r344301 (by thj): When dropping a fragment queue, account for the number of fragments in the queue. This improves accounting between the number of fragments received and the number of fragments dropped. Modified: stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 15:41:04 2020 (r356489) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 15:50:45 2020 (r356490) @@ -672,7 +672,7 @@ insert: af6 = af6->ip6af_down) { if (af6->ip6af_off != plen) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { - IP6STAT_INC(ip6s_fragdropped); + IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); @@ -682,7 +682,7 @@ insert: } if (af6->ip6af_up->ip6af_mff) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { - IP6STAT_INC(ip6s_fragdropped); + IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); @@ -826,7 +826,8 @@ frag6_slowtimo(void) --q6->ip6q_ttl; q6 = q6->ip6q_next; if (q6->ip6q_prev->ip6q_ttl == 0) { - IP6STAT_INC(ip6s_fragtimeout); + IP6STAT_ADD(ip6s_fragtimeout, + q6->ip6q_prev->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ frag6_freef(q6->ip6q_prev, bucket); } @@ -844,7 +845,8 @@ frag6_slowtimo(void) (V_ip6_maxfragpackets > 0 && V_ip6qb[bucket].count > V_ip6_maxfragbucketsize)) && head->ip6q_prev != head) { - IP6STAT_INC(ip6s_fragoverflow); + IP6STAT_ADD(ip6s_fragoverflow, + q6->ip6q_prev->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ frag6_freef(head->ip6q_prev, bucket); } @@ -861,7 +863,8 @@ frag6_slowtimo(void) IP6QB_LOCK(bucket); head = IP6QB_HEAD(bucket); if (head->ip6q_prev != head) { - IP6STAT_INC(ip6s_fragoverflow); + IP6STAT_ADD(ip6s_fragoverflow, + q6->ip6q_prev->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ frag6_freef(head->ip6q_prev, bucket); } From owner-svn-src-all@freebsd.org Wed Jan 8 16:14:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1AB921F3526; Wed, 8 Jan 2020 16:14:23 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tDpR0dD9z3Gv8; Wed, 8 Jan 2020 16:14:23 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB2AD1A9F1; Wed, 8 Jan 2020 16:14:22 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008GEMlh031097; Wed, 8 Jan 2020 16:14:22 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008GELrv031088; Wed, 8 Jan 2020 16:14:21 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081614.008GELrv031088@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 16:14:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356491 - in stable/12: etc/mtree sys/netinet6 tests/sys tests/sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: etc/mtree sys/netinet6 tests/sys tests/sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Commit-Revision: 356491 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 16:14:23 -0000 Author: bz Date: Wed Jan 8 16:14:20 2020 New Revision: 356491 URL: https://svnweb.freebsd.org/changeset/base/356491 Log: MFC r350748,353792-353794,353963,353965-353966,354016-354017, 354019-354020,354037,354040,354042,354045-354046,354053,354081, 354084: 2nd half of the major frag6 rework and adding test cases. Cleanup structures, fix vnet teardown leak, add sysctls, whitespace cahnges, replace KAME hand-rolled queues with queue(9) TAILQs, comments, small improvements, do not leak packet queue entry in error case, fix counter leak in error case and optimise code, handling of overlapping fragments to conform to RFC 8200, prevent overwriting initial fragoff=0 packet meta-data. Submitted by: jtl (initally, partially) Sponsored by: Netflix (initially) Added: stable/12/tests/sys/netinet6/ - copied from r353794, head/tests/sys/netinet6/ stable/12/tests/sys/netinet6/frag6/frag6_20.py - copied unchanged from r354053, head/tests/sys/netinet6/frag6/frag6_20.py stable/12/tests/sys/netinet6/frag6/frag6_20.sh - copied unchanged from r354053, head/tests/sys/netinet6/frag6/frag6_20.sh Modified: stable/12/etc/mtree/BSD.tests.dist stable/12/sys/netinet6/frag6.c stable/12/sys/netinet6/ip6_input.c stable/12/sys/netinet6/ip6_var.h stable/12/tests/sys/Makefile stable/12/tests/sys/netinet6/frag6/Makefile stable/12/tests/sys/netinet6/frag6/frag6_01.sh stable/12/tests/sys/netinet6/frag6/frag6_02.sh stable/12/tests/sys/netinet6/frag6/frag6_03.py stable/12/tests/sys/netinet6/frag6/frag6_03.sh stable/12/tests/sys/netinet6/frag6/frag6_04.sh stable/12/tests/sys/netinet6/frag6/frag6_05.py stable/12/tests/sys/netinet6/frag6/frag6_05.sh stable/12/tests/sys/netinet6/frag6/frag6_06.sh stable/12/tests/sys/netinet6/frag6/frag6_07.py stable/12/tests/sys/netinet6/frag6/frag6_07.sh stable/12/tests/sys/netinet6/frag6/frag6_08.py stable/12/tests/sys/netinet6/frag6/frag6_08.sh stable/12/tests/sys/netinet6/frag6/frag6_09.sh stable/12/tests/sys/netinet6/frag6/frag6_10.py stable/12/tests/sys/netinet6/frag6/frag6_10.sh stable/12/tests/sys/netinet6/frag6/frag6_11.sh stable/12/tests/sys/netinet6/frag6/frag6_12.sh stable/12/tests/sys/netinet6/frag6/frag6_13.py stable/12/tests/sys/netinet6/frag6/frag6_13.sh stable/12/tests/sys/netinet6/frag6/frag6_14.py stable/12/tests/sys/netinet6/frag6/frag6_14.sh stable/12/tests/sys/netinet6/frag6/frag6_15.sh stable/12/tests/sys/netinet6/frag6/frag6_16.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/etc/mtree/BSD.tests.dist ============================================================================== --- stable/12/etc/mtree/BSD.tests.dist Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/etc/mtree/BSD.tests.dist Wed Jan 8 16:14:20 2020 (r356491) @@ -784,6 +784,10 @@ .. netinet .. + netinet6 + frag6 + .. + .. netipsec tunnel .. Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 16:14:20 2020 (r356491) @@ -3,6 +3,7 @@ * * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * All rights reserved. + * Copyright (c) 2019 Netflix, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -45,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -67,28 +69,52 @@ __FBSDID("$FreeBSD$"); #include #endif +/* + * A "big picture" of how IPv6 fragment queues are all linked together. + * + * struct ip6qbucket ip6qb[...]; hashed buckets + * |||||||| + * | + * +--- TAILQ(struct ip6q, packets) *q6; tailq entries holding + * |||||||| fragmented packets + * | (1 per original packet) + * | + * +--- TAILQ(struct ip6asfrag, ip6q_frags) *af6; tailq entries of IPv6 + * | *ip6af;fragment packets + * | for one original packet + * + *mbuf + */ + /* Reassembly headers are stored in hash buckets. */ #define IP6REASS_NHASH_LOG2 10 #define IP6REASS_NHASH (1 << IP6REASS_NHASH_LOG2) #define IP6REASS_HMASK (IP6REASS_NHASH - 1) -static void frag6_enq(struct ip6asfrag *, struct ip6asfrag *, - uint32_t bucket __unused); -static void frag6_deq(struct ip6asfrag *, uint32_t bucket __unused); -static void frag6_insque_head(struct ip6q *, struct ip6q *, - uint32_t bucket); -static void frag6_remque(struct ip6q *, uint32_t bucket); -static void frag6_freef(struct ip6q *, uint32_t bucket); - +TAILQ_HEAD(ip6qhead, ip6q); struct ip6qbucket { - struct ip6q ip6q; + struct ip6qhead packets; struct mtx lock; int count; }; +struct ip6asfrag { + TAILQ_ENTRY(ip6asfrag) ip6af_tq; + struct mbuf *ip6af_m; + int ip6af_offset; /* Offset in ip6af_m to next header. */ + int ip6af_frglen; /* Fragmentable part length. */ + int ip6af_off; /* Fragment offset. */ + bool ip6af_mff; /* More fragment bit in frag off. */ +}; + static MALLOC_DEFINE(M_FRAG6, "frag6", "IPv6 fragment reassembly header"); -/* System wide (global) maximum and count of packets in reassembly queues. */ +#ifdef VIMAGE +/* A flag to indicate if IPv6 fragmentation is initialized. */ +VNET_DEFINE_STATIC(bool, frag6_on); +#define V_frag6_on VNET(frag6_on) +#endif + +/* System wide (global) maximum and count of packets in reassembly queues. */ static int ip6_maxfrags; static volatile u_int frag6_nfrags = 0; @@ -114,7 +140,7 @@ VNET_DEFINE_STATIC(uint32_t, ip6qb_hashseed); #define IP6QB_TRYLOCK(_b) mtx_trylock(&V_ip6qb[(_b)].lock) #define IP6QB_LOCK_ASSERT(_b) mtx_assert(&V_ip6qb[(_b)].lock, MA_OWNED) #define IP6QB_UNLOCK(_b) mtx_unlock(&V_ip6qb[(_b)].lock) -#define IP6QB_HEAD(_b) (&V_ip6qb[(_b)].ip6q) +#define IP6QB_HEAD(_b) (&V_ip6qb[(_b)].packets) /* * By default, limit the number of IP6 fragments across all reassembly @@ -138,6 +164,10 @@ VNET_DEFINE_STATIC(uint32_t, ip6qb_hashseed); */ SYSCTL_DECL(_net_inet6_ip6); +SYSCTL_UINT(_net_inet6_ip6, OID_AUTO, frag6_nfrags, + CTLFLAG_RD, __DEVOLATILE(u_int *, &frag6_nfrags), 0, + "Global number of IPv6 fragments across all reassembly queues."); + static void frag6_set_bucketsize(void) { @@ -172,6 +202,10 @@ SYSCTL_PROC(_net_inet6_ip6, IPV6CTL_MAXFRAGPACKETS, ma "Default maximum number of outstanding fragmented IPv6 packets. " "A value of 0 means no fragmented packets will be accepted, while a " "a value of -1 means no limit"); +SYSCTL_UINT(_net_inet6_ip6, OID_AUTO, frag6_nfragpackets, + CTLFLAG_VNET | CTLFLAG_RD, + __DEVOLATILE(u_int *, &VNET_NAME(frag6_nfragpackets)), 0, + "Per-VNET number of IPv6 fragments across all reassembly queues."); SYSCTL_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGSPERPACKET, maxfragsperpacket, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_maxfragsperpacket), 0, "Maximum allowed number of fragments per packet"); @@ -193,7 +227,7 @@ ip6_deletefraghdr(struct mbuf *m, int offset, int wait if (m->m_len >= offset + sizeof(struct ip6_frag)) { /* This is the only possible case with !PULLDOWN_TEST. */ - ip6 = mtod(m, struct ip6_hdr *); + ip6 = mtod(m, struct ip6_hdr *); bcopy(ip6, (char *)ip6 + sizeof(struct ip6_frag), offset); m->m_data += sizeof(struct ip6_frag); @@ -218,17 +252,15 @@ static void frag6_freef(struct ip6q *q6, uint32_t bucket) { struct ip6_hdr *ip6; - struct ip6asfrag *af6, *down6; + struct ip6asfrag *af6; struct mbuf *m; IP6QB_LOCK_ASSERT(bucket); - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = down6) { + while ((af6 = TAILQ_FIRST(&q6->ip6q_frags)) != NULL) { - m = IP6_REASS_MBUF(af6); - down6 = af6->ip6af_down; - frag6_deq(af6, bucket); + m = af6->ip6af_m; + TAILQ_REMOVE(&q6->ip6q_frags, af6, ip6af_tq); /* * Return ICMP time exceeded error for the 1st fragment. @@ -250,7 +282,9 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) free(af6, M_FRAG6); } - frag6_remque(q6, bucket); + + TAILQ_REMOVE(IP6QB_HEAD(bucket), q6, ip6q_tq); + V_ip6qb[bucket].count--; atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); #ifdef MAC mac_ip6q_destroy(q6); @@ -266,31 +300,36 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) static void frag6_cleanup(void *arg __unused, struct ifnet *ifp) { - struct ip6q *q6, *q6n, *head; + struct ip6qhead *head; + struct ip6q *q6; struct ip6asfrag *af6; - struct mbuf *m; - int i; + uint32_t bucket; KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); +#ifdef VIMAGE + /* + * Skip processing if IPv6 reassembly is not initialised or + * torn down by frag6_destroy(). + */ + if (!V_frag6_on) + return; +#endif + CURVNET_SET_QUIET(ifp->if_vnet); - for (i = 0; i < IP6REASS_NHASH; i++) { - IP6QB_LOCK(i); - head = IP6QB_HEAD(i); + for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { + IP6QB_LOCK(bucket); + head = IP6QB_HEAD(bucket); /* Scan fragment list. */ - for (q6 = head->ip6q_next; q6 != head; q6 = q6n) { - q6n = q6->ip6q_next; + TAILQ_FOREACH(q6, head, ip6q_tq) { + TAILQ_FOREACH(af6, &q6->ip6q_frags, ip6af_tq) { - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6->ip6af_down) { - m = IP6_REASS_MBUF(af6); - - /* clear no longer valid rcvif pointer */ - if (m->m_pkthdr.rcvif == ifp) - m->m_pkthdr.rcvif = NULL; + /* Clear no longer valid rcvif pointer. */ + if (af6->ip6af_m->m_pkthdr.rcvif == ifp) + af6->ip6af_m->m_pkthdr.rcvif = NULL; } } - IP6QB_UNLOCK(i); + IP6QB_UNLOCK(bucket); } CURVNET_RESTORE(); } @@ -331,14 +370,14 @@ EVENTHANDLER_DEFINE(ifnet_departure_event, frag6_clean int frag6_input(struct mbuf **mp, int *offp, int proto) { - struct ifnet *dstifp; - struct ifnet *srcifp; - struct in6_ifaddr *ia6; + struct mbuf *m, *t; struct ip6_hdr *ip6; struct ip6_frag *ip6f; - struct ip6q *head, *q6; - struct ip6asfrag *af6, *af6dwn, *ip6af; - struct mbuf *m, *t; + struct ip6qhead *head; + struct ip6q *q6; + struct ip6asfrag *af6, *ip6af, *af6tmp; + struct in6_ifaddr *ia6; + struct ifnet *dstifp, *srcifp; uint32_t hashkey[(sizeof(struct in6_addr) * 2 + sizeof(ip6f->ip6f_ident)) / sizeof(uint32_t)]; uint32_t bucket, *hashkeyp; @@ -364,11 +403,6 @@ frag6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); #endif - /* - * Store receive network interface pointer for later. - */ - srcifp = m->m_pkthdr.rcvif; - dstifp = NULL; /* Find the destination interface of the packet. */ ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */); @@ -429,6 +463,31 @@ frag6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); } + /* + * Enforce upper bound on number of fragments for the entire system. + * If maxfrag is 0, never accept fragments. + * If maxfrag is -1, accept all fragments without limitation. + */ + if (ip6_maxfrags < 0) + ; + else if (atomic_load_int(&frag6_nfrags) >= (u_int)ip6_maxfrags) + goto dropfrag2; + + /* + * Validate that a full header chain to the ULP is present in the + * packet containing the first fragment as per RFC RFC7112 and + * RFC 8200 pages 18,19: + * The first fragment packet is composed of: + * (3) Extension headers, if any, and the Upper-Layer header. These + * headers must be in the first fragment. ... + */ + fragoff = ntohs(ip6f->ip6f_offlg & IP6F_OFF_MASK); + /* XXX TODO. thj has D16851 open for this. */ + /* Send ICMPv6 4,3 in case of violation. */ + + /* Store receive network interface pointer for later. */ + srcifp = m->m_pkthdr.rcvif; + /* Generate a hash value for fragment bucket selection. */ hashkeyp = hashkey; memcpy(hashkeyp, &ip6->ip6_src, sizeof(struct in6_addr)); @@ -438,20 +497,10 @@ frag6_input(struct mbuf **mp, int *offp, int proto) *hashkeyp = ip6f->ip6f_ident; bucket = jenkins_hash32(hashkey, nitems(hashkey), V_ip6qb_hashseed); bucket &= IP6REASS_HMASK; - head = IP6QB_HEAD(bucket); IP6QB_LOCK(bucket); + head = IP6QB_HEAD(bucket); - /* - * Enforce upper bound on number of fragments for the entire system. - * If maxfrag is 0, never accept fragments. - * If maxfrag is -1, accept all fragments without limitation. - */ - if (ip6_maxfrags < 0) - ; - else if (atomic_load_int(&frag6_nfrags) >= (u_int)ip6_maxfrags) - goto dropfrag; - - for (q6 = head->ip6q_next; q6 != head; q6 = q6->ip6q_next) + TAILQ_FOREACH(q6, head, ip6q_tq) if (ip6f->ip6f_ident == q6->ip6q_ident && IN6_ARE_ADDR_EQUAL(&ip6->ip6_src, &q6->ip6q_src) && IN6_ARE_ADDR_EQUAL(&ip6->ip6_dst, &q6->ip6q_dst) @@ -462,7 +511,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) break; only_frag = false; - if (q6 == head) { + if (q6 == NULL) { /* A first fragment to arrive creates a reassembly queue. */ only_frag = true; @@ -480,7 +529,6 @@ frag6_input(struct mbuf **mp, int *offp, int proto) atomic_load_int(&V_frag6_nfragpackets) >= (u_int)V_ip6_maxfragpackets) goto dropfrag; - atomic_add_int(&V_frag6_nfragpackets, 1); /* Allocate IPv6 fragement packet queue entry. */ q6 = (struct ip6q *)malloc(sizeof(struct ip6q), M_FRAG6, @@ -494,13 +542,10 @@ frag6_input(struct mbuf **mp, int *offp, int proto) } mac_ip6q_create(m, q6); #endif - frag6_insque_head(q6, head, bucket); + atomic_add_int(&V_frag6_nfragpackets, 1); /* ip6q_nxt will be filled afterwards, from 1st fragment. */ - q6->ip6q_down = q6->ip6q_up = (struct ip6asfrag *)q6; -#ifdef notyet - q6->ip6q_nxtp = (u_char *)nxtp; -#endif + TAILQ_INIT(&q6->ip6q_frags); q6->ip6q_ident = ip6f->ip6f_ident; q6->ip6q_ttl = IPV6_FRAGTTL; q6->ip6q_src = ip6->ip6_src; @@ -509,18 +554,24 @@ frag6_input(struct mbuf **mp, int *offp, int proto) (ntohl(ip6->ip6_flow) >> 20) & IPTOS_ECN_MASK; q6->ip6q_unfrglen = -1; /* The 1st fragment has not arrived. */ - q6->ip6q_nfrag = 0; + /* Add the fragemented packet to the bucket. */ + TAILQ_INSERT_HEAD(head, q6, ip6q_tq); + V_ip6qb[bucket].count++; } /* * If it is the 1st fragment, record the length of the * unfragmentable part and the next header of the fragment header. + * Assume the first 1st fragement to arrive will be correct. + * We do not have any duplicate checks here yet so another packet + * with fragoff == 0 could come and overwrite the ip6q_unfrglen + * and worse, the next header, at any time. */ - fragoff = ntohs(ip6f->ip6f_offlg & IP6F_OFF_MASK); - if (fragoff == 0) { + if (fragoff == 0 && q6->ip6q_unfrglen == -1) { q6->ip6q_unfrglen = offset - sizeof(struct ip6_hdr) - sizeof(struct ip6_frag); q6->ip6q_nxt = ip6f->ip6f_nxt; + /* XXX ECN? */ } /* @@ -531,44 +582,63 @@ frag6_input(struct mbuf **mp, int *offp, int proto) if (q6->ip6q_unfrglen >= 0) { /* The 1st fragment has already arrived. */ if (q6->ip6q_unfrglen + fragoff + frgpartlen > IPV6_MAXPACKET) { + if (only_frag) { + TAILQ_REMOVE(head, q6, ip6q_tq); + V_ip6qb[bucket].count--; + atomic_subtract_int(&V_frag6_nfragpackets, 1); +#ifdef MAC + mac_ip6q_destroy(q6); +#endif + free(q6, M_FRAG6); + } + IP6QB_UNLOCK(bucket); icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); - IP6QB_UNLOCK(bucket); return (IPPROTO_DONE); } } else if (fragoff + frgpartlen > IPV6_MAXPACKET) { + if (only_frag) { + TAILQ_REMOVE(head, q6, ip6q_tq); + V_ip6qb[bucket].count--; + atomic_subtract_int(&V_frag6_nfragpackets, 1); +#ifdef MAC + mac_ip6q_destroy(q6); +#endif + free(q6, M_FRAG6); + } + IP6QB_UNLOCK(bucket); icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); - IP6QB_UNLOCK(bucket); return (IPPROTO_DONE); } + /* * If it is the first fragment, do the above check for each * fragment already stored in the reassembly queue. */ - if (fragoff == 0) { - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6dwn) { - af6dwn = af6->ip6af_down; + if (fragoff == 0 && !only_frag) { + TAILQ_FOREACH_SAFE(af6, &q6->ip6q_frags, ip6af_tq, af6tmp) { - if (q6->ip6q_unfrglen + af6->ip6af_off + af6->ip6af_frglen > - IPV6_MAXPACKET) { + if (q6->ip6q_unfrglen + af6->ip6af_off + + af6->ip6af_frglen > IPV6_MAXPACKET) { struct ip6_hdr *ip6err; struct mbuf *merr; int erroff; - merr = IP6_REASS_MBUF(af6); + merr = af6->ip6af_m; erroff = af6->ip6af_offset; /* Dequeue the fragment. */ - frag6_deq(af6, bucket); + TAILQ_REMOVE(&q6->ip6q_frags, af6, ip6af_tq); + q6->ip6q_nfrag--; + atomic_subtract_int(&frag6_nfrags, 1); free(af6, M_FRAG6); /* Set a valid receive interface pointer. */ merr->m_pkthdr.rcvif = srcifp; - + /* Adjust pointer. */ ip6err = mtod(merr, struct ip6_hdr *); @@ -592,15 +662,19 @@ frag6_input(struct mbuf **mp, int *offp, int proto) M_NOWAIT | M_ZERO); if (ip6af == NULL) goto dropfrag; - ip6af->ip6af_mff = ip6f->ip6f_offlg & IP6F_MORE_FRAG; + ip6af->ip6af_mff = (ip6f->ip6f_offlg & IP6F_MORE_FRAG) ? true : false; ip6af->ip6af_off = fragoff; ip6af->ip6af_frglen = frgpartlen; ip6af->ip6af_offset = offset; - IP6_REASS_MBUF(ip6af) = m; + ip6af->ip6af_m = m; if (only_frag) { - af6 = (struct ip6asfrag *)q6; - goto insert; + /* + * Do a manual insert rather than a hard-to-understand cast + * to a different type relying on data structure order to work. + */ + TAILQ_INSERT_HEAD(&q6->ip6q_frags, ip6af, ip6af_tq); + goto postinsert; } /* Do duplicate, condition, and boundry checks. */ @@ -625,8 +699,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) } /* Find a fragmented part which begins after this one does. */ - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6->ip6af_down) + TAILQ_FOREACH(af6, &q6->ip6q_frags, ip6af_tq) if (af6->ip6af_off > ip6af->ip6af_off) break; @@ -638,25 +711,33 @@ frag6_input(struct mbuf **mp, int *offp, int proto) * drop the existing fragment and leave the fragmentation queue * unchanged, as allowed by the RFC. (RFC 8200, 4.5) */ - if (af6->ip6af_up != (struct ip6asfrag *)q6) { - if (af6->ip6af_up->ip6af_off + af6->ip6af_up->ip6af_frglen - + if (af6 != NULL) + af6tmp = TAILQ_PREV(af6, ip6fraghead, ip6af_tq); + else + af6tmp = TAILQ_LAST(&q6->ip6q_frags, ip6fraghead); + if (af6tmp != NULL) { + if (af6tmp->ip6af_off + af6tmp->ip6af_frglen - ip6af->ip6af_off > 0) { + if (af6tmp->ip6af_off != ip6af->ip6af_off || + af6tmp->ip6af_frglen != ip6af->ip6af_frglen) + frag6_freef(q6, bucket); free(ip6af, M_FRAG6); goto dropfrag; } } - if (af6 != (struct ip6asfrag *)q6) { + if (af6 != NULL) { if (ip6af->ip6af_off + ip6af->ip6af_frglen - af6->ip6af_off > 0) { + if (af6->ip6af_off != ip6af->ip6af_off || + af6->ip6af_frglen != ip6af->ip6af_frglen) + frag6_freef(q6, bucket); free(ip6af, M_FRAG6); goto dropfrag; } } -insert: #ifdef MAC - if (!only_frag) - mac_ip6q_update(m, q6); + mac_ip6q_update(m, q6); #endif /* @@ -664,12 +745,16 @@ insert: * If not complete, check fragment limit. Move to front of packet * queue, as we are the most recently active fragmented packet. */ - frag6_enq(ip6af, af6->ip6af_up, bucket); + if (af6 != NULL) + TAILQ_INSERT_BEFORE(af6, ip6af, ip6af_tq); + else + TAILQ_INSERT_TAIL(&q6->ip6q_frags, ip6af, ip6af_tq); +postinsert: atomic_add_int(&frag6_nfrags, 1); q6->ip6q_nfrag++; + plen = 0; - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6->ip6af_down) { + TAILQ_FOREACH(af6, &q6->ip6q_frags, ip6af_tq) { if (af6->ip6af_off != plen) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); @@ -680,7 +765,8 @@ insert: } plen += af6->ip6af_frglen; } - if (af6->ip6af_up->ip6af_mff) { + af6 = TAILQ_LAST(&q6->ip6q_frags, ip6fraghead); + if (af6->ip6af_mff) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); frag6_freef(q6, bucket); @@ -690,25 +776,21 @@ insert: } /* Reassembly is complete; concatenate fragments. */ - ip6af = q6->ip6q_down; - t = m = IP6_REASS_MBUF(ip6af); - af6 = ip6af->ip6af_down; - frag6_deq(ip6af, bucket); - while (af6 != (struct ip6asfrag *)q6) { + ip6af = TAILQ_FIRST(&q6->ip6q_frags); + t = m = ip6af->ip6af_m; + TAILQ_REMOVE(&q6->ip6q_frags, ip6af, ip6af_tq); + while ((af6 = TAILQ_FIRST(&q6->ip6q_frags)) != NULL) { m->m_pkthdr.csum_flags &= - IP6_REASS_MBUF(af6)->m_pkthdr.csum_flags; + af6->ip6af_m->m_pkthdr.csum_flags; m->m_pkthdr.csum_data += - IP6_REASS_MBUF(af6)->m_pkthdr.csum_data; + af6->ip6af_m->m_pkthdr.csum_data; - af6dwn = af6->ip6af_down; - frag6_deq(af6, bucket); - while (t->m_next) - t = t->m_next; - m_adj(IP6_REASS_MBUF(af6), af6->ip6af_offset); - m_demote_pkthdr(IP6_REASS_MBUF(af6)); - m_cat(t, IP6_REASS_MBUF(af6)); + TAILQ_REMOVE(&q6->ip6q_frags, af6, ip6af_tq); + t = m_last(t); + m_adj(af6->ip6af_m, af6->ip6af_offset); + m_demote_pkthdr(af6->ip6af_m); + m_cat(t, af6->ip6af_m); free(af6, M_FRAG6); - af6 = af6dwn; } while (m->m_pkthdr.csum_data & 0xffff0000) @@ -724,9 +806,11 @@ insert: ip6->ip6_flow |= htonl(IPTOS_ECN_CE << 20); nxt = q6->ip6q_nxt; + TAILQ_REMOVE(head, q6, ip6q_tq); + V_ip6qb[bucket].count--; + atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); + if (ip6_deletefraghdr(m, offset, M_NOWAIT) != 0) { - frag6_remque(q6, bucket); - atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); #ifdef MAC mac_ip6q_destroy(q6); #endif @@ -740,8 +824,6 @@ insert: m_copyback(m, ip6_get_prevhdr(m, offset), sizeof(uint8_t), (caddr_t)&nxt); - frag6_remque(q6, bucket); - atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); #ifdef MAC mac_ip6q_reassemble(q6, m); mac_ip6q_destroy(q6); @@ -790,6 +872,7 @@ insert: dropfrag: IP6QB_UNLOCK(bucket); +dropfrag2: in6_ifstat_inc(dstifp, ifs6_reass_fail); IP6STAT_INC(ip6s_fragdropped); m_freem(m); @@ -804,7 +887,8 @@ void frag6_slowtimo(void) { VNET_ITERATOR_DECL(vnet_iter); - struct ip6q *head, *q6; + struct ip6qhead *head; + struct ip6q *q6, *q6tmp; uint32_t bucket; VNET_LIST_RLOCK_NOSLEEP(); @@ -813,25 +897,13 @@ frag6_slowtimo(void) for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { IP6QB_LOCK(bucket); head = IP6QB_HEAD(bucket); - q6 = head->ip6q_next; - if (q6 == NULL) { - /* - * XXXJTL: This should never happen. This - * should turn into an assertion. - */ - IP6QB_UNLOCK(bucket); - continue; - } - while (q6 != head) { - --q6->ip6q_ttl; - q6 = q6->ip6q_next; - if (q6->ip6q_prev->ip6q_ttl == 0) { + TAILQ_FOREACH_SAFE(q6, head, ip6q_tq, q6tmp) + if (--q6->ip6q_ttl == 0) { IP6STAT_ADD(ip6s_fragtimeout, - q6->ip6q_prev->ip6q_nfrag); + q6->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(q6->ip6q_prev, bucket); + frag6_freef(q6, bucket); } - } /* * If we are over the maximum number of fragments * (due to the limit being lowered), drain off @@ -844,11 +916,10 @@ frag6_slowtimo(void) while ((V_ip6_maxfragpackets == 0 || (V_ip6_maxfragpackets > 0 && V_ip6qb[bucket].count > V_ip6_maxfragbucketsize)) && - head->ip6q_prev != head) { - IP6STAT_ADD(ip6s_fragoverflow, - q6->ip6q_prev->ip6q_nfrag); + (q6 = TAILQ_LAST(head, ip6qhead)) != NULL) { + IP6STAT_ADD(ip6s_fragoverflow, q6->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(head->ip6q_prev, bucket); + frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); } @@ -861,12 +932,11 @@ frag6_slowtimo(void) atomic_load_int(&V_frag6_nfragpackets) > (u_int)V_ip6_maxfragpackets) { IP6QB_LOCK(bucket); - head = IP6QB_HEAD(bucket); - if (head->ip6q_prev != head) { - IP6STAT_ADD(ip6s_fragoverflow, - q6->ip6q_prev->ip6q_nfrag); + q6 = TAILQ_LAST(IP6QB_HEAD(bucket), ip6qhead); + if (q6 != NULL) { + IP6STAT_ADD(ip6s_fragoverflow, q6->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(head->ip6q_prev, bucket); + frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); bucket = (bucket + 1) % IP6REASS_NHASH; @@ -901,19 +971,20 @@ frag6_change(void *tag) void frag6_init(void) { - struct ip6q *q6; uint32_t bucket; V_ip6_maxfragpackets = IP6_MAXFRAGPACKETS; frag6_set_bucketsize(); for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { - q6 = IP6QB_HEAD(bucket); - q6->ip6q_next = q6->ip6q_prev = q6; - mtx_init(&V_ip6qb[bucket].lock, "ip6qlock", NULL, MTX_DEF); + TAILQ_INIT(IP6QB_HEAD(bucket)); + mtx_init(&V_ip6qb[bucket].lock, "ip6qb", NULL, MTX_DEF); V_ip6qb[bucket].count = 0; } V_ip6qb_hashseed = arc4random(); V_ip6_maxfragsperpacket = 64; +#ifdef VIMAGE + V_frag6_on = true; +#endif if (!IS_DEFAULT_VNET(curvnet)) return; @@ -925,85 +996,53 @@ frag6_init(void) /* * Drain off all datagram fragments. */ +static void +frag6_drain_one(void) +{ + struct ip6q *q6; + uint32_t bucket; + + for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { + IP6QB_LOCK(bucket); + while ((q6 = TAILQ_FIRST(IP6QB_HEAD(bucket))) != NULL) { + IP6STAT_INC(ip6s_fragdropped); + /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ + frag6_freef(q6, bucket); + } + IP6QB_UNLOCK(bucket); + } +} + void frag6_drain(void) { VNET_ITERATOR_DECL(vnet_iter); - struct ip6q *head; - uint32_t bucket; VNET_LIST_RLOCK_NOSLEEP(); VNET_FOREACH(vnet_iter) { CURVNET_SET(vnet_iter); - for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { - if (IP6QB_TRYLOCK(bucket) == 0) - continue; - head = IP6QB_HEAD(bucket); - while (head->ip6q_next != head) { - IP6STAT_INC(ip6s_fragdropped); - /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(head->ip6q_next, bucket); - } - IP6QB_UNLOCK(bucket); - } + frag6_drain_one(); CURVNET_RESTORE(); } VNET_LIST_RUNLOCK_NOSLEEP(); } +#ifdef VIMAGE /* - * Put an ip fragment on a reassembly chain. - * Like insque, but pointers in middle of structure. + * Clear up IPv6 reassembly structures. */ -static void -frag6_enq(struct ip6asfrag *af6, struct ip6asfrag *up6, - uint32_t bucket __unused) +void +frag6_destroy(void) { + uint32_t bucket; - IP6QB_LOCK_ASSERT(bucket); - - af6->ip6af_up = up6; - af6->ip6af_down = up6->ip6af_down; - up6->ip6af_down->ip6af_up = af6; - up6->ip6af_down = af6; + frag6_drain_one(); + V_frag6_on = false; + for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { + KASSERT(V_ip6qb[bucket].count == 0, + ("%s: V_ip6qb[%d] (%p) count not 0 (%d)", __func__, + bucket, &V_ip6qb[bucket], V_ip6qb[bucket].count)); + mtx_destroy(&V_ip6qb[bucket].lock); + } } - -/* - * To frag6_enq as remque is to insque. - */ -static void -frag6_deq(struct ip6asfrag *af6, uint32_t bucket __unused) -{ - - IP6QB_LOCK_ASSERT(bucket); - - af6->ip6af_up->ip6af_down = af6->ip6af_down; - af6->ip6af_down->ip6af_up = af6->ip6af_up; -} - -static void -frag6_insque_head(struct ip6q *new, struct ip6q *old, uint32_t bucket) -{ - - IP6QB_LOCK_ASSERT(bucket); - KASSERT(IP6QB_HEAD(bucket) == old, - ("%s: attempt to insert at head of wrong bucket" - " (bucket=%u, old=%p)", __func__, bucket, old)); - - new->ip6q_prev = old; - new->ip6q_next = old->ip6q_next; - old->ip6q_next->ip6q_prev= new; - old->ip6q_next = new; - V_ip6qb[bucket].count++; -} - -static void -frag6_remque(struct ip6q *p6, uint32_t bucket) -{ - - IP6QB_LOCK_ASSERT(bucket); - - p6->ip6q_prev->ip6q_next = p6->ip6q_next; - p6->ip6q_next->ip6q_prev = p6->ip6q_prev; - V_ip6qb[bucket].count--; -} +#endif Modified: stable/12/sys/netinet6/ip6_input.c ============================================================================== --- stable/12/sys/netinet6/ip6_input.c Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/sys/netinet6/ip6_input.c Wed Jan 8 16:14:20 2020 (r356491) @@ -394,6 +394,7 @@ ip6_destroy(void *unused __unused) } IFNET_RUNLOCK(); + frag6_destroy(); nd6_destroy(); in6_ifattach_destroy(); Modified: stable/12/sys/netinet6/ip6_var.h ============================================================================== --- stable/12/sys/netinet6/ip6_var.h Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/sys/netinet6/ip6_var.h Wed Jan 8 16:14:20 2020 (r356491) @@ -68,40 +68,28 @@ #include +#ifdef _KERNEL +struct ip6asfrag; /* frag6.c */ +TAILQ_HEAD(ip6fraghead, ip6asfrag); + /* * IP6 reassembly queue structure. Each fragment * being reassembled is attached to one of these structures. */ struct ip6q { - struct ip6asfrag *ip6q_down; - struct ip6asfrag *ip6q_up; + struct ip6fraghead ip6q_frags; u_int32_t ip6q_ident; u_int8_t ip6q_nxt; u_int8_t ip6q_ecn; u_int8_t ip6q_ttl; struct in6_addr ip6q_src, ip6q_dst; - struct ip6q *ip6q_next; - struct ip6q *ip6q_prev; + TAILQ_ENTRY(ip6q) ip6q_tq; int ip6q_unfrglen; /* len of unfragmentable part */ -#ifdef notyet - u_char *ip6q_nxtp; -#endif int ip6q_nfrag; /* # of fragments */ struct label *ip6q_label; }; +#endif /* _KERNEL */ -struct ip6asfrag { - struct ip6asfrag *ip6af_down; - struct ip6asfrag *ip6af_up; - struct mbuf *ip6af_m; - int ip6af_offset; /* offset in ip6af_m to next header */ - int ip6af_frglen; /* fragmentable part length */ - int ip6af_off; /* fragment offset */ - u_int16_t ip6af_mff; /* more fragment bit in frag off */ -}; - -#define IP6_REASS_MBUF(ip6af) (*(struct mbuf **)&((ip6af)->ip6af_m)) - /* * IP6 reinjecting structure. */ @@ -398,6 +386,7 @@ int ip6_fragment(struct ifnet *, struct mbuf *, int, u int route6_input(struct mbuf **, int *, int); void frag6_init(void); +void frag6_destroy(void); int frag6_input(struct mbuf **, int *, int); void frag6_slowtimo(void); void frag6_drain(void); Modified: stable/12/tests/sys/Makefile ============================================================================== --- stable/12/tests/sys/Makefile Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/tests/sys/Makefile Wed Jan 8 16:14:20 2020 (r356491) @@ -19,6 +19,7 @@ TESTS_SUBDIRS+= kqueue TESTS_SUBDIRS+= mac TESTS_SUBDIRS+= mqueue TESTS_SUBDIRS+= netinet +TESTS_SUBDIRS+= netinet6 TESTS_SUBDIRS+= netipsec TESTS_SUBDIRS+= netmap TESTS_SUBDIRS+= netpfil Modified: stable/12/tests/sys/netinet6/frag6/Makefile ============================================================================== --- head/tests/sys/netinet6/frag6/Makefile Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/Makefile Wed Jan 8 16:14:20 2020 (r356491) @@ -27,7 +27,8 @@ ATF_TESTS_SH= \ frag6_16 \ frag6_17 \ frag6_18 \ - frag6_19 + frag6_19 \ + frag6_20 ${PACKAGE}FILES+= frag6.subr ${PACKAGE}FILES+= sniffer.py @@ -50,6 +51,7 @@ ${PACKAGE}FILES+= frag6_16.py ${PACKAGE}FILES+= frag6_17.py ${PACKAGE}FILES+= frag6_18.py ${PACKAGE}FILES+= frag6_19.py +${PACKAGE}FILES+= frag6_20.py ${PACKAGE}FILESMODE_frag6.subr= 0444 ${PACKAGE}FILESMODE_sniffer.py= 0555 @@ -72,5 +74,6 @@ ${PACKAGE}FILESMODE_frag6_16.py= 0555 ${PACKAGE}FILESMODE_frag6_17.py= 0555 ${PACKAGE}FILESMODE_frag6_18.py= 0555 ${PACKAGE}FILESMODE_frag6_19.py= 0555 +${PACKAGE}FILESMODE_frag6_20.py= 0555 .include Modified: stable/12/tests/sys/netinet6/frag6/frag6_01.sh ============================================================================== --- head/tests/sys/netinet6/frag6/frag6_01.sh Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/frag6_01.sh Wed Jan 8 16:14:20 2020 (r356491) @@ -52,6 +52,16 @@ frag6_01_check_stats() { # The Python script has to wait for this already to get the ICMPv6 # hence we do not sleep here anymore. + nf=`jexec ${jname} sysctl -n net.inet6.ip6.frag6_nfragpackets` + case ${nf} in + 0) break ;; + *) atf_fail "VNET frag6_nfragpackets not 0 but: ${nf}" ;; + esac + nf=`sysctl -n net.inet6.ip6.frag6_nfrags` + case ${nf} in + 0) break ;; + *) atf_fail "Global frag6_nfrags not 0 but: ${nf}" ;; + esac # # Check selection of global UDP stats. Modified: stable/12/tests/sys/netinet6/frag6/frag6_02.sh ============================================================================== --- head/tests/sys/netinet6/frag6/frag6_02.sh Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/frag6_02.sh Wed Jan 8 16:14:20 2020 (r356491) @@ -52,6 +52,16 @@ frag6_02_check_stats() { # The Python script has to wait for this already to get the ICMPv6 # hence we do not sleep here anymore. + nf=`jexec ${jname} sysctl -n net.inet6.ip6.frag6_nfragpackets` + case ${nf} in + 0) break ;; + *) atf_fail "VNET frag6_nfragpackets not 0 but: ${nf}" ;; + esac + nf=`sysctl -n net.inet6.ip6.frag6_nfrags` + case ${nf} in + 0) break ;; + *) atf_fail "Global frag6_nfrags not 0 but: ${nf}" ;; + esac # # Check selection of global UDP stats. Modified: stable/12/tests/sys/netinet6/frag6/frag6_03.py ============================================================================== --- head/tests/sys/netinet6/frag6/frag6_03.py Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/frag6_03.py Wed Jan 8 16:14:20 2020 (r356491) @@ -82,20 +82,21 @@ def main(): ######################################################################## # - # (1) Atomic fragment. + # Atomic fragment. # # A: Nothing listening on UDP port. # R: ICMPv6 dst unreach, unreach port. # ip6f01 = sp.Ether() / \ sp.IPv6(src=args.src[0], dst=args.to[0]) / \ - sp.IPv6ExtHdrFragment(offset=0, m=0, id=1) / \ + sp.IPv6ExtHdrFragment(offset=0, m=0, id=3) / \ sp.UDP(dport=3456, sport=6543) if args.debug : ip6f01.display() sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) sleep(0.10) + sniffer.setEnd() sniffer.join() if not sniffer.foundCorrectPacket: sys.exit(1) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jan 8 16:15:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5A191F36C6; Wed, 8 Jan 2020 16:15:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tDr03yZ3z3H8p; Wed, 8 Jan 2020 16:15:44 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 833471A9F2; Wed, 8 Jan 2020 16:15:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008GFiKp031223; Wed, 8 Jan 2020 16:15:44 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008GFigA031221; Wed, 8 Jan 2020 16:15:44 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081615.008GFigA031221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 16:15:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356492 - in stable/12/sys: netinet netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/sys: netinet netinet6 X-SVN-Commit-Revision: 356492 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 16:15:44 -0000 Author: bz Date: Wed Jan 8 16:15:43 2020 New Revision: 356492 URL: https://svnweb.freebsd.org/changeset/base/356492 Log: MFC r354092: Properly set VNET when nuking recvif from fragment queues. In theory the eventhandler invoke should be in the same VNET as the the current interface. We however cannot guarantee that for all cases in the future. So before checking if the fragmentation handling for this VNET is active, switch the VNET to the VNET of the interface to always get the one we want. Modified: stable/12/sys/netinet/ip_reass.c stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_reass.c ============================================================================== --- stable/12/sys/netinet/ip_reass.c Wed Jan 8 16:14:20 2020 (r356491) +++ stable/12/sys/netinet/ip_reass.c Wed Jan 8 16:15:43 2020 (r356492) @@ -631,14 +631,17 @@ ipreass_cleanup(void *arg __unused, struct ifnet *ifp) KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + CURVNET_SET_QUIET(ifp->if_vnet); + /* * Skip processing if IPv4 reassembly is not initialised or * torn down by ipreass_destroy(). */ - if (V_ipq_zone == NULL) + if (V_ipq_zone == NULL) { + CURVNET_RESTORE(); return; + } - CURVNET_SET_QUIET(ifp->if_vnet); for (i = 0; i < IPREASS_NHASH; i++) { IPQ_LOCK(i); /* Scan fragment list. */ Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 16:14:20 2020 (r356491) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 16:15:43 2020 (r356492) @@ -307,16 +307,18 @@ frag6_cleanup(void *arg __unused, struct ifnet *ifp) KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + CURVNET_SET_QUIET(ifp->if_vnet); #ifdef VIMAGE /* * Skip processing if IPv6 reassembly is not initialised or * torn down by frag6_destroy(). */ - if (!V_frag6_on) + if (!V_frag6_on) { + CURVNET_RESTORE(); return; + } #endif - CURVNET_SET_QUIET(ifp->if_vnet); for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { IP6QB_LOCK(bucket); head = IP6QB_HEAD(bucket); From owner-svn-src-all@freebsd.org Wed Jan 8 16:32:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ED7681F3CC1; Wed, 8 Jan 2020 16:32:18 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFC66m3Qz3JDD; Wed, 8 Jan 2020 16:32:18 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA4F11ADA8; Wed, 8 Jan 2020 16:32:18 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008GWIZp043080; Wed, 8 Jan 2020 16:32:18 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008GWHe5043070; Wed, 8 Jan 2020 16:32:17 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081632.008GWHe5043070@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 16:32:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356493 - in stable/12/tests/sys/netinet6: . frag6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/tests/sys/netinet6: . frag6 X-SVN-Commit-Revision: 356493 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 16:32:19 -0000 Author: bz Date: Wed Jan 8 16:32:16 2020 New Revision: 356493 URL: https://svnweb.freebsd.org/changeset/base/356493 Log: MFC r354357-354358,354390,354395: frag6 tests: set end to catch timeout as error ipv6 tests: Add very simplistic extension header tests ipv6 tests: cleanup ipv6 tests: test case for scapy bpf parsing bug PR: 239380 Added: stable/12/tests/sys/netinet6/exthdr.py - copied unchanged from r354358, head/tests/sys/netinet6/exthdr.py stable/12/tests/sys/netinet6/exthdr.sh - copied, changed from r354358, head/tests/sys/netinet6/exthdr.sh stable/12/tests/sys/netinet6/scapyi386.py - copied unchanged from r354395, head/tests/sys/netinet6/scapyi386.py stable/12/tests/sys/netinet6/scapyi386.sh - copied unchanged from r354395, head/tests/sys/netinet6/scapyi386.sh Modified: stable/12/tests/sys/netinet6/Makefile stable/12/tests/sys/netinet6/frag6/frag6.subr stable/12/tests/sys/netinet6/frag6/frag6_02.py stable/12/tests/sys/netinet6/frag6/frag6_04.py Directory Properties: stable/12/ (props changed) Modified: stable/12/tests/sys/netinet6/Makefile ============================================================================== --- stable/12/tests/sys/netinet6/Makefile Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/Makefile Wed Jan 8 16:32:16 2020 (r356493) @@ -1,6 +1,19 @@ # $FreeBSD$ +PACKAGE= tests + TESTSDIR= ${TESTSBASE}/sys/netinet6 +FILESDIR= ${TESTSDIR} + +ATF_TESTS_SH= \ + exthdr \ + scapyi386 + +${PACKAGE}FILES+= exthdr.py +${PACKAGE}FILES+= scapyi386.py + +${PACKAGE}FILESMODE_exthdr.py= 0555 +${PACKAGE}FILESMODE_scapyi386.py=0555 TESTS_SUBDIRS+= frag6 Copied: stable/12/tests/sys/netinet6/exthdr.py (from r354358, head/tests/sys/netinet6/exthdr.py) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tests/sys/netinet6/exthdr.py Wed Jan 8 16:32:16 2020 (r356493, copy of r354358, head/tests/sys/netinet6/exthdr.py) @@ -0,0 +1,273 @@ +#!/usr/bin/env python +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2019 Netflix, Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +import argparse +import scapy.all as sp +import socket +import sys +import frag6.sniffer as Sniffer +from time import sleep + +def check_icmp6_error_dst_unreach_noport(args, packet): + ip6 = packet.getlayer(sp.IPv6) + if not ip6: + return False + oip6 = sp.IPv6(src=args.src[0], dst=args.to[0]) + if ip6.dst != oip6.src: + return False + icmp6 = packet.getlayer(sp.ICMPv6DestUnreach) + if not icmp6: + return False + # ICMP6_DST_UNREACH_NOPORT 4 + if icmp6.code != 4: + return False + # Should we check the payload as well? + # We are running in a very isolated environment and nothing else + # should trigger an ICMPv6 Dest Unreach / Port Unreach so leave it. + #icmp6.display() + return True + +def check_icmp6_error_paramprob_header(args, packet): + ip6 = packet.getlayer(sp.IPv6) + if not ip6: + return False + oip6 = sp.IPv6(src=args.src[0], dst=args.to[0]) + if ip6.dst != oip6.src: + return False + icmp6 = packet.getlayer(sp.ICMPv6ParamProblem) + if not icmp6: + return False + # ICMP6_PARAMPROB_HEADER 0 + if icmp6.code != 0: + return False + # Should we check the payload as well? + # We are running in a very isolated environment and nothing else + # should trigger an ICMPv6 Param Prob so leave it. + #icmp6.display() + return True + +def check_tcp_rst(args, packet): + ip6 = packet.getlayer(sp.IPv6) + if not ip6: + return False + oip6 = sp.IPv6(src=args.src[0], dst=args.to[0]) + if ip6.dst != oip6.src: + return False + tcp = packet.getlayer(sp.TCP) + if not tcp: + return False + # Is TCP RST? + if tcp.flags & 0x04: + #tcp.display() + return True + return False + +def addExt(ext, h): + if h is None: + return ext + if ext is None: + ext = h + else: + ext = ext / h + return ext + +def getExtHdrs(args): + ext = None + + # XXX-TODO Try to put them in an order which could make sense + # in real life packets and according to the RFCs. + if args.hbh: + hbh = sp.IPv6ExtHdrHopByHop(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) + ext = addExt(ext, hbh) + + if args.rh: + rh = sp.IPv6ExtHdrRouting(type = 0) + ext = addExt(ext, rh) + + if args.frag6: + frag6 = sp.IPv6ExtHdrFragment(offset=0, m=0, id=0x1234) + ext = addExt(ext, frag6) + + if args.esp: + # XXX TODO + esp = None + ext = addExt(ext, esp) + + if args.ah: + # XXX TODO + ah = None + ext = addExt(ext, ah) + + if args.dest: + dest = sp.IPv6ExtHdrDestOpt(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) + ext = addExt(ext, dest) + + if args.mobi: + # XXX TODO + mobi = None + ext = addExt(ext, mobi) + + if args.hip: + # XXX TODO + hip = None + ext = addExt(ext, hip) + + if args.shim6: + # XXX TODO + shim6 = None + ext = addExt(ext, shim6) + + if args.proto253: + # XXX TODO + tft = None + ext = addExt(ext, tft) + + if args.proto254: + # XXX TODO + tff = None + ext = addExt(ext, tff) + + if args.hbhbad: + hbhbad = sp.IPv6ExtHdrHopByHop(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) + ext = addExt(ext, hbhbad) + + return ext + +def main(): + parser = argparse.ArgumentParser("exthdr.py", + description="IPv6 extension header test tool") + parser.add_argument('--sendif', nargs=1, + required=True, + help='The interface through which the packet will be sent') + parser.add_argument('--recvif', nargs=1, + required=True, + help='The interface on which to check for the packet') + parser.add_argument('--src', nargs=1, + required=True, + help='The source IP address') + parser.add_argument('--to', nargs=1, + required=True, + help='The destination IP address') + parser.add_argument('--debug', + required=False, action='store_true', + help='Enable test debugging') + # Extension Headers + # See https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml + parser.add_argument('--hbh', + required=False, action='store_true', + help='Add IPv6 Hop-by-Hop Option') + parser.add_argument('--hbhbad', + required=False, action='store_true', + help='Add IPv6 Hop-by-Hop Option at an invalid position') + parser.add_argument('--rh', + required=False, action='store_true', + help='Add Routing Header for IPv6') + parser.add_argument('--frag6', + required=False, action='store_true', + help='Add Fragment Header for IPv6') + parser.add_argument('--esp', + required=False, action='store_true', + help='Add Encapsulating Security Payload') + parser.add_argument('--ah', + required=False, action='store_true', + help='Add Authentication Header') + parser.add_argument('--dest', + required=False, action='store_true', + help='Add Destination Options for IPv6') + parser.add_argument('--mobi', + required=False, action='store_true', + help='Add Mobility Header') + parser.add_argument('--hip', + required=False, action='store_true', + help='Add Host Identity Protocol') + parser.add_argument('--shim6', + required=False, action='store_true', + help='Add Shim6 Protocol') + parser.add_argument('--proto253', + required=False, action='store_true', + help='Use for experimentation and testing (253)') + parser.add_argument('--proto254', + required=False, action='store_true', + help='Use for experimentation and testing (254)') + + args = parser.parse_args() + + if args.hbhbad: + ok = 0 + else: + ok = 1 + + ######################################################################## + # + # Send IPv6 packets with one or more extension headers (combinations + # mmight not always make sense depending what user tells us). + # We are trying to cover the basic loop and passing mbufs on + # and making sure m_pullup() works. + # Try for at least UDP and TCP upper layer payloads. + # + # Expectations: no panics + # We are not testing for any other outcome here. + # + data = "6" * 88 + udp = sp.UDP(dport=3456, sport=6543) / data + tcp = sp.TCP(dport=4567, sport=7654) + ip6 = sp.Ether() / sp.IPv6(src=args.src[0], dst=args.to[0]) + for ulp in [ udp, tcp ]: + ext = getExtHdrs(args) + if ext is not None: + pkt = ip6 / ext / ulp + else: + pkt = ip6 / ulp + if args.debug : + pkt.display() + if not ok: + sc = check_icmp6_error_paramprob_header; + elif ulp == udp: + sc = check_icmp6_error_dst_unreach_noport; + elif ulp == tcp: + sc = check_tcp_rst; + else: + sys.exit(2) + # Start sniffing on recvif + sniffer = Sniffer.Sniffer(args, sc) + sp.sendp(pkt, iface=args.sendif[0], verbose=False) + sleep(0.10) + sniffer.setEnd() + sniffer.join() + if not sniffer.foundCorrectPacket: + sys.exit(not ok) + + sys.exit(0) + +if __name__ == '__main__': + main() Copied and modified: stable/12/tests/sys/netinet6/exthdr.sh (from r354358, head/tests/sys/netinet6/exthdr.sh) ============================================================================== --- head/tests/sys/netinet6/exthdr.sh Tue Nov 5 10:59:33 2019 (r354358, copy source) +++ stable/12/tests/sys/netinet6/exthdr.sh Wed Jan 8 16:32:16 2020 (r356493) @@ -31,7 +31,7 @@ atf_test_case "exthdr" "cleanup" exthdr_head() { - atf_set descr 'Test IPv6 fragmentation code' + atf_set descr 'Test IPv6 extension header code paths' atf_set require.user root atf_set require.progs scapy } @@ -54,12 +54,12 @@ exthdr_body() { ip6b="2001:db8:6666:0000:${yl}:${id}:2:${xl}" epair=$(vnet_mkepair) - ifconfig ${epair}a mtu 131071 up + ifconfig ${epair}a up ifconfig ${epair}a inet6 ${ip6a}/64 jname="v6t-${id}-${yl}-${xl}" vnet_mkjail ${jname} ${epair}b - jexec ${jname} ifconfig ${epair}b mtu 131071 up + jexec ${jname} ifconfig ${epair}b up jexec ${jname} ifconfig ${epair}b inet6 ${ip6b}/64 # Let IPv6 ND do its thing. @@ -70,7 +70,7 @@ exthdr_body() { # Clear statistics. jexec ${jname} netstat -z -s > /dev/null - # Run fragment tests. + # Run extension header tests. pyname=$(atf_get ident) pyname=${pyname%*_[0-9]} Modified: stable/12/tests/sys/netinet6/frag6/frag6.subr ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6.subr Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/frag6/frag6.subr Wed Jan 8 16:32:16 2020 (r356493) @@ -54,12 +54,12 @@ frag6_body() ip6b="2001:db8:6666:6666:${yl}:${id}:2:${xl}" epair=$(vnet_mkepair) - ifconfig ${epair}a mtu 131071 up + ifconfig ${epair}a up ifconfig ${epair}a inet6 ${ip6a}/64 jname="v6t-${id}-${yl}-${xl}" vnet_mkjail ${jname} ${epair}b - jexec ${jname} ifconfig ${epair}b mtu 131071 up + jexec ${jname} ifconfig ${epair}b up jexec ${jname} ifconfig ${epair}b inet6 ${ip6b}/64 # Let IPv6 ND do its thing. Modified: stable/12/tests/sys/netinet6/frag6/frag6_02.py ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_02.py Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/frag6/frag6_02.py Wed Jan 8 16:32:16 2020 (r356493) @@ -98,6 +98,7 @@ def main(): sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) sleep(0.10) + sniffer.setEnd() sniffer.join() if not sniffer.foundCorrectPacket: sys.exit(1) Modified: stable/12/tests/sys/netinet6/frag6/frag6_04.py ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_04.py Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/frag6/frag6_04.py Wed Jan 8 16:32:16 2020 (r356493) @@ -95,6 +95,7 @@ def main(): sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) sleep(0.10) + sniffer.setEnd() sniffer.join() if not sniffer.foundCorrectPacket: sys.exit(1) Copied: stable/12/tests/sys/netinet6/scapyi386.py (from r354395, head/tests/sys/netinet6/scapyi386.py) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tests/sys/netinet6/scapyi386.py Wed Jan 8 16:32:16 2020 (r356493, copy of r354395, head/tests/sys/netinet6/scapyi386.py) @@ -0,0 +1,85 @@ +#!/usr/bin/env python +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2019 Netflix, Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +import argparse +import scapy.all as sp +import socket +import sys + +def main(): + parser = argparse.ArgumentParser("scapyi386.py", + description="IPv6 Ethernet Dest MAC test") + parser.add_argument('--sendif', nargs=1, + required=True, + help='The interface through which the packet will be sent') + parser.add_argument('--recvif', nargs=1, + required=True, + help='The interface on which to check for the packet') + parser.add_argument('--src', nargs=1, + required=True, + help='The source IP address') + parser.add_argument('--to', nargs=1, + required=True, + help='The destination IP address') + parser.add_argument('--debug', + required=False, action='store_true', + help='Enable test debugging') + + args = parser.parse_args() + + ######################################################################## + # + # A test case to check that IPv6 packets are sent with a proper + # (resolved) Ethernet Destination MAC address instead of the BCAST one. + # This was needed as test cases did not work properly on i386 due to a + # scapy BPF parsing bug. (See PR 239380 and duplicates). + # + bcmac = sp.Ether(dst="ff:ff:ff:ff:ff:ff").dst + data = "6" * 88 + pkt = sp.Ether() / \ + sp.IPv6(src=args.src[0], dst=args.to[0]) / \ + sp.UDP(dport=3456, sport=6543) / \ + data + sp.sendp(pkt, iface=args.sendif[0], verbose=False) + + eth = pkt.getlayer(sp.Ether) + if eth is None: + print("No Ether in packet") + pkt.display() + sys.exit(1) + if eth.dst == bcmac: + print("Broadcast dMAC on packet") + eth.display() + sys.exit(1) + + sys.exit(0) + +if __name__ == '__main__': + main() Copied: stable/12/tests/sys/netinet6/scapyi386.sh (from r354395, head/tests/sys/netinet6/scapyi386.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tests/sys/netinet6/scapyi386.sh Wed Jan 8 16:32:16 2020 (r356493, copy of r354395, head/tests/sys/netinet6/scapyi386.sh) @@ -0,0 +1,94 @@ +# $FreeBSD$ +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2019 Netflix, Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# + +. $(atf_get_srcdir)/../common/vnet.subr + +atf_test_case "scapyi386" "cleanup" +scapyi386_head() { + + atf_set descr 'Test for correct Ethernet Destination MAC address' + atf_set require.user root + atf_set require.progs scapy +} + +scapyi386_body() { + + if [ "$(atf_config_get ci false)" = "true" ] && \ + [ "$(uname -p)" = "i386" ]; then + atf_skip "https://bugs.freebsd.org/239380" + fi + + ids=65533 + id=`printf "%x" ${ids}` + if [ $$ -gt 65535 ]; then + xl=`printf "%x" $(($$ - 65535))` + yl="1" + else + xl=`printf "%x" $$` + yl="" + fi + + vnet_init + + ip6a="2001:db8:6666:0000:${yl}:${id}:1:${xl}" + ip6b="2001:db8:6666:0000:${yl}:${id}:2:${xl}" + + epair=$(vnet_mkepair) + ifconfig ${epair}a up + ifconfig ${epair}a inet6 ${ip6a}/64 + + jname="v6t-${id}-${yl}-${xl}" + vnet_mkjail ${jname} ${epair}b + jexec ${jname} ifconfig ${epair}b up + jexec ${jname} ifconfig ${epair}b inet6 ${ip6b}/64 + + # Let IPv6 ND do its thing. + #ping6 -q -c 1 ff02::1%${epair}a + #ping6 -q -c 1 ${ip6b} + sleep 3 + + pyname=$(atf_get ident) + pyname=${pyname%*_[0-9]} + + atf_check -s exit:0 $(atf_get_srcdir)/${pyname}.py \ + --sendif ${epair}a --recvif ${epair}a \ + --src ${ip6a} --to ${ip6b} +} + +scapyi386_cleanup() { + + vnet_cleanup +} + +atf_init_test_cases() +{ + + atf_add_test_case "scapyi386" +} + +# end From owner-svn-src-all@freebsd.org Wed Jan 8 16:57:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 043871F44E4; Wed, 8 Jan 2020 16:57:09 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFlm6JQtz3KdD; Wed, 8 Jan 2020 16:57:08 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D39201B1B6; Wed, 8 Jan 2020 16:57:08 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Gv8I6056125; Wed, 8 Jan 2020 16:57:08 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Gv837056124; Wed, 8 Jan 2020 16:57:08 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001081657.008Gv837056124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 8 Jan 2020 16:57:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356494 - head/sys/compat/linprocfs X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/compat/linprocfs X-SVN-Commit-Revision: 356494 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 16:57:09 -0000 Author: markj Date: Wed Jan 8 16:57:08 2020 New Revision: 356494 URL: https://svnweb.freebsd.org/changeset/base/356494 Log: linprocfs: Fix some bugs in the maps file implementation. - Export the offset into the backing object, not the object size. - Fix a bug where we would print the previous entry's "offset" when a map_entry has no object. - Try to identify shared mappings. Linux prints "s" when the mapping "may be shared". This attempt is not perfect, for example, we print "p" for anonymous memory that may be shared via minherit(INHERIT_SHARE). PR: 240992 Reviewed by: kib MFC after: 1 week MFC note: no OBJ_ANON in stable/12 Differential Revision: https://reviews.freebsd.org/D23062 Modified: head/sys/compat/linprocfs/linprocfs.c Modified: head/sys/compat/linprocfs/linprocfs.c ============================================================================== --- head/sys/compat/linprocfs/linprocfs.c Wed Jan 8 16:32:16 2020 (r356493) +++ head/sys/compat/linprocfs/linprocfs.c Wed Jan 8 16:57:08 2020 (r356494) @@ -1146,7 +1146,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) vm_map_entry_t entry, tmp_entry; vm_object_t obj, tobj, lobj; vm_offset_t e_start, e_end; - vm_ooffset_t off = 0; + vm_ooffset_t off; vm_prot_t e_prot; unsigned int last_timestamp; char *name = "", *freename = NULL; @@ -1156,6 +1156,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) int error; struct vnode *vp; struct vattr vat; + bool private; PROC_LOCK(p); error = p_candebug(td, p); @@ -1186,17 +1187,20 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) e_start = entry->start; e_end = entry->end; obj = entry->object.vm_object; - for (lobj = tobj = obj; tobj; tobj = tobj->backing_object) { + off = entry->offset; + for (lobj = tobj = obj; tobj != NULL; + lobj = tobj, tobj = tobj->backing_object) { VM_OBJECT_RLOCK(tobj); + off += lobj->backing_object_offset; if (lobj != obj) VM_OBJECT_RUNLOCK(lobj); - lobj = tobj; } + private = (entry->eflags & MAP_ENTRY_COW) != 0 || obj == NULL || + (obj->flags & OBJ_ANON) != 0; last_timestamp = map->timestamp; vm_map_unlock_read(map); ino = 0; if (lobj) { - off = IDX_TO_OFF(lobj->size); vp = vm_object_vnode(lobj); if (vp != NULL) vref(vp); @@ -1233,7 +1237,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) (e_prot & VM_PROT_READ)?"r":"-", (e_prot & VM_PROT_WRITE)?"w":"-", (e_prot & VM_PROT_EXECUTE)?"x":"-", - "p", + private ? "p" : "s", (u_long)off, 0, 0, From owner-svn-src-all@freebsd.org Wed Jan 8 17:02:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16EC61F48BC; Wed, 8 Jan 2020 17:02:59 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFtV6xDNz3L8P; Wed, 8 Jan 2020 17:02:58 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D0ED91B393; Wed, 8 Jan 2020 17:02:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008H2wtG062041; Wed, 8 Jan 2020 17:02:58 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008H2w6U062040; Wed, 8 Jan 2020 17:02:58 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081702.008H2w6U062040@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 17:02:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356495 - stable/12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/share/mk X-SVN-Commit-Revision: 356495 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:02:59 -0000 Author: bz Date: Wed Jan 8 17:02:58 2020 New Revision: 356495 URL: https://svnweb.freebsd.org/changeset/base/356495 Log: MFC r354747: Allow per-file lex and yacc options. In order to allow software with multiple (different) options for lex and yacc add extra per-file options to the calls. This is especially useful when one .l file needs -Pprefix. Modified: stable/12/share/mk/bsd.dep.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/share/mk/bsd.dep.mk ============================================================================== --- stable/12/share/mk/bsd.dep.mk Wed Jan 8 16:57:08 2020 (r356494) +++ stable/12/share/mk/bsd.dep.mk Wed Jan 8 17:02:58 2020 (r356495) @@ -108,7 +108,7 @@ OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.o+= ${ .for _LSRC in ${SRCS:M*.l:N*/*} .for _LC in ${_LSRC:R}.c ${_LC}: ${_LSRC} - ${LEX} ${LFLAGS} -o${.TARGET} ${.ALLSRC} + ${LEX} ${LFLAGS} ${LFLAGS.${_LSRC}} -o${.TARGET} ${.ALLSRC} OBJS_DEPEND_GUESS.${_LC:R}.o+= ${_LC} SRCS:= ${SRCS:S/${_LSRC}/${_LC}/} CLEANFILES+= ${_LC} @@ -124,7 +124,7 @@ CLEANFILES+= ${_YC} .ORDER: ${_YC} y.tab.h y.tab.h: .NOMETA ${_YC} y.tab.h: ${_YSRC} - ${YACC} ${YFLAGS} ${.ALLSRC} + ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} ${.ALLSRC} cp y.tab.c ${_YC} CLEANFILES+= y.tab.c y.tab.h .elif !empty(YFLAGS:M-d) @@ -132,13 +132,13 @@ CLEANFILES+= y.tab.c y.tab.h .ORDER: ${_YC} ${_YH} ${_YH}: .NOMETA ${_YC} ${_YH}: ${_YSRC} - ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} + ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} -o ${_YC} ${.ALLSRC} SRCS+= ${_YH} CLEANFILES+= ${_YH} .endfor .else ${_YC}: ${_YSRC} - ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} + ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} -o ${_YC} ${.ALLSRC} .endif OBJS_DEPEND_GUESS.${_YC:R}.o+= ${_YC} .endfor From owner-svn-src-all@freebsd.org Wed Jan 8 17:04:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ADDDC1F493C; Wed, 8 Jan 2020 17:04:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFwS4DyRz3LGt; Wed, 8 Jan 2020 17:04:40 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 880A91B394; Wed, 8 Jan 2020 17:04:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008H4ejc062181; Wed, 8 Jan 2020 17:04:40 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008H4eNt062180; Wed, 8 Jan 2020 17:04:40 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081704.008H4eNt062180@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 17:04:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356496 - stable/12/sys/net80211 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/net80211 X-SVN-Commit-Revision: 356496 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:04:40 -0000 Author: bz Date: Wed Jan 8 17:04:40 2020 New Revision: 356496 URL: https://svnweb.freebsd.org/changeset/base/356496 Log: MFC r348861: Enhance the comment ieee80211_add_channel() to avoid a misunderstanding that the function does not work additive when repeatedly called for diffferent bands. Modified: stable/12/sys/net80211/ieee80211.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net80211/ieee80211.c ============================================================================== --- stable/12/sys/net80211/ieee80211.c Wed Jan 8 17:02:58 2020 (r356495) +++ stable/12/sys/net80211/ieee80211.c Wed Jan 8 17:04:40 2020 (r356496) @@ -1386,6 +1386,8 @@ getflags(const uint8_t bands[], uint32_t flags[], int /* * Add one 20 MHz channel into specified channel list. + * You MUST NOT mix bands when calling this. It will not add 5ghz + * channels if you have any B/G/N band bit set. */ /* XXX VHT */ int From owner-svn-src-all@freebsd.org Wed Jan 8 17:05:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A1761F4A17; Wed, 8 Jan 2020 17:05:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFxy2DN5z3LSM; Wed, 8 Jan 2020 17:05:58 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4775C1B3AD; Wed, 8 Jan 2020 17:05:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008H5wEB062303; Wed, 8 Jan 2020 17:05:58 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008H5wco062302; Wed, 8 Jan 2020 17:05:58 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081705.008H5wco062302@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 17:05:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356497 - stable/12/lib/libc/resolv X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/lib/libc/resolv X-SVN-Commit-Revision: 356497 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:05:58 -0000 Author: bz Date: Wed Jan 8 17:05:57 2020 New Revision: 356497 URL: https://svnweb.freebsd.org/changeset/base/356497 Log: MFC r348671: Rather than using the legacy IP struct fields in the union for the port number, properly access them by their IPv6 names. This will make it easier to slice up and compile out address families in the future. No functional change intended. Modified: stable/12/lib/libc/resolv/res_findzonecut.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/resolv/res_findzonecut.c ============================================================================== --- stable/12/lib/libc/resolv/res_findzonecut.c Wed Jan 8 17:04:40 2020 (r356496) +++ stable/12/lib/libc/resolv/res_findzonecut.c Wed Jan 8 17:05:57 2020 (r356497) @@ -629,7 +629,7 @@ save_a(res_state statp, ns_msg *msg, ns_sect sect, arr->addr.sin6.sin6_len = sizeof(arr->addr.sin6); #endif memcpy(&arr->addr.sin6.sin6_addr, ns_rr_rdata(rr), 16); - arr->addr.sin.sin_port = htons(NAMESERVER_PORT); + arr->addr.sin6.sin6_port = htons(NAMESERVER_PORT); nsrr->flags |= RR_NS_HAVE_V6; break; default: From owner-svn-src-all@freebsd.org Wed Jan 8 17:23:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ACD751F513F; Wed, 8 Jan 2020 17:23:53 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGLd46Lsz3MZr; Wed, 8 Jan 2020 17:23:53 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 883111B7AF; Wed, 8 Jan 2020 17:23:53 +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 008HNrPY074017; Wed, 8 Jan 2020 17:23:53 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HNrQZ074015; Wed, 8 Jan 2020 17:23:53 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001081723.008HNrQZ074015@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 8 Jan 2020 17:23:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356498 - in stable/12/lib: . libclang_rt X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/lib: . libclang_rt X-SVN-Commit-Revision: 356498 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:23:53 -0000 Author: dim Date: Wed Jan 8 17:23:52 2020 New Revision: 356498 URL: https://svnweb.freebsd.org/changeset/base/356498 Log: MFC r355034: libclang_rt: enable on powerpc* Summary: Enable on powerpc64 and in lib/libclang_rt/Makefile change MACHINE_CPUARCH to MACHINE_ARCH because on powerpc64 MACHINE_ARCH==MACHINE_CPUARCH so the 32-bit library overwrites 64-bit library during installworld. This patch doesn't enable any other libclang_rt libraries because they need to be separately ported. I have verified that games/julius (which fails on powerpc64 elfv2 without this change because of no libclang_rt profiling library) builds. Test Plan: Ship it, test on powerpc and powerpcspe Submitted by: pkubaj Reviewed by: dim, jhibbits Differential Revision: https://reviews.freebsd.org/D22425 Modified: stable/12/lib/Makefile stable/12/lib/libclang_rt/Makefile.inc Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/Makefile ============================================================================== --- stable/12/lib/Makefile Wed Jan 8 17:05:57 2020 (r356497) +++ stable/12/lib/Makefile Wed Jan 8 17:23:52 2020 (r356498) @@ -158,7 +158,8 @@ SUBDIR.${MK_LDNS}+= libldns # built for certain architectures. .if ${MK_CLANG} != "no" && ${COMPILER_TYPE} == "clang" && \ (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ - ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386") + ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386" || \ + ${MACHINE_CPUARCH} == "powerpc") _libclang_rt= libclang_rt .endif Modified: stable/12/lib/libclang_rt/Makefile.inc ============================================================================== --- stable/12/lib/libclang_rt/Makefile.inc Wed Jan 8 17:05:57 2020 (r356497) +++ stable/12/lib/libclang_rt/Makefile.inc Wed Jan 8 17:23:52 2020 (r356498) @@ -8,7 +8,7 @@ (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") CRTARCH?= armhf .else -CRTARCH?= ${MACHINE_CPUARCH:C/amd64/x86_64/} +CRTARCH?= ${MACHINE_ARCH:C/amd64/x86_64/} .endif CRTSRC= ${SRCTOP}/contrib/llvm-project/compiler-rt From owner-svn-src-all@freebsd.org Wed Jan 8 17:26:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9DF621F51E5; Wed, 8 Jan 2020 17:26:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGP43hQ0z3MkW; Wed, 8 Jan 2020 17:26:00 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 79E9B1B7B6; Wed, 8 Jan 2020 17:26:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008HQ078074178; Wed, 8 Jan 2020 17:26:00 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HPxJl074172; Wed, 8 Jan 2020 17:25:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001081725.008HPxJl074172@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 17:25:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356499 - in head: . share/man/man7 share/mk X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head: . share/man/man7 share/mk X-SVN-Commit-Revision: 356499 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:26:00 -0000 Author: jhb Date: Wed Jan 8 17:25:59 2020 New Revision: 356499 URL: https://svnweb.freebsd.org/changeset/base/356499 Log: Use clang and lld as the default toolchain for RISCV. - Enable clang and lld as system toolchains. - Don't use external GCC for universe by default. - Re-enable riscv64sf since it builds fine with clang + lld. Reviewed by: emaste, mhorne Relnotes: yes Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23089 Modified: head/Makefile head/share/man/man7/arch.7 head/share/mk/src.opts.mk Modified: head/Makefile ============================================================================== --- head/Makefile Wed Jan 8 17:23:52 2020 (r356498) +++ head/Makefile Wed Jan 8 17:25:59 2020 (r356499) @@ -495,23 +495,20 @@ TARGET_ARCHES_arm64?= aarch64 TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 mipselhf mipshf mips64elhf mips64hf # powerpcspe excluded until clang fixed TARGET_ARCHES_powerpc?= powerpc powerpc64 -# riscv64sf excluded due to PR 232085 -TARGET_ARCHES_riscv?= riscv64 +TARGET_ARCHES_riscv?= riscv64 riscv64sf .for target in ${TARGETS} TARGET_ARCHES_${target}?= ${target} .endfor -MAKE_PARAMS_riscv?= CROSS_TOOLCHAIN=riscv64-gcc MAKE_PARAMS_mips?= CROSS_TOOLCHAIN=mips-gcc6 MAKE_PARAMS_sparc64?= CROSS_TOOLCHAIN=sparc64-gcc6 TOOLCHAINS_mips= mips-gcc6 -TOOLCHAINS_riscv= riscv64-gcc TOOLCHAINS_sparc64= sparc64-gcc6 # Remove architectures only supported by external toolchain from # universe if required toolchain packages are missing. -.for target in mips riscv sparc64 +.for target in mips sparc64 .if ${_UNIVERSE_TARGETS:M${target}} .for toolchain in ${TOOLCHAINS_${target}} .if !exists(/usr/local/share/toolchains/${toolchain}.mk) Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Wed Jan 8 17:23:52 2020 (r356498) +++ head/share/man/man7/arch.7 Wed Jan 8 17:25:59 2020 (r356499) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 5, 2020 +.Dd January 8, 2020 .Dt ARCH 7 .Os .Sh NAME @@ -319,8 +319,8 @@ This table shows the default tool chain for each archi .It powerpc Ta Clang Ta GNU ld 2.17.50 .It powerpcspe Ta Clang Ta GNU ld 2.17.50 .It powerpc64 Ta Clang Ta lld -.It riscv64 Ta GCC(1) Ta GNU ld(1) -.It riscv64sf Ta GCC(1) Ta GNU ld(1) +.It riscv64 Ta Clang Ta lld +.It riscv64sf Ta Clang Ta lld .It sparc64 Ta GCC(1) Ta GNU ld(1) .El .Pp Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Wed Jan 8 17:23:52 2020 (r356498) +++ head/share/mk/src.opts.mk Wed Jan 8 17:25:59 2020 (r356499) @@ -295,8 +295,7 @@ __DEFAULT_NO_OPTIONS+=LLVM_TARGET_BPF # If the compiler is not C++11 capable, disable Clang. External toolchain will # be required. -.if ${COMPILER_FEATURES:Mc++11} && (${__TT} != "mips" && \ - ${__TT} != "riscv" && ${__TT} != "sparc64") +.if ${COMPILER_FEATURES:Mc++11} && (${__TT} != "mips" && ${__TT} != "sparc64") # Clang is enabled, and will be installed as the default /usr/bin/cc. __DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC LLD .elif ${COMPILER_FEATURES:Mc++11} && ${__T} != "sparc64" @@ -323,7 +322,7 @@ __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND .endif .if ${__TT} != "mips" && ${__T} != "powerpc" && ${__T} != "powerpcspe" && \ - ${__TT} != "riscv" && ${__T} != "sparc64" + ${__T} != "sparc64" __DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD .else __DEFAULT_NO_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD From owner-svn-src-all@freebsd.org Wed Jan 8 17:30:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 855F61F528B; Wed, 8 Jan 2020 17:30:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGTz30PVz3MvL; Wed, 8 Jan 2020 17:30:15 +0000 (UTC) (envelope-from jkim@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61FAF1B7D0; Wed, 8 Jan 2020 17:30:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008HUFMj074454; Wed, 8 Jan 2020 17:30:15 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HUFPb074451; Wed, 8 Jan 2020 17:30:15 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001081730.008HUFPb074451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Wed, 8 Jan 2020 17:30:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356500 - stable/12/usr.sbin/bhyve X-SVN-Group: stable-12 X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: stable/12/usr.sbin/bhyve X-SVN-Commit-Revision: 356500 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:30:15 -0000 Author: jkim Date: Wed Jan 8 17:30:14 2020 New Revision: 356500 URL: https://svnweb.freebsd.org/changeset/base/356500 Log: MFC: r354056 Catch up with ACPICA 20191018. Modified: stable/12/usr.sbin/bhyve/acpi.c stable/12/usr.sbin/bhyve/pci_emul.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/bhyve/acpi.c ============================================================================== --- stable/12/usr.sbin/bhyve/acpi.c Wed Jan 8 17:25:59 2020 (r356499) +++ stable/12/usr.sbin/bhyve/acpi.c Wed Jan 8 17:30:14 2020 (r356500) @@ -309,11 +309,11 @@ basl_fwrite_madt(FILE *fp) /* Local APIC NMI is connected to LINT 1 on all CPUs */ EFPRINTF(fp, "[0001]\t\tSubtable Type : 04\n"); EFPRINTF(fp, "[0001]\t\tLength : 06\n"); - EFPRINTF(fp, "[0001]\t\tProcessorId : FF\n"); + EFPRINTF(fp, "[0001]\t\tProcessor ID : FF\n"); EFPRINTF(fp, "[0002]\t\tFlags (decoded below) : 0005\n"); EFPRINTF(fp, "\t\t\tPolarity : 1\n"); EFPRINTF(fp, "\t\t\tTrigger Mode : 1\n"); - EFPRINTF(fp, "[0001]\t\tInterrupt : 01\n"); + EFPRINTF(fp, "[0001]\t\tInterrupt Input LINT : 01\n"); EFPRINTF(fp, "\n"); EFFLUSH(fp); @@ -560,7 +560,7 @@ basl_fwrite_hpet(FILE *fp) EFPRINTF(fp, "[0004]\t\tAsl Compiler Revision : 00000000\n"); EFPRINTF(fp, "\n"); - EFPRINTF(fp, "[0004]\t\tTimer Block ID : %08X\n", hpet_capabilities); + EFPRINTF(fp, "[0004]\t\tHardware Block ID : %08X\n", hpet_capabilities); EFPRINTF(fp, "[0012]\t\tTimer Block Register : [Generic Address Structure]\n"); EFPRINTF(fp, "[0001]\t\tSpace ID : 00 [SystemMemory]\n"); @@ -571,7 +571,7 @@ basl_fwrite_hpet(FILE *fp) EFPRINTF(fp, "[0008]\t\tAddress : 00000000FED00000\n"); EFPRINTF(fp, "\n"); - EFPRINTF(fp, "[0001]\t\tHPET Number : 00\n"); + EFPRINTF(fp, "[0001]\t\tSequence Number : 00\n"); EFPRINTF(fp, "[0002]\t\tMinimum Clock Ticks : 0000\n"); EFPRINTF(fp, "[0004]\t\tFlags (decoded below) : 00000001\n"); EFPRINTF(fp, "\t\t\t4K Page Protect : 1\n"); @@ -607,9 +607,9 @@ basl_fwrite_mcfg(FILE *fp) EFPRINTF(fp, "\n"); EFPRINTF(fp, "[0008]\t\tBase Address : %016lX\n", pci_ecfg_base()); - EFPRINTF(fp, "[0002]\t\tSegment Group: 0000\n"); - EFPRINTF(fp, "[0001]\t\tStart Bus: 00\n"); - EFPRINTF(fp, "[0001]\t\tEnd Bus: FF\n"); + EFPRINTF(fp, "[0002]\t\tSegment Group Number : 0000\n"); + EFPRINTF(fp, "[0001]\t\tStart Bus Number : 00\n"); + EFPRINTF(fp, "[0001]\t\tEnd Bus Number : FF\n"); EFPRINTF(fp, "[0004]\t\tReserved : 0\n"); EFFLUSH(fp); return (0); Modified: stable/12/usr.sbin/bhyve/pci_emul.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_emul.c Wed Jan 8 17:25:59 2020 (r356499) +++ stable/12/usr.sbin/bhyve/pci_emul.c Wed Jan 8 17:30:14 2020 (r356500) @@ -1268,7 +1268,6 @@ pci_bus_write_dsdt(int bus) dsdt_line(" Device (PC%02X)", bus); dsdt_line(" {"); dsdt_line(" Name (_HID, EisaId (\"PNP0A03\"))"); - dsdt_line(" Name (_ADR, Zero)"); dsdt_line(" Method (_BBN, 0, NotSerialized)"); dsdt_line(" {"); From owner-svn-src-all@freebsd.org Wed Jan 8 17:31:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 52CF91F5309; Wed, 8 Jan 2020 17:31:19 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGWC1Zfdz3NBv; Wed, 8 Jan 2020 17:31:19 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 318071B91F; Wed, 8 Jan 2020 17:31:19 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008HVIvx075903; Wed, 8 Jan 2020 17:31:18 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HVIAp075902; Wed, 8 Jan 2020 17:31:18 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001081731.008HVIAp075902@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 17:31:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356501 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 356501 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:31:19 -0000 Author: jhb Date: Wed Jan 8 17:31:18 2020 New Revision: 356501 URL: https://svnweb.freebsd.org/changeset/base/356501 Log: Remove a mention of MAKE_OBSOLETE_GCC. This should have been included in r356452. Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Wed Jan 8 17:30:14 2020 (r356500) +++ head/share/man/man7/arch.7 Wed Jan 8 17:31:18 2020 (r356501) @@ -330,9 +330,7 @@ Note that GCC 4.2.1 is deprecated, and scheduled for r Any CPU architectures not migrated by then (to either base system Clang or external toolchain) may be removed from the tree after that date. -Unless the make variable -.Dv MAKE_OBSOLETE_GCC -is defined, make universe will not build mips or sparc64 +make universe will not build mips or sparc64 architectures unless the xtoolchain binaries have been installed for the architecture. .Ss MACHINE_ARCH vs MACHINE_CPUARCH vs MACHINE From owner-svn-src-all@freebsd.org Wed Jan 8 17:31:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6F8E71F5391; Wed, 8 Jan 2020 17:31:55 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGWv20RBz3NMJ; Wed, 8 Jan 2020 17:31:55 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3FEEB1B94C; Wed, 8 Jan 2020 17:31:55 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008HVtqN079161; Wed, 8 Jan 2020 17:31:55 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HVtGY079160; Wed, 8 Jan 2020 17:31:55 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001081731.008HVtGY079160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 17:31:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356502 - head X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356502 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:31:55 -0000 Author: jhb Date: Wed Jan 8 17:31:54 2020 New Revision: 356502 URL: https://svnweb.freebsd.org/changeset/base/356502 Log: Add notes for MAKE_OBSOLETE_GCC going away and riscv switching to clang/lld. Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Wed Jan 8 17:31:18 2020 (r356501) +++ head/UPDATING Wed Jan 8 17:31:54 2020 (r356502) @@ -26,6 +26,15 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20200108: + Clang/LLVM is now the default compiler and LLD the default + linker for riscv64. + +20200107: + make universe no longer uses GCC 4.2.1 on any architectures. + Architectures not supported by in-tree Clang/LLVM require an + external toolchain package. + 20200104: GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX From owner-svn-src-all@freebsd.org Wed Jan 8 17:37:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6B5711F57C8; Wed, 8 Jan 2020 17:37:21 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGf92BXHz3Nmg; Wed, 8 Jan 2020 17:37:21 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4666A1B99C; Wed, 8 Jan 2020 17:37:21 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008HbLcR080418; Wed, 8 Jan 2020 17:37:21 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HbLxl080417; Wed, 8 Jan 2020 17:37:21 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001081737.008HbLxl080417@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 8 Jan 2020 17:37:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356503 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 356503 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:37:21 -0000 Author: kib Date: Wed Jan 8 17:37:20 2020 New Revision: 356503 URL: https://svnweb.freebsd.org/changeset/base/356503 Log: rtld: fix after r356300 binpath local was changed from char array to a char pointer, update strlcpy/strlcat uses. Reported by: Coverity through vangyzen CID: 1412239 and 1412240 Reviewed by: emaste, imp, vangyzen Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D23090 Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Wed Jan 8 17:31:54 2020 (r356502) +++ head/libexec/rtld-elf/rtld.c Wed Jan 8 17:37:20 2020 (r356503) @@ -5531,15 +5531,12 @@ open_binary_fd(const char *argv0, bool search_in_path, fd = -1; errno = ENOENT; while ((pe = strsep(&pathenv, ":")) != NULL) { - if (strlcpy(binpath, pe, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcpy(binpath, pe, PATH_MAX) >= PATH_MAX) continue; if (binpath[0] != '\0' && - strlcat(binpath, "/", sizeof(binpath)) >= - sizeof(binpath)) + strlcat(binpath, "/", PATH_MAX) >= PATH_MAX) continue; - if (strlcat(binpath, argv0, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcat(binpath, argv0, PATH_MAX) >= PATH_MAX) continue; fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY); if (fd != -1 || errno != ENOENT) { From owner-svn-src-all@freebsd.org Wed Jan 8 17:49:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2A83F1F5C51; Wed, 8 Jan 2020 17:49:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGwH05Ysz3PcP; Wed, 8 Jan 2020 17:49:35 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EE2821BBCC; Wed, 8 Jan 2020 17:49:34 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008HnYDE086550; Wed, 8 Jan 2020 17:49:34 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HnY2w086547; Wed, 8 Jan 2020 17:49:34 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001081749.008HnY2w086547@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 17:49:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356504 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356504 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:49:35 -0000 Author: jhb Date: Wed Jan 8 17:49:34 2020 New Revision: 356504 URL: https://svnweb.freebsd.org/changeset/base/356504 Log: Add -mno-relax to CFLAGS in bsd.prog/lib.mk instead of bsd.cpu.mk. bsd.cpu.mk is included by bsd.init.mk before bsd.linker.mk, so it was always setting the flag since LINKER_FEATURES wasn't defined. Reported by: mhorne Reviewed by: imp, mhorne Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23076 Modified: head/share/mk/bsd.cpu.mk head/share/mk/bsd.lib.mk head/share/mk/bsd.prog.mk Modified: head/share/mk/bsd.cpu.mk ============================================================================== --- head/share/mk/bsd.cpu.mk Wed Jan 8 17:37:20 2020 (r356503) +++ head/share/mk/bsd.cpu.mk Wed Jan 8 17:49:34 2020 (r356504) @@ -375,10 +375,6 @@ CFLAGS += -march=rv64imac -mabi=lp64 .else CFLAGS += -march=rv64imafdc -mabi=lp64d .endif - -.if ${LINKER_FEATURES:U:Mriscv-relaxations} == "" -CFLAGS += -mno-relax -.endif .endif # NB: COPTFLAGS is handled in /usr/src/sys/conf/kern.pre.mk Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Wed Jan 8 17:37:20 2020 (r356503) +++ head/share/mk/bsd.lib.mk Wed Jan 8 17:49:34 2020 (r356504) @@ -98,6 +98,10 @@ STATIC_CFLAGS+= -ftls-model=initial-exec STATIC_CXXFLAGS+= -ftls-model=initial-exec .endif +.if ${MACHINE_CPUARCH} == "riscv" && ${LINKER_FEATURES:Mriscv-relaxations} == "" +CFLAGS += -mno-relax +.endif + .include # prefer .s to a .c, add .po, remove stuff not used in the BSD libraries Modified: head/share/mk/bsd.prog.mk ============================================================================== --- head/share/mk/bsd.prog.mk Wed Jan 8 17:37:20 2020 (r356503) +++ head/share/mk/bsd.prog.mk Wed Jan 8 17:49:34 2020 (r356504) @@ -57,6 +57,10 @@ LDFLAGS+= -Wl,-zretpolineplt .endif .endif +.if ${MACHINE_CPUARCH} == "riscv" && ${LINKER_FEATURES:Mriscv-relaxations} == "" +CFLAGS += -mno-relax +.endif + .if defined(CRUNCH_CFLAGS) CFLAGS+=${CRUNCH_CFLAGS} .else From owner-svn-src-all@freebsd.org Wed Jan 8 17:54:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F283D1F5EA0; Wed, 8 Jan 2020 17:54:44 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tH2D6rJsz3Q3N; Wed, 8 Jan 2020 17:54:44 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E5D4A1BDA2; Wed, 8 Jan 2020 17:54:44 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Hsin0092239; Wed, 8 Jan 2020 17:54:44 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Hsi0w092238; Wed, 8 Jan 2020 17:54:44 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001081754.008Hsi0w092238@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 8 Jan 2020 17:54:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356505 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356505 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:54:45 -0000 Author: emaste Date: Wed Jan 8 17:54:44 2020 New Revision: 356505 URL: https://svnweb.freebsd.org/changeset/base/356505 Log: src.conf.5: regen after r356423 and r356499 riscv now using Clang/lld, riscv64sf reenabled, and googletest adjusted to avoid only the affected fuse test on mips Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Wed Jan 8 17:49:34 2020 (r356504) +++ head/share/man/man5/src.conf.5 Wed Jan 8 17:54:44 2020 (r356505) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd January 6, 2020 +.Dd January 8, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -186,7 +186,7 @@ of the normal system build. The resulting system cannot build programs from source. .Pp This is a default setting on -arm64/aarch64 and riscv/riscv64. +arm64/aarch64, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_BINUTILS Set to build and install GNU .Xr as 1 , @@ -197,7 +197,7 @@ as part of the normal system build. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_BINUTILS_BOOTSTRAP Set to not build binutils (as, ld, and objdump) as part of the bootstrap process. @@ -207,7 +207,7 @@ toolchain is provided. .Ef .Pp This is a default setting on -arm64/aarch64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_BINUTILS_BOOTSTRAP Set build binutils (as, ld, and objdump) as part of the bootstrap process. @@ -268,7 +268,7 @@ and .Pa crtend.o . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_BSD_GREP Install BSD-licensed grep as '[ef]grep' instead of GNU grep. .It Va WITHOUT_BSNMP @@ -380,7 +380,7 @@ When set, it enforces these options: Set to build the Clang C/C++ compiler during the normal phase of the build. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_CLANG_BOOTSTRAP Set to not build the Clang C/C++ compiler during the bootstrap phase of the build. @@ -388,12 +388,12 @@ To be able to build the system, either gcc or clang bo enabled unless an alternate compiler is provided via XCC. .Pp This is a default setting on -riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_CLANG_BOOTSTRAP Set to build the Clang C/C++ compiler during the bootstrap phase of the build. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc and powerpc/powerpc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_CLANG_EXTRAS Set to build additional clang and llvm tools, such as bugpoint and clang-format. @@ -408,7 +408,7 @@ Set to build the ARCMigrate, Rewriter and StaticAnalyz Clang C/C++ compiler. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_CLANG_IS_CC Set to install the GCC compiler as .Pa /usr/bin/cc , @@ -417,7 +417,7 @@ and .Pa /usr/bin/cpp . .Pp This is a default setting on -riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_CLANG_IS_CC Set to install the Clang C/C++ compiler as .Pa /usr/bin/cc , @@ -426,7 +426,7 @@ and .Pa /usr/bin/cpp . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc and powerpc/powerpc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_CPP Set to not build .Xr cpp 1 . @@ -495,7 +495,7 @@ Set to not build .Xr cxgbetool 8 .Pp This is a default setting on -arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_CXGBETOOL Set to build .Xr cxgbetool 8 @@ -658,7 +658,7 @@ and .Xr efivar 8 . .Pp This is a default setting on -powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_EFI Set to build .Xr efivar 3 @@ -743,13 +743,13 @@ Set to not build .Xr gdb 1 . .Pp This is a default setting on -arm64/aarch64 and riscv/riscv64. +arm64/aarch64, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_GDB Set to build .Xr gdb 1 . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_GDB_LIBEXEC Set to install .Xr gdb 1 @@ -770,7 +770,7 @@ to be used as a fallback for if a newer version is not installed. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_GNUCXX Build the GNU C++ stack (g++, libstdc++). This option is deprecated and will be removed before @@ -792,17 +792,6 @@ Set to neither build nor install .Lb libgmock , .Lb libgtest , and dependent tests. -.Pp -This is a default setting on -mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. -.It Va WITH_GOOGLETEST -Set to build and install -.Lb libgmock , -.Lb libgtest , -and dependent tests. -.Pp -This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and sparc64/sparc64. .It Va WITHOUT_GPIO Set to not build .Xr gpioctl 8 @@ -826,7 +815,7 @@ Set to build and install simple_httpd Set to not build or install HyperV utilities. .Pp This is a default setting on -arm/armv6, arm/armv7, arm64/aarch64, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_HYPERV Set to build or install HyperV utilities. .Pp @@ -980,7 +969,7 @@ On 64-bit platforms, set to not build 32-bit library s runtime linker. .Pp This is a default setting on -arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. +arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf, powerpc/powerpc, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITHOUT_LIBCPLUSPLUS Set to avoid building libcxxrt and libc++. .It Va WITHOUT_LIBPTHREAD @@ -1011,12 +1000,12 @@ sparc64/sparc64. Set to build LLVM's lld linker. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LLDB Set to not build the LLDB debugger. .Pp This is a default setting on -arm/armv6, arm/armv7, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_LLDB Set to build the LLDB debugger. .Pp @@ -1029,23 +1018,23 @@ To be able to build the system, either Binutils or LLD enabled unless an alternate linker is provided via XLD. .Pp This is a default setting on -powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc and sparc64/sparc64. .It Va WITH_LLD_BOOTSTRAP Set to build the LLD linker during the bootstrap phase of the build, and use it during buildworld and buildkernel. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386 and powerpc/powerpc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LLD_IS_LD Set to use GNU binutils ld as the system linker, instead of LLVM's LLD. .Pp This is a default setting on -powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc and sparc64/sparc64. .It Va WITH_LLD_IS_LD Set to use LLVM's LLD as the system linker, instead of GNU binutils ld. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386 and powerpc/powerpc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LLVM_COV Set to not build the .Xr llvm-cov 1 @@ -1059,17 +1048,17 @@ Set to build the tool. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LLVM_LIBUNWIND Set to use GCC's stack unwinder (instead of LLVM's libunwind). .Pp This is a default setting on -arm/armv6, arm/armv7 and sparc64/sparc64. +sparc64/sparc64. .It Va WITH_LLVM_LIBUNWIND Set to use LLVM's libunwind stack unwinder (instead of GCC's unwinder). .Pp This is a default setting on -amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LLVM_TARGET_AARCH64 Set to not build LLVM target support for AArch64. The @@ -1161,7 +1150,7 @@ powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64 Set to build GELI bootloader support. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LOADER_LUA Set to not build LUA bindings for the boot loader. .Pp @@ -1171,12 +1160,12 @@ powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64 Set to build LUA bindings for the boot loader. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_LOADER_OFW Disable building of openfirmware bootloader components. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_LOADER_OFW Set to build openfirmware bootloader components. .Pp @@ -1186,12 +1175,12 @@ powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64 Disable building of ubldr. .Pp This is a default setting on -amd64/amd64, arm64/aarch64, i386/i386, riscv/riscv64 and sparc64/sparc64. +amd64/amd64, arm64/aarch64, i386/i386, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_LOADER_UBOOT Set to build ubldr. .Pp This is a default setting on -arm/armv6, arm/armv7, powerpc/powerpc, powerpc/powerpc64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc and powerpc/powerpc64. .It Va WITH_LOADER_VERBOSE Set to build with extra verbose debugging in the loader. May explode already nearly too large loader over the limit. @@ -1351,7 +1340,7 @@ Set to not build .Xr mlx5tool 8 .Pp This is a default setting on -arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, riscv/riscv64 and riscv/riscv64sf. .It Va WITH_MLX5TOOL Set to build .Xr mlx5tool 8 @@ -1422,7 +1411,7 @@ and related programs. Set to not build nvme related tools and kernel modules. .Pp This is a default setting on -arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_NVME Set to build nvme related tools and kernel modules. @@ -1443,7 +1432,7 @@ Enable building openldap support for kerberos. Set to not build LLVM's OpenMP runtime. .Pp This is a default setting on -arm/armv6, arm/armv7, arm64/aarch64, powerpc/powerpc, riscv/riscv64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. +arm/armv6, arm/armv7, arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_OPENMP Set to build LLVM's OpenMP runtime. .Pp @@ -1538,7 +1527,7 @@ Set to build profiled libraries for use with .Xr gprof 8 . .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mipsn32, mips/mipselhf, mips/mipshf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITHOUT_QUOTAS Set to not build .Xr quota 1 @@ -1628,7 +1617,7 @@ mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mi Set to build world with propolice stack smashing protection. .Pp This is a default setting on -amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and sparc64/sparc64. +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_STAGING Enable staging of files to a stage tree. This can be best thought of as auto-install to From owner-svn-src-all@freebsd.org Wed Jan 8 18:26:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 533B11F71C6; Wed, 8 Jan 2020 18:26:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tHkm1YXgz3xVg; Wed, 8 Jan 2020 18:26:24 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30B201C342; Wed, 8 Jan 2020 18:26:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008IQO1x010340; Wed, 8 Jan 2020 18:26:24 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008IQOkF010339; Wed, 8 Jan 2020 18:26:24 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001081826.008IQOkF010339@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 8 Jan 2020 18:26:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356506 - head/sys/dev/nvme X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/dev/nvme X-SVN-Commit-Revision: 356506 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 18:26:24 -0000 Author: mav Date: Wed Jan 8 18:26:23 2020 New Revision: 356506 URL: https://svnweb.freebsd.org/changeset/base/356506 Log: Fix copy-paste bug in HMB free code. MFC after: 2 weeks X-MFC-with: r356474 Modified: head/sys/dev/nvme/nvme_ctrlr.c Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Wed Jan 8 17:54:44 2020 (r356505) +++ head/sys/dev/nvme/nvme_ctrlr.c Wed Jan 8 18:26:23 2020 (r356506) @@ -854,7 +854,7 @@ nvme_ctrlr_hmb_free(struct nvme_controller *ctrlr) } if (ctrlr->hmb_desc_tag) { bus_dma_tag_destroy(ctrlr->hmb_desc_tag); - ctrlr->hmb_tag = NULL; + ctrlr->hmb_desc_tag = NULL; } for (i = 0; i < ctrlr->hmb_nchunks; i++) { hmbc = &ctrlr->hmb_chunks[i]; From owner-svn-src-all@freebsd.org Wed Jan 8 18:59:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 08EEF1F7FE2; Wed, 8 Jan 2020 18:59:24 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tJSq6VDGz41QC; Wed, 8 Jan 2020 18:59:23 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D58CD1C8EE; Wed, 8 Jan 2020 18:59:23 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008IxNSo029871; Wed, 8 Jan 2020 18:59:23 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008IxNZY029870; Wed, 8 Jan 2020 18:59:23 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001081859.008IxNZY029870@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 18:59:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356507 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 356507 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 18:59:24 -0000 Author: jhb Date: Wed Jan 8 18:59:23 2020 New Revision: 356507 URL: https://svnweb.freebsd.org/changeset/base/356507 Log: Add a reference count to cryptodev sessions. This prevents use-after-free races with crypto requests (which may sleep) and CIOCFSESSION as well as races from current CIOCFSESSION requests. admbugs: 949 Reported by: Yuval Kanarenstein Reviewed by: cem MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D23077 Modified: head/sys/opencrypto/cryptodev.c Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Wed Jan 8 18:26:23 2020 (r356506) +++ head/sys/opencrypto/cryptodev.c Wed Jan 8 18:59:23 2020 (r356507) @@ -266,6 +266,7 @@ crypt_kop_to_32(const struct crypt_kop *from, struct c struct csession { TAILQ_ENTRY(csession) next; crypto_session_t cses; + volatile u_int refs; u_int32_t ses; struct mtx lock; /* for op submission */ @@ -292,6 +293,7 @@ struct cryptop_data { struct fcrypt { TAILQ_HEAD(csessionlist, csession) csessions; int sesn; + struct mtx lock; }; static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 }; @@ -323,8 +325,8 @@ static struct fileops cryptofops = { }; static struct csession *csefind(struct fcrypt *, u_int); -static int csedelete(struct fcrypt *, struct csession *); -static struct csession *cseadd(struct fcrypt *, struct csession *); +static bool csedelete(struct fcrypt *, u_int); +static void cseadd(struct fcrypt *, struct csession *); static struct csession *csecreate(struct fcrypt *, crypto_session_t, caddr_t, u_int64_t, caddr_t, u_int64_t, u_int32_t, u_int32_t, struct enc_xform *, struct auth_hash *); @@ -668,13 +670,10 @@ bail: break; case CIOCFSESSION: ses = *(u_int32_t *)data; - cse = csefind(fcr, ses); - if (cse == NULL) { + if (!csedelete(fcr, ses)) { SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__); return (EINVAL); } - csedelete(fcr, cse); - csefree(cse); break; case CIOCCRYPT: #ifdef COMPAT_FREEBSD32 @@ -691,6 +690,7 @@ bail: return (EINVAL); } error = cryptodev_op(cse, cop, active_cred, td); + csefree(cse); #ifdef COMPAT_FREEBSD32 if (error == 0 && cmd == CIOCCRYPT32) crypt_op_to_32(cop, data); @@ -757,6 +757,7 @@ bail: return (EINVAL); } error = cryptodev_aead(cse, caead, active_cred, td); + csefree(cse); break; default: error = EINVAL; @@ -1375,6 +1376,9 @@ cryptof_close(struct file *fp, struct thread *td) while ((cse = TAILQ_FIRST(&fcr->csessions))) { TAILQ_REMOVE(&fcr->csessions, cse, next); + KASSERT(cse->refs == 1, + ("%s: crypto session %p with %d refs", __func__, cse, + cse->refs)); csefree(cse); } free(fcr, M_XDATA); @@ -1395,34 +1399,36 @@ csefind(struct fcrypt *fcr, u_int ses) { struct csession *cse; - TAILQ_FOREACH(cse, &fcr->csessions, next) - if (cse->ses == ses) + mtx_lock(&fcr->lock); + TAILQ_FOREACH(cse, &fcr->csessions, next) { + if (cse->ses == ses) { + refcount_acquire(&cse->refs); + mtx_unlock(&fcr->lock); return (cse); + } + } + mtx_unlock(&fcr->lock); return (NULL); } -static int -csedelete(struct fcrypt *fcr, struct csession *cse_del) +static bool +csedelete(struct fcrypt *fcr, u_int ses) { struct csession *cse; + mtx_lock(&fcr->lock); TAILQ_FOREACH(cse, &fcr->csessions, next) { - if (cse == cse_del) { + if (cse->ses == ses) { TAILQ_REMOVE(&fcr->csessions, cse, next); - return (1); + mtx_unlock(&fcr->lock); + csefree(cse); + return (true); } } - return (0); + mtx_unlock(&fcr->lock); + return (false); } -static struct csession * -cseadd(struct fcrypt *fcr, struct csession *cse) -{ - TAILQ_INSERT_TAIL(&fcr->csessions, cse, next); - cse->ses = fcr->sesn++; - return (cse); -} - struct csession * csecreate(struct fcrypt *fcr, crypto_session_t cses, caddr_t key, u_int64_t keylen, caddr_t mackey, u_int64_t mackeylen, u_int32_t cipher, u_int32_t mac, @@ -1434,6 +1440,7 @@ csecreate(struct fcrypt *fcr, crypto_session_t cses, c if (cse == NULL) return NULL; mtx_init(&cse->lock, "cryptodev", "crypto session lock", MTX_DEF); + refcount_init(&cse->refs, 1); cse->key = key; cse->keylen = keylen/8; cse->mackey = mackey; @@ -1443,7 +1450,10 @@ csecreate(struct fcrypt *fcr, crypto_session_t cses, c cse->mac = mac; cse->txform = txform; cse->thash = thash; - cseadd(fcr, cse); + mtx_lock(&fcr->lock); + TAILQ_INSERT_TAIL(&fcr->csessions, cse, next); + cse->ses = fcr->sesn++; + mtx_unlock(&fcr->lock); return (cse); } @@ -1451,6 +1461,8 @@ static void csefree(struct csession *cse) { + if (!refcount_release(&cse->refs)) + return; crypto_freesession(cse->cses); mtx_destroy(&cse->lock); if (cse->key) @@ -1487,13 +1499,14 @@ cryptoioctl(struct cdev *dev, u_long cmd, caddr_t data switch (cmd) { case CRIOGET: - fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK); + fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK | M_ZERO); TAILQ_INIT(&fcr->csessions); - fcr->sesn = 0; + mtx_init(&fcr->lock, "fcrypt", NULL, MTX_DEF); error = falloc(td, &f, &fd, 0); if (error) { + mtx_destroy(&fcr->lock); free(fcr, M_XDATA); return (error); } From owner-svn-src-all@freebsd.org Wed Jan 8 19:03:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3C47E1F82CC; Wed, 8 Jan 2020 19:03:25 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tJYT0tmKz41t0; Wed, 8 Jan 2020 19:03:25 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 19BB11CAC5; Wed, 8 Jan 2020 19:03:25 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008J3OVB035533; Wed, 8 Jan 2020 19:03:24 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008J3O93035532; Wed, 8 Jan 2020 19:03:24 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001081903.008J3O93035532@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 19:03:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356508 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 356508 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 19:03:25 -0000 Author: jhb Date: Wed Jan 8 19:03:24 2020 New Revision: 356508 URL: https://svnweb.freebsd.org/changeset/base/356508 Log: Use falloc_noinstall + finstall for crypto file descriptors. Reviewed by: cem, kib MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D23078 Modified: head/sys/opencrypto/cryptodev.c Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Wed Jan 8 18:59:23 2020 (r356507) +++ head/sys/opencrypto/cryptodev.c Wed Jan 8 19:03:24 2020 (r356508) @@ -1499,20 +1499,21 @@ cryptoioctl(struct cdev *dev, u_long cmd, caddr_t data switch (cmd) { case CRIOGET: + error = falloc_noinstall(td, &f); + if (error) + break; + fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK | M_ZERO); TAILQ_INIT(&fcr->csessions); mtx_init(&fcr->lock, "fcrypt", NULL, MTX_DEF); - error = falloc(td, &f, &fd, 0); - + finit(f, FREAD | FWRITE, DTYPE_CRYPTO, fcr, &cryptofops); + error = finstall(td, f, &fd, 0, NULL); if (error) { mtx_destroy(&fcr->lock); free(fcr, M_XDATA); - return (error); - } - /* falloc automatically provides an extra reference to 'f'. */ - finit(f, FREAD | FWRITE, DTYPE_CRYPTO, fcr, &cryptofops); - *(u_int32_t *)data = fd; + } else + *(uint32_t *)data = fd; fdrop(f, td); break; case CRIOFINDDEV: From owner-svn-src-all@freebsd.org Wed Jan 8 19:05:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E841A1F837F; Wed, 8 Jan 2020 19:05:23 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tJbl5qpkz422V; Wed, 8 Jan 2020 19:05:23 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C2DB11CACC; Wed, 8 Jan 2020 19:05:23 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008J5NLD035682; Wed, 8 Jan 2020 19:05:23 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008J5NuY035681; Wed, 8 Jan 2020 19:05:23 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001081905.008J5NuY035681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 19:05:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356509 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 356509 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 19:05:24 -0000 Author: jhb Date: Wed Jan 8 19:05:23 2020 New Revision: 356509 URL: https://svnweb.freebsd.org/changeset/base/356509 Log: Remove unneeded cdevsw methods and D_NEEDGIANT. Reviewed by: kib MFC after: 2 weeks Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D23079 Modified: head/sys/opencrypto/cryptodev.c Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Wed Jan 8 19:03:24 2020 (r356508) +++ head/sys/opencrypto/cryptodev.c Wed Jan 8 19:05:23 2020 (r356509) @@ -1473,24 +1473,6 @@ csefree(struct csession *cse) } static int -cryptoopen(struct cdev *dev, int oflags, int devtype, struct thread *td) -{ - return (0); -} - -static int -cryptoread(struct cdev *dev, struct uio *uio, int ioflag) -{ - return (EIO); -} - -static int -cryptowrite(struct cdev *dev, struct uio *uio, int ioflag) -{ - return (EIO); -} - -static int cryptoioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) { struct file *f; @@ -1531,10 +1513,6 @@ cryptoioctl(struct cdev *dev, u_long cmd, caddr_t data static struct cdevsw crypto_cdevsw = { .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, - .d_open = cryptoopen, - .d_read = cryptoread, - .d_write = cryptowrite, .d_ioctl = cryptoioctl, .d_name = "crypto", }; From owner-svn-src-all@freebsd.org Wed Jan 8 19:05:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4CFAE1F83C6; Wed, 8 Jan 2020 19:05:34 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tJby113rz428W; Wed, 8 Jan 2020 19:05:34 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1DD8B1CACD; Wed, 8 Jan 2020 19:05:34 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008J5YJ3035737; Wed, 8 Jan 2020 19:05:34 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008J5XRc035731; Wed, 8 Jan 2020 19:05:33 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001081905.008J5XRc035731@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 8 Jan 2020 19:05:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356510 - in head: lib/libc/sys sys/kern sys/sys X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: lib/libc/sys sys/kern sys/sys X-SVN-Commit-Revision: 356510 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 19:05:34 -0000 Author: kevans Date: Wed Jan 8 19:05:32 2020 New Revision: 356510 URL: https://svnweb.freebsd.org/changeset/base/356510 Log: posix_fallocate: push vnop implementation into the fileop layer This opens the door for other descriptor types to implement posix_fallocate(2) as needed. Reviewed by: kib, bcr (manpages) Differential Revision: https://reviews.freebsd.org/D23042 Modified: head/lib/libc/sys/posix_fallocate.2 head/sys/kern/sys_generic.c head/sys/kern/vfs_syscalls.c head/sys/kern/vfs_vnops.c head/sys/sys/file.h Modified: head/lib/libc/sys/posix_fallocate.2 ============================================================================== --- head/lib/libc/sys/posix_fallocate.2 Wed Jan 8 19:05:23 2020 (r356509) +++ head/lib/libc/sys/posix_fallocate.2 Wed Jan 8 19:05:32 2020 (r356510) @@ -28,7 +28,7 @@ .\" @(#)open.2 8.2 (Berkeley) 11/16/93 .\" $FreeBSD$ .\" -.Dd November 4, 2017 +.Dd January 5, 2020 .Dt POSIX_FALLOCATE 2 .Os .Sh NAME @@ -115,7 +115,8 @@ An I/O error occurred while reading from or writing to .It Bq Er ENODEV The .Fa fd -argument does not refer to a regular file. +argument does not refer to a file that supports +.Nm . .It Bq Er ENOSPC There is insufficient free space remaining on the file system storage media. Modified: head/sys/kern/sys_generic.c ============================================================================== --- head/sys/kern/sys_generic.c Wed Jan 8 19:05:23 2020 (r356509) +++ head/sys/kern/sys_generic.c Wed Jan 8 19:05:32 2020 (r356510) @@ -819,6 +819,47 @@ out: } int +sys_posix_fallocate(struct thread *td, struct posix_fallocate_args *uap) +{ + int error; + + error = kern_posix_fallocate(td, uap->fd, uap->offset, uap->len); + return (kern_posix_error(td, error)); +} + +int +kern_posix_fallocate(struct thread *td, int fd, off_t offset, off_t len) +{ + struct file *fp; + int error; + + AUDIT_ARG_FD(fd); + if (offset < 0 || len <= 0) + return (EINVAL); + /* Check for wrap. */ + if (offset > OFF_MAX - len) + return (EFBIG); + AUDIT_ARG_FD(fd); + error = fget(td, fd, &cap_pwrite_rights, &fp); + if (error != 0) + return (error); + AUDIT_ARG_FILE(td->td_proc, fp); + if ((fp->f_ops->fo_flags & DFLAG_SEEKABLE) == 0) { + error = ESPIPE; + goto out; + } + if ((fp->f_flag & FWRITE) == 0) { + error = EBADF; + goto out; + } + + error = fo_fallocate(fp, offset, len, td); + out: + fdrop(fp, td); + return (error); +} + +int poll_no_poll(int events) { /* Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Wed Jan 8 19:05:23 2020 (r356509) +++ head/sys/kern/vfs_syscalls.c Wed Jan 8 19:05:32 2020 (r356510) @@ -4565,99 +4565,6 @@ out: return (error); } -int -kern_posix_fallocate(struct thread *td, int fd, off_t offset, off_t len) -{ - struct file *fp; - struct mount *mp; - struct vnode *vp; - off_t olen, ooffset; - int error; -#ifdef AUDIT - int audited_vnode1 = 0; -#endif - - AUDIT_ARG_FD(fd); - if (offset < 0 || len <= 0) - return (EINVAL); - /* Check for wrap. */ - if (offset > OFF_MAX - len) - return (EFBIG); - AUDIT_ARG_FD(fd); - error = fget(td, fd, &cap_pwrite_rights, &fp); - if (error != 0) - return (error); - AUDIT_ARG_FILE(td->td_proc, fp); - if ((fp->f_ops->fo_flags & DFLAG_SEEKABLE) == 0) { - error = ESPIPE; - goto out; - } - if ((fp->f_flag & FWRITE) == 0) { - error = EBADF; - goto out; - } - if (fp->f_type != DTYPE_VNODE) { - error = ENODEV; - goto out; - } - vp = fp->f_vnode; - if (vp->v_type != VREG) { - error = ENODEV; - goto out; - } - - /* Allocating blocks may take a long time, so iterate. */ - for (;;) { - olen = len; - ooffset = offset; - - bwillwrite(); - mp = NULL; - error = vn_start_write(vp, &mp, V_WAIT | PCATCH); - if (error != 0) - break; - error = vn_lock(vp, LK_EXCLUSIVE); - if (error != 0) { - vn_finished_write(mp); - break; - } -#ifdef AUDIT - if (!audited_vnode1) { - AUDIT_ARG_VNODE1(vp); - audited_vnode1 = 1; - } -#endif -#ifdef MAC - error = mac_vnode_check_write(td->td_ucred, fp->f_cred, vp); - if (error == 0) -#endif - error = VOP_ALLOCATE(vp, &offset, &len); - VOP_UNLOCK(vp); - vn_finished_write(mp); - - if (olen + ooffset != offset + len) { - panic("offset + len changed from %jx/%jx to %jx/%jx", - ooffset, olen, offset, len); - } - if (error != 0 || len == 0) - break; - KASSERT(olen > len, ("Iteration did not make progress?")); - maybe_yield(); - } - out: - fdrop(fp, td); - return (error); -} - -int -sys_posix_fallocate(struct thread *td, struct posix_fallocate_args *uap) -{ - int error; - - error = kern_posix_fallocate(td, uap->fd, uap->offset, uap->len); - return (kern_posix_error(td, error)); -} - /* * Unlike madvise(2), we do not make a best effort to remember every * possible caching hint. Instead, we remember the last setting with Modified: head/sys/kern/vfs_vnops.c ============================================================================== --- head/sys/kern/vfs_vnops.c Wed Jan 8 19:05:23 2020 (r356509) +++ head/sys/kern/vfs_vnops.c Wed Jan 8 19:05:32 2020 (r356510) @@ -103,6 +103,7 @@ static fo_kqfilter_t vn_kqfilter; static fo_stat_t vn_statfile; static fo_close_t vn_closefile; static fo_mmap_t vn_mmap; +static fo_fallocate_t vn_fallocate; struct fileops vnops = { .fo_read = vn_io_fault, @@ -119,6 +120,7 @@ struct fileops vnops = { .fo_seek = vn_seek, .fo_fill_kinfo = vn_fill_kinfo, .fo_mmap = vn_mmap, + .fo_fallocate = vn_fallocate, .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE }; @@ -3148,5 +3150,62 @@ vn_generic_copy_file_range(struct vnode *invp, off_t * out: *lenp = savlen - len; free(dat, M_TEMP); + return (error); +} + +static int +vn_fallocate(struct file *fp, off_t offset, off_t len, struct thread *td) +{ + struct mount *mp; + struct vnode *vp; + off_t olen, ooffset; + int error; +#ifdef AUDIT + int audited_vnode1 = 0; +#endif + + vp = fp->f_vnode; + if (vp->v_type != VREG) + return (ENODEV); + + /* Allocating blocks may take a long time, so iterate. */ + for (;;) { + olen = len; + ooffset = offset; + + bwillwrite(); + mp = NULL; + error = vn_start_write(vp, &mp, V_WAIT | PCATCH); + if (error != 0) + break; + error = vn_lock(vp, LK_EXCLUSIVE); + if (error != 0) { + vn_finished_write(mp); + break; + } +#ifdef AUDIT + if (!audited_vnode1) { + AUDIT_ARG_VNODE1(vp); + audited_vnode1 = 1; + } +#endif +#ifdef MAC + error = mac_vnode_check_write(td->td_ucred, fp->f_cred, vp); + if (error == 0) +#endif + error = VOP_ALLOCATE(vp, &offset, &len); + VOP_UNLOCK(vp); + vn_finished_write(mp); + + if (olen + ooffset != offset + len) { + panic("offset + len changed from %jx/%jx to %jx/%jx", + ooffset, olen, offset, len); + } + if (error != 0 || len == 0) + break; + KASSERT(olen > len, ("Iteration did not make progress?")); + maybe_yield(); + } + return (error); } Modified: head/sys/sys/file.h ============================================================================== --- head/sys/sys/file.h Wed Jan 8 19:05:23 2020 (r356509) +++ head/sys/sys/file.h Wed Jan 8 19:05:32 2020 (r356510) @@ -125,6 +125,8 @@ typedef int fo_mmap_t(struct file *fp, vm_map_t map, v typedef int fo_aio_queue_t(struct file *fp, struct kaiocb *job); typedef int fo_add_seals_t(struct file *fp, int flags); typedef int fo_get_seals_t(struct file *fp, int *flags); +typedef int fo_fallocate_t(struct file *fp, off_t offset, off_t len, + struct thread *td); typedef int fo_flags_t; struct fileops { @@ -145,6 +147,7 @@ struct fileops { fo_aio_queue_t *fo_aio_queue; fo_add_seals_t *fo_add_seals; fo_get_seals_t *fo_get_seals; + fo_fallocate_t *fo_fallocate; fo_flags_t fo_flags; /* DFLAG_* below */ }; @@ -444,6 +447,15 @@ fo_get_seals(struct file *fp, int *seals) if (fp->f_ops->fo_get_seals == NULL) return (EINVAL); return ((*fp->f_ops->fo_get_seals)(fp, seals)); +} + +static __inline int +fo_fallocate(struct file *fp, off_t offset, off_t len, struct thread *td) +{ + + if (fp->f_ops->fo_fallocate == NULL) + return (ENODEV); + return ((*fp->f_ops->fo_fallocate)(fp, offset, len, td)); } #endif /* _KERNEL */ From owner-svn-src-all@freebsd.org Wed Jan 8 19:06:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A8B781F8457; Wed, 8 Jan 2020 19:06:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tJct43QJz42J3; Wed, 8 Jan 2020 19:06:22 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 868D11CAE1; Wed, 8 Jan 2020 19:06:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008J6MDQ035814; Wed, 8 Jan 2020 19:06:22 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008J6MDO035813; Wed, 8 Jan 2020 19:06:22 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001081906.008J6MDO035813@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 8 Jan 2020 19:06:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356511 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 356511 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 19:06:22 -0000 Author: kevans Date: Wed Jan 8 19:06:22 2020 New Revision: 356511 URL: https://svnweb.freebsd.org/changeset/base/356511 Log: Bump __FreeBSD_version after r356510 linuxkpi kmod would need to rebuilt at a minimum; fileops layout has changed. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Wed Jan 8 19:05:32 2020 (r356510) +++ head/sys/sys/param.h Wed Jan 8 19:06:22 2020 (r356511) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300075 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300076 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Wed Jan 8 19:08:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 071C31F84F2; Wed, 8 Jan 2020 19:08:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tJgc6SC6z42R2; Wed, 8 Jan 2020 19:08:44 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D477C1CAE6; Wed, 8 Jan 2020 19:08:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008J8iKJ035969; Wed, 8 Jan 2020 19:08:44 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008J8ioq035968; Wed, 8 Jan 2020 19:08:44 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001081908.008J8ioq035968@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 8 Jan 2020 19:08:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356512 - in head: sys/kern tests/sys/posixshm X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: sys/kern tests/sys/posixshm X-SVN-Commit-Revision: 356512 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 19:08:45 -0000 Author: kevans Date: Wed Jan 8 19:08:44 2020 New Revision: 356512 URL: https://svnweb.freebsd.org/changeset/base/356512 Log: posixshm: implement posix_fallocate(2) Linux expects to be able to use posix_fallocate(2) on a memfd. Other places would use this with shm_open(2) to act as a smarter ftruncate(2). Test has been added to go along with this. Reviewed by: kib (earlier version) Differential Revision: https://reviews.freebsd.org/D23042 Modified: head/sys/kern/uipc_shm.c head/tests/sys/posixshm/posixshm_test.c Modified: head/sys/kern/uipc_shm.c ============================================================================== --- head/sys/kern/uipc_shm.c Wed Jan 8 19:06:22 2020 (r356511) +++ head/sys/kern/uipc_shm.c Wed Jan 8 19:08:44 2020 (r356512) @@ -138,6 +138,7 @@ static fo_fill_kinfo_t shm_fill_kinfo; static fo_mmap_t shm_mmap; static fo_get_seals_t shm_get_seals; static fo_add_seals_t shm_add_seals; +static fo_fallocate_t shm_fallocate; /* File descriptor operations. */ struct fileops shm_ops = { @@ -157,6 +158,7 @@ struct fileops shm_ops = { .fo_mmap = shm_mmap, .fo_get_seals = shm_get_seals, .fo_add_seals = shm_add_seals, + .fo_fallocate = shm_fallocate, .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE }; @@ -1435,6 +1437,32 @@ shm_get_seals(struct file *fp, int *seals) shmfd = fp->f_data; *seals = shmfd->shm_seals; return (0); +} + +static int +shm_fallocate(struct file *fp, off_t offset, off_t len, struct thread *td) +{ + void *rl_cookie; + struct shmfd *shmfd; + size_t size; + int error; + + /* This assumes that the caller already checked for overflow. */ + error = 0; + shmfd = fp->f_data; + size = offset + len; + rl_cookie = rangelock_wlock(&shmfd->shm_rl, 0, OFF_MAX, + &shmfd->shm_mtx); + if (size > shmfd->shm_size) { + VM_OBJECT_WLOCK(shmfd->shm_object); + error = shm_dotruncate_locked(shmfd, size, rl_cookie); + VM_OBJECT_WUNLOCK(shmfd->shm_object); + } + rangelock_unlock(&shmfd->shm_rl, rl_cookie, &shmfd->shm_mtx); + /* Translate to posix_fallocate(2) return value as needed. */ + if (error == ENOMEM) + error = ENOSPC; + return (error); } static int Modified: head/tests/sys/posixshm/posixshm_test.c ============================================================================== --- head/tests/sys/posixshm/posixshm_test.c Wed Jan 8 19:06:22 2020 (r356511) +++ head/tests/sys/posixshm/posixshm_test.c Wed Jan 8 19:08:44 2020 (r356512) @@ -918,6 +918,44 @@ ATF_TC_BODY(mode, tc) umask(restore_mask); } +ATF_TC_WITHOUT_HEAD(fallocate); +ATF_TC_BODY(fallocate, tc) +{ + struct stat st; + int error, fd, sz; + + /* + * Primitive test case for posix_fallocate with shmd. Effectively + * expected to work like a smarter ftruncate that will grow the region + * as needed in a race-free way. + */ + fd = shm_open(SHM_ANON, O_RDWR, 0666); + ATF_REQUIRE_MSG(fd >= 0, "shm_open failed; errno=%d", errno); + /* Set the initial size. */ + sz = 32; + ATF_REQUIRE(ftruncate(fd, sz) == 0); + + /* Now grow it. */ + error = 0; + sz *= 2; + ATF_REQUIRE_MSG((error = posix_fallocate(fd, 0, sz)) == 0, + "posix_fallocate failed; error=%d", error); + ATF_REQUIRE(fstat(fd, &st) == 0); + ATF_REQUIRE(st.st_size == sz); + /* Attempt to shrink it; should succeed, but not change the size. */ + ATF_REQUIRE_MSG((error = posix_fallocate(fd, 0, sz / 2)) == 0, + "posix_fallocate failed; error=%d", error); + ATF_REQUIRE(fstat(fd, &st) == 0); + ATF_REQUIRE(st.st_size == sz); + /* Grow it using an offset of sz and len of sz. */ + ATF_REQUIRE_MSG((error = posix_fallocate(fd, sz, sz)) == 0, + "posix_fallocate failed; error=%d", error); + ATF_REQUIRE(fstat(fd, &st) == 0); + ATF_REQUIRE(st.st_size == (sz * 2)); + + close(fd); +} + ATF_TP_ADD_TCS(tp) { @@ -951,6 +989,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, object_resize); ATF_TP_ADD_TC(tp, cloexec); ATF_TP_ADD_TC(tp, mode); + ATF_TP_ADD_TC(tp, fallocate); return (atf_no_error()); } From owner-svn-src-all@freebsd.org Wed Jan 8 20:37:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BC6461FA1FC; Wed, 8 Jan 2020 20:37:04 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tLdX4cFTz46qb; Wed, 8 Jan 2020 20:37:04 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 94AAF1DBBD; Wed, 8 Jan 2020 20:37:04 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Kb4QR089850; Wed, 8 Jan 2020 20:37:04 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Kb4kH089848; Wed, 8 Jan 2020 20:37:04 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001082037.008Kb4kH089848@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 8 Jan 2020 20:37:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356513 - in head/contrib/llvm-project/libunwind: include src X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head/contrib/llvm-project/libunwind: include src X-SVN-Commit-Revision: 356513 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 20:37:04 -0000 Author: emaste Date: Wed Jan 8 20:37:03 2020 New Revision: 356513 URL: https://svnweb.freebsd.org/changeset/base/356513 Log: libunwind: untested attempt to fix sparc64 build sparc64 is the only architecture currently using the DWARF unwinder from GCC 4.2.1. Old GCC and related libraries are being removed soon; absent other changes sparc64 would be left with no unwinder when that happens. Instead, commit these changes which should at least allow the LLVM unwinder to build. Someone with access to the obolete sparc64 hardware supported by FreeBSD will need to test the result. PR: 233405 Submitted by: cem Modified: head/contrib/llvm-project/libunwind/include/__libunwind_config.h head/contrib/llvm-project/libunwind/src/config.h Modified: head/contrib/llvm-project/libunwind/include/__libunwind_config.h ============================================================================== --- head/contrib/llvm-project/libunwind/include/__libunwind_config.h Wed Jan 8 19:08:44 2020 (r356512) +++ head/contrib/llvm-project/libunwind/include/__libunwind_config.h Wed Jan 8 20:37:03 2020 (r356513) @@ -124,7 +124,7 @@ #define _LIBUNWIND_TARGET_SPARC 1 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC #define _LIBUNWIND_CONTEXT_SIZE 16 - #define _LIBUNWIND_CURSOR_SIZE 23 + #define _LIBUNWIND_CURSOR_SIZE 28 # else # error "Unsupported architecture." # endif Modified: head/contrib/llvm-project/libunwind/src/config.h ============================================================================== --- head/contrib/llvm-project/libunwind/src/config.h Wed Jan 8 19:08:44 2020 (r356512) +++ head/contrib/llvm-project/libunwind/src/config.h Wed Jan 8 20:37:03 2020 (r356513) @@ -104,7 +104,8 @@ (!defined(__APPLE__) && defined(__arm__)) || \ (defined(__arm64__) || defined(__aarch64__)) || \ defined(__mips__) || \ - defined(__riscv) + defined(__riscv) || \ + defined(__sparc__) #if !defined(_LIBUNWIND_BUILD_SJLJ_APIS) #define _LIBUNWIND_BUILD_ZERO_COST_APIS #endif From owner-svn-src-all@freebsd.org Wed Jan 8 20:45:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A58091FA55C; Wed, 8 Jan 2020 20:45:18 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tLq23s0yz47LC; Wed, 8 Jan 2020 20:45:18 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7B29A1DD89; Wed, 8 Jan 2020 20:45:18 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008KjIWW095702; Wed, 8 Jan 2020 20:45:18 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008KjIlD095701; Wed, 8 Jan 2020 20:45:18 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001082045.008KjIlD095701@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 8 Jan 2020 20:45:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356514 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356514 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 20:45:18 -0000 Author: emaste Date: Wed Jan 8 20:45:18 2020 New Revision: 356514 URL: https://svnweb.freebsd.org/changeset/base/356514 Log: src.opts.mk: enable LLVM_UNWIND by default for all archs Only sparc64 did not enable LLVM_LIBUNWIND. After r356513 LLVM_LIBUNWIND should at least build on sparc64. The old DWARF unwinder will be removed along with GCC 4.2.1 in the near future, so switch sparc64 to use LLVM's unwinder in advance of the removal. Someone with access to the obsolete sparc64 hardware supported by FreeBSD will have to test, and investigate any failures. I will gladly help, but I don't have any suitable hardware myself. PR: 233405 Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Wed Jan 8 20:37:03 2020 (r356513) +++ head/share/mk/src.opts.mk Wed Jan 8 20:45:18 2020 (r356514) @@ -129,6 +129,7 @@ __DEFAULT_YES_OPTIONS = \ LIBPTHREAD \ LIBTHR \ LLVM_COV \ + LLVM_LIBUNWIND \ LLVM_TARGET_ALL \ LOADER_GELI \ LOADER_LUA \ @@ -315,11 +316,6 @@ BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BO .endif .if ${__T:Mriscv*} != "" BROKEN_OPTIONS+=OFED -.endif -.if ${__T} != "sparc64" -__DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND -.else -__DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND .endif .if ${__TT} != "mips" && ${__T} != "powerpc" && ${__T} != "powerpcspe" && \ ${__T} != "sparc64" From owner-svn-src-all@freebsd.org Wed Jan 8 20:49:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 027431FA6C0 for ; Wed, 8 Jan 2020 20:49:45 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tLw80tfgz47YP for ; Wed, 8 Jan 2020 20:49:43 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x836.google.com with SMTP id e5so3968834qtm.6 for ; Wed, 08 Jan 2020 12:49:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=IOn35Vanh4HI2219y7f+q4YHjgJo3rpLGp1fY6ImarU=; b=epVhzZfTcvsiHk4BtY7zgFU6uYD2ww/1Fn0GzFOOVMvGsZU4vu4DFnNGJZALFe1fSb OJyjsuXWa6ZwDRXeFLNzwVOaDzLO8+sWgLW7uuelBYBYgmly8WBE0BfgcjoRixTdYOe6 xcS+oJsxiwx20VT0XuscdOnTzuUGwPvE9zR2Bt03OmzqFmwXYKb2mKeB6aChzSvo9pfb X+aqGY70EJhURjfU6bef4Vt+/wJvONrWoBWDi65U8DNldc6EjhsL/BiFeJOO1T9BEMJe 1+dzkdCF2dtKWdE8JVgCayIQwjif3FBN9XYgjbQNhCSrbX+p+ssas92Cp9AOFcKxsaND +lIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=IOn35Vanh4HI2219y7f+q4YHjgJo3rpLGp1fY6ImarU=; b=i8q+YVBzaHaMvgkQkl7GuAqiMKVX6JlQA+6jQaZpzZua6iIXJpqowI7GIxQtIa4CWM aT9UCEldVxSZ+MatwOYBzo8k6kwulUh6V2wi2WQ7Yq5qajtcoG/IZbHx71nhiROCdefY 1DcI94VoDIb7bPPA2l9RQhJHye4ik6bZ3rRujmy3JkTxarAkRdVOMPMoRw67WP3FN25X mbquKm4WvRPcsI1YYXdsMuXXX9aLjGk2WB5uqoR2wrJCVGhgWbxpbryGpBfalKWDfSMH H3mVJseURAvq8f2ZesGOtQESGp/Bhqe1839zSGe1m3Bvo3TfN02L0LoogRbjEJNTpjjj 3t1A== X-Gm-Message-State: APjAAAWAyLGusdW8oj0CPMwCv5P2IvAsBbVutaJx7CsYGQj57Fd1qxFM 19peIRRwPunC8FSjSN8PlRLS2f85Pq9RNjlT7dVq/Q== X-Google-Smtp-Source: APXvYqx5F8x0wQ/3awb+joLu+DP3XceX84UEjdbQ3tPb5dt+/SSYSwQ0A/v8WEz9MzOM+G6mzQkmDJlmXSQ1iWv/o8E= X-Received: by 2002:ac8:21ec:: with SMTP id 41mr5321202qtz.242.1578516583084; Wed, 08 Jan 2020 12:49:43 -0800 (PST) MIME-Version: 1.0 References: <202001082045.008KjIlD095701@repo.freebsd.org> In-Reply-To: <202001082045.008KjIlD095701@repo.freebsd.org> From: Warner Losh Date: Wed, 8 Jan 2020 13:49:29 -0700 Message-ID: Subject: Re: svn commit: r356514 - head/share/mk To: Ed Maste Cc: src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 47tLw80tfgz47YP X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=epVhzZfT; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::836) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.64 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[9]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[6.3.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.64)[ip: (-9.17), ipnet: 2607:f8b0::/32(-2.12), asn: 15169(-1.85), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 20:49:45 -0000 On Wed, Jan 8, 2020 at 1:45 PM Ed Maste wrote: > Author: emaste > Date: Wed Jan 8 20:45:18 2020 > New Revision: 356514 > URL: https://svnweb.freebsd.org/changeset/base/356514 > > Log: > src.opts.mk: enable LLVM_UNWIND by default for all archs > > Only sparc64 did not enable LLVM_LIBUNWIND. After r356513 LLVM_LIBUNWIND > should at least build on sparc64. The old DWARF unwinder will be removed > along with GCC 4.2.1 in the near future, so switch sparc64 to use LLVM's > unwinder in advance of the removal. Someone with access to the obsolete > sparc64 hardware supported by FreeBSD will have to test, and investigate > any failures. I will gladly help, but I don't have any suitable hardware > myself. > > PR: 233405 > One fewer option defaults based on Arch! And there was much rejoicing. Warner > Modified: > head/share/mk/src.opts.mk > > Modified: head/share/mk/src.opts.mk > > ============================================================================== > --- head/share/mk/src.opts.mk Wed Jan 8 20:37:03 2020 (r356513) > +++ head/share/mk/src.opts.mk Wed Jan 8 20:45:18 2020 (r356514) > @@ -129,6 +129,7 @@ __DEFAULT_YES_OPTIONS = \ > LIBPTHREAD \ > LIBTHR \ > LLVM_COV \ > + LLVM_LIBUNWIND \ > LLVM_TARGET_ALL \ > LOADER_GELI \ > LOADER_LUA \ > @@ -315,11 +316,6 @@ BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BO > .endif > .if ${__T:Mriscv*} != "" > BROKEN_OPTIONS+=OFED > -.endif > -.if ${__T} != "sparc64" > -__DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND > -.else > -__DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND > .endif > .if ${__TT} != "mips" && ${__T} != "powerpc" && ${__T} != "powerpcspe" && > \ > ${__T} != "sparc64" > From owner-svn-src-all@freebsd.org Wed Jan 8 20:51:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2BFA51FA79C; Wed, 8 Jan 2020 20:51:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tLxm0C1mz47r2; Wed, 8 Jan 2020 20:51:08 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0242A1DED4; Wed, 8 Jan 2020 20:51:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Kp7Eo097477; Wed, 8 Jan 2020 20:51:07 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Kp7AA097476; Wed, 8 Jan 2020 20:51:07 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001082051.008Kp7AA097476@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 8 Jan 2020 20:51:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356515 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356515 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 20:51:08 -0000 Author: emaste Date: Wed Jan 8 20:51:07 2020 New Revision: 356515 URL: https://svnweb.freebsd.org/changeset/base/356515 Log: src.opts.mk: Remove sparc64 LLVM_LIBUNWIND BROKEN_OPTIONS After r356513 it should build. Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Wed Jan 8 20:45:18 2020 (r356514) +++ head/share/mk/src.opts.mk Wed Jan 8 20:51:07 2020 (r356515) @@ -392,8 +392,6 @@ BROKEN_OPTIONS+=NVME .if ${__T:Msparc64} # Sparc64 need extra crt*.o files - PR 239851 BROKEN_OPTIONS+=BSD_CRTBEGIN -# PR 233405 -BROKEN_OPTIONS+=LLVM_LIBUNWIND .endif .if ${COMPILER_FEATURES:Mc++11} && \ From owner-svn-src-all@freebsd.org Wed Jan 8 20:56:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BC20A1FA9DA; Wed, 8 Jan 2020 20:56:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tM3y4Yx5z486d; Wed, 8 Jan 2020 20:56:30 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 97E2B1DF59; Wed, 8 Jan 2020 20:56:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008KuUaY001619; Wed, 8 Jan 2020 20:56:30 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008KuUcp001618; Wed, 8 Jan 2020 20:56:30 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001082056.008KuUcp001618@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 8 Jan 2020 20:56:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356516 - head X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356516 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 20:56:30 -0000 Author: emaste Date: Wed Jan 8 20:56:30 2020 New Revision: 356516 URL: https://svnweb.freebsd.org/changeset/base/356516 Log: Remove prereq lib support for GNU unwinder LLVM's libunwind is used for all archs, as of r356514. As GCC 4.2.1 will soon be removed, and with it the GNU unwinder, start simplifying the prereq/startup lib logic in Makefile.inc1. From here if there are any unwinder bugs (on any arch) the path foward is to fix LLVM's libunwind. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Wed Jan 8 20:51:07 2020 (r356515) +++ head/Makefile.inc1 Wed Jan 8 20:56:30 2020 (r356516) @@ -2815,17 +2815,6 @@ lib/libgcc_s__L: lib/libc_nonshared__L .if ${MK_LIBCPLUSPLUS} != "no" lib/libcxxrt__L: lib/libgcc_s__L .endif - -.else # MK_LLVM_LIBUNWIND == no - -_prereq_libs+= gnu/lib/libgcc -_startup_libs+= gnu/lib/libgcc - -gnu/lib/libgcc__L: lib/libc__L -gnu/lib/libgcc__L: lib/libc_nonshared__L -.if ${MK_LIBCPLUSPLUS} != "no" -lib/libcxxrt__L: gnu/lib/libgcc__L -.endif .endif _prebuild_libs= ${_kerberos5_lib_libasn1} \ From owner-svn-src-all@freebsd.org Wed Jan 8 21:07:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 042091FAFA4; Wed, 8 Jan 2020 21:07:56 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tMK76P9Nz48mf; Wed, 8 Jan 2020 21:07:55 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D28601E141; Wed, 8 Jan 2020 21:07:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008L7t8R007733; Wed, 8 Jan 2020 21:07:55 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008L7t5A007732; Wed, 8 Jan 2020 21:07:55 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001082107.008L7t5A007732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 8 Jan 2020 21:07:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356517 - in head/gnu/lib: . libgcc X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head/gnu/lib: . libgcc X-SVN-Commit-Revision: 356517 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 21:07:56 -0000 Author: emaste Date: Wed Jan 8 21:07:55 2020 New Revision: 356517 URL: https://svnweb.freebsd.org/changeset/base/356517 Log: Retire build support for GCC's DWARF unwinder As of r356514 LLVM's libunwind is used as the DWARF unwinder on all supported CPU architectures, and GCC and its libraries will be removed soon. Retire the build infrastructure for GCC's unwinder; from here if there are any unwinder bugs (on any arch) the path forward is to fix LLVM's libunwind. Deleted: head/gnu/lib/libgcc/ Modified: head/gnu/lib/Makefile Modified: head/gnu/lib/Makefile ============================================================================== --- head/gnu/lib/Makefile Wed Jan 8 20:56:30 2020 (r356516) +++ head/gnu/lib/Makefile Wed Jan 8 21:07:55 2020 (r356517) @@ -19,10 +19,6 @@ SUBDIR+= csu SUBDIR+= libregex .endif -.if ${MK_LLVM_LIBUNWIND} == "no" -SUBDIR+= libgcc -.endif - # libsupc++ uses libstdc++ headers, although 'make includes' should # have taken care of that already. .if ${MK_GNUCXX} != "no" From owner-svn-src-all@freebsd.org Wed Jan 8 21:22:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 082BF1FB73B; Wed, 8 Jan 2020 21:22:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tMfD6TD2z49vp; Wed, 8 Jan 2020 21:22:44 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D97791E4FA; Wed, 8 Jan 2020 21:22: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 008LMibY019583; Wed, 8 Jan 2020 21:22:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008LMiB3019582; Wed, 8 Jan 2020 21:22:44 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001082122.008LMiB3019582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 8 Jan 2020 21:22:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356518 - stable/12 X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12 X-SVN-Commit-Revision: 356518 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 21:22:45 -0000 Author: dim Date: Wed Jan 8 21:22:44 2020 New Revision: 356518 URL: https://svnweb.freebsd.org/changeset/base/356518 Log: MFC r354859: WITH_SYSTEM_LINKER: Fix rebuilding lld every time. This is due to LLD_REVISION_STRING being renamed to LLD_REVISION in r351442 and the value being moved to another location in r351965. `make test-system-linker` can be used to see the values being used here. Reported by: ler Modified: stable/12/Makefile.inc1 Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Wed Jan 8 21:07:55 2020 (r356517) +++ stable/12/Makefile.inc1 Wed Jan 8 21:22:44 2020 (r356518) @@ -279,9 +279,9 @@ WANT_LINKER_TYPE= .if !defined(WANT_LINKER_FREEBSD_VERSION) && !make(showconfig) && \ !make(test-system-compiler) .if ${WANT_LINKER_TYPE} == "lld" -WANT_LINKER_FREEBSD_VERSION_FILE= lib/clang/include/lld/Common/Version.inc +WANT_LINKER_FREEBSD_VERSION_FILE= lib/clang/include/VCSVersion.inc WANT_LINKER_FREEBSD_VERSION!= \ - awk '$$2 == "LLD_REVISION_STRING" {gsub(/"/, "", $$3); print $$3}' \ + awk '$$2 == "LLD_REVISION" {gsub(/"/, "", $$3); print $$3}' \ ${SRCDIR}/${WANT_LINKER_FREEBSD_VERSION_FILE} || echo unknown WANT_LINKER_VERSION_FILE= lib/clang/include/lld/Common/Version.inc WANT_LINKER_VERSION!= \ From owner-svn-src-all@freebsd.org Wed Jan 8 22:06:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD42B1FC8C8; Wed, 8 Jan 2020 22:06:31 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tNcl4Z3Gz4D7C; Wed, 8 Jan 2020 22:06:31 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 97E0A1EC68; Wed, 8 Jan 2020 22:06:31 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008M6VDS043678; Wed, 8 Jan 2020 22:06:31 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008M6VsZ043677; Wed, 8 Jan 2020 22:06:31 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001082206.008M6VsZ043677@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 8 Jan 2020 22:06:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356519 - head/sys/dev/iicbus/mux X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: head/sys/dev/iicbus/mux X-SVN-Commit-Revision: 356519 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 22:06:31 -0000 Author: ian Date: Wed Jan 8 22:06:31 2020 New Revision: 356519 URL: https://svnweb.freebsd.org/changeset/base/356519 Log: Ensure any reserved gpio pins get released if an early exit is taken from the attach function. Modified: head/sys/dev/iicbus/mux/iic_gpiomux.c Modified: head/sys/dev/iicbus/mux/iic_gpiomux.c ============================================================================== --- head/sys/dev/iicbus/mux/iic_gpiomux.c Wed Jan 8 21:22:44 2020 (r356518) +++ head/sys/dev/iicbus/mux/iic_gpiomux.c Wed Jan 8 22:06:31 2020 (r356519) @@ -119,6 +119,15 @@ gpiomux_probe(device_t dev) return (rv); } +static void +gpiomux_release_pins(struct gpiomux_softc *sc) +{ + int i; + + for (i = 0; i < sc->numpins; ++i) + gpio_pin_release(sc->pins[i]); +} + static int gpiomux_attach(device_t dev) { @@ -145,13 +154,16 @@ gpiomux_attach(device_t dev) sc->numpins = i; if (sc->numpins == 0) { device_printf(dev, "cannot acquire pins listed in mux-gpios\n"); - return ((err == 0) ? ENXIO : err); + if (err == 0) + err = ENXIO; + goto errexit; } numchannels = 1u << sc->numpins; if (numchannels > IICMUX_MAX_BUSES) { device_printf(dev, "too many mux-gpios pins for max %d buses\n", IICMUX_MAX_BUSES); - return (EINVAL); + err = EINVAL; + goto errexit; } /* @@ -163,13 +175,15 @@ gpiomux_attach(device_t dev) len = OF_getencprop(node, "i2c-parent", &propval, sizeof(propval)); if (len != sizeof(propval)) { device_printf(dev, "cannot obtain i2c-parent property\n"); - return (ENXIO); + err = ENXIO; + goto errexit; } busdev = OF_device_from_xref((phandle_t)propval); if (busdev == NULL) { device_printf(dev, "cannot find device referenced by i2c-parent property\n"); - return (ENXIO); + err = ENXIO; + goto errexit; } device_printf(dev, "upstream bus is %s\n", device_get_nameunit(busdev)); @@ -202,6 +216,11 @@ gpiomux_attach(device_t dev) if ((err = iicmux_attach(dev, busdev, numchannels)) == 0) bus_generic_attach(dev); +errexit: + + if (err != 0) + gpiomux_release_pins(sc); + return (err); } @@ -209,13 +228,12 @@ static int gpiomux_detach(device_t dev) { struct gpiomux_softc *sc = device_get_softc(dev); - int err, i; + int err; if ((err = iicmux_detach(dev)) != 0) return (err); - for (i = 0; i < sc->numpins; ++i) - gpio_pin_release(sc->pins[i]); + gpiomux_release_pins(sc); return (0); } From owner-svn-src-all@freebsd.org Wed Jan 8 22:16:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1E93E1FCD13; Wed, 8 Jan 2020 22:16:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tNrC04bjz4Djm; Wed, 8 Jan 2020 22:16:27 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F1D371EE48; Wed, 8 Jan 2020 22:16:26 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008MGQ5S049662; Wed, 8 Jan 2020 22:16:26 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008MGQpX049661; Wed, 8 Jan 2020 22:16:26 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001082216.008MGQpX049661@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 8 Jan 2020 22:16:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356520 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 356520 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 22:16:27 -0000 Author: jhb Date: Wed Jan 8 22:16:26 2020 New Revision: 356520 URL: https://svnweb.freebsd.org/changeset/base/356520 Log: Remove no-longer-used function prototype. Reported by: amd64-gcc Modified: head/sys/opencrypto/cryptodev.c Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Wed Jan 8 22:06:31 2020 (r356519) +++ head/sys/opencrypto/cryptodev.c Wed Jan 8 22:16:26 2020 (r356520) @@ -326,7 +326,6 @@ static struct fileops cryptofops = { static struct csession *csefind(struct fcrypt *, u_int); static bool csedelete(struct fcrypt *, u_int); -static void cseadd(struct fcrypt *, struct csession *); static struct csession *csecreate(struct fcrypt *, crypto_session_t, caddr_t, u_int64_t, caddr_t, u_int64_t, u_int32_t, u_int32_t, struct enc_xform *, struct auth_hash *); From owner-svn-src-all@freebsd.org Wed Jan 8 22:45:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 085001FD68C; Wed, 8 Jan 2020 22:45:33 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tPTm6VQtz4FyW; Wed, 8 Jan 2020 22:45:32 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DA6271F3AF; Wed, 8 Jan 2020 22:45:32 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008MjW2M067264; Wed, 8 Jan 2020 22:45:32 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008MjWBY067263; Wed, 8 Jan 2020 22:45:32 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001082245.008MjWBY067263@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 8 Jan 2020 22:45:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356521 - head/sys/dev/iicbus/mux X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: head/sys/dev/iicbus/mux X-SVN-Commit-Revision: 356521 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 22:45:33 -0000 Author: ian Date: Wed Jan 8 22:45:32 2020 New Revision: 356521 URL: https://svnweb.freebsd.org/changeset/base/356521 Log: Init sc->maxbus to -1, not 0. It represents the highest array index that has a non-NULL child bus stored in it, so the "none" value can't be zero since that's a valid array index. Also, when adding all possible buses because there is no specific per-bus config, there's no need to reset sc->maxbus on each loop iteration, it can be set once after the loop. Modified: head/sys/dev/iicbus/mux/iicmux.c Modified: head/sys/dev/iicbus/mux/iicmux.c ============================================================================== --- head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 22:16:26 2020 (r356520) +++ head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 22:45:32 2020 (r356521) @@ -249,6 +249,7 @@ iicmux_attach(device_t dev, device_t busdev, int numbu sc->dev = dev; sc->busdev = busdev; + sc->maxbus = -1; sc->numbuses = numbuses; SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), @@ -262,7 +263,8 @@ iicmux_attach(device_t dev, device_t busdev, int numbu #ifdef FDT phandle_t child, node, parent; - pcell_t idx; + pcell_t reg; + int idx; /* * Find our FDT node. Child nodes within our node will become our @@ -285,11 +287,12 @@ iicmux_attach(device_t dev, device_t busdev, int numbu * Attach the children represented in the device tree. */ for (child = OF_child(parent); child != 0; child = OF_peer(child)) { - if (OF_getencprop(child, "reg", &idx, sizeof(idx)) == -1) { + if (OF_getencprop(child, "reg", ®, sizeof(reg)) == -1) { device_printf(dev, "child bus missing required 'reg' property\n"); continue; } + idx = (int)reg; if (idx >= sc->numbuses) { device_printf(dev, "child bus 'reg' property %d exceeds the number " @@ -314,9 +317,8 @@ iicmux_attach(device_t dev, device_t busdev, int numbu for (i = 0; i < sc->numbuses; ++i) { sc->childdevs[i] = device_add_child(sc->dev, "iicbus", -1); - if (sc->maxbus < i) - sc->maxbus = i; } + sc->maxbus = sc->numbuses - 1; return (0); } From owner-svn-src-all@freebsd.org Wed Jan 8 22:48:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F39781FD760; Wed, 8 Jan 2020 22:48:14 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tPXt4hcJz4G6m; Wed, 8 Jan 2020 22:48:14 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C5C41F3B2; Wed, 8 Jan 2020 22:48:14 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008MmECA067420; Wed, 8 Jan 2020 22:48:14 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008MmE6D067419; Wed, 8 Jan 2020 22:48:14 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001082248.008MmE6D067419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 8 Jan 2020 22:48:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356522 - head/sys/dev/iicbus/mux X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: head/sys/dev/iicbus/mux X-SVN-Commit-Revision: 356522 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 22:48:15 -0000 Author: ian Date: Wed Jan 8 22:48:14 2020 New Revision: 356522 URL: https://svnweb.freebsd.org/changeset/base/356522 Log: Change some KASSERT to device_printf + return EINVAL. There's no need to bring the whole kernel down due to a configuration error detected when a module is loaded, it suffices to just not attach the device. Modified: head/sys/dev/iicbus/mux/iicmux.c Modified: head/sys/dev/iicbus/mux/iicmux.c ============================================================================== --- head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 22:45:32 2020 (r356521) +++ head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 22:48:14 2020 (r356522) @@ -222,10 +222,16 @@ iicmux_add_child(device_t dev, device_t child, int bus { struct iicmux_softc *sc = device_get_softc(dev); - KASSERT(busidx < sc->numbuses, - ("iicmux_add_child: bus idx %d too big", busidx)); - KASSERT(sc->childdevs[busidx] == NULL, - ("iicmux_add_child: bus idx %d already added", busidx)); + if (busidx >= sc->numbuses) { + device_printf(dev, + "iicmux_add_child: bus idx %d too big", busidx); + return (EINVAL); + } + if (sc->childdevs[busidx] != NULL) { + device_printf(dev, "iicmux_add_child: bus idx %d already added", + busidx); + return (EINVAL); + } sc->childdevs[busidx] = child; if (sc->maxbus < busidx) @@ -240,12 +246,11 @@ iicmux_attach(device_t dev, device_t busdev, int numbu struct iicmux_softc *sc = device_get_softc(dev); int i, numadded; - /* - * Init the softc... - */ - KASSERT(numbuses <= IICMUX_MAX_BUSES, - ("iicmux_attach: numbuses %d exceeds max %d\n", - numbuses, IICMUX_MAX_BUSES)); + if (numbuses >= IICMUX_MAX_BUSES) { + device_printf(dev, "iicmux_attach: numbuses %d > max %d\n", + numbuses, IICMUX_MAX_BUSES); + return (EINVAL); + } sc->dev = dev; sc->busdev = busdev; From owner-svn-src-all@freebsd.org Wed Jan 8 22:55:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B1501FDD49; Wed, 8 Jan 2020 22:55:25 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tPj91YNtz4Gqj; Wed, 8 Jan 2020 22:55:25 +0000 (UTC) (envelope-from vmaffione@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2FD531F578; Wed, 8 Jan 2020 22:55:25 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008MtPB6073655; Wed, 8 Jan 2020 22:55:25 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008MtMsY073642; Wed, 8 Jan 2020 22:55:22 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202001082255.008MtMsY073642@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Wed, 8 Jan 2020 22:55:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356523 - head/usr.sbin/bhyve X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: head/usr.sbin/bhyve X-SVN-Commit-Revision: 356523 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 22:55:25 -0000 Author: vmaffione Date: Wed Jan 8 22:55:22 2020 New Revision: 356523 URL: https://svnweb.freebsd.org/changeset/base/356523 Log: bhyve: add wrapper for debug printf statements Add printf() wrapper to use CR/CRLF terminators depending on whether stdio is mapped to a tty open in raw mode. Try to use the wrapper everywhere. For now we leave the custom DPRINTF/WPRINTF defined by device models, but we may remove them in the future. Reviewed by: grehan, jhb MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D22657 Added: head/usr.sbin/bhyve/debug.h (contents, props changed) Modified: head/usr.sbin/bhyve/audio.c head/usr.sbin/bhyve/bhyverun.c head/usr.sbin/bhyve/block_if.c head/usr.sbin/bhyve/bootrom.c head/usr.sbin/bhyve/consport.c head/usr.sbin/bhyve/hda_codec.c head/usr.sbin/bhyve/mptbl.c head/usr.sbin/bhyve/net_backends.c head/usr.sbin/bhyve/net_utils.c head/usr.sbin/bhyve/pci_ahci.c head/usr.sbin/bhyve/pci_e82545.c head/usr.sbin/bhyve/pci_emul.c head/usr.sbin/bhyve/pci_fbuf.c head/usr.sbin/bhyve/pci_hda.c head/usr.sbin/bhyve/pci_hda.h head/usr.sbin/bhyve/pci_lpc.c head/usr.sbin/bhyve/pci_nvme.c head/usr.sbin/bhyve/pci_uart.c head/usr.sbin/bhyve/pci_virtio_block.c head/usr.sbin/bhyve/pci_virtio_console.c head/usr.sbin/bhyve/pci_virtio_net.c head/usr.sbin/bhyve/pci_virtio_rnd.c head/usr.sbin/bhyve/pci_virtio_scsi.c head/usr.sbin/bhyve/pci_xhci.c head/usr.sbin/bhyve/ps2kbd.c head/usr.sbin/bhyve/ps2mouse.c head/usr.sbin/bhyve/rfb.c head/usr.sbin/bhyve/smbiostbl.c head/usr.sbin/bhyve/task_switch.c head/usr.sbin/bhyve/uart_emul.c head/usr.sbin/bhyve/usb_mouse.c head/usr.sbin/bhyve/virtio.c head/usr.sbin/bhyve/xmsr.c Modified: head/usr.sbin/bhyve/audio.c ============================================================================== --- head/usr.sbin/bhyve/audio.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/audio.c Wed Jan 8 22:55:22 2020 (r356523) @@ -92,7 +92,7 @@ audio_init(const char *dev_name, uint8_t dir) if (strlen(dev_name) < sizeof(aud->dev_name)) memcpy(aud->dev_name, dev_name, strlen(dev_name) + 1); else { - DPRINTF("dev_name too big\n\r"); + DPRINTF("dev_name too big"); free(aud); return NULL; } @@ -101,7 +101,7 @@ audio_init(const char *dev_name, uint8_t dir) aud->fd = open(aud->dev_name, aud->dir ? O_WRONLY : O_RDONLY, 0); if (aud->fd == -1) { - DPRINTF("Failed to open dev: %s, errno: %d\n\r", + DPRINTF("Failed to open dev: %s, errno: %d", aud->dev_name, errno); free(aud); return (NULL); @@ -137,7 +137,7 @@ audio_set_params(struct audio *aud, struct audio_param assert(params); if ((audio_fd = aud->fd) < 0) { - DPRINTF("Incorrect audio device descriptor for %s\n\r", + DPRINTF("Incorrect audio device descriptor for %s", aud->dev_name); return (-1); } @@ -146,7 +146,7 @@ audio_set_params(struct audio *aud, struct audio_param if (aud->inited) { err = ioctl(audio_fd, SNDCTL_DSP_RESET, NULL); if (err == -1) { - DPRINTF("Failed to reset fd: %d, errno: %d\n\r", + DPRINTF("Failed to reset fd: %d, errno: %d", aud->fd, errno); return (-1); } @@ -157,14 +157,14 @@ audio_set_params(struct audio *aud, struct audio_param format = params->format; err = ioctl(audio_fd, SNDCTL_DSP_SETFMT, &format); if (err == -1) { - DPRINTF("Fail to set fmt: 0x%x errno: %d\n\r", + DPRINTF("Fail to set fmt: 0x%x errno: %d", params->format, errno); return -1; } /* The device does not support the requested audio format */ if (format != params->format) { - DPRINTF("Mismatch format: 0x%x params->format: 0x%x\n\r", + DPRINTF("Mismatch format: 0x%x params->format: 0x%x", format, params->format); return -1; } @@ -173,14 +173,14 @@ audio_set_params(struct audio *aud, struct audio_param channels = params->channels; err = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &channels); if (err == -1) { - DPRINTF("Fail to set channels: %d errno: %d\n\r", + DPRINTF("Fail to set channels: %d errno: %d", params->channels, errno); return -1; } /* The device does not support the requested no. of channels */ if (channels != params->channels) { - DPRINTF("Mismatch channels: %d params->channels: %d\n\r", + DPRINTF("Mismatch channels: %d params->channels: %d", channels, params->channels); return -1; } @@ -189,14 +189,14 @@ audio_set_params(struct audio *aud, struct audio_param rate = params->rate; err = ioctl(audio_fd, SNDCTL_DSP_SPEED, &rate); if (err == -1) { - DPRINTF("Fail to set speed: %d errno: %d\n\r", + DPRINTF("Fail to set speed: %d errno: %d", params->rate, errno); return -1; } /* The device does not support the requested rate / speed */ if (rate != params->rate) { - DPRINTF("Mismatch rate: %d params->rate: %d\n\r", + DPRINTF("Mismatch rate: %d params->rate: %d", rate, params->rate); return -1; } @@ -205,10 +205,10 @@ audio_set_params(struct audio *aud, struct audio_param err = ioctl(audio_fd, aud->dir ? SNDCTL_DSP_GETOSPACE : SNDCTL_DSP_GETISPACE, &info); if (err == -1) { - DPRINTF("Fail to get audio buf info errno: %d\n\r", errno); + DPRINTF("Fail to get audio buf info errno: %d", errno); return -1; } - DPRINTF("fragstotal: 0x%x fragsize: 0x%x\n\r", + DPRINTF("fragstotal: 0x%x fragsize: 0x%x", info.fragstotal, info.fragsize); #endif return 0; @@ -237,7 +237,7 @@ audio_playback(struct audio *aud, const void *buf, siz while (total < count) { len = write(audio_fd, buf + total, count - total); if (len == -1) { - DPRINTF("Fail to write to fd: %d, errno: %d\n\r", + DPRINTF("Fail to write to fd: %d, errno: %d", audio_fd, errno); return -1; } @@ -273,7 +273,7 @@ audio_record(struct audio *aud, void *buf, size_t coun while (total < count) { len = read(audio_fd, buf + total, count - total); if (len == -1) { - DPRINTF("Fail to write to fd: %d, errno: %d\n\r", + DPRINTF("Fail to write to fd: %d, errno: %d", audio_fd, errno); return -1; } Modified: head/usr.sbin/bhyve/bhyverun.c ============================================================================== --- head/usr.sbin/bhyve/bhyverun.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/bhyverun.c Wed Jan 8 22:55:22 2020 (r356523) @@ -167,6 +167,8 @@ uint16_t cores, maxcpus, sockets, threads; char *guest_uuid_str; +int raw_stdio = 0; + static int gdb_port = 0; static int guest_vmexit_on_hlt, guest_vmexit_on_pause; static int virtio_msix = 1; Modified: head/usr.sbin/bhyve/block_if.c ============================================================================== --- head/usr.sbin/bhyve/block_if.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/block_if.c Wed Jan 8 22:55:22 2020 (r356523) @@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include #include "bhyverun.h" +#include "debug.h" #include "mevent.h" #include "block_if.h" @@ -442,7 +443,7 @@ blockif_open(const char *optstr, const char *ident) else if (sscanf(cp, "sectorsize=%d", &ssopt) == 1) pssopt = ssopt; else { - fprintf(stderr, "Invalid device option \"%s\"\n", cp); + EPRINTLN("Invalid device option \"%s\"", cp); goto err; } } @@ -514,7 +515,7 @@ blockif_open(const char *optstr, const char *ident) if (ssopt != 0) { if (!powerof2(ssopt) || !powerof2(pssopt) || ssopt < 512 || ssopt > pssopt) { - fprintf(stderr, "Invalid sector size %d/%d\n", + EPRINTLN("Invalid sector size %d/%d", ssopt, pssopt); goto err; } @@ -528,8 +529,8 @@ blockif_open(const char *optstr, const char *ident) */ if (S_ISCHR(sbuf.st_mode)) { if (ssopt < sectsz || (ssopt % sectsz) != 0) { - fprintf(stderr, "Sector size %d incompatible " - "with underlying device sector size %d\n", + EPRINTLN("Sector size %d incompatible " + "with underlying device sector size %d", ssopt, sectsz); goto err; } Modified: head/usr.sbin/bhyve/bootrom.c ============================================================================== --- head/usr.sbin/bhyve/bootrom.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/bootrom.c Wed Jan 8 22:55:22 2020 (r356523) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include "bhyverun.h" #include "bootrom.h" +#include "debug.h" #define MAX_BOOTROM_SIZE (16 * 1024 * 1024) /* 16 MB */ @@ -60,13 +61,13 @@ bootrom_init(struct vmctx *ctx, const char *romfile) rv = -1; fd = open(romfile, O_RDONLY); if (fd < 0) { - fprintf(stderr, "Error opening bootrom \"%s\": %s\n", + EPRINTLN("Error opening bootrom \"%s\": %s", romfile, strerror(errno)); goto done; } if (fstat(fd, &sbuf) < 0) { - fprintf(stderr, "Could not fstat bootrom file \"%s\": %s\n", + EPRINTLN("Could not fstat bootrom file \"%s\": %s", romfile, strerror(errno)); goto done; } @@ -76,13 +77,13 @@ bootrom_init(struct vmctx *ctx, const char *romfile) * MMIO space (e.g. APIC, HPET, MSI). */ if (sbuf.st_size > MAX_BOOTROM_SIZE || sbuf.st_size < PAGE_SIZE) { - fprintf(stderr, "Invalid bootrom size %ld\n", sbuf.st_size); + EPRINTLN("Invalid bootrom size %ld", sbuf.st_size); goto done; } if (sbuf.st_size & PAGE_MASK) { - fprintf(stderr, "Bootrom size %ld is not a multiple of the " - "page size\n", sbuf.st_size); + EPRINTLN("Bootrom size %ld is not a multiple of the " + "page size", sbuf.st_size); goto done; } @@ -100,8 +101,8 @@ bootrom_init(struct vmctx *ctx, const char *romfile) for (i = 0; i < sbuf.st_size / PAGE_SIZE; i++) { rlen = read(fd, ptr + i * PAGE_SIZE, PAGE_SIZE); if (rlen != PAGE_SIZE) { - fprintf(stderr, "Incomplete read of page %d of bootrom " - "file %s: %ld bytes\n", i, romfile, rlen); + EPRINTLN("Incomplete read of page %d of bootrom " + "file %s: %ld bytes", i, romfile, rlen); goto done; } } Modified: head/usr.sbin/bhyve/consport.c ============================================================================== --- head/usr.sbin/bhyve/consport.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/consport.c Wed Jan 8 22:55:22 2020 (r356523) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include "inout.h" #include "pci_lpc.h" +#include "debug.h" #define BVM_CONSOLE_PORT 0x220 #define BVM_CONS_SIG ('b' << 8 | 'v') @@ -70,6 +71,7 @@ ttyopen(void) cfmakeraw(&tio_new); tcsetattr(STDIN_FILENO, TCSANOW, &tio_new); + raw_stdio = 1; atexit(ttyclose); } Added: head/usr.sbin/bhyve/debug.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bhyve/debug.h Wed Jan 8 22:55:22 2020 (r356523) @@ -0,0 +1,47 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 Vincenzo Maffione + * + * 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 OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _DEBUG_H_ +#define _DEBUG_H_ + + +extern int raw_stdio; + +#define FPRINTLN(filep, fmt, arg...) \ + do { \ + if (raw_stdio) \ + fprintf(filep, fmt "\r\n", ##arg); \ + else \ + fprintf(filep, fmt "\n", ##arg); \ + } while (0) + +#define PRINTLN(fmt, arg...) FPRINTLN(stdout, fmt, ##arg) +#define EPRINTLN(fmt, arg...) FPRINTLN(stderr, fmt, ##arg) + +#endif Modified: head/usr.sbin/bhyve/hda_codec.c ============================================================================== --- head/usr.sbin/bhyve/hda_codec.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/hda_codec.c Wed Jan 8 22:55:22 2020 (r356523) @@ -400,7 +400,7 @@ hda_codec_init(struct hda_codec_inst *hci, const char if (!(play || rec)) return (-1); - DPRINTF("cad: 0x%x opts: %s\n\r", hci->cad, opts); + DPRINTF("cad: 0x%x opts: %s", hci->cad, opts); sc = calloc(1, sizeof(*sc)); if (!sc) @@ -420,7 +420,7 @@ hda_codec_init(struct hda_codec_inst *hci, const char sc->conf_default = hda_codec_conf_default; sc->pin_ctrl_default = hda_codec_pin_ctrl_default; sc->verb_handlers = hda_codec_verb_handlers; - DPRINTF("HDA Codec nodes: %d\n\r", sc->no_nodes); + DPRINTF("HDA Codec nodes: %d", sc->no_nodes); /* * Initialize the Audio Output stream @@ -435,7 +435,7 @@ hda_codec_init(struct hda_codec_inst *hci, const char st->aud = audio_init(play, 1); if (!st->aud) { - DPRINTF("Fail to init the output audio player\n\r"); + DPRINTF("Fail to init the output audio player"); return (-1); } } @@ -453,7 +453,7 @@ hda_codec_init(struct hda_codec_inst *hci, const char st->aud = audio_init(rec, 0); if (!st->aud) { - DPRINTF("Fail to init the input audio player\n\r"); + DPRINTF("Fail to init the input audio player"); return (-1); } } @@ -488,11 +488,11 @@ hda_codec_reset(struct hda_codec_inst *hci) st->right_mute = HDA_CODEC_SET_AMP_GAIN_MUTE_MUTE; } - DPRINTF("cad: 0x%x\n\r", hci->cad); + DPRINTF("cad: 0x%x", hci->cad); if (!hops->signal) { DPRINTF("The controller ops does not implement \ - the signal function\n\r"); + the signal function"); return (-1); } @@ -538,7 +538,7 @@ hda_codec_command(struct hda_codec_inst *hci, uint32_t if (!hops->response) { DPRINTF("The controller ops does not implement \ - the response function\n\r"); + the response function"); return (-1); } @@ -566,11 +566,11 @@ hda_codec_command(struct hda_codec_inst *hci, uint32_t if (sc->verb_handlers[nid]) res = sc->verb_handlers[nid](sc, verb, payload); else - DPRINTF("Unknown VERB: 0x%x\n\r", verb); + DPRINTF("Unknown VERB: 0x%x", verb); break; } - DPRINTF("cad: 0x%x nid: 0x%x verb: 0x%x payload: 0x%x response: 0x%x\n\r", + DPRINTF("cad: 0x%x nid: 0x%x verb: 0x%x payload: 0x%x response: 0x%x", cad, nid, verb, payload, res); return (hops->response(hci, res, HDA_CODEC_RESPONSE_EX_SOL)); @@ -595,11 +595,11 @@ hda_codec_notify(struct hda_codec_inst *hci, uint8_t r i = dir ? HDA_CODEC_STREAM_OUTPUT : HDA_CODEC_STREAM_INPUT; st = &sc->streams[i]; - DPRINTF("run: %d, stream: 0x%x, st->stream: 0x%x dir: %d\n\r", + DPRINTF("run: %d, stream: 0x%x, st->stream: 0x%x dir: %d", run, stream, st->stream, dir); if (stream != st->stream) { - DPRINTF("Stream not found\n\r"); + DPRINTF("Stream not found"); return (0); } @@ -653,7 +653,7 @@ hda_codec_parse_format(uint16_t fmt, struct audio_para params->format = AFMT_S32_LE; break; default: - DPRINTF("Unknown format bits: 0x%x\n\r", + DPRINTF("Unknown format bits: 0x%x", fmt & HDA_CODEC_FMT_BITS_MASK); return (-1); } @@ -719,7 +719,7 @@ hda_codec_audio_output_do_setup(void *arg) if (err) return (-1); - DPRINTF("rate: %d, channels: %d, format: 0x%x\n\r", + DPRINTF("rate: %d, channels: %d, format: 0x%x", params.rate, params.channels, params.format); return (audio_set_params(aud, ¶ms)); @@ -778,7 +778,7 @@ hda_codec_audio_input_do_setup(void *arg) if (err) return (-1); - DPRINTF("rate: %d, channels: %d, format: 0x%x\n\r", + DPRINTF("rate: %d, channels: %d, format: 0x%x", params.rate, params.channels, params.format); return (audio_set_params(aud, ¶ms)); @@ -792,7 +792,7 @@ hda_codec_audio_inout_nid(struct hda_codec_stream *st, uint8_t mute = 0; uint8_t gain = 0; - DPRINTF("%s verb: 0x%x, payload, 0x%x\n\r", st->actx.name, verb, payload); + DPRINTF("%s verb: 0x%x, payload, 0x%x", st->actx.name, verb, payload); switch (verb) { case HDA_CMD_VERB_GET_CONV_FMT: @@ -804,10 +804,10 @@ hda_codec_audio_inout_nid(struct hda_codec_stream *st, case HDA_CMD_VERB_GET_AMP_GAIN_MUTE: if (payload & HDA_CMD_GET_AMP_GAIN_MUTE_LEFT) { res = st->left_gain | st->left_mute; - DPRINTF("GET_AMP_GAIN_MUTE_LEFT: 0x%x\n\r", res); + DPRINTF("GET_AMP_GAIN_MUTE_LEFT: 0x%x", res); } else { res = st->right_gain | st->right_mute; - DPRINTF("GET_AMP_GAIN_MUTE_RIGHT: 0x%x\n\r", res); + DPRINTF("GET_AMP_GAIN_MUTE_RIGHT: 0x%x", res); } break; case HDA_CMD_VERB_SET_AMP_GAIN_MUTE: @@ -818,14 +818,14 @@ hda_codec_audio_inout_nid(struct hda_codec_stream *st, st->left_mute = mute; st->left_gain = gain; DPRINTF("SET_AMP_GAIN_MUTE_LEFT: \ - mute: 0x%x gain: 0x%x\n\r", mute, gain); + mute: 0x%x gain: 0x%x", mute, gain); } if (payload & HDA_CMD_SET_AMP_GAIN_MUTE_RIGHT) { st->right_mute = mute; st->right_gain = gain; DPRINTF("SET_AMP_GAIN_MUTE_RIGHT: \ - mute: 0x%x gain: 0x%x\n\r", mute, gain); + mute: 0x%x gain: 0x%x", mute, gain); } break; case HDA_CMD_VERB_GET_CONV_STREAM_CHAN: @@ -834,13 +834,13 @@ hda_codec_audio_inout_nid(struct hda_codec_stream *st, case HDA_CMD_VERB_SET_CONV_STREAM_CHAN: st->channel = payload & 0x0f; st->stream = (payload >> 4) & 0x0f; - DPRINTF("st->channel: 0x%x st->stream: 0x%x\n\r", + DPRINTF("st->channel: 0x%x st->stream: 0x%x", st->channel, st->stream); if (!st->stream) hda_audio_ctxt_stop(&st->actx); break; default: - DPRINTF("Unknown VERB: 0x%x\n\r", verb); + DPRINTF("Unknown VERB: 0x%x", verb); break; } @@ -867,7 +867,7 @@ hda_audio_ctxt_thr(void *arg) { struct hda_audio_ctxt *actx = arg; - DPRINTF("Start Thread: %s\n\r", actx->name); + DPRINTF("Start Thread: %s", actx->name); pthread_mutex_lock(&actx->mtx); while (1) { Modified: head/usr.sbin/bhyve/mptbl.c ============================================================================== --- head/usr.sbin/bhyve/mptbl.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/mptbl.c Wed Jan 8 22:55:22 2020 (r356523) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include "acpi.h" +#include "debug.h" #include "bhyverun.h" #include "mptbl.h" #include "pci_emul.h" @@ -312,7 +313,7 @@ mptable_build(struct vmctx *ctx, int ncpu) startaddr = paddr_guest2host(ctx, MPTABLE_BASE, MPTABLE_MAX_LENGTH); if (startaddr == NULL) { - fprintf(stderr, "mptable requires mapped mem\n"); + EPRINTLN("mptable requires mapped mem"); return (ENOMEM); } @@ -323,10 +324,10 @@ mptable_build(struct vmctx *ctx, int ncpu) */ for (bus = 1; bus <= PCI_BUSMAX; bus++) { if (pci_bus_configured(bus)) { - fprintf(stderr, "MPtable is incompatible with " - "multiple PCI hierarchies.\r\n"); - fprintf(stderr, "MPtable generation can be disabled " - "by passing the -Y option to bhyve(8).\r\n"); + EPRINTLN("MPtable is incompatible with " + "multiple PCI hierarchies."); + EPRINTLN("MPtable generation can be disabled " + "by passing the -Y option to bhyve(8)."); return (EINVAL); } } Modified: head/usr.sbin/bhyve/net_backends.c ============================================================================== --- head/usr.sbin/bhyve/net_backends.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/net_backends.c Wed Jan 8 22:55:22 2020 (r356523) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include +#include "debug.h" #include "iov.h" #include "mevent.h" #include "net_backends.h" @@ -156,7 +157,7 @@ SET_DECLARE(net_backend_set, struct net_backend); #define VNET_HDR_LEN sizeof(struct virtio_net_rxhdr) -#define WPRINTF(params) printf params +#define WPRINTF(params) PRINTLN params /* * The tap backend @@ -192,7 +193,7 @@ tap_init(struct net_backend *be, const char *devname, #endif if (cb == NULL) { - WPRINTF(("TAP backend requires non-NULL callback\n\r")); + WPRINTF(("TAP backend requires non-NULL callback")); return (-1); } @@ -201,7 +202,7 @@ tap_init(struct net_backend *be, const char *devname, be->fd = open(tbuf, O_RDWR); if (be->fd == -1) { - WPRINTF(("open of tap device %s failed\n\r", tbuf)); + WPRINTF(("open of tap device %s failed", tbuf)); goto error; } @@ -210,7 +211,7 @@ tap_init(struct net_backend *be, const char *devname, * notifications with the event loop */ if (ioctl(be->fd, FIONBIO, &opt) < 0) { - WPRINTF(("tap device O_NONBLOCK failed\n\r")); + WPRINTF(("tap device O_NONBLOCK failed")); goto error; } @@ -222,7 +223,7 @@ tap_init(struct net_backend *be, const char *devname, priv->mevp = mevent_add_disabled(be->fd, EVF_READ, cb, param); if (priv->mevp == NULL) { - WPRINTF(("Could not register event\n\r")); + WPRINTF(("Could not register event")); goto error; } @@ -363,7 +364,7 @@ netmap_set_vnet_hdr_len(struct net_backend *be, int vn req.nr_arg1 = vnet_hdr_len; err = ioctl(be->fd, NIOCREGIF, &req); if (err) { - WPRINTF(("Unable to set vnet header length %d\n\r", + WPRINTF(("Unable to set vnet header length %d", vnet_hdr_len)); return (err); } @@ -420,7 +421,7 @@ netmap_init(struct net_backend *be, const char *devnam priv->nmd = nm_open(priv->ifname, NULL, NETMAP_NO_TX_POLL, NULL); if (priv->nmd == NULL) { - WPRINTF(("Unable to nm_open(): interface '%s', errno (%s)\n\r", + WPRINTF(("Unable to nm_open(): interface '%s', errno (%s)", devname, strerror(errno))); free(priv); return (-1); @@ -435,7 +436,7 @@ netmap_init(struct net_backend *be, const char *devnam priv->mevp = mevent_add_disabled(be->fd, EVF_READ, cb, param); if (priv->mevp == NULL) { - WPRINTF(("Could not register event\n\r")); + WPRINTF(("Could not register event")); return (-1); } @@ -472,7 +473,7 @@ netmap_send(struct net_backend *be, struct iovec *iov, ring = priv->tx; head = ring->head; if (head == ring->tail) { - WPRINTF(("No space, drop %zu bytes\n\r", count_iov(iov, iovcnt))); + WPRINTF(("No space, drop %zu bytes", count_iov(iov, iovcnt))); goto txsync; } nm_buf = NETMAP_BUF(ring, ring->slot[head].buf_idx); @@ -513,7 +514,7 @@ netmap_send(struct net_backend *be, struct iovec *iov, * We ran out of netmap slots while * splitting the iovec fragments. */ - WPRINTF(("No space, drop %zu bytes\n\r", + WPRINTF(("No space, drop %zu bytes", count_iov(iov, iovcnt))); goto txsync; } @@ -585,7 +586,7 @@ netmap_recv(struct net_backend *be, struct iovec *iov, iovcnt--; if (iovcnt == 0) { /* No space to receive. */ - WPRINTF(("Short iov, drop %zd bytes\n\r", + WPRINTF(("Short iov, drop %zd bytes", totlen)); return (-ENOSPC); } Modified: head/usr.sbin/bhyve/net_utils.c ============================================================================== --- head/usr.sbin/bhyve/net_utils.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/net_utils.c Wed Jan 8 22:55:22 2020 (r356523) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include "bhyverun.h" +#include "debug.h" #include "net_utils.h" int @@ -53,7 +54,7 @@ net_parsemac(char *mac_str, uint8_t *mac_addr) if (ea == NULL || ETHER_IS_MULTICAST(ea->octet) || memcmp(ea->octet, zero_addr, ETHER_ADDR_LEN) == 0) { - fprintf(stderr, "Invalid MAC %s\n", mac_str); + EPRINTLN("Invalid MAC %s", mac_str); return (EINVAL); } else memcpy(mac_addr, ea->octet, ETHER_ADDR_LEN); Modified: head/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- head/usr.sbin/bhyve/pci_ahci.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/pci_ahci.c Wed Jan 8 22:55:22 2020 (r356523) @@ -240,7 +240,7 @@ ahci_generate_intr(struct pci_ahci_softc *sc, uint32_t if (p->is & p->ie) sc->is |= (1 << i); } - DPRINTF("%s(%08x) %08x\n\r", __func__, mask, sc->is); + DPRINTF("%s(%08x) %08x", __func__, mask, sc->is); /* If there is nothing enabled -- clear legacy interrupt and exit. */ if (sc->is == 0 || (sc->ghc & AHCI_GHC_IE) == 0) { @@ -282,7 +282,7 @@ ahci_port_intr(struct ahci_port *p) struct pci_devinst *pi = sc->asc_pi; int nmsg; - DPRINTF("%s(%d) %08x/%08x %08x\n\r", __func__, + DPRINTF("%s(%d) %08x/%08x %08x", __func__, p->port, p->is, p->ie, sc->is); /* If there is nothing enabled -- we are done. */ @@ -341,7 +341,7 @@ ahci_write_fis(struct ahci_port *p, enum sata_fis_type irq = (fis[1] & (1 << 6)) ? AHCI_P_IX_PS : 0; break; default: - WPRINTF("unsupported fis type %d\n\r", ft); + WPRINTF("unsupported fis type %d", ft); return; } if (fis[2] & ATA_S_ERROR) { @@ -1601,7 +1601,7 @@ handle_packet_cmd(struct ahci_port *p, int slot, uint8 DPRINTF("ACMD:"); for (i = 0; i < 16; i++) DPRINTF("%02x ", acmd[i]); - DPRINTF("\n\r"); + DPRINTF(""); } #endif @@ -1788,7 +1788,7 @@ ahci_handle_cmd(struct ahci_port *p, int slot, uint8_t handle_packet_cmd(p, slot, cfis); break; default: - WPRINTF("Unsupported cmd:%02x\n\r", cfis[2]); + WPRINTF("Unsupported cmd:%02x", cfis[2]); ahci_write_fis_d2h(p, slot, cfis, (ATA_E_ABORT << 8) | ATA_S_READY | ATA_S_ERROR); break; @@ -1818,22 +1818,22 @@ ahci_handle_slot(struct ahci_port *p, int slot) #ifdef AHCI_DEBUG prdt = (struct ahci_prdt_entry *)(cfis + 0x80); - DPRINTF("\n\rcfis:"); + DPRINTF("cfis:"); for (i = 0; i < cfl; i++) { if (i % 10 == 0) - DPRINTF("\n\r"); + DPRINTF(""); DPRINTF("%02x ", cfis[i]); } - DPRINTF("\n\r"); + DPRINTF(""); for (i = 0; i < hdr->prdtl; i++) { - DPRINTF("%d@%08"PRIx64"\n\r", prdt->dbc & 0x3fffff, prdt->dba); + DPRINTF("%d@%08"PRIx64"", prdt->dbc & 0x3fffff, prdt->dba); prdt++; } #endif if (cfis[0] != FIS_TYPE_REGH2D) { - WPRINTF("Not a H2D FIS:%02x\n\r", cfis[0]); + WPRINTF("Not a H2D FIS:%02x", cfis[0]); return; } @@ -1889,7 +1889,7 @@ ata_ioreq_cb(struct blockif_req *br, int err) uint8_t *cfis; int slot, ncq, dsm; - DPRINTF("%s %d\n\r", __func__, err); + DPRINTF("%s %d", __func__, err); ncq = dsm = 0; aior = br->br_param; @@ -1949,7 +1949,7 @@ ata_ioreq_cb(struct blockif_req *br, int err) ahci_handle_port(p); out: pthread_mutex_unlock(&sc->mtx); - DPRINTF("%s exit\n\r", __func__); + DPRINTF("%s exit", __func__); } static void @@ -1963,7 +1963,7 @@ atapi_ioreq_cb(struct blockif_req *br, int err) uint32_t tfd; int slot; - DPRINTF("%s %d\n\r", __func__, err); + DPRINTF("%s %d", __func__, err); aior = br->br_param; p = aior->io_pr; @@ -2011,7 +2011,7 @@ atapi_ioreq_cb(struct blockif_req *br, int err) ahci_handle_port(p); out: pthread_mutex_unlock(&sc->mtx); - DPRINTF("%s exit\n\r", __func__); + DPRINTF("%s exit", __func__); } static void @@ -2048,7 +2048,7 @@ pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_ offset = (offset - AHCI_OFFSET) % AHCI_STEP; struct ahci_port *p = &sc->port[port]; - DPRINTF("pci_ahci_port %d: write offset 0x%"PRIx64" value 0x%"PRIx64"\n\r", + DPRINTF("pci_ahci_port %d: write offset 0x%"PRIx64" value 0x%"PRIx64"", port, offset, value); switch (offset) { @@ -2120,7 +2120,7 @@ pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_ case AHCI_P_TFD: case AHCI_P_SIG: case AHCI_P_SSTS: - WPRINTF("pci_ahci_port: read only registers 0x%"PRIx64"\n\r", offset); + WPRINTF("pci_ahci_port: read only registers 0x%"PRIx64"", offset); break; case AHCI_P_SCTL: p->sctl = value; @@ -2149,7 +2149,7 @@ pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_ static void pci_ahci_host_write(struct pci_ahci_softc *sc, uint64_t offset, uint64_t value) { - DPRINTF("pci_ahci_host: write offset 0x%"PRIx64" value 0x%"PRIx64"\n\r", + DPRINTF("pci_ahci_host: write offset 0x%"PRIx64" value 0x%"PRIx64"", offset, value); switch (offset) { @@ -2157,7 +2157,7 @@ pci_ahci_host_write(struct pci_ahci_softc *sc, uint64_ case AHCI_PI: case AHCI_VS: case AHCI_CAP2: - DPRINTF("pci_ahci_host: read only registers 0x%"PRIx64"\n\r", offset); + DPRINTF("pci_ahci_host: read only registers 0x%"PRIx64"", offset); break; case AHCI_GHC: if (value & AHCI_GHC_HR) { @@ -2195,7 +2195,7 @@ pci_ahci_write(struct vmctx *ctx, int vcpu, struct pci else if (offset < AHCI_OFFSET + sc->ports * AHCI_STEP) pci_ahci_port_write(sc, offset, value); else - WPRINTF("pci_ahci: unknown i/o write offset 0x%"PRIx64"\n\r", offset); + WPRINTF("pci_ahci: unknown i/o write offset 0x%"PRIx64"", offset); pthread_mutex_unlock(&sc->mtx); } @@ -2226,7 +2226,7 @@ pci_ahci_host_read(struct pci_ahci_softc *sc, uint64_t value = 0; break; } - DPRINTF("pci_ahci_host: read offset 0x%"PRIx64" value 0x%x\n\r", + DPRINTF("pci_ahci_host: read offset 0x%"PRIx64" value 0x%x", offset, value); return (value); @@ -2267,7 +2267,7 @@ pci_ahci_port_read(struct pci_ahci_softc *sc, uint64_t break; } - DPRINTF("pci_ahci_port %d: read offset 0x%"PRIx64" value 0x%x\n\r", + DPRINTF("pci_ahci_port %d: read offset 0x%"PRIx64" value 0x%x", port, offset, value); return value; @@ -2294,7 +2294,7 @@ pci_ahci_read(struct vmctx *ctx, int vcpu, struct pci_ value = pci_ahci_port_read(sc, offset); else { value = 0; - WPRINTF("pci_ahci: unknown i/o read offset 0x%"PRIx64"\n\r", + WPRINTF("pci_ahci: unknown i/o read offset 0x%"PRIx64"", regoff); } value >>= 8 * (regoff & 0x3); Modified: head/usr.sbin/bhyve/pci_e82545.c ============================================================================== --- head/usr.sbin/bhyve/pci_e82545.c Wed Jan 8 22:48:14 2020 (r356522) +++ head/usr.sbin/bhyve/pci_e82545.c Wed Jan 8 22:55:22 2020 (r356523) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include "mii.h" #include "bhyverun.h" +#include "debug.h" #include "pci_emul.h" #include "mevent.h" #include "net_utils.h" @@ -229,8 +230,8 @@ struct ck_info { * Debug printf */ static int e82545_debug = 0; -#define DPRINTF(msg,params...) if (e82545_debug) fprintf(stderr, "e82545: " msg, params) -#define WPRINTF(msg,params...) fprintf(stderr, "e82545: " msg, params) +#define WPRINTF(msg,params...) PRINTLN("e82545: " msg, params) +#define DPRINTF(msg,params...) if (e82545_debug) WPRINTF(msg, params) #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) @@ -399,21 +400,21 @@ e82545_init_eeprom(struct e82545_softc *sc) } checksum = NVM_SUM - checksum; sc->eeprom_data[NVM_CHECKSUM_REG] = checksum; - DPRINTF("eeprom checksum: 0x%x\r\n", checksum); + DPRINTF("eeprom checksum: 0x%x", checksum); } static void e82545_write_mdi(struct e82545_softc *sc, uint8_t reg_addr, uint8_t phy_addr, uint32_t data) { - DPRINTF("Write mdi reg:0x%x phy:0x%x data: 0x%x\r\n", reg_addr, phy_addr, data); + DPRINTF("Write mdi reg:0x%x phy:0x%x data: 0x%x", reg_addr, phy_addr, data); } static uint32_t e82545_read_mdi(struct e82545_softc *sc, uint8_t reg_addr, uint8_t phy_addr) { - //DPRINTF("Read mdi reg:0x%x phy:0x%x\r\n", reg_addr, phy_addr); + //DPRINTF("Read mdi reg:0x%x phy:0x%x", reg_addr, phy_addr); switch (reg_addr) { case PHY_STATUS: return (MII_SR_LINK_STATUS | MII_SR_AUTONEG_CAPS | @@ -430,7 +431,7 @@ e82545_read_mdi(struct e82545_softc *sc, uint8_t reg_a case PHY_ID2: return (M88E1011_I_PHY_ID | E82545_REVISION_4) & 0xFFFF; default: - DPRINTF("Unknown mdi read reg:0x%x phy:0x%x\r\n", reg_addr, phy_addr); + DPRINTF("Unknown mdi read reg:0x%x phy:0x%x", reg_addr, phy_addr); return 0; } /* not reached */ @@ -442,13 +443,13 @@ e82545_eecd_strobe(struct e82545_softc *sc) /* Microwire state machine */ /* DPRINTF("eeprom state machine srtobe " - "0x%x 0x%x 0x%x 0x%x\r\n", + "0x%x 0x%x 0x%x 0x%x", sc->nvm_mode, sc->nvm_bits, sc->nvm_opaddr, sc->nvm_data);*/ if (sc->nvm_bits == 0) { DPRINTF("eeprom state machine not expecting data! " - "0x%x 0x%x 0x%x 0x%x\r\n", + "0x%x 0x%x 0x%x 0x%x", sc->nvm_mode, sc->nvm_bits, sc->nvm_opaddr, sc->nvm_data); return; @@ -479,13 +480,13 @@ e82545_eecd_strobe(struct e82545_softc *sc) uint16_t op = sc->nvm_opaddr & E82545_NVM_OPCODE_MASK; uint16_t addr = sc->nvm_opaddr & E82545_NVM_ADDR_MASK; if (op != E82545_NVM_OPCODE_WRITE) { - DPRINTF("Illegal eeprom write op 0x%x\r\n", + DPRINTF("Illegal eeprom write op 0x%x", sc->nvm_opaddr); } else if (addr >= E82545_NVM_EEPROM_SIZE) { - DPRINTF("Illegal eeprom write addr 0x%x\r\n", + DPRINTF("Illegal eeprom write addr 0x%x", sc->nvm_opaddr); } else { - DPRINTF("eeprom write eeprom[0x%x] = 0x%x\r\n", + DPRINTF("eeprom write eeprom[0x%x] = 0x%x", addr, sc->nvm_data); sc->eeprom_data[addr] = sc->nvm_data; } @@ -503,7 +504,7 @@ e82545_eecd_strobe(struct e82545_softc *sc) uint16_t op = sc->nvm_opaddr & E82545_NVM_OPCODE_MASK; switch (op) { case E82545_NVM_OPCODE_EWEN: - DPRINTF("eeprom write enable: 0x%x\r\n", + DPRINTF("eeprom write enable: 0x%x", sc->nvm_opaddr); /* back to opcode mode */ sc->nvm_opaddr = 0; @@ -518,10 +519,10 @@ e82545_eecd_strobe(struct e82545_softc *sc) sc->nvm_bits = E82545_NVM_DATA_BITS; if (addr < E82545_NVM_EEPROM_SIZE) { sc->nvm_data = sc->eeprom_data[addr]; - DPRINTF("eeprom read: eeprom[0x%x] = 0x%x\r\n", + DPRINTF("eeprom read: eeprom[0x%x] = 0x%x", addr, sc->nvm_data); } else { - DPRINTF("eeprom illegal read: 0x%x\r\n", + DPRINTF("eeprom illegal read: 0x%x", sc->nvm_opaddr); sc->nvm_data = 0; } @@ -533,7 +534,7 @@ e82545_eecd_strobe(struct e82545_softc *sc) sc->nvm_data = 0; break; default: - DPRINTF("eeprom unknown op: 0x%x\r\n", + DPRINTF("eeprom unknown op: 0x%x", sc->nvm_opaddr); /* back to opcode mode */ sc->nvm_opaddr = 0; @@ -543,7 +544,7 @@ e82545_eecd_strobe(struct e82545_softc *sc) } } else { DPRINTF("eeprom state machine wrong state! " - "0x%x 0x%x 0x%x 0x%x\r\n", + "0x%x 0x%x 0x%x 0x%x", sc->nvm_mode, sc->nvm_bits, sc->nvm_opaddr, sc->nvm_data); } @@ -558,7 +559,7 @@ e82545_itr_callback(int fd, enum ev_type type, void *p pthread_mutex_lock(&sc->esc_mtx); new = sc->esc_ICR & sc->esc_IMS; if (new && !sc->esc_irq_asserted) { - DPRINTF("itr callback: lintr assert %x\r\n", new); + DPRINTF("itr callback: lintr assert %x", new); sc->esc_irq_asserted = 1; pci_lintr_assert(sc->esc_pi); } else { @@ -573,7 +574,7 @@ e82545_icr_assert(struct e82545_softc *sc, uint32_t bi { uint32_t new; - DPRINTF("icr assert: 0x%x\r\n", bits); + DPRINTF("icr assert: 0x%x", bits); /* * An interrupt is only generated if bits are set that @@ -584,11 +585,11 @@ e82545_icr_assert(struct e82545_softc *sc, uint32_t bi sc->esc_ICR |= bits; if (new == 0) { - DPRINTF("icr assert: masked %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("icr assert: masked %x, ims %x", new, sc->esc_IMS); } else if (sc->esc_mevpitr != NULL) { - DPRINTF("icr assert: throttled %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("icr assert: throttled %x, ims %x", new, sc->esc_IMS); } else if (!sc->esc_irq_asserted) { - DPRINTF("icr assert: lintr assert %x\r\n", new); + DPRINTF("icr assert: lintr assert %x", new); sc->esc_irq_asserted = 1; pci_lintr_assert(sc->esc_pi); if (sc->esc_ITR != 0) { @@ -612,11 +613,11 @@ e82545_ims_change(struct e82545_softc *sc, uint32_t bi sc->esc_IMS |= bits; if (new == 0) { - DPRINTF("ims change: masked %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("ims change: masked %x, ims %x", new, sc->esc_IMS); } else if (sc->esc_mevpitr != NULL) { - DPRINTF("ims change: throttled %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("ims change: throttled %x, ims %x", new, sc->esc_IMS); } else if (!sc->esc_irq_asserted) { - DPRINTF("ims change: lintr assert %x\r\n", new); + DPRINTF("ims change: lintr assert %x", new); sc->esc_irq_asserted = 1; pci_lintr_assert(sc->esc_pi); if (sc->esc_ITR != 0) { @@ -631,7 +632,7 @@ static void e82545_icr_deassert(struct e82545_softc *sc, uint32_t bits) { - DPRINTF("icr deassert: 0x%x\r\n", bits); + DPRINTF("icr deassert: 0x%x", bits); sc->esc_ICR &= ~bits; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jan 8 22:59:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 854C01FDE54; Wed, 8 Jan 2020 22:59:32 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tPnw2yrXz4H1C; Wed, 8 Jan 2020 22:59:32 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5CB9A1F599; Wed, 8 Jan 2020 22:59:32 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008MxWTK073888; Wed, 8 Jan 2020 22:59:32 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008MxVXD073886; Wed, 8 Jan 2020 22:59:31 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001082259.008MxVXD073886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 22:59:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356524 - in stable/12/sys: netinet netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/sys: netinet netinet6 X-SVN-Commit-Revision: 356524 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 22:59:32 -0000 Author: bz Date: Wed Jan 8 22:59:31 2020 New Revision: 356524 URL: https://svnweb.freebsd.org/changeset/base/356524 Log: MFC r346535 (by hselasky): Fix build for mips and powerpc after r346530. Need to include sys/kernel.h to define SYSINIT() which is used by sys/eventhandler.h . This is now hit by r356489 which is unrelated to the original cause but the fix was never MFCed and hence manifests with different code now. Modified: stable/12/sys/netinet/ip_reass.c stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_reass.c ============================================================================== --- stable/12/sys/netinet/ip_reass.c Wed Jan 8 22:55:22 2020 (r356523) +++ stable/12/sys/netinet/ip_reass.c Wed Jan 8 22:59:31 2020 (r356524) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 22:55:22 2020 (r356523) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 22:59:31 2020 (r356524) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include From owner-svn-src-all@freebsd.org Wed Jan 8 23:03:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D0091FE062; Wed, 8 Jan 2020 23:03:48 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tPtr1CkYz4HPB; Wed, 8 Jan 2020 23:03:48 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 24F0C1F767; Wed, 8 Jan 2020 23:03:48 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008N3mCS079558; Wed, 8 Jan 2020 23:03:48 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008N3mvh079557; Wed, 8 Jan 2020 23:03:48 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001082303.008N3mvh079557@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 8 Jan 2020 23:03:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356525 - head/sys/dev/iicbus/mux X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: head/sys/dev/iicbus/mux X-SVN-Commit-Revision: 356525 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 23:03:48 -0000 Author: ian Date: Wed Jan 8 23:03:47 2020 New Revision: 356525 URL: https://svnweb.freebsd.org/changeset/base/356525 Log: Split the code to find and add iicbus children out to its own function. Move the decision to take an early exit from that function after adding children based on FDT data into the #ifdef FDT block, so that it doesn't offend coverity's notion of how the code should be written. (What's the point of compilers optimizing away dead code if static analyzers won't let you use the feature in conjuction with an #ifdef block?) Reported by: coverity via vangyzen@ Modified: head/sys/dev/iicbus/mux/iicmux.c Modified: head/sys/dev/iicbus/mux/iicmux.c ============================================================================== --- head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 22:59:31 2020 (r356524) +++ head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 23:03:47 2020 (r356525) @@ -240,36 +240,13 @@ iicmux_add_child(device_t dev, device_t child, int bus return (0); } -int -iicmux_attach(device_t dev, device_t busdev, int numbuses) +static int +iicmux_attach_children(struct iicmux_softc *sc) { - struct iicmux_softc *sc = device_get_softc(dev); - int i, numadded; - - if (numbuses >= IICMUX_MAX_BUSES) { - device_printf(dev, "iicmux_attach: numbuses %d > max %d\n", - numbuses, IICMUX_MAX_BUSES); - return (EINVAL); - } - - sc->dev = dev; - sc->busdev = busdev; - sc->maxbus = -1; - sc->numbuses = numbuses; - - SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, - "debugmux", CTLFLAG_RWTUN, &sc->debugmux, 0, "debug mux operations"); - - /* - * Add children... - */ - numadded = 0; - + int i; #ifdef FDT phandle_t child, node, parent; - pcell_t reg; - int idx; + pcell_t idx; /* * Find our FDT node. Child nodes within our node will become our @@ -292,14 +269,13 @@ iicmux_attach(device_t dev, device_t busdev, int numbu * Attach the children represented in the device tree. */ for (child = OF_child(parent); child != 0; child = OF_peer(child)) { - if (OF_getencprop(child, "reg", ®, sizeof(reg)) == -1) { - device_printf(dev, + if (OF_getencprop(child, "reg", &idx, sizeof(idx)) == -1) { + device_printf(sc->dev, "child bus missing required 'reg' property\n"); continue; } - idx = (int)reg; if (idx >= sc->numbuses) { - device_printf(dev, + device_printf(sc->dev, "child bus 'reg' property %d exceeds the number " "of buses supported by the device (%d)\n", idx, sc->numbuses); @@ -309,21 +285,48 @@ iicmux_attach(device_t dev, device_t busdev, int numbu sc->childnodes[idx] = child; if (sc->maxbus < idx) sc->maxbus = idx; - ++numadded; } + + /* If we configured anything using FDT data, we're done. */ + if (sc->maxbus >= 0) + return (0); #endif /* FDT */ /* - * If we configured anything using FDT data, we're done. Otherwise add - * an iicbus child for every downstream bus supported by the mux chip. + * If we make it to here, we didn't add any children based on FDT data. + * Add an iicbus child for every downstream bus supported by the mux. */ - if (numadded > 0) - return (0); - for (i = 0; i < sc->numbuses; ++i) { sc->childdevs[i] = device_add_child(sc->dev, "iicbus", -1); + sc->maxbus = i; } - sc->maxbus = sc->numbuses - 1; + + return (0); +} + +int +iicmux_attach(device_t dev, device_t busdev, int numbuses) +{ + struct iicmux_softc *sc = device_get_softc(dev); + int err; + + if (numbuses >= IICMUX_MAX_BUSES) { + device_printf(dev, "iicmux_attach: numbuses %d > max %d\n", + numbuses, IICMUX_MAX_BUSES); + return (EINVAL); + } + + sc->dev = dev; + sc->busdev = busdev; + sc->maxbus = -1; + sc->numbuses = numbuses; + + if ((err = iicmux_attach_children(sc)) != 0) + return (err); + + SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, + "debugmux", CTLFLAG_RWTUN, &sc->debugmux, 0, "debug mux operations"); return (0); } From owner-svn-src-all@freebsd.org Wed Jan 8 23:06:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 196B61FE140; Wed, 8 Jan 2020 23:06:14 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tPxd6xMfz4HXD; Wed, 8 Jan 2020 23:06:13 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E97E61F769; Wed, 8 Jan 2020 23:06:13 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008N6Dpk079721; Wed, 8 Jan 2020 23:06:13 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008N6DRK079720; Wed, 8 Jan 2020 23:06:13 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001082306.008N6DRK079720@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Wed, 8 Jan 2020 23:06:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356526 - head/sys/dev/iicbus/mux X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: head/sys/dev/iicbus/mux X-SVN-Commit-Revision: 356526 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 23:06:14 -0000 Author: ian Date: Wed Jan 8 23:06:13 2020 New Revision: 356526 URL: https://svnweb.freebsd.org/changeset/base/356526 Log: Remove some trailing whitespace; no functional changes. Modified: head/sys/dev/iicbus/mux/iicmux.c Modified: head/sys/dev/iicbus/mux/iicmux.c ============================================================================== --- head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 23:03:47 2020 (r356525) +++ head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 23:06:13 2020 (r356526) @@ -153,7 +153,7 @@ iicmux_intr(device_t dev, int event, char *buf) /* XXX iicbus_intr() in iiconf.c should return status. */ iicbus_intr(sc->busdev, event, buf); - return (0); + return (0); } static int @@ -213,7 +213,7 @@ iicmux_write(device_t dev, const char *buf, int len, i } /*------------------------------------------------------------------------------ - * iicmux helper functions, called by hardware-specific drivers. + * iicmux helper functions, called by hardware-specific drivers. * All these functions return a standard errno value. *----------------------------------------------------------------------------*/ @@ -324,7 +324,7 @@ iicmux_attach(device_t dev, device_t busdev, int numbu if ((err = iicmux_attach_children(sc)) != 0) return (err); - SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), + SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, "debugmux", CTLFLAG_RWTUN, &sc->debugmux, 0, "debug mux operations"); From owner-svn-src-all@freebsd.org Wed Jan 8 23:30:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B651C1FEA7B; Wed, 8 Jan 2020 23:30:29 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tQTd4Kwhz4JfN; Wed, 8 Jan 2020 23:30:29 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8B0AF1FB13; Wed, 8 Jan 2020 23:30:29 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008NUTXG091693; Wed, 8 Jan 2020 23:30:29 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008NURMB091682; Wed, 8 Jan 2020 23:30:27 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001082330.008NURMB091682@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 23:30:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356527 - in head/sys: dev/cxgbe/tom netinet netinet/tcp_stacks netinet6 X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in head/sys: dev/cxgbe/tom netinet netinet/tcp_stacks netinet6 X-SVN-Commit-Revision: 356527 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 23:30:29 -0000 Author: bz Date: Wed Jan 8 23:30:26 2020 New Revision: 356527 URL: https://svnweb.freebsd.org/changeset/base/356527 Log: vnet: virtualise more network stack sysctls. Virtualise tcp_always_keepalive, TCP and UDP log_in_vain. All three are set in the netoptions startup script, which we would love to run for VNETs as well [1]. While virtualising the log_in_vain sysctls seems pointles at first for as long as the kernel message buffer is not virtualised, it at least allows an administrator to debug the base system or an individual jail if needed without turning the logging on for all jails running on a system. PR: 243193 [1] MFC after: 2 weeks Modified: head/sys/dev/cxgbe/tom/t4_tom.c head/sys/netinet/tcp_input.c head/sys/netinet/tcp_stacks/bbr.c head/sys/netinet/tcp_stacks/rack.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_timer.c head/sys/netinet/tcp_timer.h head/sys/netinet/tcp_var.h head/sys/netinet/udp_usrreq.c head/sys/netinet/udp_var.h head/sys/netinet6/udp6_usrreq.c Modified: head/sys/dev/cxgbe/tom/t4_tom.c ============================================================================== --- head/sys/dev/cxgbe/tom/t4_tom.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/dev/cxgbe/tom/t4_tom.c Wed Jan 8 23:30:26 2020 (r356527) @@ -1146,7 +1146,7 @@ init_conn_params(struct vi_info *vi , struct offload_s cp->nagle = tp->t_flags & TF_NODELAY ? 0 : 1; /* TCP Keepalive. */ - if (tcp_always_keepalive || so_options_get(so) & SO_KEEPALIVE) + if (V_tcp_always_keepalive || so_options_get(so) & SO_KEEPALIVE) cp->keepalive = 1; else cp->keepalive = 0; Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/tcp_input.c Wed Jan 8 23:30:26 2020 (r356527) @@ -132,9 +132,9 @@ __FBSDID("$FreeBSD$"); const int tcprexmtthresh = 3; -int tcp_log_in_vain = 0; -SYSCTL_INT(_net_inet_tcp, OID_AUTO, log_in_vain, CTLFLAG_RW, - &tcp_log_in_vain, 0, +VNET_DEFINE(int, tcp_log_in_vain) = 0; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, log_in_vain, CTLFLAG_VNET | CTLFLAG_RW, + &VNET_NAME(tcp_log_in_vain), 0, "Log all incoming TCP segments to closed ports"); VNET_DEFINE(int, blackhole) = 0; @@ -892,8 +892,8 @@ findpcb: * Log communication attempts to ports that are not * in use. */ - if ((tcp_log_in_vain == 1 && (thflags & TH_SYN)) || - tcp_log_in_vain == 2) { + if ((V_tcp_log_in_vain == 1 && (thflags & TH_SYN)) || + V_tcp_log_in_vain == 2) { if ((s = tcp_log_vain(NULL, th, (void *)ip, ip6))) log(LOG_INFO, "%s; %s: Connection attempt " "to closed port\n", s, __func__); Modified: head/sys/netinet/tcp_stacks/bbr.c ============================================================================== --- head/sys/netinet/tcp_stacks/bbr.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/tcp_stacks/bbr.c Wed Jan 8 23:30:26 2020 (r356527) @@ -835,7 +835,7 @@ bbr_start_hpts_timer(struct tcp_bbr *bbr, struct tcpcb */ if ((hpts_timeout == 0) && (slot == 0)) { - if ((tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && + if ((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && (tp->t_state <= TCPS_CLOSING)) { /* * Ok we have no timer (persists, rack, tlp, rxt or @@ -998,7 +998,7 @@ bbr_timer_audit(struct tcpcb *tp, struct tcp_bbr *bbr, * (and the hptsi timer). */ return; - } else if (((tcp_always_keepalive || + } else if (((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && (tp->t_state <= TCPS_CLOSING)) && (tmr_up == PACE_TMR_KEEP) && @@ -4919,7 +4919,7 @@ bbr_timeout_keepalive(struct tcpcb *tp, struct tcp_bbr TCPSTAT_INC(tcps_keeptimeo); if (tp->t_state < TCPS_ESTABLISHED) goto dropit; - if ((tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && + if ((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && tp->t_state <= TCPS_CLOSING) { if (ticks - tp->t_rcvtime >= TP_KEEPIDLE(tp) + TP_MAXIDLE(tp)) goto dropit; @@ -11790,7 +11790,7 @@ bbr_do_segment_nounlock(struct mbuf *m, struct tcphdr ((bbr->r_ctl.rc_hpts_flags & PACE_TMR_MASK) == 0) && (SEQ_GT(tp->snd_max, tp->snd_una) || (tp->t_flags & TF_DELACK) || - ((tcp_always_keepalive || bbr->rc_inp->inp_socket->so_options & SO_KEEPALIVE) && + ((V_tcp_always_keepalive || bbr->rc_inp->inp_socket->so_options & SO_KEEPALIVE) && (tp->t_state <= TCPS_CLOSING)))) { /* * We could not send (probably in the hpts but Modified: head/sys/netinet/tcp_stacks/rack.c ============================================================================== --- head/sys/netinet/tcp_stacks/rack.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/tcp_stacks/rack.c Wed Jan 8 23:30:26 2020 (r356527) @@ -2450,7 +2450,7 @@ rack_start_hpts_timer(struct tcp_rack *rack, struct tc */ if ((hpts_timeout == 0) && (slot == 0)) { - if ((tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && + if ((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && (tp->t_state <= TCPS_CLOSING)) { /* * Ok we have no timer (persists, rack, tlp, rxt or @@ -3022,7 +3022,7 @@ rack_timeout_keepalive(struct tcpcb *tp, struct tcp_ra TCPSTAT_INC(tcps_keeptimeo); if (tp->t_state < TCPS_ESTABLISHED) goto dropit; - if ((tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && + if ((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && tp->t_state <= TCPS_CLOSING) { if (ticks - tp->t_rcvtime >= TP_KEEPIDLE(tp) + TP_MAXIDLE(tp)) goto dropit; @@ -7576,7 +7576,7 @@ rack_timer_audit(struct tcpcb *tp, struct tcp_rack *ra * of nothing outstanding and the RXT up (and the hptsi timer). */ return; - } else if (((tcp_always_keepalive || + } else if (((V_tcp_always_keepalive || rack->rc_inp->inp_socket->so_options & SO_KEEPALIVE) && (tp->t_state <= TCPS_CLOSING)) && (tmr_up == PACE_TMR_KEEP) && @@ -7867,7 +7867,7 @@ rack_do_segment_nounlock(struct mbuf *m, struct tcphdr ((rack->r_ctl.rc_hpts_flags & PACE_TMR_MASK) == 0) && (SEQ_GT(tp->snd_max, tp->snd_una) || (tp->t_flags & TF_DELACK) || - ((tcp_always_keepalive || rack->rc_inp->inp_socket->so_options & SO_KEEPALIVE) && + ((V_tcp_always_keepalive || rack->rc_inp->inp_socket->so_options & SO_KEEPALIVE) && (tp->t_state <= TCPS_CLOSING)))) { /* We could not send (probably in the hpts but stopped the timer earlier)? */ if ((tp->snd_max == tp->snd_una) && Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/tcp_subr.c Wed Jan 8 23:30:26 2020 (r356527) @@ -3283,7 +3283,7 @@ tcp_log_vain(struct in_conninfo *inc, struct tcphdr *t { /* Is logging enabled? */ - if (tcp_log_in_vain == 0) + if (V_tcp_log_in_vain == 0) return (NULL); return (tcp_log_addr(inc, th, ip4hdr, ip6hdr)); Modified: head/sys/netinet/tcp_timer.c ============================================================================== --- head/sys/netinet/tcp_timer.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/tcp_timer.c Wed Jan 8 23:30:26 2020 (r356527) @@ -125,9 +125,10 @@ SYSCTL_PROC(_net_inet_tcp, OID_AUTO, rexmit_slop, CTLT &tcp_rexmit_slop, 0, sysctl_msec_to_ticks, "I", "Retransmission Timer Slop"); -int tcp_always_keepalive = 1; -SYSCTL_INT(_net_inet_tcp, OID_AUTO, always_keepalive, CTLFLAG_RW, - &tcp_always_keepalive , 0, "Assume SO_KEEPALIVE on all TCP connections"); +VNET_DEFINE(int, tcp_always_keepalive) = 1; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, always_keepalive, CTLFLAG_VNET|CTLFLAG_RW, + &VNET_NAME(tcp_always_keepalive) , 0, + "Assume SO_KEEPALIVE on all TCP connections"); int tcp_fast_finwait2_recycle = 0; SYSCTL_INT(_net_inet_tcp, OID_AUTO, fast_finwait2_recycle, CTLFLAG_RW, @@ -431,7 +432,7 @@ tcp_timer_keep(void *xtp) TCPSTAT_INC(tcps_keeptimeo); if (tp->t_state < TCPS_ESTABLISHED) goto dropit; - if ((tcp_always_keepalive || + if ((V_tcp_always_keepalive || inp->inp_socket->so_options & SO_KEEPALIVE) && tp->t_state <= TCPS_CLOSING) { if (ticks - tp->t_rcvtime >= TP_KEEPIDLE(tp) + TP_MAXIDLE(tp)) Modified: head/sys/netinet/tcp_timer.h ============================================================================== --- head/sys/netinet/tcp_timer.h Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/tcp_timer.h Wed Jan 8 23:30:26 2020 (r356527) @@ -203,10 +203,11 @@ extern int tcp_backoff[]; extern int tcp_totbackoff; extern int tcp_rexmit_drop_options; -extern int tcp_always_keepalive; extern int tcp_finwait2_timeout; extern int tcp_fast_finwait2_recycle; +VNET_DECLARE(int, tcp_always_keepalive); +#define V_tcp_always_keepalive VNET(tcp_always_keepalive) VNET_DECLARE(int, tcp_pmtud_blackhole_detect); #define V_tcp_pmtud_blackhole_detect VNET(tcp_pmtud_blackhole_detect) VNET_DECLARE(int, tcp_pmtud_blackhole_mss); Modified: head/sys/netinet/tcp_var.h ============================================================================== --- head/sys/netinet/tcp_var.h Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/tcp_var.h Wed Jan 8 23:30:26 2020 (r356527) @@ -767,7 +767,8 @@ SYSCTL_DECL(_net_inet_tcp_sack); MALLOC_DECLARE(M_TCPLOG); #endif -extern int tcp_log_in_vain; +VNET_DECLARE(int, tcp_log_in_vain); +#define V_tcp_log_in_vain VNET(tcp_log_in_vain) /* * Global TCP tunables shared between different stacks. Modified: head/sys/netinet/udp_usrreq.c ============================================================================== --- head/sys/netinet/udp_usrreq.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/udp_usrreq.c Wed Jan 8 23:30:26 2020 (r356527) @@ -116,9 +116,9 @@ VNET_DEFINE(int, udp_cksum) = 1; SYSCTL_INT(_net_inet_udp, UDPCTL_CHECKSUM, checksum, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(udp_cksum), 0, "compute udp checksum"); -int udp_log_in_vain = 0; -SYSCTL_INT(_net_inet_udp, OID_AUTO, log_in_vain, CTLFLAG_RW, - &udp_log_in_vain, 0, "Log all incoming UDP packets"); +VNET_DEFINE(int, udp_log_in_vain) = 0; +SYSCTL_INT(_net_inet_udp, OID_AUTO, log_in_vain, CTLFLAG_VNET | CTLFLAG_RW, + &VNET_NAME(udp_log_in_vain), 0, "Log all incoming UDP packets"); VNET_DEFINE(int, udp_blackhole) = 0; SYSCTL_INT(_net_inet_udp, OID_AUTO, blackhole, CTLFLAG_VNET | CTLFLAG_RW, @@ -686,7 +686,7 @@ udp_input(struct mbuf **mp, int *offp, int proto) ip->ip_dst, uh->uh_dport, INPLOOKUP_WILDCARD | INPLOOKUP_RLOCKPCB, ifp, m); if (inp == NULL) { - if (udp_log_in_vain) { + if (V_udp_log_in_vain) { char src[INET_ADDRSTRLEN]; char dst[INET_ADDRSTRLEN]; Modified: head/sys/netinet/udp_var.h ============================================================================== --- head/sys/netinet/udp_var.h Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet/udp_var.h Wed Jan 8 23:30:26 2020 (r356527) @@ -149,9 +149,10 @@ extern u_long udp_sendspace; extern u_long udp_recvspace; VNET_DECLARE(int, udp_cksum); VNET_DECLARE(int, udp_blackhole); +VNET_DECLARE(int, udp_log_in_vain); #define V_udp_cksum VNET(udp_cksum) #define V_udp_blackhole VNET(udp_blackhole) -extern int udp_log_in_vain; +#define V_udp_log_in_vain VNET(udp_log_in_vain) static __inline struct inpcbinfo * udp_get_inpcbinfo(int protocol) Modified: head/sys/netinet6/udp6_usrreq.c ============================================================================== --- head/sys/netinet6/udp6_usrreq.c Wed Jan 8 23:06:13 2020 (r356526) +++ head/sys/netinet6/udp6_usrreq.c Wed Jan 8 23:30:26 2020 (r356527) @@ -481,7 +481,7 @@ udp6_input(struct mbuf **mp, int *offp, int proto) INPLOOKUP_WILDCARD | INPLOOKUP_RLOCKPCB, m->m_pkthdr.rcvif, m); if (inp == NULL) { - if (udp_log_in_vain) { + if (V_udp_log_in_vain) { char ip6bufs[INET6_ADDRSTRLEN]; char ip6bufd[INET6_ADDRSTRLEN]; From owner-svn-src-all@freebsd.org Wed Jan 8 23:34:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BAFE61FEC67; Wed, 8 Jan 2020 23:34:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tQZf4Q6Yz4K24; Wed, 8 Jan 2020 23:34:50 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8E65C1FCD4; Wed, 8 Jan 2020 23:34:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008NYoug097308; Wed, 8 Jan 2020 23:34:50 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008NYo86097307; Wed, 8 Jan 2020 23:34:50 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001082334.008NYo86097307@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 23:34:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356528 - head/libexec/rc/rc.d X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/libexec/rc/rc.d X-SVN-Commit-Revision: 356528 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 23:34:50 -0000 Author: bz Date: Wed Jan 8 23:34:50 2020 New Revision: 356528 URL: https://svnweb.freebsd.org/changeset/base/356528 Log: Run netoptions startup script in vnet jails. People use rc.conf inside vnet jails to configure networking setups. Presumably because some sysctl were not virtualised up until r356527 the script was not run for vnet jails leaving the rc.conf options without effect for non-obvious reasons. Run the netoptions startup script also for VNET jails now to make the rc.conf options work. PR: 243193 MFC after: 2 weeks Modified: head/libexec/rc/rc.d/netoptions Modified: head/libexec/rc/rc.d/netoptions ============================================================================== --- head/libexec/rc/rc.d/netoptions Wed Jan 8 23:30:26 2020 (r356527) +++ head/libexec/rc/rc.d/netoptions Wed Jan 8 23:34:50 2020 (r356528) @@ -6,7 +6,7 @@ # PROVIDE: netoptions # REQUIRE: FILESYSTEMS # BEFORE: netif -# KEYWORD: nojail +# KEYWORD: nojailvnet . /etc/rc.subr . /etc/network.subr From owner-svn-src-all@freebsd.org Wed Jan 8 23:39:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 357011FED7B; Wed, 8 Jan 2020 23:39:24 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tQgw0jfKz4KBC; Wed, 8 Jan 2020 23:39:24 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 13C6A1FCDB; Wed, 8 Jan 2020 23:39:24 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008NdN8L097563; Wed, 8 Jan 2020 23:39:23 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008NdNX4097562; Wed, 8 Jan 2020 23:39:23 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001082339.008NdNX4097562@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 23:39:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356529 - stable/12/sys/netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet6 X-SVN-Commit-Revision: 356529 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 23:39:24 -0000 Author: bz Date: Wed Jan 8 23:39:23 2020 New Revision: 356529 URL: https://svnweb.freebsd.org/changeset/base/356529 Log: Remove duplicate kernel.h include which came back with 356524 due to out-of-order MFCs. Modified: stable/12/sys/netinet6/frag6.c Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 23:34:50 2020 (r356528) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 23:39:23 2020 (r356529) @@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include From owner-svn-src-all@freebsd.org Thu Jan 9 00:34:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AA075221851; Thu, 9 Jan 2020 00:34:33 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-ot1-f65.google.com (mail-ot1-f65.google.com [209.85.210.65]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tRvY443rz4Mgh; Thu, 9 Jan 2020 00:34:33 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-ot1-f65.google.com with SMTP id k14so5520153otn.4; Wed, 08 Jan 2020 16:34:33 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=9PITG2Jep69Iye7nNTiTdmWORfQZo1Uyet5TeLUjZzQ=; b=S8VMsp1eZT3MdCkO5SSs0niXIW4GwHndeoWUshmLaInhDhRThIK07EvUzhm/u6V8hS LJdeSJ61igdnesdiZIew11H0n4y+GkDy6rqD+sbCq+WBYRnuQp0zXQVq+uH4aaHykwET az7NuN6BRy3lXVThq37SaWqXtG5Afk/WO6mm2R9GC//Cs4of0ULCkFEtnesF1O38dP/k nJU0nHfYpNiq9fXK8UPYMvezhhHHwrI0O9GmhD2zhg4NyiBE+04n+Nv6OLyXzZ6xbAwf bTHwfowzAb594ygxDg6bZCH9BB8sNbHqc1DrASJ+1HO4k9AP1TYAQI3SgDKxUTHMKQUr 7z2A== X-Gm-Message-State: APjAAAWaW1nWuYTIn/3cmP69HN4S1ukcNMdIng/rhCbZim7wBDEi4+Gz F8nKernSw21cB8nc+NT4QBh555Tx X-Google-Smtp-Source: APXvYqw/xvgVEw824vXI4xNPnlDRd6N8Tyw6kTfIK7swnr6hfdU/p4/CkYMNVYBLVzG2sfVvq+PQZw== X-Received: by 2002:a05:6830:151a:: with SMTP id k26mr6727233otp.74.1578530072226; Wed, 08 Jan 2020 16:34:32 -0800 (PST) Received: from mail-oi1-f179.google.com (mail-oi1-f179.google.com. [209.85.167.179]) by smtp.gmail.com with ESMTPSA id p83sm1623031oia.51.2020.01.08.16.34.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Jan 2020 16:34:32 -0800 (PST) Received: by mail-oi1-f179.google.com with SMTP id 13so2520386oij.13; Wed, 08 Jan 2020 16:34:32 -0800 (PST) X-Received: by 2002:aca:f484:: with SMTP id s126mr1070526oih.48.1578530071480; Wed, 08 Jan 2020 16:34:31 -0800 (PST) MIME-Version: 1.0 References: <202001082037.008Kb4kH089848@repo.freebsd.org> In-Reply-To: <202001082037.008Kb4kH089848@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Wed, 8 Jan 2020 16:34:20 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r356513 - in head/contrib/llvm-project/libunwind: include src To: Ed Maste Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47tRvY443rz4Mgh X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 00:34:33 -0000 I definitely don't condone this. I would prefer it be reverted. It has never been tested. It's got my name in the commit message, suggesting some level of my approval; I absolutely do not approve of it in any way. Cheers, Conrad On Wed, Jan 8, 2020 at 12:37 PM Ed Maste wrote: > > Author: emaste > Date: Wed Jan 8 20:37:03 2020 > New Revision: 356513 > URL: https://svnweb.freebsd.org/changeset/base/356513 > > Log: > libunwind: untested attempt to fix sparc64 build > > sparc64 is the only architecture currently using the DWARF unwinder from > GCC 4.2.1. Old GCC and related libraries are being removed soon; absent > other changes sparc64 would be left with no unwinder when that happens. > > Instead, commit these changes which should at least allow the LLVM > unwinder to build. Someone with access to the obolete sparc64 hardware > supported by FreeBSD will need to test the result. > > PR: 233405 > Submitted by: cem From owner-svn-src-all@freebsd.org Thu Jan 9 00:36:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 36DAF22195E; Thu, 9 Jan 2020 00:36:29 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tRxn0gVFz4Mq9; Thu, 9 Jan 2020 00:36:29 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 12364207FF; Thu, 9 Jan 2020 00:36:29 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0090aSfk032811; Thu, 9 Jan 2020 00:36:28 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0090aStL032810; Thu, 9 Jan 2020 00:36:28 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001090036.0090aStL032810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 9 Jan 2020 00:36:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356530 - stable/12/sbin/nvmecontrol X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sbin/nvmecontrol X-SVN-Commit-Revision: 356530 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 00:36:29 -0000 Author: mav Date: Thu Jan 9 00:36:28 2020 New Revision: 356530 URL: https://svnweb.freebsd.org/changeset/base/356530 Log: MFC r351824, r356392: Report the Host Buffer Memory minimum and preferred sizes. The Host Buffer feature (NVMe 1.4 section 89) allows for the NVMe card request the host provide it buffer for lookaside tables and maybe other things. Report the card's minimum and preferred sizes with nvmecontrol/camcontrol identify. Modified: stable/12/sbin/nvmecontrol/identify_ext.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/nvmecontrol/identify_ext.c ============================================================================== --- stable/12/sbin/nvmecontrol/identify_ext.c Wed Jan 8 23:39:23 2020 (r356529) +++ stable/12/sbin/nvmecontrol/identify_ext.c Thu Jan 9 00:36:28 2020 (r356530) @@ -192,6 +192,10 @@ nvme_print_controller(struct nvme_controller_data *cda uint128_to_str(to128(cdata->untncap.unvmcap), cbuf, sizeof(cbuf))); } + printf("Host Buffer Preferred Size: %llu bytes\n", + (long long unsigned)cdata->hmpre * 4096); + printf("Host Buffer Minimum Size: %llu bytes\n", + (long long unsigned)cdata->hmmin * 4096); printf("\n"); printf("NVM Command Set Attributes\n"); From owner-svn-src-all@freebsd.org Thu Jan 9 00:39:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 328F3221A86; Thu, 9 Jan 2020 00:39:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tS1N0b2Jz4Myy; Thu, 9 Jan 2020 00:39:36 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0F8AC20805; Thu, 9 Jan 2020 00:39:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0090dZSS032998; Thu, 9 Jan 2020 00:39:35 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0090dZ0o032997; Thu, 9 Jan 2020 00:39:35 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001090039.0090dZ0o032997@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 9 Jan 2020 00:39:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356531 - stable/12/sys/geom/eli X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/eli X-SVN-Commit-Revision: 356531 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 00:39:36 -0000 Author: mav Date: Thu Jan 9 00:39:35 2020 New Revision: 356531 URL: https://svnweb.freebsd.org/changeset/base/356531 Log: MFC r356284: Remove extra check for provider being closed. We already checked for that earlier, and since we hold topology lock it could not change. Modified: stable/12/sys/geom/eli/g_eli.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/eli/g_eli.c ============================================================================== --- stable/12/sys/geom/eli/g_eli.c Thu Jan 9 00:36:28 2020 (r356530) +++ stable/12/sys/geom/eli/g_eli.c Thu Jan 9 00:39:35 2020 (r356531) @@ -962,8 +962,7 @@ g_eli_destroy(struct g_eli_softc *sc, boolean_t force) bzero(sc, sizeof(*sc)); free(sc, M_ELI); - if (pp == NULL || (pp->acr == 0 && pp->acw == 0 && pp->ace == 0)) - G_ELI_DEBUG(0, "Device %s destroyed.", gp->name); + G_ELI_DEBUG(0, "Device %s destroyed.", gp->name); g_wither_geom_close(gp, ENXIO); return (0); From owner-svn-src-all@freebsd.org Thu Jan 9 00:45:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 442EA221D05; Thu, 9 Jan 2020 00:45:58 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tS8k138pz4NMP; Thu, 9 Jan 2020 00:45:57 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-oi1-f169.google.com with SMTP id k4so4452858oik.2; Wed, 08 Jan 2020 16:45:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=IHYckTUFiLGcxjX+Vv3zyvYChD3mRKw8fzOdcklyo+g=; b=khRAalop/eb9+oIqA2o4MCEIdRH3pp0Ns5r9rstj2DG0MKIHi1feJgWIg1I9kQyIec Ouc5Ualoo7sa8phCydOR2hcaMf8Vnj0TLUWagZQUMMJvK8a85OivW3amf1Xh0Rx7xCjp gVQjWIsr/5XMM82BDTikGyUPYrIt/Uw0DuJJmagUOgzxgIuVyR3fJWpTXVK+9D2Ox2mI MO7Dy/aQ1i9awog0c07A/hwIWZKWFoINe8XMaP41INMJoGfWj5kw7BLhxfeaEe0YpqRU gfy4NJB1LmABQn+0QpK8RuIuooa2CVi5Il2u2ExcTudCHQjhElnDImTzbp+p7jPgcn8w mpJw== X-Gm-Message-State: APjAAAXLtFmtGpFmVSIUPPlRN7ueqavPGMjY6YiGdC4nAZC+TUaKetqX 8xs3yLvahV7209pLnNjNm6if5C5M X-Google-Smtp-Source: APXvYqxG74+eTHAHjiu+d5Bx0JYSs0qA1LupT+nkqEipPQ5RXYJ/iCIrlvXmMT3ZF2FJkvO2pMnwnQ== X-Received: by 2002:aca:d787:: with SMTP id o129mr1140196oig.75.1578530756613; Wed, 08 Jan 2020 16:45:56 -0800 (PST) Received: from mail-ot1-f48.google.com (mail-ot1-f48.google.com. [209.85.210.48]) by smtp.gmail.com with ESMTPSA id y6sm1719923oti.44.2020.01.08.16.45.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Jan 2020 16:45:56 -0800 (PST) Received: by mail-ot1-f48.google.com with SMTP id 66so5522685otd.9; Wed, 08 Jan 2020 16:45:56 -0800 (PST) X-Received: by 2002:a9d:7593:: with SMTP id s19mr5972348otk.219.1578530756274; Wed, 08 Jan 2020 16:45:56 -0800 (PST) MIME-Version: 1.0 References: <202001082216.008MGQpX049661@repo.freebsd.org> In-Reply-To: <202001082216.008MGQpX049661@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Wed, 8 Jan 2020 16:45:45 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r356520 - head/sys/opencrypto To: John Baldwin Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47tS8k138pz4NMP X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 00:45:58 -0000 On Wed, Jan 8, 2020 at 2:16 PM John Baldwin wrote: > > Author: jhb > Date: Wed Jan 8 22:16:26 2020 > New Revision: 356520 > URL: https://svnweb.freebsd.org/changeset/base/356520 > > Log: > Remove no-longer-used function prototype. > > Reported by: amd64-gcc Also me ;-). https://reviews.freebsd.org/D23077?id=66470#inline-143562 From owner-svn-src-all@freebsd.org Thu Jan 9 01:14:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 088A2222B9C; Thu, 9 Jan 2020 01:14:28 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tSnb6Tv4z4Q4p; Thu, 9 Jan 2020 01:14:27 +0000 (UTC) (envelope-from bdrewery@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9D6420F46; Thu, 9 Jan 2020 01:14:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0091ER6B056924; Thu, 9 Jan 2020 01:14:27 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0091EQ8f056920; Thu, 9 Jan 2020 01:14:26 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001090114.0091EQ8f056920@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 9 Jan 2020 01:14:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356532 - in stable/12: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: in stable/12: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Commit-Revision: 356532 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 01:14:28 -0000 Author: bdrewery Date: Thu Jan 9 01:14:26 2020 New Revision: 356532 URL: https://svnweb.freebsd.org/changeset/base/356532 Log: MFC r352261,r352262,r352265: r352261: mtree: Fix -f -f not considering type changes. r352262: mtree -c: Fix username logic when getlogin(3) fails. r352265: mtree -O: Fix not descending on hash collisions Relnotes: yes Modified: stable/12/contrib/mtree/create.c stable/12/contrib/mtree/only.c stable/12/contrib/mtree/specspec.c stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh stable/12/usr.sbin/fmtree/specspec.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/mtree/create.c ============================================================================== --- stable/12/contrib/mtree/create.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/mtree/create.c Thu Jan 9 01:14:26 2020 (r356532) @@ -117,7 +117,7 @@ cwalk(FILE *fp) host[sizeof(host) - 1] = '\0'; if ((user = getlogin()) == NULL) { struct passwd *pw; - user = (pw = getpwuid(getuid())) == NULL ? pw->pw_name : + user = (pw = getpwuid(getuid())) != NULL ? pw->pw_name : ""; } Modified: stable/12/contrib/mtree/only.c ============================================================================== --- stable/12/contrib/mtree/only.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/mtree/only.c Thu Jan 9 01:14:26 2020 (r356532) @@ -1,4 +1,4 @@ -/* $NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $ */ +/* $NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $"); +__RCSID("$NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $"); #endif #include @@ -89,11 +89,14 @@ static void hash_insert(char *str, uint32_t h) { struct hentry *e; + char *x; if ((e = malloc(sizeof(*e))) == NULL) mtree_err("memory allocation error"); + if ((x = strdup(str)) == NULL) + mtree_err("memory allocation error"); - e->str = str; + e->str = x; e->hash = h; e->next = table[h]; table[h] = e; @@ -110,10 +113,7 @@ fill(char *str) *ptr = '\0'; if (!hash_find(str, &h)) { - char *x = strdup(str); - if (x == NULL) - mtree_err("memory allocation error"); - hash_insert(x, h); + hash_insert(str, h); fill(str); } *ptr = '/'; @@ -135,6 +135,7 @@ load_only(const char *fname) err(1, "Duplicate entry %s", line); hash_insert(line, h); fill(line); + free(line); } fclose(fp); Modified: stable/12/contrib/mtree/specspec.c ============================================================================== --- stable/12/contrib/mtree/specspec.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/mtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) @@ -145,7 +145,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } Modified: stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh ============================================================================== --- stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 01:14:26 2020 (r356532) @@ -411,7 +411,42 @@ netbsd6_nonemptydir_body() FLAVOR=netbsd6 nonemptydir_body } +atf_test_case mtree_specspec_type +mtree_specspec_type_head() +{ + atf_set "descr" "Test that spec comparisons detect type changes" +} +mtree_specspec_type_body() +{ + mkdir testdir + + touch testdir/bar + mtree -c -p testdir > mtree1.spec + + if [ ! -f mtree1.spec ]; then + atf_fail "mtree failed" + fi + + rm -f testdir/bar + ln -s foo testdir/bar + # uid change is expected to be ignored as done in -C + chown -h operator testdir/bar + mtree -c -p testdir > mtree2.spec + + if [ ! -f mtree2.spec ]; then + atf_fail "mtree failed" + fi + + atf_check -s ignore -o save:output \ + -x "mtree -f mtree1.spec -f mtree2.spec" + + if ! cut -f 3 output | egrep -q "bar file" || \ + ! cut -f 3 output | egrep -q "bar link"; then + atf_fail "mtree did not detect type change" + fi +} + atf_init_test_cases() { atf_add_test_case mtree_create @@ -423,6 +458,7 @@ atf_init_test_cases() atf_add_test_case mtree_ignore atf_add_test_case mtree_merge atf_add_test_case mtree_nonemptydir + atf_add_test_case mtree_specspec_type atf_add_test_case netbsd6_create atf_add_test_case netbsd6_check Modified: stable/12/usr.sbin/fmtree/specspec.c ============================================================================== --- stable/12/usr.sbin/fmtree/specspec.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/usr.sbin/fmtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) @@ -132,7 +132,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } From owner-svn-src-all@freebsd.org Thu Jan 9 01:17:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 08243222C79; Thu, 9 Jan 2020 01:17:03 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tSrZ6RvFz4QCl; Thu, 9 Jan 2020 01:17:02 +0000 (UTC) (envelope-from bdrewery@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D858720F49; Thu, 9 Jan 2020 01:17:02 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0091H2qa057099; Thu, 9 Jan 2020 01:17:02 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0091H1Wk057094; Thu, 9 Jan 2020 01:17:01 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001090117.0091H1Wk057094@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 9 Jan 2020 01:17:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356533 - in stable/11: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Group: stable-11 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: in stable/11: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Commit-Revision: 356533 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 01:17:03 -0000 Author: bdrewery Date: Thu Jan 9 01:17:01 2020 New Revision: 356533 URL: https://svnweb.freebsd.org/changeset/base/356533 Log: MFC r352261,r352262,r352265: r352261: mtree: Fix -f -f not considering type changes. r352262: mtree -c: Fix username logic when getlogin(3) fails. r352265: mtree -O: Fix not descending on hash collisions Relnotes: yes Modified: stable/11/contrib/mtree/create.c stable/11/contrib/mtree/only.c stable/11/contrib/mtree/specspec.c stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh stable/11/usr.sbin/fmtree/specspec.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/mtree/create.c ============================================================================== --- stable/11/contrib/mtree/create.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/mtree/create.c Thu Jan 9 01:17:01 2020 (r356533) @@ -117,7 +117,7 @@ cwalk(FILE *fp) host[sizeof(host) - 1] = '\0'; if ((user = getlogin()) == NULL) { struct passwd *pw; - user = (pw = getpwuid(getuid())) == NULL ? pw->pw_name : + user = (pw = getpwuid(getuid())) != NULL ? pw->pw_name : ""; } Modified: stable/11/contrib/mtree/only.c ============================================================================== --- stable/11/contrib/mtree/only.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/mtree/only.c Thu Jan 9 01:17:01 2020 (r356533) @@ -1,4 +1,4 @@ -/* $NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $ */ +/* $NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $"); +__RCSID("$NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $"); #endif #include @@ -89,11 +89,14 @@ static void hash_insert(char *str, uint32_t h) { struct hentry *e; + char *x; if ((e = malloc(sizeof(*e))) == NULL) mtree_err("memory allocation error"); + if ((x = strdup(str)) == NULL) + mtree_err("memory allocation error"); - e->str = str; + e->str = x; e->hash = h; e->next = table[h]; table[h] = e; @@ -110,10 +113,7 @@ fill(char *str) *ptr = '\0'; if (!hash_find(str, &h)) { - char *x = strdup(str); - if (x == NULL) - mtree_err("memory allocation error"); - hash_insert(x, h); + hash_insert(str, h); fill(str); } *ptr = '/'; @@ -135,6 +135,7 @@ load_only(const char *fname) err(1, "Duplicate entry %s", line); hash_insert(line, h); fill(line); + free(line); } fclose(fp); Modified: stable/11/contrib/mtree/specspec.c ============================================================================== --- stable/11/contrib/mtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/mtree/specspec.c Thu Jan 9 01:17:01 2020 (r356533) @@ -145,7 +145,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } Modified: stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh ============================================================================== --- stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 01:17:01 2020 (r356533) @@ -411,7 +411,42 @@ netbsd6_nonemptydir_body() FLAVOR=netbsd6 nonemptydir_body } +atf_test_case mtree_specspec_type +mtree_specspec_type_head() +{ + atf_set "descr" "Test that spec comparisons detect type changes" +} +mtree_specspec_type_body() +{ + mkdir testdir + + touch testdir/bar + mtree -c -p testdir > mtree1.spec + + if [ ! -f mtree1.spec ]; then + atf_fail "mtree failed" + fi + + rm -f testdir/bar + ln -s foo testdir/bar + # uid change is expected to be ignored as done in -C + chown -h operator testdir/bar + mtree -c -p testdir > mtree2.spec + + if [ ! -f mtree2.spec ]; then + atf_fail "mtree failed" + fi + + atf_check -s ignore -o save:output \ + -x "mtree -f mtree1.spec -f mtree2.spec" + + if ! cut -f 3 output | egrep -q "bar file" || \ + ! cut -f 3 output | egrep -q "bar link"; then + atf_fail "mtree did not detect type change" + fi +} + atf_init_test_cases() { atf_add_test_case mtree_create @@ -423,6 +458,7 @@ atf_init_test_cases() atf_add_test_case mtree_ignore atf_add_test_case mtree_merge atf_add_test_case mtree_nonemptydir + atf_add_test_case mtree_specspec_type atf_add_test_case netbsd6_create atf_add_test_case netbsd6_check Modified: stable/11/usr.sbin/fmtree/specspec.c ============================================================================== --- stable/11/usr.sbin/fmtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/usr.sbin/fmtree/specspec.c Thu Jan 9 01:17:01 2020 (r356533) @@ -132,7 +132,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } From owner-svn-src-all@freebsd.org Thu Jan 9 02:03:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7DAFA223983; Thu, 9 Jan 2020 02:03:04 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tTsh3Kzrz4S07; Thu, 9 Jan 2020 02:03:04 +0000 (UTC) (envelope-from rlibby@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6D88C21837; Thu, 9 Jan 2020 02:03:04 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009234iX086694; Thu, 9 Jan 2020 02:03:04 GMT (envelope-from rlibby@FreeBSD.org) Received: (from rlibby@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009233PJ086690; Thu, 9 Jan 2020 02:03:03 GMT (envelope-from rlibby@FreeBSD.org) Message-Id: <202001090203.009233PJ086690@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rlibby set sender to rlibby@FreeBSD.org using -f From: Ryan Libby Date: Thu, 9 Jan 2020 02:03:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356534 - in head: share/man/man9 sys/arm/arm sys/vm X-SVN-Group: head X-SVN-Commit-Author: rlibby X-SVN-Commit-Paths: in head: share/man/man9 sys/arm/arm sys/vm X-SVN-Commit-Revision: 356534 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 02:03:04 -0000 Author: rlibby Date: Thu Jan 9 02:03:03 2020 New Revision: 356534 URL: https://svnweb.freebsd.org/changeset/base/356534 Log: uma: reorganize flags - Garbage collect UMA_ZONE_PAGEABLE & UMA_ZONE_STATIC. - Move flag VTOSLAB from public to private. - Introduce public NOTPAGE flag and make HASH private. - Introduce public NOTOUCH flag and make OFFPAGE private. - Update man page. The net effect of this should be to make the contract with clients more clear. Clients should choose constraints, UMA will figure out how to implement them. This also breaks the confusing double meaning of OFFPAGE. Reviewed by: jeff, markj Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23016 Modified: head/share/man/man9/zone.9 head/sys/arm/arm/busdma_machdep-v6.c head/sys/vm/uma.h head/sys/vm/uma_core.c head/sys/vm/uma_int.h Modified: head/share/man/man9/zone.9 ============================================================================== --- head/share/man/man9/zone.9 Thu Jan 9 01:17:01 2020 (r356533) +++ head/share/man/man9/zone.9 Thu Jan 9 02:03:03 2020 (r356534) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 22, 2019 +.Dd January 8, 2020 .Dt UMA 9 .Os .Sh NAME @@ -292,18 +292,12 @@ To obtain zeroed memory from a PCPU zone, use the .Fn uma_zalloc_pcpu function and its variants instead, and pass .Dv M_ZERO . -.It Dv UMA_ZONE_OFFPAGE -By default book-keeping of items within a slab is done in the slab page itself. -This flag explicitly tells subsystem that book-keeping structure should be -allocated separately from special internal zone. -This flag requires either -.Dv UMA_ZONE_VTOSLAB -or -.Dv UMA_ZONE_HASH , -since subsystem requires a mechanism to find a book-keeping structure -to an item being freed. -The subsystem may choose to prefer offpage book-keeping for certain zones -implicitly. +.It Dv UMA_ZONE_NOTOUCH +The UMA subsystem may not directly touch (i.e. read or write) the slab memory. +Otherwise, by default, book-keeping of items within a slab may be done in the +slab page itself, and +.Dv INVARIANTS +kernels may also do use-after-free checking by accessing the slab memory. .It Dv UMA_ZONE_ZINIT The zone will have its .Ft uma_init @@ -317,13 +311,11 @@ A zone with .Dv UMA_ZONE_ZINIT flag would not return zeroed memory on every .Fn uma_zalloc . -.It Dv UMA_ZONE_HASH -The zone should use an internal hash table to find slab book-keeping -structure where an allocation being freed belongs to. -.It Dv UMA_ZONE_VTOSLAB -The zone should use special field of -.Vt vm_page_t -to find slab book-keeping structure where an allocation being freed belongs to. +.It Dv UMA_ZONE_NOTPAGE +An allocator function will be supplied with +.Fn uma_zone_set_allocf +and the memory that it returns may not be kernel virtual memory backed by VM +pages in the page array. .It Dv UMA_ZONE_MALLOC The zone is for the .Xr malloc 9 Modified: head/sys/arm/arm/busdma_machdep-v6.c ============================================================================== --- head/sys/arm/arm/busdma_machdep-v6.c Thu Jan 9 01:17:01 2020 (r356533) +++ head/sys/arm/arm/busdma_machdep-v6.c Thu Jan 9 02:03:03 2020 (r356534) @@ -244,7 +244,7 @@ busdma_init(void *dummy) * atomic ops on uma_slab_t fields and safety of this * operation is not guaranteed for write-back caches */ - uma_flags = UMA_ZONE_OFFPAGE; + uma_flags = UMA_ZONE_NOTOUCH; #endif /* * Create a cache of buffers in uncacheable memory, to implement the Modified: head/sys/vm/uma.h ============================================================================== --- head/sys/vm/uma.h Thu Jan 9 01:17:01 2020 (r356533) +++ head/sys/vm/uma.h Thu Jan 9 02:03:03 2020 (r356534) @@ -232,14 +232,10 @@ uma_zone_t uma_zcache_create(char *name, int size, uma * Definitions for uma_zcreate flags * * These flags share space with UMA_ZFLAGs in uma_int.h. Be careful not to - * overlap when adding new features. 0xff000000 is in use by uma_int.h. + * overlap when adding new features. */ -#define UMA_ZONE_PAGEABLE 0x0001 /* Return items not fully backed by - physical memory XXX Not yet */ #define UMA_ZONE_ZINIT 0x0002 /* Initialize with zeros */ -#define UMA_ZONE_STATIC 0x0004 /* Statically sized zone */ -#define UMA_ZONE_OFFPAGE 0x0008 /* Force the slab structure allocation - off of the real memory */ +#define UMA_ZONE_NOTOUCH 0x0008 /* UMA may not access the memory */ #define UMA_ZONE_MALLOC 0x0010 /* For use by malloc(9) only! */ #define UMA_ZONE_NOFREE 0x0020 /* Do not free slabs of this type! */ #define UMA_ZONE_MTXCLASS 0x0040 /* Create a new lock class */ @@ -247,20 +243,17 @@ uma_zone_t uma_zcache_create(char *name, int size, uma * Used for internal vm datastructures * only. */ -#define UMA_ZONE_HASH 0x0100 /* - * Use a hash table instead of caching - * information in the vm_page. - */ +#define UMA_ZONE_NOTPAGE 0x0100 /* allocf memory not vm pages */ #define UMA_ZONE_SECONDARY 0x0200 /* Zone is a Secondary Zone */ #define UMA_ZONE_NOBUCKET 0x0400 /* Do not use buckets. */ #define UMA_ZONE_MAXBUCKET 0x0800 /* Use largest buckets. */ -#define UMA_ZONE_CACHESPREAD 0x1000 /* +#define UMA_ZONE_MINBUCKET 0x1000 /* Use smallest buckets. */ +#define UMA_ZONE_CACHESPREAD 0x2000 /* * Spread memory start locations across * all possible cache lines. May * require many virtually contiguous * backend pages and can fail early. */ -#define UMA_ZONE_VTOSLAB 0x2000 /* Zone uses vtoslab for lookup. */ #define UMA_ZONE_NODUMP 0x4000 /* * Zone's pages will not be included in * mini-dumps. @@ -268,9 +261,9 @@ uma_zone_t uma_zcache_create(char *name, int size, uma #define UMA_ZONE_PCPU 0x8000 /* * Allocates mp_maxid + 1 slabs of PAGE_SIZE */ -#define UMA_ZONE_MINBUCKET 0x10000 /* Use smallest buckets. */ -#define UMA_ZONE_FIRSTTOUCH 0x20000 /* First touch NUMA policy */ -#define UMA_ZONE_ROUNDROBIN 0x40000 /* Round-robin NUMA policy. */ +#define UMA_ZONE_FIRSTTOUCH 0x10000 /* First touch NUMA policy */ +#define UMA_ZONE_ROUNDROBIN 0x20000 /* Round-robin NUMA policy. */ +/* In use by UMA_ZFLAGs: 0xffe00000 */ /* * These flags are shared between the keg and zone. In zones wishing to add @@ -278,9 +271,9 @@ uma_zone_t uma_zcache_create(char *name, int size, uma * physical parameters of the request and may not be provided by the consumer. */ #define UMA_ZONE_INHERIT \ - (UMA_ZONE_OFFPAGE | UMA_ZONE_MALLOC | UMA_ZONE_NOFREE | \ - UMA_ZONE_HASH | UMA_ZONE_VTOSLAB | UMA_ZONE_PCPU | \ - UMA_ZONE_FIRSTTOUCH | UMA_ZONE_ROUNDROBIN) + (UMA_ZONE_NOTOUCH | UMA_ZONE_MALLOC | UMA_ZONE_NOFREE | \ + UMA_ZONE_NOTPAGE | UMA_ZONE_PCPU | UMA_ZONE_FIRSTTOUCH | \ + UMA_ZONE_ROUNDROBIN) /* Definitions for align */ #define UMA_ALIGN_PTR (sizeof(void *) - 1) /* Alignment fit for ptr */ Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Thu Jan 9 01:17:01 2020 (r356533) +++ head/sys/vm/uma_core.c Thu Jan 9 02:03:03 2020 (r356534) @@ -744,7 +744,7 @@ zone_timeout(uma_zone_t zone, void *unused) uma_keg_t keg; u_int slabs, pages; - if ((zone->uz_flags & UMA_ZONE_HASH) == 0) + if ((zone->uz_flags & UMA_ZFLAG_HASH) == 0) goto update_wss; keg = zone->uz_keg; @@ -1163,7 +1163,7 @@ keg_free_slab(uma_keg_t keg, uma_slab_t slab, int star #endif keg->uk_fini(slab_item(slab, keg, i), keg->uk_size); } - if (keg->uk_flags & UMA_ZONE_OFFPAGE) + if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) zone_free_item(keg->uk_slabzone, slab, NULL, SKIP_NONE); keg->uk_freef(mem, PAGE_SIZE * keg->uk_ppera, flags); uma_total_dec(PAGE_SIZE * keg->uk_ppera); @@ -1200,7 +1200,7 @@ keg_drain(uma_keg_t keg) /* We have nowhere to free these to. */ if (slab->us_flags & UMA_SLAB_BOOT) continue; - if (keg->uk_flags & UMA_ZONE_HASH) + if (keg->uk_flags & UMA_ZFLAG_HASH) UMA_HASH_REMOVE(&keg->uk_hash, slab); n++; LIST_REMOVE(slab, us_link); @@ -1296,7 +1296,7 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int dom allocf = keg->uk_allocf; slab = NULL; mem = NULL; - if (keg->uk_flags & UMA_ZONE_OFFPAGE) { + if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) { slab = zone_alloc_item(keg->uk_slabzone, NULL, domain, aflags); if (slab == NULL) goto fail; @@ -1321,23 +1321,23 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int dom size = keg->uk_ppera * PAGE_SIZE; mem = allocf(zone, size, domain, &sflags, aflags); if (mem == NULL) { - if (keg->uk_flags & UMA_ZONE_OFFPAGE) + if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) zone_free_item(keg->uk_slabzone, slab, NULL, SKIP_NONE); goto fail; } uma_total_inc(size); /* For HASH zones all pages go to the same uma_domain. */ - if ((keg->uk_flags & UMA_ZONE_HASH) != 0) + if ((keg->uk_flags & UMA_ZFLAG_HASH) != 0) domain = 0; /* Point the slab into the allocated memory */ - if (!(keg->uk_flags & UMA_ZONE_OFFPAGE)) + if (!(keg->uk_flags & UMA_ZFLAG_OFFPAGE)) slab = (uma_slab_t )(mem + keg->uk_pgoff); else ((uma_hash_slab_t)slab)->uhs_data = mem; - if (keg->uk_flags & UMA_ZONE_VTOSLAB) + if (keg->uk_flags & UMA_ZFLAG_VTOSLAB) for (i = 0; i < keg->uk_ppera; i++) vsetzoneslab((vm_offset_t)mem + (i * PAGE_SIZE), zone, slab); @@ -1366,7 +1366,7 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int dom CTR3(KTR_UMA, "keg_alloc_slab: allocated slab %p for %s(%p)", slab, keg->uk_name, keg); - if (keg->uk_flags & UMA_ZONE_HASH) + if (keg->uk_flags & UMA_ZFLAG_HASH) UMA_HASH_INSERT(&keg->uk_hash, slab, mem); /* @@ -1737,9 +1737,10 @@ keg_small_init(uma_keg_t keg) * squeeze one more item in for very particular sizes if we were * to loop and reduce the bitsize if there is waste. */ - if (keg->uk_flags & UMA_ZONE_OFFPAGE) + if (keg->uk_flags & (UMA_ZONE_NOTOUCH | UMA_ZONE_PCPU)) { + keg->uk_flags |= UMA_ZFLAG_OFFPAGE; shsize = 0; - else + } else shsize = slab_sizeof(slabsize / rsize); if (rsize <= slabsize - shsize) @@ -1765,8 +1766,12 @@ keg_small_init(uma_keg_t keg) * of UMA_ZONE_VM, which clearly forbids it. */ if ((keg->uk_flags & UMA_ZFLAG_INTERNAL) || - (keg->uk_flags & UMA_ZFLAG_CACHEONLY)) + (keg->uk_flags & UMA_ZFLAG_CACHEONLY)) { + KASSERT((keg->uk_flags & UMA_ZFLAG_OFFPAGE) == 0, + ("%s: incompatible flags 0x%b", __func__, keg->uk_flags, + PRINT_UMA_ZFLAGS)); return; + } /* * See if using an OFFPAGE slab will limit our waste. Only do @@ -1794,13 +1799,15 @@ keg_small_init(uma_keg_t keg) * hash to find slabs. If the zone was explicitly created * OFFPAGE we can't necessarily touch the memory. */ - if ((keg->uk_flags & UMA_ZONE_OFFPAGE) == 0) - keg->uk_flags |= UMA_ZONE_OFFPAGE | UMA_ZONE_VTOSLAB; + keg->uk_flags |= UMA_ZFLAG_OFFPAGE; } - if ((keg->uk_flags & UMA_ZONE_OFFPAGE) && - (keg->uk_flags & UMA_ZONE_VTOSLAB) == 0) - keg->uk_flags |= UMA_ZONE_HASH; + if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) != 0) { + if ((keg->uk_flags & UMA_ZONE_NOTPAGE) != 0) + keg->uk_flags |= UMA_ZFLAG_HASH; + else + keg->uk_flags |= UMA_ZFLAG_VTOSLAB; + } } /* @@ -1827,7 +1834,7 @@ keg_large_init(uma_keg_t keg) keg->uk_rsize = keg->uk_size; /* Check whether we have enough space to not do OFFPAGE. */ - if ((keg->uk_flags & UMA_ZONE_OFFPAGE) == 0 && + if ((keg->uk_flags & UMA_ZONE_NOTOUCH) == 0 && PAGE_SIZE * keg->uk_ppera - keg->uk_rsize < slab_sizeof(SLAB_MIN_SETSIZE)) { /* @@ -1836,14 +1843,17 @@ keg_large_init(uma_keg_t keg) * slab header. */ if ((keg->uk_flags & UMA_ZFLAG_INTERNAL) == 0) - keg->uk_flags |= UMA_ZONE_OFFPAGE | UMA_ZONE_VTOSLAB; + keg->uk_flags |= UMA_ZFLAG_OFFPAGE; else keg->uk_ppera++; } - if ((keg->uk_flags & UMA_ZONE_OFFPAGE) && - (keg->uk_flags & UMA_ZONE_VTOSLAB) == 0) - keg->uk_flags |= UMA_ZONE_HASH; + if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) != 0) { + if ((keg->uk_flags & UMA_ZONE_NOTPAGE) != 0) + keg->uk_flags |= UMA_ZFLAG_HASH; + else + keg->uk_flags |= UMA_ZFLAG_VTOSLAB; + } } static void @@ -1875,7 +1885,7 @@ keg_cachespread_init(uma_keg_t keg) keg->uk_rsize = rsize; keg->uk_ppera = pages; keg->uk_ipers = ((pages * PAGE_SIZE) + trailer) / rsize; - keg->uk_flags |= UMA_ZONE_OFFPAGE | UMA_ZONE_VTOSLAB; + keg->uk_flags |= UMA_ZFLAG_OFFPAGE | UMA_ZFLAG_VTOSLAB; KASSERT(keg->uk_ipers <= SLAB_MAX_SETSIZE, ("%s: keg->uk_ipers too high(%d) increase max_ipers", __func__, keg->uk_ipers)); @@ -1926,13 +1936,10 @@ keg_ctor(void *mem, int size, void *udata, int flags) keg->uk_init = zero_init; if (arg->flags & UMA_ZONE_MALLOC) - keg->uk_flags |= UMA_ZONE_VTOSLAB; + keg->uk_flags |= UMA_ZFLAG_VTOSLAB; - if (arg->flags & UMA_ZONE_PCPU) -#ifdef SMP - keg->uk_flags |= UMA_ZONE_OFFPAGE; -#else - keg->uk_flags &= ~UMA_ZONE_PCPU; +#ifndef SMP + keg->uk_flags &= ~UMA_ZONE_PCPU; #endif if (keg->uk_flags & UMA_ZONE_CACHESPREAD) { @@ -1953,13 +1960,13 @@ keg_ctor(void *mem, int size, void *udata, int flags) */ #ifdef NUMA if ((keg->uk_flags & - (UMA_ZONE_HASH | UMA_ZONE_VM | UMA_ZONE_ROUNDROBIN)) == 0) + (UMA_ZFLAG_HASH | UMA_ZONE_VM | UMA_ZONE_ROUNDROBIN)) == 0) keg->uk_flags |= UMA_ZONE_FIRSTTOUCH; else if ((keg->uk_flags & UMA_ZONE_FIRSTTOUCH) == 0) keg->uk_flags |= UMA_ZONE_ROUNDROBIN; #endif - if (keg->uk_flags & UMA_ZONE_OFFPAGE) + if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) keg->uk_slabzone = slabzone; /* @@ -1997,7 +2004,7 @@ keg_ctor(void *mem, int size, void *udata, int flags) * figure out where in each page it goes. See slab_sizeof * definition. */ - if (!(keg->uk_flags & UMA_ZONE_OFFPAGE)) { + if (!(keg->uk_flags & UMA_ZFLAG_OFFPAGE)) { size_t shsize; shsize = slab_sizeof(keg->uk_ipers); @@ -2014,7 +2021,7 @@ keg_ctor(void *mem, int size, void *udata, int flags) zone->uz_name, keg->uk_ipers, keg->uk_rsize, keg->uk_size)); } - if (keg->uk_flags & UMA_ZONE_HASH) + if (keg->uk_flags & UMA_ZFLAG_HASH) hash_alloc(&keg->uk_hash, 0); CTR3(KTR_UMA, "keg_ctor %p zone %s(%p)\n", keg, zone->uz_name, zone); @@ -2088,7 +2095,7 @@ zone_alloc_sysctl(uma_zone_t zone, void *unused) /* * keg if present. */ - if ((zone->uz_flags & UMA_ZONE_HASH) == 0) + if ((zone->uz_flags & UMA_ZFLAG_HASH) == 0) domains = vm_ndomains; else domains = 1; @@ -2733,11 +2740,9 @@ uma_zcreate(const char *name, size_t size, uma_ctor ct * or fini procedures, no dependency on the initial value of the * memory, and no (legitimate) use of the memory after free. Note, * the ctor and dtor do not need to be empty. - * - * XXX UMA_ZONE_OFFPAGE. */ - if ((!(flags & (UMA_ZONE_ZINIT | UMA_ZONE_NOFREE))) && - uminit == NULL && fini == NULL) { + if ((!(flags & (UMA_ZONE_ZINIT | UMA_ZONE_NOTOUCH | + UMA_ZONE_NOFREE))) && uminit == NULL && fini == NULL) { args.uminit = trash_init; args.fini = trash_fini; } @@ -3220,7 +3225,7 @@ keg_fetch_free_slab(uma_keg_t keg, int domain, bool rr uint32_t reserve; /* HASH has a single free list. */ - if ((keg->uk_flags & UMA_ZONE_HASH) != 0) + if ((keg->uk_flags & UMA_ZFLAG_HASH) != 0) domain = 0; KEG_LOCK(keg, domain); @@ -4022,15 +4027,15 @@ zone_release(void *arg, void **bucket, int cnt) zone = arg; keg = zone->uz_keg; lock = NULL; - if (__predict_false((zone->uz_flags & UMA_ZONE_HASH) != 0)) + if (__predict_false((zone->uz_flags & UMA_ZFLAG_HASH) != 0)) lock = KEG_LOCK(keg, 0); for (i = 0; i < cnt; i++) { item = bucket[i]; - if (__predict_true((zone->uz_flags & UMA_ZONE_VTOSLAB) != 0)) { + if (__predict_true((zone->uz_flags & UMA_ZFLAG_VTOSLAB) != 0)) { slab = vtoslab((vm_offset_t)item); } else { mem = (uint8_t *)((uintptr_t)item & (~UMA_SLAB_MASK)); - if ((zone->uz_flags & UMA_ZONE_HASH) != 0) + if ((zone->uz_flags & UMA_ZFLAG_HASH) != 0) slab = hash_sfind(&keg->uk_hash, mem); else slab = (uma_slab_t)(mem + keg->uk_pgoff); @@ -4771,7 +4776,7 @@ sysctl_handle_uma_slab_efficiency(SYSCTL_HANDLER_ARGS) int avail, effpct, total; total = keg->uk_ppera * PAGE_SIZE; - if ((keg->uk_flags & UMA_ZONE_OFFPAGE) != 0) + if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) != 0) total += slab_sizeof(SLAB_MAX_SETSIZE); /* * We consider the client's requested size and alignment here, not the @@ -4811,10 +4816,10 @@ uma_dbg_getslab(uma_zone_t zone, void *item) mem = (uint8_t *)((uintptr_t)item & (~UMA_SLAB_MASK)); if ((zone->uz_flags & UMA_ZFLAG_CACHE) != 0) return (NULL); - if (zone->uz_flags & UMA_ZONE_VTOSLAB) + if (zone->uz_flags & UMA_ZFLAG_VTOSLAB) return (vtoslab((vm_offset_t)mem)); keg = zone->uz_keg; - if ((keg->uk_flags & UMA_ZONE_HASH) == 0) + if ((keg->uk_flags & UMA_ZFLAG_HASH) == 0) return ((uma_slab_t)(mem + keg->uk_pgoff)); KEG_LOCK(keg, 0); slab = hash_sfind(&keg->uk_hash, mem); Modified: head/sys/vm/uma_int.h ============================================================================== --- head/sys/vm/uma_int.h Thu Jan 9 01:17:01 2020 (r356533) +++ head/sys/vm/uma_int.h Thu Jan 9 02:03:03 2020 (r356534) @@ -139,7 +139,65 @@ /* Max waste percentage before going to off page slab management */ #define UMA_MAX_WASTE 10 +/* + * These flags must not overlap with the UMA_ZONE flags specified in uma.h. + */ +#define UMA_ZFLAG_OFFPAGE 0x00200000 /* + * Force the slab structure + * allocation off of the real + * memory. + */ +#define UMA_ZFLAG_HASH 0x00400000 /* + * Use a hash table instead of + * caching information in the + * vm_page. + */ +#define UMA_ZFLAG_VTOSLAB 0x00800000 /* + * Zone uses vtoslab for + * lookup. + */ +#define UMA_ZFLAG_CTORDTOR 0x01000000 /* Zone has ctor/dtor set. */ +#define UMA_ZFLAG_LIMIT 0x02000000 /* Zone has limit set. */ +#define UMA_ZFLAG_CACHE 0x04000000 /* uma_zcache_create()d it */ +#define UMA_ZFLAG_RECLAIMING 0x08000000 /* Running zone_reclaim(). */ +#define UMA_ZFLAG_BUCKET 0x10000000 /* Bucket zone. */ +#define UMA_ZFLAG_INTERNAL 0x20000000 /* No offpage no PCPU. */ +#define UMA_ZFLAG_TRASH 0x40000000 /* Add trash ctor/dtor. */ +#define UMA_ZFLAG_CACHEONLY 0x80000000 /* Don't ask VM for buckets. */ +#define UMA_ZFLAG_INHERIT \ + (UMA_ZFLAG_OFFPAGE | UMA_ZFLAG_HASH | UMA_ZFLAG_VTOSLAB | \ + UMA_ZFLAG_BUCKET | UMA_ZFLAG_INTERNAL | UMA_ZFLAG_CACHEONLY) + +#define PRINT_UMA_ZFLAGS "\20" \ + "\40CACHEONLY" \ + "\37TRASH" \ + "\36INTERNAL" \ + "\35BUCKET" \ + "\34RECLAIMING" \ + "\33CACHE" \ + "\32LIMIT" \ + "\31CTORDTOR" \ + "\30VTOSLAB" \ + "\27HASH" \ + "\26OFFPAGE" \ + "\22ROUNDROBIN" \ + "\21FIRSTTOUCH" \ + "\20PCPU" \ + "\17NODUMP" \ + "\16CACHESPREAD" \ + "\15MINBUCKET" \ + "\14MAXBUCKET" \ + "\13NOBUCKET" \ + "\12SECONDARY" \ + "\11NOTPAGE" \ + "\10VM" \ + "\7MTXCLASS" \ + "\6NOFREE" \ + "\5MALLOC" \ + "\4NOTOUCH" \ + "\2ZINIT" + /* * Hash table for freed address -> slab translation. * @@ -373,7 +431,7 @@ static inline void * slab_data(uma_slab_t slab, uma_keg_t keg) { - if ((keg->uk_flags & UMA_ZONE_OFFPAGE) == 0) + if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) == 0) return ((void *)((uintptr_t)slab - keg->uk_pgoff)); else return (((uma_hash_slab_t)slab)->uhs_data); @@ -475,50 +533,6 @@ struct uma_zone { /* uz_domain follows here. */ }; - -/* - * These flags must not overlap with the UMA_ZONE flags specified in uma.h. - */ -#define UMA_ZFLAG_CTORDTOR 0x01000000 /* Zone has ctor/dtor set. */ -#define UMA_ZFLAG_LIMIT 0x02000000 /* Zone has limit set. */ -#define UMA_ZFLAG_CACHE 0x04000000 /* uma_zcache_create()d it */ -#define UMA_ZFLAG_RECLAIMING 0x08000000 /* Running zone_reclaim(). */ -#define UMA_ZFLAG_BUCKET 0x10000000 /* Bucket zone. */ -#define UMA_ZFLAG_INTERNAL 0x20000000 /* No offpage no PCPU. */ -#define UMA_ZFLAG_TRASH 0x40000000 /* Add trash ctor/dtor. */ -#define UMA_ZFLAG_CACHEONLY 0x80000000 /* Don't ask VM for buckets. */ - -#define UMA_ZFLAG_INHERIT \ - (UMA_ZFLAG_INTERNAL | UMA_ZFLAG_CACHEONLY | UMA_ZFLAG_BUCKET) - -#define PRINT_UMA_ZFLAGS "\20" \ - "\40CACHEONLY" \ - "\37TRASH" \ - "\36INTERNAL" \ - "\35BUCKET" \ - "\34RECLAIMING" \ - "\33CACHE" \ - "\32LIMIT" \ - "\31CTORDTOR" \ - "\23ROUNDROBIN" \ - "\22FIRSTTOUCH" \ - "\21MINBUCKET" \ - "\20PCPU" \ - "\17NODUMP" \ - "\16VTOSLAB" \ - "\15CACHESPREAD" \ - "\14MAXBUCKET" \ - "\13NOBUCKET" \ - "\12SECONDARY" \ - "\11HASH" \ - "\10VM" \ - "\7MTXCLASS" \ - "\6NOFREE" \ - "\5MALLOC" \ - "\4OFFPAGE" \ - "\3STATIC" \ - "\2ZINIT" \ - "\1PAGEABLE" /* * Macros for interpreting the uz_items field. 20 bits of sleeper count From owner-svn-src-all@freebsd.org Thu Jan 9 02:03:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 43D972239F1; Thu, 9 Jan 2020 02:03:18 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tTsy1l2qz4S7H; Thu, 9 Jan 2020 02:03:18 +0000 (UTC) (envelope-from rlibby@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 36CFC2184B; Thu, 9 Jan 2020 02:03:18 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00923I8G086753; Thu, 9 Jan 2020 02:03:18 GMT (envelope-from rlibby@FreeBSD.org) Received: (from rlibby@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00923HTn086752; Thu, 9 Jan 2020 02:03:17 GMT (envelope-from rlibby@FreeBSD.org) Message-Id: <202001090203.00923HTn086752@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rlibby set sender to rlibby@FreeBSD.org using -f From: Ryan Libby Date: Thu, 9 Jan 2020 02:03:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356535 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: rlibby X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356535 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 02:03:18 -0000 Author: rlibby Date: Thu Jan 9 02:03:17 2020 New Revision: 356535 URL: https://svnweb.freebsd.org/changeset/base/356535 Log: uma: unify layout paths and improve efficiency Unify the keg layout selection paths (keg_small_init, keg_large_init, keg_cachespread_init), and slightly improve memory efficiecy by: - using the padding of the final item to store the slab header, - not going OFFPAGE if we have a choice unless it improves efficiency. Reviewed by: jeff, markj Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23048 Modified: head/sys/vm/uma_core.c head/sys/vm/uma_int.h Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Thu Jan 9 02:03:03 2020 (r356534) +++ head/sys/vm/uma_core.c Thu Jan 9 02:03:17 2020 (r356535) @@ -258,8 +258,6 @@ static void keg_dtor(void *, int, void *); static int zone_ctor(void *, int, void *, int); static void zone_dtor(void *, int, void *); static int zero_init(void *, int, int); -static void keg_small_init(uma_keg_t keg); -static void keg_large_init(uma_keg_t keg); static void zone_foreach(void (*zfunc)(uma_zone_t, void *), void *); static void zone_timeout(uma_zone_t zone, void *); static int hash_alloc(struct uma_hash *, u_int); @@ -1669,27 +1667,61 @@ slab_space(int nitems) return (UMA_SLAB_SIZE - slab_sizeof(nitems)); } +#define UMA_FIXPT_SHIFT 31 +#define UMA_FRAC_FIXPT(n, d) \ + ((uint32_t)(((uint64_t)(n) << UMA_FIXPT_SHIFT) / (d))) +#define UMA_FIXPT_PCT(f) \ + ((u_int)(((uint64_t)100 * (f)) >> UMA_FIXPT_SHIFT)) +#define UMA_PCT_FIXPT(pct) UMA_FRAC_FIXPT((pct), 100) +#define UMA_MIN_EFF UMA_PCT_FIXPT(100 - UMA_MAX_WASTE) + /* - * Compute the number of items that will fit in an embedded (!OFFPAGE) slab - * with a given size and alignment. + * Compute the number of items that will fit in a slab. If hdr is true, the + * item count may be limited to provide space in the slab for an inline slab + * header. Otherwise, all slab space will be provided for item storage. */ +static u_int +slab_ipers_hdr(u_int size, u_int rsize, u_int slabsize, bool hdr) +{ + u_int ipers; + u_int padpi; + + /* The padding between items is not needed after the last item. */ + padpi = rsize - size; + + if (hdr) { + /* + * Start with the maximum item count and remove items until + * the slab header first alongside the allocatable memory. + */ + for (ipers = MIN(SLAB_MAX_SETSIZE, + (slabsize + padpi - slab_sizeof(1)) / rsize); + ipers > 0 && + ipers * rsize - padpi + slab_sizeof(ipers) > slabsize; + ipers--) + continue; + } else { + ipers = MIN((slabsize + padpi) / rsize, SLAB_MAX_SETSIZE); + } + + return (ipers); +} + +/* + * Compute the number of items that will fit in a slab for a startup zone. + */ int slab_ipers(size_t size, int align) { int rsize; - int nitems; - /* - * Compute the ideal number of items that will fit in a page and - * then compute the actual number based on a bitset nitems wide. - */ - rsize = roundup(size, align + 1); - nitems = UMA_SLAB_SIZE / rsize; - return (slab_space(nitems) / rsize); + rsize = roundup(size, align + 1); /* Assume no CACHESPREAD */ + return (slab_ipers_hdr(size, rsize, UMA_SLAB_SIZE, true)); } /* - * Finish creating a small uma keg. This calculates ipers, and the keg size. + * Determine the format of a uma keg. This determines where the slab header + * will be placed (inline or offpage) and calculates ipers, rsize, and ppera. * * Arguments * keg The zone we should initialize @@ -1698,66 +1730,77 @@ slab_ipers(size_t size, int align) * Nothing */ static void -keg_small_init(uma_keg_t keg) +keg_layout(uma_keg_t keg) { + u_int alignsize; + u_int eff; + u_int eff_offpage; + u_int format; + u_int ipers; + u_int ipers_offpage; + u_int pages; u_int rsize; - u_int memused; - u_int wastedspace; - u_int shsize; u_int slabsize; - if (keg->uk_flags & UMA_ZONE_PCPU) { - u_int ncpus = (mp_maxid + 1) ? (mp_maxid + 1) : MAXCPU; + KASSERT((keg->uk_flags & UMA_ZONE_PCPU) == 0 || + (keg->uk_size <= UMA_PCPU_ALLOC_SIZE && + (keg->uk_flags & UMA_ZONE_CACHESPREAD) == 0), + ("%s: cannot configure for PCPU: keg=%s, size=%u, flags=0x%b", + __func__, keg->uk_name, keg->uk_size, keg->uk_flags, + PRINT_UMA_ZFLAGS)); + KASSERT((keg->uk_flags & + (UMA_ZFLAG_INTERNAL | UMA_ZFLAG_CACHEONLY)) == 0 || + (keg->uk_flags & (UMA_ZONE_NOTOUCH | UMA_ZONE_PCPU)) == 0, + ("%s: incompatible flags 0x%b", __func__, keg->uk_flags, + PRINT_UMA_ZFLAGS)); - slabsize = UMA_PCPU_ALLOC_SIZE; - keg->uk_ppera = ncpus; - } else { - slabsize = UMA_SLAB_SIZE; - keg->uk_ppera = 1; - } + alignsize = keg->uk_align + 1; + format = 0; + ipers = 0; /* * Calculate the size of each allocation (rsize) according to * alignment. If the requested size is smaller than we have * allocation bits for we round it up. */ - rsize = keg->uk_size; - if (rsize < slabsize / SLAB_MAX_SETSIZE) - rsize = slabsize / SLAB_MAX_SETSIZE; - if (rsize & keg->uk_align) - rsize = roundup(rsize, keg->uk_align + 1); - keg->uk_rsize = rsize; + rsize = MAX(keg->uk_size, UMA_SLAB_SIZE / SLAB_MAX_SETSIZE); + rsize = roundup2(rsize, alignsize); - KASSERT((keg->uk_flags & UMA_ZONE_PCPU) == 0 || - keg->uk_rsize < UMA_PCPU_ALLOC_SIZE, - ("%s: size %u too large", __func__, keg->uk_rsize)); - - /* - * Use a pessimistic bit count for shsize. It may be possible to - * squeeze one more item in for very particular sizes if we were - * to loop and reduce the bitsize if there is waste. - */ - if (keg->uk_flags & (UMA_ZONE_NOTOUCH | UMA_ZONE_PCPU)) { - keg->uk_flags |= UMA_ZFLAG_OFFPAGE; - shsize = 0; - } else - shsize = slab_sizeof(slabsize / rsize); - - if (rsize <= slabsize - shsize) - keg->uk_ipers = (slabsize - shsize) / rsize; - else { - /* Handle special case when we have 1 item per slab, so - * alignment requirement can be relaxed. */ - KASSERT(keg->uk_size <= slabsize - shsize, - ("%s: size %u greater than slab", __func__, keg->uk_size)); - keg->uk_ipers = 1; + if ((keg->uk_flags & UMA_ZONE_PCPU) != 0) { + slabsize = UMA_PCPU_ALLOC_SIZE; + pages = mp_maxid + 1; + } else if ((keg->uk_flags & UMA_ZONE_CACHESPREAD) != 0) { + /* + * We want one item to start on every align boundary in a page. + * To do this we will span pages. We will also extend the item + * by the size of align if it is an even multiple of align. + * Otherwise, it would fall on the same boundary every time. + */ + if ((rsize & alignsize) == 0) + rsize += alignsize; + slabsize = rsize * (PAGE_SIZE / alignsize); + slabsize = MIN(slabsize, rsize * SLAB_MAX_SETSIZE); + slabsize = MIN(slabsize, UMA_CACHESPREAD_MAX_SIZE); + pages = howmany(slabsize, PAGE_SIZE); + slabsize = ptoa(pages); + } else { + /* + * Choose a slab size of as many pages as it takes to represent + * a single item. We will then try to fit as many additional + * items into the slab as possible. At some point, we may want + * to increase the slab size for awkward item sizes in order to + * increase efficiency. + */ + pages = howmany(keg->uk_size, PAGE_SIZE); + slabsize = ptoa(pages); } - KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= SLAB_MAX_SETSIZE, - ("%s: keg->uk_ipers %u", __func__, keg->uk_ipers)); - memused = keg->uk_ipers * rsize + shsize; - wastedspace = slabsize - memused; + /* Evaluate an inline slab layout. */ + if ((keg->uk_flags & (UMA_ZONE_NOTOUCH | UMA_ZONE_PCPU)) == 0) + ipers = slab_ipers_hdr(keg->uk_size, rsize, slabsize, true); + /* TODO: vm_page-embedded slab. */ + /* * We can't do OFFPAGE if we're internal or if we've been * asked to not go to the VM for buckets. If we do this we @@ -1765,130 +1808,63 @@ keg_small_init(uma_keg_t keg) * want to do if we're UMA_ZFLAG_CACHEONLY as a result * of UMA_ZONE_VM, which clearly forbids it. */ - if ((keg->uk_flags & UMA_ZFLAG_INTERNAL) || - (keg->uk_flags & UMA_ZFLAG_CACHEONLY)) { - KASSERT((keg->uk_flags & UMA_ZFLAG_OFFPAGE) == 0, - ("%s: incompatible flags 0x%b", __func__, keg->uk_flags, - PRINT_UMA_ZFLAGS)); - return; + if ((keg->uk_flags & + (UMA_ZFLAG_INTERNAL | UMA_ZFLAG_CACHEONLY)) != 0) { + if (ipers == 0) { + /* We need an extra page for the slab header. */ + pages++; + slabsize = ptoa(pages); + ipers = slab_ipers_hdr(keg->uk_size, rsize, slabsize, + true); + } + goto out; } /* - * See if using an OFFPAGE slab will limit our waste. Only do - * this if it permits more items per-slab. + * See if using an OFFPAGE slab will improve our efficiency. + * Only do this if we are below our efficiency threshold. * * XXX We could try growing slabsize to limit max waste as well. * Historically this was not done because the VM could not * efficiently handle contiguous allocations. */ - if ((wastedspace >= slabsize / UMA_MAX_WASTE) && - (keg->uk_ipers < (slabsize / keg->uk_rsize))) { - keg->uk_ipers = slabsize / keg->uk_rsize; - KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= SLAB_MAX_SETSIZE, - ("%s: keg->uk_ipers %u", __func__, keg->uk_ipers)); - CTR6(KTR_UMA, "UMA decided we need offpage slab headers for " - "keg: %s(%p), calculated wastedspace = %d, " - "maximum wasted space allowed = %d, " - "calculated ipers = %d, " - "new wasted space = %d\n", keg->uk_name, keg, wastedspace, - slabsize / UMA_MAX_WASTE, keg->uk_ipers, - slabsize - keg->uk_ipers * keg->uk_rsize); - /* - * If we had access to memory to embed a slab header we - * also have a page structure to use vtoslab() instead of - * hash to find slabs. If the zone was explicitly created - * OFFPAGE we can't necessarily touch the memory. - */ - keg->uk_flags |= UMA_ZFLAG_OFFPAGE; + eff = UMA_FRAC_FIXPT(ipers * rsize, slabsize); + ipers_offpage = slab_ipers_hdr(keg->uk_size, rsize, slabsize, false); + eff_offpage = UMA_FRAC_FIXPT(ipers_offpage * rsize, + slabsize + slab_sizeof(SLAB_MAX_SETSIZE)); + if (ipers == 0 || (eff < UMA_MIN_EFF && eff < eff_offpage)) { + CTR5(KTR_UMA, "UMA decided we need offpage slab headers for " + "keg: %s(%p), minimum efficiency allowed = %u%%, " + "old efficiency = %u%%, offpage efficiency = %u%%\n", + keg->uk_name, keg, UMA_FIXPT_PCT(UMA_MIN_EFF), + UMA_FIXPT_PCT(eff), UMA_FIXPT_PCT(eff_offpage)); + format = UMA_ZFLAG_OFFPAGE; + ipers = ipers_offpage; } - if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) != 0) { +out: + /* + * How do we find the slab header if it is offpage or if not all item + * start addresses are in the same page? We could solve the latter + * case with vaddr alignment, but we don't. + */ + if ((format & UMA_ZFLAG_OFFPAGE) != 0 || + (ipers - 1) * rsize >= PAGE_SIZE) { if ((keg->uk_flags & UMA_ZONE_NOTPAGE) != 0) - keg->uk_flags |= UMA_ZFLAG_HASH; + format |= UMA_ZFLAG_HASH; else - keg->uk_flags |= UMA_ZFLAG_VTOSLAB; + format |= UMA_ZFLAG_VTOSLAB; } -} - -/* - * Finish creating a large (> UMA_SLAB_SIZE) uma kegs. Just give in and do - * OFFPAGE for now. When I can allow for more dynamic slab sizes this will be - * more complicated. - * - * Arguments - * keg The keg we should initialize - * - * Returns - * Nothing - */ -static void -keg_large_init(uma_keg_t keg) -{ - - KASSERT(keg != NULL, ("Keg is null in keg_large_init")); - KASSERT((keg->uk_flags & UMA_ZONE_PCPU) == 0, - ("%s: Cannot large-init a UMA_ZONE_PCPU keg", __func__)); - - keg->uk_ppera = howmany(keg->uk_size, PAGE_SIZE); - keg->uk_ipers = 1; - keg->uk_rsize = keg->uk_size; - - /* Check whether we have enough space to not do OFFPAGE. */ - if ((keg->uk_flags & UMA_ZONE_NOTOUCH) == 0 && - PAGE_SIZE * keg->uk_ppera - keg->uk_rsize < - slab_sizeof(SLAB_MIN_SETSIZE)) { - /* - * We can't do OFFPAGE if we're internal, in which case - * we need an extra page per allocation to contain the - * slab header. - */ - if ((keg->uk_flags & UMA_ZFLAG_INTERNAL) == 0) - keg->uk_flags |= UMA_ZFLAG_OFFPAGE; - else - keg->uk_ppera++; - } - - if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) != 0) { - if ((keg->uk_flags & UMA_ZONE_NOTPAGE) != 0) - keg->uk_flags |= UMA_ZFLAG_HASH; - else - keg->uk_flags |= UMA_ZFLAG_VTOSLAB; - } -} - -static void -keg_cachespread_init(uma_keg_t keg) -{ - int alignsize; - int trailer; - int pages; - int rsize; - - KASSERT((keg->uk_flags & UMA_ZONE_PCPU) == 0, - ("%s: Cannot cachespread-init a UMA_ZONE_PCPU keg", __func__)); - - alignsize = keg->uk_align + 1; - rsize = keg->uk_size; - /* - * We want one item to start on every align boundary in a page. To - * do this we will span pages. We will also extend the item by the - * size of align if it is an even multiple of align. Otherwise, it - * would fall on the same boundary every time. - */ - if (rsize & keg->uk_align) - rsize = (rsize & ~keg->uk_align) + alignsize; - if ((rsize & alignsize) == 0) - rsize += alignsize; - trailer = rsize - keg->uk_size; - pages = (rsize * (PAGE_SIZE / alignsize)) / PAGE_SIZE; - pages = MIN(pages, (128 * 1024) / PAGE_SIZE); + keg->uk_ipers = ipers; keg->uk_rsize = rsize; + keg->uk_flags |= format; keg->uk_ppera = pages; - keg->uk_ipers = ((pages * PAGE_SIZE) + trailer) / rsize; - keg->uk_flags |= UMA_ZFLAG_OFFPAGE | UMA_ZFLAG_VTOSLAB; - KASSERT(keg->uk_ipers <= SLAB_MAX_SETSIZE, - ("%s: keg->uk_ipers too high(%d) increase max_ipers", __func__, - keg->uk_ipers)); + CTR6(KTR_UMA, "%s: keg=%s, flags=%#x, rsize=%u, ipers=%u, ppera=%u\n", + __func__, keg->uk_name, keg->uk_flags, rsize, ipers, pages); + KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= SLAB_MAX_SETSIZE, + ("%s: keg=%s, flags=0x%b, rsize=%u, ipers=%u, ppera=%u", __func__, + keg->uk_name, keg->uk_flags, PRINT_UMA_ZFLAGS, rsize, ipers, + pages)); } /* @@ -1942,14 +1918,7 @@ keg_ctor(void *mem, int size, void *udata, int flags) keg->uk_flags &= ~UMA_ZONE_PCPU; #endif - if (keg->uk_flags & UMA_ZONE_CACHESPREAD) { - keg_cachespread_init(keg); - } else { - if (keg->uk_size > slab_space(SLAB_MIN_SETSIZE)) - keg_large_init(keg); - else - keg_small_init(keg); - } + keg_layout(keg); /* * Use a first-touch NUMA policy for all kegs that pmap_extract() Modified: head/sys/vm/uma_int.h ============================================================================== --- head/sys/vm/uma_int.h Thu Jan 9 02:03:03 2020 (r356534) +++ head/sys/vm/uma_int.h Thu Jan 9 02:03:17 2020 (r356535) @@ -139,6 +139,9 @@ /* Max waste percentage before going to off page slab management */ #define UMA_MAX_WASTE 10 +/* Max size of a CACHESPREAD slab. */ +#define UMA_CACHESPREAD_MAX_SIZE (128 * 1024) + /* * These flags must not overlap with the UMA_ZONE flags specified in uma.h. */ From owner-svn-src-all@freebsd.org Thu Jan 9 03:52:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6654F226360; Thu, 9 Jan 2020 03:52:51 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tXJM27MJz4Y5r; Thu, 9 Jan 2020 03:52:51 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 445B122CED; Thu, 9 Jan 2020 03:52:51 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0093qpSY052790; Thu, 9 Jan 2020 03:52:51 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0093qpd4052789; Thu, 9 Jan 2020 03:52:51 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001090352.0093qpd4052789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Jan 2020 03:52:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356536 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 356536 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 03:52:51 -0000 Author: kevans Date: Thu Jan 9 03:52:50 2020 New Revision: 356536 URL: https://svnweb.freebsd.org/changeset/base/356536 Log: if_vmove: return proper error status if_vmove can fail if it lost a race and the vnet's already been moved. The callers (and their callers) can generally cope with this, but right now success is assumed. Plumb out the ENOENT from if_detach_internal if it happens so that the error's properly reported to userland. Reviewed by: bz, kp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D22780 Modified: head/sys/net/if.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Thu Jan 9 02:03:17 2020 (r356535) +++ head/sys/net/if.c Thu Jan 9 03:52:50 2020 (r356536) @@ -274,7 +274,7 @@ static void if_attach_internal(struct ifnet *, int, st static int if_detach_internal(struct ifnet *, int, struct if_clone **); static void if_siocaddmulti(void *, int); #ifdef VIMAGE -static void if_vmove(struct ifnet *, struct vnet *); +static int if_vmove(struct ifnet *, struct vnet *); #endif #ifdef INET6 @@ -1257,7 +1257,7 @@ finish_vnet_shutdown: * unused if_index in target vnet and calls if_grow() if necessary, * and finally find an unused if_xname for the target vnet. */ -static void +static int if_vmove(struct ifnet *ifp, struct vnet *new_vnet) { struct if_clone *ifc; @@ -1283,7 +1283,7 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet) */ rc = if_detach_internal(ifp, 1, &ifc); if (rc != 0) - return; + return (rc); /* * Unlink the ifnet from ifindex_table[] in current vnet, and shrink @@ -1327,6 +1327,7 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet) #endif CURVNET_RESTORE(); + return (0); } /* @@ -1337,6 +1338,7 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, ch { struct prison *pr; struct ifnet *difp; + int error; /* Try to find the prison within our visibility. */ sx_slock(&allprison_lock); @@ -1372,13 +1374,14 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, ch CURVNET_RESTORE(); /* Move the interface into the child jail/vnet. */ - if_vmove(ifp, pr->pr_vnet); + error = if_vmove(ifp, pr->pr_vnet); - /* Report the new if_xname back to the userland. */ - sprintf(ifname, "%s", ifp->if_xname); + /* Report the new if_xname back to the userland on success. */ + if (error == 0) + sprintf(ifname, "%s", ifp->if_xname); prison_free(pr); - return (0); + return (error); } static int @@ -1387,6 +1390,7 @@ if_vmove_reclaim(struct thread *td, char *ifname, int struct prison *pr; struct vnet *vnet_dst; struct ifnet *ifp; + int error; /* Try to find the prison within our visibility. */ sx_slock(&allprison_lock); @@ -1422,14 +1426,15 @@ if_vmove_reclaim(struct thread *td, char *ifname, int } /* Get interface back from child jail/vnet. */ - if_vmove(ifp, vnet_dst); + error = if_vmove(ifp, vnet_dst); CURVNET_RESTORE(); - /* Report the new if_xname back to the userland. */ - sprintf(ifname, "%s", ifp->if_xname); + /* Report the new if_xname back to the userland on success. */ + if (error == 0) + sprintf(ifname, "%s", ifp->if_xname); prison_free(pr); - return (0); + return (error); } #endif /* VIMAGE */ From owner-svn-src-all@freebsd.org Thu Jan 9 04:03:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E78E6226A9A; Thu, 9 Jan 2020 04:03:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tXXP5q80z4YmR; Thu, 9 Jan 2020 04:03:17 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C2FD522ECF; Thu, 9 Jan 2020 04:03:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00943HVJ058729; Thu, 9 Jan 2020 04:03:17 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00943HFL058728; Thu, 9 Jan 2020 04:03:17 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001090403.00943HFL058728@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Jan 2020 04:03:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356537 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356537 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 04:03:18 -0000 Author: kevans Date: Thu Jan 9 04:03:17 2020 New Revision: 356537 URL: https://svnweb.freebsd.org/changeset/base/356537 Log: shmfd: posix_fallocate(2): only take rangelock for section we need Other mechanisms that resize the shmfd grab a write lock from 0 to OFF_MAX for safety, so we still get proper synchronization of shmfd->shm_size in effect. There's no need to block readers/writers of earlier segments when we're just reserving more space, so narrow the scope -- it would likely be safe to narrow it completely to just the section of the range that extends beyond our current size, but this likely isn't worth it since the size isn't stable until the writelock is granted the first time. Suggested by: cem (passing comment) Modified: head/sys/kern/uipc_shm.c Modified: head/sys/kern/uipc_shm.c ============================================================================== --- head/sys/kern/uipc_shm.c Thu Jan 9 03:52:50 2020 (r356536) +++ head/sys/kern/uipc_shm.c Thu Jan 9 04:03:17 2020 (r356537) @@ -1451,7 +1451,17 @@ shm_fallocate(struct file *fp, off_t offset, off_t len error = 0; shmfd = fp->f_data; size = offset + len; - rl_cookie = rangelock_wlock(&shmfd->shm_rl, 0, OFF_MAX, + + /* + * Just grab the rangelock for the range that we may be attempting to + * grow, rather than blocking read/write for regions we won't be + * touching while this (potential) resize is in progress. Other + * attempts to resize the shmfd will have to take a write lock from 0 to + * OFF_MAX, so this being potentially beyond the current usable range of + * the shmfd is not necessarily a concern. If other mechanisms are + * added to grow a shmfd, this may need to be re-evaluated. + */ + rl_cookie = rangelock_wlock(&shmfd->shm_rl, offset, size, &shmfd->shm_mtx); if (size > shmfd->shm_size) { VM_OBJECT_WLOCK(shmfd->shm_object); From owner-svn-src-all@freebsd.org Thu Jan 9 04:34:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C01182288A1; Thu, 9 Jan 2020 04:34:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tYDg4VSpz4bTY; Thu, 9 Jan 2020 04:34:43 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 959462348A; Thu, 9 Jan 2020 04:34:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0094YhCC076660; Thu, 9 Jan 2020 04:34:43 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0094Yhsa076658; Thu, 9 Jan 2020 04:34:43 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001090434.0094Yhsa076658@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Jan 2020 04:34:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356538 - in head/stand: fdt uboot/fdt X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/stand: fdt uboot/fdt X-SVN-Commit-Revision: 356538 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 04:34:43 -0000 Author: kevans Date: Thu Jan 9 04:34:42 2020 New Revision: 356538 URL: https://svnweb.freebsd.org/changeset/base/356538 Log: stand/fdt: Scale blob size better as overlays apply Currently, our overlay blob will grow to include the size of the complete overlay blob we're applying. This doesn't scale very well with a lot of overlays- they tend to include a lot of overhead, and they will generally only add a fraction of their total size to the blob they're being applied to. To combat this, pack the blob as we apply new overlays and keep track of how many overlays we've applied. Only ubldr has any fixups to be applied after overlays, so we only need to re-pad the blob in ubldr. Presumably the allocation won't fail since we just did a lot worse in trying to apply overlays and succeeded. I have no intention of removing the padding in make_dtb.sh. There might be an argument to be had over whether it should be configurable, since ubldr *is* the only loader that actually has fixups to be applied and we can do this at runtime, but I'm not too concerned about this. This diff has been sitting in Phabricator for a year and a half, but I've decided to flush it as it does make sure that we're scaling the blob appropriately and leave room at the end for fixups in case of some freak circumstance where applying overlays leaves us with a blob of insufficient size. Reviewed by: gonzo (a long time ago) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D14133 Modified: head/stand/fdt/fdt_loader_cmd.c head/stand/fdt/fdt_platform.h head/stand/uboot/fdt/uboot_fdt.c Modified: head/stand/fdt/fdt_loader_cmd.c ============================================================================== --- head/stand/fdt/fdt_loader_cmd.c Thu Jan 9 04:03:17 2020 (r356537) +++ head/stand/fdt/fdt_loader_cmd.c Thu Jan 9 04:34:42 2020 (r356538) @@ -427,7 +427,10 @@ fdt_check_overlay_compatible(void *base_fdt, void *ove return (1); } -void +/* + * Returns the number of overlays successfully applied + */ +int fdt_apply_overlays() { struct preloaded_file *fp; @@ -436,13 +439,13 @@ fdt_apply_overlays() void *current_fdtp; void *next_fdtp; void *overlay; - int rv; + int overlays_applied, rv; if ((fdtp == NULL) || (fdtp_size == 0)) - return; + return (0); if (fdt_overlays_applied) - return; + return (0); max_overlay_size = 0; for (fp = file_findfile(NULL, "dtbo"); fp != NULL; fp = fp->f_next) { @@ -452,15 +455,16 @@ fdt_apply_overlays() /* Nothing to apply */ if (max_overlay_size == 0) - return; + return (0); overlay = malloc(max_overlay_size); if (overlay == NULL) { printf("failed to allocate memory for DTB blob with overlays\n"); - return; + return (0); } current_fdtp = fdtp; current_fdtp_size = fdtp_size; + overlays_applied = 0; for (fp = file_findfile(NULL, "dtbo"); fp != NULL; fp = fp->f_next) { COPYOUT(fp->f_addr, overlay, fp->f_size); /* Check compatible first to avoid unnecessary allocation */ @@ -493,7 +497,9 @@ fdt_apply_overlays() if (current_fdtp != fdtp) free(current_fdtp); current_fdtp = next_fdtp; - current_fdtp_size = next_fdtp_size; + fdt_pack(current_fdtp); + current_fdtp_size = fdt_totalsize(current_fdtp); + overlays_applied++; } else { /* * Assume here that the base we tried to apply on is @@ -513,6 +519,26 @@ fdt_apply_overlays() } free(overlay); fdt_overlays_applied = 1; + return (overlays_applied); +} + +int +fdt_pad_dtb(size_t padding) +{ + void *padded_fdtp; + size_t padded_fdtp_size; + + padded_fdtp_size = fdtp_size + padding; + padded_fdtp = malloc(padded_fdtp_size); + if (padded_fdtp == NULL) + return (1); + if (fdt_open_into(fdtp, padded_fdtp, padded_fdtp_size) != 0) { + free(padded_fdtp); + return (1); + } + fdtp = padded_fdtp; + fdtp_size = padded_fdtp_size; + return (0); } int Modified: head/stand/fdt/fdt_platform.h ============================================================================== --- head/stand/fdt/fdt_platform.h Thu Jan 9 04:03:17 2020 (r356537) +++ head/stand/fdt/fdt_platform.h Thu Jan 9 04:34:42 2020 (r356538) @@ -43,7 +43,8 @@ void fdt_fixup_cpubusfreqs(unsigned long, unsigned lon void fdt_fixup_ethernet(const char *, char *, int); void fdt_fixup_memory(struct fdt_mem_region *, size_t); void fdt_fixup_stdout(const char *); -void fdt_apply_overlays(void); +int fdt_apply_overlays(void); +int fdt_pad_dtb(size_t); int fdt_load_dtb_addr(struct fdt_header *); int fdt_load_dtb_file(const char *); void fdt_load_dtb_overlays(const char *); Modified: head/stand/uboot/fdt/uboot_fdt.c ============================================================================== --- head/stand/uboot/fdt/uboot_fdt.c Thu Jan 9 04:03:17 2020 (r356537) +++ head/stand/uboot/fdt/uboot_fdt.c Thu Jan 9 04:34:42 2020 (r356538) @@ -63,6 +63,8 @@ fdt_platform_load_from_ubenv(const char *var) return (1); } +#define FDT_DTB_PADSZ 1024 + int fdt_platform_load_dtb(void) { @@ -127,7 +129,8 @@ fdt_platform_fixups(void) ethstr = NULL; /* Apply overlays before anything else */ - fdt_apply_overlays(); + if (fdt_apply_overlays() > 0) + fdt_pad_dtb(FDT_DTB_PADSZ); /* Acquire sys_info */ si = ub_get_sys_info(); From owner-svn-src-all@freebsd.org Thu Jan 9 04:39:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9C60D228AB1; Thu, 9 Jan 2020 04:39:38 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tYLL3jqKz4bfH; Thu, 9 Jan 2020 04:39:38 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 766372348F; Thu, 9 Jan 2020 04:39:38 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0094dcEs076918; Thu, 9 Jan 2020 04:39:38 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0094dcIj076917; Thu, 9 Jan 2020 04:39:38 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001090439.0094dcIj076917@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Jan 2020 04:39:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356539 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 356539 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 04:39:38 -0000 Author: kevans Date: Thu Jan 9 04:39:37 2020 New Revision: 356539 URL: https://svnweb.freebsd.org/changeset/base/356539 Log: md(4): improve documentation of preloading It's not immediately clear by what mechanism loader(8) will be loading the preloaded file. Specifically name-drop loader.conf(5) with a pointer to the module loading section and a description of what the 'name' should look like, because that certainly isn't clear from the loader.conf(5) standpoint. The default loader.conf already has a pointer to md(4) where it appears and the reference to loader.conf in the new version of this manpage should make it more clear that this is where one should look for information. Reported by: swills Reviewed by: swills, manpages (bcr) With revision by: imp MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D22844 Modified: head/share/man/man4/md.4 Modified: head/share/man/man4/md.4 ============================================================================== --- head/share/man/man4/md.4 Thu Jan 9 04:34:42 2020 (r356538) +++ head/share/man/man4/md.4 Thu Jan 9 04:39:37 2020 (r356539) @@ -7,7 +7,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 26, 2017 +.Dd January 8, 2020 .Dt MD 4 .Os .Sh NAME @@ -46,7 +46,7 @@ system. The exact value can be determined with .Xr vmstat 8 . .It Cm preload -A file loaded by +A module loaded by .Xr loader 8 with type .Sq md_image @@ -54,6 +54,12 @@ is used for backing store. For backwards compatibility the type .Sq mfs_root is also recognized. +See the description of module loading directives in +.Xr loader.conf 5 +and note that the module name will either be an absolute path to the image file +or the name of a file in the +.Va module_path . +.Pp If the kernel is created with option .Dv MD_ROOT the first preloaded image found will become the root file system. From owner-svn-src-all@freebsd.org Thu Jan 9 05:45:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8041E22A246; Thu, 9 Jan 2020 05:45:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tZp72rQ0z4f5r; Thu, 9 Jan 2020 05:45:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (unknown [127.0.1.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id 2DACC6355; Thu, 9 Jan 2020 05:45:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id D9377A2C3; Thu, 9 Jan 2020 05:45:17 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id 2jinmGkRgz7E; Thu, 9 Jan 2020 05:45:10 +0000 (UTC) To: Jason Evans , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com 1847CA2B7 References: <201911110506.xAB56nFV057050@repo.freebsd.org> From: Bryan Drewery Autocrypt: addr=bdrewery@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJphmsBCADiFgmS4bIzwZijrS31SjEMzg+n5zNellgM+HkShwehpqCiyhXdWrvH6dTZ a6u50pbUIX7doTR7W7PQHCjCTqtpwvcj0eulZva+iHFp+XrbgSFHn+VVXgkYP2MFySyZRFab D2qqzJBEJofhpv4HvY6uQI5K99pMqKr1Z/lHqsijYYu4RH2OfwB5PinId7xeldzWEonVoCr+ rfxzO/UrgA6v/3layGZcKNHFjmc3NqoN1DXtdaEHqtjIozzbndVkH6lkFvIpIrI6i5ox8pwp VxsxLCr/4Musd5CWgHiet5kSw2SzNeA8FbxdLYCpXNVu+uBACEbCUP+CSNy3NVfEUxsBABEB AAG0JEJyeWFuIERyZXdlcnkgPGJkcmV3ZXJ5QEZyZWVCU0Qub3JnPokBVwQTAQoAQQIbAwUL CQgHAwUVCgkICwUWAwIBAAIeAQIXgAIZARYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hLu BQkNPvODAAoJEDXXcbtuRpfP9rMH/3f7cfX5rzyEV5QNfV/wS4jFukLoPZ4+nCM/TKxH3pEX 2bLbeQbkk6La8cueQ5Lpoht5XFZ18Y5TbMittngltrlNzoDD0h9are24OkDFGim3afJU7tkj IGQa1if+re+vI5BhzYwRhj0oKXzBi39M5oePd3L1dXfx83rg2FPyZBdIejsz6fR74T3JVkbd 6k2l5/3Zk2uiNMy+eBfDRgYE1E6CP28kV0nCeGKZgSVso0kGUUHud7voKqGVpMvbd0mE4pp4 PE5YJaFPjrll9miaDAvdU8LGIq5n6+aXPLKoQ/QNl6mg6ifgI6FfKILOkTizLW8E5PBSNnCm NapQ55yjm125AQ0EUmmGawEIAKJUU9+Q19oW1RK5jTf3m56j+szIc8Y9DaLC8REUKl4UZJBK BqCl6c0cukVApOD92XoU6hJPm2rLEyp/IcYcPPNTnVu8D8h9oag2L8EiFN7+2hk0xG+lwjc8 uOIZycme7AIJsBU4AZ1v63lxm2k104hwpiatgbe71GIGl7p1MX6ousP/wGzXCOF25Dx9w02C eRe7zEMfhnFjSUhzdCC9han2+KaVB7qIqNR3b8NfbwRNlwPmHqlhXffUow9OsQjSnTK8WKNR lx7xzVccXIvWP2wECFrmqmzMmXpSrmIuiWEpFwZ9x2a0Pva8dCNRiCVTK51IlRXKjaAxiN1u IUrMm6UAEQEAAYkBPAQYAQoAJgIbDBYhBPkXPLLDqup6XIofCTXXcbtuRpfPBQJb5hL4BQkN PvONAAoJEDXXcbtuRpfPCjcH/ivBsOpdpebpgLizSNU5/X4yWN5Aixsc9VBnQhGKAKnMINJQ VMpA55sD2JSPwloXYM/B3qyPJRS/9cwIuX5LDNKKOZU3Qp+TzleynM15/xea14orWYRGRict YHBM3Cnqp7OD8K6Q1uhs0fTxyJP7PZ/G0+7Corlf1DlHhDt6C2HldRPFvAvAgl6sR9Wzgcb7 rzub2HVtbJgl6YHbgyAG7x9NpXFqzx1JLAMdpt2DIYwoi+oMdRQlBIwNuKjQjCGzuXHandd3 kGvBAsyJpQ+coEep9UzwANaV28cXrFr2R4FSOcR50rBA2Nh/vqUYfpsvBvJlwuKAoV1djVHa ihNeL5E= Organization: FreeBSD Subject: Re: svn commit: r354606 - in head: contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/include/jemalloc contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src lib/libc/stdlib/jemalloc Message-ID: <1cc79883-382f-dcad-ce0d-f8e26232e394@FreeBSD.org> Date: Wed, 8 Jan 2020 21:45:02 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <201911110506.xAB56nFV057050@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="7YRoSZsvX4mwlDnWW1MpadYDkaDVR2xtB" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 05:45:19 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --7YRoSZsvX4mwlDnWW1MpadYDkaDVR2xtB Content-Type: multipart/mixed; boundary="kfiX0fwcrTddB1GAYRnY4WFtKBcKzoH0i"; protected-headers="v1" From: Bryan Drewery To: Jason Evans , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <1cc79883-382f-dcad-ce0d-f8e26232e394@FreeBSD.org> Subject: Re: svn commit: r354606 - in head: contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/include/jemalloc contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src lib/libc/stdlib/jemalloc References: <201911110506.xAB56nFV057050@repo.freebsd.org> In-Reply-To: <201911110506.xAB56nFV057050@repo.freebsd.org> --kfiX0fwcrTddB1GAYRnY4WFtKBcKzoH0i Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable Do you plan to get this back in soon? I hope to see it before 12.2 if possible. Is there some way I can help? I'm interested in these changes in 5.2.1 (I think) - Properly trigger decay on tcache destroy. (@interwq, @amosbird) - Fix tcache.flush. (@interwq) - Fix a side effect caused by extent_max_active_fit combined with decay-based purging, where freed extents can accumulate and not be reused for an extended period of time. (@interwq, @mpghf) I have a test case where virtual memory was peaking at 275M on 4.x, 1GB on 5.0.0, around 750M on 5.1.0, and finally 275M again on 5.2.0. The 5.0/5.1 versions appeared to be a widespread leak to us. On 11/10/2019 9:06 PM, Jason Evans wrote: > Author: jasone > Date: Mon Nov 11 05:06:49 2019 > New Revision: 354606 > URL: https://svnweb.freebsd.org/changeset/base/354606 >=20 > Log: > Revert r354605: Update jemalloc to version 5.2.1. > =20 > Compilation fails for non-llvm-based platforms. --=20 Regards, Bryan Drewery --kfiX0fwcrTddB1GAYRnY4WFtKBcKzoH0i-- --7YRoSZsvX4mwlDnWW1MpadYDkaDVR2xtB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE+Rc8ssOq6npcih8JNddxu25Gl88FAl4Wvd5fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY5 MTczQ0IyQzNBQUVBN0E1QzhBMUYwOTM1RDc3MUJCNkU0Njk3Q0YACgkQNddxu25G l8/SIQf/U1YA7Y9Q7SeW1X8hIeg/o5urK7F0IZZdY0SlFmz2LqC1WjzGWuv7n1B0 VatfmJVJ0S0UI/lucJeCvg/UGfYWA/L4OcIyjLqU9NLk/3IdNX9tw3T49exdPNgi 3W8mbarbxPzAiS56sA3jyT1cS+8tMAQ5YBBBEw85HLgSiKyz1ZmB162MzTdsi162 U8Zrp6PIcAWIZ8yuwV6KzYmYaH85mKVbzpQabpOUok7Yf/8bbpxvF2LEBE9oJX5E JO69wHpGpIo5UmPjDeY2FmW7Wi+J/qXKm2pW/PLs03ggdrwuLjcMclofG4YPcbNX xHecNvYtMdC8d+IwcWJnv/Tr0Sv8fw== =/Jag -----END PGP SIGNATURE----- --7YRoSZsvX4mwlDnWW1MpadYDkaDVR2xtB-- From owner-svn-src-all@freebsd.org Thu Jan 9 06:10:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3FF2D22A7A5; Thu, 9 Jan 2020 06:10:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tbM60jXVz4fqq; Thu, 9 Jan 2020 06:10:26 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0EC4024507; Thu, 9 Jan 2020 06:10:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0096AP6u030253; Thu, 9 Jan 2020 06:10:25 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0096APxx030252; Thu, 9 Jan 2020 06:10:25 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001090610.0096APxx030252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Jan 2020 06:10:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356540 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356540 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 06:10:26 -0000 Author: kevans Date: Thu Jan 9 06:10:25 2020 New Revision: 356540 URL: https://svnweb.freebsd.org/changeset/base/356540 Log: kern/Makefile: systrace_args.c is also generated Modified: head/sys/kern/Makefile Modified: head/sys/kern/Makefile ============================================================================== --- head/sys/kern/Makefile Thu Jan 9 04:39:37 2020 (r356539) +++ head/sys/kern/Makefile Thu Jan 9 06:10:25 2020 (r356540) @@ -13,6 +13,7 @@ SRCS= capabilities.conf \ syscalls.master GENERATED= init_sysent.c \ syscalls.c \ + systrace_args.c \ ../sys/syscall.h \ ../sys/syscall.mk \ ../sys/sysproto.h From owner-svn-src-all@freebsd.org Thu Jan 9 08:20:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 651F622D384; Thu, 9 Jan 2020 08:20:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tfFD24Kdz3HLW; Thu, 9 Jan 2020 08:20:32 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3DF7825D13; Thu, 9 Jan 2020 08:20:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0098KWOH008204; Thu, 9 Jan 2020 08:20:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0098KWRP008203; Thu, 9 Jan 2020 08:20:32 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090820.0098KWRP008203@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 08:20:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356541 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 356541 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 08:20:32 -0000 Author: kib Date: Thu Jan 9 08:20:31 2020 New Revision: 356541 URL: https://svnweb.freebsd.org/changeset/base/356541 Log: MFC r356292: Style: remove trailing spaces/tabs. Modified: stable/12/sys/kern/kern_umtx.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_umtx.c ============================================================================== --- stable/12/sys/kern/kern_umtx.c Thu Jan 9 06:10:25 2020 (r356540) +++ stable/12/sys/kern/kern_umtx.c Thu Jan 9 08:20:31 2020 (r356541) @@ -95,7 +95,7 @@ struct umtx_pi { /* Reference count */ int pi_refcount; - /* List entry to link umtx holding by thread */ + /* List entry to link umtx holding by thread */ TAILQ_ENTRY(umtx_pi) pi_link; /* List entry in hash */ @@ -138,7 +138,7 @@ struct umtx_q { /* Inherited priority from PP mutex */ u_char uq_inherited_pri; - + /* Spare queue ready to be reused */ struct umtxq_queue *uq_spare_queue; @@ -180,7 +180,7 @@ struct umtxq_chain { TAILQ_HEAD(,umtx_pi) uc_pi_list; #ifdef UMTX_PROFILING - u_int length; + u_int length; u_int max_length; #endif }; @@ -292,7 +292,7 @@ static struct mtx umtx_lock; #ifdef UMTX_PROFILING static void -umtx_init_profiling(void) +umtx_init_profiling(void) { struct sysctl_oid *chain_oid; char chain_name[10]; @@ -300,8 +300,8 @@ umtx_init_profiling(void) for (i = 0; i < UMTX_CHAINS; ++i) { snprintf(chain_name, sizeof(chain_name), "%d", i); - chain_oid = SYSCTL_ADD_NODE(NULL, - SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, + chain_oid = SYSCTL_ADD_NODE(NULL, + SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, chain_name, CTLFLAG_RD, NULL, "umtx hash stats"); SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(chain_oid), OID_AUTO, "max_length0", CTLFLAG_RD, &umtxq_chains[0][i].max_length, 0, NULL); @@ -406,7 +406,7 @@ sysctl_debug_umtx_chains_clear(SYSCTL_HANDLER_ARGS) uc = &umtxq_chains[i][j]; mtx_lock(&uc->uc_lock); uc->length = 0; - uc->max_length = 0; + uc->max_length = 0; mtx_unlock(&uc->uc_lock); } } @@ -441,7 +441,7 @@ umtxq_sysinit(void *arg __unused) umtxq_chains[i][j].uc_waiters = 0; #ifdef UMTX_PROFILING umtxq_chains[i][j].length = 0; - umtxq_chains[i][j].max_length = 0; + umtxq_chains[i][j].max_length = 0; #endif } } @@ -613,7 +613,7 @@ umtxq_insert_queue(struct umtx_q *uq, int q) if (uc->length > uc->max_length) { uc->max_length = uc->length; if (uc->max_length > max_length) - max_length = uc->max_length; + max_length = uc->max_length; } #endif } @@ -770,7 +770,7 @@ umtxq_signal_thread(struct umtx_q *uq) wakeup(uq); } -static inline int +static inline int tstohz(const struct timespec *tsp) { struct timeval tv; @@ -825,7 +825,7 @@ abs_timeout_gethz(struct abs_timeout *timo) struct timespec tts; if (timespeccmp(&timo->end, &timo->cur, <=)) - return (-1); + return (-1); timespecsub(&timo->end, &timo->cur, &tts); return (tstohz(&tts)); } @@ -1009,7 +1009,7 @@ kern_umtx_wake(struct thread *td, void *uaddr, int n_w { struct umtx_key key; int ret; - + if ((ret = umtx_key_get(uaddr, TYPE_SIMPLE_WAIT, is_private ? THREAD_SHARE : AUTO_SHARE, &key)) != 0) return (ret); @@ -1522,7 +1522,7 @@ umtx_pi_check_loop(struct umtx_pi *pi) /* * Propagate priority when a thread is blocked on POSIX * PI mutex. - */ + */ static void umtx_propagate_priority(struct thread *td) { @@ -1773,7 +1773,7 @@ umtx_pi_ref(struct umtx_pi *pi) /* * Decrease reference count for a PI mutex, if the counter * is decreased to zero, its memory space is freed. - */ + */ static void umtx_pi_unref(struct umtx_pi *pi) { @@ -1972,7 +1972,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 */ if (error != 0) break; - + umtxq_lock(&uq->uq_key); umtxq_busy(&uq->uq_key); umtxq_unlock(&uq->uq_key); @@ -2099,7 +2099,7 @@ usrloop: umtx_pi_disown(pi); /* get highest priority thread which is still sleeping. */ uq_first = TAILQ_FIRST(&pi->pi_blocked); - while (uq_first != NULL && + while (uq_first != NULL && (uq_first->uq_flags & UQF_UMTXQ) == 0) { uq_first = TAILQ_NEXT(uq_first, uq_lockq); } @@ -2624,7 +2624,7 @@ do_cv_wait(struct thread *td, struct ucond *cv, struct if (timeout != NULL) abs_timeout_init(&timo, clockid, (wflags & CVWAIT_ABSTIME) != 0, timeout); - + umtxq_lock(&uq->uq_key); if (error == 0) { error = umtxq_sleep(uq, "ucond", timeout == NULL ? @@ -2673,7 +2673,7 @@ do_cv_signal(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -2702,7 +2702,7 @@ do_cv_broadcast(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); @@ -3124,7 +3124,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock } if (state & URWLOCK_WRITE_OWNER) { for (;;) { - rv = casueword32(&rwlock->rw_state, state, + rv = casueword32(&rwlock->rw_state, state, &oldstate, state & ~URWLOCK_WRITE_OWNER); if (rv == -1) { error = EFAULT; @@ -3279,7 +3279,7 @@ do_sem_wake(struct thread *td, struct _usem *sem) if (error == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3400,7 +3400,7 @@ do_sem2_wake(struct thread *td, struct _usem2 *sem) if (rv == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3456,12 +3456,12 @@ static inline int umtx_copyin_umtx_time(const void *addr, size_t size, struct _umtx_time *tp) { int error; - + if (size <= sizeof(struct timespec)) { tp->_clockid = CLOCK_REALTIME; tp->_flags = 0; error = copyin(addr, &tp->_timeout, sizeof(struct timespec)); - } else + } else error = copyin(addr, tp, sizeof(struct _umtx_time)); if (error != 0) return (error); @@ -3695,7 +3695,7 @@ __umtx_op_rw_wrlock(struct thread *td, struct _umtx_op if (uap->uaddr2 == NULL) { error = do_rw_wrlock(td, uap->obj, 0); } else { - error = umtx_copyin_umtx_time(uap->uaddr2, + error = umtx_copyin_umtx_time(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); @@ -4200,12 +4200,12 @@ umtx_copyin_umtx_time32(const void *addr, size_t size, { struct umtx_time32 t32; int error; - + t32.clockid = CLOCK_REALTIME; t32.flags = 0; if (size <= sizeof(struct timespec32)) error = copyin(addr, &t32.timeout, sizeof(struct timespec32)); - else + else error = copyin(addr, &t32, sizeof(struct umtx_time32)); if (error != 0) return (error); @@ -4266,7 +4266,7 @@ __umtx_op_wait_umutex_compat32(struct thread *td, stru if (uap->uaddr2 == NULL) tm_p = NULL; else { - error = umtx_copyin_umtx_time32(uap->uaddr2, + error = umtx_copyin_umtx_time32(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); From owner-svn-src-all@freebsd.org Thu Jan 9 08:24:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A87822D594; Thu, 9 Jan 2020 08:24:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tfKQ3bXMz3Hht; Thu, 9 Jan 2020 08:24:10 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 76A0A25ED1; Thu, 9 Jan 2020 08:24:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0098OAPd013950; Thu, 9 Jan 2020 08:24:10 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0098O96g013948; Thu, 9 Jan 2020 08:24:09 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090824.0098O96g013948@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 08:24:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356542 - in stable/12/sys: kern sys X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/sys: kern sys X-SVN-Commit-Revision: 356542 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 08:24:10 -0000 Author: kib Date: Thu Jan 9 08:24:09 2020 New Revision: 356542 URL: https://svnweb.freebsd.org/changeset/base/356542 Log: MFC r356293: Rename umtxq_check_susp() to thread_check_susp(). Modified: stable/12/sys/kern/kern_thread.c stable/12/sys/kern/kern_umtx.c stable/12/sys/sys/proc.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_thread.c ============================================================================== --- stable/12/sys/kern/kern_thread.c Thu Jan 9 08:20:31 2020 (r356541) +++ stable/12/sys/kern/kern_thread.c Thu Jan 9 08:24:09 2020 (r356542) @@ -1044,6 +1044,49 @@ thread_suspend_check(int return_instead) return (0); } +/* + * Check for possible stops and suspensions while executing a + * casueword or similar transiently failing operation. + * + * The sleep argument controls whether the function can handle a stop + * request itself or it should return ERESTART and the request is + * proceed at the kernel/user boundary in ast. + * + * Typically, when retrying due to casueword(9) failure (rv == 1), we + * should handle the stop requests there, with exception of cases when + * the thread owns a kernel resource, for instance busied the umtx + * key, or when functions return immediately if casueword_check_susp() + * returned non-zero. On the other hand, retrying the whole lock + * operation, we better not stop there but delegate the handling to + * ast. + * + * If the request is for thread termination P_SINGLE_EXIT, we cannot + * handle it at all, and simply return EINTR. + */ +int +thread_check_susp(struct thread *td, bool sleep) +{ + struct proc *p; + int error; + + /* + * The check for TDF_NEEDSUSPCHK is racy, but it is enough to + * eventually break the lockstep loop. + */ + if ((td->td_flags & TDF_NEEDSUSPCHK) == 0) + return (0); + error = 0; + p = td->td_proc; + PROC_LOCK(p); + if (p->p_flag & P_SINGLE_EXIT) + error = EINTR; + else if (P_SHOULDSTOP(p) || + ((p->p_flag & P_TRACED) && (td->td_dbgflags & TDB_SUSPEND))) + error = sleep ? thread_suspend_check(0) : ERESTART; + PROC_UNLOCK(p); + return (error); +} + void thread_suspend_switch(struct thread *td, struct proc *p) { Modified: stable/12/sys/kern/kern_umtx.c ============================================================================== --- stable/12/sys/kern/kern_umtx.c Thu Jan 9 08:20:31 2020 (r356541) +++ stable/12/sys/kern/kern_umtx.c Thu Jan 9 08:24:09 2020 (r356542) @@ -691,48 +691,6 @@ umtxq_count_pi(struct umtx_key *key, struct umtx_q **f } /* - * Check for possible stops and suspensions while executing a umtx - * locking operation. - * - * The sleep argument controls whether the function can handle a stop - * request itself or it should return ERESTART and the request is - * proceed at the kernel/user boundary in ast. - * - * Typically, when retrying due to casueword(9) failure (rv == 1), we - * should handle the stop requests there, with exception of cases when - * the thread busied the umtx key, or when functions return - * immediately if umtxq_check_susp() returned non-zero. On the other - * hand, retrying the whole lock operation, we better not stop there - * but delegate the handling to ast. - * - * If the request is for thread termination P_SINGLE_EXIT, we cannot - * handle it at all, and simply return EINTR. - */ -static int -umtxq_check_susp(struct thread *td, bool sleep) -{ - struct proc *p; - int error; - - /* - * The check for TDF_NEEDSUSPCHK is racy, but it is enough to - * eventually break the lockstep loop. - */ - if ((td->td_flags & TDF_NEEDSUSPCHK) == 0) - return (0); - error = 0; - p = td->td_proc; - PROC_LOCK(p); - if (p->p_flag & P_SINGLE_EXIT) - error = EINTR; - else if (P_SHOULDSTOP(p) || - ((p->p_flag & P_TRACED) && (td->td_dbgflags & TDB_SUSPEND))) - error = sleep ? thread_suspend_check(0) : ERESTART; - PROC_UNLOCK(p); - return (error); -} - -/* * Wake up threads waiting on an userland object. */ @@ -1070,7 +1028,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui return (EOWNERDEAD); /* success */ } MPASS(rv == 1); - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); continue; @@ -1111,7 +1069,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui return (0); } if (rv == 1) { - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); } @@ -1124,7 +1082,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui } /* rv == 1 but not contested, likely store failure */ - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); } @@ -1167,7 +1125,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui if (rv == -1) return (EFAULT); if (rv == 1) { - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); } @@ -1189,7 +1147,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui umtx_key_release(&uq->uq_key); if (error == 0) - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); } return (0); @@ -1224,7 +1182,7 @@ again: if (error == -1) return (EFAULT); if (error == 1) { - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) return (error); goto again; @@ -1261,7 +1219,7 @@ again: if (error == 1) { if (old != owner) return (EINVAL); - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) return (error); goto again; @@ -1316,7 +1274,7 @@ again: umtxq_unbusy(&key); umtxq_unlock(&key); umtx_key_release(&key); - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) return (error); goto again; @@ -1400,7 +1358,7 @@ do_wake2_umutex(struct thread *td, struct umutex *m, u break; } owner = old; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); } umtxq_lock(&key); @@ -1905,7 +1863,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 * to the pending signal with suspension check result. */ if (error == 0) { - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; } @@ -1922,7 +1880,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 } if (rv == 1) { if (error == 0) { - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; } @@ -1994,7 +1952,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 } if (rv == 1) { umtxq_unbusy_unlocked(&uq->uq_key); - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; @@ -2017,7 +1975,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 if (error != 0) continue; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; } @@ -2063,7 +2021,7 @@ usrloop: if (error == -1) return (EFAULT); if (error == 1) { - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) return (error); goto usrloop; @@ -2150,7 +2108,7 @@ usrloop: again: error = casueword32(&m->m_owner, owner, &old, new_owner); if (error == 1) { - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error == 0) goto again; } @@ -2255,7 +2213,7 @@ do_lock_pp(struct thread *td, struct umutex *m, uint32 * error to not skip the last loop iteration. */ if (error == 0) { - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error == 0) { if (try != 0) error = EBUSY; @@ -2770,7 +2728,7 @@ do_rw_rdlock(struct thread *td, struct urwlock *rwlock umtx_key_release(&uq->uq_key); return (0); } - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; state = oldstate; @@ -2806,7 +2764,7 @@ do_rw_rdlock(struct thread *td, struct urwlock *rwlock goto sleep; } state = oldstate; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; } @@ -2818,7 +2776,7 @@ do_rw_rdlock(struct thread *td, struct urwlock *rwlock /* state is changed while setting flags, restart */ if (!(state & wrflags)) { umtxq_unbusy_unlocked(&uq->uq_key); - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; continue; @@ -2886,7 +2844,7 @@ sleep: break; } state = oldstate; - error1 = umtxq_check_susp(td, false); + error1 = thread_check_susp(td, false); if (error1 != 0) { if (error == 0) error = error1; @@ -2948,7 +2906,7 @@ do_rw_wrlock(struct thread *td, struct urwlock *rwlock return (0); } state = oldstate; - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; } @@ -2995,7 +2953,7 @@ do_rw_wrlock(struct thread *td, struct urwlock *rwlock goto sleep; } state = oldstate; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; } @@ -3007,7 +2965,7 @@ do_rw_wrlock(struct thread *td, struct urwlock *rwlock if ((state & URWLOCK_WRITE_OWNER) == 0 && URWLOCK_READER_COUNT(state) == 0) { umtxq_unbusy_unlocked(&uq->uq_key); - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; continue; @@ -3070,7 +3028,7 @@ sleep: break; } state = oldstate; - error1 = umtxq_check_susp(td, false); + error1 = thread_check_susp(td, false); /* * We are leaving the URWLOCK_WRITE_WAITERS * behind, but this should not harm the @@ -3136,7 +3094,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock error = EPERM; goto out; } - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) goto out; } else @@ -3156,7 +3114,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock error = EPERM; goto out; } - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) goto out; } else @@ -3234,7 +3192,7 @@ again: umtxq_remove(uq); umtxq_unlock(&uq->uq_key); if (rv == 1) { - rv = umtxq_check_susp(td, true); + rv = thread_check_susp(td, true); if (rv == 0) goto again; error = rv; @@ -3356,7 +3314,7 @@ again: umtx_key_release(&uq->uq_key); if (rv == -1) return (EFAULT); - rv = umtxq_check_susp(td, true); + rv = thread_check_susp(td, true); if (rv != 0) return (rv); goto again; @@ -3416,7 +3374,7 @@ do_sem2_wake(struct thread *td, struct _usem2 *sem) rv = casueword32(&sem->_count, count, &count, count & ~USEM_HAS_WAITERS); if (rv == 1) { - rv = umtxq_check_susp(td, true); + rv = thread_check_susp(td, true); if (rv != 0) break; } Modified: stable/12/sys/sys/proc.h ============================================================================== --- stable/12/sys/sys/proc.h Thu Jan 9 08:20:31 2020 (r356541) +++ stable/12/sys/sys/proc.h Thu Jan 9 08:24:09 2020 (r356542) @@ -1115,6 +1115,7 @@ void cpu_thread_swapin(struct thread *); void cpu_thread_swapout(struct thread *); struct thread *thread_alloc(int pages); int thread_alloc_stack(struct thread *, int pages); +int thread_check_susp(struct thread *td, bool sleep); void thread_cow_get_proc(struct thread *newtd, struct proc *p); void thread_cow_get(struct thread *newtd, struct thread *td); void thread_cow_free(struct thread *td); From owner-svn-src-all@freebsd.org Thu Jan 9 08:29:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A26C722D724; Thu, 9 Jan 2020 08:29:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tfRc33ztz3Hsy; Thu, 9 Jan 2020 08:29:32 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6468025EE0; Thu, 9 Jan 2020 08:29:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0098TWP3014250; Thu, 9 Jan 2020 08:29:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0098TV4a014246; Thu, 9 Jan 2020 08:29:31 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090829.0098TV4a014246@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 08:29:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356543 - in stable/12/sys/amd64: include vmm vmm/io X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/sys/amd64: include vmm vmm/io X-SVN-Commit-Revision: 356543 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 08:29:32 -0000 Author: kib Date: Thu Jan 9 08:29:31 2020 New Revision: 356543 URL: https://svnweb.freebsd.org/changeset/base/356543 Log: MFC r356296: bhyve: terminate waiting loops if thread suspension is requested. PR: 242724 Modified: stable/12/sys/amd64/include/vmm.h stable/12/sys/amd64/vmm/io/vioapic.c stable/12/sys/amd64/vmm/vmm.c stable/12/sys/amd64/vmm/vmm_dev.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/amd64/include/vmm.h ============================================================================== --- stable/12/sys/amd64/include/vmm.h Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/include/vmm.h Thu Jan 9 08:29:31 2020 (r356543) @@ -267,7 +267,7 @@ void vm_exit_reqidle(struct vm *vm, int vcpuid, uint64 * forward progress when the rendezvous is in progress. */ typedef void (*vm_rendezvous_func_t)(struct vm *vm, int vcpuid, void *arg); -void vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, +int vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, vm_rendezvous_func_t func, void *arg); cpuset_t vm_active_cpus(struct vm *vm); cpuset_t vm_debug_cpus(struct vm *vm); Modified: stable/12/sys/amd64/vmm/io/vioapic.c ============================================================================== --- stable/12/sys/amd64/vmm/io/vioapic.c Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/vmm/io/vioapic.c Thu Jan 9 08:29:31 2020 (r356543) @@ -353,7 +353,7 @@ vioapic_write(struct vioapic *vioapic, int vcpuid, uin "vlapic trigger-mode register", pin); VIOAPIC_UNLOCK(vioapic); allvcpus = vm_active_cpus(vioapic->vm); - vm_smp_rendezvous(vioapic->vm, vcpuid, allvcpus, + (void)vm_smp_rendezvous(vioapic->vm, vcpuid, allvcpus, vioapic_update_tmr, NULL); VIOAPIC_LOCK(vioapic); } Modified: stable/12/sys/amd64/vmm/vmm.c ============================================================================== --- stable/12/sys/amd64/vmm/vmm.c Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/vmm/vmm.c Thu Jan 9 08:29:31 2020 (r356543) @@ -1244,13 +1244,17 @@ vcpu_require_state_locked(struct vm *vm, int vcpuid, e VM_CTR0(vm, fmt); \ } while (0) -static void +static int vm_handle_rendezvous(struct vm *vm, int vcpuid) { + struct thread *td; + int error; KASSERT(vcpuid == -1 || (vcpuid >= 0 && vcpuid < vm->maxcpus), ("vm_handle_rendezvous: invalid vcpuid %d", vcpuid)); + error = 0; + td = curthread; mtx_lock(&vm->rendezvous_mtx); while (vm->rendezvous_func != NULL) { /* 'rendezvous_req_cpus' must be a subset of 'active_cpus' */ @@ -1272,9 +1276,17 @@ vm_handle_rendezvous(struct vm *vm, int vcpuid) } RENDEZVOUS_CTR0(vm, vcpuid, "Wait for rendezvous completion"); mtx_sleep(&vm->rendezvous_func, &vm->rendezvous_mtx, 0, - "vmrndv", 0); + "vmrndv", hz); + if ((td->td_flags & TDF_NEEDSUSPCHK) != 0) { + mtx_unlock(&vm->rendezvous_mtx); + error = thread_check_susp(td, true); + if (error != 0) + return (error); + mtx_lock(&vm->rendezvous_mtx); + } } mtx_unlock(&vm->rendezvous_mtx); + return (0); } /* @@ -1285,13 +1297,16 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_dis { struct vcpu *vcpu; const char *wmesg; - int t, vcpu_halted, vm_halted; + struct thread *td; + int error, t, vcpu_halted, vm_halted; KASSERT(!CPU_ISSET(vcpuid, &vm->halted_cpus), ("vcpu already halted")); vcpu = &vm->vcpu[vcpuid]; vcpu_halted = 0; vm_halted = 0; + error = 0; + td = curthread; vcpu_lock(vcpu); while (1) { @@ -1352,6 +1367,13 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_dis msleep_spin(vcpu, &vcpu->mtx, wmesg, hz); vcpu_require_state_locked(vm, vcpuid, VCPU_FROZEN); vmm_stat_incr(vm, vcpuid, VCPU_IDLE_TICKS, ticks - t); + if ((td->td_flags & TDF_NEEDSUSPCHK) != 0) { + vcpu_unlock(vcpu); + error = thread_check_susp(td, false); + if (error != 0) + return (error); + vcpu_lock(vcpu); + } } if (vcpu_halted) @@ -1488,11 +1510,13 @@ vm_handle_inst_emul(struct vm *vm, int vcpuid, bool *r static int vm_handle_suspend(struct vm *vm, int vcpuid, bool *retu) { - int i, done; + int error, i; struct vcpu *vcpu; + struct thread *td; - done = 0; + error = 0; vcpu = &vm->vcpu[vcpuid]; + td = curthread; CPU_SET_ATOMIC(vcpuid, &vm->suspended_cpus); @@ -1504,7 +1528,7 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *ret * handler while we are waiting to prevent a deadlock. */ vcpu_lock(vcpu); - while (1) { + while (error == 0) { if (CPU_CMP(&vm->suspended_cpus, &vm->active_cpus) == 0) { VCPU_CTR0(vm, vcpuid, "All vcpus suspended"); break; @@ -1515,10 +1539,15 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *ret vcpu_require_state_locked(vm, vcpuid, VCPU_SLEEPING); msleep_spin(vcpu, &vcpu->mtx, "vmsusp", hz); vcpu_require_state_locked(vm, vcpuid, VCPU_FROZEN); + if ((td->td_flags & TDF_NEEDSUSPCHK) != 0) { + vcpu_unlock(vcpu); + error = thread_check_susp(td, false); + vcpu_lock(vcpu); + } } else { VCPU_CTR0(vm, vcpuid, "Rendezvous during suspend"); vcpu_unlock(vcpu); - vm_handle_rendezvous(vm, vcpuid); + error = vm_handle_rendezvous(vm, vcpuid); vcpu_lock(vcpu); } } @@ -1534,7 +1563,7 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *ret } *retu = true; - return (0); + return (error); } static int @@ -1708,8 +1737,7 @@ restart: vme->u.ioapic_eoi.vector); break; case VM_EXITCODE_RENDEZVOUS: - vm_handle_rendezvous(vm, vcpuid); - error = 0; + error = vm_handle_rendezvous(vm, vcpuid); break; case VM_EXITCODE_HLT: intr_disabled = ((vme->u.hlt.rflags & PSL_I) == 0); @@ -2487,11 +2515,11 @@ vm_apicid2vcpuid(struct vm *vm, int apicid) return (apicid); } -void +int vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, vm_rendezvous_func_t func, void *arg) { - int i; + int error, i; /* * Enforce that this function is called without any locks @@ -2510,7 +2538,9 @@ restart: */ RENDEZVOUS_CTR0(vm, vcpuid, "Rendezvous already in progress"); mtx_unlock(&vm->rendezvous_mtx); - vm_handle_rendezvous(vm, vcpuid); + error = vm_handle_rendezvous(vm, vcpuid); + if (error != 0) + return (error); goto restart; } KASSERT(vm->rendezvous_func == NULL, ("vm_smp_rendezvous: previous " @@ -2532,7 +2562,7 @@ restart: vcpu_notify_event(vm, i, false); } - vm_handle_rendezvous(vm, vcpuid); + return (vm_handle_rendezvous(vm, vcpuid)); } struct vatpic * Modified: stable/12/sys/amd64/vmm/vmm_dev.c ============================================================================== --- stable/12/sys/amd64/vmm/vmm_dev.c Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/vmm/vmm_dev.c Thu Jan 9 08:29:31 2020 (r356543) @@ -790,8 +790,12 @@ vmmdev_ioctl(struct cdev *cdev, u_long cmd, caddr_t da vcpu_unlock_all(sc); done: - /* Make sure that no handler returns a bogus value like ERESTART */ - KASSERT(error >= 0, ("vmmdev_ioctl: invalid error return %d", error)); + /* + * Make sure that no handler returns a kernel-internal + * error value to userspace. + */ + KASSERT(error == ERESTART || error >= 0, + ("vmmdev_ioctl: invalid error return %d", error)); return (error); } From owner-svn-src-all@freebsd.org Thu Jan 9 09:14:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C722622E99B; Thu, 9 Jan 2020 09:14:54 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tgRy4M9Cz3LSq; Thu, 9 Jan 2020 09:14:54 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 90B8E26828; Thu, 9 Jan 2020 09:14:54 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0099Es8c043757; Thu, 9 Jan 2020 09:14:54 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0099EsSn043756; Thu, 9 Jan 2020 09:14:54 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090914.0099EsSn043756@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 09:14:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356544 - stable/12/libexec/rtld-elf X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/libexec/rtld-elf X-SVN-Commit-Revision: 356544 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 09:14:54 -0000 Author: kib Date: Thu Jan 9 09:14:54 2020 New Revision: 356544 URL: https://svnweb.freebsd.org/changeset/base/356544 Log: MFC r356300, r356503: Fix AT_EXECPATH for direct exec mode. Modified: stable/12/libexec/rtld-elf/rtld.c Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/rtld.c ============================================================================== --- stable/12/libexec/rtld-elf/rtld.c Thu Jan 9 08:29:31 2020 (r356543) +++ stable/12/libexec/rtld-elf/rtld.c Thu Jan 9 09:14:54 2020 (r356544) @@ -134,7 +134,8 @@ static void objlist_push_head(Objlist *, Obj_Entry *); static void objlist_push_tail(Objlist *, Obj_Entry *); static void objlist_put_after(Objlist *, Obj_Entry *, Obj_Entry *); static void objlist_remove(Objlist *, Obj_Entry *); -static int open_binary_fd(const char *argv0, bool search_in_path); +static int open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res); static int parse_args(char* argv[], int argc, bool *use_pathp, int *fdp); static int parse_integer(const char *); static void *path_enumerate(const char *, path_enum_proc, const char *, void *); @@ -379,7 +380,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr struct stat st; Elf_Addr *argcp; char **argv, **env, **envp, *kexecpath, *library_path_rpath; - const char *argv0; + const char *argv0, *binpath; caddr_t imgentry; char buf[MAXPATHLEN]; int argc, fd, i, phnum, rtld_argc; @@ -441,8 +442,9 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr rtld_argc = parse_args(argv, argc, &search_in_path, &fd); argv0 = argv[rtld_argc]; explicit_fd = (fd != -1); + binpath = NULL; if (!explicit_fd) - fd = open_binary_fd(argv0, search_in_path); + fd = open_binary_fd(argv0, search_in_path, &binpath); if (fstat(fd, &st) == -1) { _rtld_error("Failed to fstat FD %d (%s): %s", fd, explicit_fd ? "user-provided descriptor" : argv0, @@ -495,11 +497,24 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr } while (*envp != NULL); aux = auxp = (Elf_Auxinfo *)envp; auxpf = (Elf_Auxinfo *)(envp + rtld_argc); + /* XXXKIB insert place for AT_EXECPATH if not present */ for (;; auxp++, auxpf++) { *auxp = *auxpf; if (auxp->a_type == AT_NULL) break; } + + /* Point AT_EXECPATH auxv and aux_info to the binary path. */ + if (binpath == NULL) { + aux_info[AT_EXECPATH] = NULL; + } else { + if (aux_info[AT_EXECPATH] == NULL) { + aux_info[AT_EXECPATH] = xmalloc(sizeof(Elf_Auxinfo)); + aux_info[AT_EXECPATH]->a_type = AT_EXECPATH; + } + aux_info[AT_EXECPATH]->a_un.a_ptr = __DECONST(void *, + binpath); + } } else { _rtld_error("No binary"); rtld_die(); @@ -5453,12 +5468,14 @@ symlook_init_from_req(SymLook *dst, const SymLook *src } static int -open_binary_fd(const char *argv0, bool search_in_path) +open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res) { - char *pathenv, *pe, binpath[PATH_MAX]; + char *pathenv, *pe, *binpath; int fd; if (search_in_path && strchr(argv0, '/') == NULL) { + binpath = xmalloc(PATH_MAX); pathenv = getenv("PATH"); if (pathenv == NULL) { _rtld_error("-p and no PATH environment variable"); @@ -5472,24 +5489,25 @@ open_binary_fd(const char *argv0, bool search_in_path) fd = -1; errno = ENOENT; while ((pe = strsep(&pathenv, ":")) != NULL) { - if (strlcpy(binpath, pe, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcpy(binpath, pe, PATH_MAX) >= PATH_MAX) continue; if (binpath[0] != '\0' && - strlcat(binpath, "/", sizeof(binpath)) >= - sizeof(binpath)) + strlcat(binpath, "/", PATH_MAX) >= PATH_MAX) continue; - if (strlcat(binpath, argv0, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcat(binpath, argv0, PATH_MAX) >= PATH_MAX) continue; fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY); - if (fd != -1 || errno != ENOENT) + if (fd != -1 || errno != ENOENT) { + *binpath_res = binpath; break; + } } free(pathenv); } else { fd = open(argv0, O_RDONLY | O_CLOEXEC | O_VERIFY); + *binpath_res = argv0; } + /* XXXKIB Use getcwd() to resolve relative binpath to absolute. */ if (fd == -1) { _rtld_error("Cannot open %s: %s", argv0, rtld_strerror(errno)); From owner-svn-src-all@freebsd.org Thu Jan 9 09:29:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C295622EF32; Thu, 9 Jan 2020 09:29:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tgmj4r1Gz3M8v; Thu, 9 Jan 2020 09:29:25 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A130126A11; Thu, 9 Jan 2020 09:29:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0099TPnR050190; Thu, 9 Jan 2020 09:29:25 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0099TPYd050188; Thu, 9 Jan 2020 09:29:25 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001090929.0099TPYd050188@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 9 Jan 2020 09:29:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356545 - head/sys/dev/usb/controller X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/usb/controller X-SVN-Commit-Revision: 356545 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 09:29:25 -0000 Author: hselasky Date: Thu Jan 9 09:29:24 2020 New Revision: 356545 URL: https://svnweb.freebsd.org/changeset/base/356545 Log: Fix a XHCI driver issue with Intel's Gemini Lake SOC. Do not configure any endpoint twice, but instead keep track of which endpoints are configured on a per device basis, and use an evaluate endpoint context command instead. When changing the configuration make sure all endpoints get deconfigured and the configured endpoint mask is reset. This fixes an issue where an endpoint might stop working if there is an error and the endpoint needs to be reconfigured as a part of the error recovery mechanism in the FreeBSD USB stack. Tested by: Shichun.Ma@dell.com MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/usb/controller/xhci.c head/sys/dev/usb/controller/xhci.h Modified: head/sys/dev/usb/controller/xhci.c ============================================================================== --- head/sys/dev/usb/controller/xhci.c Thu Jan 9 09:14:54 2020 (r356544) +++ head/sys/dev/usb/controller/xhci.c Thu Jan 9 09:29:24 2020 (r356545) @@ -3838,6 +3838,7 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) struct usb_page_cache *pcinp; usb_error_t err; usb_stream_t stream_id; + uint32_t mask; uint8_t index; uint8_t epno; @@ -3903,16 +3904,20 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) * endpoint context state diagram in the XHCI specification: */ - xhci_configure_mask(udev, (1U << epno) | 1U, 0); + mask = (1U << epno); + xhci_configure_mask(udev, mask | 1U, 0); - if (epno > 1) + if (!(sc->sc_hw.devs[index].ep_configured & mask)) { + sc->sc_hw.devs[index].ep_configured |= mask; err = xhci_cmd_configure_ep(sc, buf_inp.physaddr, 0, index); - else + } else { err = xhci_cmd_evaluate_ctx(sc, buf_inp.physaddr, index); + } - if (err != 0) - DPRINTF("Could not configure endpoint %u\n", epno); - + if (err != 0) { + DPRINTF("Could not configure " + "endpoint %u at slot %u.\n", epno, index); + } XHCI_CMD_UNLOCK(sc); return (0); @@ -4273,6 +4278,7 @@ xhci_device_state_change(struct usb_device *udev) /* set default state */ sc->sc_hw.devs[index].state = XHCI_ST_DEFAULT; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; @@ -4290,6 +4296,7 @@ xhci_device_state_change(struct usb_device *udev) break; sc->sc_hw.devs[index].state = XHCI_ST_ADDRESSED; + sc->sc_hw.devs[index].ep_configured = 3U; /* set configure mask to slot only */ xhci_configure_mask(udev, 1, 0); @@ -4304,11 +4311,19 @@ xhci_device_state_change(struct usb_device *udev) break; case USB_STATE_CONFIGURED: - if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) - break; + if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) { + /* deconfigure all endpoints, except EP0 */ + err = xhci_cmd_configure_ep(sc, 0, 1, index); + if (err) { + DPRINTF("Failed to deconfigure " + "slot %u.\n", index); + } + } + /* set configured state */ sc->sc_hw.devs[index].state = XHCI_ST_CONFIGURED; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; Modified: head/sys/dev/usb/controller/xhci.h ============================================================================== --- head/sys/dev/usb/controller/xhci.h Thu Jan 9 09:14:54 2020 (r356544) +++ head/sys/dev/usb/controller/xhci.h Thu Jan 9 09:29:24 2020 (r356545) @@ -408,6 +408,8 @@ struct xhci_hw_dev { struct xhci_endpoint_ext endp[XHCI_MAX_ENDPOINTS]; + uint32_t ep_configured; + uint8_t state; uint8_t nports; uint8_t tt; From owner-svn-src-all@freebsd.org Thu Jan 9 09:30:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C77B522EFCD; Thu, 9 Jan 2020 09:30:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tgnf4zD4z3MKH; Thu, 9 Jan 2020 09:30:14 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A435526A18; Thu, 9 Jan 2020 09:30:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0099UEal050401; Thu, 9 Jan 2020 09:30:14 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0099UEug050400; Thu, 9 Jan 2020 09:30:14 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090930.0099UEug050400@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 09:30:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356546 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 356546 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 09:30:14 -0000 Author: kib Date: Thu Jan 9 09:30:14 2020 New Revision: 356546 URL: https://svnweb.freebsd.org/changeset/base/356546 Log: MFC r356292: Style: remove trailing spaces/tabs. Modified: stable/11/sys/kern/kern_umtx.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/kern_umtx.c ============================================================================== --- stable/11/sys/kern/kern_umtx.c Thu Jan 9 09:29:24 2020 (r356545) +++ stable/11/sys/kern/kern_umtx.c Thu Jan 9 09:30:14 2020 (r356546) @@ -94,7 +94,7 @@ struct umtx_pi { /* Reference count */ int pi_refcount; - /* List entry to link umtx holding by thread */ + /* List entry to link umtx holding by thread */ TAILQ_ENTRY(umtx_pi) pi_link; /* List entry in hash */ @@ -137,7 +137,7 @@ struct umtx_q { /* Inherited priority from PP mutex */ u_char uq_inherited_pri; - + /* Spare queue ready to be reused */ struct umtxq_queue *uq_spare_queue; @@ -179,7 +179,7 @@ struct umtxq_chain { TAILQ_HEAD(,umtx_pi) uc_pi_list; #ifdef UMTX_PROFILING - u_int length; + u_int length; u_int max_length; #endif }; @@ -289,7 +289,7 @@ static struct mtx umtx_lock; #ifdef UMTX_PROFILING static void -umtx_init_profiling(void) +umtx_init_profiling(void) { struct sysctl_oid *chain_oid; char chain_name[10]; @@ -297,8 +297,8 @@ umtx_init_profiling(void) for (i = 0; i < UMTX_CHAINS; ++i) { snprintf(chain_name, sizeof(chain_name), "%d", i); - chain_oid = SYSCTL_ADD_NODE(NULL, - SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, + chain_oid = SYSCTL_ADD_NODE(NULL, + SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, chain_name, CTLFLAG_RD, NULL, "umtx hash stats"); SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(chain_oid), OID_AUTO, "max_length0", CTLFLAG_RD, &umtxq_chains[0][i].max_length, 0, NULL); @@ -403,7 +403,7 @@ sysctl_debug_umtx_chains_clear(SYSCTL_HANDLER_ARGS) uc = &umtxq_chains[i][j]; mtx_lock(&uc->uc_lock); uc->length = 0; - uc->max_length = 0; + uc->max_length = 0; mtx_unlock(&uc->uc_lock); } } @@ -438,7 +438,7 @@ umtxq_sysinit(void *arg __unused) umtxq_chains[i][j].uc_waiters = 0; #ifdef UMTX_PROFILING umtxq_chains[i][j].length = 0; - umtxq_chains[i][j].max_length = 0; + umtxq_chains[i][j].max_length = 0; #endif } } @@ -610,7 +610,7 @@ umtxq_insert_queue(struct umtx_q *uq, int q) if (uc->length > uc->max_length) { uc->max_length = uc->length; if (uc->max_length > max_length) - max_length = uc->max_length; + max_length = uc->max_length; } #endif } @@ -759,7 +759,7 @@ umtxq_signal_thread(struct umtx_q *uq) wakeup(uq); } -static inline int +static inline int tstohz(const struct timespec *tsp) { struct timeval tv; @@ -815,7 +815,7 @@ abs_timeout_gethz(struct abs_timeout *timo) struct timespec tts; if (timespeccmp(&timo->end, &timo->cur, <=)) - return (-1); + return (-1); tts = timo->end; timespecsub(&tts, &timo->cur); return (tstohz(&tts)); @@ -1000,7 +1000,7 @@ kern_umtx_wake(struct thread *td, void *uaddr, int n_w { struct umtx_key key; int ret; - + if ((ret = umtx_key_get(uaddr, TYPE_SIMPLE_WAIT, is_private ? THREAD_SHARE : AUTO_SHARE, &key)) != 0) return (ret); @@ -1483,7 +1483,7 @@ umtx_pi_check_loop(struct umtx_pi *pi) /* * Propagate priority when a thread is blocked on POSIX * PI mutex. - */ + */ static void umtx_propagate_priority(struct thread *td) { @@ -1734,7 +1734,7 @@ umtx_pi_ref(struct umtx_pi *pi) /* * Decrease reference count for a PI mutex, if the counter * is decreased to zero, its memory space is freed. - */ + */ static void umtx_pi_unref(struct umtx_pi *pi) { @@ -1919,7 +1919,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 */ if (error != 0) break; - + umtxq_lock(&uq->uq_key); umtxq_busy(&uq->uq_key); umtxq_unlock(&uq->uq_key); @@ -2033,7 +2033,7 @@ do_unlock_pi(struct thread *td, struct umutex *m, uint umtx_pi_disown(pi); /* get highest priority thread which is still sleeping. */ uq_first = TAILQ_FIRST(&pi->pi_blocked); - while (uq_first != NULL && + while (uq_first != NULL && (uq_first->uq_flags & UQF_UMTXQ) == 0) { uq_first = TAILQ_NEXT(uq_first, uq_lockq); } @@ -2534,7 +2534,7 @@ do_cv_wait(struct thread *td, struct ucond *cv, struct if (timeout != NULL) abs_timeout_init(&timo, clockid, (wflags & CVWAIT_ABSTIME) != 0, timeout); - + umtxq_lock(&uq->uq_key); if (error == 0) { error = umtxq_sleep(uq, "ucond", timeout == NULL ? @@ -2583,7 +2583,7 @@ do_cv_signal(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -2612,7 +2612,7 @@ do_cv_broadcast(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); @@ -3022,7 +3022,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock } if (state & URWLOCK_WRITE_OWNER) { for (;;) { - rv = casueword32(&rwlock->rw_state, state, + rv = casueword32(&rwlock->rw_state, state, &oldstate, state & ~URWLOCK_WRITE_OWNER); if (rv == -1) { error = EFAULT; @@ -3165,7 +3165,7 @@ do_sem_wake(struct thread *td, struct _usem *sem) if (error == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3283,7 +3283,7 @@ do_sem2_wake(struct thread *td, struct _usem2 *sem) if (rv == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3330,12 +3330,12 @@ static inline int umtx_copyin_umtx_time(const void *addr, size_t size, struct _umtx_time *tp) { int error; - + if (size <= sizeof(struct timespec)) { tp->_clockid = CLOCK_REALTIME; tp->_flags = 0; error = copyin(addr, &tp->_timeout, sizeof(struct timespec)); - } else + } else error = copyin(addr, tp, sizeof(struct _umtx_time)); if (error != 0) return (error); @@ -3569,7 +3569,7 @@ __umtx_op_rw_wrlock(struct thread *td, struct _umtx_op if (uap->uaddr2 == NULL) { error = do_rw_wrlock(td, uap->obj, 0); } else { - error = umtx_copyin_umtx_time(uap->uaddr2, + error = umtx_copyin_umtx_time(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); @@ -4074,12 +4074,12 @@ umtx_copyin_umtx_time32(const void *addr, size_t size, { struct umtx_time32 t32; int error; - + t32.clockid = CLOCK_REALTIME; t32.flags = 0; if (size <= sizeof(struct timespec32)) error = copyin(addr, &t32.timeout, sizeof(struct timespec32)); - else + else error = copyin(addr, &t32, sizeof(struct umtx_time32)); if (error != 0) return (error); @@ -4140,7 +4140,7 @@ __umtx_op_wait_umutex_compat32(struct thread *td, stru if (uap->uaddr2 == NULL) tm_p = NULL; else { - error = umtx_copyin_umtx_time32(uap->uaddr2, + error = umtx_copyin_umtx_time32(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); From owner-svn-src-all@freebsd.org Thu Jan 9 09:47:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8905E22F5D7; Thu, 9 Jan 2020 09:47:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47th9S2d7vz3NCM; Thu, 9 Jan 2020 09:47:24 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 555FF26DBF; Thu, 9 Jan 2020 09:47:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0099lOH1062337; Thu, 9 Jan 2020 09:47:24 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0099lOPa062336; Thu, 9 Jan 2020 09:47:24 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090947.0099lOPa062336@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 09:47:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356547 - stable/11/libexec/rtld-elf X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/libexec/rtld-elf X-SVN-Commit-Revision: 356547 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 09:47:24 -0000 Author: kib Date: Thu Jan 9 09:47:23 2020 New Revision: 356547 URL: https://svnweb.freebsd.org/changeset/base/356547 Log: MFC r356300, r356503: Fix AT_EXECPATH for direct exec mode. Modified: stable/11/libexec/rtld-elf/rtld.c Directory Properties: stable/11/ (props changed) Modified: stable/11/libexec/rtld-elf/rtld.c ============================================================================== --- stable/11/libexec/rtld-elf/rtld.c Thu Jan 9 09:30:14 2020 (r356546) +++ stable/11/libexec/rtld-elf/rtld.c Thu Jan 9 09:47:23 2020 (r356547) @@ -123,7 +123,8 @@ static void objlist_push_head(Objlist *, Obj_Entry *); static void objlist_push_tail(Objlist *, Obj_Entry *); static void objlist_put_after(Objlist *, Obj_Entry *, Obj_Entry *); static void objlist_remove(Objlist *, Obj_Entry *); -static int open_binary_fd(const char *argv0, bool search_in_path); +static int open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res); static int parse_args(char* argv[], int argc, bool *use_pathp, int *fdp); static int parse_integer(const char *); static void *path_enumerate(const char *, path_enum_proc, const char *, void *); @@ -362,6 +363,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr struct stat st; Elf_Addr *argcp; char **argv, *argv0, **env, **envp, *kexecpath, *library_path_rpath; + const char *binpath; caddr_t imgentry; char buf[MAXPATHLEN]; int argc, fd, i, mib[2], phnum, rtld_argc; @@ -445,8 +447,9 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr rtld_argc = parse_args(argv, argc, &search_in_path, &fd); argv0 = argv[rtld_argc]; explicit_fd = (fd != -1); + binpath = NULL; if (!explicit_fd) - fd = open_binary_fd(argv0, search_in_path); + fd = open_binary_fd(argv0, search_in_path, &binpath); if (fstat(fd, &st) == -1) { _rtld_error("failed to fstat FD %d (%s): %s", fd, explicit_fd ? "user-provided descriptor" : argv0, @@ -499,11 +502,24 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr } while (*envp != NULL); aux = auxp = (Elf_Auxinfo *)envp; auxpf = (Elf_Auxinfo *)(envp + rtld_argc); + /* XXXKIB insert place for AT_EXECPATH if not present */ for (;; auxp++, auxpf++) { *auxp = *auxpf; if (auxp->a_type == AT_NULL) break; } + + /* Point AT_EXECPATH auxv and aux_info to the binary path. */ + if (binpath == NULL) { + aux_info[AT_EXECPATH] = NULL; + } else { + if (aux_info[AT_EXECPATH] == NULL) { + aux_info[AT_EXECPATH] = xmalloc(sizeof(Elf_Auxinfo)); + aux_info[AT_EXECPATH]->a_type = AT_EXECPATH; + } + aux_info[AT_EXECPATH]->a_un.a_ptr = __DECONST(void *, + binpath); + } } else { rtld_printf("no binary\n"); rtld_die(); @@ -5392,12 +5408,14 @@ symlook_init_from_req(SymLook *dst, const SymLook *src } static int -open_binary_fd(const char *argv0, bool search_in_path) +open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res) { - char *pathenv, *pe, binpath[PATH_MAX]; + char *pathenv, *pe, *binpath; int fd; if (search_in_path && strchr(argv0, '/') == NULL) { + binpath = xmalloc(PATH_MAX); pathenv = getenv("PATH"); if (pathenv == NULL) { rtld_printf("-p and no PATH environment variable\n"); @@ -5411,24 +5429,25 @@ open_binary_fd(const char *argv0, bool search_in_path) fd = -1; errno = ENOENT; while ((pe = strsep(&pathenv, ":")) != NULL) { - if (strlcpy(binpath, pe, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcpy(binpath, pe, PATH_MAX) >= PATH_MAX) continue; if (binpath[0] != '\0' && - strlcat(binpath, "/", sizeof(binpath)) >= - sizeof(binpath)) + strlcat(binpath, "/", PATH_MAX) >= PATH_MAX) continue; - if (strlcat(binpath, argv0, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcat(binpath, argv0, PATH_MAX) >= PATH_MAX) continue; fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY); - if (fd != -1 || errno != ENOENT) + if (fd != -1 || errno != ENOENT) { + *binpath_res = binpath; break; + } } free(pathenv); } else { fd = open(argv0, O_RDONLY | O_CLOEXEC | O_VERIFY); + *binpath_res = argv0; } + /* XXXKIB Use getcwd() to resolve relative binpath to absolute. */ if (fd == -1) { rtld_printf("Opening %s: %s\n", argv0, From owner-svn-src-all@freebsd.org Thu Jan 9 10:00:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B8C1022FC63; Thu, 9 Jan 2020 10:00:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47thSS4SZSz3P7X; Thu, 9 Jan 2020 10:00:24 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9413726FAF; Thu, 9 Jan 2020 10:00:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009A0OWR068420; Thu, 9 Jan 2020 10:00:24 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009A0Ofo068419; Thu, 9 Jan 2020 10:00:24 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001091000.009A0Ofo068419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 10:00:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356548 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 356548 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 10:00:24 -0000 Author: kib Date: Thu Jan 9 10:00:24 2020 New Revision: 356548 URL: https://svnweb.freebsd.org/changeset/base/356548 Log: Resolve relative argv0 for direct exec mode to absolute path for AT_EXECPATH. We know the binary relative name and can reliably calculate cwd path. Because realpath(3) was already linked into ld-elf.so.1, reuse it there to resolve dots and dotdots making the path more canonical. Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D23014 Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Thu Jan 9 09:47:23 2020 (r356547) +++ head/libexec/rtld-elf/rtld.c Thu Jan 9 10:00:24 2020 (r356548) @@ -5513,9 +5513,12 @@ static int open_binary_fd(const char *argv0, bool search_in_path, const char **binpath_res) { - char *pathenv, *pe, *binpath; + char *abspath, *absres, *binpath, *pathenv, *pe, *res1; + const char *res; int fd; + binpath = NULL; + res = NULL; if (search_in_path && strchr(argv0, '/') == NULL) { binpath = xmalloc(PATH_MAX); pathenv = getenv("PATH"); @@ -5540,20 +5543,45 @@ open_binary_fd(const char *argv0, bool search_in_path, continue; fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY); if (fd != -1 || errno != ENOENT) { - *binpath_res = binpath; + res = binpath; break; } } free(pathenv); } else { fd = open(argv0, O_RDONLY | O_CLOEXEC | O_VERIFY); - *binpath_res = argv0; + res = argv0; } - /* XXXKIB Use getcwd() to resolve relative binpath to absolute. */ if (fd == -1) { _rtld_error("Cannot open %s: %s", argv0, rtld_strerror(errno)); rtld_die(); + } + if (res != NULL && res[0] != '/') { + abspath = getcwd(NULL, 0); + if (abspath != NULL) { + res1 = xmalloc(PATH_MAX); + if (realpath(res, res1) != NULL) { + if (res != argv0) + free(__DECONST(char *, res)); + res = res1; + } else { + free(res1); + } + absres = xmalloc(strlen(abspath) + + strlen(res) + 2); + strcpy(absres, abspath); + strcat(absres, "/"); + strcat(absres, res); + free(abspath); + if (res != argv0) + free(__DECONST(char *, res)); + *binpath_res = absres; + } else { + *binpath_res = res; + } + } else { + *binpath_res = res; } return (fd); } From owner-svn-src-all@freebsd.org Thu Jan 9 10:05:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B23601E8239; Thu, 9 Jan 2020 10:05:45 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47thZd4H9Nz3PnZ; Thu, 9 Jan 2020 10:05:45 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 756D127193; Thu, 9 Jan 2020 10:05:45 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009A5jFr073925; Thu, 9 Jan 2020 10:05:45 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009A5jfk073924; Thu, 9 Jan 2020 10:05:45 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001091005.009A5jfk073924@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 10:05:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356549 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 356549 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 10:05:45 -0000 Author: kib Date: Thu Jan 9 10:05:45 2020 New Revision: 356549 URL: https://svnweb.freebsd.org/changeset/base/356549 Log: rtld: Return error if $ORIGIN for a dlopen-ed library cannot be resolved ... instead of killing the process. The same behaviour of terminating image activation if the $ORIGIN cannot be resolved for the main object, is kept. Reported by: Greg V Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D23053 Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Thu Jan 9 10:00:24 2020 (r356548) +++ head/libexec/rtld-elf/rtld.c Thu Jan 9 10:05:45 2020 (r356549) @@ -88,9 +88,9 @@ extern void (*__cleanup)(void); static const char *basename(const char *); static void digest_dynamic1(Obj_Entry *, int, const Elf_Dyn **, const Elf_Dyn **, const Elf_Dyn **); -static void digest_dynamic2(Obj_Entry *, const Elf_Dyn *, const Elf_Dyn *, +static bool digest_dynamic2(Obj_Entry *, const Elf_Dyn *, const Elf_Dyn *, const Elf_Dyn *); -static void digest_dynamic(Obj_Entry *, int); +static bool digest_dynamic(Obj_Entry *, int); static Obj_Entry *digest_phdr(const Elf_Phdr *, int, caddr_t, const char *); static void distribute_static_tls(Objlist *, RtldLockState *); static Obj_Entry *dlcheck(void *); @@ -671,7 +671,8 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr } #endif - digest_dynamic(obj_main, 0); + if (!digest_dynamic(obj_main, 0)) + rtld_die(); dbg("%s valid_hash_sysv %d valid_hash_gnu %d dynsymcount %d", obj_main->path, obj_main->valid_hash_sysv, obj_main->valid_hash_gnu, obj_main->dynsymcount); @@ -1408,13 +1409,13 @@ obj_resolve_origin(Obj_Entry *obj) return (rtld_dirname_abs(obj->path, obj->origin_path) != -1); } -static void +static bool digest_dynamic2(Obj_Entry *obj, const Elf_Dyn *dyn_rpath, const Elf_Dyn *dyn_soname, const Elf_Dyn *dyn_runpath) { if (obj->z_origin && !obj_resolve_origin(obj)) - rtld_die(); + return (false); if (dyn_runpath != NULL) { obj->runpath = (const char *)obj->strtab + dyn_runpath->d_un.d_val; @@ -1425,9 +1426,10 @@ digest_dynamic2(Obj_Entry *obj, const Elf_Dyn *dyn_rpa } if (dyn_soname != NULL) object_add_name(obj, obj->strtab + dyn_soname->d_un.d_val); + return (true); } -static void +static bool digest_dynamic(Obj_Entry *obj, int early) { const Elf_Dyn *dyn_rpath; @@ -1435,7 +1437,7 @@ digest_dynamic(Obj_Entry *obj, int early) const Elf_Dyn *dyn_runpath; digest_dynamic1(obj, early, &dyn_rpath, &dyn_soname, &dyn_runpath); - digest_dynamic2(obj, dyn_rpath, dyn_soname, dyn_runpath); + return (digest_dynamic2(obj, dyn_rpath, dyn_soname, dyn_runpath)); } /* @@ -2563,16 +2565,15 @@ do_load_object(int fd, const char *name, char *path, s if (name != NULL) object_add_name(obj, name); obj->path = path; - digest_dynamic(obj, 0); + if (!digest_dynamic(obj, 0)) + goto errp; dbg("%s valid_hash_sysv %d valid_hash_gnu %d dynsymcount %d", obj->path, obj->valid_hash_sysv, obj->valid_hash_gnu, obj->dynsymcount); if (obj->z_noopen && (flags & (RTLD_LO_DLOPEN | RTLD_LO_TRACE)) == RTLD_LO_DLOPEN) { dbg("refusing to load non-loadable \"%s\"", obj->path); _rtld_error("Cannot dlopen non-loadable %s", obj->path); - munmap(obj->mapbase, obj->mapsize); - obj_free(obj); - return (NULL); + goto errp; } obj->dlopened = (flags & RTLD_LO_DLOPEN) != 0; @@ -2589,7 +2590,12 @@ do_load_object(int fd, const char *name, char *path, s LD_UTRACE(UTRACE_LOAD_OBJECT, obj, obj->mapbase, obj->mapsize, 0, obj->path); - return obj; + return (obj); + +errp: + munmap(obj->mapbase, obj->mapsize); + obj_free(obj); + return (NULL); } static Obj_Entry * @@ -3990,12 +3996,17 @@ rtld_dirname_abs(const char *path, char *base) { char *last; - if (realpath(path, base) == NULL) + if (realpath(path, base) == NULL) { + _rtld_error("realpath \"%s\" failed (%s)", path, + rtld_strerror(errno)); return (-1); + } dbg("%s -> %s", path, base); last = strrchr(base, '/'); - if (last == NULL) + if (last == NULL) { + _rtld_error("non-abs result from realpath \"%s\"", path); return (-1); + } if (last != base) *last = '\0'; return (0); From owner-svn-src-all@freebsd.org Thu Jan 9 10:26:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 99A351E8D90; Thu, 9 Jan 2020 10:26:37 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tj2j3cXJz3R8t; Thu, 9 Jan 2020 10:26:37 +0000 (UTC) (envelope-from andrew@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7768427533; Thu, 9 Jan 2020 10:26:37 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009AQb5S086276; Thu, 9 Jan 2020 10:26:37 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009AQblu086275; Thu, 9 Jan 2020 10:26:37 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <202001091026.009AQblu086275@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 9 Jan 2020 10:26:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356550 - head/sys/arm64/include X-SVN-Group: head X-SVN-Commit-Author: andrew X-SVN-Commit-Paths: head/sys/arm64/include X-SVN-Commit-Revision: 356550 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 10:26:37 -0000 Author: andrew Date: Thu Jan 9 10:26:36 2020 New Revision: 356550 URL: https://svnweb.freebsd.org/changeset/base/356550 Log: Add atomic_testandset/clear on arm64. These will reportedly be used in future uma changes. MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D23019 Modified: head/sys/arm64/include/atomic.h Modified: head/sys/arm64/include/atomic.h ============================================================================== --- head/sys/arm64/include/atomic.h Thu Jan 9 10:05:45 2020 (r356549) +++ head/sys/arm64/include/atomic.h Thu Jan 9 10:26:36 2020 (r356550) @@ -548,7 +548,87 @@ atomic_store_rel_64(volatile uint64_t *p, uint64_t val : "memory"); } +static __inline int +atomic_testandclear_32(volatile uint32_t *p, u_int val) +{ + uint32_t mask, old, tmp; + int res; + mask = 1u << (val & 0x1f); + __asm __volatile( + "1: ldxr %w2, [%3] \n" + " bic %w0, %w2, %w4 \n" + " stxr %w1, %w0, [%3] \n" + " cbnz %w1, 1b \n" + : "=&r"(tmp), "=&r"(res), "=&r"(old) + : "r" (p), "r" (mask) + : "memory" + ); + + return ((old & mask) != 0); +} + +static __inline int +atomic_testandclear_64(volatile uint64_t *p, u_int val) +{ + uint64_t mask, old, tmp; + int res; + + mask = 1ul << (val & 0x1f); + __asm __volatile( + "1: ldxr %2, [%3] \n" + " bic %0, %2, %4 \n" + " stxr %w1, %0, [%3] \n" + " cbnz %w1, 1b \n" + : "=&r"(tmp), "=&r"(res), "=&r"(old) + : "r" (p), "r" (mask) + : "memory" + ); + + return ((old & mask) != 0); +} + +static __inline int +atomic_testandset_32(volatile uint32_t *p, u_int val) +{ + uint32_t mask, old, tmp; + int res; + + mask = 1u << (val & 0x1f); + __asm __volatile( + "1: ldxr %w2, [%3] \n" + " orr %w0, %w2, %w4 \n" + " stxr %w1, %w0, [%3] \n" + " cbnz %w1, 1b \n" + : "=&r"(tmp), "=&r"(res), "=&r"(old) + : "r" (p), "r" (mask) + : "memory" + ); + + return ((old & mask) != 0); +} + +static __inline int +atomic_testandset_64(volatile uint64_t *p, u_int val) +{ + uint64_t mask, old, tmp; + int res; + + mask = 1ul << (val & 0x1f); + __asm __volatile( + "1: ldxr %2, [%3] \n" + " orr %0, %2, %4 \n" + " stxr %w1, %0, [%3] \n" + " cbnz %w1, 1b \n" + : "=&r"(tmp), "=&r"(res), "=&r"(old) + : "r" (p), "r" (mask) + : "memory" + ); + + return ((old & mask) != 0); +} + + #define atomic_add_int atomic_add_32 #define atomic_fcmpset_int atomic_fcmpset_32 #define atomic_clear_int atomic_clear_32 @@ -558,6 +638,8 @@ atomic_store_rel_64(volatile uint64_t *p, uint64_t val #define atomic_set_int atomic_set_32 #define atomic_swap_int atomic_swap_32 #define atomic_subtract_int atomic_subtract_32 +#define atomic_testandclear_int atomic_testandclear_32 +#define atomic_testandset_int atomic_testandset_32 #define atomic_add_acq_int atomic_add_acq_32 #define atomic_fcmpset_acq_int atomic_fcmpset_acq_32 @@ -584,6 +666,8 @@ atomic_store_rel_64(volatile uint64_t *p, uint64_t val #define atomic_set_long atomic_set_64 #define atomic_swap_long atomic_swap_64 #define atomic_subtract_long atomic_subtract_64 +#define atomic_testandclear_long atomic_testandclear_64 +#define atomic_testandset_long atomic_testandset_64 #define atomic_add_ptr atomic_add_64 #define atomic_fcmpset_ptr atomic_fcmpset_64 From owner-svn-src-all@freebsd.org Thu Jan 9 11:58:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2D97F1EB104; Thu, 9 Jan 2020 11:58:27 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tl4g0SNgz41fH; Thu, 9 Jan 2020 11:58:27 +0000 (UTC) (envelope-from eugen@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0AF176B1; Thu, 9 Jan 2020 11:58:27 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009BwQZd042071; Thu, 9 Jan 2020 11:58:26 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009BwQgS042070; Thu, 9 Jan 2020 11:58:26 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202001091158.009BwQgS042070@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Thu, 9 Jan 2020 11:58:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356551 - head/usr.sbin/arp X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/usr.sbin/arp X-SVN-Commit-Revision: 356551 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 11:58:27 -0000 Author: eugen Date: Thu Jan 9 11:58:26 2020 New Revision: 356551 URL: https://svnweb.freebsd.org/changeset/base/356551 Log: arp(8): avoid segfaulting due to out-of-bounds memory access Fix obvious mistake that sometimes results in reading memory past end of an array. PR: 240825 MFC after: 1 week Modified: head/usr.sbin/arp/arp.c Modified: head/usr.sbin/arp/arp.c ============================================================================== --- head/usr.sbin/arp/arp.c Thu Jan 9 10:26:36 2020 (r356550) +++ head/usr.sbin/arp/arp.c Thu Jan 9 11:58:26 2020 (r356551) @@ -627,8 +627,7 @@ print_entry(struct sockaddr_dl *sdl, } else xo_emit("{d:/(incomplete)}{en:incomplete/true}"); - for (p = ifnameindex; p && ifnameindex->if_index && - ifnameindex->if_name; p++) { + for (p = ifnameindex; p && p->if_index && p->if_name; p++) { if (p->if_index == sdl->sdl_index) { xo_emit(" on {:interface/%s}", p->if_name); break; From owner-svn-src-all@freebsd.org Thu Jan 9 14:10:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 761B21EF3C2; Thu, 9 Jan 2020 14:10:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tp0h2b2Sz49lP; Thu, 9 Jan 2020 14:10:12 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 53F611F8E; Thu, 9 Jan 2020 14:10:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009EACwf020680; Thu, 9 Jan 2020 14:10:12 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009EACsn020679; Thu, 9 Jan 2020 14:10:12 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001091410.009EACsn020679@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 9 Jan 2020 14:10:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356552 - in head/contrib/llvm-project/libunwind: include src X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head/contrib/llvm-project/libunwind: include src X-SVN-Commit-Revision: 356552 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 14:10:12 -0000 Author: emaste Date: Thu Jan 9 14:10:11 2020 New Revision: 356552 URL: https://svnweb.freebsd.org/changeset/base/356552 Log: revert r356513: libunwind: untested attempt to fix sparc64 build The patch is untested and is almost certainly insufficient. Per the author's request, revert until someone with access to sparc64 hardware can test and report. Modified: head/contrib/llvm-project/libunwind/include/__libunwind_config.h head/contrib/llvm-project/libunwind/src/config.h Modified: head/contrib/llvm-project/libunwind/include/__libunwind_config.h ============================================================================== --- head/contrib/llvm-project/libunwind/include/__libunwind_config.h Thu Jan 9 11:58:26 2020 (r356551) +++ head/contrib/llvm-project/libunwind/include/__libunwind_config.h Thu Jan 9 14:10:11 2020 (r356552) @@ -124,7 +124,7 @@ #define _LIBUNWIND_TARGET_SPARC 1 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC #define _LIBUNWIND_CONTEXT_SIZE 16 - #define _LIBUNWIND_CURSOR_SIZE 28 + #define _LIBUNWIND_CURSOR_SIZE 23 # else # error "Unsupported architecture." # endif Modified: head/contrib/llvm-project/libunwind/src/config.h ============================================================================== --- head/contrib/llvm-project/libunwind/src/config.h Thu Jan 9 11:58:26 2020 (r356551) +++ head/contrib/llvm-project/libunwind/src/config.h Thu Jan 9 14:10:11 2020 (r356552) @@ -104,8 +104,7 @@ (!defined(__APPLE__) && defined(__arm__)) || \ (defined(__arm64__) || defined(__aarch64__)) || \ defined(__mips__) || \ - defined(__riscv) || \ - defined(__sparc__) + defined(__riscv) #if !defined(_LIBUNWIND_BUILD_SJLJ_APIS) #define _LIBUNWIND_BUILD_ZERO_COST_APIS #endif From owner-svn-src-all@freebsd.org Thu Jan 9 14:12:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A03581EF63E; Thu, 9 Jan 2020 14:12:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tp3s3h3vz4BBC; Thu, 9 Jan 2020 14:12:57 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 79755214C; Thu, 9 Jan 2020 14:12:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009ECvWW026330; Thu, 9 Jan 2020 14:12:57 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009ECveL026329; Thu, 9 Jan 2020 14:12:57 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001091412.009ECveL026329@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 9 Jan 2020 14:12:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356553 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356553 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 14:12:57 -0000 Author: emaste Date: Thu Jan 9 14:12:57 2020 New Revision: 356553 URL: https://svnweb.freebsd.org/changeset/base/356553 Log: Revert r356515 - add LLVM_LIBUNWIND back to sparc64 BROKEN_OPTIONS r356552 reverted the untested build fix for LLVM libunwind on sparc64, so mark it broken again. Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Thu Jan 9 14:10:11 2020 (r356552) +++ head/share/mk/src.opts.mk Thu Jan 9 14:12:57 2020 (r356553) @@ -392,6 +392,8 @@ BROKEN_OPTIONS+=NVME .if ${__T:Msparc64} # Sparc64 need extra crt*.o files - PR 239851 BROKEN_OPTIONS+=BSD_CRTBEGIN +# PR 233405 +BROKEN_OPTIONS+=LLVM_LIBUNWIND .endif .if ${COMPILER_FEATURES:Mc++11} && \ From owner-svn-src-all@freebsd.org Thu Jan 9 14:58:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 92C4C1F06EB; Thu, 9 Jan 2020 14:58:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tq4f3QZxz4Fdb; Thu, 9 Jan 2020 14:58:42 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 70D3C28A4; Thu, 9 Jan 2020 14:58:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009EwgAF050504; Thu, 9 Jan 2020 14:58:42 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009EwfUg050501; Thu, 9 Jan 2020 14:58:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001091458.009EwfUg050501@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 9 Jan 2020 14:58:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356554 - in head: sbin/ifconfig sys/net X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head: sbin/ifconfig sys/net X-SVN-Commit-Revision: 356554 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 14:58:42 -0000 Author: markj Date: Thu Jan 9 14:58:41 2020 New Revision: 356554 URL: https://svnweb.freebsd.org/changeset/base/356554 Log: lagg: Further cleanup of the rr_limit option. Add an option flag so that arbitrary updates to a lagg's configuration do not clear sc_stride. Preseve compatibility for old ifconfig binaries. Update ifconfig to use the new flag and improve the casting used when parsing the option parameter. Modify the RR transmit function to avoid locklessly reading sc_stride twice. Ensure that sc_stride is always 1 or greater. Reviewed by: hselasky MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23092 Modified: head/sbin/ifconfig/iflagg.c head/sys/net/if_lagg.c head/sys/net/if_lagg.h Modified: head/sbin/ifconfig/iflagg.c ============================================================================== --- head/sbin/ifconfig/iflagg.c Thu Jan 9 14:12:57 2020 (r356553) +++ head/sbin/ifconfig/iflagg.c Thu Jan 9 14:58:41 2020 (r356554) @@ -114,10 +114,13 @@ setlaggrr_limit(const char *val, int d, int s, const s bzero(&ro, sizeof(ro)); strlcpy(ro.ro_ifname, name, sizeof(ro.ro_ifname)); - ro.ro_bkt = (int)strtol(val, NULL, 10); + ro.ro_opts = LAGG_OPT_RR_LIMIT; + ro.ro_bkt = (uint32_t)strtoul(val, NULL, 10); + if (ro.ro_bkt == 0) + errx(1, "Invalid round-robin stride: %s", val); if (ioctl(s, SIOCSLAGGOPTS, &ro) != 0) - err(1, "SIOCSLAGG"); + err(1, "SIOCSLAGGOPTS"); } static void Modified: head/sys/net/if_lagg.c ============================================================================== --- head/sys/net/if_lagg.c Thu Jan 9 14:12:57 2020 (r356553) +++ head/sys/net/if_lagg.c Thu Jan 9 14:58:41 2020 (r356554) @@ -1257,21 +1257,18 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data /* * The stride option was added without defining a corresponding - * LAGG_OPT flag, so we must handle it before processing any - * remaining options. + * LAGG_OPT flag, so handle a non-zero value before checking + * anything else to preserve compatibility. */ LAGG_XLOCK(sc); - if (ro->ro_bkt != 0) { + if (ro->ro_opts == 0 && ro->ro_bkt != 0) { if (sc->sc_proto != LAGG_PROTO_ROUNDROBIN) { LAGG_XUNLOCK(sc); error = EINVAL; break; } sc->sc_stride = ro->ro_bkt; - } else { - sc->sc_stride = 0; } - if (ro->ro_opts == 0) { LAGG_XUNLOCK(sc); break; @@ -1289,6 +1286,7 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data case LAGG_OPT_USE_NUMA: case -LAGG_OPT_USE_NUMA: case LAGG_OPT_FLOWIDSHIFT: + case LAGG_OPT_RR_LIMIT: valid = 1; lacp = 0; break; @@ -1314,14 +1312,23 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data LAGG_XUNLOCK(sc); break; /* Return from SIOCSLAGGOPTS. */ } + /* * Store new options into sc->sc_opts except for - * FLOWIDSHIFT and LACP options. + * FLOWIDSHIFT, RR and LACP options. */ if (lacp == 0) { if (ro->ro_opts == LAGG_OPT_FLOWIDSHIFT) sc->flowid_shift = ro->ro_flowid_shift; - else if (ro->ro_opts > 0) + else if (ro->ro_opts == LAGG_OPT_RR_LIMIT) { + if (sc->sc_proto != LAGG_PROTO_ROUNDROBIN || + ro->ro_bkt == 0) { + error = EINVAL; + LAGG_XUNLOCK(sc); + break; + } + sc->sc_stride = ro->ro_bkt; + } else if (ro->ro_opts > 0) sc->sc_opts |= ro->ro_opts; else sc->sc_opts &= ~ro->ro_opts; @@ -2046,6 +2053,7 @@ static void lagg_rr_attach(struct lagg_softc *sc) { sc->sc_seq = 0; + sc->sc_stride = 1; } static int @@ -2055,9 +2063,7 @@ lagg_rr_start(struct lagg_softc *sc, struct mbuf *m) uint32_t p; p = atomic_fetchadd_32(&sc->sc_seq, 1); - if (sc->sc_stride > 0) - p /= sc->sc_stride; - + p /= sc->sc_stride; p %= sc->sc_count; lp = CK_SLIST_FIRST(&sc->sc_ports); Modified: head/sys/net/if_lagg.h ============================================================================== --- head/sys/net/if_lagg.h Thu Jan 9 14:12:57 2020 (r356553) +++ head/sys/net/if_lagg.h Thu Jan 9 14:58:41 2020 (r356554) @@ -63,11 +63,11 @@ struct lagg_protos { #define LAGG_PROTO_DEFAULT LAGG_PROTO_FAILOVER #define LAGG_PROTOS { \ - { "failover", LAGG_PROTO_FAILOVER }, \ + { "failover", LAGG_PROTO_FAILOVER }, \ { "lacp", LAGG_PROTO_LACP }, \ { "loadbalance", LAGG_PROTO_LOADBALANCE }, \ - { "roundrobin", LAGG_PROTO_ROUNDROBIN }, \ - { "broadcast", LAGG_PROTO_BROADCAST }, \ + { "roundrobin", LAGG_PROTO_ROUNDROBIN }, \ + { "broadcast", LAGG_PROTO_BROADCAST }, \ { "none", LAGG_PROTO_NONE }, \ { "default", LAGG_PROTO_DEFAULT } \ } @@ -149,6 +149,7 @@ struct lagg_reqopts { #define LAGG_OPT_LACP_TXTEST 0x20 /* LACP debug: txtest */ #define LAGG_OPT_LACP_RXTEST 0x40 /* LACP debug: rxtest */ #define LAGG_OPT_LACP_TIMEOUT 0x80 /* LACP timeout */ +#define LAGG_OPT_RR_LIMIT 0x100 /* RR stride */ u_int ro_count; /* number of ports */ u_int ro_active; /* active port count */ u_int ro_flapping; /* number of flapping */ From owner-svn-src-all@freebsd.org Thu Jan 9 15:02:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8134D1F093B; Thu, 9 Jan 2020 15:02:49 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tq9P2sX8z4G4X; Thu, 9 Jan 2020 15:02:49 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5D9222AA4; Thu, 9 Jan 2020 15:02:49 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009F2nwb056284; Thu, 9 Jan 2020 15:02:49 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009F2nLC056283; Thu, 9 Jan 2020 15:02:49 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001091502.009F2nLC056283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 9 Jan 2020 15:02:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356555 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356555 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 15:02:49 -0000 Author: markj Date: Thu Jan 9 15:02:48 2020 New Revision: 356555 URL: https://svnweb.freebsd.org/changeset/base/356555 Log: Change malloc_domain() to return the allocation size to the caller. Otherwise the malloc type accounting in malloc_domainset(9) is wrong after r355203. Reviewed by: rlibby Reported by: kaktus Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23095 Modified: head/sys/kern/kern_malloc.c Modified: head/sys/kern/kern_malloc.c ============================================================================== --- head/sys/kern/kern_malloc.c Thu Jan 9 14:58:41 2020 (r356554) +++ head/sys/kern/kern_malloc.c Thu Jan 9 15:02:48 2020 (r356555) @@ -652,13 +652,15 @@ void * } static void * -malloc_domain(size_t size, int *indxp, struct malloc_type *mtp, int domain, +malloc_domain(size_t *sizep, int *indxp, struct malloc_type *mtp, int domain, int flags) { - int indx; - caddr_t va; uma_zone_t zone; + caddr_t va; + size_t size; + int indx; + size = *sizep; KASSERT(size <= kmem_zmax && (flags & M_EXEC) == 0, ("malloc_domain: Called with bad flag / size combination.")); if (size & KMEM_ZMASK) @@ -670,10 +672,9 @@ malloc_domain(size_t size, int *indxp, struct malloc_t #endif va = uma_zalloc_domain(zone, NULL, domain, flags); if (va != NULL) - size = zone->uz_size; + *sizep = zone->uz_size; *indxp = indx; - - return ((void *) va); + return ((void *)va); } void * @@ -696,7 +697,7 @@ malloc_domainset(size_t size, struct malloc_type *mtp, if (size <= kmem_zmax && (flags & M_EXEC) == 0) { vm_domainset_iter_policy_init(&di, ds, &domain, &flags); do { - ret = malloc_domain(size, &indx, mtp, domain, flags); + ret = malloc_domain(&size, &indx, mtp, domain, flags); } while (ret == NULL && vm_domainset_iter_policy(&di, &domain) == 0); malloc_type_zone_allocated(mtp, ret == NULL ? 0 : size, indx); From owner-svn-src-all@freebsd.org Thu Jan 9 15:21:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 31DA71F1004; Thu, 9 Jan 2020 15:21:43 +0000 (UTC) (envelope-from arrowd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tqbC0dLJz4H3q; Thu, 9 Jan 2020 15:21:43 +0000 (UTC) (envelope-from arrowd@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 110E72DEF; Thu, 9 Jan 2020 15:21:43 +0000 (UTC) (envelope-from arrowd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009FLg9n067119; Thu, 9 Jan 2020 15:21:42 GMT (envelope-from arrowd@FreeBSD.org) Received: (from arrowd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009FLg8R067118; Thu, 9 Jan 2020 15:21:42 GMT (envelope-from arrowd@FreeBSD.org) Message-Id: <202001091521.009FLg8R067118@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arrowd set sender to arrowd@FreeBSD.org using -f From: Gleb Popov Date: Thu, 9 Jan 2020 15:21:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356556 - head/sys/cam/scsi X-SVN-Group: head X-SVN-Commit-Author: arrowd X-SVN-Commit-Paths: head/sys/cam/scsi X-SVN-Commit-Revision: 356556 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 15:21:43 -0000 Author: arrowd (ports committer) Date: Thu Jan 9 15:21:42 2020 New Revision: 356556 URL: https://svnweb.freebsd.org/changeset/base/356556 Log: Fix typo: MANGAEMENT_PROTOCOL_OUT -> MANAGEMENT_PROTOCOL_OUT. Approved by: allanjude Modified: head/sys/cam/scsi/scsi_all.h Modified: head/sys/cam/scsi/scsi_all.h ============================================================================== --- head/sys/cam/scsi/scsi_all.h Thu Jan 9 15:02:48 2020 (r356555) +++ head/sys/cam/scsi/scsi_all.h Thu Jan 9 15:21:42 2020 (r356556) @@ -2142,7 +2142,7 @@ struct ata_pass_32 { #define CHANGE_ALIASES 0x0B #define SET_PRIORITY 0x0E #define SET_TIMESTAMP 0x0F -#define MANGAEMENT_PROTOCOL_OUT 0x10 +#define MANAGEMENT_PROTOCOL_OUT 0x10 /* * Device Types From owner-svn-src-all@freebsd.org Thu Jan 9 16:34:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C0C181F2E5B; Thu, 9 Jan 2020 16:34:54 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tsCf4R2Pz4MR8; Thu, 9 Jan 2020 16:34:54 +0000 (UTC) (envelope-from imp@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8F14D3DF1; Thu, 9 Jan 2020 16:34:54 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009GYscX009733; Thu, 9 Jan 2020 16:34:54 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009GYsG2009732; Thu, 9 Jan 2020 16:34:54 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202001091634.009GYsG2009732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 9 Jan 2020 16:34:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356557 - head/sys/cam X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam X-SVN-Commit-Revision: 356557 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 16:34:54 -0000 Author: imp Date: Thu Jan 9 16:34:54 2020 New Revision: 356557 URL: https://svnweb.freebsd.org/changeset/base/356557 Log: Const-poison the cam_sim_* convenience accessor functions. These don't modify the cam_sim, so make that parameter const. Modified: head/sys/cam/cam_sim.h Modified: head/sys/cam/cam_sim.h ============================================================================== --- head/sys/cam/cam_sim.h Thu Jan 9 15:21:42 2020 (r356556) +++ head/sys/cam/cam_sim.h Thu Jan 9 16:34:54 2020 (r356557) @@ -81,11 +81,11 @@ void cam_sim_set_path(struct cam_sim *sim, u_int32_t p /* Convenience routines for accessing sim attributes. */ -static __inline u_int32_t cam_sim_path(struct cam_sim *sim); -static __inline const char * cam_sim_name(struct cam_sim *sim); -static __inline void * cam_sim_softc(struct cam_sim *sim); -static __inline u_int32_t cam_sim_unit(struct cam_sim *sim); -static __inline u_int32_t cam_sim_bus(struct cam_sim *sim); +static __inline u_int32_t cam_sim_path(const struct cam_sim *sim); +static __inline const char * cam_sim_name(const struct cam_sim *sim); +static __inline void * cam_sim_softc(const struct cam_sim *sim); +static __inline u_int32_t cam_sim_unit(const struct cam_sim *sim); +static __inline u_int32_t cam_sim_bus(const struct cam_sim *sim); @@ -125,31 +125,31 @@ struct cam_sim { #define CAM_SIM_UNLOCK(sim) mtx_unlock((sim)->mtx) static __inline u_int32_t -cam_sim_path(struct cam_sim *sim) +cam_sim_path(const struct cam_sim *sim) { return (sim->path_id); } static __inline const char * -cam_sim_name(struct cam_sim *sim) +cam_sim_name(const struct cam_sim *sim) { return (sim->sim_name); } static __inline void * -cam_sim_softc(struct cam_sim *sim) +cam_sim_softc(const struct cam_sim *sim) { return (sim->softc); } static __inline u_int32_t -cam_sim_unit(struct cam_sim *sim) +cam_sim_unit(const struct cam_sim *sim) { return (sim->unit_number); } static __inline u_int32_t -cam_sim_bus(struct cam_sim *sim) +cam_sim_bus(const struct cam_sim *sim) { return (sim->bus_id); } From owner-svn-src-all@freebsd.org Thu Jan 9 16:48:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 740EF1F3323; Thu, 9 Jan 2020 16:48:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tsVm29rPz4N9c; Thu, 9 Jan 2020 16:48:00 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 45E994011; Thu, 9 Jan 2020 16:48:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009Gm054015915; Thu, 9 Jan 2020 16:48:00 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Glxnj015907; Thu, 9 Jan 2020 16:47:59 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001091647.009Glxnj015907@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 9 Jan 2020 16:47:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356558 - in stable/12: sbin/ifconfig share/man/man4 sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in stable/12: sbin/ifconfig share/man/man4 sys/net X-SVN-Commit-Revision: 356558 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 16:48:00 -0000 Author: markj Date: Thu Jan 9 16:47:59 2020 New Revision: 356558 URL: https://svnweb.freebsd.org/changeset/base/356558 Log: MFC r356029: lagg: Clean up handling of the rr_limit option. Modified: stable/12/sbin/ifconfig/ifconfig.8 stable/12/share/man/man4/lagg.4 stable/12/sys/net/if_lagg.c stable/12/sys/net/if_lagg.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/ifconfig/ifconfig.8 ============================================================================== --- stable/12/sbin/ifconfig/ifconfig.8 Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/sbin/ifconfig/ifconfig.8 Thu Jan 9 16:47:59 2020 (r356558) @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd May 3, 2019 +.Dd December 17, 2019 .Dt IFCONFIG 8 .Os .Sh NAME @@ -2516,6 +2516,9 @@ means .Dq enabled . .It Cm -lacp_strict Disable lacp strict compliance on the interface. +.It Cm rr_limit Ar number +Configure a stride for an interface in round-robin mode. +The default stride is 1. .El .Pp The following parameters apply to IP tunnel interfaces, Modified: stable/12/share/man/man4/lagg.4 ============================================================================== --- stable/12/share/man/man4/lagg.4 Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/share/man/man4/lagg.4 Thu Jan 9 16:47:59 2020 (r356558) @@ -166,7 +166,7 @@ Gigabit Ethernet interfaces: .Pp Create a link aggregation using ROUNDROBIN with two .Xr bge 4 -Gigabit Ethernet interfaces and set the limit of 500 packets +Gigabit Ethernet interfaces and set a stride of 500 packets per interface: .Bd -literal -offset indent # ifconfig bge0 up Modified: stable/12/sys/net/if_lagg.c ============================================================================== --- stable/12/sys/net/if_lagg.c Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/sys/net/if_lagg.c Thu Jan 9 16:47:59 2020 (r356558) @@ -1219,23 +1219,38 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data CK_SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) ro->ro_active += LAGG_PORTACTIVE(lp); } - ro->ro_bkt = sc->sc_bkt; + ro->ro_bkt = sc->sc_stride; ro->ro_flapping = sc->sc_flapping; ro->ro_flowid_shift = sc->flowid_shift; LAGG_XUNLOCK(sc); break; case SIOCSLAGGOPTS: - if (sc->sc_proto == LAGG_PROTO_ROUNDROBIN) { - if (ro->ro_bkt == 0) - sc->sc_bkt = 1; // Minimum 1 packet per iface. - else - sc->sc_bkt = ro->ro_bkt; - } error = priv_check(td, PRIV_NET_LAGG); if (error) break; - if (ro->ro_opts == 0) + + /* + * The stride option was added without defining a corresponding + * LAGG_OPT flag, so we must handle it before processing any + * remaining options. + */ + LAGG_XLOCK(sc); + if (ro->ro_bkt != 0) { + if (sc->sc_proto != LAGG_PROTO_ROUNDROBIN) { + LAGG_XUNLOCK(sc); + error = EINVAL; + break; + } + sc->sc_stride = ro->ro_bkt; + } else { + sc->sc_stride = 0; + } + + if (ro->ro_opts == 0) { + LAGG_XUNLOCK(sc); break; + } + /* * Set options. LACP options are stored in sc->sc_psc, * not in sc_opts. @@ -1264,8 +1279,6 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data break; } - LAGG_XLOCK(sc); - if (valid == 0 || (lacp == 1 && sc->sc_proto != LAGG_PROTO_LACP)) { /* Invalid combination of options specified. */ @@ -1902,7 +1915,6 @@ static void lagg_rr_attach(struct lagg_softc *sc) { sc->sc_seq = 0; - sc->sc_bkt_count = sc->sc_bkt; } static int @@ -1911,17 +1923,9 @@ lagg_rr_start(struct lagg_softc *sc, struct mbuf *m) struct lagg_port *lp; uint32_t p; - if (sc->sc_bkt_count == 0 && sc->sc_bkt > 0) - sc->sc_bkt_count = sc->sc_bkt; - - if (sc->sc_bkt > 0) { - atomic_subtract_int(&sc->sc_bkt_count, 1); - if (atomic_cmpset_int(&sc->sc_bkt_count, 0, sc->sc_bkt)) - p = atomic_fetchadd_32(&sc->sc_seq, 1); - else - p = sc->sc_seq; - } else - p = atomic_fetchadd_32(&sc->sc_seq, 1); + p = atomic_fetchadd_32(&sc->sc_seq, 1); + if (sc->sc_stride > 0) + p /= sc->sc_stride; p %= sc->sc_count; lp = CK_SLIST_FIRST(&sc->sc_ports); Modified: stable/12/sys/net/if_lagg.h ============================================================================== --- stable/12/sys/net/if_lagg.h Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/sys/net/if_lagg.h Thu Jan 9 16:47:59 2020 (r356558) @@ -152,7 +152,7 @@ struct lagg_reqopts { u_int ro_active; /* active port count */ u_int ro_flapping; /* number of flapping */ int ro_flowid_shift; /* shift the flowid */ - uint32_t ro_bkt; /* packet bucket for roundrobin */ + uint32_t ro_bkt; /* stride for RR */ }; #define SIOCGLAGGOPTS _IOWR('i', 152, struct lagg_reqopts) @@ -214,6 +214,7 @@ struct lagg_softc { struct ifmedia sc_media; /* media config */ void *sc_psc; /* protocol data */ uint32_t sc_seq; /* sequence counter */ + uint32_t sc_stride; /* stride for RR */ uint32_t sc_flags; int sc_destroying; /* destroying lagg */ @@ -225,8 +226,6 @@ struct lagg_softc { struct callout sc_callout; u_int sc_opts; int flowid_shift; /* shift the flowid */ - uint32_t sc_bkt; /* packates bucket for roundrobin */ - uint32_t sc_bkt_count; /* packates bucket count for roundrobin */ struct lagg_counters detached_counters; /* detached ports sum */ }; From owner-svn-src-all@freebsd.org Thu Jan 9 17:21:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DAC4F1F4178; Thu, 9 Jan 2020 17:21:02 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ttDt5Tz3z4QJb; Thu, 9 Jan 2020 17:21:02 +0000 (UTC) (envelope-from melifaro@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B7A094704; Thu, 9 Jan 2020 17:21:02 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009HL22v036984; Thu, 9 Jan 2020 17:21:02 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009HL0eY036974; Thu, 9 Jan 2020 17:21:00 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202001091721.009HL0eY036974@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Thu, 9 Jan 2020 17:21:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356559 - in head/sys: net netinet netinet6 sys X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: in head/sys: net netinet netinet6 sys X-SVN-Commit-Revision: 356559 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 17:21:02 -0000 Author: melifaro Date: Thu Jan 9 17:21:00 2020 New Revision: 356559 URL: https://svnweb.freebsd.org/changeset/base/356559 Log: Add fibnum, family and vnet pointer to each rib head. Having metadata such as fibnum or vnet in the struct rib_head is handy as it eases building functionality in the routing space. This change is required to properly bring back route redirect support. Reviewed by: bz MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D23047 Modified: head/sys/net/radix_mpath.c head/sys/net/radix_mpath.h head/sys/net/route.c head/sys/net/route.h head/sys/net/route_var.h head/sys/netinet/in_proto.c head/sys/netinet/in_rmx.c head/sys/netinet6/in6_proto.c head/sys/netinet6/in6_rmx.c head/sys/sys/domain.h Modified: head/sys/net/radix_mpath.c ============================================================================== --- head/sys/net/radix_mpath.c Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/net/radix_mpath.c Thu Jan 9 17:21:00 2020 (r356559) @@ -290,17 +290,17 @@ rtalloc_mpath_fib(struct route *ro, uint32_t hash, u_i RT_UNLOCK(ro->ro_rt); } -extern int in6_inithead(void **head, int off); -extern int in_inithead(void **head, int off); +extern int in6_inithead(void **head, int off, u_int fibnum); +extern int in_inithead(void **head, int off, u_int fibnum); #ifdef INET int -rn4_mpath_inithead(void **head, int off) +rn4_mpath_inithead(void **head, int off, u_int fibnum) { struct rib_head *rnh; hashjitter = arc4random(); - if (in_inithead(head, off) == 1) { + if (in_inithead(head, off, fibnum) == 1) { rnh = (struct rib_head *)*head; rnh->rnh_multipath = 1; return 1; @@ -311,12 +311,12 @@ rn4_mpath_inithead(void **head, int off) #ifdef INET6 int -rn6_mpath_inithead(void **head, int off) +rn6_mpath_inithead(void **head, int off, u_int fibnum) { struct rib_head *rnh; hashjitter = arc4random(); - if (in6_inithead(head, off) == 1) { + if (in6_inithead(head, off, fibnum) == 1) { rnh = (struct rib_head *)*head; rnh->rnh_multipath = 1; return 1; Modified: head/sys/net/radix_mpath.h ============================================================================== --- head/sys/net/radix_mpath.h Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/net/radix_mpath.h Thu Jan 9 17:21:00 2020 (r356559) @@ -57,8 +57,8 @@ int rt_mpath_conflict(struct rib_head *, struct rtentr void rtalloc_mpath_fib(struct route *, u_int32_t, u_int); struct rtentry *rt_mpath_select(struct rtentry *, uint32_t); int rt_mpath_deldup(struct rtentry *, struct rtentry *); -int rn4_mpath_inithead(void **, int); -int rn6_mpath_inithead(void **, int); +int rn4_mpath_inithead(void **, int, u_int); +int rn6_mpath_inithead(void **, int, u_int); #endif Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/net/route.c Thu Jan 9 17:21:00 2020 (r356559) @@ -304,7 +304,7 @@ vnet_route_init(const void *unused __unused) rnh = rt_tables_get_rnh_ptr(table, fam); if (rnh == NULL) panic("%s: rnh NULL", __func__); - dom->dom_rtattach((void **)rnh, 0); + dom->dom_rtattach((void **)rnh, 0, table); } } } @@ -345,7 +345,7 @@ VNET_SYSUNINIT(vnet_route_uninit, SI_SUB_PROTO_DOMAIN, #endif struct rib_head * -rt_table_init(int offset) +rt_table_init(int offset, int family, u_int fibnum) { struct rib_head *rh; @@ -356,6 +356,13 @@ rt_table_init(int offset) rn_inithead_internal(&rh->head, rh->rnh_nodes, offset); rn_inithead_internal(&rh->rmhead.head, rh->rmhead.mask_nodes, 0); rh->head.rnh_masks = &rh->rmhead; + + /* Save metadata associated with this routing table. */ + rh->rib_family = family; + rh->rib_fibnum = fibnum; +#ifdef VIMAGE + rh->rib_vnet = curvnet; +#endif /* Init locks */ RIB_LOCK_INIT(rh); Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/net/route.h Thu Jan 9 17:21:00 2020 (r356559) @@ -455,7 +455,7 @@ int rt_routemsg_info(int, struct rt_addrinfo *, int); void rt_newmaddrmsg(int, struct ifmultiaddr *); int rt_setgate(struct rtentry *, struct sockaddr *, struct sockaddr *); void rt_maskedcopy(struct sockaddr *, struct sockaddr *, struct sockaddr *); -struct rib_head *rt_table_init(int); +struct rib_head *rt_table_init(int, int, u_int); void rt_table_destroy(struct rib_head *); u_int rt_tables_get_gen(int table, int fam); Modified: head/sys/net/route_var.h ============================================================================== --- head/sys/net/route_var.h Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/net/route_var.h Thu Jan 9 17:21:00 2020 (r356559) @@ -46,6 +46,9 @@ struct rib_head { struct radix_node rnh_nodes[3]; /* empty tree for common case */ struct rmlock rib_lock; /* config/data path lock */ struct radix_mask_head rmhead; /* masks radix head */ + struct vnet *rib_vnet; /* vnet pointer */ + int rib_family; /* AF of the rtable */ + u_int rib_fibnum; /* fib number */ }; #define RIB_RLOCK_TRACKER struct rm_priotracker _rib_tracker Modified: head/sys/netinet/in_proto.c ============================================================================== --- head/sys/netinet/in_proto.c Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/netinet/in_proto.c Thu Jan 9 17:21:00 2020 (r356559) @@ -297,7 +297,7 @@ IPPROTOSPACER, }, }; -extern int in_inithead(void **, int); +extern int in_inithead(void **, int, u_int); extern int in_detachhead(void **, int); struct domain inetdomain = { Modified: head/sys/netinet/in_rmx.c ============================================================================== --- head/sys/netinet/in_rmx.c Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/netinet/in_rmx.c Thu Jan 9 17:21:00 2020 (r356559) @@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include -extern int in_inithead(void **head, int off); +extern int in_inithead(void **head, int off, u_int fibnum); #ifdef VIMAGE extern int in_detachhead(void **head, int off); #endif @@ -116,11 +116,11 @@ static int _in_rt_was_here; * Initialize our routing tree. */ int -in_inithead(void **head, int off) +in_inithead(void **head, int off, u_int fibnum) { struct rib_head *rh; - rh = rt_table_init(32); + rh = rt_table_init(32, AF_INET, fibnum); if (rh == NULL) return (0); Modified: head/sys/netinet6/in6_proto.c ============================================================================== --- head/sys/netinet6/in6_proto.c Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/netinet6/in6_proto.c Thu Jan 9 17:21:00 2020 (r356559) @@ -336,7 +336,7 @@ IP6PROTOSPACER, }, }; -extern int in6_inithead(void **, int); +extern int in6_inithead(void **, int, u_int); #ifdef VIMAGE extern int in6_detachhead(void **, int); #endif Modified: head/sys/netinet6/in6_rmx.c ============================================================================== --- head/sys/netinet6/in6_rmx.c Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/netinet6/in6_rmx.c Thu Jan 9 17:21:00 2020 (r356559) @@ -96,7 +96,7 @@ __FBSDID("$FreeBSD$"); #include #include -extern int in6_inithead(void **head, int off); +extern int in6_inithead(void **head, int off, u_int fibnum); #ifdef VIMAGE extern int in6_detachhead(void **head, int off); #endif @@ -157,11 +157,12 @@ in6_addroute(void *v_arg, void *n_arg, struct radix_he */ int -in6_inithead(void **head, int off) +in6_inithead(void **head, int off, u_int fibnum) { struct rib_head *rh; - rh = rt_table_init(offsetof(struct sockaddr_in6, sin6_addr) << 3); + rh = rt_table_init(offsetof(struct sockaddr_in6, sin6_addr) << 3, + AF_INET6, fibnum); if (rh == NULL) return (0); Modified: head/sys/sys/domain.h ============================================================================== --- head/sys/sys/domain.h Thu Jan 9 16:47:59 2020 (r356558) +++ head/sys/sys/domain.h Thu Jan 9 17:21:00 2020 (r356559) @@ -60,7 +60,7 @@ struct domain { struct protosw *dom_protosw, *dom_protoswNPROTOSW; struct domain *dom_next; int (*dom_rtattach) /* initialize routing table */ - (void **, int); + (void **, int, u_int); int (*dom_rtdetach) /* clean up routing table */ (void **, int); void *(*dom_ifattach)(struct ifnet *); From owner-svn-src-all@freebsd.org Thu Jan 9 18:14:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A00891F579C; Thu, 9 Jan 2020 18:14:48 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tvQw3kSkz4WP5; Thu, 9 Jan 2020 18:14:48 +0000 (UTC) (envelope-from imp@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7AB835138; Thu, 9 Jan 2020 18:14:48 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009IEm50073513; Thu, 9 Jan 2020 18:14:48 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009IEmgS073512; Thu, 9 Jan 2020 18:14:48 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202001091814.009IEmgS073512@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 9 Jan 2020 18:14:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356560 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356560 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 18:14:48 -0000 Author: imp Date: Thu Jan 9 18:14:48 2020 New Revision: 356560 URL: https://svnweb.freebsd.org/changeset/base/356560 Log: Add note to remind me there are three choices for arm32 floating point. hard use floating point hardware, pass registers to functions in floating point registers. softfp use floating point hardware, but pass registers to functions in integer registers. soft do floating point calcuations without using floating point hardware. Pass arguments in integer registers. FreeBSD 11 and newer assumes hard. 10 and earlier assumed softfp. We have no real support, at the moment, for soft. It's untested, though, if softfp still works. Add a note here since this is a whack-a-doodle combination relative to all other platforms. softfp is likely to go away in the future because it was retained for people using FreeBSD 10 + armv6 needing to transition more slowly from softfp -> hard than the project. It likely is no longer needed, and may be getting in the way of people needing 'soft' support. Modified: head/share/mk/bsd.cpu.mk Modified: head/share/mk/bsd.cpu.mk ============================================================================== --- head/share/mk/bsd.cpu.mk Thu Jan 9 17:21:00 2020 (r356559) +++ head/share/mk/bsd.cpu.mk Thu Jan 9 18:14:48 2020 (r356560) @@ -355,7 +355,11 @@ MACHINE_CPU += softfp # to force that. .if ${MACHINE_ARCH:Marmv[67]*} && defined(CPUTYPE) && ${CPUTYPE:M*soft*} != "" # Needs to be CFLAGS not _CPUCFLAGS because it's needed for the ABI -# not a nice optimization. +# not a nice optimization. Please note: softfp ABI uses hardware floating +# instructions, but passes arguments to function calls in integer regsiters. +# -mfloat-abi=soft is full software floating point, but is not currently +# supported. softfp support in FreeBSD may disappear in FreeBSD 13.0 since +# it was a transition tool from FreeBSD 10 to 11 and is a bit of an odd duck. CFLAGS += -mfloat-abi=softfp .endif .endif From owner-svn-src-all@freebsd.org Thu Jan 9 18:29:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E3A641F5BDB; Thu, 9 Jan 2020 18:29:59 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tvmR5kHKz4X2K; Thu, 9 Jan 2020 18:29:59 +0000 (UTC) (envelope-from jhb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BFB585316; Thu, 9 Jan 2020 18:29:59 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009ITx7O079751; Thu, 9 Jan 2020 18:29:59 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009ITx8l079750; Thu, 9 Jan 2020 18:29:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001091829.009ITx8l079750@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Thu, 9 Jan 2020 18:29:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356561 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 356561 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 18:30:00 -0000 Author: jhb Date: Thu Jan 9 18:29:59 2020 New Revision: 356561 URL: https://svnweb.freebsd.org/changeset/base/356561 Log: Add stricter checking on mac key lengths. Negative lengths are always invalid. The key length should also be zero for hash algorithms that do not accept a key. admbugs: 949 Reported by: Yuval Kanarenstein Reviewed by: cem MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D23094 Modified: head/sys/opencrypto/cryptodev.c Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Thu Jan 9 18:14:48 2020 (r356560) +++ head/sys/opencrypto/cryptodev.c Thu Jan 9 18:29:59 2020 (r356561) @@ -585,8 +585,8 @@ cryptof_ioctl( if (thash) { cria.cri_alg = thash->type; cria.cri_klen = sop->mackeylen * 8; - if (thash->keysize != 0 && - sop->mackeylen > thash->keysize) { + if (sop->mackeylen > thash->keysize || + sop->mackeylen < 0) { CRYPTDEB("invalid mac key length"); error = EINVAL; SDT_PROBE1(opencrypto, dev, ioctl, error, From owner-svn-src-all@freebsd.org Thu Jan 9 19:13:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1F3711F6885; Thu, 9 Jan 2020 19:13:10 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47twkG04M9z4Z4J; Thu, 9 Jan 2020 19:13:10 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F1DBF5D0E; Thu, 9 Jan 2020 19:13:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009JD9ac010519; Thu, 9 Jan 2020 19:13:09 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009JD9Wf010518; Thu, 9 Jan 2020 19:13:09 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001091913.009JD9Wf010518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Jan 2020 19:13:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356562 - head/sys/arm/broadcom/bcm2835 X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/arm/broadcom/bcm2835 X-SVN-Commit-Revision: 356562 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 19:13:10 -0000 Author: kevans Date: Thu Jan 9 19:13:09 2020 New Revision: 356562 URL: https://svnweb.freebsd.org/changeset/base/356562 Log: bcm2835_vcbus: hide 'checking root' messages under bootverbose Modified: head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Modified: head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c ============================================================================== --- head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Thu Jan 9 18:29:59 2020 (r356561) +++ head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Thu Jan 9 19:13:09 2020 (r356562) @@ -219,8 +219,9 @@ bcm283x_get_current_memcfg(void) root = OF_finddevice("/"); for (i = 0; i < nitems(bcm283x_memory_configs); ++i) { booted_soc_memcfg = &bcm283x_memory_configs[i]; - printf("Checking root against %s\n", - booted_soc_memcfg->soc_compat); + if (bootverbose) + printf("Checking root against %s\n", + booted_soc_memcfg->soc_compat); if (ofw_bus_node_is_compatible(root, booted_soc_memcfg->soc_compat)) return (booted_soc_memcfg); From owner-svn-src-all@freebsd.org Thu Jan 9 19:17:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 948381F6954; Thu, 9 Jan 2020 19:17:43 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47twqW3K83z4ZDb; Thu, 9 Jan 2020 19:17:43 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 684AB5D17; Thu, 9 Jan 2020 19:17:43 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009JHh2v011388; Thu, 9 Jan 2020 19:17:43 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009JHhtl011387; Thu, 9 Jan 2020 19:17:43 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001091917.009JHhtl011387@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 9 Jan 2020 19:17:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356563 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356563 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 19:17:43 -0000 Author: markj Date: Thu Jan 9 19:17:42 2020 New Revision: 356563 URL: https://svnweb.freebsd.org/changeset/base/356563 Log: UMA: Don't destroy zones after the system shutdown process starts. Some kernel subsystems, notably ZFS, will destroy UMA zones from a shutdown eventhandler. This causes the zone to be drained. For slabs that are mapped into KVA this can be very expensive and so it needlessly delays the shutdown process. Add a new state to the "booted" variable, BOOT_SHUTDOWN. Once kern_reboot() starts invoking shutdown handlers, turn uma_zdestroy() into a no-op, provided that the zone does not have a custom finalization routine. PR: 242427 Reviewed by: jeff, kib, rlibby MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23066 Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Thu Jan 9 19:13:09 2020 (r356562) +++ head/sys/vm/uma_core.c Thu Jan 9 19:17:42 2020 (r356563) @@ -158,8 +158,14 @@ SYSCTL_ULONG(_vm, OID_AUTO, uma_kmem_total, CTLFLAG_RD "UMA kernel memory usage"); /* Is the VM done starting up? */ -static enum { BOOT_COLD = 0, BOOT_STRAPPED, BOOT_PAGEALLOC, BOOT_BUCKETS, - BOOT_RUNNING } booted = BOOT_COLD; +static enum { + BOOT_COLD, + BOOT_STRAPPED, + BOOT_PAGEALLOC, + BOOT_BUCKETS, + BOOT_RUNNING, + BOOT_SHUTDOWN, +} booted = BOOT_COLD; /* * This is the handle used to schedule events that need to happen @@ -265,6 +271,7 @@ static int hash_expand(struct uma_hash *, struct uma_h static void hash_free(struct uma_hash *hash); static void uma_timeout(void *); static void uma_startup3(void); +static void uma_shutdown(void); static void *zone_alloc_item(uma_zone_t, void *, int, int); static void zone_free_item(uma_zone_t, void *, void *, enum zfreeskip); static int zone_alloc_limit(uma_zone_t zone, int count, int flags); @@ -1408,8 +1415,7 @@ startup_alloc(uma_zone_t zone, vm_size_t bytes, int do case BOOT_PAGEALLOC: if (keg->uk_ppera > 1) break; - case BOOT_BUCKETS: - case BOOT_RUNNING: + default: #ifdef UMA_MD_SMALL_ALLOC keg->uk_allocf = (keg->uk_ppera > 1) ? page_alloc : uma_small_alloc; @@ -2337,7 +2343,7 @@ zone_ctor(void *mem, int size, void *udata, int flags) (UMA_ZONE_INHERIT | UMA_ZFLAG_INHERIT)); out: - if (__predict_true(booted == BOOT_RUNNING)) { + if (__predict_true(booted >= BOOT_RUNNING)) { zone_alloc_counters(zone, NULL); zone_alloc_sysctl(zone, NULL); } else { @@ -2465,7 +2471,7 @@ zone_foreach(void (*zfunc)(uma_zone_t, void *arg), voi * threaded, so locking isn't needed. Startup functions * are allowed to use M_WAITOK. */ - if (__predict_true(booted == BOOT_RUNNING)) + if (__predict_true(booted >= BOOT_RUNNING)) rw_rlock(&uma_rwlock); LIST_FOREACH(keg, &uma_kegs, uk_link) { LIST_FOREACH(zone, &keg->uk_zones, uz_link) @@ -2473,7 +2479,7 @@ zone_foreach(void (*zfunc)(uma_zone_t, void *arg), voi } LIST_FOREACH(zone, &uma_cachezones, uz_link) zfunc(zone, arg); - if (__predict_true(booted == BOOT_RUNNING)) + if (__predict_true(booted >= BOOT_RUNNING)) rw_runlock(&uma_rwlock); } @@ -2635,10 +2641,6 @@ uma_startup2(void) bucket_enable(); } -/* - * Initialize our callout handle - * - */ static void uma_startup3(void) { @@ -2653,8 +2655,18 @@ uma_startup3(void) callout_init(&uma_callout, 1); callout_reset(&uma_callout, UMA_TIMEOUT * hz, uma_timeout, NULL); booted = BOOT_RUNNING; + + EVENTHANDLER_REGISTER(shutdown_post_sync, uma_shutdown, NULL, + EVENTHANDLER_PRI_FIRST); } +static void +uma_shutdown(void) +{ + + booted = BOOT_SHUTDOWN; +} + static uma_keg_t uma_kcreate(uma_zone_t zone, size_t size, uma_init uminit, uma_fini fini, int align, uint32_t flags) @@ -2796,6 +2808,13 @@ void uma_zdestroy(uma_zone_t zone) { + /* + * Large slabs are expensive to reclaim, so don't bother doing + * unnecessary work if we're shutting down. + */ + if (booted == BOOT_SHUTDOWN && + zone->uz_fini == NULL && zone->uz_release == zone_release) + return; sx_slock(&uma_reclaim_lock); zone_free_item(zones, zone, NULL, SKIP_NONE); sx_sunlock(&uma_reclaim_lock); From owner-svn-src-all@freebsd.org Thu Jan 9 19:22:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 75B981F6D3C; Thu, 9 Jan 2020 19:22:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47twwh2TRKz4ZnR; Thu, 9 Jan 2020 19:22:12 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 36B345EE9; Thu, 9 Jan 2020 19:22:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009JMCZs017316; Thu, 9 Jan 2020 19:22:12 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009JMCNq017315; Thu, 9 Jan 2020 19:22:12 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001091922.009JMCNq017315@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 9 Jan 2020 19:22:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356564 - head/sys/dev/usb/controller X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/dev/usb/controller X-SVN-Commit-Revision: 356564 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 19:22:12 -0000 Author: kevans Date: Thu Jan 9 19:22:11 2020 New Revision: 356564 URL: https://svnweb.freebsd.org/changeset/base/356564 Log: dwc_otg: fix fdt attachment for newer bcm2708-usb nodes The newer versions of RPi FDT flipped the order of the interrupts specification and added an 'interrupt-names' property for driver aide in finding the correct interrupt, rather than assuming the positions. Use it if it's available, or fallback to the old method if there is no interrupt-names property with a usb value. This has been tested with both old RPi3B FDT and new RPi3B FDT, USB again works on the latter. Reported by: Tom Yan MFC after: 3 days Modified: head/sys/dev/usb/controller/dwc_otg_fdt.c Modified: head/sys/dev/usb/controller/dwc_otg_fdt.c ============================================================================== --- head/sys/dev/usb/controller/dwc_otg_fdt.c Thu Jan 9 19:17:42 2020 (r356563) +++ head/sys/dev/usb/controller/dwc_otg_fdt.c Thu Jan 9 19:22:11 2020 (r356564) @@ -80,6 +80,20 @@ dwc_otg_probe(device_t dev) return (BUS_PROBE_DEFAULT); } +static int +dwc_otg_irq_index(device_t dev, int *rid) +{ + int idx, rv; + phandle_t node; + + node = ofw_bus_get_node(dev); + rv = ofw_bus_find_string_index(node, "interrupt-names", "usb", &idx); + if (rv != 0) + return (rv); + *rid = idx; + return (0); +} + int dwc_otg_attach(device_t dev) { @@ -130,10 +144,16 @@ dwc_otg_attach(device_t dev) /* - * brcm,bcm2708-usb FDT provides two interrupts, - * we need only second one (VC_USB) + * brcm,bcm2708-usb FDT provides two interrupts, we need only the USB + * interrupt (VC_USB). The latest FDT for it provides an + * interrupt-names property and swapped them around, while older ones + * did not have interrupt-names and put the usb interrupt in the second + * position. We'll attempt to use interrupt-names first with a fallback + * to the old method of assuming the index based on the compatible + * string. */ - rid = ofw_bus_is_compatible(dev, "brcm,bcm2708-usb") ? 1 : 0; + if (dwc_otg_irq_index(dev, &rid) != 0) + rid = ofw_bus_is_compatible(dev, "brcm,bcm2708-usb") ? 1 : 0; sc->sc_otg.sc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); if (sc->sc_otg.sc_irq_res == NULL) From owner-svn-src-all@freebsd.org Thu Jan 9 19:56:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB9C41F77C2; Thu, 9 Jan 2020 19:56:25 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47txh9624kz4cWF; Thu, 9 Jan 2020 19:56:25 +0000 (UTC) (envelope-from bapt@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C591864C7; Thu, 9 Jan 2020 19:56:25 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009JuPe3037318; Thu, 9 Jan 2020 19:56:25 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009JuPEO037317; Thu, 9 Jan 2020 19:56:25 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202001091956.009JuPEO037317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 9 Jan 2020 19:56:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356565 - stable/12/contrib/smbfs/lib/smb X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/12/contrib/smbfs/lib/smb X-SVN-Commit-Revision: 356565 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 19:56:26 -0000 Author: bapt Date: Thu Jan 9 19:56:25 2020 New Revision: 356565 URL: https://svnweb.freebsd.org/changeset/base/356565 Log: MFC r356317 (by arrowd): mount_smbfs: Issue a warning when .nsmbrc section name contains lowercase characters. PR: 231656 Approved by: bapt Differential Revision: https://reviews.freebsd.org/D22289 Modified: stable/12/contrib/smbfs/lib/smb/rcfile.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/smbfs/lib/smb/rcfile.c ============================================================================== --- stable/12/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:22:11 2020 (r356564) +++ stable/12/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:56:25 2020 (r356565) @@ -156,11 +156,19 @@ static struct rcsection * rc_addsect(struct rcfile *rcp, const char *sectname) { struct rcsection *p; + const char* sectletter = sectname; p = rc_findsect(rcp, sectname); if (p) return p; p = malloc(sizeof(*p)); if (!p) return NULL; + for(sectletter = sectname; *sectletter; sectletter++) { + if (islower(*sectletter)) { + if (strcmp(sectname, "default")) + dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); + break; + } + } p->rs_name = strdup(sectname); SLIST_INIT(&p->rs_keys); SLIST_INSERT_HEAD(&rcp->rf_sect, p, rs_next); From owner-svn-src-all@freebsd.org Thu Jan 9 19:58:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ABEF41F78BD; Thu, 9 Jan 2020 19:58:05 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47txk542Wfz4ch0; Thu, 9 Jan 2020 19:58:05 +0000 (UTC) (envelope-from bapt@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 85C8964CD; Thu, 9 Jan 2020 19:58:05 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009Jw5Kt037445; Thu, 9 Jan 2020 19:58:05 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Jw56r037444; Thu, 9 Jan 2020 19:58:05 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202001091958.009Jw56r037444@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 9 Jan 2020 19:58:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356566 - stable/11/contrib/smbfs/lib/smb X-SVN-Group: stable-11 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/11/contrib/smbfs/lib/smb X-SVN-Commit-Revision: 356566 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 19:58:05 -0000 Author: bapt Date: Thu Jan 9 19:58:05 2020 New Revision: 356566 URL: https://svnweb.freebsd.org/changeset/base/356566 Log: MFC r356317 (by arrowd): mount_smbfs: Issue a warning when .nsmbrc section name contains lowercase characters. PR: 231656 Approved by: bapt Differential Revision: https://reviews.freebsd.org/D22289 Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c ============================================================================== --- stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:56:25 2020 (r356565) +++ stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:58:05 2020 (r356566) @@ -156,11 +156,19 @@ static struct rcsection * rc_addsect(struct rcfile *rcp, const char *sectname) { struct rcsection *p; + const char* sectletter = sectname; p = rc_findsect(rcp, sectname); if (p) return p; p = malloc(sizeof(*p)); if (!p) return NULL; + for(sectletter = sectname; *sectletter; sectletter++) { + if (islower(*sectletter)) { + if (strcmp(sectname, "default")) + dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); + break; + } + } p->rs_name = strdup(sectname); SLIST_INIT(&p->rs_keys); SLIST_INSERT_HEAD(&rcp->rf_sect, p, rs_next); From owner-svn-src-all@freebsd.org Thu Jan 9 20:07:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 779371F7C4A; Thu, 9 Jan 2020 20:07:39 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47txx72g9bz4dDK; Thu, 9 Jan 2020 20:07:39 +0000 (UTC) (envelope-from jkim@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3E40566E0; Thu, 9 Jan 2020 20:07:39 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009K7dPU044698; Thu, 9 Jan 2020 20:07:39 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009K7cGX044695; Thu, 9 Jan 2020 20:07:38 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001092007.009K7cGX044695@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Thu, 9 Jan 2020 20:07:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356567 - in head/share: examples/etc mk X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in head/share: examples/etc mk X-SVN-Commit-Revision: 356567 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 20:07:39 -0000 Author: jkim Date: Thu Jan 9 20:07:38 2020 New Revision: 356567 URL: https://svnweb.freebsd.org/changeset/base/356567 Log: Catch up with Clang 9.0. Modified: head/share/examples/etc/make.conf head/share/mk/bsd.cpu.mk Modified: head/share/examples/etc/make.conf ============================================================================== --- head/share/examples/etc/make.conf Thu Jan 9 19:58:05 2020 (r356566) +++ head/share/examples/etc/make.conf Thu Jan 9 20:07:38 2020 (r356567) @@ -44,11 +44,13 @@ # if omitted), ultrasparc3 # Additionally the following CPU types are recognized by clang: # Intel x86 architecture (for both amd64 and i386): -# (AMD CPUs) znver1, bdver4, bdver3, bdver2, bdver1, btver2, btver1 -# (Intel CPUs) cascadelake, tremont, goldmont-plus, icelake-server, -# icelake-client, cannonlake, knm, skylake-avx512, knl, -# goldmont, skylake, broadwell, haswell, ivybridge, -# sandybridge, westmere, nehalem, silvermont, bonnell +# (AMD CPUs) znver2, znver1, bdver4, bdver3, bdver2, bdver1, +# btver2, btver1 +# (Intel CPUs) cooperlake, cascadelake, tremont, goldmont-plus, +# icelake-server, icelake-client, cannonlake, knm, +# skylake-avx512, knl, goldmont, skylake, broadwell, +# haswell, ivybridge, sandybridge, westmere, nehalem, +# silvermont, bonnell # ARM architecture: armv5, armv5te, armv6, armv6t2, arm1176jzf-s, armv7, # armv7-a, armv7ve, generic-armv7-a, cortex-a5, # cortex-a7, cortex-a8, cortex-a9, cortex-a12, Modified: head/share/mk/bsd.cpu.mk ============================================================================== --- head/share/mk/bsd.cpu.mk Thu Jan 9 19:58:05 2020 (r356566) +++ head/share/mk/bsd.cpu.mk Thu Jan 9 20:07:38 2020 (r356567) @@ -170,7 +170,7 @@ _CPUCFLAGS = -mcpu=${CPUTYPE} ########## i386 . if ${MACHINE_CPUARCH} == "i386" -. if ${CPUTYPE} == "znver1" +. if ${CPUTYPE} == "znver2" || ${CPUTYPE} == "znver1" MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 . elif ${CPUTYPE} == "bdver4" MACHINE_CPU = xop avx2 avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586 @@ -199,10 +199,10 @@ MACHINE_CPU = 3dnow mmx k6 k5 i586 MACHINE_CPU = mmx k6 k5 i586 . elif ${CPUTYPE} == "k5" MACHINE_CPU = k5 i586 -. elif ${CPUTYPE} == "cascadelake" || ${CPUTYPE} == "icelake-server" || \ - ${CPUTYPE} == "icelake-client" || ${CPUTYPE} == "cannonlake" || \ - ${CPUTYPE} == "knm" || ${CPUTYPE} == "skylake-avx512" || \ - ${CPUTYPE} == "knl" +. elif ${CPUTYPE} == "cooperlake" || ${CPUTYPE} == "cascadelake" || \ + ${CPUTYPE} == "icelake-server" || ${CPUTYPE} == "icelake-client" || \ + ${CPUTYPE} == "cannonlake" || ${CPUTYPE} == "knm" || \ + ${CPUTYPE} == "skylake-avx512" || ${CPUTYPE} == "knl" MACHINE_CPU = avx512 avx2 avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586 . elif ${CPUTYPE} == "skylake" || ${CPUTYPE} == "broadwell" || \ ${CPUTYPE} == "haswell" @@ -246,7 +246,7 @@ MACHINE_CPU = mmx MACHINE_CPU += i486 ########## amd64 . elif ${MACHINE_CPUARCH} == "amd64" -. if ${CPUTYPE} == "znver1" +. if ${CPUTYPE} == "znver2" || ${CPUTYPE} == "znver1" MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse4a sse3 . elif ${CPUTYPE} == "bdver4" MACHINE_CPU = xop avx2 avx sse42 sse41 ssse3 sse4a sse3 @@ -265,10 +265,10 @@ MACHINE_CPU = k8 3dnow sse3 . elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" || \ ${CPUTYPE} == "athlon-fx" || ${CPUTYPE} == "k8" MACHINE_CPU = k8 3dnow -. elif ${CPUTYPE} == "cascadelake" || ${CPUTYPE} == "icelake-server" || \ - ${CPUTYPE} == "icelake-client" || ${CPUTYPE} == "cannonlake" || \ - ${CPUTYPE} == "knm" || ${CPUTYPE} == "skylake-avx512" || \ - ${CPUTYPE} == "knl" +. elif ${CPUTYPE} == "cooperlake" || ${CPUTYPE} == "cascadelake" || \ + ${CPUTYPE} == "icelake-server" || ${CPUTYPE} == "icelake-client" || \ + ${CPUTYPE} == "cannonlake" || ${CPUTYPE} == "knm" || \ + ${CPUTYPE} == "skylake-avx512" || ${CPUTYPE} == "knl" MACHINE_CPU = avx512 avx2 avx sse42 sse41 ssse3 sse3 . elif ${CPUTYPE} == "skylake" || ${CPUTYPE} == "broadwell" || \ ${CPUTYPE} == "haswell" From owner-svn-src-all@freebsd.org Thu Jan 9 20:45:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4A88C1F884D; Thu, 9 Jan 2020 20:45:02 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tymG0dk5z4g0C; Thu, 9 Jan 2020 20:45:02 +0000 (UTC) (envelope-from np@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0CE716E56; Thu, 9 Jan 2020 20:45:02 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009Kj14R068790; Thu, 9 Jan 2020 20:45:01 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Kj1RV068789; Thu, 9 Jan 2020 20:45:01 GMT (envelope-from np@FreeBSD.org) Message-Id: <202001092045.009Kj1RV068789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 9 Jan 2020 20:45:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356568 - stable/12/sys/dev/cxgbe/iw_cxgbe X-SVN-Group: stable-12 X-SVN-Commit-Author: np X-SVN-Commit-Paths: stable/12/sys/dev/cxgbe/iw_cxgbe X-SVN-Commit-Revision: 356568 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 20:45:02 -0000 Author: np Date: Thu Jan 9 20:45:01 2020 New Revision: 356568 URL: https://svnweb.freebsd.org/changeset/base/356568 Log: MFC r355566: cxgbe/iw_cxgbe: Support 64b length in the memory registration routines. Submitted by: bharat @ chelsio Sponsored by: Chelsio Communications Modified: stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c ============================================================================== --- stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c Thu Jan 9 20:07:38 2020 (r356567) +++ stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c Thu Jan 9 20:45:01 2020 (r356568) @@ -689,8 +689,8 @@ static void build_tpte_memreg(struct fw_ri_fr_nsmr_tpt fr->tpte.nosnoop_pbladdr = cpu_to_be32(V_FW_RI_TPTE_PBLADDR( PBL_OFF(&mhp->rhp->rdev, mhp->attr.pbl_addr)>>3)); fr->tpte.dca_mwbcnt_pstag = cpu_to_be32(0); - fr->tpte.len_hi = cpu_to_be32(0); - fr->tpte.len_lo = cpu_to_be32(mhp->ibmr.length); + fr->tpte.len_hi = cpu_to_be32(mhp->ibmr.length >> 32); + fr->tpte.len_lo = cpu_to_be32(mhp->ibmr.length & 0xffffffff); fr->tpte.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32); fr->tpte.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & 0xffffffff); @@ -717,12 +717,11 @@ static int build_memreg(struct t4_sq *sq, union t4_wr wqe->fr.pgsz_shift = ilog2(wr->mr->page_size) - 12; wqe->fr.addr_type = FW_RI_VA_BASED_TO; wqe->fr.mem_perms = c4iw_ib_to_tpt_access(wr->access); - wqe->fr.len_hi = 0; - wqe->fr.len_lo = cpu_to_be32(mhp->ibmr.length); + wqe->fr.len_hi = cpu_to_be32(mhp->ibmr.length >> 32); + wqe->fr.len_lo = cpu_to_be32(mhp->ibmr.length & 0xffffffff); wqe->fr.stag = cpu_to_be32(wr->key); wqe->fr.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32); - wqe->fr.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & - 0xffffffff); + wqe->fr.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & 0xffffffff); if (dsgl_supported && use_dsgl && (pbllen > max_fr_immd)) { struct fw_ri_dsgl *sglp; From owner-svn-src-all@freebsd.org Thu Jan 9 20:49:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1E5821F8986; Thu, 9 Jan 2020 20:49:27 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tysM000yz4gFF; Thu, 9 Jan 2020 20:49:26 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EEE3F6E61; Thu, 9 Jan 2020 20:49:26 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009KnQNJ069030; Thu, 9 Jan 2020 20:49:26 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009KnQPE069028; Thu, 9 Jan 2020 20:49:26 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001092049.009KnQPE069028@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 9 Jan 2020 20:49:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356569 - head/lib/libc/locale X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/lib/libc/locale X-SVN-Commit-Revision: 356569 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 20:49:27 -0000 Author: markj Date: Thu Jan 9 20:49:26 2020 New Revision: 356569 URL: https://svnweb.freebsd.org/changeset/base/356569 Log: libc: Fix a few bugs in the xlocale collation code. - Fix checks for mmap() failures. [1] - Set the "map" and "maplen" fields of struct xlocale_collate so that the table destructor actually does something. - Free an already-mapped collation file before loading a new one into the global table. - Harmonize the prototype and definition of __collate_load_tables_l() by adding the "static" qualifier to the latter. PR: 243195 Reported by: cem [1] Reviewed by: cem, yuripv MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23109 Modified: head/lib/libc/locale/collate.c head/lib/libc/locale/rune.c Modified: head/lib/libc/locale/collate.c ============================================================================== --- head/lib/libc/locale/collate.c Thu Jan 9 20:45:01 2020 (r356568) +++ head/lib/libc/locale/collate.c Thu Jan 9 20:49:26 2020 (r356569) @@ -109,7 +109,7 @@ __collate_load_tables(const char *encoding) return (__collate_load_tables_l(encoding, &__xlocale_global_collate)); } -int +static int __collate_load_tables_l(const char *encoding, struct xlocale_collate *table) { int i, chains, z; @@ -147,7 +147,7 @@ __collate_load_tables_l(const char *encoding, struct x } map = mmap(NULL, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0); (void) _close(fd); - if ((TMP = map) == NULL) { + if ((TMP = map) == MAP_FAILED) { return (_LDP_ERROR); } @@ -181,6 +181,11 @@ __collate_load_tables_l(const char *encoding, struct x return (_LDP_ERROR); } + if (table->map && (table->maplen > 0)) { + (void) munmap(table->map, table->maplen); + } + table->map = map; + table->maplen = sbuf.st_size; table->info = info; table->char_pri_table = (void *)TMP; TMP += sizeof (collate_char_t) * (UCHAR_MAX + 1); Modified: head/lib/libc/locale/rune.c ============================================================================== --- head/lib/libc/locale/rune.c Thu Jan 9 20:45:01 2020 (r356568) +++ head/lib/libc/locale/rune.c Thu Jan 9 20:49:26 2020 (r356569) @@ -94,7 +94,7 @@ _Read_RuneMagi(const char *fname) fdata = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0); (void) _close(fd); - if (fdata == NULL) { + if (fdata == MAP_FAILED) { errno = EINVAL; return (NULL); } From owner-svn-src-all@freebsd.org Thu Jan 9 20:59:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C33B61F8DE2; Thu, 9 Jan 2020 20:59:49 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com [209.85.167.171]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tz5K4qNsz3CV1; Thu, 9 Jan 2020 20:59:49 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-oi1-f171.google.com with SMTP id n16so7127839oie.12; Thu, 09 Jan 2020 12:59:49 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=WrZSmRrHSOD+Bl1ECm1SPgiK+hWWSZtzhUvLFsjv5rI=; b=DwvSimgHk91mopcph74w9eyULsoQ8yH4ZlkznC4meYOhH0uSkqzOlDcqhPS+cwB9qj A0nM96VA7YicKDuN/dfAB9j488amVg2k3zC6HvvD3pWXpE30IEZ0QeZ8RYv1sRl6FmmW teQRcLlL0+JzwW37jn6XM4AHeEsDxYT275ivhdg9j+dl1DtQrwbEOWAtLH8KDKGb4ZWZ DbwV2tcm8idzYlUuHz11XJWz2w4XSA+P6EY5CutilqQW0JDjHbf3PIaxCYgf1UGXC+56 Y7uXwjzaV64G1BWwueHMIxXH7zDPHmKMbPDHaiqsWgVyD9WIxp+9wHTHmVsr7jCvIYwN EFhg== X-Gm-Message-State: APjAAAWouveWL8M/e9JKYyWoIcbhUtjm3vGnqI13/MxWz3a5o8rsX3++ mPw7iKlxWES/qKZ3rn3VeQbHUbp0 X-Google-Smtp-Source: APXvYqyrL7VYB7YVM5KzkBue94+0BVt+RU23bnGXidIIQkGUChwd1udB9Mxx3N1ghfzGetOQKGjcXw== X-Received: by 2002:aca:4c15:: with SMTP id z21mr4562455oia.8.1578603588268; Thu, 09 Jan 2020 12:59:48 -0800 (PST) Received: from mail-ot1-f50.google.com (mail-ot1-f50.google.com. [209.85.210.50]) by smtp.gmail.com with ESMTPSA id i3sm2829246otr.31.2020.01.09.12.59.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Jan 2020 12:59:47 -0800 (PST) Received: by mail-ot1-f50.google.com with SMTP id i15so8700505oto.2; Thu, 09 Jan 2020 12:59:47 -0800 (PST) X-Received: by 2002:a05:6830:13d3:: with SMTP id e19mr10163855otq.135.1578603587783; Thu, 09 Jan 2020 12:59:47 -0800 (PST) MIME-Version: 1.0 References: <202001092049.009KnQPE069028@repo.freebsd.org> In-Reply-To: <202001092049.009KnQPE069028@repo.freebsd.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Thu, 9 Jan 2020 12:59:37 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r356569 - head/lib/libc/locale To: Mark Johnston Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 47tz5K4qNsz3CV1 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 20:59:49 -0000 On Thu, Jan 9, 2020 at 12:49 Mark Johnston wrote: > Author: markj > Date: Thu Jan 9 20:49:26 2020 > New Revision: 356569 > URL: https://svnweb.freebsd.org/changeset/base/356569 > > Log: > libc: Fix a few bugs in the xlocale collation code. > > - Fix checks for mmap() failures. [1] > - Set the "map" and "maplen" fields of struct xlocale_collate so that > the table destructor actually does something. > - Free an already-mapped collation file before loading a new one into > the global table. > - Harmonize the prototype and definition of __collate_load_tables_l() by > adding the "static" qualifier to the latter. > > PR: 243195 > Reported by: cem [1] I appreciate the mention for my small role in this but the majority of the credit (PR report and solid initial diagnosis) should go to Koichi Murase . Best, Conrad From owner-svn-src-all@freebsd.org Thu Jan 9 21:21:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D08441F9641; Thu, 9 Jan 2020 21:21:08 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tzYw5GSmz3DvR; Thu, 9 Jan 2020 21:21:08 +0000 (UTC) (envelope-from tsoome@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B01757471; Thu, 9 Jan 2020 21:21:08 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009LL80a090265; Thu, 9 Jan 2020 21:21:08 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009LL8WQ090264; Thu, 9 Jan 2020 21:21:08 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001092121.009LL8WQ090264@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 9 Jan 2020 21:21:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356570 - head/stand/i386/libi386 X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/i386/libi386 X-SVN-Commit-Revision: 356570 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:21:08 -0000 Author: tsoome Date: Thu Jan 9 21:21:08 2020 New Revision: 356570 URL: https://svnweb.freebsd.org/changeset/base/356570 Log: loader: bioscd probe can get sector size 0 With buggy BIOS, it may happen we get sector size reported 0 for cd, and then the default 512 is used, which is quite wrong. PR: 238749 Modified: head/stand/i386/libi386/biosdisk.c Modified: head/stand/i386/libi386/biosdisk.c ============================================================================== --- head/stand/i386/libi386/biosdisk.c Thu Jan 9 20:49:26 2020 (r356569) +++ head/stand/i386/libi386/biosdisk.c Thu Jan 9 21:21:08 2020 (r356570) @@ -396,7 +396,8 @@ bc_add(int biosdev) return (-1); bd->bd_flags = BD_CDROM; - bd->bd_unit = biosdev; + bd->bd_unit = biosdev; + bd->bd_sectorsize = 2048; /* * Ignore result from bd_int13probe(), we will use local @@ -564,7 +565,8 @@ bd_int13probe(bdinfo_t *bd) bd->bd_flags |= BD_MODEEDD3; /* Default sector size */ - bd->bd_sectorsize = BIOSDISK_SECSIZE; + if (bd->bd_sectorsize == 0) + bd->bd_sectorsize = BIOSDISK_SECSIZE; /* * Test if the floppy device is present, so we can avoid receiving From owner-svn-src-all@freebsd.org Thu Jan 9 21:37:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 762EF1FA357; Thu, 9 Jan 2020 21:37:51 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tzxC2bjlz3GVF; Thu, 9 Jan 2020 21:37:51 +0000 (UTC) (envelope-from tsoome@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4E8FD7855; Thu, 9 Jan 2020 21:37:51 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009LbpcK098851; Thu, 9 Jan 2020 21:37:51 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009LbptK098850; Thu, 9 Jan 2020 21:37:51 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001092137.009LbptK098850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 9 Jan 2020 21:37:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356571 - stable/12/stand/i386/libi386 X-SVN-Group: stable-12 X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: stable/12/stand/i386/libi386 X-SVN-Commit-Revision: 356571 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:37:51 -0000 Author: tsoome Date: Thu Jan 9 21:37:50 2020 New Revision: 356571 URL: https://svnweb.freebsd.org/changeset/base/356571 Log: MFC r356570: loader: bioscd probe can get sector size 0 With buggy BIOS, it may happen we get sector size reported 0 for cd, and then the default 512 is used, which is quite wrong. PR: 238749 Modified: stable/12/stand/i386/libi386/biosdisk.c Directory Properties: stable/12/ (props changed) Modified: stable/12/stand/i386/libi386/biosdisk.c ============================================================================== --- stable/12/stand/i386/libi386/biosdisk.c Thu Jan 9 21:21:08 2020 (r356570) +++ stable/12/stand/i386/libi386/biosdisk.c Thu Jan 9 21:37:50 2020 (r356571) @@ -380,7 +380,8 @@ bc_add(int biosdev) return (-1); bd->bd_flags = BD_CDROM; - bd->bd_unit = biosdev; + bd->bd_unit = biosdev; + bd->bd_sectorsize = 2048; /* * Ignore result from bd_int13probe(), we will use local @@ -548,7 +549,8 @@ bd_int13probe(bdinfo_t *bd) bd->bd_flags |= BD_MODEEDD3; /* Default sector size */ - bd->bd_sectorsize = BIOSDISK_SECSIZE; + if (bd->bd_sectorsize == 0) + bd->bd_sectorsize = BIOSDISK_SECSIZE; /* * Test if the floppy device is present, so we can avoid receiving From owner-svn-src-all@freebsd.org Thu Jan 9 21:40:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E70601FA5EE; Thu, 9 Jan 2020 21:40:59 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v00q5wBMz3GlV; Thu, 9 Jan 2020 21:40:59 +0000 (UTC) (envelope-from tsoome@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C33A378C9; Thu, 9 Jan 2020 21:40:59 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009LexXI099092; Thu, 9 Jan 2020 21:40:59 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Lexqh099091; Thu, 9 Jan 2020 21:40:59 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001092140.009Lexqh099091@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 9 Jan 2020 21:40:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356572 - stable/11/stand/i386/libi386 X-SVN-Group: stable-11 X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: stable/11/stand/i386/libi386 X-SVN-Commit-Revision: 356572 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:41:00 -0000 Author: tsoome Date: Thu Jan 9 21:40:59 2020 New Revision: 356572 URL: https://svnweb.freebsd.org/changeset/base/356572 Log: MFC r356570: loader: bioscd probe can get sector size 0 With buggy BIOS, it may happen we get sector size reported 0 for cd, and then the default 512 is used, which is quite wrong. PR: 238749 Modified: stable/11/stand/i386/libi386/biosdisk.c Directory Properties: stable/11/ (props changed) Modified: stable/11/stand/i386/libi386/biosdisk.c ============================================================================== --- stable/11/stand/i386/libi386/biosdisk.c Thu Jan 9 21:37:50 2020 (r356571) +++ stable/11/stand/i386/libi386/biosdisk.c Thu Jan 9 21:40:59 2020 (r356572) @@ -380,7 +380,8 @@ bc_add(int biosdev) return (-1); bd->bd_flags = BD_CDROM; - bd->bd_unit = biosdev; + bd->bd_unit = biosdev; + bd->bd_sectorsize = 2048; /* * Ignore result from bd_int13probe(), we will use local @@ -548,7 +549,8 @@ bd_int13probe(bdinfo_t *bd) bd->bd_flags |= BD_MODEEDD3; /* Default sector size */ - bd->bd_sectorsize = BIOSDISK_SECSIZE; + if (bd->bd_sectorsize == 0) + bd->bd_sectorsize = BIOSDISK_SECSIZE; /* * Test if the floppy device is present, so we can avoid receiving From owner-svn-src-all@freebsd.org Thu Jan 9 21:50:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 474221FAA52; Thu, 9 Jan 2020 21:50:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v0CX1C0Fz3HNy; Thu, 9 Jan 2020 21:50:16 +0000 (UTC) (envelope-from gjb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 248B67AA5; Thu, 9 Jan 2020 21:50:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009LoGZW005440; Thu, 9 Jan 2020 21:50:16 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009LoGpj005439; Thu, 9 Jan 2020 21:50:16 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001092150.009LoGpj005439@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 9 Jan 2020 21:50:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356573 - in stable: 11/release 12/release X-SVN-Group: stable-12 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/release 12/release X-SVN-Commit-Revision: 356573 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:50:16 -0000 Author: gjb Date: Thu Jan 9 21:50:15 2020 New Revision: 356573 URL: https://svnweb.freebsd.org/changeset/base/356573 Log: MFC r353440: Increase the default VMSIZE for raw, qcow2, vhd, and vmdk virtual machine images due to 'filesystem full' failures. Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: stable/12/release/Makefile.vm Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/release/Makefile.vm Directory Properties: stable/11/ (props changed) Modified: stable/12/release/Makefile.vm ============================================================================== --- stable/12/release/Makefile.vm Thu Jan 9 21:40:59 2020 (r356572) +++ stable/12/release/Makefile.vm Thu Jan 9 21:50:15 2020 (r356573) @@ -7,7 +7,7 @@ VMTARGETS= vm-image VMFORMATS?= vhd vmdk qcow2 raw -VMSIZE?= 3072M +VMSIZE?= 4096M SWAPSIZE?= 1G VMBASE?= vm From owner-svn-src-all@freebsd.org Thu Jan 9 21:50:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 092191FAA4E; Thu, 9 Jan 2020 21:50:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v0CW6MzQz3HNx; Thu, 9 Jan 2020 21:50:15 +0000 (UTC) (envelope-from gjb@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D13227AA4; Thu, 9 Jan 2020 21:50:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009LoF3S005434; Thu, 9 Jan 2020 21:50:15 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009LoFoC005433; Thu, 9 Jan 2020 21:50:15 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001092150.009LoFoC005433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 9 Jan 2020 21:50:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356573 - in stable: 11/release 12/release X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/release 12/release X-SVN-Commit-Revision: 356573 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:50:16 -0000 Author: gjb Date: Thu Jan 9 21:50:15 2020 New Revision: 356573 URL: https://svnweb.freebsd.org/changeset/base/356573 Log: MFC r353440: Increase the default VMSIZE for raw, qcow2, vhd, and vmdk virtual machine images due to 'filesystem full' failures. Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: stable/11/release/Makefile.vm Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/release/Makefile.vm Directory Properties: stable/12/ (props changed) Modified: stable/11/release/Makefile.vm ============================================================================== --- stable/11/release/Makefile.vm Thu Jan 9 21:40:59 2020 (r356572) +++ stable/11/release/Makefile.vm Thu Jan 9 21:50:15 2020 (r356573) @@ -7,7 +7,7 @@ VMTARGETS= vm-image VMFORMATS?= vhd vmdk qcow2 raw -VMSIZE?= 3072M +VMSIZE?= 4096M SWAPSIZE?= 1G VMBASE?= vm From owner-svn-src-all@freebsd.org Thu Jan 9 22:51:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8EDCC1FBFF5; Thu, 9 Jan 2020 22:51:37 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v1ZK3Klvz3M4X; Thu, 9 Jan 2020 22:51:37 +0000 (UTC) (envelope-from ian@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6D25C86A2; Thu, 9 Jan 2020 22:51:37 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009MpbQ2046362; Thu, 9 Jan 2020 22:51:37 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009MpbIM046361; Thu, 9 Jan 2020 22:51:37 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001092251.009MpbIM046361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Thu, 9 Jan 2020 22:51:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356574 - head/sys/cddl/dev/dtrace/arm X-SVN-Group: head X-SVN-Commit-Author: ian X-SVN-Commit-Paths: head/sys/cddl/dev/dtrace/arm X-SVN-Commit-Revision: 356574 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 22:51:37 -0000 Author: ian Date: Thu Jan 9 22:51:37 2020 New Revision: 356574 URL: https://svnweb.freebsd.org/changeset/base/356574 Log: Remove scary-looking printf output that happens when you kldload dtrace on arm. Replace it with a comment block explaining why the function is empty on 32-bit arm. Modified: head/sys/cddl/dev/dtrace/arm/dtrace_subr.c Modified: head/sys/cddl/dev/dtrace/arm/dtrace_subr.c ============================================================================== --- head/sys/cddl/dev/dtrace/arm/dtrace_subr.c Thu Jan 9 21:50:15 2020 (r356573) +++ head/sys/cddl/dev/dtrace/arm/dtrace_subr.c Thu Jan 9 22:51:37 2020 (r356574) @@ -123,7 +123,18 @@ dtrace_invop_remove(int (*func)(uintptr_t, struct trap void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { - printf("IMPLEMENT ME: dtrace_toxic_ranges\n"); + + /* + * There are no ranges to exclude that are common to all 32-bit arm + * platforms. This function only needs to exclude ranges "... in + * which it is impossible to recover from such a load after it has been + * attempted." -- i.e., accessing within the range causes some sort + * fault in the system which is not handled by the normal arm + * exception-handling mechanisms. If systems exist where that is the + * case, a method to handle this functionality would have to be added to + * the platform_if interface so that those systems could provide their + * specific toxic range(s). + */ } void From owner-svn-src-all@freebsd.org Fri Jan 10 00:39:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 007841FDB69; Fri, 10 Jan 2020 00:39:45 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v3z468Wtz3R2t; Fri, 10 Jan 2020 00:39:44 +0000 (UTC) (envelope-from markj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CE76A9AEE; Fri, 10 Jan 2020 00:39:44 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0di7l010920; Fri, 10 Jan 2020 00:39:44 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0dijt010919; Fri, 10 Jan 2020 00:39:44 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001100039.00A0dijt010919@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 10 Jan 2020 00:39:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356575 - stable/12/sys/i386/i386 X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/i386/i386 X-SVN-Commit-Revision: 356575 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:39:45 -0000 Author: markj Date: Fri Jan 10 00:39:44 2020 New Revision: 356575 URL: https://svnweb.freebsd.org/changeset/base/356575 Log: MFC r356442: Consistently use pmap_t instead of struct pmap *. Modified: stable/12/sys/i386/i386/pmap.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/i386/i386/pmap.c ============================================================================== --- stable/12/sys/i386/i386/pmap.c Thu Jan 9 22:51:37 2020 (r356574) +++ stable/12/sys/i386/i386/pmap.c Fri Jan 10 00:39:44 2020 (r356575) @@ -343,12 +343,10 @@ static void pmap_remove_pde(pmap_t pmap, pd_entry_t *p static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva, struct spglist *free); static vm_page_t pmap_remove_pt_page(pmap_t pmap, vm_offset_t va); -static void pmap_remove_page(struct pmap *pmap, vm_offset_t va, - struct spglist *free); +static void pmap_remove_page(pmap_t pmap, vm_offset_t va, struct spglist *free); static bool pmap_remove_ptes(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, struct spglist *free); -static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, - vm_offset_t va); +static void pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va); static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); static boolean_t pmap_try_insert_pv_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); From owner-svn-src-all@freebsd.org Fri Jan 10 00:41:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 31EB41FDDED; Fri, 10 Jan 2020 00:41:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v40s0ZkXz3RD8; Fri, 10 Jan 2020 00:41:17 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D8319C57; Fri, 10 Jan 2020 00:41:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0fGon016447; Fri, 10 Jan 2020 00:41:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0fFF0015622; Fri, 10 Jan 2020 00:41:15 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100041.00A0fFF0015622@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:41:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356576 - stable/12/sys/geom/vinum X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/vinum X-SVN-Commit-Revision: 356576 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:41:17 -0000 Author: mav Date: Fri Jan 10 00:41:15 2020 New Revision: 356576 URL: https://svnweb.freebsd.org/changeset/base/356576 Log: MFC r356108: Modified: stable/12/sys/geom/vinum/geom_vinum.h stable/12/sys/geom/vinum/geom_vinum_events.c stable/12/sys/geom/vinum/geom_vinum_plex.c stable/12/sys/geom/vinum/geom_vinum_raid5.c stable/12/sys/geom/vinum/geom_vinum_var.h stable/12/sys/geom/vinum/geom_vinum_volume.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/vinum/geom_vinum.h ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:41:15 2020 (r356576) @@ -127,6 +127,7 @@ void gv_post_event(struct gv_softc *, int, void *, voi void gv_worker_exit(struct gv_softc *); struct gv_event *gv_get_event(struct gv_softc *); void gv_remove_event(struct gv_softc *, struct gv_event *); +void gv_drive_done(struct gv_drive *); void gv_drive_tasted(struct gv_softc *, struct g_provider *); void gv_drive_lost(struct gv_softc *, struct gv_drive *); void gv_setup_objects(struct gv_softc *); Modified: stable/12/sys/geom/vinum/geom_vinum_events.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:41:15 2020 (r356576) @@ -194,6 +194,20 @@ failed: } /* + * Count completed BIOs and handle orphanization when all are done. + */ +void +gv_drive_done(struct gv_drive *d) +{ + + KASSERT(d->active >= 0, ("Negative number of BIOs (%d)", d->active)); + if (--d->active == 0 && (d->flags & GV_DRIVE_ORPHANED)) { + d->flags &= ~GV_DRIVE_ORPHANED; + gv_post_event(d->vinumconf, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + } +} + +/* * When losing a drive (e.g. hardware failure), we cut down the consumer * attached to the underlying device and bring the drive itself to a * "referenced" state so that normal tasting could bring it up cleanly if it @@ -213,10 +227,10 @@ gv_drive_lost(struct gv_softc *sc, struct gv_drive *d) cp = d->consumer; if (cp != NULL) { - if (cp->nstart != cp->nend) { - G_VINUM_DEBUG(0, "dead drive '%s' has still active " + if (d->active > 0) { + G_VINUM_DEBUG(2, "dead drive '%s' has still active " "requests, unable to detach consumer", d->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + d->flags |= GV_DRIVE_ORPHANED; return; } g_topology_lock(); Modified: stable/12/sys/geom/vinum/geom_vinum_plex.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:41:15 2020 (r356576) @@ -277,6 +277,7 @@ gv_plex_normal_request(struct gv_plex *p, struct bio * cbp->bio_data = addr; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; /* Store the sub-requests now and let others issue them. */ bioq_insert_tail(p->bqueue, cbp); @@ -579,10 +580,10 @@ gv_sync_request(struct gv_plex *from, struct gv_plex * return (ENOMEM); } bp->bio_length = length; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_pflags |= GV_BIO_SYNCREQ; bp->bio_offset = offset; - bp->bio_caller1 = from; + bp->bio_caller1 = from; bp->bio_caller2 = to; bp->bio_cmd = type; if (data == NULL) @@ -693,7 +694,7 @@ gv_grow_request(struct gv_plex *p, off_t offset, off_t } bp->bio_cmd = type; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_caller1 = p; bp->bio_offset = offset; @@ -801,7 +802,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } bp->bio_cmd = BIO_WRITE; bp->bio_data = data; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = length; bp->bio_pflags |= GV_BIO_INIT; @@ -818,6 +819,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } cbp->bio_done = gv_done; cbp->bio_caller1 = s; + d->active++; /* Send it off to the consumer. */ g_io_request(cbp, cp); } @@ -904,7 +906,7 @@ gv_parity_request(struct gv_plex *p, int flags, off_t } bp->bio_cmd = BIO_WRITE; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = p->stripesize; bp->bio_caller1 = p; Modified: stable/12/sys/geom/vinum/geom_vinum_raid5.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:41:15 2020 (r356576) @@ -92,11 +92,13 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd if (wp->waiting != NULL) { if (wp->waiting->bio_cflags & GV_BIO_MALLOC) g_free(wp->waiting->bio_data); + gv_drive_done(wp->waiting->bio_caller1); g_destroy_bio(wp->waiting); } if (wp->parity != NULL) { if (wp->parity->bio_cflags & GV_BIO_MALLOC) g_free(wp->parity->bio_data); + gv_drive_done(wp->parity->bio_caller1); g_destroy_bio(wp->parity); } g_free(wp); @@ -117,6 +119,7 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd while (cbp != NULL) { if (cbp->bio_cflags & GV_BIO_MALLOC) g_free(cbp->bio_data); + gv_drive_done(cbp->bio_caller1); g_destroy_bio(cbp); cbp = bioq_takefirst(p->bqueue); } @@ -656,6 +659,7 @@ gv_raid5_clone_bio(struct bio *bp, struct gv_sd *s, st cbp->bio_length = wp->length; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; if (use_wp) cbp->bio_caller2 = wp; Modified: stable/12/sys/geom/vinum/geom_vinum_var.h ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:41:15 2020 (r356576) @@ -260,10 +260,12 @@ struct gv_drive { #define GV_DRIVE_REFERENCED 0x01 /* The drive isn't really existing, but was referenced by a subdisk during taste. */ +#define GV_DRIVE_ORPHANED 0x02 /* The drive was orphaned. */ struct gv_hdr *hdr; /* The drive header. */ struct g_consumer *consumer; /* Consumer attached to this drive. */ + int active; /* Number of active requests. */ int freelist_entries; /* Count of freelist entries. */ LIST_HEAD(,gv_freelist) freelist; /* List of freelist entries. */ Modified: stable/12/sys/geom/vinum/geom_vinum_volume.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:41:15 2020 (r356576) @@ -163,4 +163,6 @@ gv_bio_done(struct gv_softc *sc, struct bio *bp) gv_plex_raid5_done(p, bp); break; } + + gv_drive_done(s->drive_sc); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:42:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 850561FDE9C; Fri, 10 Jan 2020 00:42:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v41q2ZGDz3whZ; Fri, 10 Jan 2020 00:42:07 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 533E09CA2; Fri, 10 Jan 2020 00:42:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0g7v7016546; Fri, 10 Jan 2020 00:42:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0g6qj016540; Fri, 10 Jan 2020 00:42:06 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100042.00A0g6qj016540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:42:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356577 - stable/11/sys/geom/vinum X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/vinum X-SVN-Commit-Revision: 356577 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:42:07 -0000 Author: mav Date: Fri Jan 10 00:42:05 2020 New Revision: 356577 URL: https://svnweb.freebsd.org/changeset/base/356577 Log: MFC r356138: Reimplement gvinum orphanization. gvinum was the only GEOM class, using consumer nstart/nend fields. Making it do its own accounting for orphanization purposes allows in perspective to remove burden of that expensive for SMP accounting from GEOM. Also the previous implementation spinned in a tight event loop, waiting for all active BIOs to complete, while the new one knows exactly when it is possible to close the consumer. Modified: stable/11/sys/geom/vinum/geom_vinum.h stable/11/sys/geom/vinum/geom_vinum_events.c stable/11/sys/geom/vinum/geom_vinum_plex.c stable/11/sys/geom/vinum/geom_vinum_raid5.c stable/11/sys/geom/vinum/geom_vinum_var.h stable/11/sys/geom/vinum/geom_vinum_volume.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/vinum/geom_vinum.h ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:42:05 2020 (r356577) @@ -125,6 +125,7 @@ void gv_post_event(struct gv_softc *, int, void *, voi void gv_worker_exit(struct gv_softc *); struct gv_event *gv_get_event(struct gv_softc *); void gv_remove_event(struct gv_softc *, struct gv_event *); +void gv_drive_done(struct gv_drive *); void gv_drive_tasted(struct gv_softc *, struct g_provider *); void gv_drive_lost(struct gv_softc *, struct gv_drive *); void gv_setup_objects(struct gv_softc *); Modified: stable/11/sys/geom/vinum/geom_vinum_events.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:42:05 2020 (r356577) @@ -192,6 +192,20 @@ failed: } /* + * Count completed BIOs and handle orphanization when all are done. + */ +void +gv_drive_done(struct gv_drive *d) +{ + + KASSERT(d->active >= 0, ("Negative number of BIOs (%d)", d->active)); + if (--d->active == 0 && (d->flags & GV_DRIVE_ORPHANED)) { + d->flags &= ~GV_DRIVE_ORPHANED; + gv_post_event(d->vinumconf, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + } +} + +/* * When losing a drive (e.g. hardware failure), we cut down the consumer * attached to the underlying device and bring the drive itself to a * "referenced" state so that normal tasting could bring it up cleanly if it @@ -211,10 +225,10 @@ gv_drive_lost(struct gv_softc *sc, struct gv_drive *d) cp = d->consumer; if (cp != NULL) { - if (cp->nstart != cp->nend) { - G_VINUM_DEBUG(0, "dead drive '%s' has still active " + if (d->active > 0) { + G_VINUM_DEBUG(2, "dead drive '%s' has still active " "requests, unable to detach consumer", d->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + d->flags |= GV_DRIVE_ORPHANED; return; } g_topology_lock(); Modified: stable/11/sys/geom/vinum/geom_vinum_plex.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:42:05 2020 (r356577) @@ -275,6 +275,7 @@ gv_plex_normal_request(struct gv_plex *p, struct bio * cbp->bio_data = addr; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; /* Store the sub-requests now and let others issue them. */ bioq_insert_tail(p->bqueue, cbp); @@ -577,10 +578,10 @@ gv_sync_request(struct gv_plex *from, struct gv_plex * return (ENOMEM); } bp->bio_length = length; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_pflags |= GV_BIO_SYNCREQ; bp->bio_offset = offset; - bp->bio_caller1 = from; + bp->bio_caller1 = from; bp->bio_caller2 = to; bp->bio_cmd = type; if (data == NULL) @@ -691,7 +692,7 @@ gv_grow_request(struct gv_plex *p, off_t offset, off_t } bp->bio_cmd = type; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_caller1 = p; bp->bio_offset = offset; @@ -799,7 +800,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } bp->bio_cmd = BIO_WRITE; bp->bio_data = data; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = length; bp->bio_pflags |= GV_BIO_INIT; @@ -816,6 +817,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } cbp->bio_done = gv_done; cbp->bio_caller1 = s; + d->active++; /* Send it off to the consumer. */ g_io_request(cbp, cp); } @@ -902,7 +904,7 @@ gv_parity_request(struct gv_plex *p, int flags, off_t } bp->bio_cmd = BIO_WRITE; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = p->stripesize; bp->bio_caller1 = p; Modified: stable/11/sys/geom/vinum/geom_vinum_raid5.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:42:05 2020 (r356577) @@ -90,11 +90,13 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd if (wp->waiting != NULL) { if (wp->waiting->bio_cflags & GV_BIO_MALLOC) g_free(wp->waiting->bio_data); + gv_drive_done(wp->waiting->bio_caller1); g_destroy_bio(wp->waiting); } if (wp->parity != NULL) { if (wp->parity->bio_cflags & GV_BIO_MALLOC) g_free(wp->parity->bio_data); + gv_drive_done(wp->parity->bio_caller1); g_destroy_bio(wp->parity); } g_free(wp); @@ -115,6 +117,7 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd while (cbp != NULL) { if (cbp->bio_cflags & GV_BIO_MALLOC) g_free(cbp->bio_data); + gv_drive_done(cbp->bio_caller1); g_destroy_bio(cbp); cbp = bioq_takefirst(p->bqueue); } @@ -654,6 +657,7 @@ gv_raid5_clone_bio(struct bio *bp, struct gv_sd *s, st cbp->bio_length = wp->length; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; if (use_wp) cbp->bio_caller2 = wp; Modified: stable/11/sys/geom/vinum/geom_vinum_var.h ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:42:05 2020 (r356577) @@ -258,10 +258,12 @@ struct gv_drive { #define GV_DRIVE_REFERENCED 0x01 /* The drive isn't really existing, but was referenced by a subdisk during taste. */ +#define GV_DRIVE_ORPHANED 0x02 /* The drive was orphaned. */ struct gv_hdr *hdr; /* The drive header. */ struct g_consumer *consumer; /* Consumer attached to this drive. */ + int active; /* Number of active requests. */ int freelist_entries; /* Count of freelist entries. */ LIST_HEAD(,gv_freelist) freelist; /* List of freelist entries. */ Modified: stable/11/sys/geom/vinum/geom_vinum_volume.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:42:05 2020 (r356577) @@ -161,4 +161,6 @@ gv_bio_done(struct gv_softc *sc, struct bio *bp) gv_plex_raid5_done(p, bp); break; } + + gv_drive_done(s->drive_sc); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:42:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 536E11FDEFF; Fri, 10 Jan 2020 00:42:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v42S0Scfz3wqZ; Fri, 10 Jan 2020 00:42:40 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0B2279CC8; Fri, 10 Jan 2020 00:42:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0gdY4016628; Fri, 10 Jan 2020 00:42:39 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0gd7K016627; Fri, 10 Jan 2020 00:42:39 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100042.00A0gd7K016627@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:42:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356578 - stable/12/sys/geom/uzip X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/uzip X-SVN-Commit-Revision: 356578 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:42:40 -0000 Author: mav Date: Fri Jan 10 00:42:39 2020 New Revision: 356578 URL: https://svnweb.freebsd.org/changeset/base/356578 Log: MFC r356138: Fix GEOM_UZIP orphanization. Previous code destroyed softc even with provider still open, that resulted in panic under load. This change postpones the free till the final close, when we know for sure there will be no more I/O requests. Modified: stable/12/sys/geom/uzip/g_uzip.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/uzip/g_uzip.c ============================================================================== --- stable/12/sys/geom/uzip/g_uzip.c Fri Jan 10 00:42:05 2020 (r356577) +++ stable/12/sys/geom/uzip/g_uzip.c Fri Jan 10 00:42:39 2020 (r356578) @@ -139,13 +139,12 @@ static void g_uzip_read_done(struct bio *bp); static void g_uzip_do(struct g_uzip_softc *, struct bio *bp); static void -g_uzip_softc_free(struct g_uzip_softc *sc, struct g_geom *gp) +g_uzip_softc_free(struct g_geom *gp) { + struct g_uzip_softc *sc = gp->softc; - if (gp != NULL) { - DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", - gp->name, sc->req_total, sc->req_cached)); - } + DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", + gp->name, sc->req_total, sc->req_cached)); mtx_lock(&sc->queue_mtx); sc->wrkthr_flags |= GUZ_SHUTDOWN; @@ -162,6 +161,7 @@ g_uzip_softc_free(struct g_uzip_softc *sc, struct g_ge mtx_destroy(&sc->last_mtx); free(sc->last_buf, M_GEOM_UZIP); free(sc, M_GEOM_UZIP); + gp->softc = NULL; } static int @@ -503,20 +503,35 @@ g_uzip_orphan(struct g_consumer *cp) { struct g_geom *gp; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->provider->name); g_topology_assert(); - + G_VALID_CONSUMER(cp); gp = cp->geom; - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); g_wither_geom(gp, ENXIO); + + /* + * We can safely free the softc now if there are no accesses, + * otherwise g_uzip_access() will do that after the last close. + */ + if ((cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); } +static void +g_uzip_spoiled(struct g_consumer *cp) +{ + + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->geom->name); + cp->flags |= G_CF_ORPHAN; + g_uzip_orphan(cp); +} + static int g_uzip_access(struct g_provider *pp, int dr, int dw, int de) { struct g_geom *gp; struct g_consumer *cp; + int error; gp = pp->geom; cp = LIST_FIRST(&gp->consumer); @@ -525,22 +540,17 @@ g_uzip_access(struct g_provider *pp, int dr, int dw, i if (cp->acw + dw > 0) return (EROFS); - return (g_access(cp, dr, dw, de)); -} + error = g_access(cp, dr, dw, de); -static void -g_uzip_spoiled(struct g_consumer *cp) -{ - struct g_geom *gp; + /* + * Free the softc if all providers have been closed and this geom + * is being removed. + */ + if (error == 0 && (gp->flags & G_GEOM_WITHER) != 0 && + (cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); - G_VALID_CONSUMER(cp); - gp = cp->geom; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); - g_topology_assert(); - - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; - g_wither_geom(gp, ENXIO); + return (error); } static int @@ -901,10 +911,8 @@ g_uzip_destroy_geom(struct gctl_req *req, struct g_cla if (pp->acr > 0 || pp->acw > 0 || pp->ace > 0) return (EBUSY); - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; g_wither_geom(gp, ENXIO); - + g_uzip_softc_free(gp); return (0); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:43:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F36E11FDF75; Fri, 10 Jan 2020 00:43:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4306FC2z3wxR; Fri, 10 Jan 2020 00:43:08 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D186E9CCA; Fri, 10 Jan 2020 00:43:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0h8TG016712; Fri, 10 Jan 2020 00:43:08 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0h8mm016711; Fri, 10 Jan 2020 00:43:08 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100043.00A0h8mm016711@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:43:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356579 - stable/11/sys/geom/uzip X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/uzip X-SVN-Commit-Revision: 356579 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:43:09 -0000 Author: mav Date: Fri Jan 10 00:43:08 2020 New Revision: 356579 URL: https://svnweb.freebsd.org/changeset/base/356579 Log: MFC r356138: Fix GEOM_UZIP orphanization. Previous code destroyed softc even with provider still open, that resulted in panic under load. This change postpones the free till the final close, when we know for sure there will be no more I/O requests. Modified: stable/11/sys/geom/uzip/g_uzip.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/uzip/g_uzip.c ============================================================================== --- stable/11/sys/geom/uzip/g_uzip.c Fri Jan 10 00:42:39 2020 (r356578) +++ stable/11/sys/geom/uzip/g_uzip.c Fri Jan 10 00:43:08 2020 (r356579) @@ -137,13 +137,12 @@ static void g_uzip_read_done(struct bio *bp); static void g_uzip_do(struct g_uzip_softc *, struct bio *bp); static void -g_uzip_softc_free(struct g_uzip_softc *sc, struct g_geom *gp) +g_uzip_softc_free(struct g_geom *gp) { + struct g_uzip_softc *sc = gp->softc; - if (gp != NULL) { - DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", - gp->name, sc->req_total, sc->req_cached)); - } + DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", + gp->name, sc->req_total, sc->req_cached)); mtx_lock(&sc->queue_mtx); sc->wrkthr_flags |= GUZ_SHUTDOWN; @@ -160,6 +159,7 @@ g_uzip_softc_free(struct g_uzip_softc *sc, struct g_ge mtx_destroy(&sc->last_mtx); free(sc->last_buf, M_GEOM_UZIP); free(sc, M_GEOM_UZIP); + gp->softc = NULL; } static int @@ -480,20 +480,35 @@ g_uzip_orphan(struct g_consumer *cp) { struct g_geom *gp; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->provider->name); g_topology_assert(); - + G_VALID_CONSUMER(cp); gp = cp->geom; - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); g_wither_geom(gp, ENXIO); + + /* + * We can safely free the softc now if there are no accesses, + * otherwise g_uzip_access() will do that after the last close. + */ + if ((cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); } +static void +g_uzip_spoiled(struct g_consumer *cp) +{ + + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->geom->name); + cp->flags |= G_CF_ORPHAN; + g_uzip_orphan(cp); +} + static int g_uzip_access(struct g_provider *pp, int dr, int dw, int de) { struct g_geom *gp; struct g_consumer *cp; + int error; gp = pp->geom; cp = LIST_FIRST(&gp->consumer); @@ -502,22 +517,17 @@ g_uzip_access(struct g_provider *pp, int dr, int dw, i if (cp->acw + dw > 0) return (EROFS); - return (g_access(cp, dr, dw, de)); -} + error = g_access(cp, dr, dw, de); -static void -g_uzip_spoiled(struct g_consumer *cp) -{ - struct g_geom *gp; + /* + * Free the softc if all providers have been closed and this geom + * is being removed. + */ + if (error == 0 && (gp->flags & G_GEOM_WITHER) != 0 && + (cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); - G_VALID_CONSUMER(cp); - gp = cp->geom; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); - g_topology_assert(); - - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; - g_wither_geom(gp, ENXIO); + return (error); } static int @@ -878,10 +888,8 @@ g_uzip_destroy_geom(struct gctl_req *req, struct g_cla if (pp->acr > 0 || pp->acw > 0 || pp->ace > 0) return (EBUSY); - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; g_wither_geom(gp, ENXIO); - + g_uzip_softc_free(gp); return (0); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:43:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E51F11FDFE4; Fri, 10 Jan 2020 00:43:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v43c5n3fz3x4T; Fri, 10 Jan 2020 00:43:40 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C1ABB9CCB; Fri, 10 Jan 2020 00:43:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0he6Y016792; Fri, 10 Jan 2020 00:43:40 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0heGw016791; Fri, 10 Jan 2020 00:43:40 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100043.00A0heGw016791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:43:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356580 - stable/12/sys/geom/gate X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/gate X-SVN-Commit-Revision: 356580 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:43:41 -0000 Author: mav Date: Fri Jan 10 00:43:40 2020 New Revision: 356580 URL: https://svnweb.freebsd.org/changeset/base/356580 Log: MFC r356151: Fix GEOM_GATE orphanization. Previous code closed and destroyed direct read consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/12/sys/geom/gate/g_gate.c stable/12/sys/geom/gate/g_gate.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/gate/g_gate.c ============================================================================== --- stable/12/sys/geom/gate/g_gate.c Fri Jan 10 00:43:08 2020 (r356579) +++ stable/12/sys/geom/gate/g_gate.c Fri Jan 10 00:43:40 2020 (r356580) @@ -88,6 +88,19 @@ static struct g_gate_softc **g_gate_units; static u_int g_gate_nunits; static struct mtx g_gate_units_lock; +static void +g_gate_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", + cp->provider->name); + (void)g_access(cp, -1, 0, 0); + g_detach(cp); + g_destroy_consumer(cp); +} + static int g_gate_destroy(struct g_gate_softc *sc, boolean_t force) { @@ -139,6 +152,7 @@ g_gate_destroy(struct g_gate_softc *sc, boolean_t forc g_gate_nunits--; mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); g_topology_lock(); if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; @@ -207,8 +221,11 @@ g_gate_queue_io(struct bio *bp) static void g_gate_done(struct bio *cbp) { + struct g_gate_softc *sc; struct bio *pbp; + struct g_consumer *cp; + cp = cbp->bio_from; pbp = cbp->bio_parent; if (cbp->bio_error == 0) { pbp->bio_completed = cbp->bio_completed; @@ -221,12 +238,20 @@ g_gate_done(struct bio *cbp) pbp->bio_children--; g_gate_queue_io(pbp); } + + sc = cp->geom->softc; + mtx_lock(&sc->sc_read_mtx); + if (--cp->index == 0 && sc->sc_readcons != cp) + g_post_event(g_gate_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_read_mtx); } static void g_gate_start(struct bio *pbp) { struct g_gate_softc *sc; + struct g_consumer *cp; + struct bio *cbp; sc = pbp->bio_to->geom->softc; if (sc == NULL || (sc->sc_flags & G_GATE_FLAG_DESTROY) != 0) { @@ -236,21 +261,26 @@ g_gate_start(struct bio *pbp) G_GATE_LOGREQ(2, pbp, "Request received."); switch (pbp->bio_cmd) { case BIO_READ: - if (sc->sc_readcons != NULL) { - struct bio *cbp; - - cbp = g_clone_bio(pbp); - if (cbp == NULL) { - g_io_deliver(pbp, ENOMEM); - return; - } - cbp->bio_done = g_gate_done; - cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; - cbp->bio_to = sc->sc_readcons->provider; - g_io_request(cbp, sc->sc_readcons); + if (sc->sc_readcons == NULL) + break; + cbp = g_clone_bio(pbp); + if (cbp == NULL) { + g_io_deliver(pbp, ENOMEM); return; } - break; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) == NULL) { + mtx_unlock(&sc->sc_read_mtx); + g_destroy_bio(cbp); + pbp->bio_children--; + break; + } + cp->index++; + cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; + mtx_unlock(&sc->sc_read_mtx); + cbp->bio_done = g_gate_done; + g_io_request(cbp, cp); + return; case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: @@ -376,20 +406,18 @@ g_gate_orphan(struct g_consumer *cp) { struct g_gate_softc *sc; struct g_geom *gp; + int done; g_topology_assert(); gp = cp->geom; sc = gp->softc; - if (sc == NULL) - return; - KASSERT(cp == sc->sc_readcons, ("cp=%p sc_readcons=%p", cp, - sc->sc_readcons)); - sc->sc_readcons = NULL; - G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", - cp->provider->name); - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); + mtx_lock(&sc->sc_read_mtx); + if (sc->sc_readcons == cp) + sc->sc_readcons = NULL; + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); } static void @@ -482,6 +510,7 @@ g_gate_create(struct g_gate_ctl_create *ggio) bioq_init(&sc->sc_inqueue); bioq_init(&sc->sc_outqueue); mtx_init(&sc->sc_queue_mtx, "gg:queue", NULL, MTX_DEF); + mtx_init(&sc->sc_read_mtx, "gg:read", NULL, MTX_DEF); sc->sc_queue_count = 0; sc->sc_queue_size = ggio->gctl_maxcount; if (sc->sc_queue_size > G_GATE_MAX_QUEUE_SIZE) @@ -595,6 +624,7 @@ fail2: fail1: mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); free(sc, M_GATE); return (error); } @@ -604,7 +634,7 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c { struct g_provider *pp; struct g_consumer *cp; - int error; + int done, error; if ((ggio->gctl_modify & GG_MODIFY_MEDIASIZE) != 0) { if (ggio->gctl_mediasize <= 0) { @@ -627,13 +657,15 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c if ((ggio->gctl_modify & GG_MODIFY_READPROV) != 0) { g_topology_lock(); - if (sc->sc_readcons != NULL) { - cp = sc->sc_readcons; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); - } + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); + } else + mtx_unlock(&sc->sc_read_mtx); if (ggio->gctl_readprov[0] != '\0') { pp = g_provider_by_name(ggio->gctl_readprov); if (pp == NULL) { Modified: stable/12/sys/geom/gate/g_gate.h ============================================================================== --- stable/12/sys/geom/gate/g_gate.h Fri Jan 10 00:43:08 2020 (r356579) +++ stable/12/sys/geom/gate/g_gate.h Fri Jan 10 00:43:40 2020 (r356580) @@ -91,16 +91,15 @@ struct g_gate_softc { uint32_t sc_queue_count; /* P: sc_queue_mtx */ uint32_t sc_queue_size; /* P: (read-only) */ u_int sc_timeout; /* P: (read-only) */ - struct g_consumer *sc_readcons; /* P: XXX */ - off_t sc_readoffset; /* P: XXX */ + struct g_consumer *sc_readcons; /* P: sc_read_mtx */ + off_t sc_readoffset; /* P: sc_read_mtx */ struct callout sc_callout; /* P: (modified only from callout thread) */ - uintptr_t sc_seq; /* P: (modified only - from g_down - thread) */ + uintptr_t sc_seq; /* P: sc_queue_mtx */ LIST_ENTRY(g_gate_softc) sc_next; /* P: g_gate_list_mtx */ char sc_info[G_GATE_INFOSIZE]; /* P: (read-only) */ + struct mtx sc_read_mtx; }; #define G_GATE_DEBUG(lvl, ...) do { \ From owner-svn-src-all@freebsd.org Fri Jan 10 00:44:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E98831FE056; Fri, 10 Jan 2020 00:44:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4475v7Xz3xBQ; Fri, 10 Jan 2020 00:44:07 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C57829CCC; Fri, 10 Jan 2020 00:44:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0i7ZW016902; Fri, 10 Jan 2020 00:44:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0i7XN016900; Fri, 10 Jan 2020 00:44:07 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100044.00A0i7XN016900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:44:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356581 - stable/11/sys/geom/gate X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/gate X-SVN-Commit-Revision: 356581 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:44:08 -0000 Author: mav Date: Fri Jan 10 00:44:07 2020 New Revision: 356581 URL: https://svnweb.freebsd.org/changeset/base/356581 Log: MFC r356151: Fix GEOM_GATE orphanization. Previous code closed and destroyed direct read consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/11/sys/geom/gate/g_gate.c stable/11/sys/geom/gate/g_gate.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/gate/g_gate.c ============================================================================== --- stable/11/sys/geom/gate/g_gate.c Fri Jan 10 00:43:40 2020 (r356580) +++ stable/11/sys/geom/gate/g_gate.c Fri Jan 10 00:44:07 2020 (r356581) @@ -86,6 +86,19 @@ static struct g_gate_softc **g_gate_units; static u_int g_gate_nunits; static struct mtx g_gate_units_lock; +static void +g_gate_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", + cp->provider->name); + (void)g_access(cp, -1, 0, 0); + g_detach(cp); + g_destroy_consumer(cp); +} + static int g_gate_destroy(struct g_gate_softc *sc, boolean_t force) { @@ -137,6 +150,7 @@ g_gate_destroy(struct g_gate_softc *sc, boolean_t forc g_gate_nunits--; mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); g_topology_lock(); if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; @@ -205,8 +219,11 @@ g_gate_queue_io(struct bio *bp) static void g_gate_done(struct bio *cbp) { + struct g_gate_softc *sc; struct bio *pbp; + struct g_consumer *cp; + cp = cbp->bio_from; pbp = cbp->bio_parent; if (cbp->bio_error == 0) { pbp->bio_completed = cbp->bio_completed; @@ -219,12 +236,20 @@ g_gate_done(struct bio *cbp) pbp->bio_children--; g_gate_queue_io(pbp); } + + sc = cp->geom->softc; + mtx_lock(&sc->sc_read_mtx); + if (--cp->index == 0 && sc->sc_readcons != cp) + g_post_event(g_gate_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_read_mtx); } static void g_gate_start(struct bio *pbp) { struct g_gate_softc *sc; + struct g_consumer *cp; + struct bio *cbp; sc = pbp->bio_to->geom->softc; if (sc == NULL || (sc->sc_flags & G_GATE_FLAG_DESTROY) != 0) { @@ -234,21 +259,26 @@ g_gate_start(struct bio *pbp) G_GATE_LOGREQ(2, pbp, "Request received."); switch (pbp->bio_cmd) { case BIO_READ: - if (sc->sc_readcons != NULL) { - struct bio *cbp; - - cbp = g_clone_bio(pbp); - if (cbp == NULL) { - g_io_deliver(pbp, ENOMEM); - return; - } - cbp->bio_done = g_gate_done; - cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; - cbp->bio_to = sc->sc_readcons->provider; - g_io_request(cbp, sc->sc_readcons); + if (sc->sc_readcons == NULL) + break; + cbp = g_clone_bio(pbp); + if (cbp == NULL) { + g_io_deliver(pbp, ENOMEM); return; } - break; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) == NULL) { + mtx_unlock(&sc->sc_read_mtx); + g_destroy_bio(cbp); + pbp->bio_children--; + break; + } + cp->index++; + cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; + mtx_unlock(&sc->sc_read_mtx); + cbp->bio_done = g_gate_done; + g_io_request(cbp, cp); + return; case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: @@ -374,20 +404,18 @@ g_gate_orphan(struct g_consumer *cp) { struct g_gate_softc *sc; struct g_geom *gp; + int done; g_topology_assert(); gp = cp->geom; sc = gp->softc; - if (sc == NULL) - return; - KASSERT(cp == sc->sc_readcons, ("cp=%p sc_readcons=%p", cp, - sc->sc_readcons)); - sc->sc_readcons = NULL; - G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", - cp->provider->name); - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); + mtx_lock(&sc->sc_read_mtx); + if (sc->sc_readcons == cp) + sc->sc_readcons = NULL; + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); } static void @@ -480,6 +508,7 @@ g_gate_create(struct g_gate_ctl_create *ggio) bioq_init(&sc->sc_inqueue); bioq_init(&sc->sc_outqueue); mtx_init(&sc->sc_queue_mtx, "gg:queue", NULL, MTX_DEF); + mtx_init(&sc->sc_read_mtx, "gg:read", NULL, MTX_DEF); sc->sc_queue_count = 0; sc->sc_queue_size = ggio->gctl_maxcount; if (sc->sc_queue_size > G_GATE_MAX_QUEUE_SIZE) @@ -593,6 +622,7 @@ fail2: fail1: mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); free(sc, M_GATE); return (error); } @@ -602,7 +632,7 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c { struct g_provider *pp; struct g_consumer *cp; - int error; + int done, error; if ((ggio->gctl_modify & GG_MODIFY_MEDIASIZE) != 0) { if (ggio->gctl_mediasize <= 0) { @@ -625,13 +655,15 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c if ((ggio->gctl_modify & GG_MODIFY_READPROV) != 0) { g_topology_lock(); - if (sc->sc_readcons != NULL) { - cp = sc->sc_readcons; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); - } + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); + } else + mtx_unlock(&sc->sc_read_mtx); if (ggio->gctl_readprov[0] != '\0') { pp = g_provider_by_name(ggio->gctl_readprov); if (pp == NULL) { Modified: stable/11/sys/geom/gate/g_gate.h ============================================================================== --- stable/11/sys/geom/gate/g_gate.h Fri Jan 10 00:43:40 2020 (r356580) +++ stable/11/sys/geom/gate/g_gate.h Fri Jan 10 00:44:07 2020 (r356581) @@ -89,16 +89,15 @@ struct g_gate_softc { uint32_t sc_queue_count; /* P: sc_queue_mtx */ uint32_t sc_queue_size; /* P: (read-only) */ u_int sc_timeout; /* P: (read-only) */ - struct g_consumer *sc_readcons; /* P: XXX */ - off_t sc_readoffset; /* P: XXX */ + struct g_consumer *sc_readcons; /* P: sc_read_mtx */ + off_t sc_readoffset; /* P: sc_read_mtx */ struct callout sc_callout; /* P: (modified only from callout thread) */ - uintptr_t sc_seq; /* P: (modified only - from g_down - thread) */ + uintptr_t sc_seq; /* P: sc_queue_mtx */ LIST_ENTRY(g_gate_softc) sc_next; /* P: g_gate_list_mtx */ char sc_info[G_GATE_INFOSIZE]; /* P: (read-only) */ + struct mtx sc_read_mtx; }; #define G_GATE_DEBUG(lvl, ...) do { \ From owner-svn-src-all@freebsd.org Fri Jan 10 00:45:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 796A51FE0EF; Fri, 10 Jan 2020 00:45:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v45h2fywz3xJp; Fri, 10 Jan 2020 00:45:28 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 567559CCE; Fri, 10 Jan 2020 00:45:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0jS1a017026; Fri, 10 Jan 2020 00:45:28 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0jS3g017025; Fri, 10 Jan 2020 00:45:28 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100045.00A0jS3g017025@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:45:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356582 - stable/12/sys/geom/shsec X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/shsec X-SVN-Commit-Revision: 356582 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:45:28 -0000 Author: mav Date: Fri Jan 10 00:45:27 2020 New Revision: 356582 URL: https://svnweb.freebsd.org/changeset/base/356582 Log: MFC r356162, r356182: Fix GEOM_SHSEC orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close, identical to GEOM_STRIPE, since they seem to have common origin. Modified: stable/12/sys/geom/shsec/g_shsec.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/shsec/g_shsec.c ============================================================================== --- stable/12/sys/geom/shsec/g_shsec.c Fri Jan 10 00:44:07 2020 (r356581) +++ stable/12/sys/geom/shsec/g_shsec.c Fri Jan 10 00:45:27 2020 (r356582) @@ -164,7 +164,7 @@ g_shsec_remove_disk(struct g_consumer *cp) } if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); + return; g_detach(cp); g_destroy_consumer(cp); } @@ -183,14 +183,14 @@ g_shsec_orphan(struct g_consumer *cp) g_shsec_remove_disk(cp); /* If there are no valid disks anymore, remove device. */ - if (g_shsec_nvalid(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) g_shsec_destroy(sc, 1); } static int g_shsec_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *cp1, *cp2; + struct g_consumer *cp1, *cp2, *tmp; struct g_shsec_softc *sc; struct g_geom *gp; int error; @@ -198,21 +198,6 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, gp = pp->geom; sc = gp->softc; - if (sc == NULL) { - /* - * It looks like geom is being withered. - * In that case we allow only negative requests. - */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("Positive access request (device=%s).", pp->name)); - if ((pp->acr + dr) == 0 && (pp->acw + dw) == 0 && - (pp->ace + de) == 0) { - G_SHSEC_DEBUG(0, "Device %s definitely destroyed.", - gp->name); - } - return (0); - } - /* On first open, grab an extra "exclusive" bit */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; @@ -221,21 +206,30 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, de--; error = ENXIO; - LIST_FOREACH(cp1, &gp->consumer, consumer) { + LIST_FOREACH_SAFE(cp1, &gp->consumer, consumer, tmp) { error = g_access(cp1, dr, dw, de); - if (error == 0) - continue; - /* - * If we fail here, backout all previous changes. - */ - LIST_FOREACH(cp2, &gp->consumer, consumer) { - if (cp1 == cp2) - return (error); - g_access(cp2, -dr, -dw, -de); + if (error != 0) + goto fail; + if (cp1->acr == 0 && cp1->acw == 0 && cp1->ace == 0 && + cp1->flags & G_CF_ORPHAN) { + g_detach(cp1); + g_destroy_consumer(cp1); } - /* NOTREACHED */ } + /* If there are no valid disks anymore, remove device. */ + if (LIST_EMPTY(&gp->consumer)) + g_shsec_destroy(sc, 1); + + return (error); + +fail: + /* If we fail here, backout all previous changes. */ + LIST_FOREACH(cp2, &gp->consumer, consumer) { + if (cp1 == cp2) + break; + g_access(cp2, -dr, -dw, -de); + } return (error); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:45:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2079C1FE164; Fri, 10 Jan 2020 00:45:53 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v46900t6z3xQg; Fri, 10 Jan 2020 00:45:53 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EEDEE9CCF; Fri, 10 Jan 2020 00:45:52 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0jqMm017099; Fri, 10 Jan 2020 00:45:52 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0jqbN017098; Fri, 10 Jan 2020 00:45:52 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100045.00A0jqbN017098@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:45:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356583 - stable/11/sys/geom/shsec X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/shsec X-SVN-Commit-Revision: 356583 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:45:53 -0000 Author: mav Date: Fri Jan 10 00:45:52 2020 New Revision: 356583 URL: https://svnweb.freebsd.org/changeset/base/356583 Log: MFC r356162, r356182: Fix GEOM_SHSEC orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close, identical to GEOM_STRIPE, since they seem to have common origin. Modified: stable/11/sys/geom/shsec/g_shsec.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/shsec/g_shsec.c ============================================================================== --- stable/11/sys/geom/shsec/g_shsec.c Fri Jan 10 00:45:27 2020 (r356582) +++ stable/11/sys/geom/shsec/g_shsec.c Fri Jan 10 00:45:52 2020 (r356583) @@ -162,7 +162,7 @@ g_shsec_remove_disk(struct g_consumer *cp) } if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); + return; g_detach(cp); g_destroy_consumer(cp); } @@ -181,14 +181,14 @@ g_shsec_orphan(struct g_consumer *cp) g_shsec_remove_disk(cp); /* If there are no valid disks anymore, remove device. */ - if (g_shsec_nvalid(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) g_shsec_destroy(sc, 1); } static int g_shsec_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *cp1, *cp2; + struct g_consumer *cp1, *cp2, *tmp; struct g_shsec_softc *sc; struct g_geom *gp; int error; @@ -196,21 +196,6 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, gp = pp->geom; sc = gp->softc; - if (sc == NULL) { - /* - * It looks like geom is being withered. - * In that case we allow only negative requests. - */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("Positive access request (device=%s).", pp->name)); - if ((pp->acr + dr) == 0 && (pp->acw + dw) == 0 && - (pp->ace + de) == 0) { - G_SHSEC_DEBUG(0, "Device %s definitely destroyed.", - gp->name); - } - return (0); - } - /* On first open, grab an extra "exclusive" bit */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; @@ -219,21 +204,30 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, de--; error = ENXIO; - LIST_FOREACH(cp1, &gp->consumer, consumer) { + LIST_FOREACH_SAFE(cp1, &gp->consumer, consumer, tmp) { error = g_access(cp1, dr, dw, de); - if (error == 0) - continue; - /* - * If we fail here, backout all previous changes. - */ - LIST_FOREACH(cp2, &gp->consumer, consumer) { - if (cp1 == cp2) - return (error); - g_access(cp2, -dr, -dw, -de); + if (error != 0) + goto fail; + if (cp1->acr == 0 && cp1->acw == 0 && cp1->ace == 0 && + cp1->flags & G_CF_ORPHAN) { + g_detach(cp1); + g_destroy_consumer(cp1); } - /* NOTREACHED */ } + /* If there are no valid disks anymore, remove device. */ + if (LIST_EMPTY(&gp->consumer)) + g_shsec_destroy(sc, 1); + + return (error); + +fail: + /* If we fail here, backout all previous changes. */ + LIST_FOREACH(cp2, &gp->consumer, consumer) { + if (cp1 == cp2) + break; + g_access(cp2, -dr, -dw, -de); + } return (error); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:46:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 691D31FE1E3; Fri, 10 Jan 2020 00:46:34 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v46y27mTz3xXp; Fri, 10 Jan 2020 00:46:34 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 44AA79CD0; Fri, 10 Jan 2020 00:46:34 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0kYuL017195; Fri, 10 Jan 2020 00:46:34 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0kYi6017194; Fri, 10 Jan 2020 00:46:34 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100046.00A0kYi6017194@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:46:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356584 - stable/12/sys/geom/mountver X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/mountver X-SVN-Commit-Revision: 356584 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:46:34 -0000 Author: mav Date: Fri Jan 10 00:46:33 2020 New Revision: 356584 URL: https://svnweb.freebsd.org/changeset/base/356584 Log: MFC r356178: Fix GEOM_MOUNTVER orphanization. Previous code closed and detached consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/12/sys/geom/mountver/g_mountver.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/mountver/g_mountver.c ============================================================================== --- stable/12/sys/geom/mountver/g_mountver.c Fri Jan 10 00:45:52 2020 (r356583) +++ stable/12/sys/geom/mountver/g_mountver.c Fri Jan 10 00:46:33 2020 (r356584) @@ -84,14 +84,29 @@ struct g_class g_mountver_class = { }; static void +g_mountver_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) + g_access(cp, -cp->acr, -cp->acw, -cp->ace); + g_detach(cp); +} + +static void g_mountver_done(struct bio *bp) { + struct g_mountver_softc *sc; struct g_geom *gp; + struct g_consumer *cp; struct bio *pbp; + cp = bp->bio_from; + gp = cp->geom; if (bp->bio_error != ENXIO) { g_std_done(bp); - return; + goto done; } /* @@ -100,32 +115,45 @@ g_mountver_done(struct bio *bp) * gets called. To work around that, we have to queue requests * that failed with ENXIO, in order to send them later. */ - gp = bp->bio_from->geom; - pbp = bp->bio_parent; KASSERT(pbp->bio_to == LIST_FIRST(&gp->provider), ("parent request was for someone else")); g_destroy_bio(bp); pbp->bio_inbed++; g_mountver_queue(pbp); + +done: + sc = gp->softc; + mtx_lock(&sc->sc_mtx); + if (--cp->index == 0 && sc->sc_orphaned) + g_post_event(g_mountver_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_mtx); } +/* + * Send the BIO down. The function is called with sc_mtx held to cover + * the race with orphan, but drops it before external calls. + */ static void -g_mountver_send(struct bio *bp) +g_mountver_send(struct g_geom *gp, struct bio *bp) { - struct g_geom *gp; + struct g_mountver_softc *sc = gp->softc; + struct g_consumer *cp; struct bio *cbp; - gp = bp->bio_to->geom; - + mtx_assert(&sc->sc_mtx, MA_OWNED); cbp = g_clone_bio(bp); if (cbp == NULL) { + mtx_unlock(&sc->sc_mtx); g_io_deliver(bp, ENOMEM); return; } + cp = LIST_FIRST(&gp->consumer); + cp->index++; + mtx_unlock(&sc->sc_mtx); cbp->bio_done = g_mountver_done; - g_io_request(cbp, LIST_FIRST(&gp->consumer)); + g_io_request(cbp, cp); } static void @@ -151,10 +179,12 @@ g_mountver_send_queued(struct g_geom *gp) sc = gp->softc; mtx_lock(&sc->sc_mtx); - while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { + while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL && !sc->sc_orphaned) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); G_MOUNTVER_LOGREQ(bp, "Sending queued request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -170,8 +200,10 @@ g_mountver_discard_queued(struct g_geom *gp) mtx_lock(&sc->sc_mtx); while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); + mtx_unlock(&sc->sc_mtx); G_MOUNTVER_LOGREQ(bp, "Discarding queued request."); g_io_deliver(bp, ENXIO); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -191,7 +223,9 @@ g_mountver_start(struct bio *bp) * orphaning didn't happen yet. In that case, queue all subsequent * requests in order to maintain ordering. */ + mtx_lock(&sc->sc_mtx); if (sc->sc_orphaned || !TAILQ_EMPTY(&sc->sc_queue)) { + mtx_unlock(&sc->sc_mtx); if (sc->sc_shutting_down) { G_MOUNTVER_LOGREQ(bp, "Discarding request due to shutdown."); g_io_deliver(bp, ENXIO); @@ -203,7 +237,8 @@ g_mountver_start(struct bio *bp) g_mountver_send_queued(gp); } else { G_MOUNTVER_LOGREQ(bp, "Sending request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); } } @@ -465,14 +500,17 @@ static void g_mountver_orphan(struct g_consumer *cp) { struct g_mountver_softc *sc; + int done; g_topology_assert(); sc = cp->geom->softc; + mtx_lock(&sc->sc_mtx); sc->sc_orphaned = 1; - if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); - g_detach(cp); + done = (cp->index == 0); + mtx_unlock(&sc->sc_mtx); + if (done) + g_mountver_detach(cp, 0); G_MOUNTVER_DEBUG(0, "%s is offline. Mount verification in progress.", sc->sc_provider_name); } @@ -570,8 +608,8 @@ g_mountver_taste(struct g_class *mp, struct g_provider return (NULL); } } - g_mountver_send_queued(gp); sc->sc_orphaned = 0; + g_mountver_send_queued(gp); G_MOUNTVER_DEBUG(0, "%s has completed mount verification.", sc->sc_provider_name); return (gp); From owner-svn-src-all@freebsd.org Fri Jan 10 00:46:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A0F721FE260; Fri, 10 Jan 2020 00:46:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v47R3sPZz3xfs; Fri, 10 Jan 2020 00:46:59 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7FBC59CD2; Fri, 10 Jan 2020 00:46:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0kxcn017267; Fri, 10 Jan 2020 00:46:59 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0kx33017266; Fri, 10 Jan 2020 00:46:59 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100046.00A0kx33017266@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:46:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356585 - stable/11/sys/geom/mountver X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/mountver X-SVN-Commit-Revision: 356585 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:46:59 -0000 Author: mav Date: Fri Jan 10 00:46:59 2020 New Revision: 356585 URL: https://svnweb.freebsd.org/changeset/base/356585 Log: MFC r356178: Fix GEOM_MOUNTVER orphanization. Previous code closed and detached consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/11/sys/geom/mountver/g_mountver.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/mountver/g_mountver.c ============================================================================== --- stable/11/sys/geom/mountver/g_mountver.c Fri Jan 10 00:46:33 2020 (r356584) +++ stable/11/sys/geom/mountver/g_mountver.c Fri Jan 10 00:46:59 2020 (r356585) @@ -82,14 +82,29 @@ struct g_class g_mountver_class = { }; static void +g_mountver_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) + g_access(cp, -cp->acr, -cp->acw, -cp->ace); + g_detach(cp); +} + +static void g_mountver_done(struct bio *bp) { + struct g_mountver_softc *sc; struct g_geom *gp; + struct g_consumer *cp; struct bio *pbp; + cp = bp->bio_from; + gp = cp->geom; if (bp->bio_error != ENXIO) { g_std_done(bp); - return; + goto done; } /* @@ -98,32 +113,45 @@ g_mountver_done(struct bio *bp) * gets called. To work around that, we have to queue requests * that failed with ENXIO, in order to send them later. */ - gp = bp->bio_from->geom; - pbp = bp->bio_parent; KASSERT(pbp->bio_to == LIST_FIRST(&gp->provider), ("parent request was for someone else")); g_destroy_bio(bp); pbp->bio_inbed++; g_mountver_queue(pbp); + +done: + sc = gp->softc; + mtx_lock(&sc->sc_mtx); + if (--cp->index == 0 && sc->sc_orphaned) + g_post_event(g_mountver_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_mtx); } +/* + * Send the BIO down. The function is called with sc_mtx held to cover + * the race with orphan, but drops it before external calls. + */ static void -g_mountver_send(struct bio *bp) +g_mountver_send(struct g_geom *gp, struct bio *bp) { - struct g_geom *gp; + struct g_mountver_softc *sc = gp->softc; + struct g_consumer *cp; struct bio *cbp; - gp = bp->bio_to->geom; - + mtx_assert(&sc->sc_mtx, MA_OWNED); cbp = g_clone_bio(bp); if (cbp == NULL) { + mtx_unlock(&sc->sc_mtx); g_io_deliver(bp, ENOMEM); return; } + cp = LIST_FIRST(&gp->consumer); + cp->index++; + mtx_unlock(&sc->sc_mtx); cbp->bio_done = g_mountver_done; - g_io_request(cbp, LIST_FIRST(&gp->consumer)); + g_io_request(cbp, cp); } static void @@ -149,10 +177,12 @@ g_mountver_send_queued(struct g_geom *gp) sc = gp->softc; mtx_lock(&sc->sc_mtx); - while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { + while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL && !sc->sc_orphaned) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); G_MOUNTVER_LOGREQ(bp, "Sending queued request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -168,8 +198,10 @@ g_mountver_discard_queued(struct g_geom *gp) mtx_lock(&sc->sc_mtx); while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); + mtx_unlock(&sc->sc_mtx); G_MOUNTVER_LOGREQ(bp, "Discarding queued request."); g_io_deliver(bp, ENXIO); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -189,7 +221,9 @@ g_mountver_start(struct bio *bp) * orphaning didn't happen yet. In that case, queue all subsequent * requests in order to maintain ordering. */ + mtx_lock(&sc->sc_mtx); if (sc->sc_orphaned || !TAILQ_EMPTY(&sc->sc_queue)) { + mtx_unlock(&sc->sc_mtx); if (sc->sc_shutting_down) { G_MOUNTVER_LOGREQ(bp, "Discarding request due to shutdown."); g_io_deliver(bp, ENXIO); @@ -201,7 +235,8 @@ g_mountver_start(struct bio *bp) g_mountver_send_queued(gp); } else { G_MOUNTVER_LOGREQ(bp, "Sending request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); } } @@ -463,14 +498,17 @@ static void g_mountver_orphan(struct g_consumer *cp) { struct g_mountver_softc *sc; + int done; g_topology_assert(); sc = cp->geom->softc; + mtx_lock(&sc->sc_mtx); sc->sc_orphaned = 1; - if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); - g_detach(cp); + done = (cp->index == 0); + mtx_unlock(&sc->sc_mtx); + if (done) + g_mountver_detach(cp, 0); G_MOUNTVER_DEBUG(0, "%s is offline. Mount verification in progress.", sc->sc_provider_name); } @@ -568,8 +606,8 @@ g_mountver_taste(struct g_class *mp, struct g_provider return (NULL); } } - g_mountver_send_queued(gp); sc->sc_orphaned = 0; + g_mountver_send_queued(gp); G_MOUNTVER_DEBUG(0, "%s has completed mount verification.", sc->sc_provider_name); return (gp); From owner-svn-src-all@freebsd.org Fri Jan 10 00:47:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 421A41FE30C; Fri, 10 Jan 2020 00:47:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v48B14Vdz3xnJ; Fri, 10 Jan 2020 00:47:38 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2044E9CD5; Fri, 10 Jan 2020 00:47:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0lcoO017357; Fri, 10 Jan 2020 00:47:38 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0lbe9017356; Fri, 10 Jan 2020 00:47:37 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100047.00A0lbe9017356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:47:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356586 - stable/12/sys/geom/virstor X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/virstor X-SVN-Commit-Revision: 356586 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:47:38 -0000 Author: mav Date: Fri Jan 10 00:47:37 2020 New Revision: 356586 URL: https://svnweb.freebsd.org/changeset/base/356586 Log: MFC r356181: Fix GEOM_VIRSTOR orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close. Modified: stable/12/sys/geom/virstor/g_virstor.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/virstor/g_virstor.c ============================================================================== --- stable/12/sys/geom/virstor/g_virstor.c Fri Jan 10 00:46:59 2020 (r356585) +++ stable/12/sys/geom/virstor/g_virstor.c Fri Jan 10 00:47:37 2020 (r356586) @@ -908,7 +908,7 @@ remove_component(struct g_virstor_softc *sc, struct g_ } if (c->acr > 0 || c->acw > 0 || c->ace > 0) - g_access(c, -c->acr, -c->acw, -c->ace); + return; if (delay) { /* Destroy consumer after it's tasted */ g_post_event(delay_destroy_consumer, c, M_WAITOK, NULL); @@ -1399,7 +1399,7 @@ g_virstor_orphan(struct g_consumer *cp) KASSERT(comp != NULL, ("%s: No component in private part of consumer", __func__)); remove_component(sc, comp, FALSE); - if (virstor_valid_components(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) virstor_geom_destroy(sc, TRUE, FALSE); } @@ -1409,7 +1409,7 @@ g_virstor_orphan(struct g_consumer *cp) static int g_virstor_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *c; + struct g_consumer *c, *c2, *tmp; struct g_virstor_softc *sc; struct g_geom *gp; int error; @@ -1419,46 +1419,40 @@ g_virstor_access(struct g_provider *pp, int dr, int dw KASSERT(gp != NULL, ("%s: NULL geom", __func__)); sc = gp->softc; - if (sc == NULL) { - /* It seems that .access can be called with negative dr,dw,dx - * in this case but I want to check for myself */ - LOG_MSG(LVL_WARNING, "access(%d, %d, %d) for %s", - dr, dw, de, pp->name); - /* This should only happen when geom is withered so - * allow only negative requests */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("%s: Positive access for %s", __func__, pp->name)); - if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) - LOG_MSG(LVL_DEBUG, "Device %s definitely destroyed", - pp->name); - return (0); - } - /* Grab an exclusive bit to propagate on our consumers on first open */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; /* ... drop it on close */ if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) { de--; - update_metadata(sc); /* Writes statistical information */ + if (sc != NULL) + update_metadata(sc); } error = ENXIO; - LIST_FOREACH(c, &gp->consumer, consumer) { - KASSERT(c != NULL, ("%s: consumer is NULL", __func__)); + LIST_FOREACH_SAFE(c, &gp->consumer, consumer, tmp) { error = g_access(c, dr, dw, de); - if (error != 0) { - struct g_consumer *c2; - - /* Backout earlier changes */ - LIST_FOREACH(c2, &gp->consumer, consumer) { - if (c2 == c) /* all eariler components fixed */ - return (error); - g_access(c2, -dr, -dw, -de); - } + if (error != 0) + goto fail; + if (c->acr == 0 && c->acw == 0 && c->ace == 0 && + c->flags & G_CF_ORPHAN) { + g_detach(c); + g_destroy_consumer(c); } } + if (sc != NULL && LIST_EMPTY(&gp->consumer)) + virstor_geom_destroy(sc, TRUE, FALSE); + + return (error); + +fail: + /* Backout earlier changes */ + LIST_FOREACH(c2, &gp->consumer, consumer) { + if (c2 == c) + break; + g_access(c2, -dr, -dw, -de); + } return (error); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:48:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 947631FE37F; Fri, 10 Jan 2020 00:48:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v48d2xCnz3xvL; Fri, 10 Jan 2020 00:48:01 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5FB089CD6; Fri, 10 Jan 2020 00:48:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0m1Eu017433; Fri, 10 Jan 2020 00:48:01 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0m1rF017432; Fri, 10 Jan 2020 00:48:01 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100048.00A0m1rF017432@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:48:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356587 - stable/11/sys/geom/virstor X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/virstor X-SVN-Commit-Revision: 356587 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:48:01 -0000 Author: mav Date: Fri Jan 10 00:48:00 2020 New Revision: 356587 URL: https://svnweb.freebsd.org/changeset/base/356587 Log: MFC r356181: Fix GEOM_VIRSTOR orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close. Modified: stable/11/sys/geom/virstor/g_virstor.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/virstor/g_virstor.c ============================================================================== --- stable/11/sys/geom/virstor/g_virstor.c Fri Jan 10 00:47:37 2020 (r356586) +++ stable/11/sys/geom/virstor/g_virstor.c Fri Jan 10 00:48:00 2020 (r356587) @@ -906,7 +906,7 @@ remove_component(struct g_virstor_softc *sc, struct g_ } if (c->acr > 0 || c->acw > 0 || c->ace > 0) - g_access(c, -c->acr, -c->acw, -c->ace); + return; if (delay) { /* Destroy consumer after it's tasted */ g_post_event(delay_destroy_consumer, c, M_WAITOK, NULL); @@ -1397,7 +1397,7 @@ g_virstor_orphan(struct g_consumer *cp) KASSERT(comp != NULL, ("%s: No component in private part of consumer", __func__)); remove_component(sc, comp, FALSE); - if (virstor_valid_components(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) virstor_geom_destroy(sc, TRUE, FALSE); } @@ -1407,7 +1407,7 @@ g_virstor_orphan(struct g_consumer *cp) static int g_virstor_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *c; + struct g_consumer *c, *c2, *tmp; struct g_virstor_softc *sc; struct g_geom *gp; int error; @@ -1417,46 +1417,40 @@ g_virstor_access(struct g_provider *pp, int dr, int dw KASSERT(gp != NULL, ("%s: NULL geom", __func__)); sc = gp->softc; - if (sc == NULL) { - /* It seems that .access can be called with negative dr,dw,dx - * in this case but I want to check for myself */ - LOG_MSG(LVL_WARNING, "access(%d, %d, %d) for %s", - dr, dw, de, pp->name); - /* This should only happen when geom is withered so - * allow only negative requests */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("%s: Positive access for %s", __func__, pp->name)); - if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) - LOG_MSG(LVL_DEBUG, "Device %s definitely destroyed", - pp->name); - return (0); - } - /* Grab an exclusive bit to propagate on our consumers on first open */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; /* ... drop it on close */ if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) { de--; - update_metadata(sc); /* Writes statistical information */ + if (sc != NULL) + update_metadata(sc); } error = ENXIO; - LIST_FOREACH(c, &gp->consumer, consumer) { - KASSERT(c != NULL, ("%s: consumer is NULL", __func__)); + LIST_FOREACH_SAFE(c, &gp->consumer, consumer, tmp) { error = g_access(c, dr, dw, de); - if (error != 0) { - struct g_consumer *c2; - - /* Backout earlier changes */ - LIST_FOREACH(c2, &gp->consumer, consumer) { - if (c2 == c) /* all eariler components fixed */ - return (error); - g_access(c2, -dr, -dw, -de); - } + if (error != 0) + goto fail; + if (c->acr == 0 && c->acw == 0 && c->ace == 0 && + c->flags & G_CF_ORPHAN) { + g_detach(c); + g_destroy_consumer(c); } } + if (sc != NULL && LIST_EMPTY(&gp->consumer)) + virstor_geom_destroy(sc, TRUE, FALSE); + + return (error); + +fail: + /* Backout earlier changes */ + LIST_FOREACH(c2, &gp->consumer, consumer) { + if (c2 == c) + break; + g_access(c2, -dr, -dw, -de); + } return (error); } From owner-svn-src-all@freebsd.org Fri Jan 10 00:53:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 871F41FE68F; Fri, 10 Jan 2020 00:53:21 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4Gn34wWz3yLp; Fri, 10 Jan 2020 00:53:21 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6520E9EA0; Fri, 10 Jan 2020 00:53:21 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0rLoR023441; Fri, 10 Jan 2020 00:53:21 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0rLsb023440; Fri, 10 Jan 2020 00:53:21 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100053.00A0rLsb023440@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:53:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356588 - stable/12/sys/geom X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom X-SVN-Commit-Revision: 356588 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:53:21 -0000 Author: mav Date: Fri Jan 10 00:53:20 2020 New Revision: 356588 URL: https://svnweb.freebsd.org/changeset/base/356588 Log: MFC r356214: Avoid few memory accesses in g_disk_done(). Modified: stable/12/sys/geom/geom_disk.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/geom_disk.c ============================================================================== --- stable/12/sys/geom/geom_disk.c Fri Jan 10 00:48:00 2020 (r356587) +++ stable/12/sys/geom/geom_disk.c Fri Jan 10 00:53:20 2020 (r356588) @@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$"); struct g_disk_softc { struct mtx done_mtx; struct disk *dp; + struct devstat *d_devstat; struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; char led[64]; @@ -232,15 +233,13 @@ g_disk_done(struct bio *bp) struct g_disk_softc *sc; /* See "notes" for why we need a mutex here */ - /* XXX: will witness accept a mix of Giant/unGiant drivers here ? */ + sc = bp->bio_caller1; bp2 = bp->bio_parent; - sc = bp2->bio_to->private; - bp->bio_completed = bp->bio_length - bp->bio_resid; binuptime(&now); mtx_lock(&sc->done_mtx); if (bp2->bio_error == 0) bp2->bio_error = bp->bio_error; - bp2->bio_completed += bp->bio_completed; + bp2->bio_completed += bp->bio_length - bp->bio_resid; switch (bp->bio_cmd) { case BIO_ZONE: @@ -250,7 +249,7 @@ g_disk_done(struct bio *bp) case BIO_WRITE: case BIO_DELETE: case BIO_FLUSH: - devstat_end_transaction_bio_bt(sc->dp->d_devstat, bp, &now); + devstat_end_transaction_bio_bt(sc->d_devstat, bp, &now); break; default: break; @@ -470,6 +469,7 @@ g_disk_start(struct bio *bp) bp->bio_error = ENOMEM; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_pblkno = bp2->bio_offset / dp->d_sectorsize; bp2->bio_bcount = bp2->bio_length; bp2->bio_disk = dp; @@ -555,6 +555,7 @@ g_disk_start(struct bio *bp) return; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_disk = dp; mtx_lock(&sc->start_mtx); devstat_start_transaction_bio(dp->d_devstat, bp2); @@ -709,6 +710,7 @@ g_disk_create(void *arg, int flag) mtx_init(&sc->start_mtx, "g_disk_start", NULL, MTX_DEF); mtx_init(&sc->done_mtx, "g_disk_done", NULL, MTX_DEF); sc->dp = dp; + sc->d_devstat = dp->d_devstat; gp = g_new_geomf(&g_disk_class, "%s%d", dp->d_name, dp->d_unit); gp->softc = sc; LIST_FOREACH(dap, &dp->d_aliases, da_next) { From owner-svn-src-all@freebsd.org Fri Jan 10 00:55:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1EA661FE71F; Fri, 10 Jan 2020 00:55:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4KQ04Nyz3yTv; Fri, 10 Jan 2020 00:55:38 +0000 (UTC) (envelope-from mav@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F1F0A9EA5; Fri, 10 Jan 2020 00:55:37 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A0tbl1023632; Fri, 10 Jan 2020 00:55:37 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0tbxv023631; Fri, 10 Jan 2020 00:55:37 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100055.00A0tbxv023631@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:55:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356589 - stable/11/sys/geom X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom X-SVN-Commit-Revision: 356589 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:55:38 -0000 Author: mav Date: Fri Jan 10 00:55:37 2020 New Revision: 356589 URL: https://svnweb.freebsd.org/changeset/base/356589 Log: MFC r356214: Avoid few memory accesses in g_disk_done(). Modified: stable/11/sys/geom/geom_disk.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/geom_disk.c ============================================================================== --- stable/11/sys/geom/geom_disk.c Fri Jan 10 00:53:20 2020 (r356588) +++ stable/11/sys/geom/geom_disk.c Fri Jan 10 00:55:37 2020 (r356589) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); struct g_disk_softc { struct mtx done_mtx; struct disk *dp; + struct devstat *d_devstat; struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; char led[64]; @@ -228,15 +229,13 @@ g_disk_done(struct bio *bp) struct g_disk_softc *sc; /* See "notes" for why we need a mutex here */ - /* XXX: will witness accept a mix of Giant/unGiant drivers here ? */ + sc = bp->bio_caller1; bp2 = bp->bio_parent; - sc = bp2->bio_to->private; - bp->bio_completed = bp->bio_length - bp->bio_resid; binuptime(&now); mtx_lock(&sc->done_mtx); if (bp2->bio_error == 0) bp2->bio_error = bp->bio_error; - bp2->bio_completed += bp->bio_completed; + bp2->bio_completed += bp->bio_length - bp->bio_resid; switch (bp->bio_cmd) { case BIO_ZONE: @@ -246,7 +245,7 @@ g_disk_done(struct bio *bp) case BIO_WRITE: case BIO_DELETE: case BIO_FLUSH: - devstat_end_transaction_bio_bt(sc->dp->d_devstat, bp, &now); + devstat_end_transaction_bio_bt(sc->d_devstat, bp, &now); break; default: break; @@ -463,6 +462,7 @@ g_disk_start(struct bio *bp) bp->bio_error = ENOMEM; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_pblkno = bp2->bio_offset / dp->d_sectorsize; bp2->bio_bcount = bp2->bio_length; bp2->bio_disk = dp; @@ -548,6 +548,7 @@ g_disk_start(struct bio *bp) return; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_disk = dp; mtx_lock(&sc->start_mtx); devstat_start_transaction_bio(dp->d_devstat, bp2); @@ -702,6 +703,7 @@ g_disk_create(void *arg, int flag) mtx_init(&sc->start_mtx, "g_disk_start", NULL, MTX_DEF); mtx_init(&sc->done_mtx, "g_disk_done", NULL, MTX_DEF); sc->dp = dp; + sc->d_devstat = dp->d_devstat; gp = g_new_geomf(&g_disk_class, "%s%d", dp->d_name, dp->d_unit); gp->softc = sc; pp = g_new_providerf(gp, "%s", gp->name); From owner-svn-src-all@freebsd.org Fri Jan 10 01:24:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D68141FEF64; Fri, 10 Jan 2020 01:24:49 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4z55GnBz40f6; Fri, 10 Jan 2020 01:24:49 +0000 (UTC) (envelope-from jhibbits@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ABF47A40D; Fri, 10 Jan 2020 01:24:49 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A1Ona4040988; Fri, 10 Jan 2020 01:24:49 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A1OnkW040987; Fri, 10 Jan 2020 01:24:49 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202001100124.00A1OnkW040987@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 10 Jan 2020 01:24:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356590 - head/sys/powerpc/powernv X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/powernv X-SVN-Commit-Revision: 356590 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 01:24:49 -0000 Author: jhibbits Date: Fri Jan 10 01:24:49 2020 New Revision: 356590 URL: https://svnweb.freebsd.org/changeset/base/356590 Log: powerpc/powernv: Un-Giant-ify opal_nvram driver It may be possible to make this completely lock free, but for now it's using a statically allocated bounce buffer in the softc, so it needs to be guarded. Modified: head/sys/powerpc/powernv/opal_nvram.c Modified: head/sys/powerpc/powernv/opal_nvram.c ============================================================================== --- head/sys/powerpc/powernv/opal_nvram.c Fri Jan 10 00:55:37 2020 (r356589) +++ head/sys/powerpc/powernv/opal_nvram.c Fri Jan 10 01:24:49 2020 (r356590) @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -56,6 +57,7 @@ struct opal_nvram_softc { device_t sc_dev; + struct mtx sc_mtx; uint32_t sc_size; uint8_t *sc_buf; vm_paddr_t sc_buf_phys; @@ -64,6 +66,9 @@ struct opal_nvram_softc { int sc_isopen; }; +#define NVRAM_LOCK(sc) mtx_lock(&sc->sc_mtx) +#define NVRAM_UNLOCK(sc) mtx_unlock(&sc->sc_mtx) + /* * Device interface. */ @@ -105,7 +110,6 @@ static d_ioctl_t opal_nvram_ioctl; static struct cdevsw opal_nvram_cdevsw = { .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, .d_open = opal_nvram_open, .d_close = opal_nvram_close, .d_read = opal_nvram_read, @@ -153,6 +157,8 @@ opal_nvram_attach(device_t dev) sc->sc_cdev = make_dev(&opal_nvram_cdevsw, 0, 0, 0, 0600, "nvram"); sc->sc_cdev->si_drv1 = sc; + + mtx_init(&sc->sc_mtx, "opal_nvram", 0, MTX_DEF); return (0); } @@ -168,6 +174,8 @@ opal_nvram_detach(device_t dev) destroy_dev(sc->sc_cdev); if (sc->sc_buf != NULL) contigfree(sc->sc_buf, NVRAM_BUFSIZE, M_DEVBUF); + + mtx_destroy(&sc->sc_mtx); return (0); } @@ -176,11 +184,18 @@ static int opal_nvram_open(struct cdev *dev, int flags, int fmt, struct thread *td) { struct opal_nvram_softc *sc = dev->si_drv1; + int err; + err = 0; + + NVRAM_LOCK(sc); if (sc->sc_isopen) - return EBUSY; - sc->sc_isopen = 1; - return (0); + err = EBUSY; + else + sc->sc_isopen = 1; + NVRAM_UNLOCK(sc); + + return (err); } static int @@ -188,7 +203,10 @@ opal_nvram_close(struct cdev *dev, int fflag, int devt { struct opal_nvram_softc *sc = dev->si_drv1; + NVRAM_LOCK(sc); sc->sc_isopen = 0; + NVRAM_UNLOCK(sc); + return (0); } @@ -199,6 +217,8 @@ opal_nvram_read(struct cdev *dev, struct uio *uio, int int rv, amnt; rv = 0; + + NVRAM_LOCK(sc); while (uio->uio_resid > 0) { amnt = MIN(uio->uio_resid, sc->sc_size - uio->uio_offset); amnt = MIN(amnt, NVRAM_BUFSIZE); @@ -222,6 +242,8 @@ opal_nvram_read(struct cdev *dev, struct uio *uio, int if (rv != 0) break; } + NVRAM_UNLOCK(sc); + return (rv); } @@ -233,6 +255,8 @@ opal_nvram_write(struct cdev *dev, struct uio *uio, in struct opal_nvram_softc *sc = dev->si_drv1; rv = 0; + + NVRAM_LOCK(sc); while (uio->uio_resid > 0) { amnt = MIN(uio->uio_resid, sc->sc_size - uio->uio_offset); amnt = MIN(amnt, NVRAM_BUFSIZE); @@ -258,6 +282,9 @@ opal_nvram_write(struct cdev *dev, struct uio *uio, in break; } } + + NVRAM_UNLOCK(sc); + return (rv); } From owner-svn-src-all@freebsd.org Fri Jan 10 03:16:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 74A7B221F6E; Fri, 10 Jan 2020 03:16:41 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v7S92TnQz45K3; Fri, 10 Jan 2020 03:16:41 +0000 (UTC) (envelope-from jhibbits@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 507F7B83A; Fri, 10 Jan 2020 03:16:41 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3Gfgn008215; Fri, 10 Jan 2020 03:16:41 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3GfIV008214; Fri, 10 Jan 2020 03:16:41 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202001100316.00A3GfIV008214@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 10 Jan 2020 03:16:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356591 - head/sys/powerpc/powerpc X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/powerpc X-SVN-Commit-Revision: 356591 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:16:41 -0000 Author: jhibbits Date: Fri Jan 10 03:16:40 2020 New Revision: 356591 URL: https://svnweb.freebsd.org/changeset/base/356591 Log: powerpc: Mark cpu_feature-based sysctls as MP_SAFE hw.floatingpoint and hw.altivec are effectively runtime constants (bits from the cpu_feature bitfield), so don't need Giant, or any locking for that matter. Modified: head/sys/powerpc/powerpc/cpu.c Modified: head/sys/powerpc/powerpc/cpu.c ============================================================================== --- head/sys/powerpc/powerpc/cpu.c Fri Jan 10 01:24:49 2020 (r356590) +++ head/sys/powerpc/powerpc/cpu.c Fri Jan 10 03:16:40 2020 (r356591) @@ -259,10 +259,10 @@ register_t lpcr = LPCR_LPES; #endif /* Provide some user-friendly aliases for bits in cpu_features */ -SYSCTL_PROC(_hw, OID_AUTO, floatingpoint, CTLTYPE_INT | CTLFLAG_RD, - 0, PPC_FEATURE_HAS_FPU, cpu_feature_bit, "I", - "Floating point instructions executed in hardware"); -SYSCTL_PROC(_hw, OID_AUTO, altivec, CTLTYPE_INT | CTLFLAG_RD, +SYSCTL_PROC(_hw, OID_AUTO, floatingpoint, + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, PPC_FEATURE_HAS_FPU, + cpu_feature_bit, "I", "Floating point instructions executed in hardware"); +SYSCTL_PROC(_hw, OID_AUTO, altivec, CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, PPC_FEATURE_HAS_ALTIVEC, cpu_feature_bit, "I", "CPU supports Altivec"); /* From owner-svn-src-all@freebsd.org Fri Jan 10 03:17:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D0A47221FE4; Fri, 10 Jan 2020 03:17:28 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v7T457nGz45Rq; Fri, 10 Jan 2020 03:17:28 +0000 (UTC) (envelope-from mhorne@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AB0A2B83C; Fri, 10 Jan 2020 03:17:28 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3HSxu008303; Fri, 10 Jan 2020 03:17:28 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3HSNC008302; Fri, 10 Jan 2020 03:17:28 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202001100317.00A3HSNC008302@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Fri, 10 Jan 2020 03:17:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356592 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 356592 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:17:28 -0000 Author: mhorne Date: Fri Jan 10 03:17:28 2020 New Revision: 356592 URL: https://svnweb.freebsd.org/changeset/base/356592 Log: Replace inline assembly with rdtime macro This macro is used elsewhere and is slightly cleaner. NFC. Modified: head/sys/riscv/riscv/timer.c Modified: head/sys/riscv/riscv/timer.c ============================================================================== --- head/sys/riscv/riscv/timer.c Fri Jan 10 03:16:40 2020 (r356591) +++ head/sys/riscv/riscv/timer.c Fri Jan 10 03:17:28 2020 (r356592) @@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -91,11 +92,8 @@ static struct timecounter riscv_timer_timecount = { static inline uint64_t get_cycles(void) { - uint64_t cycles; - __asm __volatile("rdtime %0" : "=r" (cycles)); - - return (cycles); + return (rdtime()); } static long From owner-svn-src-all@freebsd.org Fri Jan 10 03:37:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6993822267D; Fri, 10 Jan 2020 03:37:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v7wd2bm2z46fL; Fri, 10 Jan 2020 03:37:53 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5457EBDBF; Fri, 10 Jan 2020 03:37:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3braF020400; Fri, 10 Jan 2020 03:37:53 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3bq5u020396; Fri, 10 Jan 2020 03:37:52 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001100337.00A3bq5u020396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 03:37:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356593 - in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Commit-Revision: 356593 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:37:53 -0000 Author: kevans Date: Fri Jan 10 03:37:52 2020 New Revision: 356593 URL: https://svnweb.freebsd.org/changeset/base/356593 Log: MFC r356279: libbe(3): promote dependent clones when destroying a BE When removing a boot environment iterate over the dependents and process the snapshots by grabbing any clones. Promote the clones we found and then remove the target environment. This fixes the ability to destroy a boot environment when it has been used to spawn one or more other boot environments. PR: 242592 Modified: stable/11/lib/libbe/be.c stable/11/lib/libbe/be.h stable/11/lib/libbe/be_error.c stable/11/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libbe/be.c stable/12/lib/libbe/be.h stable/12/lib/libbe/be_error.c stable/12/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libbe/be.c ============================================================================== --- stable/11/lib/libbe/be.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/lib/libbe/be.c Fri Jan 10 03:37:52 2020 (r356593) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include - +#include #include #include @@ -48,9 +48,16 @@ __FBSDID("$FreeBSD$"); #include "be.h" #include "be_impl.h" +struct promote_entry { + char name[BE_MAXPATHLEN]; + SLIST_ENTRY(promote_entry) link; +}; + struct be_destroy_data { - libbe_handle_t *lbh; - char *snapname; + libbe_handle_t *lbh; + char target_name[BE_MAXPATHLEN]; + char *snapname; + SLIST_HEAD(, promote_entry) promotelist; }; #if SOON @@ -194,7 +201,153 @@ be_nicenum(uint64_t num, char *buf, size_t buflen) zfs_nicenum(num, buf, buflen); } +static bool +be_should_promote_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + char *atpos; + + if (zfs_get_type(zfs_hdl) != ZFS_TYPE_SNAPSHOT) + return (false); + + /* + * If we're deleting a snapshot, we need to make sure we only promote + * clones that are derived from one of the snapshots we're deleting, + * rather than that of a snapshot we're not touching. This keeps stuff + * in a consistent state, making sure that we don't error out unless + * we really need to. + */ + if (bdd->snapname == NULL) + return (true); + + atpos = strchr(zfs_get_name(zfs_hdl), '@'); + return (strcmp(atpos + 1, bdd->snapname) == 0); +} + +/* + * This is executed from be_promote_dependent_clones via zfs_iter_dependents, + * It checks if the dependent type is a snapshot then attempts to find any + * clones associated with it. Any clones not related to the destroy target are + * added to the promote list. + */ static int +be_dependent_clone_cb(zfs_handle_t *zfs_hdl, void *data) +{ + int err; + bool found; + char *name; + struct nvlist *nvl; + struct nvpair *nvp; + struct be_destroy_data *bdd; + struct promote_entry *entry, *newentry; + + nvp = NULL; + err = 0; + bdd = (struct be_destroy_data *)data; + + if (be_should_promote_clones(zfs_hdl, bdd) && + (nvl = zfs_get_clones_nvl(zfs_hdl)) != NULL) { + while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) { + name = nvpair_name(nvp); + + /* + * Skip if the clone is equal to, or a child of, the + * destroy target. + */ + if (strncmp(name, bdd->target_name, + strlen(bdd->target_name)) == 0 || + strstr(name, bdd->target_name) == name) { + continue; + } + + found = false; + SLIST_FOREACH(entry, &bdd->promotelist, link) { + if (strcmp(entry->name, name) == 0) { + found = true; + break; + } + } + + if (found) + continue; + + newentry = malloc(sizeof(struct promote_entry)); + if (newentry == NULL) { + err = ENOMEM; + break; + } + +#define BE_COPY_NAME(entry, src) \ + strlcpy((entry)->name, (src), sizeof((entry)->name)) + if (BE_COPY_NAME(newentry, name) >= + sizeof(newentry->name)) { + /* Shouldn't happen. */ + free(newentry); + err = ENAMETOOLONG; + break; + } +#undef BE_COPY_NAME + + /* + * We're building up a SLIST here to make sure both that + * we get the order right and so that we don't + * inadvertently observe the wrong state by promoting + * datasets while we're still walking the tree. The + * latter can lead to situations where we promote a BE + * then effectively demote it again. + */ + SLIST_INSERT_HEAD(&bdd->promotelist, newentry, link); + } + nvlist_free(nvl); + } + zfs_close(zfs_hdl); + return (err); +} + +/* + * This is called before a destroy, so that any datasets(environments) that are + * dependent on this one get promoted before destroying the target. + */ +static int +be_promote_dependent_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + int err; + zfs_handle_t *clone; + struct promote_entry *entry; + + snprintf(bdd->target_name, BE_MAXPATHLEN, "%s/", zfs_get_name(zfs_hdl)); + err = zfs_iter_dependents(zfs_hdl, true, be_dependent_clone_cb, bdd); + + /* + * Drain the list and walk away from it if we're only deleting a + * snapshot. + */ + if (bdd->snapname != NULL && !SLIST_EMPTY(&bdd->promotelist)) + err = BE_ERR_HASCLONES; + while (!SLIST_EMPTY(&bdd->promotelist)) { + entry = SLIST_FIRST(&bdd->promotelist); + SLIST_REMOVE_HEAD(&bdd->promotelist, link); + +#define ZFS_GRAB_CLONE() \ + zfs_open(bdd->lbh->lzh, entry->name, ZFS_TYPE_FILESYSTEM) + /* + * Just skip this part on error, we still want to clean up the + * promotion list after the first error. We'll then preserve it + * all the way back. + */ + if (err == 0 && (clone = ZFS_GRAB_CLONE()) != NULL) { + err = zfs_promote(clone); + if (err != 0) + err = BE_ERR_DESTROYMNT; + zfs_close(clone); + } +#undef ZFS_GRAB_CLONE + free(entry); + } + + return (err); +} + +static int be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) { char path[BE_MAXPATHLEN]; @@ -239,8 +392,9 @@ be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) * BE_DESTROY_FORCE : forces operation on mounted datasets * BE_DESTROY_ORIGIN: destroy the origin snapshot as well */ -int -be_destroy(libbe_handle_t *lbh, const char *name, int options) +static int +be_destroy_internal(libbe_handle_t *lbh, const char *name, int options, + bool odestroyer) { struct be_destroy_data bdd; char origin[BE_MAXPATHLEN], path[BE_MAXPATHLEN]; @@ -251,6 +405,7 @@ be_destroy(libbe_handle_t *lbh, const char *name, int bdd.lbh = lbh; bdd.snapname = NULL; + SLIST_INIT(&bdd.promotelist); force = options & BE_DESTROY_FORCE; *origin = '\0'; @@ -268,25 +423,6 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (fs == NULL) return (set_error(lbh, BE_ERR_ZFSOPEN)); - if ((options & BE_DESTROY_WANTORIGIN) != 0 && - zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), - NULL, NULL, 0, 1) != 0 && - (options & BE_DESTROY_ORIGIN) != 0) - return (set_error(lbh, BE_ERR_NOORIGIN)); - - /* - * If the caller wants auto-origin destruction and the origin - * name matches one of our automatically created snapshot names - * (i.e. strftime("%F-%T") with a serial at the end), then - * we'll set the DESTROY_ORIGIN flag and nuke it - * be_is_auto_snapshot_name is exported from libbe(3) so that - * the caller can determine if it needs to warn about the origin - * not being destroyed or not. - */ - if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && - be_is_auto_snapshot_name(lbh, origin)) - options |= BE_DESTROY_ORIGIN; - /* Don't destroy a mounted dataset unless force is specified */ if ((mounted = zfs_is_mounted(fs, NULL)) != 0) { if (force) { @@ -297,6 +433,14 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } } else { + /* + * If we're initially destroying a snapshot, origin options do + * not make sense. If we're destroying the origin snapshot of + * a BE, we want to maintain the options in case we need to + * fake success after failing to promote. + */ + if (!odestroyer) + options &= ~BE_DESTROY_WANTORIGIN; if (!zfs_dataset_exists(lbh->lzh, path, ZFS_TYPE_SNAPSHOT)) return (set_error(lbh, BE_ERR_NOENT)); @@ -311,6 +455,49 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } + /* + * Whether we're destroying a BE or a single snapshot, we need to walk + * the tree of what we're going to destroy and promote everything in our + * path so that we can make it happen. + */ + if ((err = be_promote_dependent_clones(fs, &bdd)) != 0) { + free(bdd.snapname); + + /* + * If we're just destroying the origin of some other dataset + * we were invoked to destroy, then we just ignore + * BE_ERR_HASCLONES and return success unless the caller wanted + * to force the issue. + */ + if (odestroyer && err == BE_ERR_HASCLONES && + (options & BE_DESTROY_AUTOORIGIN) != 0) + return (0); + return (set_error(lbh, err)); + } + + /* + * This was deferred until after we promote all of the derivatives so + * that we grab the new origin after everything's settled down. + */ + if ((options & BE_DESTROY_WANTORIGIN) != 0 && + zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), + NULL, NULL, 0, 1) != 0 && + (options & BE_DESTROY_ORIGIN) != 0) + return (set_error(lbh, BE_ERR_NOORIGIN)); + + /* + * If the caller wants auto-origin destruction and the origin + * name matches one of our automatically created snapshot names + * (i.e. strftime("%F-%T") with a serial at the end), then + * we'll set the DESTROY_ORIGIN flag and nuke it + * be_is_auto_snapshot_name is exported from libbe(3) so that + * the caller can determine if it needs to warn about the origin + * not being destroyed or not. + */ + if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && + be_is_auto_snapshot_name(lbh, origin)) + options |= BE_DESTROY_ORIGIN; + err = be_destroy_cb(fs, &bdd); zfs_close(fs); free(bdd.snapname); @@ -337,8 +524,23 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (strncmp(origin, lbh->root, rootlen) != 0 || origin[rootlen] != '/') return (0); - return (be_destroy(lbh, origin + rootlen + 1, - options & ~BE_DESTROY_ORIGIN)); + return (be_destroy_internal(lbh, origin + rootlen + 1, + options & ~BE_DESTROY_ORIGIN, true)); +} + +int +be_destroy(libbe_handle_t *lbh, const char *name, int options) +{ + + /* + * The consumer must not set both BE_DESTROY_AUTOORIGIN and + * BE_DESTROY_ORIGIN. Internally, we'll set the latter from the former. + * The latter should imply that we must succeed at destroying the + * origin, or complain otherwise. + */ + if ((options & BE_DESTROY_WANTORIGIN) == BE_DESTROY_WANTORIGIN) + return (set_error(lbh, BE_ERR_UNKNOWN)); + return (be_destroy_internal(lbh, name, options, false)); } static void Modified: stable/11/lib/libbe/be.h ============================================================================== --- stable/11/lib/libbe/be.h Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/lib/libbe/be.h Fri Jan 10 03:37:52 2020 (r356593) @@ -60,6 +60,7 @@ typedef enum be_error { BE_ERR_NOMEM, /* insufficient memory */ BE_ERR_UNKNOWN, /* unknown error */ BE_ERR_INVORIGIN, /* invalid origin */ + BE_ERR_HASCLONES, /* snapshot has clones */ } be_error_t; Modified: stable/11/lib/libbe/be_error.c ============================================================================== --- stable/11/lib/libbe/be_error.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/lib/libbe/be_error.c Fri Jan 10 03:37:52 2020 (r356593) @@ -108,6 +108,9 @@ libbe_error_description(libbe_handle_t *lbh) case BE_ERR_INVORIGIN: return ("invalid origin"); + case BE_ERR_HASCLONES: + return ("snapshot has clones"); + default: assert(lbh->error == BE_ERR_SUCCESS); return ("no error"); Modified: stable/11/sbin/bectl/tests/bectl_test.sh ============================================================================== --- stable/11/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:37:52 2020 (r356593) @@ -162,6 +162,51 @@ bectl_destroy_body() atf_check bectl -r ${zpool}/ROOT create -e default default3 atf_check bectl -r ${zpool}/ROOT destroy -o default3 atf_check bectl -r ${zpool}/ROOT unmount default + + # create two be from the same parent and destroy the parent + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create -e default default3 + atf_check bectl -r ${zpool}/ROOT destroy default + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT rename default3 default + + # Create a BE, have it be the parent for another and repeat, then start + # deleting environments. Arbitrarily chose default3 as the first. + # Sleeps are required to prevent conflicting snapshots- libbe will + # use the time with a serial at the end as needed to prevent collisions, + # but as BEs get promoted the snapshot names will convert and conflict + # anyways. libbe should perhaps consider adding something extra to the + # default name to prevent collisions like this, but the default name + # includes down to the second and creating BEs this rapidly is perhaps + # uncommon enough. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default2 default3 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default3 default4 + atf_check bectl -r ${zpool}/ROOT destroy default3 + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT destroy default4 + + # Create two BEs, then create an unrelated snapshot on the originating + # BE and destroy it. We shouldn't have promoted the second BE, and it's + # only possible to tell if we promoted it by making sure we didn't + # demote the first BE at some point -- if we did, it's origin will no + # longer be empty. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create default@test + + atf_check bectl -r ${zpool}/ROOT destroy default@test + atf_check -o inline:"-\n" zfs get -Ho value origin ${zpool}/ROOT/default + atf_check bectl -r ${zpool}/ROOT destroy default2 + + # As observed by beadm, if we explicitly try to destroy a snapshot that + # leads to clones, we shouldn't have allowed it. + atf_check bectl -r ${zpool}/ROOT create default@test + atf_check bectl -r ${zpool}/ROOT create -e default@test default2 + + atf_check -e not-empty -s not-exit:0 bectl -r ${zpool}/ROOT destroy \ + default@test } bectl_destroy_cleanup() { From owner-svn-src-all@freebsd.org Fri Jan 10 03:37:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 51431222685; Fri, 10 Jan 2020 03:37:54 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v7wf2D59z46fP; Fri, 10 Jan 2020 03:37:54 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47416BDC0; Fri, 10 Jan 2020 03:37:54 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3bsKT020410; Fri, 10 Jan 2020 03:37:54 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3brcY020405; Fri, 10 Jan 2020 03:37:53 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001100337.00A3brcY020405@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 03:37:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356593 - in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Commit-Revision: 356593 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:37:54 -0000 Author: kevans Date: Fri Jan 10 03:37:52 2020 New Revision: 356593 URL: https://svnweb.freebsd.org/changeset/base/356593 Log: MFC r356279: libbe(3): promote dependent clones when destroying a BE When removing a boot environment iterate over the dependents and process the snapshots by grabbing any clones. Promote the clones we found and then remove the target environment. This fixes the ability to destroy a boot environment when it has been used to spawn one or more other boot environments. PR: 242592 Modified: stable/12/lib/libbe/be.c stable/12/lib/libbe/be.h stable/12/lib/libbe/be_error.c stable/12/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libbe/be.c stable/11/lib/libbe/be.h stable/11/lib/libbe/be_error.c stable/11/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libbe/be.c ============================================================================== --- stable/12/lib/libbe/be.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/lib/libbe/be.c Fri Jan 10 03:37:52 2020 (r356593) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include - +#include #include #include @@ -48,9 +48,16 @@ __FBSDID("$FreeBSD$"); #include "be.h" #include "be_impl.h" +struct promote_entry { + char name[BE_MAXPATHLEN]; + SLIST_ENTRY(promote_entry) link; +}; + struct be_destroy_data { - libbe_handle_t *lbh; - char *snapname; + libbe_handle_t *lbh; + char target_name[BE_MAXPATHLEN]; + char *snapname; + SLIST_HEAD(, promote_entry) promotelist; }; #if SOON @@ -194,7 +201,153 @@ be_nicenum(uint64_t num, char *buf, size_t buflen) zfs_nicenum(num, buf, buflen); } +static bool +be_should_promote_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + char *atpos; + + if (zfs_get_type(zfs_hdl) != ZFS_TYPE_SNAPSHOT) + return (false); + + /* + * If we're deleting a snapshot, we need to make sure we only promote + * clones that are derived from one of the snapshots we're deleting, + * rather than that of a snapshot we're not touching. This keeps stuff + * in a consistent state, making sure that we don't error out unless + * we really need to. + */ + if (bdd->snapname == NULL) + return (true); + + atpos = strchr(zfs_get_name(zfs_hdl), '@'); + return (strcmp(atpos + 1, bdd->snapname) == 0); +} + +/* + * This is executed from be_promote_dependent_clones via zfs_iter_dependents, + * It checks if the dependent type is a snapshot then attempts to find any + * clones associated with it. Any clones not related to the destroy target are + * added to the promote list. + */ static int +be_dependent_clone_cb(zfs_handle_t *zfs_hdl, void *data) +{ + int err; + bool found; + char *name; + struct nvlist *nvl; + struct nvpair *nvp; + struct be_destroy_data *bdd; + struct promote_entry *entry, *newentry; + + nvp = NULL; + err = 0; + bdd = (struct be_destroy_data *)data; + + if (be_should_promote_clones(zfs_hdl, bdd) && + (nvl = zfs_get_clones_nvl(zfs_hdl)) != NULL) { + while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) { + name = nvpair_name(nvp); + + /* + * Skip if the clone is equal to, or a child of, the + * destroy target. + */ + if (strncmp(name, bdd->target_name, + strlen(bdd->target_name)) == 0 || + strstr(name, bdd->target_name) == name) { + continue; + } + + found = false; + SLIST_FOREACH(entry, &bdd->promotelist, link) { + if (strcmp(entry->name, name) == 0) { + found = true; + break; + } + } + + if (found) + continue; + + newentry = malloc(sizeof(struct promote_entry)); + if (newentry == NULL) { + err = ENOMEM; + break; + } + +#define BE_COPY_NAME(entry, src) \ + strlcpy((entry)->name, (src), sizeof((entry)->name)) + if (BE_COPY_NAME(newentry, name) >= + sizeof(newentry->name)) { + /* Shouldn't happen. */ + free(newentry); + err = ENAMETOOLONG; + break; + } +#undef BE_COPY_NAME + + /* + * We're building up a SLIST here to make sure both that + * we get the order right and so that we don't + * inadvertently observe the wrong state by promoting + * datasets while we're still walking the tree. The + * latter can lead to situations where we promote a BE + * then effectively demote it again. + */ + SLIST_INSERT_HEAD(&bdd->promotelist, newentry, link); + } + nvlist_free(nvl); + } + zfs_close(zfs_hdl); + return (err); +} + +/* + * This is called before a destroy, so that any datasets(environments) that are + * dependent on this one get promoted before destroying the target. + */ +static int +be_promote_dependent_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + int err; + zfs_handle_t *clone; + struct promote_entry *entry; + + snprintf(bdd->target_name, BE_MAXPATHLEN, "%s/", zfs_get_name(zfs_hdl)); + err = zfs_iter_dependents(zfs_hdl, true, be_dependent_clone_cb, bdd); + + /* + * Drain the list and walk away from it if we're only deleting a + * snapshot. + */ + if (bdd->snapname != NULL && !SLIST_EMPTY(&bdd->promotelist)) + err = BE_ERR_HASCLONES; + while (!SLIST_EMPTY(&bdd->promotelist)) { + entry = SLIST_FIRST(&bdd->promotelist); + SLIST_REMOVE_HEAD(&bdd->promotelist, link); + +#define ZFS_GRAB_CLONE() \ + zfs_open(bdd->lbh->lzh, entry->name, ZFS_TYPE_FILESYSTEM) + /* + * Just skip this part on error, we still want to clean up the + * promotion list after the first error. We'll then preserve it + * all the way back. + */ + if (err == 0 && (clone = ZFS_GRAB_CLONE()) != NULL) { + err = zfs_promote(clone); + if (err != 0) + err = BE_ERR_DESTROYMNT; + zfs_close(clone); + } +#undef ZFS_GRAB_CLONE + free(entry); + } + + return (err); +} + +static int be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) { char path[BE_MAXPATHLEN]; @@ -239,8 +392,9 @@ be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) * BE_DESTROY_FORCE : forces operation on mounted datasets * BE_DESTROY_ORIGIN: destroy the origin snapshot as well */ -int -be_destroy(libbe_handle_t *lbh, const char *name, int options) +static int +be_destroy_internal(libbe_handle_t *lbh, const char *name, int options, + bool odestroyer) { struct be_destroy_data bdd; char origin[BE_MAXPATHLEN], path[BE_MAXPATHLEN]; @@ -251,6 +405,7 @@ be_destroy(libbe_handle_t *lbh, const char *name, int bdd.lbh = lbh; bdd.snapname = NULL; + SLIST_INIT(&bdd.promotelist); force = options & BE_DESTROY_FORCE; *origin = '\0'; @@ -268,25 +423,6 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (fs == NULL) return (set_error(lbh, BE_ERR_ZFSOPEN)); - if ((options & BE_DESTROY_WANTORIGIN) != 0 && - zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), - NULL, NULL, 0, 1) != 0 && - (options & BE_DESTROY_ORIGIN) != 0) - return (set_error(lbh, BE_ERR_NOORIGIN)); - - /* - * If the caller wants auto-origin destruction and the origin - * name matches one of our automatically created snapshot names - * (i.e. strftime("%F-%T") with a serial at the end), then - * we'll set the DESTROY_ORIGIN flag and nuke it - * be_is_auto_snapshot_name is exported from libbe(3) so that - * the caller can determine if it needs to warn about the origin - * not being destroyed or not. - */ - if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && - be_is_auto_snapshot_name(lbh, origin)) - options |= BE_DESTROY_ORIGIN; - /* Don't destroy a mounted dataset unless force is specified */ if ((mounted = zfs_is_mounted(fs, NULL)) != 0) { if (force) { @@ -297,6 +433,14 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } } else { + /* + * If we're initially destroying a snapshot, origin options do + * not make sense. If we're destroying the origin snapshot of + * a BE, we want to maintain the options in case we need to + * fake success after failing to promote. + */ + if (!odestroyer) + options &= ~BE_DESTROY_WANTORIGIN; if (!zfs_dataset_exists(lbh->lzh, path, ZFS_TYPE_SNAPSHOT)) return (set_error(lbh, BE_ERR_NOENT)); @@ -311,6 +455,49 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } + /* + * Whether we're destroying a BE or a single snapshot, we need to walk + * the tree of what we're going to destroy and promote everything in our + * path so that we can make it happen. + */ + if ((err = be_promote_dependent_clones(fs, &bdd)) != 0) { + free(bdd.snapname); + + /* + * If we're just destroying the origin of some other dataset + * we were invoked to destroy, then we just ignore + * BE_ERR_HASCLONES and return success unless the caller wanted + * to force the issue. + */ + if (odestroyer && err == BE_ERR_HASCLONES && + (options & BE_DESTROY_AUTOORIGIN) != 0) + return (0); + return (set_error(lbh, err)); + } + + /* + * This was deferred until after we promote all of the derivatives so + * that we grab the new origin after everything's settled down. + */ + if ((options & BE_DESTROY_WANTORIGIN) != 0 && + zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), + NULL, NULL, 0, 1) != 0 && + (options & BE_DESTROY_ORIGIN) != 0) + return (set_error(lbh, BE_ERR_NOORIGIN)); + + /* + * If the caller wants auto-origin destruction and the origin + * name matches one of our automatically created snapshot names + * (i.e. strftime("%F-%T") with a serial at the end), then + * we'll set the DESTROY_ORIGIN flag and nuke it + * be_is_auto_snapshot_name is exported from libbe(3) so that + * the caller can determine if it needs to warn about the origin + * not being destroyed or not. + */ + if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && + be_is_auto_snapshot_name(lbh, origin)) + options |= BE_DESTROY_ORIGIN; + err = be_destroy_cb(fs, &bdd); zfs_close(fs); free(bdd.snapname); @@ -337,8 +524,23 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (strncmp(origin, lbh->root, rootlen) != 0 || origin[rootlen] != '/') return (0); - return (be_destroy(lbh, origin + rootlen + 1, - options & ~BE_DESTROY_ORIGIN)); + return (be_destroy_internal(lbh, origin + rootlen + 1, + options & ~BE_DESTROY_ORIGIN, true)); +} + +int +be_destroy(libbe_handle_t *lbh, const char *name, int options) +{ + + /* + * The consumer must not set both BE_DESTROY_AUTOORIGIN and + * BE_DESTROY_ORIGIN. Internally, we'll set the latter from the former. + * The latter should imply that we must succeed at destroying the + * origin, or complain otherwise. + */ + if ((options & BE_DESTROY_WANTORIGIN) == BE_DESTROY_WANTORIGIN) + return (set_error(lbh, BE_ERR_UNKNOWN)); + return (be_destroy_internal(lbh, name, options, false)); } static void Modified: stable/12/lib/libbe/be.h ============================================================================== --- stable/12/lib/libbe/be.h Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/lib/libbe/be.h Fri Jan 10 03:37:52 2020 (r356593) @@ -60,6 +60,7 @@ typedef enum be_error { BE_ERR_NOMEM, /* insufficient memory */ BE_ERR_UNKNOWN, /* unknown error */ BE_ERR_INVORIGIN, /* invalid origin */ + BE_ERR_HASCLONES, /* snapshot has clones */ } be_error_t; Modified: stable/12/lib/libbe/be_error.c ============================================================================== --- stable/12/lib/libbe/be_error.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/lib/libbe/be_error.c Fri Jan 10 03:37:52 2020 (r356593) @@ -108,6 +108,9 @@ libbe_error_description(libbe_handle_t *lbh) case BE_ERR_INVORIGIN: return ("invalid origin"); + case BE_ERR_HASCLONES: + return ("snapshot has clones"); + default: assert(lbh->error == BE_ERR_SUCCESS); return ("no error"); Modified: stable/12/sbin/bectl/tests/bectl_test.sh ============================================================================== --- stable/12/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:37:52 2020 (r356593) @@ -162,6 +162,51 @@ bectl_destroy_body() atf_check bectl -r ${zpool}/ROOT create -e default default3 atf_check bectl -r ${zpool}/ROOT destroy -o default3 atf_check bectl -r ${zpool}/ROOT unmount default + + # create two be from the same parent and destroy the parent + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create -e default default3 + atf_check bectl -r ${zpool}/ROOT destroy default + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT rename default3 default + + # Create a BE, have it be the parent for another and repeat, then start + # deleting environments. Arbitrarily chose default3 as the first. + # Sleeps are required to prevent conflicting snapshots- libbe will + # use the time with a serial at the end as needed to prevent collisions, + # but as BEs get promoted the snapshot names will convert and conflict + # anyways. libbe should perhaps consider adding something extra to the + # default name to prevent collisions like this, but the default name + # includes down to the second and creating BEs this rapidly is perhaps + # uncommon enough. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default2 default3 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default3 default4 + atf_check bectl -r ${zpool}/ROOT destroy default3 + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT destroy default4 + + # Create two BEs, then create an unrelated snapshot on the originating + # BE and destroy it. We shouldn't have promoted the second BE, and it's + # only possible to tell if we promoted it by making sure we didn't + # demote the first BE at some point -- if we did, it's origin will no + # longer be empty. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create default@test + + atf_check bectl -r ${zpool}/ROOT destroy default@test + atf_check -o inline:"-\n" zfs get -Ho value origin ${zpool}/ROOT/default + atf_check bectl -r ${zpool}/ROOT destroy default2 + + # As observed by beadm, if we explicitly try to destroy a snapshot that + # leads to clones, we shouldn't have allowed it. + atf_check bectl -r ${zpool}/ROOT create default@test + atf_check bectl -r ${zpool}/ROOT create -e default@test default2 + + atf_check -e not-empty -s not-exit:0 bectl -r ${zpool}/ROOT destroy \ + default@test } bectl_destroy_cleanup() { From owner-svn-src-all@freebsd.org Fri Jan 10 03:46:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7DF22222AA4; Fri, 10 Jan 2020 03:46:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v8772mVkz47M7; Fri, 10 Jan 2020 03:46:59 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5A478BFBD; Fri, 10 Jan 2020 03:46:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3kx4n026200; Fri, 10 Jan 2020 03:46:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3kx3o026199; Fri, 10 Jan 2020 03:46:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001100346.00A3kx3o026199@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 03:46:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356594 - stable/12/lib/csu/mips X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/lib/csu/mips X-SVN-Commit-Revision: 356594 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:46:59 -0000 Author: kevans Date: Fri Jan 10 03:46:58 2020 New Revision: 356594 URL: https://svnweb.freebsd.org/changeset/base/356594 Log: MFC r356327-r356328: mips: csu: fix compilation w/ LLVM r356327: mips: csu: fix compilation w/ LLVM GCC issues the warning, but with LLVM it is fatal- no matching .cprestore with .cpload. Reserve some place on the stack and and add the proper .cprestore to pair it with. nop added in the !o32 branch to fill out delay slot instruction, just in case. r356328: mips !o32: fix csu build Modified: stable/12/lib/csu/mips/crt.h Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/csu/mips/crt.h ============================================================================== --- stable/12/lib/csu/mips/crt.h Fri Jan 10 03:37:52 2020 (r356593) +++ stable/12/lib/csu/mips/crt.h Fri Jan 10 03:46:58 2020 (r356594) @@ -34,10 +34,14 @@ "bal 1f \n" \ "nop \n" \ "1: \n" \ - ".cpload $ra \n" \ + ".cpload $ra \n" \ + "addu $sp, $sp, -8 \n" \ ".set reorder \n" \ + ".cprestore 4 \n" \ ".local " __STRING(func) "\n" \ - "jal " __STRING(func) + "jal " __STRING(func) "\n" \ + "nop \n" \ + "addu $sp, $sp, 8 \n" #else #define INIT_CALL_SEQ(func) \ ".set noreorder \n" \ @@ -47,7 +51,8 @@ ".set reorder \n" \ ".cpsetup $ra, $v0, 1b \n" \ ".local " __STRING(func) "\n" \ - "jal " __STRING(func) + "jal " __STRING(func) "\n" \ + "nop \n" #endif #endif From owner-svn-src-all@freebsd.org Fri Jan 10 04:13:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 65A1C2232D6; Fri, 10 Jan 2020 04:13:17 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v8jT24lbz48Xy; Fri, 10 Jan 2020 04:13:17 +0000 (UTC) (envelope-from jhibbits@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4216DC549; Fri, 10 Jan 2020 04:13:17 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A4DHRA044055; Fri, 10 Jan 2020 04:13:17 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A4DH8Q044054; Fri, 10 Jan 2020 04:13:17 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202001100413.00A4DH8Q044054@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 10 Jan 2020 04:13:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356595 - head/sys/powerpc/aim X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/aim X-SVN-Commit-Revision: 356595 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 04:13:17 -0000 Author: jhibbits Date: Fri Jan 10 04:13:16 2020 New Revision: 356595 URL: https://svnweb.freebsd.org/changeset/base/356595 Log: powerpc: Prevent infinite loop in moea_sync_icache() This applies r344049 to the 32-bit pmap. Reported by: Mark Millard Modified: head/sys/powerpc/aim/mmu_oea.c Modified: head/sys/powerpc/aim/mmu_oea.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea.c Fri Jan 10 03:46:58 2020 (r356594) +++ head/sys/powerpc/aim/mmu_oea.c Fri Jan 10 04:13:16 2020 (r356595) @@ -2684,7 +2684,7 @@ moea_sync_icache(mmu_t mmu, pmap_t pm, vm_offset_t va, PMAP_LOCK(pm); while (sz > 0) { - lim = round_page(va); + lim = round_page(va + 1); len = MIN(lim - va, sz); pvo = moea_pvo_find_va(pm, va & ~ADDR_POFF, NULL); if (pvo != NULL) { From owner-svn-src-all@freebsd.org Fri Jan 10 08:54:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4EE2D1E086B; Fri, 10 Jan 2020 08:54:47 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vGyH14rsz4MPN; Fri, 10 Jan 2020 08:54:47 +0000 (UTC) (envelope-from melifaro@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 094BEF8A6; Fri, 10 Jan 2020 08:54:47 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A8skfA009960; Fri, 10 Jan 2020 08:54:46 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A8skK6009959; Fri, 10 Jan 2020 08:54:46 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <202001100854.00A8skK6009959@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Fri, 10 Jan 2020 08:54:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356596 - head/tests/sys/net/routing X-SVN-Group: head X-SVN-Commit-Author: melifaro X-SVN-Commit-Paths: head/tests/sys/net/routing X-SVN-Commit-Revision: 356596 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 08:54:47 -0000 Author: melifaro Date: Fri Jan 10 08:54:46 2020 New Revision: 356596 URL: https://svnweb.freebsd.org/changeset/base/356596 Log: Include human-readable list of rtm flags along with bitmask in error messages for rtsock tests. MFC after: 2 weeks Modified: head/tests/sys/net/routing/rtsock_print.h head/tests/sys/net/routing/test_rtsock_l3.c Modified: head/tests/sys/net/routing/rtsock_print.h ============================================================================== --- head/tests/sys/net/routing/rtsock_print.h Fri Jan 10 04:13:16 2020 (r356595) +++ head/tests/sys/net/routing/rtsock_print.h Fri Jan 10 08:54:46 2020 (r356596) @@ -132,7 +132,15 @@ rtsock_print_cmdtype(int cmd) return (msgtypes[cmd]); } +char * +rtsock_print_rtm_flags(char *buf, int buflen, int rtm_flags) +{ + _printb(buf, buflen, rtm_flags, routeflags); + return (buf); +} + + #define _PRINTX(fmt, ...) do { \ one_len = snprintf(ptr, rem_len, fmt, __VA_ARGS__); \ ptr += one_len; \ @@ -262,7 +270,7 @@ rtsock_print_rtm(struct rt_msghdr *rtm) printf("Got message of size %hu on %s\n", rtm->rtm_msglen, buf); char flags_buf[256]; - _printb(flags_buf, sizeof(flags_buf), rtm->rtm_flags, routeflags); + rtsock_print_rtm_flags(flags_buf, sizeof(flags_buf), rtm->rtm_flags); printf("%s: len %hu, pid: %d, seq %d, errno %d, flags: %s\n", msgtypes[rtm->rtm_type], rtm->rtm_msglen, rtm->rtm_pid, rtm->rtm_seq, rtm->rtm_errno, flags_buf); Modified: head/tests/sys/net/routing/test_rtsock_l3.c ============================================================================== --- head/tests/sys/net/routing/test_rtsock_l3.c Fri Jan 10 04:13:16 2020 (r356595) +++ head/tests/sys/net/routing/test_rtsock_l3.c Fri Jan 10 08:54:46 2020 (r356596) @@ -196,8 +196,18 @@ verify_route_message_extra(struct rt_msghdr *rtm, int RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_index == ifindex, "expected ifindex %d, got %d", ifindex, rtm->rtm_index); - RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_flags == rtm_flags, - "expected flags: 0x%X, got 0x%X", rtm_flags, rtm->rtm_flags); + if (rtm->rtm_flags != rtm_flags) { + char got_flags[64], expected_flags[64]; + rtsock_print_rtm_flags(got_flags, sizeof(got_flags), + rtm->rtm_flags); + rtsock_print_rtm_flags(expected_flags, sizeof(expected_flags), + rtm_flags); + + RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_flags == rtm_flags, + "expected flags: 0x%X %s, got 0x%X %s", + rtm_flags, expected_flags, + rtm->rtm_flags, got_flags); + } } static void From owner-svn-src-all@freebsd.org Fri Jan 10 09:07:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C69841E11E6; Fri, 10 Jan 2020 09:07:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vHFC4v7tz4N7l; Fri, 10 Jan 2020 09:07:43 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9E79BFA96; Fri, 10 Jan 2020 09:07:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A97hxC016473; Fri, 10 Jan 2020 09:07:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A97h5N016472; Fri, 10 Jan 2020 09:07:43 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001100907.00A97h5N016472@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 10 Jan 2020 09:07:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356597 - head/sys/dev/usb/controller X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/usb/controller X-SVN-Commit-Revision: 356597 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 09:07:43 -0000 Author: hselasky Date: Fri Jan 10 09:07:43 2020 New Revision: 356597 URL: https://svnweb.freebsd.org/changeset/base/356597 Log: Define the XHCI endpoint states. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/usb/controller/xhci.h Modified: head/sys/dev/usb/controller/xhci.h ============================================================================== --- head/sys/dev/usb/controller/xhci.h Fri Jan 10 08:54:46 2020 (r356596) +++ head/sys/dev/usb/controller/xhci.h Fri Jan 10 09:07:43 2020 (r356597) @@ -115,6 +115,14 @@ struct xhci_endp_ctx { volatile uint32_t dwEpCtx0; #define XHCI_EPCTX_0_EPSTATE_SET(x) ((x) & 0x7) #define XHCI_EPCTX_0_EPSTATE_GET(x) ((x) & 0x7) +#define XHCI_EPCTX_0_EPSTATE_DISABLED 0 +#define XHCI_EPCTX_0_EPSTATE_RUNNING 1 +#define XHCI_EPCTX_0_EPSTATE_HALTED 2 +#define XHCI_EPCTX_0_EPSTATE_STOPPED 3 +#define XHCI_EPCTX_0_EPSTATE_ERROR 4 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_5 5 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_6 6 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_7 7 #define XHCI_EPCTX_0_MULT_SET(x) (((x) & 0x3) << 8) #define XHCI_EPCTX_0_MULT_GET(x) (((x) >> 8) & 0x3) #define XHCI_EPCTX_0_MAXP_STREAMS_SET(x) (((x) & 0x1F) << 10) From owner-svn-src-all@freebsd.org Fri Jan 10 09:32:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2A0481E1C45; Fri, 10 Jan 2020 09:32:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vHp50MLLz4PQt; Fri, 10 Jan 2020 09:32:45 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 07BFC18021; Fri, 10 Jan 2020 09:32:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A9Wi91033786; Fri, 10 Jan 2020 09:32:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A9Wis9033785; Fri, 10 Jan 2020 09:32:44 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001100932.00A9Wis9033785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 10 Jan 2020 09:32:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356598 - head/sys/dev/usb/controller X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/usb/controller X-SVN-Commit-Revision: 356598 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 09:32:45 -0000 Author: hselasky Date: Fri Jan 10 09:32:44 2020 New Revision: 356598 URL: https://svnweb.freebsd.org/changeset/base/356598 Log: Check the XHCI endpoint state before stopping any endpoint. This avoids getting the XHCI_TRB_ERROR_CONTEXT_STATE error code from the XHCI controller when the endpoint is disabled or already stopped. Suggested by: Shichun.Ma@dell.com MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/usb/controller/xhci.c Modified: head/sys/dev/usb/controller/xhci.c ============================================================================== --- head/sys/dev/usb/controller/xhci.c Fri Jan 10 09:07:43 2020 (r356597) +++ head/sys/dev/usb/controller/xhci.c Fri Jan 10 09:32:44 2020 (r356598) @@ -1598,10 +1598,26 @@ static usb_error_t xhci_cmd_stop_ep(struct xhci_softc *sc, uint8_t suspend, uint8_t ep_id, uint8_t slot_id) { + struct usb_page_search buf_dev; + struct xhci_dev_ctx *pdev; struct xhci_trb trb; uint32_t temp; DPRINTF("\n"); + + usbd_get_page(&sc->sc_hw.devs[slot_id].device_pc, 0, &buf_dev); + pdev = buf_dev.buffer; + usb_pc_cpu_invalidate(&sc->sc_hw.devs[slot_id].device_pc); + + switch (XHCI_EPCTX_0_EPSTATE_GET(pdev->ctx_ep[ep_id - 1].dwEpCtx0)) { + case XHCI_EPCTX_0_EPSTATE_DISABLED: + case XHCI_EPCTX_0_EPSTATE_STOPPED: + DPRINTF("Endpoint %u on slot %u is already stopped\n", + ep_id, slot_id); + return (USB_ERR_NORMAL_COMPLETION); + default: + break; + } trb.qwTrb0 = 0; trb.dwTrb2 = 0; From owner-svn-src-all@freebsd.org Fri Jan 10 09:50:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 09BD51E2264; Fri, 10 Jan 2020 09:50:45 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vJBq5XXmz4Q7F; Fri, 10 Jan 2020 09:50:43 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00A9oVXv019251 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 10 Jan 2020 09:50:35 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: bapt@FreeBSD.org Received: from [10.58.0.4] (dadv@[10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00A9oOGq005792 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 10 Jan 2020 16:50:24 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356566 - stable/11/contrib/smbfs/lib/smb To: Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org References: <202001091958.009Jw56r037444@repo.freebsd.org> From: Eugene Grosbein Message-ID: <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> Date: Fri, 10 Jan 2020 16:50:24 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <202001091958.009Jw56r037444@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS,T_DATE_IN_FUTURE_Q_PLUS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * 0.0 T_DATE_IN_FUTURE_Q_PLUS Date: is over 4 months after Received: * date * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47vJBq5XXmz4Q7F X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-3.85 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-1.75)[ip: (-4.78), ipnet: 2a01:4f8::/29(-2.45), asn: 24940(-1.50), country: DE(-0.02)]; R_SPF_PERMFAIL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 09:50:45 -0000 10.01.2020 2:58, Baptiste Daroussin wrote: > Author: bapt > Date: Thu Jan 9 19:58:05 2020 > New Revision: 356566 > URL: https://svnweb.freebsd.org/changeset/base/356566 > > Log: > MFC r356317 (by arrowd): > > mount_smbfs: Issue a warning when .nsmbrc section name contains lowercase characters. > > PR: 231656 > Approved by: bapt > Differential Revision: https://reviews.freebsd.org/D22289 > > Modified: > stable/11/contrib/smbfs/lib/smb/rcfile.c > Directory Properties: > stable/11/ (props changed) > > Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c > ============================================================================== > --- stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:56:25 2020 (r356565) > +++ stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:58:05 2020 (r356566) > @@ -156,11 +156,19 @@ static struct rcsection * > rc_addsect(struct rcfile *rcp, const char *sectname) > { > struct rcsection *p; > + const char* sectletter = sectname; > > p = rc_findsect(rcp, sectname); > if (p) return p; > p = malloc(sizeof(*p)); > if (!p) return NULL; > + for(sectletter = sectname; *sectletter; sectletter++) { > + if (islower(*sectletter)) { > + if (strcmp(sectname, "default")) > + dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); > + break; > + } > + } > p->rs_name = strdup(sectname); > SLIST_INIT(&p->rs_keys); > SLIST_INSERT_HEAD(&rcp->rf_sect, p, rs_next); This commit broke source upgrade path from 10.4-STABLE to stable/11: rcfile.c:168:5: error: implicit declaration of function 'dprintf' is invalid in C99 [-Werror,-Wimplicit-function-declaration] dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); ^ 1 error generated. From owner-svn-src-all@freebsd.org Fri Jan 10 11:43:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 35ECA1E4693; Fri, 10 Jan 2020 11:43:12 +0000 (UTC) (envelope-from david@catwhisker.org) Received: from mx.catwhisker.org (107-204-234-170.lightspeed.sntcca.sbcglobal.net [107.204.234.170]) (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 47vLhb0HCCz4VnV; Fri, 10 Jan 2020 11:43:10 +0000 (UTC) (envelope-from david@catwhisker.org) Received: from albert.catwhisker.org (localhost [127.0.0.1]) by albert.catwhisker.org (8.15.2/8.15.2) with ESMTP id 00ABh9kP075477; Fri, 10 Jan 2020 11:43:09 GMT (envelope-from david@albert.catwhisker.org) Received: (from david@localhost) by albert.catwhisker.org (8.15.2/8.15.2/Submit) id 00ABh9Sf075476; Fri, 10 Jan 2020 03:43:09 -0800 (PST) (envelope-from david) Date: Fri, 10 Jan 2020 03:43:09 -0800 From: David Wolfskill To: Baptiste Daroussin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r356566 - stable/11/contrib/smbfs/lib/smb Message-ID: <20200110114309.GA75442@albert.catwhisker.org> Mail-Followup-To: David Wolfskill , Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org References: <202001091958.009Jw56r037444@repo.freebsd.org> <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="BXVAT5kNtrzKuDFl" Content-Disposition: inline In-Reply-To: <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> X-Rspamd-Queue-Id: 47vLhb0HCCz4VnV X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of david@catwhisker.org designates 107.204.234.170 as permitted sender) smtp.mailfrom=david@catwhisker.org X-Spamd-Result: default: False [-6.81 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:107.204.234.170]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[catwhisker.org]; RCPT_COUNT_FIVE(0.00)[5]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-2.41)[ip: (-9.39), ipnet: 107.192.0.0/12(-4.70), asn: 7018(2.10), country: US(-0.05)]; SIGNED_PGP(-2.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:7018, ipnet:107.192.0.0/12, country:US]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 11:43:12 -0000 --BXVAT5kNtrzKuDFl Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 10, 2020 at 04:50:24PM +0700, Eugene Grosbein wrote: > 10.01.2020 2:58, Baptiste Daroussin wrote: >=20 > > Author: bapt > > Date: Thu Jan 9 19:58:05 2020 > > New Revision: 356566 > > URL: https://svnweb.freebsd.org/changeset/base/356566 > > ...=20 > This commit broke source upgrade path from 10.4-STABLE to stable/11: >=20 > rcfile.c:168:5: error: implicit declaration of function 'dprintf' is inva= lid in C99 [-Werror,-Wimplicit-function-declaration] > dprintf(STDERR_FILENO, "warning: section = name [%s] contains lower-case letters\n", sectname); > ^ > 1 error generated. > .... I got the same error (on two separate machines) attempting an in-place src update from stable/11 @r356547 to r356593. Peace, david --=20 David H. Wolfskill david@catwhisker.org At least Trump can count on McConnell and Putin to "have his back." And the rest of us can consider what that means about each of them. See http://www.catwhisker.org/~david/publickey.gpg for my public key. --BXVAT5kNtrzKuDFl Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE4owz2QxMJyaxAefyQLJg+bY2PckFAl4YY01fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUy OEMzM0Q5MEM0QzI3MjZCMTAxRTdGMjQwQjI2MEY5QjYzNjNEQzkACgkQQLJg+bY2 PclEKgf9EKs2AdjaEkIRfkqFjbKW1jXXX7IZo54zFFV2LiDmFXx3aShPVvB1gWxz OA+eCEPrPuwX7QQkPXebV9YP/xZuwsxphXzxcc44DLSlhSRdVJJD1VYOz6EKZgSl ppDfNl0wv6nHKKPnOgj9EGd6goboOD8fixKnVmgxy1FIrzDquTRDQaRcXTerX3Tf 7VKszMJUz5gNUHSNS47xOrcGI59UVoc4iuerStktcWv35qNNl7bSjbvLX1lRRGbn zvSg7nZTDrP7pb4HCWu47Wmb7zZWKZ8lhgQY4Fji0vrv/vxb46iT5HyyYTduF/AK X2JvEFO89RcqZHeZi96PAaJ3MroFAA== =AuaK -----END PGP SIGNATURE----- --BXVAT5kNtrzKuDFl-- From owner-svn-src-all@freebsd.org Fri Jan 10 11:57:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 317501E49D8; Fri, 10 Jan 2020 11:57:28 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-ua1-x92e.google.com (mail-ua1-x92e.google.com [IPv6:2607:f8b0:4864:20::92e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vM130jN8z4WGb; Fri, 10 Jan 2020 11:57:26 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: by mail-ua1-x92e.google.com with SMTP id 1so623855uao.1; Fri, 10 Jan 2020 03:57:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=H82LhaWb/w+1acWIgSJGPzDwXhN7UKkvJq274jti26U=; b=UKv4102vxJ+hUKtYnFQfq4yOlTL63xbHRz//XIzWvOsjDBlX/l/QC58txJm2bkkcEK DyXHCqrYmInYSPCHS55ij9g4c7Xp6TzxdsdYLUsPmTE1zS3MnJLYyEvVimoh5QImrD1J 4NnDuPFMJDlKl98NBaunzUEIt3JTXNrKVbGb29J1Xq1qTMswmuXD2WP61FHJVLbSOUYE GiSWlIlkChoHp1EZqL9O1Krt457DU2hZjo58HjyA2VsUDSCY0nKQWafZJF8nuHxzLDjP Dl4hDwPnhPzi748IiNVNK0sCySbjwYK1pRiaXFpXonBd3YLmqHpiWgGlBJyVGNkTe3iQ bSkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=H82LhaWb/w+1acWIgSJGPzDwXhN7UKkvJq274jti26U=; b=JkBzZ4MyIUlPKJlRJg5xeLkE2sbe1VBVofz1OnxcjQonfFOS2SCDZLuHc1uFUFddix EpmP0tWJBo16X2dAozclpC1mw60cpKQ+JgsXuo68pHclKFepU+h8ELXN0fv2U6j1cxMq XtE5L0VWOEdghluIBX2gvlWaGamIu+ZPhSG9hJ/bbnwtQ6wTbzqIg0qJIkAC4GgaTkxZ CWiknUtlkWwq9lPVaQ62c4R5GWp5tOlR9uTYXra6aYAKImS3ylAOTV72sX/4cjOehNdL 0Emgef/LyAzXzW6eL001/pq1Yn0ZFYRpbjlh8VukUMsytwUhyHUo90s9fo9RyZeMwVm/ s+0w== X-Gm-Message-State: APjAAAWdqE+1nCqvGZMMkBrQvnjwJH594JY6gzZeG+4r9M4UcZzfvDHN 5VliGT5D5W/0GON7j0bz2ylXP7GnYZA1mTG0liWvtmNz X-Google-Smtp-Source: APXvYqyDmxyfRWoGQU05BLWO1Fbctov+1sMKmH9PZ0TG2sfe2CXq8PRhA11z+XZ19aztpsAC3AOzEcXBkZ5VKq5scSs= X-Received: by 2002:ab0:2b85:: with SMTP id q5mr1651846uar.24.1578657445545; Fri, 10 Jan 2020 03:57:25 -0800 (PST) MIME-Version: 1.0 References: <202001091958.009Jw56r037444@repo.freebsd.org> <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> <20200110114309.GA75442@albert.catwhisker.org> In-Reply-To: <20200110114309.GA75442@albert.catwhisker.org> From: Sergey Kandaurov Date: Fri, 10 Jan 2020 14:57:14 +0300 Message-ID: Subject: Re: svn commit: r356566 - stable/11/contrib/smbfs/lib/smb To: David Wolfskill , Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org X-Rspamd-Queue-Id: 47vM130jN8z4WGb X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=UKv4102v; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of pluknet@gmail.com designates 2607:f8b0:4864:20::92e as permitted sender) smtp.mailfrom=pluknet@gmail.com X-Spamd-Result: default: False [-2.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(0.00)[ip: (-9.38), ipnet: 2607:f8b0::/32(-2.11), asn: 15169(-1.84), country: US(-0.05)]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[e.2.9.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 11:57:28 -0000 On Fri, 10 Jan 2020 at 14:43, David Wolfskill wrote: > On Fri, Jan 10, 2020 at 04:50:24PM +0700, Eugene Grosbein wrote: > > 10.01.2020 2:58, Baptiste Daroussin wrote: > > > > > Author: bapt > > > Date: Thu Jan 9 19:58:05 2020 > > > New Revision: 356566 > > > URL: https://svnweb.freebsd.org/changeset/base/356566 > > > ... > > This commit broke source upgrade path from 10.4-STABLE to stable/11: > > > > rcfile.c:168:5: error: implicit declaration of function 'dprintf' is > invalid in C99 [-Werror,-Wimplicit-function-declaration] > > dprintf(STDERR_FILENO, "warning: section > name [%s] contains lower-case letters\n", sectname); > > ^ > > 1 error generated. > > .... > > I got the same error (on two separate machines) attempting an in-place > src update from stable/11 @r356547 to r356593. > In FreeBSD 11, dprintf() needs #define _WITH_DPRINTF "prior to the inclusion of <*stdio.h*>" From owner-svn-src-all@freebsd.org Fri Jan 10 12:20:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE3D31E5D02; Fri, 10 Jan 2020 12:20:25 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vMWY55Gdz4XQR; Fri, 10 Jan 2020 12:20:25 +0000 (UTC) (envelope-from pluknet@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A15A719DDC; Fri, 10 Jan 2020 12:20:25 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ACKPYn029556; Fri, 10 Jan 2020 12:20:25 GMT (envelope-from pluknet@FreeBSD.org) Received: (from pluknet@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ACKP5G029555; Fri, 10 Jan 2020 12:20:25 GMT (envelope-from pluknet@FreeBSD.org) Message-Id: <202001101220.00ACKP5G029555@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pluknet set sender to pluknet@FreeBSD.org using -f From: Sergey Kandaurov Date: Fri, 10 Jan 2020 12:20:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356599 - stable/11/contrib/smbfs/lib/smb X-SVN-Group: stable-11 X-SVN-Commit-Author: pluknet X-SVN-Commit-Paths: stable/11/contrib/smbfs/lib/smb X-SVN-Commit-Revision: 356599 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 12:20:25 -0000 Author: pluknet Date: Fri Jan 10 12:20:25 2020 New Revision: 356599 URL: https://svnweb.freebsd.org/changeset/base/356599 Log: Fixed build after r356566 (MFC of r356317). This is a direct change. Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c ============================================================================== --- stable/11/contrib/smbfs/lib/smb/rcfile.c Fri Jan 10 09:32:44 2020 (r356598) +++ stable/11/contrib/smbfs/lib/smb/rcfile.c Fri Jan 10 12:20:25 2020 (r356599) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#define _WITH_DPRINTF #include #include #include From owner-svn-src-all@freebsd.org Fri Jan 10 14:10:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3C9E81E8BAB; Fri, 10 Jan 2020 14:10:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vPy00wn6z4dfZ; Fri, 10 Jan 2020 14:10:00 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 199E41B2AC; Fri, 10 Jan 2020 14:10:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AE9xOo097092; Fri, 10 Jan 2020 14:09:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AE9x2n097091; Fri, 10 Jan 2020 14:09:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001101409.00AE9x2n097091@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 14:09:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356600 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 356600 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 14:10:00 -0000 Author: kevans Date: Fri Jan 10 14:09:59 2020 New Revision: 356600 URL: https://svnweb.freebsd.org/changeset/base/356600 Log: a10_ahci: grab the target-supply regulator and enable it This regulator is marked regulator-boot-on, but it will get shutdown if it's not actually used/enabled by a driver. This should fix sata on the cubieboard{1,2}. Reported by: Ray White @ UWaterloo Reviewed by: manu Differential Revision: https://reviews.freebsd.org/D23112 Modified: head/sys/arm/allwinner/a10_ahci.c Modified: head/sys/arm/allwinner/a10_ahci.c ============================================================================== --- head/sys/arm/allwinner/a10_ahci.c Fri Jan 10 12:20:25 2020 (r356599) +++ head/sys/arm/allwinner/a10_ahci.c Fri Jan 10 14:09:59 2020 (r356600) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include /* * Allwinner a1x/a2x/a8x SATA attachment. This is just the AHCI register @@ -118,6 +119,11 @@ __FBSDID("$FreeBSD$"); #define PLL_FREQ 100000000 +struct ahci_a10_softc { + struct ahci_controller ahci_ctlr; + regulator_t ahci_reg; +}; + static void inline ahci_set(struct resource *m, bus_size_t off, uint32_t set) { @@ -295,10 +301,12 @@ static int ahci_a10_attach(device_t dev) { int error; + struct ahci_a10_softc *sc; struct ahci_controller *ctlr; clk_t clk_pll, clk_gate; - ctlr = device_get_softc(dev); + sc = device_get_softc(dev); + ctlr = &sc->ahci_ctlr; clk_pll = clk_gate = NULL; ctlr->quirks = AHCI_Q_NOPMP; @@ -311,6 +319,19 @@ ahci_a10_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return (ENXIO); + /* Enable the regulator */ + error = regulator_get_by_ofw_property(dev, 0, "target-supply", + &sc->ahci_reg); + if (error != 0) { + device_printf(dev, "Cannot get regulator\n"); + goto fail; + } + error = regulator_enable(sc->ahci_reg); + if (error != 0) { + device_printf(dev, "Could not enable regulator\n"); + goto fail; + } + /* Enable clocks */ error = clk_get_by_ofw_index(dev, 0, 0, &clk_gate); if (error != 0) { @@ -357,6 +378,8 @@ ahci_a10_attach(device_t dev) return (ahci_attach(dev)); fail: + if (sc->ahci_reg != 0) + regulator_disable(sc->ahci_reg); if (clk_gate != NULL) clk_release(clk_gate); if (clk_pll != NULL) @@ -388,7 +411,7 @@ static device_method_t ahci_ata_methods[] = { static driver_t ahci_ata_driver = { "ahci", ahci_ata_methods, - sizeof(struct ahci_controller) + sizeof(struct ahci_a10_softc) }; DRIVER_MODULE(a10_ahci, simplebus, ahci_ata_driver, ahci_devclass, 0, 0); From owner-svn-src-all@freebsd.org Fri Jan 10 14:40:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A75B1E943E; Fri, 10 Jan 2020 14:40:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vQcj2DKkz4fxR; Fri, 10 Jan 2020 14:40:05 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47B5D1B829; Fri, 10 Jan 2020 14:40:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AEe5sa015560; Fri, 10 Jan 2020 14:40:05 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AEe5f5015559; Fri, 10 Jan 2020 14:40:05 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001101440.00AEe5f5015559@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 14:40:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356601 - head/usr.sbin/inetd X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.sbin/inetd X-SVN-Commit-Revision: 356601 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 14:40:05 -0000 Author: kevans Date: Fri Jan 10 14:40:04 2020 New Revision: 356601 URL: https://svnweb.freebsd.org/changeset/base/356601 Log: inetd: free WITHOUT_INET6_SUPPORT build of warnings If inetd is compiled without inet6 support, we need to error out on rpc+inet6 services rather than attempting to call into rpc bits with an uninitialized netid. v4bind is only used with INET6 support, so move it under the proper #ifdefs with v6bind. Reported by: Pavel Timofeev MFC after: 3 days Modified: head/usr.sbin/inetd/inetd.c Modified: head/usr.sbin/inetd/inetd.c ============================================================================== --- head/usr.sbin/inetd/inetd.c Fri Jan 10 14:09:59 2020 (r356600) +++ head/usr.sbin/inetd/inetd.c Fri Jan 10 14:40:04 2020 (r356601) @@ -1360,6 +1360,15 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o sock.sin_port = sep->se_ctrladdr6.sin6_port; } } +#else + else { + syslog(LOG_ERR, + "%s/%s: inetd compiled without inet6 support\n", + sep->se_service, sep->se_proto); + (void) close(sep->se_fd); + sep->se_fd = -1; + return; + } #endif if (debug) print_service("REG ", sep); @@ -1611,8 +1620,8 @@ getconfigent(void) #ifdef IPSEC char *policy; #endif - int v4bind; #ifdef INET6 + int v4bind; int v6bind; #endif int i; @@ -1622,8 +1631,8 @@ getconfigent(void) policy = NULL; #endif more: - v4bind = 0; #ifdef INET6 + v4bind = 0; v6bind = 0; #endif while ((cp = nextline(fconfig)) != NULL) { @@ -1787,7 +1796,9 @@ more: #endif if (sep->se_proto[strlen(sep->se_proto) - 1] == '4') { sep->se_proto[strlen(sep->se_proto) - 1] = '\0'; +#ifdef INET6 v4bind = 1; +#endif continue; } /* illegal version num */ From owner-svn-src-all@freebsd.org Fri Jan 10 14:43:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 61E471E96E1; Fri, 10 Jan 2020 14:43:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vQjB1yvsz4gKv; Fri, 10 Jan 2020 14:43:58 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3EBCC1B9E7; Fri, 10 Jan 2020 14:43:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AEhwR5020972; Fri, 10 Jan 2020 14:43:58 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AEhwCm020971; Fri, 10 Jan 2020 14:43:58 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001101443.00AEhwCm020971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 14:43:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356602 - head/usr.sbin/inetd X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.sbin/inetd X-SVN-Commit-Revision: 356602 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 14:43:58 -0000 Author: kevans Date: Fri Jan 10 14:43:57 2020 New Revision: 356602 URL: https://svnweb.freebsd.org/changeset/base/356602 Log: inetd: two more nits Use __COPYRIGHT for copyright to simply either embed it via .ident or have it properly marked __unused Move an ipsec reference to IPSEC Modified: head/usr.sbin/inetd/inetd.c Modified: head/usr.sbin/inetd/inetd.c ============================================================================== --- head/usr.sbin/inetd/inetd.c Fri Jan 10 14:40:04 2020 (r356601) +++ head/usr.sbin/inetd/inetd.c Fri Jan 10 14:43:57 2020 (r356602) @@ -29,10 +29,12 @@ * SUCH DAMAGE. */ +#include +__FBSDID("$FreeBSD$"); + #ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1983, 1991, 1993, 1994\n\ - The Regents of the University of California. All rights reserved.\n"; +__COPYRIGHT("@(#) Copyright (c) 1983, 1991, 1993, 1994\n\ + The Regents of the University of California. All rights reserved.\n"); #endif /* not lint */ #ifndef lint @@ -41,9 +43,6 @@ static char sccsid[] = "@(#)from: inetd.c 8.4 (Berkele #endif #endif /* not lint */ -#include -__FBSDID("$FreeBSD$"); - /* * Inetd - Internet super-server * @@ -1661,7 +1660,9 @@ more: break; } if (cp == NULL) { +#ifdef IPSEC free(policy); +#endif return (NULL); } From owner-svn-src-all@freebsd.org Fri Jan 10 14:46:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 042541E9853; Fri, 10 Jan 2020 14:46:30 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vQm56JrMz3Byd; Fri, 10 Jan 2020 14:46:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id BB3F51075; Fri, 10 Jan 2020 14:46:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id 06D06E83A6; Fri, 10 Jan 2020 15:46:28 +0100 (CET) Date: Fri, 10 Jan 2020 15:46:28 +0100 From: Baptiste Daroussin To: Sergey Kandaurov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r356599 - stable/11/contrib/smbfs/lib/smb Message-ID: <20200110144628.tkd7yp7bt54eyrog@ivaldir.net> References: <202001101220.00ACKP5G029555@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5qs7ivxvap4vsrxa" Content-Disposition: inline In-Reply-To: <202001101220.00ACKP5G029555@repo.freebsd.org> X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 14:46:30 -0000 --5qs7ivxvap4vsrxa Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 10, 2020 at 12:20:25PM +0000, Sergey Kandaurov wrote: > Author: pluknet > Date: Fri Jan 10 12:20:25 2020 > New Revision: 356599 > URL: https://svnweb.freebsd.org/changeset/base/356599 >=20 > Log: > Fixed build after r356566 (MFC of r356317). > =20 > This is a direct change. >=20 Thanks a lot, you have been faster than me to do it. And sorry about the breakage. Best regards, Bapt --5qs7ivxvap4vsrxa Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl4YjkEACgkQY4mL3PG3 Plq7fg//UP4uxINa7bakYM9rsmnKkeEjdi8v1v/2pHHp/MY0LfhnktaQaiEIbSFZ TCVGi5C17x1rlaFtskuLzyai4gPQo0ALAgkK9K+7nhWieThAjDcCcAphsgs3FVHL iJoKb1M5ipWTtHa3dcrZp8zX36gb078ETcQP1HG4B+NAml0uSAxgBgDZorPn51rZ RkmY/shT91ebpyUPyZI8+/Z0VfYK1ION1u+41ejimyTgfA5cPjuNN559qeb7o4uY 63nXFw5Jb20wWQhtNkY3Hanrev7SASYnYin45nXncDpmWSmkwvp+QugZpdnCG8al gumZ8SglNGDXkncxf/GLud1b1cHIQbkaoCJriG7J0b8hGfDKusLHT8r3achldr7v r0++e1EPlVqbcASC3Ypl0idHr9zqrj4rM5OhaCuqxN+DlcihSP6TFj1/8mlKK+QC F73AMl3zS4wn3/dnsFBKMh1Du9wDQs4MIu57+0Kg90j9IF2QGiZbxxTagTFsUPT6 yXQmibvUlzoAKlGa1+yMRvUIlruMhAQQSQq+cidw/CnLl4YZE8KC9dDQNKFjYaue 1ZgNf3lsqoNSImWDrZ8lo4LUXOQ6efMiTmaveJTx0ELcfp2IVcJNITk20Z9Wfqoy CDpgsIFIiuz3BeDpyl46/hdFPusFlLKBkQgDOcLB3PmPYp9qmpY= =8hek -----END PGP SIGNATURE----- --5qs7ivxvap4vsrxa-- From owner-svn-src-all@freebsd.org Fri Jan 10 18:22:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 788421EE8D7; Fri, 10 Jan 2020 18:22:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vWY32flKz3Pcw; Fri, 10 Jan 2020 18:22:15 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3CA501E23E; Fri, 10 Jan 2020 18:22:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIMFNM049042; Fri, 10 Jan 2020 18:22:15 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIMFlM049041; Fri, 10 Jan 2020 18:22:15 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001101822.00AIMFlM049041@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 18:22:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356603 - head/sys/tools X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/tools X-SVN-Commit-Revision: 356603 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:22:15 -0000 Author: kevans Date: Fri Jan 10 18:22:14 2020 New Revision: 356603 URL: https://svnweb.freebsd.org/changeset/base/356603 Log: makesyscalls.lua: generate all files in /tmp, write into place at the end This makes makesyscalls.lua more parallel-friendly, or at least not as hostile to the idea. We get into situations where we're running parallel if we end up with MAKE_JOBS>1 entering any of the sysent targets, since each output file is recognized a distinct build step that needs to be executed. Another commit will add some .ORDER to further improve the situation. Reported by: jhb Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D23098 Modified: head/sys/tools/makesyscalls.lua Modified: head/sys/tools/makesyscalls.lua ============================================================================== --- head/sys/tools/makesyscalls.lua Fri Jan 10 14:43:57 2020 (r356602) +++ head/sys/tools/makesyscalls.lua Fri Jan 10 18:22:14 2020 (r356603) @@ -66,13 +66,13 @@ local config_modified = {} local cleantmp = true local tmpspace = "/tmp/sysent." .. unistd.getpid() .. "/" --- These ones we'll open in place -local config_files_needed = { +local output_files = { "sysnames", "syshdr", "sysmk", "syssw", "systrace", + "sysproto", } -- These ones we'll create temporary files for; generation purposes. @@ -1158,9 +1158,9 @@ for _, v in ipairs(temp_files) do files[v] = io.open(tmpname, "w+") end - -for _, v in ipairs(config_files_needed) do - files[v] = io.open(config[v], "w+") +for _, v in ipairs(output_files) do + local tmpname = tmpspace .. v + files[v] = io.open(tmpname, "w+") end -- Write out all of the preamble bits @@ -1343,18 +1343,28 @@ write_line("systraceret", [[ write_line("syssw", read_file("sysinc")) write_line("syssw", read_file("sysent")) -local fh = io.open(config["sysproto"], "w+") -fh:write(read_file("sysarg")) -fh:write(read_file("sysdcl")) +write_line("sysproto", read_file("sysarg")) +write_line("sysproto", read_file("sysdcl")) for _, v in pairs(compat_options) do - fh:write(read_file(v["tmp"])) - fh:write(read_file(v["dcltmp"])) + write_line("sysproto", read_file(v["tmp"])) + write_line("sysproto", read_file(v["dcltmp"])) end -fh:write(read_file("sysaue")) -fh:write(read_file("sysprotoend")) -fh:close() +write_line("sysproto", read_file("sysaue")) +write_line("sysproto", read_file("sysprotoend")) write_line("systrace", read_file("systracetmp")) write_line("systrace", read_file("systraceret")) + +for _, v in ipairs(output_files) do + local target = config[v] + if target ~= "/dev/null" then + local fh = io.open(target, "w+") + if fh == nil then + abort(1, "Failed to open '" .. target .. "'") + end + fh:write(read_file(v)) + fh:close() + end +end cleanup() From owner-svn-src-all@freebsd.org Fri Jan 10 18:24:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C11041EE993; Fri, 10 Jan 2020 18:24:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vWbR4jqyz3PpJ; Fri, 10 Jan 2020 18:24:19 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D0151E25C; Fri, 10 Jan 2020 18:24:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIOJCN052269; Fri, 10 Jan 2020 18:24:19 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIOHBZ052259; Fri, 10 Jan 2020 18:24:17 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001101824.00AIOHBZ052259@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 18:24:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356604 - in head/sys: amd64/linux amd64/linux32 arm/linux arm64/linux compat/cloudabi32 compat/cloudabi64 compat/freebsd32 i386/linux kern X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/sys: amd64/linux amd64/linux32 arm/linux arm64/linux compat/cloudabi32 compat/cloudabi64 compat/freebsd32 i386/linux kern X-SVN-Commit-Revision: 356604 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:24:19 -0000 Author: kevans Date: Fri Jan 10 18:24:17 2020 New Revision: 356604 URL: https://svnweb.freebsd.org/changeset/base/356604 Log: Set .ORDER for makesyscalls generated files When either makesyscalls.lua or syscalls.master changes, all of the ${GENERATED} targets are now out-of-date. With make jobs > 1, this means we will run the makesyscalls script in parallel for the same ABI, generating the same set of output files. Prior to r356603 , there is a large window for interlacing output for some of the generated files that we were generating in-place rather than staging in a temp dir. After that, we still should't need to run the script more than once per-ABI as the first invocation should update all of them. Add .ORDER to do so cleanly. Reviewed by: brooks Discussed with: sjg Differential Revision: https://reviews.freebsd.org/D23099 Modified: head/sys/amd64/linux/Makefile head/sys/amd64/linux32/Makefile head/sys/arm/linux/Makefile head/sys/arm64/linux/Makefile head/sys/compat/cloudabi32/Makefile head/sys/compat/cloudabi64/Makefile head/sys/compat/freebsd32/Makefile head/sys/i386/linux/Makefile head/sys/kern/Makefile Modified: head/sys/amd64/linux/Makefile ============================================================================== --- head/sys/amd64/linux/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/amd64/linux/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -19,6 +19,9 @@ GENERATED= linux_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/amd64/linux32/Makefile ============================================================================== --- head/sys/amd64/linux32/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/amd64/linux32/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -19,6 +19,9 @@ GENERATED= linux32_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/arm/linux/Makefile ============================================================================== --- head/sys/arm/linux/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/arm/linux/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -19,6 +19,9 @@ GENERATED= linux_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/arm64/linux/Makefile ============================================================================== --- head/sys/arm64/linux/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/arm64/linux/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -19,6 +19,9 @@ GENERATED= linux_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/compat/cloudabi32/Makefile ============================================================================== --- head/sys/compat/cloudabi32/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/compat/cloudabi32/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -17,6 +17,9 @@ GENERATED= cloudabi32_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/compat/cloudabi64/Makefile ============================================================================== --- head/sys/compat/cloudabi64/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/compat/cloudabi64/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -17,6 +17,9 @@ GENERATED= cloudabi64_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/compat/freebsd32/Makefile ============================================================================== --- head/sys/compat/freebsd32/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/compat/freebsd32/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -20,6 +20,9 @@ GENERATED= freebsd32_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/i386/linux/Makefile ============================================================================== --- head/sys/i386/linux/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/i386/linux/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -19,6 +19,9 @@ GENERATED= linux_proto.h \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} Modified: head/sys/kern/Makefile ============================================================================== --- head/sys/kern/Makefile Fri Jan 10 18:22:14 2020 (r356603) +++ head/sys/kern/Makefile Fri Jan 10 18:24:17 2020 (r356604) @@ -21,6 +21,9 @@ GENERATED= init_sysent.c \ all: @echo "make sysent only" +# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than +# potentially once for each ${GENERATED} file. +.ORDER: ${GENERATED} sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} From owner-svn-src-all@freebsd.org Fri Jan 10 18:29:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0969B1EEEA5; Fri, 10 Jan 2020 18:29:06 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vWhx6W59z3Q6w; Fri, 10 Jan 2020 18:29:05 +0000 (UTC) (envelope-from erj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DAC401E26B; Fri, 10 Jan 2020 18:29:05 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIT59j052526; Fri, 10 Jan 2020 18:29:05 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIT5ac052525; Fri, 10 Jan 2020 18:29:05 GMT (envelope-from erj@FreeBSD.org) Message-Id: <202001101829.00AIT5ac052525@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Fri, 10 Jan 2020 18:29:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356605 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 356605 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:29:06 -0000 Author: erj Date: Fri Jan 10 18:29:05 2020 New Revision: 356605 URL: https://svnweb.freebsd.org/changeset/base/356605 Log: MFC r356310: iflib: Prevent watchdog from resetting idle queues Sponsored by: Intel Corporation Modified: stable/12/sys/net/iflib.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/iflib.c ============================================================================== --- stable/12/sys/net/iflib.c Fri Jan 10 18:24:17 2020 (r356604) +++ stable/12/sys/net/iflib.c Fri Jan 10 18:29:05 2020 (r356605) @@ -2301,8 +2301,11 @@ iflib_timer(void *arg) (sctx->isc_pause_frames == 0))) goto hung; - if (ifmp_ring_is_stalled(txq->ift_br)) + if (txq->ift_qstatus != IFLIB_QUEUE_IDLE && + ifmp_ring_is_stalled(txq->ift_br)) { + KASSERT(ctx->ifc_link_state == LINK_STATE_UP, ("queue can't be marked as hung if interface is down")); txq->ift_qstatus = IFLIB_QUEUE_HUNG; + } txq->ift_cleaned_prev = txq->ift_cleaned; } #ifdef DEV_NETMAP From owner-svn-src-all@freebsd.org Fri Jan 10 18:32:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0DFB81EF2A0; Fri, 10 Jan 2020 18:32:01 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vWmJ4rlHz3Qfx; Fri, 10 Jan 2020 18:32:00 +0000 (UTC) (envelope-from erj@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9CD761E3FD; Fri, 10 Jan 2020 18:32:00 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIW0jA057434; Fri, 10 Jan 2020 18:32:00 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIW0b0057432; Fri, 10 Jan 2020 18:32:00 GMT (envelope-from erj@FreeBSD.org) Message-Id: <202001101832.00AIW0b0057432@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Fri, 10 Jan 2020 18:32:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356606 - stable/12/sys/dev/ixl X-SVN-Group: stable-12 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: stable/12/sys/dev/ixl X-SVN-Commit-Revision: 356606 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:32:01 -0000 Author: erj Date: Fri Jan 10 18:31:59 2020 New Revision: 356606 URL: https://svnweb.freebsd.org/changeset/base/356606 Log: MFC r356309: ixl: prevent non-privileged access to NVM update interface Sponsored by: Intel Corporation Modified: stable/12/sys/dev/ixl/if_ixl.c stable/12/sys/dev/ixl/ixl.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/ixl/if_ixl.c ============================================================================== --- stable/12/sys/dev/ixl/if_ixl.c Fri Jan 10 18:29:05 2020 (r356605) +++ stable/12/sys/dev/ixl/if_ixl.c Fri Jan 10 18:31:59 2020 (r356606) @@ -1625,11 +1625,29 @@ ixl_if_priv_ioctl(if_ctx_t ctx, u_long command, caddr_ struct ifdrv *ifd = (struct ifdrv *)data; int error = 0; - /* NVM update command */ - if (ifd->ifd_cmd == I40E_NVM_ACCESS) - error = ixl_handle_nvmupd_cmd(pf, ifd); - else - error = EINVAL; + /* + * The iflib_if_ioctl forwards SIOCxDRVSPEC and SIOGPRIVATE_0 without + * performing privilege checks. It is important that this function + * perform the necessary checks for commands which should only be + * executed by privileged threads. + */ + + switch(command) { + case SIOCGDRVSPEC: + case SIOCSDRVSPEC: + /* NVM update command */ + if (ifd->ifd_cmd == I40E_NVM_ACCESS) { + error = priv_check(curthread, PRIV_DRIVER); + if (error) + break; + error = ixl_handle_nvmupd_cmd(pf, ifd); + } else { + error = EINVAL; + } + break; + default: + error = EOPNOTSUPP; + } return (error); } Modified: stable/12/sys/dev/ixl/ixl.h ============================================================================== --- stable/12/sys/dev/ixl/ixl.h Fri Jan 10 18:29:05 2020 (r356605) +++ stable/12/sys/dev/ixl/ixl.h Fri Jan 10 18:31:59 2020 (r356606) @@ -52,6 +52,7 @@ #include #include #include +#include #include #include From owner-svn-src-all@freebsd.org Fri Jan 10 18:47:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5F60A1EFC10; Fri, 10 Jan 2020 18:47:03 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vX5g2dP5z3wyT; Fri, 10 Jan 2020 18:47:03 +0000 (UTC) (envelope-from jkim@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 503A61E61D; Fri, 10 Jan 2020 18:47:03 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIl3YN064726; Fri, 10 Jan 2020 18:47:03 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIkl6t064644; Fri, 10 Jan 2020 18:46:47 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001101846.00AIkl6t064644@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 10 Jan 2020 18:46:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356607 - in vendor-sys/acpica/dist: . source/common source/compiler source/components/debugger source/components/disassembler source/components/dispatcher source/components/events sour... X-SVN-Group: vendor-sys X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in vendor-sys/acpica/dist: . source/common source/compiler source/components/debugger source/components/disassembler source/components/dispatcher source/components/events source/components/executer so... X-SVN-Commit-Revision: 356607 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:47:03 -0000 Author: jkim Date: Fri Jan 10 18:46:46 2020 New Revision: 356607 URL: https://svnweb.freebsd.org/changeset/base/356607 Log: Import ACPICA 20200110. Modified: vendor-sys/acpica/dist/changes.txt vendor-sys/acpica/dist/source/common/acfileio.c vendor-sys/acpica/dist/source/common/acgetline.c vendor-sys/acpica/dist/source/common/adfile.c vendor-sys/acpica/dist/source/common/adisasm.c vendor-sys/acpica/dist/source/common/adwalk.c vendor-sys/acpica/dist/source/common/ahids.c vendor-sys/acpica/dist/source/common/ahpredef.c vendor-sys/acpica/dist/source/common/ahtable.c vendor-sys/acpica/dist/source/common/ahuuids.c vendor-sys/acpica/dist/source/common/cmfsize.c vendor-sys/acpica/dist/source/common/dmextern.c vendor-sys/acpica/dist/source/common/dmrestag.c vendor-sys/acpica/dist/source/common/dmswitch.c vendor-sys/acpica/dist/source/common/dmtable.c vendor-sys/acpica/dist/source/common/dmtables.c vendor-sys/acpica/dist/source/common/dmtbdump.c vendor-sys/acpica/dist/source/common/dmtbdump1.c vendor-sys/acpica/dist/source/common/dmtbdump2.c vendor-sys/acpica/dist/source/common/dmtbdump3.c vendor-sys/acpica/dist/source/common/dmtbinfo.c vendor-sys/acpica/dist/source/common/dmtbinfo1.c vendor-sys/acpica/dist/source/common/dmtbinfo2.c vendor-sys/acpica/dist/source/common/dmtbinfo3.c vendor-sys/acpica/dist/source/common/getopt.c vendor-sys/acpica/dist/source/compiler/aslallocate.c vendor-sys/acpica/dist/source/compiler/aslanalyze.c vendor-sys/acpica/dist/source/compiler/aslascii.c vendor-sys/acpica/dist/source/compiler/aslbtypes.c vendor-sys/acpica/dist/source/compiler/aslcache.c vendor-sys/acpica/dist/source/compiler/aslcodegen.c vendor-sys/acpica/dist/source/compiler/aslcompile.c vendor-sys/acpica/dist/source/compiler/aslcompiler.h vendor-sys/acpica/dist/source/compiler/aslcompiler.l vendor-sys/acpica/dist/source/compiler/aslcompiler.y vendor-sys/acpica/dist/source/compiler/aslcstyle.y vendor-sys/acpica/dist/source/compiler/asldebug.c vendor-sys/acpica/dist/source/compiler/asldefine.h vendor-sys/acpica/dist/source/compiler/aslerror.c vendor-sys/acpica/dist/source/compiler/aslexternal.c vendor-sys/acpica/dist/source/compiler/aslfileio.c vendor-sys/acpica/dist/source/compiler/aslfiles.c vendor-sys/acpica/dist/source/compiler/aslfold.c vendor-sys/acpica/dist/source/compiler/aslglobal.h vendor-sys/acpica/dist/source/compiler/aslhelp.c vendor-sys/acpica/dist/source/compiler/aslhelpers.y vendor-sys/acpica/dist/source/compiler/aslhex.c vendor-sys/acpica/dist/source/compiler/aslkeywords.y vendor-sys/acpica/dist/source/compiler/asllength.c vendor-sys/acpica/dist/source/compiler/asllisting.c vendor-sys/acpica/dist/source/compiler/asllistsup.c vendor-sys/acpica/dist/source/compiler/aslload.c vendor-sys/acpica/dist/source/compiler/asllookup.c vendor-sys/acpica/dist/source/compiler/aslmain.c vendor-sys/acpica/dist/source/compiler/aslmap.c vendor-sys/acpica/dist/source/compiler/aslmapenter.c vendor-sys/acpica/dist/source/compiler/aslmapoutput.c vendor-sys/acpica/dist/source/compiler/aslmaputils.c vendor-sys/acpica/dist/source/compiler/aslmessages.c vendor-sys/acpica/dist/source/compiler/aslmessages.h vendor-sys/acpica/dist/source/compiler/aslmethod.c vendor-sys/acpica/dist/source/compiler/aslnamesp.c vendor-sys/acpica/dist/source/compiler/asloffset.c vendor-sys/acpica/dist/source/compiler/aslopcodes.c vendor-sys/acpica/dist/source/compiler/asloperands.c vendor-sys/acpica/dist/source/compiler/aslopt.c vendor-sys/acpica/dist/source/compiler/asloptions.c vendor-sys/acpica/dist/source/compiler/aslparseop.c vendor-sys/acpica/dist/source/compiler/aslparser.y vendor-sys/acpica/dist/source/compiler/aslpld.c vendor-sys/acpica/dist/source/compiler/aslpredef.c vendor-sys/acpica/dist/source/compiler/aslprepkg.c vendor-sys/acpica/dist/source/compiler/aslprimaries.y vendor-sys/acpica/dist/source/compiler/aslprintf.c vendor-sys/acpica/dist/source/compiler/aslprune.c vendor-sys/acpica/dist/source/compiler/aslresource.c vendor-sys/acpica/dist/source/compiler/aslresources.y vendor-sys/acpica/dist/source/compiler/aslrestype1.c vendor-sys/acpica/dist/source/compiler/aslrestype1i.c vendor-sys/acpica/dist/source/compiler/aslrestype2.c vendor-sys/acpica/dist/source/compiler/aslrestype2d.c vendor-sys/acpica/dist/source/compiler/aslrestype2e.c vendor-sys/acpica/dist/source/compiler/aslrestype2q.c vendor-sys/acpica/dist/source/compiler/aslrestype2s.c vendor-sys/acpica/dist/source/compiler/aslrestype2w.c vendor-sys/acpica/dist/source/compiler/aslrules.y vendor-sys/acpica/dist/source/compiler/aslstartup.c vendor-sys/acpica/dist/source/compiler/aslstubs.c vendor-sys/acpica/dist/source/compiler/aslsupport.l vendor-sys/acpica/dist/source/compiler/aslsupport.y vendor-sys/acpica/dist/source/compiler/asltokens.y vendor-sys/acpica/dist/source/compiler/asltransform.c vendor-sys/acpica/dist/source/compiler/asltree.c vendor-sys/acpica/dist/source/compiler/asltypes.h vendor-sys/acpica/dist/source/compiler/asltypes.y vendor-sys/acpica/dist/source/compiler/aslutils.c vendor-sys/acpica/dist/source/compiler/asluuid.c vendor-sys/acpica/dist/source/compiler/aslwalks.c vendor-sys/acpica/dist/source/compiler/aslxref.c vendor-sys/acpica/dist/source/compiler/aslxrefout.c vendor-sys/acpica/dist/source/compiler/cvcompiler.c vendor-sys/acpica/dist/source/compiler/cvdisasm.c vendor-sys/acpica/dist/source/compiler/cvparser.c vendor-sys/acpica/dist/source/compiler/dtcompile.c vendor-sys/acpica/dist/source/compiler/dtcompiler.h vendor-sys/acpica/dist/source/compiler/dtexpress.c vendor-sys/acpica/dist/source/compiler/dtfield.c vendor-sys/acpica/dist/source/compiler/dtio.c vendor-sys/acpica/dist/source/compiler/dtparser.l vendor-sys/acpica/dist/source/compiler/dtparser.y vendor-sys/acpica/dist/source/compiler/dtsubtable.c vendor-sys/acpica/dist/source/compiler/dttable.c vendor-sys/acpica/dist/source/compiler/dttable1.c vendor-sys/acpica/dist/source/compiler/dttable2.c vendor-sys/acpica/dist/source/compiler/dttemplate.c vendor-sys/acpica/dist/source/compiler/dttemplate.h vendor-sys/acpica/dist/source/compiler/dtutils.c vendor-sys/acpica/dist/source/compiler/preprocess.h vendor-sys/acpica/dist/source/compiler/prexpress.c vendor-sys/acpica/dist/source/compiler/prmacros.c vendor-sys/acpica/dist/source/compiler/prparser.l vendor-sys/acpica/dist/source/compiler/prparser.y vendor-sys/acpica/dist/source/compiler/prscan.c vendor-sys/acpica/dist/source/compiler/prutils.c vendor-sys/acpica/dist/source/components/debugger/dbcmds.c vendor-sys/acpica/dist/source/components/debugger/dbconvert.c vendor-sys/acpica/dist/source/components/debugger/dbdisply.c vendor-sys/acpica/dist/source/components/debugger/dbexec.c vendor-sys/acpica/dist/source/components/debugger/dbfileio.c vendor-sys/acpica/dist/source/components/debugger/dbhistry.c vendor-sys/acpica/dist/source/components/debugger/dbinput.c vendor-sys/acpica/dist/source/components/debugger/dbmethod.c vendor-sys/acpica/dist/source/components/debugger/dbnames.c vendor-sys/acpica/dist/source/components/debugger/dbobject.c vendor-sys/acpica/dist/source/components/debugger/dbstats.c vendor-sys/acpica/dist/source/components/debugger/dbtest.c vendor-sys/acpica/dist/source/components/debugger/dbutils.c vendor-sys/acpica/dist/source/components/debugger/dbxface.c vendor-sys/acpica/dist/source/components/disassembler/dmbuffer.c vendor-sys/acpica/dist/source/components/disassembler/dmcstyle.c vendor-sys/acpica/dist/source/components/disassembler/dmdeferred.c vendor-sys/acpica/dist/source/components/disassembler/dmnames.c vendor-sys/acpica/dist/source/components/disassembler/dmopcode.c vendor-sys/acpica/dist/source/components/disassembler/dmresrc.c vendor-sys/acpica/dist/source/components/disassembler/dmresrcl.c vendor-sys/acpica/dist/source/components/disassembler/dmresrcl2.c vendor-sys/acpica/dist/source/components/disassembler/dmresrcs.c vendor-sys/acpica/dist/source/components/disassembler/dmutils.c vendor-sys/acpica/dist/source/components/disassembler/dmwalk.c vendor-sys/acpica/dist/source/components/dispatcher/dsargs.c vendor-sys/acpica/dist/source/components/dispatcher/dscontrol.c vendor-sys/acpica/dist/source/components/dispatcher/dsdebug.c vendor-sys/acpica/dist/source/components/dispatcher/dsfield.c vendor-sys/acpica/dist/source/components/dispatcher/dsinit.c vendor-sys/acpica/dist/source/components/dispatcher/dsmethod.c vendor-sys/acpica/dist/source/components/dispatcher/dsmthdat.c vendor-sys/acpica/dist/source/components/dispatcher/dsobject.c vendor-sys/acpica/dist/source/components/dispatcher/dsopcode.c vendor-sys/acpica/dist/source/components/dispatcher/dspkginit.c vendor-sys/acpica/dist/source/components/dispatcher/dsutils.c vendor-sys/acpica/dist/source/components/dispatcher/dswexec.c vendor-sys/acpica/dist/source/components/dispatcher/dswload.c vendor-sys/acpica/dist/source/components/dispatcher/dswload2.c vendor-sys/acpica/dist/source/components/dispatcher/dswscope.c vendor-sys/acpica/dist/source/components/dispatcher/dswstate.c vendor-sys/acpica/dist/source/components/events/evevent.c vendor-sys/acpica/dist/source/components/events/evglock.c vendor-sys/acpica/dist/source/components/events/evgpe.c vendor-sys/acpica/dist/source/components/events/evgpeblk.c vendor-sys/acpica/dist/source/components/events/evgpeinit.c vendor-sys/acpica/dist/source/components/events/evgpeutil.c vendor-sys/acpica/dist/source/components/events/evhandler.c vendor-sys/acpica/dist/source/components/events/evmisc.c vendor-sys/acpica/dist/source/components/events/evregion.c vendor-sys/acpica/dist/source/components/events/evrgnini.c vendor-sys/acpica/dist/source/components/events/evsci.c vendor-sys/acpica/dist/source/components/events/evxface.c vendor-sys/acpica/dist/source/components/events/evxfevnt.c vendor-sys/acpica/dist/source/components/events/evxfgpe.c vendor-sys/acpica/dist/source/components/events/evxfregn.c vendor-sys/acpica/dist/source/components/executer/exconcat.c vendor-sys/acpica/dist/source/components/executer/exconfig.c vendor-sys/acpica/dist/source/components/executer/exconvrt.c vendor-sys/acpica/dist/source/components/executer/excreate.c vendor-sys/acpica/dist/source/components/executer/exdebug.c vendor-sys/acpica/dist/source/components/executer/exdump.c vendor-sys/acpica/dist/source/components/executer/exfield.c vendor-sys/acpica/dist/source/components/executer/exfldio.c vendor-sys/acpica/dist/source/components/executer/exmisc.c vendor-sys/acpica/dist/source/components/executer/exmutex.c vendor-sys/acpica/dist/source/components/executer/exnames.c vendor-sys/acpica/dist/source/components/executer/exoparg1.c vendor-sys/acpica/dist/source/components/executer/exoparg2.c vendor-sys/acpica/dist/source/components/executer/exoparg3.c vendor-sys/acpica/dist/source/components/executer/exoparg6.c vendor-sys/acpica/dist/source/components/executer/exprep.c vendor-sys/acpica/dist/source/components/executer/exregion.c vendor-sys/acpica/dist/source/components/executer/exresnte.c vendor-sys/acpica/dist/source/components/executer/exresolv.c vendor-sys/acpica/dist/source/components/executer/exresop.c vendor-sys/acpica/dist/source/components/executer/exserial.c vendor-sys/acpica/dist/source/components/executer/exstore.c vendor-sys/acpica/dist/source/components/executer/exstoren.c vendor-sys/acpica/dist/source/components/executer/exstorob.c vendor-sys/acpica/dist/source/components/executer/exsystem.c vendor-sys/acpica/dist/source/components/executer/extrace.c vendor-sys/acpica/dist/source/components/executer/exutils.c vendor-sys/acpica/dist/source/components/hardware/hwacpi.c vendor-sys/acpica/dist/source/components/hardware/hwesleep.c vendor-sys/acpica/dist/source/components/hardware/hwgpe.c vendor-sys/acpica/dist/source/components/hardware/hwpci.c vendor-sys/acpica/dist/source/components/hardware/hwregs.c vendor-sys/acpica/dist/source/components/hardware/hwsleep.c vendor-sys/acpica/dist/source/components/hardware/hwtimer.c vendor-sys/acpica/dist/source/components/hardware/hwvalid.c vendor-sys/acpica/dist/source/components/hardware/hwxface.c vendor-sys/acpica/dist/source/components/hardware/hwxfsleep.c vendor-sys/acpica/dist/source/components/namespace/nsaccess.c vendor-sys/acpica/dist/source/components/namespace/nsalloc.c vendor-sys/acpica/dist/source/components/namespace/nsarguments.c vendor-sys/acpica/dist/source/components/namespace/nsconvert.c vendor-sys/acpica/dist/source/components/namespace/nsdump.c vendor-sys/acpica/dist/source/components/namespace/nsdumpdv.c vendor-sys/acpica/dist/source/components/namespace/nseval.c vendor-sys/acpica/dist/source/components/namespace/nsinit.c vendor-sys/acpica/dist/source/components/namespace/nsload.c vendor-sys/acpica/dist/source/components/namespace/nsnames.c vendor-sys/acpica/dist/source/components/namespace/nsobject.c vendor-sys/acpica/dist/source/components/namespace/nsparse.c vendor-sys/acpica/dist/source/components/namespace/nspredef.c vendor-sys/acpica/dist/source/components/namespace/nsprepkg.c vendor-sys/acpica/dist/source/components/namespace/nsrepair.c vendor-sys/acpica/dist/source/components/namespace/nsrepair2.c vendor-sys/acpica/dist/source/components/namespace/nssearch.c vendor-sys/acpica/dist/source/components/namespace/nsutils.c vendor-sys/acpica/dist/source/components/namespace/nswalk.c vendor-sys/acpica/dist/source/components/namespace/nsxfeval.c vendor-sys/acpica/dist/source/components/namespace/nsxfname.c vendor-sys/acpica/dist/source/components/namespace/nsxfobj.c vendor-sys/acpica/dist/source/components/parser/psargs.c vendor-sys/acpica/dist/source/components/parser/psloop.c vendor-sys/acpica/dist/source/components/parser/psobject.c vendor-sys/acpica/dist/source/components/parser/psopcode.c vendor-sys/acpica/dist/source/components/parser/psopinfo.c vendor-sys/acpica/dist/source/components/parser/psparse.c vendor-sys/acpica/dist/source/components/parser/psscope.c vendor-sys/acpica/dist/source/components/parser/pstree.c vendor-sys/acpica/dist/source/components/parser/psutils.c vendor-sys/acpica/dist/source/components/parser/pswalk.c vendor-sys/acpica/dist/source/components/parser/psxface.c vendor-sys/acpica/dist/source/components/resources/rsaddr.c vendor-sys/acpica/dist/source/components/resources/rscalc.c vendor-sys/acpica/dist/source/components/resources/rscreate.c vendor-sys/acpica/dist/source/components/resources/rsdump.c vendor-sys/acpica/dist/source/components/resources/rsdumpinfo.c vendor-sys/acpica/dist/source/components/resources/rsinfo.c vendor-sys/acpica/dist/source/components/resources/rsio.c vendor-sys/acpica/dist/source/components/resources/rsirq.c vendor-sys/acpica/dist/source/components/resources/rslist.c vendor-sys/acpica/dist/source/components/resources/rsmemory.c vendor-sys/acpica/dist/source/components/resources/rsmisc.c vendor-sys/acpica/dist/source/components/resources/rsserial.c vendor-sys/acpica/dist/source/components/resources/rsutils.c vendor-sys/acpica/dist/source/components/resources/rsxface.c vendor-sys/acpica/dist/source/components/tables/tbdata.c vendor-sys/acpica/dist/source/components/tables/tbfadt.c vendor-sys/acpica/dist/source/components/tables/tbfind.c vendor-sys/acpica/dist/source/components/tables/tbinstal.c vendor-sys/acpica/dist/source/components/tables/tbprint.c vendor-sys/acpica/dist/source/components/tables/tbutils.c vendor-sys/acpica/dist/source/components/tables/tbxface.c vendor-sys/acpica/dist/source/components/tables/tbxfload.c vendor-sys/acpica/dist/source/components/tables/tbxfroot.c vendor-sys/acpica/dist/source/components/utilities/utaddress.c vendor-sys/acpica/dist/source/components/utilities/utalloc.c vendor-sys/acpica/dist/source/components/utilities/utascii.c vendor-sys/acpica/dist/source/components/utilities/utbuffer.c vendor-sys/acpica/dist/source/components/utilities/utcache.c vendor-sys/acpica/dist/source/components/utilities/utclib.c vendor-sys/acpica/dist/source/components/utilities/utcopy.c vendor-sys/acpica/dist/source/components/utilities/utdebug.c vendor-sys/acpica/dist/source/components/utilities/utdecode.c vendor-sys/acpica/dist/source/components/utilities/utdelete.c vendor-sys/acpica/dist/source/components/utilities/uterror.c vendor-sys/acpica/dist/source/components/utilities/uteval.c vendor-sys/acpica/dist/source/components/utilities/utexcep.c vendor-sys/acpica/dist/source/components/utilities/utglobal.c vendor-sys/acpica/dist/source/components/utilities/uthex.c vendor-sys/acpica/dist/source/components/utilities/utids.c vendor-sys/acpica/dist/source/components/utilities/utinit.c vendor-sys/acpica/dist/source/components/utilities/utlock.c vendor-sys/acpica/dist/source/components/utilities/utmath.c vendor-sys/acpica/dist/source/components/utilities/utmisc.c vendor-sys/acpica/dist/source/components/utilities/utmutex.c vendor-sys/acpica/dist/source/components/utilities/utnonansi.c vendor-sys/acpica/dist/source/components/utilities/utobject.c vendor-sys/acpica/dist/source/components/utilities/utosi.c vendor-sys/acpica/dist/source/components/utilities/utownerid.c vendor-sys/acpica/dist/source/components/utilities/utpredef.c vendor-sys/acpica/dist/source/components/utilities/utprint.c vendor-sys/acpica/dist/source/components/utilities/utresdecode.c vendor-sys/acpica/dist/source/components/utilities/utresrc.c vendor-sys/acpica/dist/source/components/utilities/utstate.c vendor-sys/acpica/dist/source/components/utilities/utstring.c vendor-sys/acpica/dist/source/components/utilities/utstrsuppt.c vendor-sys/acpica/dist/source/components/utilities/utstrtoul64.c vendor-sys/acpica/dist/source/components/utilities/uttrack.c vendor-sys/acpica/dist/source/components/utilities/utuuid.c vendor-sys/acpica/dist/source/components/utilities/utxface.c vendor-sys/acpica/dist/source/components/utilities/utxferror.c vendor-sys/acpica/dist/source/components/utilities/utxfinit.c vendor-sys/acpica/dist/source/components/utilities/utxfmutex.c vendor-sys/acpica/dist/source/include/acapps.h vendor-sys/acpica/dist/source/include/acbuffer.h vendor-sys/acpica/dist/source/include/acclib.h vendor-sys/acpica/dist/source/include/accommon.h vendor-sys/acpica/dist/source/include/acconfig.h vendor-sys/acpica/dist/source/include/acconvert.h vendor-sys/acpica/dist/source/include/acdebug.h vendor-sys/acpica/dist/source/include/acdisasm.h vendor-sys/acpica/dist/source/include/acdispat.h vendor-sys/acpica/dist/source/include/acevents.h vendor-sys/acpica/dist/source/include/acexcep.h vendor-sys/acpica/dist/source/include/acglobal.h vendor-sys/acpica/dist/source/include/achware.h vendor-sys/acpica/dist/source/include/acinterp.h vendor-sys/acpica/dist/source/include/aclocal.h vendor-sys/acpica/dist/source/include/acmacros.h vendor-sys/acpica/dist/source/include/acnames.h vendor-sys/acpica/dist/source/include/acnamesp.h vendor-sys/acpica/dist/source/include/acobject.h vendor-sys/acpica/dist/source/include/acopcode.h vendor-sys/acpica/dist/source/include/acoutput.h vendor-sys/acpica/dist/source/include/acparser.h vendor-sys/acpica/dist/source/include/acpi.h vendor-sys/acpica/dist/source/include/acpiosxf.h vendor-sys/acpica/dist/source/include/acpixf.h vendor-sys/acpica/dist/source/include/acpredef.h vendor-sys/acpica/dist/source/include/acresrc.h vendor-sys/acpica/dist/source/include/acrestyp.h vendor-sys/acpica/dist/source/include/acstruct.h vendor-sys/acpica/dist/source/include/actables.h vendor-sys/acpica/dist/source/include/actbinfo.h vendor-sys/acpica/dist/source/include/actbl.h vendor-sys/acpica/dist/source/include/actbl1.h vendor-sys/acpica/dist/source/include/actbl2.h vendor-sys/acpica/dist/source/include/actbl3.h vendor-sys/acpica/dist/source/include/actypes.h vendor-sys/acpica/dist/source/include/acutils.h vendor-sys/acpica/dist/source/include/acuuid.h vendor-sys/acpica/dist/source/include/amlcode.h vendor-sys/acpica/dist/source/include/amlresrc.h vendor-sys/acpica/dist/source/include/platform/accygwin.h vendor-sys/acpica/dist/source/include/platform/acdragonflyex.h vendor-sys/acpica/dist/source/include/platform/acefi.h vendor-sys/acpica/dist/source/include/platform/acefiex.h vendor-sys/acpica/dist/source/include/platform/acenv.h vendor-sys/acpica/dist/source/include/platform/acenvex.h vendor-sys/acpica/dist/source/include/platform/acfreebsd.h vendor-sys/acpica/dist/source/include/platform/acgcc.h vendor-sys/acpica/dist/source/include/platform/acgccex.h vendor-sys/acpica/dist/source/include/platform/achaiku.h vendor-sys/acpica/dist/source/include/platform/acintel.h vendor-sys/acpica/dist/source/include/platform/aclinux.h vendor-sys/acpica/dist/source/include/platform/aclinuxex.h vendor-sys/acpica/dist/source/include/platform/acmacosx.h vendor-sys/acpica/dist/source/include/platform/acmsvc.h vendor-sys/acpica/dist/source/include/platform/acmsvcex.h vendor-sys/acpica/dist/source/include/platform/acnetbsd.h vendor-sys/acpica/dist/source/include/platform/acos2.h vendor-sys/acpica/dist/source/include/platform/acqnx.h vendor-sys/acpica/dist/source/include/platform/acwin.h vendor-sys/acpica/dist/source/include/platform/acwin64.h vendor-sys/acpica/dist/source/os_specific/service_layers/osbsdtbl.c vendor-sys/acpica/dist/source/os_specific/service_layers/oslinuxtbl.c vendor-sys/acpica/dist/source/os_specific/service_layers/osunixdir.c vendor-sys/acpica/dist/source/os_specific/service_layers/osunixmap.c vendor-sys/acpica/dist/source/os_specific/service_layers/osunixxf.c vendor-sys/acpica/dist/source/os_specific/service_layers/oswindir.c vendor-sys/acpica/dist/source/os_specific/service_layers/oswintbl.c vendor-sys/acpica/dist/source/os_specific/service_layers/oswinxf.c vendor-sys/acpica/dist/source/tools/acpibin/abcompare.c vendor-sys/acpica/dist/source/tools/acpibin/abmain.c vendor-sys/acpica/dist/source/tools/acpibin/acpibin.h vendor-sys/acpica/dist/source/tools/acpidump/acpidump.h vendor-sys/acpica/dist/source/tools/acpidump/apdump.c vendor-sys/acpica/dist/source/tools/acpidump/apfiles.c vendor-sys/acpica/dist/source/tools/acpidump/apmain.c vendor-sys/acpica/dist/source/tools/acpiexec/aecommon.h vendor-sys/acpica/dist/source/tools/acpiexec/aeexception.c vendor-sys/acpica/dist/source/tools/acpiexec/aeexec.c vendor-sys/acpica/dist/source/tools/acpiexec/aehandlers.c vendor-sys/acpica/dist/source/tools/acpiexec/aeinitfile.c vendor-sys/acpica/dist/source/tools/acpiexec/aeinstall.c vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c vendor-sys/acpica/dist/source/tools/acpiexec/aeregion.c vendor-sys/acpica/dist/source/tools/acpiexec/aetables.c vendor-sys/acpica/dist/source/tools/acpiexec/aetables.h vendor-sys/acpica/dist/source/tools/acpiexec/aetests.c vendor-sys/acpica/dist/source/tools/acpihelp/acpihelp.h vendor-sys/acpica/dist/source/tools/acpihelp/ahaml.c vendor-sys/acpica/dist/source/tools/acpihelp/ahamlops.c vendor-sys/acpica/dist/source/tools/acpihelp/ahasl.c vendor-sys/acpica/dist/source/tools/acpihelp/ahaslkey.c vendor-sys/acpica/dist/source/tools/acpihelp/ahaslops.c vendor-sys/acpica/dist/source/tools/acpihelp/ahdecode.c vendor-sys/acpica/dist/source/tools/acpihelp/ahgrammar.c vendor-sys/acpica/dist/source/tools/acpihelp/ahmain.c vendor-sys/acpica/dist/source/tools/acpinames/acpinames.h vendor-sys/acpica/dist/source/tools/acpinames/anmain.c vendor-sys/acpica/dist/source/tools/acpinames/anstubs.c vendor-sys/acpica/dist/source/tools/acpinames/antables.c vendor-sys/acpica/dist/source/tools/acpisrc/acpisrc.h vendor-sys/acpica/dist/source/tools/acpisrc/ascase.c vendor-sys/acpica/dist/source/tools/acpisrc/asconvrt.c vendor-sys/acpica/dist/source/tools/acpisrc/asfile.c vendor-sys/acpica/dist/source/tools/acpisrc/asmain.c vendor-sys/acpica/dist/source/tools/acpisrc/asremove.c vendor-sys/acpica/dist/source/tools/acpisrc/astable.c vendor-sys/acpica/dist/source/tools/acpisrc/asutils.c vendor-sys/acpica/dist/source/tools/acpixtract/acpixtract.c vendor-sys/acpica/dist/source/tools/acpixtract/acpixtract.h vendor-sys/acpica/dist/source/tools/acpixtract/axmain.c vendor-sys/acpica/dist/source/tools/acpixtract/axutils.c vendor-sys/acpica/dist/source/tools/efihello/efihello.c vendor-sys/acpica/dist/source/tools/examples/examples.c vendor-sys/acpica/dist/source/tools/examples/examples.h vendor-sys/acpica/dist/source/tools/examples/exstubs.c vendor-sys/acpica/dist/source/tools/examples/extables.c vendor-sys/acpica/dist/tests/misc/grammar.asl Modified: vendor-sys/acpica/dist/changes.txt ============================================================================== --- vendor-sys/acpica/dist/changes.txt Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/changes.txt Fri Jan 10 18:46:46 2020 (r356607) @@ -1,22 +1,61 @@ ---------------------------------------- +10 January 2020. Summary of changes for version 20200110: + + +1) ACPICA kernel-resident subsystem: + +Updated all copyrights to 2020. This affects all ACPICA source code +modules. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +ASL test suite (ASLTS): Updated all copyrights to 2020. + +Tools and utilities: Updated all signon copyrights to 2020. + +iASL: fix forward reference analysis for field declarations. Fixes +forward reference analysis for field declarations by searching the +parent scope for the named object when the object is not present in +the current scope. + +iASL: Improved the error output for ALREADY_EXISTS errors. Now, the +full pathname of the name that already exists is printed. + +iASL: Enhance duplicate Case() detection for buffers. Add check for +buffers with no initializer list (these buffers will be filled with +zeros at runtime.) + + +---------------------------------------- 13 December 2019. Summary of changes for version 20191213: 1) ACPICA kernel-resident subsystem: -Return a Buffer object for all fields created via the CreateField operator. Previously, an Integer would be returned if the size of the field was less than or equal to the current size of an Integer. Although this goes against the ACPI specification, it provides compatibility with other ACPI implementations. Also updated the ASLTS test suite to reflect this new behavior. +Return a Buffer object for all fields created via the CreateField +operator. Previously, an Integer would be returned if the size of +the field was less than or equal to the current size of an Integer. +Although this goes against the ACPI specification, it provides +compatibility with other ACPI implementations. Also updated the +ASLTS test suite to reflect this new behavior. 2) iASL Compiler/Disassembler and ACPICA tools: -iASL: Implemented detection of (and throw an error for) duplicate values for Case statements within a single Switch statement. Duplicate Integers, Strings, and Buffers are supported. +iASL: Implemented detection of (and throw an error for) duplicate +values for Case statements within a single Switch statement. Duplicate +Integers, Strings, and Buffers are supported. -iASL: Fix error logging issue during multiple file compilation -- Switch to the correct input file during error node creation. +iASL: Fix error logging issue during multiple file compilation -- +Switch to the correct input file during error node creation. -iASL: For duplicate named object creation, now emit an error instead of a warning - since this will cause a runtime error. +iASL: For duplicate named object creation, now emit an error instead +of a warning - since this will cause a runtime error. AcpiSrc: Add unix line-ending support for non-Windows builds. -iASL: Add an error condition for an attempt to create a NameString with > 255 NameSegs (the max allowable via the AML definition). +iASL: Add an error condition for an attempt to create a NameString +with > 255 NameSegs (the max allowable via the AML definition). ---------------------------------------- Modified: vendor-sys/acpica/dist/source/common/acfileio.c ============================================================================== --- vendor-sys/acpica/dist/source/common/acfileio.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/acfileio.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/acgetline.c ============================================================================== --- vendor-sys/acpica/dist/source/common/acgetline.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/acgetline.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/adfile.c ============================================================================== --- vendor-sys/acpica/dist/source/common/adfile.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/adfile.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/adisasm.c ============================================================================== --- vendor-sys/acpica/dist/source/common/adisasm.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/adisasm.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/adwalk.c ============================================================================== --- vendor-sys/acpica/dist/source/common/adwalk.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/adwalk.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/ahids.c ============================================================================== --- vendor-sys/acpica/dist/source/common/ahids.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/ahids.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/ahpredef.c ============================================================================== --- vendor-sys/acpica/dist/source/common/ahpredef.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/ahpredef.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/ahtable.c ============================================================================== --- vendor-sys/acpica/dist/source/common/ahtable.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/ahtable.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/ahuuids.c ============================================================================== --- vendor-sys/acpica/dist/source/common/ahuuids.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/ahuuids.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/cmfsize.c ============================================================================== --- vendor-sys/acpica/dist/source/common/cmfsize.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/cmfsize.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmextern.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmextern.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmextern.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmrestag.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmrestag.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmrestag.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmswitch.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmswitch.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmswitch.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtable.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtable.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtable.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtables.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtables.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtables.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbdump.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbdump.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbdump.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbdump1.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbdump1.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbdump1.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbdump2.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbdump2.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbdump2.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbdump3.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbdump3.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbdump3.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbinfo.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbinfo.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbinfo.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbinfo1.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbinfo1.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbinfo1.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbinfo2.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbinfo2.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbinfo2.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/dmtbinfo3.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmtbinfo3.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/dmtbinfo3.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/common/getopt.c ============================================================================== --- vendor-sys/acpica/dist/source/common/getopt.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/common/getopt.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslallocate.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslallocate.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslallocate.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslanalyze.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslanalyze.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslanalyze.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslascii.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslascii.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslascii.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslbtypes.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslbtypes.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslbtypes.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslcache.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcache.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslcache.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslcodegen.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcodegen.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslcodegen.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslcompile.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcompile.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslcompile.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslcompiler.h ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcompiler.h Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslcompiler.h Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslcompiler.l ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcompiler.l Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslcompiler.l Fri Jan 10 18:46:46 2020 (r356607) @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslcompiler.y ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcompiler.y Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslcompiler.y Fri Jan 10 18:46:46 2020 (r356607) @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License @@ -4843,6 +4843,7 @@ OptionalXferSize /* Local support functions in C */ + /****************************************************************************** * * Local support functions @@ -4917,3 +4918,4 @@ UtGetOpName ( return ("[Unknown parser generator]"); #endif } + Modified: vendor-sys/acpica/dist/source/compiler/aslcstyle.y ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcstyle.y Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslcstyle.y Fri Jan 10 18:46:46 2020 (r356607) @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asldebug.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asldebug.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asldebug.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asldefine.h ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asldefine.h Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asldefine.h Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslerror.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslerror.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslerror.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License @@ -751,7 +751,14 @@ AePrintSubError ( MainMessage = AeDecodeMessageId (Enode->MessageId); - fprintf (OutputFile, " %s%s", MainMessage, "\n "); + fprintf (OutputFile, " %s", MainMessage); + + if (Enode->Message) + { + fprintf (OutputFile, "(%s)", Enode->Message); + } + + fprintf (OutputFile, "\n "); (void) AePrintErrorSourceLine (OutputFile, Enode, &PrematureEOF, &Total); fprintf (OutputFile, "\n"); } Modified: vendor-sys/acpica/dist/source/compiler/aslexternal.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslexternal.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslexternal.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslfileio.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslfileio.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslfileio.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslfiles.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslfiles.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslfiles.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslfold.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslfold.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslfold.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslglobal.h ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslglobal.h Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslglobal.h Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslhelp.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslhelp.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslhelp.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslhelpers.y ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslhelpers.y Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslhelpers.y Fri Jan 10 18:46:46 2020 (r356607) @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslhex.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslhex.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslhex.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslkeywords.y ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslkeywords.y Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslkeywords.y Fri Jan 10 18:46:46 2020 (r356607) @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asllength.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asllength.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asllength.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asllisting.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asllisting.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asllisting.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asllistsup.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asllistsup.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asllistsup.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslload.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslload.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslload.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License @@ -273,15 +273,15 @@ LdLoadFieldElements ( ACPI_PARSE_OBJECT *SourceRegion; ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status; + char *ExternalPath; SourceRegion = UtGetArg (Op, 0); if (SourceRegion) { Status = AcpiNsLookup (WalkState->ScopeInfo, - SourceRegion->Asl.Value.String, - AmlType, ACPI_IMODE_EXECUTE, - ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); + SourceRegion->Asl.Value.String, AmlType, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); if (Status == AE_NOT_FOUND) { /* @@ -357,9 +357,16 @@ LdLoadFieldElements ( * The name already exists in this scope * But continue processing the elements */ + ExternalPath = AcpiNsGetNormalizedPathname (Node, TRUE); + AslDualParseOpError (ASL_ERROR, ASL_MSG_NAME_EXISTS, Child, - Child->Asl.Value.String, ASL_MSG_FOUND_HERE, Node->Op, - Node->Op->Asl.ExternalName); + ExternalPath, ASL_MSG_FOUND_HERE, Node->Op, + ExternalPath); + + if (ExternalPath) + { + ACPI_FREE (ExternalPath); + } } } else @@ -403,6 +410,7 @@ LdLoadResourceElements ( ACPI_PARSE_OBJECT *InitializerOp = NULL; ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status; + char *ExternalPath; /* @@ -419,10 +427,17 @@ LdLoadResourceElements ( { /* Actual node causing the error was saved in ParentMethod */ + ExternalPath = AcpiNsGetNormalizedPathname (Node, TRUE); + AslDualParseOpError (ASL_ERROR, ASL_MSG_NAME_EXISTS, (ACPI_PARSE_OBJECT *) Op->Asl.ParentMethod, - Op->Asl.Namepath, ASL_MSG_FOUND_HERE, Node->Op, - Node->Op->Asl.ExternalName); + ExternalPath, ASL_MSG_FOUND_HERE, Node->Op, + ExternalPath); + + if (ExternalPath) + { + ACPI_FREE (ExternalPath); + } return (AE_OK); } return (Status); @@ -499,6 +514,7 @@ LdNamespace1Begin ( BOOLEAN ForceNewScope = FALSE; const ACPI_OPCODE_INFO *OpInfo; ACPI_PARSE_OBJECT *ParentOp; + char *ExternalPath; ACPI_FUNCTION_NAME (LdNamespace1Begin); @@ -939,9 +955,16 @@ LdNamespace1Begin ( { /* Valid error, object already exists */ + ExternalPath = AcpiNsGetNormalizedPathname (Node, TRUE); + AslDualParseOpError (ASL_ERROR, ASL_MSG_NAME_EXISTS, Op, - Op->Asl.ExternalName, ASL_MSG_FOUND_HERE, Node->Op, - Node->Op->Asl.ExternalName); + ExternalPath, ASL_MSG_FOUND_HERE, Node->Op, + ExternalPath); + + if (ExternalPath) + { + ACPI_FREE (ExternalPath); + } return_ACPI_STATUS (AE_OK); } } Modified: vendor-sys/acpica/dist/source/compiler/asllookup.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asllookup.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asllookup.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmain.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmain.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmain.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmap.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmap.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmap.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmapenter.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmapenter.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmapenter.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmapoutput.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmapoutput.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmapoutput.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmaputils.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmaputils.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmaputils.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmessages.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmessages.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmessages.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmessages.h ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmessages.h Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmessages.h Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslmethod.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmethod.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslmethod.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslnamesp.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslnamesp.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslnamesp.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asloffset.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asloffset.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asloffset.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslopcodes.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslopcodes.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslopcodes.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asloperands.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asloperands.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asloperands.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslopt.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslopt.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslopt.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/asloptions.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asloptions.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/asloptions.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslparseop.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslparseop.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslparseop.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslparser.y ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslparser.y Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslparser.y Fri Jan 10 18:46:46 2020 (r356607) @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslpld.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslpld.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslpld.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslpredef.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslpredef.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslpredef.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslprepkg.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslprepkg.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslprepkg.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslprimaries.y ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslprimaries.y Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslprimaries.y Fri Jan 10 18:46:46 2020 (r356607) @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslprintf.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslprintf.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslprintf.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: vendor-sys/acpica/dist/source/compiler/aslprune.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslprune.c Fri Jan 10 18:31:59 2020 (r356606) +++ vendor-sys/acpica/dist/source/compiler/aslprune.c Fri Jan 10 18:46:46 2020 (r356607) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jan 10 18:48:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AEC8B1EFC8C; Fri, 10 Jan 2020 18:48:11 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vX6z4BXKz3x5L; Fri, 10 Jan 2020 18:48:11 +0000 (UTC) (envelope-from jkim@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 725721E61E; Fri, 10 Jan 2020 18:48:11 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AImBto064821; Fri, 10 Jan 2020 18:48:11 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AImBnd064820; Fri, 10 Jan 2020 18:48:11 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001101848.00AImBnd064820@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 10 Jan 2020 18:48:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356608 - vendor-sys/acpica/20200110 X-SVN-Group: vendor-sys X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: vendor-sys/acpica/20200110 X-SVN-Commit-Revision: 356608 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:48:11 -0000 Author: jkim Date: Fri Jan 10 18:48:11 2020 New Revision: 356608 URL: https://svnweb.freebsd.org/changeset/base/356608 Log: Tag ACPICA 20200110. Added: vendor-sys/acpica/20200110/ - copied from r356607, vendor-sys/acpica/dist/ From owner-svn-src-all@freebsd.org Fri Jan 10 18:52:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 111561EFEDE; Fri, 10 Jan 2020 18:52:15 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vXCf6Ztxz3xSg; Fri, 10 Jan 2020 18:52:14 +0000 (UTC) (envelope-from manu@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DD1DE1E7C7; Fri, 10 Jan 2020 18:52:14 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIqEbZ070537; Fri, 10 Jan 2020 18:52:14 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIqEIX070535; Fri, 10 Jan 2020 18:52:14 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001101852.00AIqEIX070535@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 10 Jan 2020 18:52:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356609 - head/sys/dev/iicbus/twsi X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dev/iicbus/twsi X-SVN-Commit-Revision: 356609 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:52:15 -0000 Author: manu Date: Fri Jan 10 18:52:14 2020 New Revision: 356609 URL: https://svnweb.freebsd.org/changeset/base/356609 Log: twsi: Rework how we handle the i2c messages We use to handle each message separately in i2c_transfer but that cannot work with message with NOSTOP as it confuses the controller that we disable the interrupts and start a new message. Handle every message in the interrupt handler and fire a new start condition if the previous message have NOSTOP, the controller understand this as a repeated start. This fixes booting on Allwinner A10/A20 platform where before the i2c controller used to write 0 to the PMIC register that control the regulators as it though that this was the continuation of the write message. Tested on: A20 BananaPi, Cubieboard 1 (kevans) Reported by: kevans MFC after: 1 month Modified: head/sys/dev/iicbus/twsi/twsi.c head/sys/dev/iicbus/twsi/twsi.h Modified: head/sys/dev/iicbus/twsi/twsi.c ============================================================================== --- head/sys/dev/iicbus/twsi/twsi.c Fri Jan 10 18:48:11 2020 (r356608) +++ head/sys/dev/iicbus/twsi/twsi.c Fri Jan 10 18:52:14 2020 (r356609) @@ -481,7 +481,6 @@ static int twsi_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) { struct twsi_softc *sc; - int i; sc = device_get_softc(dev); @@ -495,28 +494,25 @@ twsi_transfer(device_t dev, struct iic_msg *msgs, uint TWSI_WRITE(sc, sc->reg_control, sc->control_val); debugf(dev, "transmitting %d messages\n", nmsgs); debugf(sc->dev, "status=%x\n", TWSI_READ(sc, sc->reg_status)); - for (i = 0; i < nmsgs && sc->error == 0; i++) { - sc->transfer = 1; - sc->msg = &msgs[i]; - debugf(dev, "msg[%d] flags: %x\n", i, msgs[i].flags); - debugf(dev, "msg[%d] len: %d\n", i, msgs[i].len); + sc->nmsgs = nmsgs; + sc->msgs = msgs; + sc->msg_idx = 0; + sc->transfer = 1; - /* Send start and re-enable interrupts */ - sc->control_val = TWSI_CONTROL_TWSIEN | - TWSI_CONTROL_INTEN | TWSI_CONTROL_ACK; - if (sc->msg->len == 1) - sc->control_val &= ~TWSI_CONTROL_ACK; - TWSI_WRITE(sc, sc->reg_control, sc->control_val | TWSI_CONTROL_START); - while (sc->error == 0 && sc->transfer != 0) { - pause_sbt("twsi", SBT_1MS * 30, SBT_1MS, 0); - } + /* Send start and re-enable interrupts */ + sc->control_val = TWSI_CONTROL_TWSIEN | + TWSI_CONTROL_INTEN | TWSI_CONTROL_ACK; + if (sc->msgs[0].len == 1) + sc->control_val &= ~TWSI_CONTROL_ACK; + TWSI_WRITE(sc, sc->reg_control, sc->control_val | TWSI_CONTROL_START); + while (sc->error == 0 && sc->transfer != 0) { + pause_sbt("twsi", SBT_1MS * 30, SBT_1MS, 0); + } + debugf(sc->dev, "pause finish\n"); - debugf(dev, "Done with msg[%d]\n", i); - if (sc->error) { - debugf(sc->dev, "Error, aborting (%d)\n", sc->error); - TWSI_WRITE(sc, sc->reg_control, 0); - goto out; - } + if (sc->error) { + debugf(sc->dev, "Error, aborting (%d)\n", sc->error); + TWSI_WRITE(sc, sc->reg_control, 0); } /* Disable module and interrupts */ @@ -524,7 +520,6 @@ twsi_transfer(device_t dev, struct iic_msg *msgs, uint TWSI_WRITE(sc, sc->reg_control, 0); debugf(sc->dev, "status=%x\n", TWSI_READ(sc, sc->reg_status)); -out: return (sc->error); } @@ -537,122 +532,123 @@ twsi_intr(void *arg) sc = arg; - debugf(sc->dev, "Got interrupt\n"); + debugf(sc->dev, "Got interrupt Current msg=%x\n", sc->msg_idx); - while (TWSI_READ(sc, sc->reg_control) & TWSI_CONTROL_IFLG) { - status = TWSI_READ(sc, sc->reg_status); - debugf(sc->dev, "status=%x\n", status); + status = TWSI_READ(sc, sc->reg_status); + debugf(sc->dev, "initial status=%x\n", status); - switch (status) { - case TWSI_STATUS_START: - case TWSI_STATUS_RPTD_START: - /* Transmit the address */ - debugf(sc->dev, "Send the address\n"); + switch (status) { + case TWSI_STATUS_START: + case TWSI_STATUS_RPTD_START: + /* Transmit the address */ + debugf(sc->dev, "Send the address\n"); - if (sc->msg->flags & IIC_M_RD) - TWSI_WRITE(sc, sc->reg_data, - sc->msg->slave | LSB); - else - TWSI_WRITE(sc, sc->reg_data, - sc->msg->slave & ~LSB); + if (sc->msgs[sc->msg_idx].flags & IIC_M_RD) + TWSI_WRITE(sc, sc->reg_data, + sc->msgs[sc->msg_idx].slave | LSB); + else + TWSI_WRITE(sc, sc->reg_data, + sc->msgs[sc->msg_idx].slave & ~LSB); + TWSI_WRITE(sc, sc->reg_control, sc->control_val); + break; - TWSI_WRITE(sc, sc->reg_control, sc->control_val); - break; + case TWSI_STATUS_ADDR_W_ACK: + debugf(sc->dev, "Ack received after transmitting the address (write)\n"); + /* Directly send the first byte */ + sc->sent_bytes = 0; + debugf(sc->dev, "Sending byte 0 = %x\n", sc->msgs[sc->msg_idx].buf[0]); + TWSI_WRITE(sc, sc->reg_data, sc->msgs[sc->msg_idx].buf[0]); - case TWSI_STATUS_ADDR_W_ACK: - debugf(sc->dev, "Ack received after transmitting the address\n"); - /* Directly send the first byte */ - sc->sent_bytes = 0; - debugf(sc->dev, "Sending byte 0 = %x\n", sc->msg->buf[0]); - TWSI_WRITE(sc, sc->reg_data, sc->msg->buf[0]); + TWSI_WRITE(sc, sc->reg_control, sc->control_val); + break; - TWSI_WRITE(sc, sc->reg_control, sc->control_val); - break; + case TWSI_STATUS_ADDR_R_ACK: + debugf(sc->dev, "Ack received after transmitting the address (read)\n"); + sc->recv_bytes = 0; - case TWSI_STATUS_ADDR_R_ACK: - debugf(sc->dev, "Ack received after transmitting the address\n"); - sc->recv_bytes = 0; + TWSI_WRITE(sc, sc->reg_control, sc->control_val); + break; - TWSI_WRITE(sc, sc->reg_control, sc->control_val); - break; + case TWSI_STATUS_ADDR_W_NACK: + case TWSI_STATUS_ADDR_R_NACK: + debugf(sc->dev, "No ack received after transmitting the address\n"); + sc->transfer = 0; + sc->error = ETIMEDOUT; + sc->control_val = 0; + wakeup(sc); + break; - case TWSI_STATUS_ADDR_W_NACK: - case TWSI_STATUS_ADDR_R_NACK: - debugf(sc->dev, "No ack received after transmitting the address\n"); - sc->transfer = 0; - sc->error = ETIMEDOUT; - sc->control_val = 0; - wakeup(sc); - break; - - case TWSI_STATUS_DATA_WR_ACK: - debugf(sc->dev, "Ack received after transmitting data\n"); - if (sc->sent_bytes++ == (sc->msg->len - 1)) { - debugf(sc->dev, "Done sending all the bytes\n"); - /* Send stop, no interrupts on stop */ - if (!(sc->msg->flags & IIC_M_NOSTOP)) { - debugf(sc->dev, "Done TX data, send stop\n"); - TWSI_WRITE(sc, sc->reg_control, - sc->control_val | TWSI_CONTROL_STOP); - } else { - sc->control_val &= ~TWSI_CONTROL_INTEN; - TWSI_WRITE(sc, sc->reg_control, - sc->control_val); - } - transfer_done = 1; - } else { - debugf(sc->dev, "Sending byte %d = %x\n", - sc->sent_bytes, - sc->msg->buf[sc->sent_bytes]); - TWSI_WRITE(sc, sc->reg_data, - sc->msg->buf[sc->sent_bytes]); + case TWSI_STATUS_DATA_WR_ACK: + debugf(sc->dev, "Ack received after transmitting data\n"); + if (sc->sent_bytes++ == (sc->msgs[sc->msg_idx].len - 1)) { + debugf(sc->dev, "Done sending all the bytes for msg %d\n", sc->msg_idx); + /* Send stop, no interrupts on stop */ + if (!(sc->msgs[sc->msg_idx].flags & IIC_M_NOSTOP)) { + debugf(sc->dev, "Done TX data, send stop\n"); TWSI_WRITE(sc, sc->reg_control, - sc->control_val); + sc->control_val | TWSI_CONTROL_STOP); + } else { + debugf(sc->dev, "Done TX data with NO_STOP\n"); + TWSI_WRITE(sc, sc->reg_control, sc->control_val | TWSI_CONTROL_START); } + sc->msg_idx++; + if (sc->msg_idx == sc->nmsgs) { + debugf(sc->dev, "transfer_done=1\n"); + transfer_done = 1; + } + } else { + debugf(sc->dev, "Sending byte %d = %x\n", + sc->sent_bytes, + sc->msgs[sc->msg_idx].buf[sc->sent_bytes]); + TWSI_WRITE(sc, sc->reg_data, + sc->msgs[sc->msg_idx].buf[sc->sent_bytes]); + TWSI_WRITE(sc, sc->reg_control, + sc->control_val); + } + break; - break; - case TWSI_STATUS_DATA_RD_ACK: - debugf(sc->dev, "Ack received after receiving data\n"); - debugf(sc->dev, "msg_len=%d recv_bytes=%d\n", sc->msg->len, sc->recv_bytes); - sc->msg->buf[sc->recv_bytes++] = TWSI_READ(sc, sc->reg_data); + case TWSI_STATUS_DATA_RD_ACK: + debugf(sc->dev, "Ack received after receiving data\n"); + debugf(sc->dev, "msg_len=%d recv_bytes=%d\n", sc->msgs[sc->msg_idx].len, sc->recv_bytes); + sc->msgs[sc->msg_idx].buf[sc->recv_bytes++] = TWSI_READ(sc, sc->reg_data); - /* If we only have one byte left, disable ACK */ - if (sc->msg->len - sc->recv_bytes == 1) - sc->control_val &= ~TWSI_CONTROL_ACK; - TWSI_WRITE(sc, sc->reg_control, sc->control_val); - break; + /* If we only have one byte left, disable ACK */ + if (sc->msgs[sc->msg_idx].len - sc->recv_bytes == 1) + sc->control_val &= ~TWSI_CONTROL_ACK; + if (sc->msgs[sc->msg_idx].len - sc->recv_bytes) { + sc->msg_idx++; + if (sc->msg_idx == sc->nmsgs - 1) + transfer_done = 1; + } + TWSI_WRITE(sc, sc->reg_control, sc->control_val); + break; - case TWSI_STATUS_DATA_RD_NOACK: - if (sc->msg->len - sc->recv_bytes == 1) { - sc->msg->buf[sc->recv_bytes++] = TWSI_READ(sc, sc->reg_data); - debugf(sc->dev, "Done RX data, send stop (2)\n"); - if (!(sc->msg->flags & IIC_M_NOSTOP)) - TWSI_WRITE(sc, sc->reg_control, - sc->control_val | TWSI_CONTROL_STOP); - } else { - debugf(sc->dev, "No ack when receiving data\n"); - sc->error = ENXIO; - sc->control_val = 0; - } - sc->transfer = 0; - transfer_done = 1; - break; - - default: - debugf(sc->dev, "status=%x hot handled\n", status); - sc->transfer = 0; + case TWSI_STATUS_DATA_RD_NOACK: + if (sc->msgs[sc->msg_idx].len - sc->recv_bytes == 1) { + sc->msgs[sc->msg_idx].buf[sc->recv_bytes++] = TWSI_READ(sc, sc->reg_data); + debugf(sc->dev, "Done RX data, send stop (2)\n"); + if (!(sc->msgs[sc->msg_idx].flags & IIC_M_NOSTOP)) + TWSI_WRITE(sc, sc->reg_control, + sc->control_val | TWSI_CONTROL_STOP); + } else { + debugf(sc->dev, "No ack when receiving data\n"); sc->error = ENXIO; sc->control_val = 0; - wakeup(sc); - break; } + sc->transfer = 0; + transfer_done = 1; + break; - if (sc->need_ack) - TWSI_WRITE(sc, sc->reg_control, - sc->control_val | TWSI_CONTROL_IFLG); + default: + debugf(sc->dev, "status=%x hot handled\n", status); + sc->transfer = 0; + sc->error = ENXIO; + sc->control_val = 0; + wakeup(sc); + break; } - debugf(sc->dev, "Done with interrupts\n"); + debugf(sc->dev, "Done with interrupts\n\n"); if (transfer_done == 1) { sc->transfer = 0; wakeup(sc); Modified: head/sys/dev/iicbus/twsi/twsi.h ============================================================================== --- head/sys/dev/iicbus/twsi/twsi.h Fri Jan 10 18:48:11 2020 (r356608) +++ head/sys/dev/iicbus/twsi/twsi.h Fri Jan 10 18:52:14 2020 (r356609) @@ -57,7 +57,9 @@ struct twsi_softc { void * intrhand; bool have_intr; - struct iic_msg *msg; + struct iic_msg *msgs; + uint32_t nmsgs; + uint32_t msg_idx; uint16_t sent_bytes; uint16_t recv_bytes; int transfer; From owner-svn-src-all@freebsd.org Fri Jan 10 18:53:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9E87F1F000D; Fri, 10 Jan 2020 18:53:14 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vXDp3m0dz3xjV; Fri, 10 Jan 2020 18:53:14 +0000 (UTC) (envelope-from manu@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7BF011E7E6; Fri, 10 Jan 2020 18:53:14 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIrE1u070626; Fri, 10 Jan 2020 18:53:14 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIrEXX070625; Fri, 10 Jan 2020 18:53:14 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001101853.00AIrEXX070625@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 10 Jan 2020 18:53:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356610 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 356610 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:53:14 -0000 Author: manu Date: Fri Jan 10 18:53:14 2020 New Revision: 356610 URL: https://svnweb.freebsd.org/changeset/base/356610 Log: arm: allwinner: axp209: Add regnode_status method This allow consumers to check if the regulator is enable or not. MFC after: 1 week Modified: head/sys/arm/allwinner/axp209.c Modified: head/sys/arm/allwinner/axp209.c ============================================================================== --- head/sys/arm/allwinner/axp209.c Fri Jan 10 18:52:14 2020 (r356609) +++ head/sys/arm/allwinner/axp209.c Fri Jan 10 18:53:14 2020 (r356610) @@ -708,6 +708,22 @@ axp2xx_regnode_voltage_to_reg(struct axp2xx_reg_sc *sc } static int +axp2xx_regnode_status(struct regnode *regnode, int *status) +{ + struct axp2xx_reg_sc *sc; + uint8_t val; + + sc = regnode_get_softc(regnode); + + *status = 0; + axp2xx_read(sc->base_dev, sc->def->enable_reg, &val, 1); + if (val & sc->def->enable_mask) + *status = REGULATOR_STATUS_ENABLED; + + return (0); +} + +static int axp2xx_regnode_set_voltage(struct regnode *regnode, int min_uvolt, int max_uvolt, int *udelay) { @@ -750,6 +766,7 @@ static regnode_method_t axp2xx_regnode_methods[] = { /* Regulator interface */ REGNODEMETHOD(regnode_init, axp2xx_regnode_init), REGNODEMETHOD(regnode_enable, axp2xx_regnode_enable), + REGNODEMETHOD(regnode_status, axp2xx_regnode_status), REGNODEMETHOD(regnode_set_voltage, axp2xx_regnode_set_voltage), REGNODEMETHOD(regnode_get_voltage, axp2xx_regnode_get_voltage), REGNODEMETHOD(regnode_check_voltage, regnode_method_check_voltage), From owner-svn-src-all@freebsd.org Fri Jan 10 19:32:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2EB4F1F16E6; Fri, 10 Jan 2020 19:32:09 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vY5j0SLrz43Gr; Fri, 10 Jan 2020 19:32:09 +0000 (UTC) (envelope-from glebius@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0B0411EF58; Fri, 10 Jan 2020 19:32:09 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AJW8OM095246; Fri, 10 Jan 2020 19:32:08 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AJW8vW095245; Fri, 10 Jan 2020 19:32:08 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001101932.00AJW8vW095245@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 10 Jan 2020 19:32:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356611 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356611 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 19:32:09 -0000 Author: glebius Date: Fri Jan 10 19:32:08 2020 New Revision: 356611 URL: https://svnweb.freebsd.org/changeset/base/356611 Log: Always multiple vm.pgcache_zone_max to number of CPUs, and rename it respectively. The tunable controls how big is the size of per-cpu vm page cache. Previously the value was split for all CPUs in system, so configuring same value on machines with different count of CPUs yielded in different cache size available to a particular CPU. Reviewed by: markj Obtained from: Netflix Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Fri Jan 10 18:53:14 2020 (r356610) +++ head/sys/vm/vm_page.c Fri Jan 10 19:32:08 2020 (r356611) @@ -228,7 +228,8 @@ vm_page_init_cache_zones(void *dummy __unused) int cache, domain, maxcache, pool; maxcache = 0; - TUNABLE_INT_FETCH("vm.pgcache_zone_max", &maxcache); + TUNABLE_INT_FETCH("vm.pgcache_zone_max_pcpu", &maxcache); + maxcache *= mp_ncpus; for (domain = 0; domain < vm_ndomains; domain++) { vmd = VM_DOMAIN(domain); for (pool = 0; pool < VM_NFREEPOOL; pool++) { From owner-svn-src-all@freebsd.org Fri Jan 10 20:53:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8CE471F38F2; Fri, 10 Jan 2020 20:53:59 +0000 (UTC) (envelope-from lbartoletti@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vZw73CKFz47r7; Fri, 10 Jan 2020 20:53:59 +0000 (UTC) (envelope-from lbartoletti@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 68B691FE2C; Fri, 10 Jan 2020 20:53:59 +0000 (UTC) (envelope-from lbartoletti@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AKrxKN046217; Fri, 10 Jan 2020 20:53:59 GMT (envelope-from lbartoletti@FreeBSD.org) Received: (from lbartoletti@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AKrx76046216; Fri, 10 Jan 2020 20:53:59 GMT (envelope-from lbartoletti@FreeBSD.org) Message-Id: <202001102053.00AKrx76046216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lbartoletti set sender to lbartoletti@FreeBSD.org using -f From: =?UTF-8?Q?Lo=c3=afc_Bartoletti?= Date: Fri, 10 Jan 2020 20:53:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356612 - head/share/misc X-SVN-Group: head X-SVN-Commit-Author: lbartoletti X-SVN-Commit-Paths: head/share/misc X-SVN-Commit-Revision: 356612 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 20:53:59 -0000 Author: lbartoletti (ports committer) Date: Fri Jan 10 20:53:58 2020 New Revision: 356612 URL: https://svnweb.freebsd.org/changeset/base/356612 Log: Add myself (lbartoletti) as a ports commiter Step 5 (Update Mentor and Mentee Information) from Commiters guide. I also alphababetize mentees from tcberner. Approved by: tcberner (mentor) Differential Revision: https://reviews.freebsd.org/D23125 Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot ============================================================================== --- head/share/misc/committers-ports.dot Fri Jan 10 19:32:08 2020 (r356611) +++ head/share/misc/committers-ports.dot Fri Jan 10 20:53:58 2020 (r356612) @@ -163,6 +163,7 @@ krion [label="Kirill Ponomarew\nkrion@FreeBSD.org\n200 kwm [label="Koop Mast\nkwm@FreeBSD.org\n2004/09/14"] laszlof [label="Frank Laszlo\nlaszlof@FreeBSD.org\n2006/11/07"] lawrance [label="Sam Lawrance\nlawrance@FreeBSD.org\n2005/04/11\n2007/02/21"] +lbartoletti [label="Loïc Bartoletti\nlbartoletti@FreeBSD.org\n2020/01/02"] lbr [label="Lars Balker Rasmussen\nlbr@FreeBSD.org\n2006/04/30"] leeym [label="Yen-Ming Lee\nleeym@FreeBSD.org\n2002/08/14"] ler [label="Larry Rosenman\nler@FreeBSD.org\n2017/01/09"] @@ -697,6 +698,7 @@ swills -> feld swills -> jmd swills -> jrm swills -> jsm +swills -> lbartoletti swills -> mfechner swills -> milki swills -> pclin @@ -724,13 +726,14 @@ tabthorpe -> zi tabthorpe -> gblach tcberner -> adridg -tcberner -> joneum -tcberner -> yuri -tcberner -> fernape tcberner -> arrowd -tcberner -> rigoletto +tcberner -> fernape +tcberner -> joneum tcberner -> kai +tcberner -> lbartoletti tcberner -> pkubaj +tcberner -> rigoletto +tcberner -> yuri thierry -> jadawin thierry -> riggs From owner-svn-src-all@freebsd.org Fri Jan 10 21:22:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1A7A91F42C0; Fri, 10 Jan 2020 21:22:04 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vbXW74Pbz49Lq; Fri, 10 Jan 2020 21:22:03 +0000 (UTC) (envelope-from glebius@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EDCC52026E; Fri, 10 Jan 2020 21:22:03 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ALM35r063533; Fri, 10 Jan 2020 21:22:03 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ALM37Q063532; Fri, 10 Jan 2020 21:22:03 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001102122.00ALM37Q063532@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 10 Jan 2020 21:22:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356613 - head/sys/dev/virtio/network X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/dev/virtio/network X-SVN-Commit-Revision: 356613 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 21:22:04 -0000 Author: glebius Date: Fri Jan 10 21:22:03 2020 New Revision: 356613 URL: https://svnweb.freebsd.org/changeset/base/356613 Log: Add pfil(9) hook to vtnet(4). The patch could be simplier, using only the second chunk to vtnet_rxq_eof(), that passes full mbufs to pfil(9). Packet filter would m_free() them in case of returning PFIL_DROPPED. However, we pretend to be a hardware driver, so we first try to pass a memory buffer via PFIL_MEMPTR feature. This is mostly done for debugging purposes, so that one can experiment in bhyve with packet filters utilizing same features as a true driver. Modified: head/sys/dev/virtio/network/if_vtnet.c head/sys/dev/virtio/network/if_vtnetvar.h Modified: head/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- head/sys/dev/virtio/network/if_vtnet.c Fri Jan 10 20:53:58 2020 (r356612) +++ head/sys/dev/virtio/network/if_vtnet.c Fri Jan 10 21:22:03 2020 (r356613) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -935,6 +936,7 @@ static int vtnet_setup_interface(struct vtnet_softc *sc) { device_t dev; + struct pfil_head_args pa; struct ifnet *ifp; dev = sc->vtnet_dev; @@ -1038,6 +1040,12 @@ vtnet_setup_interface(struct vtnet_softc *sc) DEBUGNET_SET(ifp, vtnet); + pa.pa_version = PFIL_VERSION; + pa.pa_flags = PFIL_IN; + pa.pa_type = PFIL_TYPE_ETHERNET; + pa.pa_headname = ifp->if_xname; + sc->vtnet_pfil = pfil_head_register(&pa); + return (0); } @@ -1773,9 +1781,11 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) struct vtnet_softc *sc; struct ifnet *ifp; struct virtqueue *vq; - struct mbuf *m; + struct mbuf *m, *mr; struct virtio_net_hdr_mrg_rxbuf *mhdr; int len, deq, nbufs, adjsz, count; + pfil_return_t pfil; + bool pfil_done; sc = rxq->vtnrx_sc; vq = rxq->vtnrx_vq; @@ -1812,6 +1822,35 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) adjsz = sizeof(struct virtio_net_hdr_mrg_rxbuf); } + /* + * If we have enough data in first mbuf, run it through + * pfil as a memory buffer before dequeueing the rest. + */ + if (PFIL_HOOKED_IN(sc->vtnet_pfil) && + len - adjsz >= ETHER_HDR_LEN + max_protohdr) { + pfil = pfil_run_hooks(sc->vtnet_pfil, + m->m_data + adjsz, ifp, + len - adjsz | PFIL_MEMPTR | PFIL_IN, NULL); + switch (pfil) { + case PFIL_REALLOCED: + mr = pfil_mem2mbuf(m->m_data + adjsz); + vtnet_rxq_input(rxq, mr, hdr); + /* FALLTHROUGH */ + case PFIL_DROPPED: + case PFIL_CONSUMED: + vtnet_rxq_discard_buf(rxq, m); + if (nbufs > 1) + vtnet_rxq_discard_merged_bufs(rxq, + nbufs); + continue; + default: + KASSERT(pfil == PFIL_PASS, + ("Filter returned %d!\n", pfil)); + }; + pfil_done = true; + } else + pfil_done = false; + if (vtnet_rxq_replace_buf(rxq, m, len) != 0) { rxq->vtnrx_stats.vrxs_iqdrops++; vtnet_rxq_discard_buf(rxq, m); @@ -1841,6 +1880,19 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) */ memcpy(hdr, mtod(m, void *), sizeof(struct virtio_net_hdr)); m_adj(m, adjsz); + + if (PFIL_HOOKED_IN(sc->vtnet_pfil) && pfil_done == false) { + pfil = pfil_run_hooks(sc->vtnet_pfil, &m, ifp, PFIL_IN, + NULL); + switch (pfil) { + case PFIL_DROPPED: + case PFIL_CONSUMED: + continue; + default: + KASSERT(pfil == PFIL_PASS, + ("Filter returned %d!\n", pfil)); + } + } vtnet_rxq_input(rxq, m, hdr); Modified: head/sys/dev/virtio/network/if_vtnetvar.h ============================================================================== --- head/sys/dev/virtio/network/if_vtnetvar.h Fri Jan 10 20:53:58 2020 (r356612) +++ head/sys/dev/virtio/network/if_vtnetvar.h Fri Jan 10 21:22:03 2020 (r356613) @@ -136,6 +136,7 @@ struct vtnet_softc { struct ifnet *vtnet_ifp; struct vtnet_rxq *vtnet_rxqs; struct vtnet_txq *vtnet_txqs; + pfil_head_t vtnet_pfil; uint32_t vtnet_flags; #define VTNET_FLAG_SUSPENDED 0x0001 From owner-svn-src-all@freebsd.org Fri Jan 10 21:51:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E289E1F477D; Fri, 10 Jan 2020 21:51:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vcBR5g0Sz4Bc8; Fri, 10 Jan 2020 21:51:27 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD3C7207AA; Fri, 10 Jan 2020 21:51:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ALpRUG078294; Fri, 10 Jan 2020 21:51:27 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ALpRYE078293; Fri, 10 Jan 2020 21:51:27 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001102151.00ALpRYE078293@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 21:51:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356614 - head/tests/sys/fs/fusefs X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/tests/sys/fs/fusefs X-SVN-Commit-Revision: 356614 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 21:51:27 -0000 Author: kevans Date: Fri Jan 10 21:51:27 2020 New Revision: 356614 URL: https://svnweb.freebsd.org/changeset/base/356614 Log: tests: fusefs: silence remaining unsigned/signed comparison warnings External GCC turns these into errors; cast to long to silence them. Reviewed by: asomers Differential Revision: https://reviews.freebsd.org/D23127 Modified: head/tests/sys/fs/fusefs/setattr.cc Modified: head/tests/sys/fs/fusefs/setattr.cc ============================================================================== --- head/tests/sys/fs/fusefs/setattr.cc Fri Jan 10 21:22:03 2020 (r356613) +++ head/tests/sys/fs/fusefs/setattr.cc Fri Jan 10 21:51:27 2020 (r356614) @@ -586,11 +586,11 @@ TEST_F(Setattr, utimensat) { in.body.setattr.valid == valid && (time_t)in.body.setattr.atime == newtimes[0].tv_sec && - in.body.setattr.atimensec == + (long)in.body.setattr.atimensec == newtimes[0].tv_nsec && (time_t)in.body.setattr.mtime == newtimes[1].tv_sec && - in.body.setattr.mtimensec == + (long)in.body.setattr.mtimensec == newtimes[1].tv_nsec); }, Eq(true)), _) @@ -641,7 +641,7 @@ TEST_F(Setattr, utimensat_mtime_only) { in.body.setattr.valid == valid && (time_t)in.body.setattr.mtime == newtimes[1].tv_sec && - in.body.setattr.mtimensec == + (long)in.body.setattr.mtimensec == newtimes[1].tv_nsec); }, Eq(true)), _) From owner-svn-src-all@freebsd.org Fri Jan 10 22:00:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7552A1F4EB5; Fri, 10 Jan 2020 22:00:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vcP42btdz4CDC; Fri, 10 Jan 2020 22:00:40 +0000 (UTC) (envelope-from emaste@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 543B920933; Fri, 10 Jan 2020 22:00:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AM0e45082665; Fri, 10 Jan 2020 22:00:40 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AM0eBf082664; Fri, 10 Jan 2020 22:00:40 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001102200.00AM0eBf082664@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 10 Jan 2020 22:00:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356615 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356615 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 22:00:40 -0000 Author: emaste Date: Fri Jan 10 22:00:39 2020 New Revision: 356615 URL: https://svnweb.freebsd.org/changeset/base/356615 Log: src.opts.mk: force KERBEROS_SUPPORT off where KERBEROS forced off Explicitly setting WITHOUT_KERBEROS implies WITHOUT_KERBEROS_SUPPORT, but previously other cases that forced KERBEROS off (such as WITHOUT_CRYPT) did not also set KERBEROS_SUPPORT off. Because the _SUPPORT dependent options (KERBEROS/KERBEROS_SUPPORT) are processed before other dependencies (CRYPT/KERBEROS) it's not easy to make this happen automatically. Instead just explicitly set KERBEROS_SUPPORT off where we set KERBEROS off. Reported by: Michael Dexter's Build Option Survey run Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Fri Jan 10 21:51:27 2020 (r356614) +++ head/share/mk/src.opts.mk Fri Jan 10 22:00:39 2020 (r356615) @@ -459,6 +459,7 @@ MK_CTF:= no MK_OPENSSL:= no MK_OPENSSH:= no MK_KERBEROS:= no +MK_KERBEROS_SUPPORT:= no .endif .if ${MK_CXX} == "no" @@ -498,6 +499,7 @@ MK_NLS_CATALOGS:= no .if ${MK_OPENSSL} == "no" MK_OPENSSH:= no MK_KERBEROS:= no +MK_KERBEROS_SUPPORT:= no MK_LDNS:= no .endif From owner-svn-src-all@freebsd.org Fri Jan 10 22:10:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AA98C1F5204; Fri, 10 Jan 2020 22:10:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vcbt4631z4CkK; Fri, 10 Jan 2020 22:10:02 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 880D520AF3; Fri, 10 Jan 2020 22:10:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AMA2ZL088793; Fri, 10 Jan 2020 22:10:02 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AMA2GY088791; Fri, 10 Jan 2020 22:10:02 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001102210.00AMA2GY088791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Fri, 10 Jan 2020 22:10:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356616 - in stable/12: sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Commit-Revision: 356616 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 22:10:02 -0000 Author: bz Date: Fri Jan 10 22:10:01 2020 New Revision: 356616 URL: https://svnweb.freebsd.org/changeset/base/356616 Log: MFC r354542: frag6: properly handle atomic fragments according to RFCs. RFC 8200 says: "If the fragment is a whole datagram (that is, both the Fragment Offset field and the M flag are zero), then it does not need any further reassembly and should be processed as a fully reassembled packet (i.e., updating Next Header, adjust Payload Length, removing the Fragment header, etc.). .." That means we should remove the fragment header and make all the adjustments rather than just skipping over the fragment header. The difference should be noticeable in that a properly handled atomic fragment triggering an ICMPv6 message at an upper layer (e.g. dest unreach, unreachable port) will not include the fragment header. Update the test cases to also test for an unfragmentable part. That is needed so that the next header is properly updated (not just lengths). Modified: stable/12/sys/netinet6/frag6.c stable/12/tests/sys/netinet6/frag6/frag6_03.py stable/12/tests/sys/netinet6/frag6/frag6_03.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Fri Jan 10 22:00:39 2020 (r356615) +++ stable/12/sys/netinet6/frag6.c Fri Jan 10 22:10:01 2020 (r356616) @@ -395,6 +395,8 @@ frag6_input(struct mbuf **mp, int *offp, int proto) m = *mp; offset = *offp; + M_ASSERTPKTHDR(m); + ip6 = mtod(m, struct ip6_hdr *); #ifndef PULLDOWN_TEST IP6_EXTHDR_CHECK(m, offset, sizeof(struct ip6_frag), IPPROTO_DONE); @@ -437,23 +439,36 @@ frag6_input(struct mbuf **mp, int *offp, int proto) IP6STAT_INC(ip6s_fragments); in6_ifstat_inc(dstifp, ifs6_reass_reqd); - /* Offset now points to data portion. */ - offset += sizeof(struct ip6_frag); - /* * Handle "atomic" fragments (offset and m bit set to 0) upfront, - * unrelated to any reassembly. Still need to remove the frag hdr. + * unrelated to any reassembly. We need to remove the frag hdr + * which is ugly. * See RFC 6946 and section 4.5 of RFC 8200. */ if ((ip6f->ip6f_offlg & ~IP6F_RESERVED_MASK) == 0) { /* XXX-BZ we want dedicated counters for this. */ IP6STAT_INC(ip6s_reassembled); - /* XXX-BZ handle correctly. */ + nxt = ip6f->ip6f_nxt; + /* + * Set nxt(-hdr field value) to the original value. + * We cannot just set ip6->ip6_nxt as there might be + * an unfragmentable part with extension headers and + * we must update the last one. + */ + m_copyback(m, ip6_get_prevhdr(m, offset), sizeof(uint8_t), + (caddr_t)&nxt); + ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) - + sizeof(struct ip6_frag)); + if (ip6_deletefraghdr(m, offset, M_NOWAIT) != 0) + goto dropfrag2; + m->m_pkthdr.len -= sizeof(struct ip6_frag); in6_ifstat_inc(dstifp, ifs6_reass_ok); - *offp = offset; - m->m_flags |= M_FRAGMENTED; - return (ip6f->ip6f_nxt); + *mp = m; + return (nxt); } + + /* Offset now points to data portion. */ + offset += sizeof(struct ip6_frag); /* Get fragment length and discard 0-byte fragments. */ frgpartlen = sizeof(struct ip6_hdr) + ntohs(ip6->ip6_plen) - offset; Modified: stable/12/tests/sys/netinet6/frag6/frag6_03.py ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_03.py Fri Jan 10 22:00:39 2020 (r356615) +++ stable/12/tests/sys/netinet6/frag6/frag6_03.py Fri Jan 10 22:10:01 2020 (r356616) @@ -101,6 +101,33 @@ def main(): if not sniffer.foundCorrectPacket: sys.exit(1) + + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## + # + # Atomic fragment with extension header. + # + # A: Nothing listening on UDP port. + # R: ICMPv6 dst unreach, unreach port. + # + # Start sniffing on recvif + sniffer = Sniffer(args, check_icmp6_error) + + ip6f01 = sp.Ether() / \ + sp.IPv6(src=args.src[0], dst=args.to[0]) / \ + sp.IPv6ExtHdrDestOpt(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) / \ + sp.IPv6ExtHdrFragment(offset=0, m=0, id=0x3001) / \ + sp.UDP(dport=3456, sport=6543) + if args.debug : + ip6f01.display() + sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) + + sleep(0.10) + sniffer.setEnd() + sniffer.join() + if not sniffer.foundCorrectPacket: + sys.exit(1) + sys.exit(0) if __name__ == '__main__': Modified: stable/12/tests/sys/netinet6/frag6/frag6_03.sh ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_03.sh Fri Jan 10 22:00:39 2020 (r356615) +++ stable/12/tests/sys/netinet6/frag6/frag6_03.sh Fri Jan 10 22:10:01 2020 (r356616) @@ -67,12 +67,12 @@ frag6_03_check_stats() { # Check selection of global UDP stats. # cat < ${HOME}/filter-${jname}.txt - 1 + 2 0 0 0 0 - 1 + 2 0 0 0 @@ -94,11 +94,11 @@ EOF 0 0 0 - 1 + 2 0 0 0 - 1 + 2 0 0 0 @@ -124,12 +124,12 @@ EOF # XXX-TODO check output histogram (just too hard to parse [no multi-line-grep]) # cat < ${HOME}/filter-${jname}.txt - 1 + 2 0 0 0 0 - 1 + 2 0 0 0 @@ -170,8 +170,8 @@ EOF 0 0 0 - 1 - 1 + 2 + 2 0 EOF count=`jexec ${jname} netstat -s -p ip6 -I ${ifname} --libxo xml,pretty | grep -E -x -c -f ${HOME}/filter-${jname}.txt` @@ -196,8 +196,8 @@ EOF 0 0 0 - 1 - 1 + 2 + 2 0 0 0 From owner-svn-src-all@freebsd.org Fri Jan 10 22:20:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 924BD1F54D3; Fri, 10 Jan 2020 22:20:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vcqr3Kz5z4DFF; Fri, 10 Jan 2020 22:20:24 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6915920CBE; Fri, 10 Jan 2020 22:20:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AMKOIF094967; Fri, 10 Jan 2020 22:20:24 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AMKOh7094966; Fri, 10 Jan 2020 22:20:24 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001102220.00AMKOh7094966@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 22:20:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356617 - head/usr.sbin/camdd X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.sbin/camdd X-SVN-Commit-Revision: 356617 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 22:20:24 -0000 Author: kevans Date: Fri Jan 10 22:20:23 2020 New Revision: 356617 URL: https://svnweb.freebsd.org/changeset/base/356617 Log: camdd: initialize devs earlier GCC9 points out that devs may be used initialized after the bailout label; in-fact, if num_io_opts != 2 then it is. Move the initialization up a little bit. Reviewed by: ken MFC after: 3 days Modified: head/usr.sbin/camdd/camdd.c Modified: head/usr.sbin/camdd/camdd.c ============================================================================== --- head/usr.sbin/camdd/camdd.c Fri Jan 10 22:10:01 2020 (r356616) +++ head/usr.sbin/camdd/camdd.c Fri Jan 10 22:20:23 2020 (r356617) @@ -3226,13 +3226,13 @@ camdd_rw(struct camdd_io_opts *io_opts, int num_io_opt int error = 0; int i; + bzero(devs, sizeof(devs)); + if (num_io_opts != 2) { warnx("Must have one input and one output path"); error = 1; goto bailout; } - - bzero(devs, sizeof(devs)); for (i = 0; i < num_io_opts; i++) { switch (io_opts[i].dev_type) { From owner-svn-src-all@freebsd.org Fri Jan 10 22:49:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7F4611F5AC8; Fri, 10 Jan 2020 22:49:31 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vdTR3D8lz4FGZ; Fri, 10 Jan 2020 22:49:31 +0000 (UTC) (envelope-from jkim@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 64F0221222; Fri, 10 Jan 2020 22:49:31 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AMnVno012970; Fri, 10 Jan 2020 22:49:31 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AMnFLZ012886; Fri, 10 Jan 2020 22:49:15 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001102249.00AMnFLZ012886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 10 Jan 2020 22:49:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356618 - in head/sys/contrib/dev/acpica: . common compiler components/debugger components/disassembler components/dispatcher components/events components/executer components/hardware c... X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in head/sys/contrib/dev/acpica: . common compiler components/debugger components/disassembler components/dispatcher components/events components/executer components/hardware components/namespace compo... X-SVN-Commit-Revision: 356618 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 22:49:31 -0000 Author: jkim Date: Fri Jan 10 22:49:14 2020 New Revision: 356618 URL: https://svnweb.freebsd.org/changeset/base/356618 Log: MFV: r356607 Import ACPICA 20200110. Modified: head/sys/contrib/dev/acpica/changes.txt head/sys/contrib/dev/acpica/common/acfileio.c head/sys/contrib/dev/acpica/common/acgetline.c head/sys/contrib/dev/acpica/common/adfile.c head/sys/contrib/dev/acpica/common/adisasm.c head/sys/contrib/dev/acpica/common/adwalk.c head/sys/contrib/dev/acpica/common/ahids.c head/sys/contrib/dev/acpica/common/ahpredef.c head/sys/contrib/dev/acpica/common/ahtable.c head/sys/contrib/dev/acpica/common/ahuuids.c head/sys/contrib/dev/acpica/common/cmfsize.c head/sys/contrib/dev/acpica/common/dmextern.c head/sys/contrib/dev/acpica/common/dmrestag.c head/sys/contrib/dev/acpica/common/dmswitch.c head/sys/contrib/dev/acpica/common/dmtable.c head/sys/contrib/dev/acpica/common/dmtables.c head/sys/contrib/dev/acpica/common/dmtbdump.c head/sys/contrib/dev/acpica/common/dmtbdump1.c head/sys/contrib/dev/acpica/common/dmtbdump2.c head/sys/contrib/dev/acpica/common/dmtbdump3.c head/sys/contrib/dev/acpica/common/dmtbinfo.c head/sys/contrib/dev/acpica/common/dmtbinfo1.c head/sys/contrib/dev/acpica/common/dmtbinfo2.c head/sys/contrib/dev/acpica/common/dmtbinfo3.c head/sys/contrib/dev/acpica/common/getopt.c head/sys/contrib/dev/acpica/compiler/aslallocate.c head/sys/contrib/dev/acpica/compiler/aslanalyze.c head/sys/contrib/dev/acpica/compiler/aslascii.c head/sys/contrib/dev/acpica/compiler/aslbtypes.c head/sys/contrib/dev/acpica/compiler/aslcache.c head/sys/contrib/dev/acpica/compiler/aslcodegen.c head/sys/contrib/dev/acpica/compiler/aslcompile.c head/sys/contrib/dev/acpica/compiler/aslcompiler.h head/sys/contrib/dev/acpica/compiler/aslcompiler.l head/sys/contrib/dev/acpica/compiler/aslcstyle.y head/sys/contrib/dev/acpica/compiler/asldebug.c head/sys/contrib/dev/acpica/compiler/asldefine.h head/sys/contrib/dev/acpica/compiler/aslerror.c head/sys/contrib/dev/acpica/compiler/aslexternal.c head/sys/contrib/dev/acpica/compiler/aslfileio.c head/sys/contrib/dev/acpica/compiler/aslfiles.c head/sys/contrib/dev/acpica/compiler/aslfold.c head/sys/contrib/dev/acpica/compiler/aslglobal.h head/sys/contrib/dev/acpica/compiler/aslhelp.c head/sys/contrib/dev/acpica/compiler/aslhelpers.y head/sys/contrib/dev/acpica/compiler/aslhex.c head/sys/contrib/dev/acpica/compiler/aslkeywords.y head/sys/contrib/dev/acpica/compiler/asllength.c head/sys/contrib/dev/acpica/compiler/asllisting.c head/sys/contrib/dev/acpica/compiler/asllistsup.c head/sys/contrib/dev/acpica/compiler/aslload.c head/sys/contrib/dev/acpica/compiler/asllookup.c head/sys/contrib/dev/acpica/compiler/aslmain.c head/sys/contrib/dev/acpica/compiler/aslmap.c head/sys/contrib/dev/acpica/compiler/aslmapenter.c head/sys/contrib/dev/acpica/compiler/aslmapoutput.c head/sys/contrib/dev/acpica/compiler/aslmaputils.c head/sys/contrib/dev/acpica/compiler/aslmessages.c head/sys/contrib/dev/acpica/compiler/aslmessages.h head/sys/contrib/dev/acpica/compiler/aslmethod.c head/sys/contrib/dev/acpica/compiler/aslnamesp.c head/sys/contrib/dev/acpica/compiler/asloffset.c head/sys/contrib/dev/acpica/compiler/aslopcodes.c head/sys/contrib/dev/acpica/compiler/asloperands.c head/sys/contrib/dev/acpica/compiler/aslopt.c head/sys/contrib/dev/acpica/compiler/asloptions.c head/sys/contrib/dev/acpica/compiler/aslparseop.c head/sys/contrib/dev/acpica/compiler/aslparser.y head/sys/contrib/dev/acpica/compiler/aslpld.c head/sys/contrib/dev/acpica/compiler/aslpredef.c head/sys/contrib/dev/acpica/compiler/aslprepkg.c head/sys/contrib/dev/acpica/compiler/aslprimaries.y head/sys/contrib/dev/acpica/compiler/aslprintf.c head/sys/contrib/dev/acpica/compiler/aslprune.c head/sys/contrib/dev/acpica/compiler/aslresource.c head/sys/contrib/dev/acpica/compiler/aslresources.y head/sys/contrib/dev/acpica/compiler/aslrestype1.c head/sys/contrib/dev/acpica/compiler/aslrestype1i.c head/sys/contrib/dev/acpica/compiler/aslrestype2.c head/sys/contrib/dev/acpica/compiler/aslrestype2d.c head/sys/contrib/dev/acpica/compiler/aslrestype2e.c head/sys/contrib/dev/acpica/compiler/aslrestype2q.c head/sys/contrib/dev/acpica/compiler/aslrestype2s.c head/sys/contrib/dev/acpica/compiler/aslrestype2w.c head/sys/contrib/dev/acpica/compiler/aslrules.y head/sys/contrib/dev/acpica/compiler/aslstartup.c head/sys/contrib/dev/acpica/compiler/aslstubs.c head/sys/contrib/dev/acpica/compiler/aslsupport.l head/sys/contrib/dev/acpica/compiler/aslsupport.y head/sys/contrib/dev/acpica/compiler/asltokens.y head/sys/contrib/dev/acpica/compiler/asltransform.c head/sys/contrib/dev/acpica/compiler/asltree.c head/sys/contrib/dev/acpica/compiler/asltypes.h head/sys/contrib/dev/acpica/compiler/asltypes.y head/sys/contrib/dev/acpica/compiler/aslutils.c head/sys/contrib/dev/acpica/compiler/asluuid.c head/sys/contrib/dev/acpica/compiler/aslwalks.c head/sys/contrib/dev/acpica/compiler/aslxref.c head/sys/contrib/dev/acpica/compiler/aslxrefout.c head/sys/contrib/dev/acpica/compiler/cvcompiler.c head/sys/contrib/dev/acpica/compiler/cvdisasm.c head/sys/contrib/dev/acpica/compiler/cvparser.c head/sys/contrib/dev/acpica/compiler/dtcompile.c head/sys/contrib/dev/acpica/compiler/dtcompiler.h head/sys/contrib/dev/acpica/compiler/dtexpress.c head/sys/contrib/dev/acpica/compiler/dtfield.c head/sys/contrib/dev/acpica/compiler/dtio.c head/sys/contrib/dev/acpica/compiler/dtparser.l head/sys/contrib/dev/acpica/compiler/dtparser.y head/sys/contrib/dev/acpica/compiler/dtsubtable.c head/sys/contrib/dev/acpica/compiler/dttable.c head/sys/contrib/dev/acpica/compiler/dttable1.c head/sys/contrib/dev/acpica/compiler/dttable2.c head/sys/contrib/dev/acpica/compiler/dttemplate.c head/sys/contrib/dev/acpica/compiler/dttemplate.h head/sys/contrib/dev/acpica/compiler/dtutils.c head/sys/contrib/dev/acpica/compiler/preprocess.h head/sys/contrib/dev/acpica/compiler/prexpress.c head/sys/contrib/dev/acpica/compiler/prmacros.c head/sys/contrib/dev/acpica/compiler/prparser.l head/sys/contrib/dev/acpica/compiler/prparser.y head/sys/contrib/dev/acpica/compiler/prscan.c head/sys/contrib/dev/acpica/compiler/prutils.c head/sys/contrib/dev/acpica/components/debugger/dbcmds.c head/sys/contrib/dev/acpica/components/debugger/dbconvert.c head/sys/contrib/dev/acpica/components/debugger/dbdisply.c head/sys/contrib/dev/acpica/components/debugger/dbexec.c head/sys/contrib/dev/acpica/components/debugger/dbfileio.c head/sys/contrib/dev/acpica/components/debugger/dbhistry.c head/sys/contrib/dev/acpica/components/debugger/dbinput.c head/sys/contrib/dev/acpica/components/debugger/dbmethod.c head/sys/contrib/dev/acpica/components/debugger/dbnames.c head/sys/contrib/dev/acpica/components/debugger/dbobject.c head/sys/contrib/dev/acpica/components/debugger/dbstats.c head/sys/contrib/dev/acpica/components/debugger/dbtest.c head/sys/contrib/dev/acpica/components/debugger/dbutils.c head/sys/contrib/dev/acpica/components/debugger/dbxface.c head/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c head/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c head/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c head/sys/contrib/dev/acpica/components/disassembler/dmnames.c head/sys/contrib/dev/acpica/components/disassembler/dmopcode.c head/sys/contrib/dev/acpica/components/disassembler/dmresrc.c head/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c head/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c head/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c head/sys/contrib/dev/acpica/components/disassembler/dmutils.c head/sys/contrib/dev/acpica/components/disassembler/dmwalk.c head/sys/contrib/dev/acpica/components/dispatcher/dsargs.c head/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c head/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c head/sys/contrib/dev/acpica/components/dispatcher/dsinit.c head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c head/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c head/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c head/sys/contrib/dev/acpica/components/dispatcher/dswexec.c head/sys/contrib/dev/acpica/components/dispatcher/dswload.c head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c head/sys/contrib/dev/acpica/components/dispatcher/dswscope.c head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c head/sys/contrib/dev/acpica/components/events/evevent.c head/sys/contrib/dev/acpica/components/events/evglock.c head/sys/contrib/dev/acpica/components/events/evgpe.c head/sys/contrib/dev/acpica/components/events/evgpeblk.c head/sys/contrib/dev/acpica/components/events/evgpeinit.c head/sys/contrib/dev/acpica/components/events/evgpeutil.c head/sys/contrib/dev/acpica/components/events/evhandler.c head/sys/contrib/dev/acpica/components/events/evmisc.c head/sys/contrib/dev/acpica/components/events/evregion.c head/sys/contrib/dev/acpica/components/events/evrgnini.c head/sys/contrib/dev/acpica/components/events/evsci.c head/sys/contrib/dev/acpica/components/events/evxface.c head/sys/contrib/dev/acpica/components/events/evxfevnt.c head/sys/contrib/dev/acpica/components/events/evxfgpe.c head/sys/contrib/dev/acpica/components/events/evxfregn.c head/sys/contrib/dev/acpica/components/executer/exconcat.c head/sys/contrib/dev/acpica/components/executer/exconfig.c head/sys/contrib/dev/acpica/components/executer/exconvrt.c head/sys/contrib/dev/acpica/components/executer/excreate.c head/sys/contrib/dev/acpica/components/executer/exdebug.c head/sys/contrib/dev/acpica/components/executer/exdump.c head/sys/contrib/dev/acpica/components/executer/exfield.c head/sys/contrib/dev/acpica/components/executer/exfldio.c head/sys/contrib/dev/acpica/components/executer/exmisc.c head/sys/contrib/dev/acpica/components/executer/exmutex.c head/sys/contrib/dev/acpica/components/executer/exnames.c head/sys/contrib/dev/acpica/components/executer/exoparg1.c head/sys/contrib/dev/acpica/components/executer/exoparg2.c head/sys/contrib/dev/acpica/components/executer/exoparg3.c head/sys/contrib/dev/acpica/components/executer/exoparg6.c head/sys/contrib/dev/acpica/components/executer/exprep.c head/sys/contrib/dev/acpica/components/executer/exregion.c head/sys/contrib/dev/acpica/components/executer/exresnte.c head/sys/contrib/dev/acpica/components/executer/exresolv.c head/sys/contrib/dev/acpica/components/executer/exresop.c head/sys/contrib/dev/acpica/components/executer/exserial.c head/sys/contrib/dev/acpica/components/executer/exstore.c head/sys/contrib/dev/acpica/components/executer/exstoren.c head/sys/contrib/dev/acpica/components/executer/exstorob.c head/sys/contrib/dev/acpica/components/executer/exsystem.c head/sys/contrib/dev/acpica/components/executer/extrace.c head/sys/contrib/dev/acpica/components/executer/exutils.c head/sys/contrib/dev/acpica/components/hardware/hwacpi.c head/sys/contrib/dev/acpica/components/hardware/hwesleep.c head/sys/contrib/dev/acpica/components/hardware/hwgpe.c head/sys/contrib/dev/acpica/components/hardware/hwpci.c head/sys/contrib/dev/acpica/components/hardware/hwregs.c head/sys/contrib/dev/acpica/components/hardware/hwsleep.c head/sys/contrib/dev/acpica/components/hardware/hwtimer.c head/sys/contrib/dev/acpica/components/hardware/hwvalid.c head/sys/contrib/dev/acpica/components/hardware/hwxface.c head/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c head/sys/contrib/dev/acpica/components/namespace/nsaccess.c head/sys/contrib/dev/acpica/components/namespace/nsalloc.c head/sys/contrib/dev/acpica/components/namespace/nsarguments.c head/sys/contrib/dev/acpica/components/namespace/nsconvert.c head/sys/contrib/dev/acpica/components/namespace/nsdump.c head/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c head/sys/contrib/dev/acpica/components/namespace/nseval.c head/sys/contrib/dev/acpica/components/namespace/nsinit.c head/sys/contrib/dev/acpica/components/namespace/nsload.c head/sys/contrib/dev/acpica/components/namespace/nsnames.c head/sys/contrib/dev/acpica/components/namespace/nsobject.c head/sys/contrib/dev/acpica/components/namespace/nsparse.c head/sys/contrib/dev/acpica/components/namespace/nspredef.c head/sys/contrib/dev/acpica/components/namespace/nsprepkg.c head/sys/contrib/dev/acpica/components/namespace/nsrepair.c head/sys/contrib/dev/acpica/components/namespace/nsrepair2.c head/sys/contrib/dev/acpica/components/namespace/nssearch.c head/sys/contrib/dev/acpica/components/namespace/nsutils.c head/sys/contrib/dev/acpica/components/namespace/nswalk.c head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c head/sys/contrib/dev/acpica/components/namespace/nsxfname.c head/sys/contrib/dev/acpica/components/namespace/nsxfobj.c head/sys/contrib/dev/acpica/components/parser/psargs.c head/sys/contrib/dev/acpica/components/parser/psloop.c head/sys/contrib/dev/acpica/components/parser/psobject.c head/sys/contrib/dev/acpica/components/parser/psopcode.c head/sys/contrib/dev/acpica/components/parser/psopinfo.c head/sys/contrib/dev/acpica/components/parser/psparse.c head/sys/contrib/dev/acpica/components/parser/psscope.c head/sys/contrib/dev/acpica/components/parser/pstree.c head/sys/contrib/dev/acpica/components/parser/psutils.c head/sys/contrib/dev/acpica/components/parser/pswalk.c head/sys/contrib/dev/acpica/components/parser/psxface.c head/sys/contrib/dev/acpica/components/resources/rsaddr.c head/sys/contrib/dev/acpica/components/resources/rscalc.c head/sys/contrib/dev/acpica/components/resources/rscreate.c head/sys/contrib/dev/acpica/components/resources/rsdump.c head/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c head/sys/contrib/dev/acpica/components/resources/rsinfo.c head/sys/contrib/dev/acpica/components/resources/rsio.c head/sys/contrib/dev/acpica/components/resources/rsirq.c head/sys/contrib/dev/acpica/components/resources/rslist.c head/sys/contrib/dev/acpica/components/resources/rsmemory.c head/sys/contrib/dev/acpica/components/resources/rsmisc.c head/sys/contrib/dev/acpica/components/resources/rsserial.c head/sys/contrib/dev/acpica/components/resources/rsutils.c head/sys/contrib/dev/acpica/components/resources/rsxface.c head/sys/contrib/dev/acpica/components/tables/tbdata.c head/sys/contrib/dev/acpica/components/tables/tbfadt.c head/sys/contrib/dev/acpica/components/tables/tbfind.c head/sys/contrib/dev/acpica/components/tables/tbinstal.c head/sys/contrib/dev/acpica/components/tables/tbprint.c head/sys/contrib/dev/acpica/components/tables/tbutils.c head/sys/contrib/dev/acpica/components/tables/tbxface.c head/sys/contrib/dev/acpica/components/tables/tbxfload.c head/sys/contrib/dev/acpica/components/tables/tbxfroot.c head/sys/contrib/dev/acpica/components/utilities/utaddress.c head/sys/contrib/dev/acpica/components/utilities/utalloc.c head/sys/contrib/dev/acpica/components/utilities/utascii.c head/sys/contrib/dev/acpica/components/utilities/utbuffer.c head/sys/contrib/dev/acpica/components/utilities/utcache.c head/sys/contrib/dev/acpica/components/utilities/utcopy.c head/sys/contrib/dev/acpica/components/utilities/utdebug.c head/sys/contrib/dev/acpica/components/utilities/utdecode.c head/sys/contrib/dev/acpica/components/utilities/utdelete.c head/sys/contrib/dev/acpica/components/utilities/uterror.c head/sys/contrib/dev/acpica/components/utilities/uteval.c head/sys/contrib/dev/acpica/components/utilities/utexcep.c head/sys/contrib/dev/acpica/components/utilities/utglobal.c head/sys/contrib/dev/acpica/components/utilities/uthex.c head/sys/contrib/dev/acpica/components/utilities/utids.c head/sys/contrib/dev/acpica/components/utilities/utinit.c head/sys/contrib/dev/acpica/components/utilities/utlock.c head/sys/contrib/dev/acpica/components/utilities/utmath.c head/sys/contrib/dev/acpica/components/utilities/utmisc.c head/sys/contrib/dev/acpica/components/utilities/utmutex.c head/sys/contrib/dev/acpica/components/utilities/utnonansi.c head/sys/contrib/dev/acpica/components/utilities/utobject.c head/sys/contrib/dev/acpica/components/utilities/utosi.c head/sys/contrib/dev/acpica/components/utilities/utownerid.c head/sys/contrib/dev/acpica/components/utilities/utpredef.c head/sys/contrib/dev/acpica/components/utilities/utresdecode.c head/sys/contrib/dev/acpica/components/utilities/utresrc.c head/sys/contrib/dev/acpica/components/utilities/utstate.c head/sys/contrib/dev/acpica/components/utilities/utstring.c head/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c head/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c head/sys/contrib/dev/acpica/components/utilities/uttrack.c head/sys/contrib/dev/acpica/components/utilities/utuuid.c head/sys/contrib/dev/acpica/components/utilities/utxface.c head/sys/contrib/dev/acpica/components/utilities/utxferror.c head/sys/contrib/dev/acpica/components/utilities/utxfinit.c head/sys/contrib/dev/acpica/components/utilities/utxfmutex.c head/sys/contrib/dev/acpica/include/acapps.h head/sys/contrib/dev/acpica/include/acbuffer.h head/sys/contrib/dev/acpica/include/acclib.h head/sys/contrib/dev/acpica/include/accommon.h head/sys/contrib/dev/acpica/include/acconfig.h head/sys/contrib/dev/acpica/include/acconvert.h head/sys/contrib/dev/acpica/include/acdebug.h head/sys/contrib/dev/acpica/include/acdisasm.h head/sys/contrib/dev/acpica/include/acdispat.h head/sys/contrib/dev/acpica/include/acevents.h head/sys/contrib/dev/acpica/include/acexcep.h head/sys/contrib/dev/acpica/include/acglobal.h head/sys/contrib/dev/acpica/include/achware.h head/sys/contrib/dev/acpica/include/acinterp.h head/sys/contrib/dev/acpica/include/aclocal.h head/sys/contrib/dev/acpica/include/acmacros.h head/sys/contrib/dev/acpica/include/acnames.h head/sys/contrib/dev/acpica/include/acnamesp.h head/sys/contrib/dev/acpica/include/acobject.h head/sys/contrib/dev/acpica/include/acopcode.h head/sys/contrib/dev/acpica/include/acoutput.h head/sys/contrib/dev/acpica/include/acparser.h head/sys/contrib/dev/acpica/include/acpi.h head/sys/contrib/dev/acpica/include/acpiosxf.h head/sys/contrib/dev/acpica/include/acpixf.h head/sys/contrib/dev/acpica/include/acpredef.h head/sys/contrib/dev/acpica/include/acresrc.h head/sys/contrib/dev/acpica/include/acrestyp.h head/sys/contrib/dev/acpica/include/acstruct.h head/sys/contrib/dev/acpica/include/actables.h head/sys/contrib/dev/acpica/include/actbinfo.h head/sys/contrib/dev/acpica/include/actbl.h head/sys/contrib/dev/acpica/include/actbl1.h head/sys/contrib/dev/acpica/include/actbl2.h head/sys/contrib/dev/acpica/include/actbl3.h head/sys/contrib/dev/acpica/include/actypes.h head/sys/contrib/dev/acpica/include/acutils.h head/sys/contrib/dev/acpica/include/acuuid.h head/sys/contrib/dev/acpica/include/amlcode.h head/sys/contrib/dev/acpica/include/amlresrc.h head/sys/contrib/dev/acpica/include/platform/acenv.h head/sys/contrib/dev/acpica/include/platform/acenvex.h head/sys/contrib/dev/acpica/include/platform/acfreebsd.h head/sys/contrib/dev/acpica/include/platform/acgcc.h head/sys/contrib/dev/acpica/include/platform/acgccex.h head/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c Directory Properties: head/sys/contrib/dev/acpica/ (props changed) Modified: head/sys/contrib/dev/acpica/changes.txt ============================================================================== --- head/sys/contrib/dev/acpica/changes.txt Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/changes.txt Fri Jan 10 22:49:14 2020 (r356618) @@ -1,22 +1,61 @@ ---------------------------------------- +10 January 2020. Summary of changes for version 20200110: + + +1) ACPICA kernel-resident subsystem: + +Updated all copyrights to 2020. This affects all ACPICA source code +modules. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +ASL test suite (ASLTS): Updated all copyrights to 2020. + +Tools and utilities: Updated all signon copyrights to 2020. + +iASL: fix forward reference analysis for field declarations. Fixes +forward reference analysis for field declarations by searching the +parent scope for the named object when the object is not present in +the current scope. + +iASL: Improved the error output for ALREADY_EXISTS errors. Now, the +full pathname of the name that already exists is printed. + +iASL: Enhance duplicate Case() detection for buffers. Add check for +buffers with no initializer list (these buffers will be filled with +zeros at runtime.) + + +---------------------------------------- 13 December 2019. Summary of changes for version 20191213: 1) ACPICA kernel-resident subsystem: -Return a Buffer object for all fields created via the CreateField operator. Previously, an Integer would be returned if the size of the field was less than or equal to the current size of an Integer. Although this goes against the ACPI specification, it provides compatibility with other ACPI implementations. Also updated the ASLTS test suite to reflect this new behavior. +Return a Buffer object for all fields created via the CreateField +operator. Previously, an Integer would be returned if the size of +the field was less than or equal to the current size of an Integer. +Although this goes against the ACPI specification, it provides +compatibility with other ACPI implementations. Also updated the +ASLTS test suite to reflect this new behavior. 2) iASL Compiler/Disassembler and ACPICA tools: -iASL: Implemented detection of (and throw an error for) duplicate values for Case statements within a single Switch statement. Duplicate Integers, Strings, and Buffers are supported. +iASL: Implemented detection of (and throw an error for) duplicate +values for Case statements within a single Switch statement. Duplicate +Integers, Strings, and Buffers are supported. -iASL: Fix error logging issue during multiple file compilation -- Switch to the correct input file during error node creation. +iASL: Fix error logging issue during multiple file compilation -- +Switch to the correct input file during error node creation. -iASL: For duplicate named object creation, now emit an error instead of a warning - since this will cause a runtime error. +iASL: For duplicate named object creation, now emit an error instead +of a warning - since this will cause a runtime error. AcpiSrc: Add unix line-ending support for non-Windows builds. -iASL: Add an error condition for an attempt to create a NameString with > 255 NameSegs (the max allowable via the AML definition). +iASL: Add an error condition for an attempt to create a NameString +with > 255 NameSegs (the max allowable via the AML definition). ---------------------------------------- Modified: head/sys/contrib/dev/acpica/common/acfileio.c ============================================================================== --- head/sys/contrib/dev/acpica/common/acfileio.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/acfileio.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/acgetline.c ============================================================================== --- head/sys/contrib/dev/acpica/common/acgetline.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/acgetline.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/adfile.c ============================================================================== --- head/sys/contrib/dev/acpica/common/adfile.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/adfile.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/adisasm.c ============================================================================== --- head/sys/contrib/dev/acpica/common/adisasm.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/adisasm.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/adwalk.c ============================================================================== --- head/sys/contrib/dev/acpica/common/adwalk.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/adwalk.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/ahids.c ============================================================================== --- head/sys/contrib/dev/acpica/common/ahids.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/ahids.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/ahpredef.c ============================================================================== --- head/sys/contrib/dev/acpica/common/ahpredef.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/ahpredef.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/ahtable.c ============================================================================== --- head/sys/contrib/dev/acpica/common/ahtable.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/ahtable.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/ahuuids.c ============================================================================== --- head/sys/contrib/dev/acpica/common/ahuuids.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/ahuuids.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/cmfsize.c ============================================================================== --- head/sys/contrib/dev/acpica/common/cmfsize.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/cmfsize.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmextern.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmextern.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmextern.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmrestag.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmrestag.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmrestag.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmswitch.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmswitch.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmswitch.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtable.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtable.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtable.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtables.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtables.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtables.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbdump.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbdump.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbdump.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbdump1.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbdump1.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbdump1.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbdump2.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbdump2.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbdump2.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbdump3.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbdump3.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbdump3.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbinfo.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbinfo.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbinfo.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbinfo1.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbinfo1.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbinfo1.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbinfo2.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbinfo2.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbinfo2.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/dmtbinfo3.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmtbinfo3.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/dmtbinfo3.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/common/getopt.c ============================================================================== --- head/sys/contrib/dev/acpica/common/getopt.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/common/getopt.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslallocate.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslallocate.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslallocate.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslanalyze.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslanalyze.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslanalyze.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslascii.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslascii.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslascii.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslbtypes.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslbtypes.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslbtypes.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslcache.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcache.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslcache.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslcodegen.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcodegen.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslcodegen.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslcompile.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcompile.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslcompile.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.h ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcompiler.h Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslcompiler.h Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.l ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcompiler.l Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslcompiler.l Fri Jan 10 22:49:14 2020 (r356618) @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslcstyle.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcstyle.y Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslcstyle.y Fri Jan 10 22:49:14 2020 (r356618) @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asldebug.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asldebug.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asldebug.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asldefine.h ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asldefine.h Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asldefine.h Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslerror.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslerror.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslerror.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License @@ -751,7 +751,14 @@ AePrintSubError ( MainMessage = AeDecodeMessageId (Enode->MessageId); - fprintf (OutputFile, " %s%s", MainMessage, "\n "); + fprintf (OutputFile, " %s", MainMessage); + + if (Enode->Message) + { + fprintf (OutputFile, "(%s)", Enode->Message); + } + + fprintf (OutputFile, "\n "); (void) AePrintErrorSourceLine (OutputFile, Enode, &PrematureEOF, &Total); fprintf (OutputFile, "\n"); } Modified: head/sys/contrib/dev/acpica/compiler/aslexternal.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslexternal.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslexternal.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslfileio.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslfileio.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslfileio.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslfiles.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslfiles.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslfiles.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslfold.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslfold.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslfold.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslglobal.h ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslglobal.h Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslglobal.h Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslhelp.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslhelp.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslhelp.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslhelpers.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslhelpers.y Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslhelpers.y Fri Jan 10 22:49:14 2020 (r356618) @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslhex.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslhex.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslhex.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslkeywords.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslkeywords.y Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslkeywords.y Fri Jan 10 22:49:14 2020 (r356618) @@ -9,7 +9,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asllength.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asllength.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asllength.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asllisting.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asllisting.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asllisting.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asllistsup.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asllistsup.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asllistsup.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslload.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslload.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslload.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License @@ -273,15 +273,15 @@ LdLoadFieldElements ( ACPI_PARSE_OBJECT *SourceRegion; ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status; + char *ExternalPath; SourceRegion = UtGetArg (Op, 0); if (SourceRegion) { Status = AcpiNsLookup (WalkState->ScopeInfo, - SourceRegion->Asl.Value.String, - AmlType, ACPI_IMODE_EXECUTE, - ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); + SourceRegion->Asl.Value.String, AmlType, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); if (Status == AE_NOT_FOUND) { /* @@ -357,9 +357,16 @@ LdLoadFieldElements ( * The name already exists in this scope * But continue processing the elements */ + ExternalPath = AcpiNsGetNormalizedPathname (Node, TRUE); + AslDualParseOpError (ASL_ERROR, ASL_MSG_NAME_EXISTS, Child, - Child->Asl.Value.String, ASL_MSG_FOUND_HERE, Node->Op, - Node->Op->Asl.ExternalName); + ExternalPath, ASL_MSG_FOUND_HERE, Node->Op, + ExternalPath); + + if (ExternalPath) + { + ACPI_FREE (ExternalPath); + } } } else @@ -403,6 +410,7 @@ LdLoadResourceElements ( ACPI_PARSE_OBJECT *InitializerOp = NULL; ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status; + char *ExternalPath; /* @@ -419,10 +427,17 @@ LdLoadResourceElements ( { /* Actual node causing the error was saved in ParentMethod */ + ExternalPath = AcpiNsGetNormalizedPathname (Node, TRUE); + AslDualParseOpError (ASL_ERROR, ASL_MSG_NAME_EXISTS, (ACPI_PARSE_OBJECT *) Op->Asl.ParentMethod, - Op->Asl.Namepath, ASL_MSG_FOUND_HERE, Node->Op, - Node->Op->Asl.ExternalName); + ExternalPath, ASL_MSG_FOUND_HERE, Node->Op, + ExternalPath); + + if (ExternalPath) + { + ACPI_FREE (ExternalPath); + } return (AE_OK); } return (Status); @@ -499,6 +514,7 @@ LdNamespace1Begin ( BOOLEAN ForceNewScope = FALSE; const ACPI_OPCODE_INFO *OpInfo; ACPI_PARSE_OBJECT *ParentOp; + char *ExternalPath; ACPI_FUNCTION_NAME (LdNamespace1Begin); @@ -939,9 +955,16 @@ LdNamespace1Begin ( { /* Valid error, object already exists */ + ExternalPath = AcpiNsGetNormalizedPathname (Node, TRUE); + AslDualParseOpError (ASL_ERROR, ASL_MSG_NAME_EXISTS, Op, - Op->Asl.ExternalName, ASL_MSG_FOUND_HERE, Node->Op, - Node->Op->Asl.ExternalName); + ExternalPath, ASL_MSG_FOUND_HERE, Node->Op, + ExternalPath); + + if (ExternalPath) + { + ACPI_FREE (ExternalPath); + } return_ACPI_STATUS (AE_OK); } } Modified: head/sys/contrib/dev/acpica/compiler/asllookup.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asllookup.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asllookup.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmain.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmain.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmain.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmap.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmap.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmap.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmapenter.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmapenter.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmapenter.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmapoutput.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmapoutput.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmapoutput.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmaputils.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmaputils.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmaputils.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmessages.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmessages.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmessages.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmessages.h ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmessages.h Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmessages.h Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslmethod.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmethod.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslmethod.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslnamesp.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslnamesp.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslnamesp.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asloffset.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asloffset.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asloffset.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslopcodes.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslopcodes.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslopcodes.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asloperands.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asloperands.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asloperands.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslopt.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslopt.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslopt.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/asloptions.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asloptions.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/asloptions.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslparseop.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslparseop.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslparseop.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslparser.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslparser.y Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslparser.y Fri Jan 10 22:49:14 2020 (r356618) @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslpld.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslpld.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslpld.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslpredef.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslpredef.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslpredef.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslprepkg.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslprepkg.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslprepkg.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslprimaries.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslprimaries.y Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslprimaries.y Fri Jan 10 22:49:14 2020 (r356618) @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslprintf.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslprintf.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslprintf.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslprune.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslprune.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslprune.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslresource.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslresource.c Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslresource.c Fri Jan 10 22:49:14 2020 (r356618) @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. * All rights reserved. * * 2. License Modified: head/sys/contrib/dev/acpica/compiler/aslresources.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslresources.y Fri Jan 10 22:20:23 2020 (r356617) +++ head/sys/contrib/dev/acpica/compiler/aslresources.y Fri Jan 10 22:49:14 2020 (r356618) @@ -11,7 +11,7 @@ NoEcho(' * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2019, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2020, Intel Corp. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jan 10 23:18:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A238B1F64FF; Fri, 10 Jan 2020 23:18:25 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-ua1-x942.google.com (mail-ua1-x942.google.com [IPv6:2607:f8b0:4864:20::942]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vf6n3pfPz4Gtt; Fri, 10 Jan 2020 23:18:25 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-ua1-x942.google.com with SMTP id c7so1372542uaf.5; Fri, 10 Jan 2020 15:18:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SVOjK/S6wPRrNC/OG2C7qto2aNa2HQQ0OZD+8YrXceg=; b=Dz/UazS/idq3wrXufGKIWt+GMrMfvCw6EMl5H11hmBIkHoASeCcsuL3EwyO3r7X0ET E4kdIAsoYgOJHOp69Jm5qtowtYCjRF9l5LAqvhbN/WA928dNqPYXnOQP+sYOkbVSmdYc 2s/S1HB+HgddJedQlq0brmVW22WwsiJqJ85KgYZ2hxG+FtboU7MNLRhaKG3vgocyUc+6 fHBpn2+SwbleMlebCpY0fJ9zRanD61k3uKsi96mO2V5NzxpSfmzqCaAnQiRqDdUh9TH9 J+KqDiAKyuj49Qz5SDhLdl5EPgJtFZeH/f5CVOM2AultyqOtR8h0MC49dhgpOili7RHf XMEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SVOjK/S6wPRrNC/OG2C7qto2aNa2HQQ0OZD+8YrXceg=; b=EoSkkAgVjq3QzV2Y9V8R5SLlHJqhYIw9hsBBDXCVz+5lln5gVH8NYv8GBqPXcfqMH1 pfpMWVLlxfVSoWJN0kHiC675Mo6eewHsqYMbq6Cm1vjkRm8lCennLlMim+ZSGYIIXrXn XRaABPUYXDOYcY17r6U4WhUlLFnK+iijuyXdLMzKLJG4WtjWY/YvIzS+ttz9OCVcOwSq iShO8fW7UocYCpDU3ZBjUN0p7qTX1oHkfYY7i4PUMczNoiL/AicqmsZ3S7efjzL9eULl 4HmM09fxQuXC4NCxftb1ZklA8jox0UQwzgj5bOYX+CCnYSNoawhfU9uXN6ORnokai4kB ia0A== X-Gm-Message-State: APjAAAXBWJ4d1yyBhZcxKd+08vZl7y/icsL/7rHAgVgOS0bXn8p5dSIn 7LEc2kQHcAONFgmfpmHicpxT8t4Bx/6mPeL75HlayZZq X-Google-Smtp-Source: APXvYqwYi8rV4uBcSFAKOOf1NQk5moU2xEDg1o+LckIM8ihSx49HbKhb48tKGt/swl2vC8DCEPlXZcHqRmippop63W4= X-Received: by 2002:ab0:7049:: with SMTP id v9mr3704853ual.95.1578698304147; Fri, 10 Jan 2020 15:18:24 -0800 (PST) MIME-Version: 1.0 References: <202001102200.00AM0eBf082664@repo.freebsd.org> In-Reply-To: <202001102200.00AM0eBf082664@repo.freebsd.org> From: Enji Cooper Date: Fri, 10 Jan 2020 15:18:13 -0800 Message-ID: Subject: Re: svn commit: r356615 - head/share/mk To: Ed Maste Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47vf6n3pfPz4Gtt X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 23:18:25 -0000 On Fri, Jan 10, 2020 at 2:00 PM Ed Maste wrote: > > Author: emaste > Date: Fri Jan 10 22:00:39 2020 > New Revision: 356615 > URL: https://svnweb.freebsd.org/changeset/base/356615 > > Log: > src.opts.mk: force KERBEROS_SUPPORT off where KERBEROS forced off > > Explicitly setting WITHOUT_KERBEROS implies WITHOUT_KERBEROS_SUPPORT, > but previously other cases that forced KERBEROS off (such as > WITHOUT_CRYPT) did not also set KERBEROS_SUPPORT off. Because the > _SUPPORT dependent options (KERBEROS/KERBEROS_SUPPORT) are processed > before other dependencies (CRYPT/KERBEROS) it's not easy to make this > happen automatically. Instead just explicitly set KERBEROS_SUPPORT > off where we set KERBEROS off. I don't think this is the right change to make, given that src.opts.mk ( https://svnweb.freebsd.org/base/head/share/mk/src.opts.mk?revision=356615&view=markup#l233 ) states: 233 # MK_*_SUPPORT options which default to "yes" unless their corresponding 234 # MK_* variable is set to "no". The right change to make would be to shift these special cases to the variable defined on line 227 ( https://svnweb.freebsd.org/base/head/share/mk/src.opts.mk?revision=356615&view=markup#l227 ): 225 # LEFT/RIGHT. Left options which default to "yes" unless their corresponding 226 # RIGHT option is disabled. 227 __DEFAULT_DEPENDENT_OPTIONS= \ 228 CLANG_FULL/CLANG \ 229 LOADER_VERIEXEC/BEARSSL \ 230 LOADER_EFI_SECUREBOOT/LOADER_VERIEXEC \ 231 VERIEXEC/BEARSSL \ If `MK_CRYPT == no`'s setting of `MK_KERBEROS:=no` was moved here, then the rest would just work by virtue of precedence. Thanks, -Enji From owner-svn-src-all@freebsd.org Fri Jan 10 23:46:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 13E421F6D73; Fri, 10 Jan 2020 23:46:14 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vfkt0QKxz4J9W; Fri, 10 Jan 2020 23:46:14 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 043D821D0E; Fri, 10 Jan 2020 23:46:14 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ANkD8Y047762; Fri, 10 Jan 2020 23:46:13 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ANkCuU047753; Fri, 10 Jan 2020 23:46:12 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001102346.00ANkCuU047753@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Fri, 10 Jan 2020 23:46:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356619 - in stable/12: sys/netinet sys/netinet6 sys/netipsec tests/sys/netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: sys/netinet sys/netinet6 sys/netipsec tests/sys/netinet6 X-SVN-Commit-Revision: 356619 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 23:46:14 -0000 Author: bz Date: Fri Jan 10 23:46:12 2020 New Revision: 356619 URL: https://svnweb.freebsd.org/changeset/base/356619 Log: MFC r354462,354643,354680,354731,354748-354750,354757,354831-354832, 354861-354863,354865,355254,355450,355452 netinet*: variable cleanup netinet*: update *mp to pass the proper value back nd6 defrouter: consolidate nd_defrouter manipulations in nd6_rtr.c (excluding some changes to keep public KPI) nd6: simplify code netinet6: Remove PULLDOWN_TESTs. netinet*: replace IP6_EXTHDR_GET() IP6_EXTHDR_CHECK(): remove the last instances nd6_rtr: consollidation and more consistent naming ipv6 tests: Add a simple ping6 test as well. icmpv6: Fix mbuf change in mld nd6_rtr: re-sort functions nd6: make nd6_timer_ch static nd6: sysctl in6: move include Fix m_pullup() problem after removing PULLDOWN_TESTs and KAME EXT* macros. (IP6_EXTHDR* macros are preserved in stable). ip6_input: remove redundant v4mapped check Update comment. PR: 240135 Added: stable/12/tests/sys/netinet6/mld.py - copied unchanged from r354832, head/tests/sys/netinet6/mld.py stable/12/tests/sys/netinet6/mld.sh - copied unchanged from r354832, head/tests/sys/netinet6/mld.sh Modified: stable/12/sys/netinet/ip_carp.c stable/12/sys/netinet/tcp_input.c stable/12/sys/netinet/udp_usrreq.c stable/12/sys/netinet6/dest6.c stable/12/sys/netinet6/frag6.c stable/12/sys/netinet6/icmp6.c stable/12/sys/netinet6/in6.c stable/12/sys/netinet6/ip6_input.c stable/12/sys/netinet6/ip6_mroute.c stable/12/sys/netinet6/mld6.c stable/12/sys/netinet6/mld6_var.h stable/12/sys/netinet6/nd6.c stable/12/sys/netinet6/nd6.h stable/12/sys/netinet6/nd6_nbr.c stable/12/sys/netinet6/nd6_rtr.c stable/12/sys/netinet6/route6.c stable/12/sys/netinet6/sctp6_usrreq.c stable/12/sys/netinet6/udp6_usrreq.c stable/12/sys/netipsec/xform_ah.c stable/12/sys/netipsec/xform_esp.c stable/12/tests/sys/netinet6/Makefile stable/12/tests/sys/netinet6/exthdr.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_carp.c ============================================================================== --- stable/12/sys/netinet/ip_carp.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet/ip_carp.c Fri Jan 10 23:46:12 2020 (r356619) @@ -566,13 +566,16 @@ carp6_input(struct mbuf **mp, int *offp, int proto) } /* verify that we have a complete carp packet */ - len = m->m_len; - IP6_EXTHDR_GET(ch, struct carp_header *, m, *offp, sizeof(*ch)); - if (ch == NULL) { - CARPSTATS_INC(carps_badlen); - CARP_DEBUG("%s: packet size %u too small\n", __func__, len); - return (IPPROTO_DONE); + if (m->m_len < *offp + sizeof(*ch)) { + len = m->m_len; + m = m_pullup(m, *offp + sizeof(*ch)); + if (m == NULL) { + CARPSTATS_INC(carps_badlen); + CARP_DEBUG("%s: packet size %u too small\n", __func__, len); + return (IPPROTO_DONE); + } } + ch = (struct carp_header *)(mtod(m, caddr_t) + *offp); /* verify the CARP checksum */ Modified: stable/12/sys/netinet/tcp_input.c ============================================================================== --- stable/12/sys/netinet/tcp_input.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet/tcp_input.c Fri Jan 10 23:46:12 2020 (r356619) @@ -534,11 +534,19 @@ cc_ecnpkt_handler(struct tcpcb *tp, struct tcphdr *th, int tcp6_input(struct mbuf **mp, int *offp, int proto) { - struct mbuf *m = *mp; + struct mbuf *m; struct in6_ifaddr *ia6; struct ip6_hdr *ip6; - IP6_EXTHDR_CHECK(m, *offp, sizeof(struct tcphdr), IPPROTO_DONE); + m = *mp; + if (m->m_len < *offp + sizeof(struct tcphdr)) { + m = m_pullup(m, *offp + sizeof(struct tcphdr)); + if (m == NULL) { + *mp = m; + TCPSTAT_INC(tcps_rcvshort); + return (IPPROTO_DONE); + } + } /* * draft-itojun-ipv6-tcp-to-anycast @@ -547,17 +555,17 @@ tcp6_input(struct mbuf **mp, int *offp, int proto) ip6 = mtod(m, struct ip6_hdr *); ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */); if (ia6 && (ia6->ia6_flags & IN6_IFF_ANYCAST)) { - struct ip6_hdr *ip6; ifa_free(&ia6->ia_ifa); - ip6 = mtod(m, struct ip6_hdr *); icmp6_error(m, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADDR, (caddr_t)&ip6->ip6_dst - (caddr_t)ip6); + *mp = NULL; return (IPPROTO_DONE); } if (ia6) ifa_free(&ia6->ia_ifa); + *mp = m; return (tcp_input(mp, offp, proto)); } #endif /* INET6 */ @@ -616,16 +624,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) #ifdef INET6 if (isipv6) { - /* IP6_EXTHDR_CHECK() is already done at tcp6_input(). */ - if (m->m_len < (sizeof(*ip6) + sizeof(*th))) { - m = m_pullup(m, sizeof(*ip6) + sizeof(*th)); - if (m == NULL) { - TCPSTAT_INC(tcps_rcvshort); - return (IPPROTO_DONE); - } - } - ip6 = mtod(m, struct ip6_hdr *); th = (struct tcphdr *)((caddr_t)ip6 + off0); tlen = sizeof(*ip6) + ntohs(ip6->ip6_plen) - off0; @@ -733,7 +732,13 @@ tcp_input(struct mbuf **mp, int *offp, int proto) if (off > sizeof (struct tcphdr)) { #ifdef INET6 if (isipv6) { - IP6_EXTHDR_CHECK(m, off0, off, IPPROTO_DONE); + if (m->m_len < off0 + off) { + m = m_pullup(m, off0 + off); + if (m == NULL) { + TCPSTAT_INC(tcps_rcvshort); + return (IPPROTO_DONE); + } + } ip6 = mtod(m, struct ip6_hdr *); th = (struct tcphdr *)((caddr_t)ip6 + off0); } Modified: stable/12/sys/netinet/udp_usrreq.c ============================================================================== --- stable/12/sys/netinet/udp_usrreq.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet/udp_usrreq.c Fri Jan 10 23:46:12 2020 (r356619) @@ -421,14 +421,13 @@ udp_input(struct mbuf **mp, int *offp, int proto) /* * Get IP and UDP header together in first mbuf. */ - ip = mtod(m, struct ip *); if (m->m_len < iphlen + sizeof(struct udphdr)) { if ((m = m_pullup(m, iphlen + sizeof(struct udphdr))) == NULL) { UDPSTAT_INC(udps_hdrops); return (IPPROTO_DONE); } - ip = mtod(m, struct ip *); } + ip = mtod(m, struct ip *); uh = (struct udphdr *)((caddr_t)ip + iphlen); cscov_partial = (proto == IPPROTO_UDPLITE) ? 1 : 0; Modified: stable/12/sys/netinet6/dest6.c ============================================================================== --- stable/12/sys/netinet6/dest6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/dest6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -64,30 +64,35 @@ __FBSDID("$FreeBSD$"); int dest6_input(struct mbuf **mp, int *offp, int proto) { - struct mbuf *m = *mp; - int off = *offp, dstoptlen, optlen; + struct mbuf *m; + int off, dstoptlen, optlen; struct ip6_dest *dstopts; u_int8_t *opt; - /* validation of the length of the header */ -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, sizeof(*dstopts), IPPROTO_DONE); + m = *mp; + off = *offp; + + /* Validation of the length of the header. */ + if (m->m_len < off + sizeof(*dstopts)) { + m = m_pullup(m, off + sizeof(*dstopts)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } dstopts = (struct ip6_dest *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(dstopts, struct ip6_dest *, m, off, sizeof(*dstopts)); - if (dstopts == NULL) - return IPPROTO_DONE; -#endif dstoptlen = (dstopts->ip6d_len + 1) << 3; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, dstoptlen, IPPROTO_DONE); + if (m->m_len < off + dstoptlen) { + m = m_pullup(m, off + dstoptlen); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } dstopts = (struct ip6_dest *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(dstopts, struct ip6_dest *, m, off, dstoptlen); - if (dstopts == NULL) - return IPPROTO_DONE; -#endif off += dstoptlen; dstoptlen -= sizeof(struct ip6_dest); opt = (u_int8_t *)dstopts + sizeof(struct ip6_dest); @@ -110,17 +115,21 @@ dest6_input(struct mbuf **mp, int *offp, int proto) default: /* unknown option */ optlen = ip6_unknown_opt(opt, m, opt - mtod(m, u_int8_t *)); - if (optlen == -1) + if (optlen == -1) { + *mp = NULL; return (IPPROTO_DONE); + } optlen += 2; break; } } *offp = off; + *mp = m; return (dstopts->ip6d_nxt); bad: m_freem(m); + *mp = NULL; return (IPPROTO_DONE); } Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/frag6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -218,30 +218,22 @@ SYSCTL_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGBUCKETSIZE, * Remove the IPv6 fragmentation header from the mbuf. */ int -ip6_deletefraghdr(struct mbuf *m, int offset, int wait) +ip6_deletefraghdr(struct mbuf *m, int offset, int wait __unused) { struct ip6_hdr *ip6; - struct mbuf *t; - /* Delete frag6 header. */ - if (m->m_len >= offset + sizeof(struct ip6_frag)) { + KASSERT(m->m_len >= offset + sizeof(struct ip6_frag), + ("%s: ext headers not contigous in mbuf %p m_len %d >= " + "offset %d + %zu\n", __func__, m, m->m_len, offset, + sizeof(struct ip6_frag))); - /* This is the only possible case with !PULLDOWN_TEST. */ - ip6 = mtod(m, struct ip6_hdr *); - bcopy(ip6, (char *)ip6 + sizeof(struct ip6_frag), - offset); - m->m_data += sizeof(struct ip6_frag); - m->m_len -= sizeof(struct ip6_frag); - } else { - - /* This comes with no copy if the boundary is on cluster. */ - if ((t = m_split(m, offset, wait)) == NULL) - return (ENOMEM); - m_adj(t, sizeof(struct ip6_frag)); - m_cat(m, t); - } - + /* Delete frag6 header. */ + ip6 = mtod(m, struct ip6_hdr *); + bcopy(ip6, (char *)ip6 + sizeof(struct ip6_frag), offset); + m->m_data += sizeof(struct ip6_frag); + m->m_len -= sizeof(struct ip6_frag); m->m_flags |= M_FRAGMENTED; + return (0); } @@ -397,15 +389,15 @@ frag6_input(struct mbuf **mp, int *offp, int proto) M_ASSERTPKTHDR(m); + if (m->m_len < offset + sizeof(struct ip6_frag)) { + m = m_pullup(m, offset + sizeof(struct ip6_frag)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = NULL; + return (IPPROTO_DONE); + } + } ip6 = mtod(m, struct ip6_hdr *); -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, offset, sizeof(struct ip6_frag), IPPROTO_DONE); - ip6f = (struct ip6_frag *)((caddr_t)ip6 + offset); -#else - IP6_EXTHDR_GET(ip6f, struct ip6_frag *, m, offset, sizeof(*ip6f)); - if (ip6f == NULL) - return (IPPROTO_DONE); -#endif dstifp = NULL; /* Find the destination interface of the packet. */ @@ -419,6 +411,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) if (ip6->ip6_plen == 0) { icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset); in6_ifstat_inc(dstifp, ifs6_reass_fail); + *mp = NULL; return (IPPROTO_DONE); } @@ -428,11 +421,13 @@ frag6_input(struct mbuf **mp, int *offp, int proto) * sizeof(struct ip6_frag) == 8 * sizeof(struct ip6_hdr) = 40 */ + ip6f = (struct ip6_frag *)((caddr_t)ip6 + offset); if ((ip6f->ip6f_offlg & IP6F_MORE_FRAG) && (((ntohs(ip6->ip6_plen) - offset) & 0x7) != 0)) { icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offsetof(struct ip6_hdr, ip6_plen)); in6_ifstat_inc(dstifp, ifs6_reass_fail); + *mp = NULL; return (IPPROTO_DONE); } @@ -477,6 +472,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) offsetof(struct ip6_hdr, ip6_plen)); in6_ifstat_inc(dstifp, ifs6_reass_fail); IP6STAT_INC(ip6s_fragdropped); + *mp = NULL; return (IPPROTO_DONE); } @@ -612,6 +608,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); + *mp = NULL; return (IPPROTO_DONE); } } else if (fragoff + frgpartlen > IPV6_MAXPACKET) { @@ -628,6 +625,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); + *mp = NULL; return (IPPROTO_DONE); } @@ -778,6 +776,7 @@ postinsert: frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); + *mp = NULL; return (IPPROTO_DONE); } plen += af6->ip6af_frglen; @@ -789,6 +788,7 @@ postinsert: frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); + *mp = NULL; return (IPPROTO_DONE); } @@ -827,16 +827,8 @@ postinsert: V_ip6qb[bucket].count--; atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); - if (ip6_deletefraghdr(m, offset, M_NOWAIT) != 0) { -#ifdef MAC - mac_ip6q_destroy(q6); -#endif - free(q6, M_FRAG6); - atomic_subtract_int(&V_frag6_nfragpackets, 1); + ip6_deletefraghdr(m, offset, M_NOWAIT); - goto dropfrag; - } - /* Set nxt(-hdr field value) to the original value. */ m_copyback(m, ip6_get_prevhdr(m, offset), sizeof(uint8_t), (caddr_t)&nxt); @@ -878,6 +870,7 @@ postinsert: #ifdef RSS /* Queue/dispatch for reprocessing. */ netisr_dispatch(NETISR_IPV6_DIRECT, m); + *mp = NULL; return (IPPROTO_DONE); #endif @@ -893,6 +886,7 @@ dropfrag2: in6_ifstat_inc(dstifp, ifs6_reass_fail); IP6STAT_INC(ip6s_fragdropped); m_freem(m); + *mp = NULL; return (IPPROTO_DONE); } Modified: stable/12/sys/netinet6/icmp6.c ============================================================================== --- stable/12/sys/netinet6/icmp6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/icmp6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -232,16 +232,13 @@ icmp6_error2(struct mbuf *m, int type, int code, int p if (ifp == NULL) return; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, sizeof(struct ip6_hdr), ); -#else if (m->m_len < sizeof(struct ip6_hdr)) { m = m_pullup(m, sizeof(struct ip6_hdr)); - if (m == NULL) + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); return; + } } -#endif - ip6 = mtod(m, struct ip6_hdr *); if (in6_setscope(&ip6->ip6_src, ifp, NULL) != 0) @@ -276,15 +273,13 @@ icmp6_error(struct mbuf *m, int type, int code, int pa } #endif -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, sizeof(struct ip6_hdr), ); -#else if (m->m_len < sizeof(struct ip6_hdr)) { m = m_pullup(m, sizeof(struct ip6_hdr)); - if (m == NULL) + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); return; + } } -#endif oip6 = mtod(m, struct ip6_hdr *); /* @@ -322,17 +317,16 @@ icmp6_error(struct mbuf *m, int type, int code, int pa if (off >= 0 && nxt == IPPROTO_ICMPV6) { struct icmp6_hdr *icp; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, off + sizeof(struct icmp6_hdr), ); - icp = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(icp, struct icmp6_hdr *, m, off, - sizeof(*icp)); - if (icp == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return; + if (m->m_len < off + sizeof(struct icmp6_hdr)) { + m = m_pullup(m, off + sizeof(struct icmp6_hdr)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + return; + } } -#endif + oip6 = mtod(m, struct ip6_hdr *); + icp = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); + if (icp->icmp6_type < ICMP6_ECHO_REQUEST || icp->icmp6_type == ND_REDIRECT) { /* @@ -349,8 +343,6 @@ icmp6_error(struct mbuf *m, int type, int code, int pa /* non-ICMPv6 - send the error */ } - oip6 = mtod(m, struct ip6_hdr *); /* adjust pointer */ - /* Finally, do rate limitation check. */ if (icmp6_ratelimit(&oip6->ip6_src, type, code)) { ICMP6STAT_INC(icp6s_toofreq); @@ -401,35 +393,38 @@ icmp6_error(struct mbuf *m, int type, int code, int pa int icmp6_input(struct mbuf **mp, int *offp, int proto) { - struct mbuf *m = *mp, *n; + struct mbuf *m, *n; struct ifnet *ifp; struct ip6_hdr *ip6, *nip6; struct icmp6_hdr *icmp6, *nicmp6; - int off = *offp; - int icmp6len = m->m_pkthdr.len - *offp; - int code, sum, noff; char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN]; - int ip6len, error; + int code, error, icmp6len, ip6len, noff, off, sum; - ifp = m->m_pkthdr.rcvif; + m = *mp; + off = *offp; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, sizeof(struct icmp6_hdr), IPPROTO_DONE); - /* m might change if M_LOOP. So, call mtod after this */ -#endif + if (m->m_len < off + sizeof(struct icmp6_hdr)) { + m = m_pullup(m, off + sizeof(struct icmp6_hdr)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } /* * Locate icmp6 structure in mbuf, and check * that not corrupted and of at least minimum length */ - ip6 = mtod(m, struct ip6_hdr *); - ip6len = sizeof(struct ip6_hdr) + ntohs(ip6->ip6_plen); + icmp6len = m->m_pkthdr.len - off; if (icmp6len < sizeof(struct icmp6_hdr)) { ICMP6STAT_INC(icp6s_tooshort); goto freeit; } + ip6 = mtod(m, struct ip6_hdr *); + ifp = m->m_pkthdr.rcvif; /* * Check multicast group membership. * Note: SSM filters are not applied for ICMPv6 traffic. @@ -445,20 +440,9 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) } } - /* - * calculate the checksum - */ -#ifndef PULLDOWN_TEST + /* Calculate the checksum. */ icmp6 = (struct icmp6_hdr *)((caddr_t)ip6 + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, sizeof(*icmp6)); - if (icmp6 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return IPPROTO_DONE; - } -#endif code = icmp6->icmp6_code; - if ((sum = in6_cksum(m, IPPROTO_ICMPV6, off, icmp6len)) != 0) { nd6log((LOG_ERR, "ICMP6 checksum error(%d|%x) %s\n", @@ -473,6 +457,7 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) if (icmp6->icmp6_type < ICMP6_INFOMSG_MASK) icmp6_ifstat_inc(ifp, ifs6_in_error); + ip6len = sizeof(struct ip6_hdr) + ntohs(ip6->ip6_plen); switch (icmp6->icmp6_type) { case ICMP6_DST_UNREACH: icmp6_ifstat_inc(ifp, ifs6_in_dstunreach); @@ -585,8 +570,14 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) n->m_pkthdr.len = n0len + (noff - off); n->m_next = n0; } else { - IP6_EXTHDR_GET(nicmp6, struct icmp6_hdr *, n, off, - sizeof(*nicmp6)); + if (n->m_len < off + sizeof(*nicmp6)) { + n = m_pullup(n, off + sizeof(*nicmp6)); + if (n == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + break; + } + } + nicmp6 = (struct icmp6_hdr *)(mtod(n, caddr_t) + off); noff = off; } if (n) { @@ -619,8 +610,10 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) */ if ((ip6->ip6_hlim != 1) || (m->m_flags & M_RTALERT_MLD) == 0) goto freeit; - if (mld_input(m, off, icmp6len) != 0) + if (mld_input(&m, off, icmp6len) != 0) { + *mp = NULL; return (IPPROTO_DONE); + } /* m stays. */ break; @@ -639,10 +632,15 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) goto badlen; if (mode == FQDN) { -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, sizeof(struct icmp6_nodeinfo), - IPPROTO_DONE); -#endif + if (m->m_len < off + sizeof(struct icmp6_nodeinfo)) { + m = m_pullup(m, off + + sizeof(struct icmp6_nodeinfo)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } n = m_copym(m, 0, M_COPYALL, M_NOWAIT); if (n) n = ni6_input(n, off); @@ -728,7 +726,14 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) if (icmp6len < sizeof(struct nd_router_solicit)) goto badlen; if (send_sendso_input_hook != NULL) { - IP6_EXTHDR_CHECK(m, off, icmp6len, IPPROTO_DONE); + if (m->m_len < off + icmp6len) { + m = m_pullup(m, off + icmp6len); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = NULL; + return (IPPROTO_DONE); + } + } error = send_sendso_input_hook(m, ifp, SND_IN, ip6len); if (error == 0) { m = NULL; @@ -847,6 +852,7 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) deliver: if (icmp6_notify_error(&m, off, icmp6len, code) != 0) { /* In this case, m should've been freed. */ + *mp = NULL; return (IPPROTO_DONE); } break; @@ -863,38 +869,40 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) /* deliver the packet to appropriate sockets */ icmp6_rip6_input(&m, *offp); - return IPPROTO_DONE; + *mp = m; + return (IPPROTO_DONE); freeit: m_freem(m); - return IPPROTO_DONE; + *mp = NULL; + return (IPPROTO_DONE); } static int icmp6_notify_error(struct mbuf **mp, int off, int icmp6len, int code) { - struct mbuf *m = *mp; + struct mbuf *m; struct icmp6_hdr *icmp6; struct ip6_hdr *eip6; u_int32_t notifymtu; struct sockaddr_in6 icmp6src, icmp6dst; + m = *mp; + if (icmp6len < sizeof(struct icmp6_hdr) + sizeof(struct ip6_hdr)) { ICMP6STAT_INC(icp6s_tooshort); goto freeit; } -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, - sizeof(struct icmp6_hdr) + sizeof(struct ip6_hdr), -1); - icmp6 = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, - sizeof(*icmp6) + sizeof(struct ip6_hdr)); - if (icmp6 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); + + if (m->m_len < off + sizeof(*icmp6) + sizeof(struct ip6_hdr)) { + m = m_pullup(m, off + sizeof(*icmp6) + sizeof(struct ip6_hdr)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } } -#endif + icmp6 = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); eip6 = (struct ip6_hdr *)(icmp6 + 1); /* Detect the upper level protocol */ @@ -918,19 +926,17 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp case IPPROTO_HOPOPTS: case IPPROTO_DSTOPTS: case IPPROTO_AH: -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, - eoff + sizeof(struct ip6_ext), -1); - eh = (struct ip6_ext *)(mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(eh, struct ip6_ext *, m, - eoff, sizeof(*eh)); - if (eh == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); + if (m->m_len < eoff + sizeof(struct ip6_ext)) { + m = m_pullup(m, eoff + + sizeof(struct ip6_ext)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } } -#endif - + eh = (struct ip6_ext *) + (mtod(m, caddr_t) + eoff); if (nxt == IPPROTO_AH) eoff += (eh->ip6e_len + 2) << 2; else @@ -946,18 +952,16 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp * information that depends on the final * destination (e.g. path MTU). */ -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, eoff + sizeof(*rth), -1); + if (m->m_len < eoff + sizeof(*rth)) { + m = m_pullup(m, eoff + sizeof(*rth)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } + } rth = (struct ip6_rthdr *) (mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(rth, struct ip6_rthdr *, m, - eoff, sizeof(*rth)); - if (rth == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif rthlen = (rth->ip6r_len + 1) << 3; /* * XXX: currently there is no @@ -971,19 +975,17 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp rth->ip6r_type == IPV6_RTHDR_TYPE_0) { int hops; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, eoff + rthlen, -1); + if (m->m_len < eoff + rthlen) { + m = m_pullup(m, eoff + rthlen); + if (m == NULL) { + IP6STAT_INC( + ip6s_exthdrtoolong); + *mp = m; + return (-1); + } + } rth0 = (struct ip6_rthdr0 *) (mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(rth0, - struct ip6_rthdr0 *, m, - eoff, rthlen); - if (rth0 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif /* just ignore a bogus header */ if ((rth0->ip6r0_len % 2) == 0 && (hops = rth0->ip6r0_len/2)) @@ -993,19 +995,17 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp nxt = rth->ip6r_nxt; break; case IPPROTO_FRAGMENT: -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, eoff + - sizeof(struct ip6_frag), -1); + if (m->m_len < eoff + sizeof(struct ip6_frag)) { + m = m_pullup(m, eoff + + sizeof(struct ip6_frag)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } + } fh = (struct ip6_frag *)(mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(fh, struct ip6_frag *, m, - eoff, sizeof(*fh)); - if (fh == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif /* * Data after a fragment header is meaningless * unless it is the first fragment, but @@ -1031,16 +1031,7 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp } } notify: -#ifndef PULLDOWN_TEST icmp6 = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, - sizeof(*icmp6) + sizeof(struct ip6_hdr)); - if (icmp6 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif /* * retrieve parameters from the inner IPv6 header, and convert @@ -1098,6 +1089,7 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp freeit: m_freem(m); + *mp = NULL; return (-1); } @@ -1185,15 +1177,7 @@ ni6_input(struct mbuf *m, int off) struct in6_ifaddr *ia6 = NULL; ip6 = mtod(m, struct ip6_hdr *); -#ifndef PULLDOWN_TEST ni6 = (struct icmp6_nodeinfo *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(ni6, struct icmp6_nodeinfo *, m, off, sizeof(*ni6)); - if (ni6 == NULL) { - /* m is already reclaimed */ - return (NULL); - } -#endif /* * Validate IPv6 source address. @@ -1290,7 +1274,6 @@ ni6_input(struct mbuf *m, int off) * * We do not do proxy at this moment. */ - /* m_pulldown instead of copy? */ m_copydata(m, off + sizeof(struct icmp6_nodeinfo), subjlen, (caddr_t)&in6_subj); if (in6_setscope(&in6_subj, m->m_pkthdr.rcvif, NULL)) @@ -1330,10 +1313,19 @@ ni6_input(struct mbuf *m, int off) mtx_unlock(&pr->pr_mtx); if (!n || n->m_next || n->m_len == 0) goto bad; - IP6_EXTHDR_GET(subj, char *, m, - off + sizeof(struct icmp6_nodeinfo), subjlen); - if (subj == NULL) - goto bad; + if (m->m_len < off + sizeof(struct icmp6_nodeinfo) + + subjlen) { + m = m_pullup(m, off + + sizeof(struct icmp6_nodeinfo) + subjlen); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + goto bad; + } + } + /* ip6 possibly invalid but not used after. */ + ni6 = (struct icmp6_nodeinfo *)(mtod(m, caddr_t) + off); + subj = (char *)(mtod(m, caddr_t) + off + + sizeof(struct icmp6_nodeinfo)); if (!ni6_dnsmatch(subj, subjlen, mtod(n, const char *), n->m_len)) { goto bad; @@ -1899,16 +1891,8 @@ icmp6_rip6_input(struct mbuf **mp, int off) struct epoch_tracker et; struct mbuf *opts = NULL; -#ifndef PULLDOWN_TEST - /* this is assumed to be safe. */ + /* This is assumed to be safe; icmp6_input() does a pullup. */ icmp6 = (struct icmp6_hdr *)((caddr_t)ip6 + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, sizeof(*icmp6)); - if (icmp6 == NULL) { - /* m is already reclaimed */ - return (IPPROTO_DONE); - } -#endif /* * XXX: the address may have embedded scope zone ID, which should be @@ -1920,6 +1904,7 @@ icmp6_rip6_input(struct mbuf **mp, int off) fromsa.sin6_addr = ip6->ip6_src; if (sa6_recoverscope(&fromsa)) { m_freem(m); + *mp = NULL; return (IPPROTO_DONE); } @@ -2045,7 +2030,8 @@ icmp6_rip6_input(struct mbuf **mp, int off) m_freem(m); IP6STAT_DEC(ip6s_delivered); } - return IPPROTO_DONE; + *mp = NULL; + return (IPPROTO_DONE); } /* @@ -2223,24 +2209,17 @@ void icmp6_redirect_input(struct mbuf *m, int off) { struct ifnet *ifp; - struct ip6_hdr *ip6 = mtod(m, struct ip6_hdr *); + struct ip6_hdr *ip6; struct nd_redirect *nd_rd; - int icmp6len = ntohs(ip6->ip6_plen); - char *lladdr = NULL; - int lladdrlen = 0; - int is_router; - int is_onlink; - struct in6_addr src6 = ip6->ip6_src; - struct in6_addr redtgt6; - struct in6_addr reddst6; + struct in6_addr src6, redtgt6, reddst6; union nd_opts ndopts; char ip6buf[INET6_ADDRSTRLEN]; + char *lladdr; + int icmp6len, is_onlink, is_router, lladdrlen; M_ASSERTPKTHDR(m); KASSERT(m->m_pkthdr.rcvif != NULL, ("%s: no rcvif", __func__)); - ifp = m->m_pkthdr.rcvif; - /* XXX if we are router, we don't update route by icmp6 redirect */ if (V_ip6_forwarding) goto freeit; @@ -2251,25 +2230,29 @@ icmp6_redirect_input(struct mbuf *m, int off) if(m->m_flags & M_FRAGMENTED) goto freeit; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, icmp6len,); - nd_rd = (struct nd_redirect *)((caddr_t)ip6 + off); -#else - IP6_EXTHDR_GET(nd_rd, struct nd_redirect *, m, off, icmp6len); - if (nd_rd == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return; + ip6 = mtod(m, struct ip6_hdr *); + icmp6len = ntohs(ip6->ip6_plen); + if (m->m_len < off + icmp6len) { + m = m_pullup(m, off + icmp6len); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + return; + } } -#endif + ip6 = mtod(m, struct ip6_hdr *); + nd_rd = (struct nd_redirect *)((caddr_t)ip6 + off); + + ifp = m->m_pkthdr.rcvif; redtgt6 = nd_rd->nd_rd_target; reddst6 = nd_rd->nd_rd_dst; - if (in6_setscope(&redtgt6, m->m_pkthdr.rcvif, NULL) || - in6_setscope(&reddst6, m->m_pkthdr.rcvif, NULL)) { + if (in6_setscope(&redtgt6, ifp, NULL) || + in6_setscope(&reddst6, ifp, NULL)) { goto freeit; } /* validation */ + src6 = ip6->ip6_src; if (!IN6_IS_ADDR_LINKLOCAL(&src6)) { nd6log((LOG_ERR, "ICMP6 redirect sent from %s rejected; " @@ -2355,6 +2338,8 @@ icmp6_redirect_input(struct mbuf *m, int off) goto freeit; } + lladdr = NULL; + lladdrlen = 0; if (ndopts.nd_opts_tgt_lladdr) { lladdr = (char *)(ndopts.nd_opts_tgt_lladdr + 1); lladdrlen = ndopts.nd_opts_tgt_lladdr->nd_opt_len << 3; Modified: stable/12/sys/netinet6/in6.c ============================================================================== --- stable/12/sys/netinet6/in6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/in6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -2022,8 +2023,6 @@ in6_if2idlen(struct ifnet *ifp) return (64); } } - -#include struct in6_llentry { struct llentry base; Modified: stable/12/sys/netinet6/ip6_input.c ============================================================================== --- stable/12/sys/netinet6/ip6_input.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/ip6_input.c Fri Jan 10 23:46:12 2020 (r356619) @@ -203,9 +203,6 @@ struct rmlock in6_ifaddr_lock; RM_SYSINIT(in6_ifaddr_lock, &in6_ifaddr_lock, "in6_ifaddr_lock"); static int ip6_hopopts_input(u_int32_t *, u_int32_t *, struct mbuf **, int *); -#ifdef PULLDOWN_TEST -static struct mbuf *ip6_pullexthdr(struct mbuf *, size_t, int); -#endif /* * IP6 initialization: fill in IP6 protocol switch table. @@ -442,17 +439,8 @@ ip6_input_hbh(struct mbuf **mp, uint32_t *plen, uint32 (caddr_t)&ip6->ip6_plen - (caddr_t)ip6); goto out; } -#ifndef PULLDOWN_TEST /* ip6_hopopts_input() ensures that mbuf is contiguous */ hbh = (struct ip6_hbh *)(ip6 + 1); -#else - IP6_EXTHDR_GET(hbh, struct ip6_hbh *, m, sizeof(struct ip6_hdr), - sizeof(struct ip6_hbh)); - if (hbh == NULL) { - IP6STAT_INC(ip6s_tooshort); - goto out; - } -#endif *nxt = hbh->ip6h_nxt; /* @@ -603,7 +591,6 @@ ip6_input(struct mbuf *m) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jan 10 23:52:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 47FB31F6F62; Fri, 10 Jan 2020 23:52:37 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vftF1Jzwz4JZV; Fri, 10 Jan 2020 23:52:37 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 284A121EDA; Fri, 10 Jan 2020 23:52:37 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ANqbjk054207; Fri, 10 Jan 2020 23:52:37 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ANqb47054206; Fri, 10 Jan 2020 23:52:37 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001102352.00ANqb47054206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Fri, 10 Jan 2020 23:52:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356620 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 356620 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 23:52:37 -0000 Author: bz Date: Fri Jan 10 23:52:36 2020 New Revision: 356620 URL: https://svnweb.freebsd.org/changeset/base/356620 Log: MFC r354726,354755: if_llatbl: cleanup if_llatbl: change htable_unlink_entry() to early exist if no work to do No functional change. Modified: stable/12/sys/net/if_llatbl.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/if_llatbl.c ============================================================================== --- stable/12/sys/net/if_llatbl.c Fri Jan 10 23:46:12 2020 (r356619) +++ stable/12/sys/net/if_llatbl.c Fri Jan 10 23:52:36 2020 (r356620) @@ -79,11 +79,6 @@ RW_SYSINIT(lltable_list_lock, &lltable_list_lock, "llt static void lltable_unlink(struct lltable *llt); static void llentries_unlink(struct lltable *llt, struct llentries *head); -static void htable_unlink_entry(struct llentry *lle); -static void htable_link_entry(struct lltable *llt, struct llentry *lle); -static int htable_foreach_lle(struct lltable *llt, llt_foreach_cb_t *f, - void *farg); - /* * Dump lle state for a specific address family. */ @@ -180,15 +175,16 @@ static void htable_unlink_entry(struct llentry *lle) { - if ((lle->la_flags & LLE_LINKED) != 0) { - IF_AFDATA_WLOCK_ASSERT(lle->lle_tbl->llt_ifp); - CK_LIST_REMOVE(lle, lle_next); - lle->la_flags &= ~(LLE_VALID | LLE_LINKED); + if ((lle->la_flags & LLE_LINKED) == 0) + return; + + IF_AFDATA_WLOCK_ASSERT(lle->lle_tbl->llt_ifp); + CK_LIST_REMOVE(lle, lle_next); + lle->la_flags &= ~(LLE_VALID | LLE_LINKED); #if 0 - lle->lle_tbl = NULL; - lle->lle_head = NULL; + lle->lle_tbl = NULL; + lle->lle_head = NULL; #endif - } } struct prefix_match_data { From owner-svn-src-all@freebsd.org Sat Jan 11 00:08:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8A6E1F732A; Sat, 11 Jan 2020 00:08:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vgDJ5b8Xz4K7q; Sat, 11 Jan 2020 00:08:16 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B657F220C0; Sat, 11 Jan 2020 00:08:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B08G5t060386; Sat, 11 Jan 2020 00:08:16 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B08GDJ060385; Sat, 11 Jan 2020 00:08:16 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110008.00B08GDJ060385@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 00:08:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356621 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 356621 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 00:08:17 -0000 Author: bz Date: Sat Jan 11 00:08:16 2020 New Revision: 356621 URL: https://svnweb.freebsd.org/changeset/base/356621 Log: MFC r354857: Reduce the vnet_set module size of ip_mroute to allow loading as a module. With VIMAGE kernels modules get special treatment as they need to also keep the original values and make copies for each instance. For that a few pages of vnet modspace are provided and the kernel-linker and the VNET framework know how to deal with things. When the modspace is (almost) full, other modules which would overflow the modspace cannot be loaded and kldload will fail. ip_mroute uses a lot of variable space, mostly be four big arrays: set_vnet 0000000000000510 vnet_entry_multicast_register_if set_vnet 0000000000000700 vnet_entry_viftable set_vnet 0000000000002000 vnet_entry_bw_meter_timers set_vnet 0000000000002800 vnet_entry_bw_upcalls Dynamically malloc the three big ones for each instance we need and free them again on vnet teardown (the 4th is an ifnet). That way they only need module space for a single pointer and allow a lot more modules using virtualized variables to be loaded on a VNET kernel. PR: 206583 Modified: stable/12/sys/netinet/ip_mroute.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_mroute.c ============================================================================== --- stable/12/sys/netinet/ip_mroute.c Fri Jan 10 23:52:36 2020 (r356620) +++ stable/12/sys/netinet/ip_mroute.c Sat Jan 11 00:08:16 2020 (r356621) @@ -179,10 +179,14 @@ static struct mtx mfc_mtx; VNET_DEFINE_STATIC(vifi_t, numvifs); #define V_numvifs VNET(numvifs) -VNET_DEFINE_STATIC(struct vif, viftable[MAXVIFS]); +VNET_DEFINE_STATIC(struct vif *, viftable); #define V_viftable VNET(viftable) +/* + * No one should be able to "query" this before initialisation happened in + * vnet_mroute_init(), so we should still be fine. + */ SYSCTL_OPAQUE(_net_inet_ip, OID_AUTO, viftable, CTLFLAG_VNET | CTLFLAG_RD, - &VNET_NAME(viftable), sizeof(V_viftable), "S,vif[MAXVIFS]", + &VNET_NAME(viftable), sizeof(*V_viftable) * MAXVIFS, "S,vif[MAXVIFS]", "IPv4 Multicast Interfaces (struct vif[MAXVIFS], netinet/ip_mroute.h)"); static struct mtx vif_mtx; @@ -210,7 +214,7 @@ static MALLOC_DEFINE(M_BWMETER, "bwmeter", "multicast * expiration time. Periodically, the entries are analysed and processed. */ #define BW_METER_BUCKETS 1024 -VNET_DEFINE_STATIC(struct bw_meter*, bw_meter_timers[BW_METER_BUCKETS]); +VNET_DEFINE_STATIC(struct bw_meter **, bw_meter_timers); #define V_bw_meter_timers VNET(bw_meter_timers) VNET_DEFINE_STATIC(struct callout, bw_meter_ch); #define V_bw_meter_ch VNET(bw_meter_ch) @@ -220,7 +224,7 @@ VNET_DEFINE_STATIC(struct callout, bw_meter_ch); * Pending upcalls are stored in a vector which is flushed when * full, or periodically */ -VNET_DEFINE_STATIC(struct bw_upcall, bw_upcalls[BW_UPCALLS_MAX]); +VNET_DEFINE_STATIC(struct bw_upcall *, bw_upcalls); #define V_bw_upcalls VNET(bw_upcalls) VNET_DEFINE_STATIC(u_int, bw_upcalls_n); /* # of pending upcalls */ #define V_bw_upcalls_n VNET(bw_upcalls_n) @@ -764,7 +768,7 @@ X_ip_mrouter_done(void) bzero(V_nexpire, sizeof(V_nexpire[0]) * mfchashsize); V_bw_upcalls_n = 0; - bzero(V_bw_meter_timers, sizeof(V_bw_meter_timers)); + bzero(V_bw_meter_timers, BW_METER_BUCKETS * sizeof(*V_bw_meter_timers)); MFC_UNLOCK(); @@ -2805,7 +2809,14 @@ vnet_mroute_init(const void *unused __unused) { V_nexpire = malloc(mfchashsize, M_MRTABLE, M_WAITOK|M_ZERO); - bzero(V_bw_meter_timers, sizeof(V_bw_meter_timers)); + + V_viftable = mallocarray(MAXVIFS, sizeof(*V_viftable), + M_MRTABLE, M_WAITOK|M_ZERO); + V_bw_meter_timers = mallocarray(BW_METER_BUCKETS, + sizeof(*V_bw_meter_timers), M_MRTABLE, M_WAITOK|M_ZERO); + V_bw_upcalls = mallocarray(BW_UPCALLS_MAX, sizeof(*V_bw_upcalls), + M_MRTABLE, M_WAITOK|M_ZERO); + callout_init(&V_expire_upcalls_ch, 1); callout_init(&V_bw_upcalls_ch, 1); callout_init(&V_bw_meter_ch, 1); @@ -2818,6 +2829,9 @@ static void vnet_mroute_uninit(const void *unused __unused) { + free(V_bw_upcalls, M_MRTABLE); + free(V_bw_meter_timers, M_MRTABLE); + free(V_viftable, M_MRTABLE); free(V_nexpire, M_MRTABLE); V_nexpire = NULL; } From owner-svn-src-all@freebsd.org Sat Jan 11 00:11:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD3B51F73FE; Sat, 11 Jan 2020 00:11:30 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vgJ24gRmz4KVy; Sat, 11 Jan 2020 00:11:30 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 82EB222123; Sat, 11 Jan 2020 00:11:30 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B0BUcG061414; Sat, 11 Jan 2020 00:11:30 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B0BUFg061412; Sat, 11 Jan 2020 00:11:30 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110011.00B0BUFg061412@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 00:11:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356622 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 356622 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 00:11:30 -0000 Author: bz Date: Sat Jan 11 00:11:29 2020 New Revision: 356622 URL: https://svnweb.freebsd.org/changeset/base/356622 Log: MFC r355449,355466: carp: replace caddr_t with char * Change the remaining caddr_t usages to char * following the removal of the KAME macros No functional change. Modified: stable/12/sys/netinet/ip_carp.c stable/12/sys/netinet/ip_carp.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_carp.c ============================================================================== --- stable/12/sys/netinet/ip_carp.c Sat Jan 11 00:08:16 2020 (r356621) +++ stable/12/sys/netinet/ip_carp.c Sat Jan 11 00:11:29 2020 (r356622) @@ -575,7 +575,7 @@ carp6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); } } - ch = (struct carp_header *)(mtod(m, caddr_t) + *offp); + ch = (struct carp_header *)(mtod(m, char *) + *offp); /* verify the CARP checksum */ @@ -1190,7 +1190,7 @@ carp_iamatch6(struct ifnet *ifp, struct in6_addr *tadd return (ifa); } -caddr_t +char * carp_macmatch6(struct ifnet *ifp, struct mbuf *m, const struct in6_addr *taddr) { struct ifaddr *ifa; @@ -1849,7 +1849,7 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct threa carp_carprcp(&carpr, sc, priveleged); carpr.carpr_count = count; error = copyout(&carpr, - (caddr_t)ifr_data_get_ptr(ifr) + + (char *)ifr_data_get_ptr(ifr) + (i * sizeof(carpr)), sizeof(carpr)); if (error) { CIF_UNLOCK(ifp->if_carp); Modified: stable/12/sys/netinet/ip_carp.h ============================================================================== --- stable/12/sys/netinet/ip_carp.h Sat Jan 11 00:08:16 2020 (r356621) +++ stable/12/sys/netinet/ip_carp.h Sat Jan 11 00:11:29 2020 (r356622) @@ -149,7 +149,7 @@ int carp_output (struct ifnet *, struct mbuf *, int carp_master(struct ifaddr *); int carp_iamatch(struct ifaddr *, uint8_t **); struct ifaddr *carp_iamatch6(struct ifnet *, struct in6_addr *); -caddr_t carp_macmatch6(struct ifnet *, struct mbuf *, const struct in6_addr *); +char * carp_macmatch6(struct ifnet *, struct mbuf *, const struct in6_addr *); int carp_forus(struct ifnet *, u_char *); /* These are external networking stack hooks for CARP */ @@ -174,7 +174,7 @@ extern int (*carp_iamatch_p)(struct ifaddr *, uint8_t #ifdef INET6 /* netinet6/nd6_nbr.c */ extern struct ifaddr *(*carp_iamatch6_p)(struct ifnet *, struct in6_addr *); -extern caddr_t (*carp_macmatch6_p)(struct ifnet *, struct mbuf *, +extern char * (*carp_macmatch6_p)(struct ifnet *, struct mbuf *, const struct in6_addr *); #endif #endif From owner-svn-src-all@freebsd.org Sat Jan 11 01:15:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22CED1F882B; Sat, 11 Jan 2020 01:15:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vhk40BFCz4NCL; Sat, 11 Jan 2020 01:15:40 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 016BB22D81; Sat, 11 Jan 2020 01:15:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B1FdC0002618; Sat, 11 Jan 2020 01:15:39 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B1FdjY002614; Sat, 11 Jan 2020 01:15:39 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110115.00B1FdjY002614@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 01:15:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356623 - in stable/11/sys: netinet netinet6 X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/11/sys: netinet netinet6 X-SVN-Commit-Revision: 356623 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 01:15:40 -0000 Author: bz Date: Sat Jan 11 01:15:38 2020 New Revision: 356623 URL: https://svnweb.freebsd.org/changeset/base/356623 Log: MFC r354643: netinet*: update *mp to pass the proper value back In ip6_[direct_]input() we are looping over the extension headers to deal with the next header. We pass a pointer to an mbuf pointer to the handling functions. In certain cases the mbuf can be updated there and we need to pass the new one back. That missing in dest6_input() and route6_input(). In tcp6_input() we should also update it before we call tcp_input(). The merge is extracted of a larger change in head. PR: 240135 Reported by: prabhakar.lakhera gmail.com Modified: stable/11/sys/netinet/tcp_input.c stable/11/sys/netinet6/dest6.c stable/11/sys/netinet6/icmp6.c stable/11/sys/netinet6/route6.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet/tcp_input.c ============================================================================== --- stable/11/sys/netinet/tcp_input.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet/tcp_input.c Sat Jan 11 01:15:38 2020 (r356623) @@ -558,6 +558,7 @@ tcp6_input(struct mbuf **mp, int *offp, int proto) if (ia6) ifa_free(&ia6->ia_ifa); + *mp = m; return (tcp_input(mp, offp, proto)); } #endif /* INET6 */ Modified: stable/11/sys/netinet6/dest6.c ============================================================================== --- stable/11/sys/netinet6/dest6.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet6/dest6.c Sat Jan 11 01:15:38 2020 (r356623) @@ -116,6 +116,7 @@ dest6_input(struct mbuf **mp, int *offp, int proto) } *offp = off; + *mp = m; return (dstopts->ip6d_nxt); bad: Modified: stable/11/sys/netinet6/icmp6.c ============================================================================== --- stable/11/sys/netinet6/icmp6.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet6/icmp6.c Sat Jan 11 01:15:38 2020 (r356623) @@ -861,6 +861,7 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) /* deliver the packet to appropriate sockets */ icmp6_rip6_input(&m, *offp); + *mp = m; return IPPROTO_DONE; freeit: Modified: stable/11/sys/netinet6/route6.c ============================================================================== --- stable/11/sys/netinet6/route6.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet6/route6.c Sat Jan 11 01:15:38 2020 (r356623) @@ -108,5 +108,6 @@ route6_input(struct mbuf **mp, int *offp, int proto) } *offp += rhlen; + *mp = m; return (rh->ip6r_nxt); } From owner-svn-src-all@freebsd.org Sat Jan 11 01:44:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A8CE41F9F4E; Sat, 11 Jan 2020 01:44:55 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vjMq42Dxz4Ptx; Sat, 11 Jan 2020 01:44:55 +0000 (UTC) (envelope-from pfg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 858B623398; Sat, 11 Jan 2020 01:44:55 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B1itwP020706; Sat, 11 Jan 2020 01:44:55 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B1itIT020705; Sat, 11 Jan 2020 01:44:55 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <202001110144.00B1itIT020705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sat, 11 Jan 2020 01:44:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356624 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: pfg X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 356624 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 01:44:55 -0000 Author: pfg Date: Sat Jan 11 01:44:55 2020 New Revision: 356624 URL: https://svnweb.freebsd.org/changeset/base/356624 Log: Update ELFOSABI_* constants with OpenVOS. Reference: https://www.sco.com/developers/gabi/latest/ch4.eheader.html Modified: head/sys/sys/elf_common.h Modified: head/sys/sys/elf_common.h ============================================================================== --- head/sys/sys/elf_common.h Sat Jan 11 01:15:38 2020 (r356623) +++ head/sys/sys/elf_common.h Sat Jan 11 01:44:55 2020 (r356624) @@ -175,6 +175,7 @@ typedef struct { #define ELFOSABI_AROS 15 /* Amiga Research OS */ #define ELFOSABI_FENIXOS 16 /* FenixOS */ #define ELFOSABI_CLOUDABI 17 /* Nuxi CloudABI */ +#define ELFOSABI_OPENVOS 18 /* Stratus Technologies OpenVOS */ #define ELFOSABI_ARM_AEABI 64 /* ARM EABI */ #define ELFOSABI_ARM 97 /* ARM */ #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ From owner-svn-src-all@freebsd.org Sat Jan 11 01:56:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 422FC1FA45E; Sat, 11 Jan 2020 01:56:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vjdk11L9z4QQp; Sat, 11 Jan 2020 01:56:58 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1DED623579; Sat, 11 Jan 2020 01:56:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B1uvPh026557; Sat, 11 Jan 2020 01:56:57 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B1uvYq026554; Sat, 11 Jan 2020 01:56:57 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110156.00B1uvYq026554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 01:56:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356625 - in stable/12: sys/netinet6 usr.bin/netstat usr.bin/systat X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: sys/netinet6 usr.bin/netstat usr.bin/systat X-SVN-Commit-Revision: 356625 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 01:56:58 -0000 Author: bz Date: Sat Jan 11 01:56:57 2020 New Revision: 356625 URL: https://svnweb.freebsd.org/changeset/base/356625 Log: MFC 346398 (by thj): Add stat counter for ipv6 atomic fragments Add a stat counter to track ipv6 atomic fragments. Atomic fragments can be generated in response to invalid path MTU values, but are also a potential attack vector and considered harmful (see RFC6946 and RFC8021). While here add tracking of the atomic fragment counter to netstat and systat. This should fix failing CI tests merged from head as Resported by: lwhsu Modified: stable/12/sys/netinet6/frag6.c stable/12/sys/netinet6/ip6_var.h stable/12/usr.bin/netstat/inet6.c stable/12/usr.bin/systat/ip6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/sys/netinet6/frag6.c Sat Jan 11 01:56:57 2020 (r356625) @@ -441,8 +441,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) * See RFC 6946 and section 4.5 of RFC 8200. */ if ((ip6f->ip6f_offlg & ~IP6F_RESERVED_MASK) == 0) { - /* XXX-BZ we want dedicated counters for this. */ - IP6STAT_INC(ip6s_reassembled); + IP6STAT_INC(ip6s_atomicfrags); nxt = ip6f->ip6f_nxt; /* * Set nxt(-hdr field value) to the original value. Modified: stable/12/sys/netinet6/ip6_var.h ============================================================================== --- stable/12/sys/netinet6/ip6_var.h Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/sys/netinet6/ip6_var.h Sat Jan 11 01:56:57 2020 (r356625) @@ -195,6 +195,7 @@ struct ip6stat { uint64_t ip6s_localout; /* total ip packets generated here */ uint64_t ip6s_odropped; /* lost packets due to nobufs, etc. */ uint64_t ip6s_reassembled; /* total packets reassembled ok */ + uint64_t ip6s_atomicfrags; /* atomic fragments */ uint64_t ip6s_fragmented; /* datagrams successfully fragmented */ uint64_t ip6s_ofragments; /* output fragments created */ uint64_t ip6s_cantfrag; /* don't fragment flag was set, etc. */ Modified: stable/12/usr.bin/netstat/inet6.c ============================================================================== --- stable/12/usr.bin/netstat/inet6.c Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/usr.bin/netstat/inet6.c Sat Jan 11 01:56:57 2020 (r356625) @@ -391,6 +391,8 @@ ip6_stats(u_long off, const char *name, int af1 __unus "{N:/fragment%s dropped after timeout}\n"); p(ip6s_fragoverflow, "\t{:dropped-fragments-overflow/%ju} " "{N:/fragment%s that exceeded limit}\n"); + p(ip6s_atomicfrags, "\t{:atomic-fragments/%ju} " + "{N:/atomic fragment%s}\n"); p(ip6s_reassembled, "\t{:reassembled-packets/%ju} " "{N:/packet%s reassembled ok}\n"); p(ip6s_delivered, "\t{:received-local-packets/%ju} " Modified: stable/12/usr.bin/systat/ip6.c ============================================================================== --- stable/12/usr.bin/systat/ip6.c Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/usr.bin/systat/ip6.c Sat Jan 11 01:56:57 2020 (r356625) @@ -121,16 +121,16 @@ labelip6(void) L(6, "- fragments dropped"); R(6, "destinations unreachable"); L(7, "- fragments timed out"); R(7, "packets output via raw IP"); L(8, "- fragments overflown"); - L(9, "- packets reassembled ok"); R(9, "Input next-header histogram"); - L(10, "packets forwarded"); R(10, " - destination options"); - L(11, "- unreachable dests"); R(11, " - hop-by-hop options"); - L(12, "- redirects generated"); R(12, " - IPv4"); - L(13, "option errors"); R(13, " - TCP"); - L(14, "unwanted multicasts"); R(14, " - UDP"); - L(15, "delivered to upper layer"); R(15, " - IPv6"); - L(16, "bad scope packets"); R(16, " - routing header"); - L(17, "address selection failed"); R(17, " - fragmentation header"); - R(18, " - ICMP6"); + L(9, "- atomic fragments"); R(9, "Input next-header histogram"); + L(10, "- packets reassembled ok"); R(10, " - destination options"); + L(11, "packets forwarded"); R(11, " - hop-by-hop options"); + L(12, "- unreachable dests"); R(12, " - IPv4"); + L(13, "- redirects generated"); R(13, " - TCP"); + L(14, "option errors"); R(14, " - UDP"); + L(15, "unwanted multicasts"); R(15, " - IPv6"); + L(16, "delivered to upper layer"); R(16, " - routing header"); + L(17, "bad scope packets"); R(17, " - fragmentation header"); + L(18, "address selection failed");R(18, " - ICMP6"); R(19, " - none"); #undef L #undef R @@ -165,6 +165,7 @@ domode(struct ip6stat *ret) DO(ip6s_fragdropped); DO(ip6s_fragtimeout); DO(ip6s_fragoverflow); + DO(ip6s_atomicfrags); DO(ip6s_forward); DO(ip6s_cantforward); DO(ip6s_redirectsent); @@ -214,22 +215,23 @@ showip6(void) DO(ip6s_fragtimeout, 7, 0); DO(ip6s_rawout, 7, 35); DO(ip6s_fragoverflow, 8, 0); - DO(ip6s_reassembled, 9, 0); - DO(ip6s_forward, 10, 0); + DO(ip6s_atomicfrags, 9, 0); + DO(ip6s_reassembled, 10, 0); + DO(ip6s_forward, 11, 0); DO(ip6s_nxthist[IPPROTO_DSTOPTS], 10, 35); - DO(ip6s_cantforward, 11, 0); + DO(ip6s_cantforward, 12, 0); DO(ip6s_nxthist[IPPROTO_HOPOPTS], 11, 35); - DO(ip6s_redirectsent, 12, 0); + DO(ip6s_redirectsent, 13, 0); DO(ip6s_nxthist[IPPROTO_IPV4], 12, 35); - DO(ip6s_badoptions, 13, 0); + DO(ip6s_badoptions, 14, 0); DO(ip6s_nxthist[IPPROTO_TCP], 13, 35); - DO(ip6s_notmember, 14, 0); + DO(ip6s_notmember, 15, 0); DO(ip6s_nxthist[IPPROTO_UDP], 14, 35); - DO(ip6s_delivered, 15, 0); + DO(ip6s_delivered, 16, 0); DO(ip6s_nxthist[IPPROTO_IPV6], 15, 35); - DO(ip6s_badscope, 16, 0); + DO(ip6s_badscope, 17, 0); DO(ip6s_nxthist[IPPROTO_ROUTING], 16, 35); - DO(ip6s_sources_none, 17, 0); + DO(ip6s_sources_none, 18, 0); DO(ip6s_nxthist[IPPROTO_FRAGMENT], 17, 35); DO(ip6s_nxthist[IPPROTO_ICMPV6], 18, 35); DO(ip6s_nxthist[IPPROTO_NONE], 19, 35); From owner-svn-src-all@freebsd.org Sat Jan 11 03:15:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 230791FBE78; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vlN071WYz4TVV; Sat, 11 Jan 2020 03:15:12 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EC3002444F; Sat, 11 Jan 2020 03:15:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B3FCad075101; Sat, 11 Jan 2020 03:15:12 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B3FCCP075100; Sat, 11 Jan 2020 03:15:12 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001110315.00B3FCCP075100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 03:15:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356626 - in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Commit-Revision: 356626 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 03:15:13 -0000 Author: kevans Date: Sat Jan 11 03:15:12 2020 New Revision: 356626 URL: https://svnweb.freebsd.org/changeset/base/356626 Log: MFC r356355: ssp: knock out some trivial warnings that come up with WARNS=6 A future commit will rebuild this as part of libssp. The exact warnings are fairly trivially fixed: - No previous declaration for __stack_chk_guard - idx is the wrong type, nitems yields a size_t - Casting away volatile on the tmp_stack_chk_guard directly is a no-no. Modified: stable/11/lib/libc/secure/stack_protector.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libc/secure/stack_protector.c Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libc/secure/stack_protector.c ============================================================================== --- stable/11/lib/libc/secure/stack_protector.c Sat Jan 11 01:56:57 2020 (r356625) +++ stable/11/lib/libc/secure/stack_protector.c Sat Jan 11 03:15:12 2020 (r356626) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); __attribute__((__constructor__, __used__)); #endif +extern long __stack_chk_guard[8]; extern int __sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, size_t newlen); @@ -73,8 +74,8 @@ __guard_setup(void) { static const int mib[2] = { CTL_KERN, KERN_ARND }; volatile long tmp_stack_chk_guard[nitems(__stack_chk_guard)]; - size_t len; - int error, idx; + size_t idx, len; + int error; if (__stack_chk_guard[0] != 0) return; @@ -84,7 +85,8 @@ __guard_setup(void) * data into a temporal array, then do manual volatile copy to * not allow optimizer to call memcpy() behind us. */ - error = _elf_aux_info(AT_CANARY, (void *)tmp_stack_chk_guard, + error = _elf_aux_info(AT_CANARY, + __DEQUALIFY(void *, tmp_stack_chk_guard), sizeof(tmp_stack_chk_guard)); if (error == 0 && tmp_stack_chk_guard[0] != 0) { for (idx = 0; idx < nitems(__stack_chk_guard); idx++) { From owner-svn-src-all@freebsd.org Sat Jan 11 03:15:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6CBE01FBE7D; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vlN12LkLz4TVW; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BBAF24450; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B3FD3V075107; Sat, 11 Jan 2020 03:15:13 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B3FDCu075106; Sat, 11 Jan 2020 03:15:13 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001110315.00B3FDCu075106@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 03:15:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356626 - in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Commit-Revision: 356626 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 03:15:13 -0000 Author: kevans Date: Sat Jan 11 03:15:12 2020 New Revision: 356626 URL: https://svnweb.freebsd.org/changeset/base/356626 Log: MFC r356355: ssp: knock out some trivial warnings that come up with WARNS=6 A future commit will rebuild this as part of libssp. The exact warnings are fairly trivially fixed: - No previous declaration for __stack_chk_guard - idx is the wrong type, nitems yields a size_t - Casting away volatile on the tmp_stack_chk_guard directly is a no-no. Modified: stable/12/lib/libc/secure/stack_protector.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libc/secure/stack_protector.c Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libc/secure/stack_protector.c ============================================================================== --- stable/12/lib/libc/secure/stack_protector.c Sat Jan 11 01:56:57 2020 (r356625) +++ stable/12/lib/libc/secure/stack_protector.c Sat Jan 11 03:15:12 2020 (r356626) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); __attribute__((__constructor__, __used__)); #endif +extern long __stack_chk_guard[8]; extern int __sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, size_t newlen); @@ -73,8 +74,8 @@ __guard_setup(void) { static const int mib[2] = { CTL_KERN, KERN_ARND }; volatile long tmp_stack_chk_guard[nitems(__stack_chk_guard)]; - size_t len; - int error, idx; + size_t idx, len; + int error; if (__stack_chk_guard[0] != 0) return; @@ -84,7 +85,8 @@ __guard_setup(void) * data into a temporal array, then do manual volatile copy to * not allow optimizer to call memcpy() behind us. */ - error = _elf_aux_info(AT_CANARY, (void *)tmp_stack_chk_guard, + error = _elf_aux_info(AT_CANARY, + __DEQUALIFY(void *, tmp_stack_chk_guard), sizeof(tmp_stack_chk_guard)); if (error == 0 && tmp_stack_chk_guard[0] != 0) { for (idx = 0; idx < nitems(__stack_chk_guard); idx++) { From owner-svn-src-all@freebsd.org Sat Jan 11 03:18:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 700E61FBFB8; Sat, 11 Jan 2020 03:18:48 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vlS82LpQz4Tmc; Sat, 11 Jan 2020 03:18:48 +0000 (UTC) (envelope-from mckusick@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BF0A2445E; Sat, 11 Jan 2020 03:18:48 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B3ImxJ075306; Sat, 11 Jan 2020 03:18:48 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B3ImMZ075305; Sat, 11 Jan 2020 03:18:48 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202001110318.00B3ImMZ075305@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Sat, 11 Jan 2020 03:18:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356627 - head/sys/ufs/ufs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ufs X-SVN-Commit-Revision: 356627 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 03:18:48 -0000 Author: mckusick Date: Sat Jan 11 03:18:47 2020 New Revision: 356627 URL: https://svnweb.freebsd.org/changeset/base/356627 Log: When a read error occurs while fetching a directory block to delete or rename an entry in it, properly reset the link count of the inode associated with the entry that was to have been changed. Tested by: Peter Holm MFC after: 7 days Modified: head/sys/ufs/ufs/ufs_lookup.c Modified: head/sys/ufs/ufs/ufs_lookup.c ============================================================================== --- head/sys/ufs/ufs/ufs_lookup.c Sat Jan 11 03:15:12 2020 (r356626) +++ head/sys/ufs/ufs/ufs_lookup.c Sat Jan 11 03:18:47 2020 (r356627) @@ -1169,6 +1169,7 @@ ufs_dirremove(dvp, ip, flags, isrmdir) struct inode *dp; struct direct *ep, *rep; struct buf *bp; + off_t offset; int error; dp = VTOI(dvp); @@ -1187,22 +1188,32 @@ ufs_dirremove(dvp, ip, flags, isrmdir) ip->i_flag |= IN_CHANGE; } } + if (flags & DOWHITEOUT) + offset = dp->i_offset; + else + offset = dp->i_offset - dp->i_count; + if ((error = UFS_BLKATOFF(dvp, offset, (char **)&ep, &bp)) != 0) { + if (ip) { + ip->i_effnlink++; + ip->i_flag |= IN_CHANGE; + if (DOINGSOFTDEP(dvp)) { + softdep_change_linkcnt(ip); + } else { + ip->i_nlink++; + DIP_SET(ip, i_nlink, ip->i_nlink); + ip->i_flag |= IN_CHANGE; + } + } + return (error); + } if (flags & DOWHITEOUT) { /* * Whiteout entry: set d_ino to UFS_WINO. */ - if ((error = - UFS_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp)) != 0) - return (error); ep->d_ino = UFS_WINO; ep->d_type = DT_WHT; goto out; } - - if ((error = UFS_BLKATOFF(dvp, - (off_t)(dp->i_offset - dp->i_count), (char **)&ep, &bp)) != 0) - return (error); - /* Set 'rep' to the entry being removed. */ if (dp->i_count == 0) rep = ep; @@ -1302,12 +1313,22 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir) } error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp); - if (error) - return (error); - if (ep->d_namlen == 2 && ep->d_name[1] == '.' && ep->d_name[0] == '.' && - ep->d_ino != oip->i_number) { + if (error == 0 && ep->d_namlen == 2 && ep->d_name[1] == '.' && + ep->d_name[0] == '.' && ep->d_ino != oip->i_number) { brelse(bp); - return (EIDRM); + error = EIDRM; + } + if (error) { + oip->i_effnlink++; + oip->i_flag |= IN_CHANGE; + if (DOINGSOFTDEP(vdp)) { + softdep_change_linkcnt(oip); + } else { + oip->i_nlink++; + DIP_SET(oip, i_nlink, oip->i_nlink); + oip->i_flag |= IN_CHANGE; + } + return (error); } ep->d_ino = newinum; if (!OFSFMT(vdp)) From owner-svn-src-all@freebsd.org Sat Jan 11 03:59:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1CCD91FCCAB; Sat, 11 Jan 2020 03:59:07 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vmLf718yz4WfX; Sat, 11 Jan 2020 03:59:06 +0000 (UTC) (envelope-from delphij@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EBF6F24C0F; Sat, 11 Jan 2020 03:59:06 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B3x659099055; Sat, 11 Jan 2020 03:59:06 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B3x6Rn099054; Sat, 11 Jan 2020 03:59:06 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202001110359.00B3x6Rn099054@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sat, 11 Jan 2020 03:59:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356628 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 356628 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 03:59:07 -0000 Author: delphij Date: Sat Jan 11 03:59:06 2020 New Revision: 356628 URL: https://svnweb.freebsd.org/changeset/base/356628 Log: Require FAT to occupy at least one sector. Obtained from: Android https://r.android.com/1205830 MFC after: 3 days Modified: head/sbin/fsck_msdosfs/boot.c Modified: head/sbin/fsck_msdosfs/boot.c ============================================================================== --- head/sbin/fsck_msdosfs/boot.c Sat Jan 11 03:18:47 2020 (r356627) +++ head/sbin/fsck_msdosfs/boot.c Sat Jan 11 03:59:06 2020 (r356628) @@ -250,7 +250,7 @@ readboot(int dosfs, struct bootblock *boot) boot->FATsecs = boot->bpbFATsmall; } - if (boot->FATsecs > UINT32_MAX / boot->bpbFATs) { + if (boot->FATsecs < 1 || boot->FATsecs > UINT32_MAX / boot->bpbFATs) { pfatal("Invalid FATs(%u) with FATsecs(%zu)", boot->bpbFATs, (size_t)boot->FATsecs); return FSFATAL; From owner-svn-src-all@freebsd.org Sat Jan 11 04:02:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 146511FCE9F; Sat, 11 Jan 2020 04:02:41 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vmQm6q0zz4X3g; Sat, 11 Jan 2020 04:02:40 +0000 (UTC) (envelope-from delphij@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E545024DF5; Sat, 11 Jan 2020 04:02:40 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B42eVc005304; Sat, 11 Jan 2020 04:02:40 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B42eHa005303; Sat, 11 Jan 2020 04:02:40 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202001110402.00B42eHa005303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sat, 11 Jan 2020 04:02:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356629 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 356629 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 04:02:41 -0000 Author: delphij Date: Sat Jan 11 04:02:40 2020 New Revision: 356629 URL: https://svnweb.freebsd.org/changeset/base/356629 Log: Apply typo fix from NetBSD, we have already applied all NetBSD changes so update the NetBSD tag while I'm there. MFC after: 2 weeks Modified: head/sbin/fsck_msdosfs/boot.c Modified: head/sbin/fsck_msdosfs/boot.c ============================================================================== --- head/sbin/fsck_msdosfs/boot.c Sat Jan 11 03:59:06 2020 (r356628) +++ head/sbin/fsck_msdosfs/boot.c Sat Jan 11 04:02:40 2020 (r356629) @@ -28,7 +28,7 @@ #include #ifndef lint -__RCSID("$NetBSD: boot.c,v 1.11 2006/06/05 16:51:18 christos Exp "); +__RCSID("$NetBSD: boot.c,v 1.21 2018/02/08 09:05:17 dholland Exp $"); static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ @@ -356,7 +356,7 @@ writefsinfo(int dosfs, struct bootblock *boot) * support for FAT32) doesn't maintain the FSINFO block * correctly, it has to be fixed pretty often. * - * Therefor, we handle the FSINFO block only informally, + * Therefore, we handle the FSINFO block only informally, * fixing it if necessary, but otherwise ignoring the * fact that it was incorrect. */ From owner-svn-src-all@freebsd.org Sat Jan 11 06:06:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5EA241FEB17; Sat, 11 Jan 2020 06:06:14 +0000 (UTC) (envelope-from rlibby@gmail.com) Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vq9L1hzfz4cTk; Sat, 11 Jan 2020 06:06:14 +0000 (UTC) (envelope-from rlibby@gmail.com) Received: by mail-qk1-f196.google.com with SMTP id a203so4093449qkc.3; Fri, 10 Jan 2020 22:06:14 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EElFlyyGLpfYNs+4KoYP45TBV9jcnPVh2up1K0flSYQ=; b=IwS8pAEZSPfnptPImpc2gxRUCw1q6Ozobo0iG8Hz63EV1sGYlR8zEoDwjVSkBSOR7e 85YT4ZTqB7+BLmXRj8iz1wHBkm5HUAmEazlwtT29FLwSESQe9SqS02Mk1GrpL5YMOj2j nGXJqRhPvQz+LBNUAv00FLB27jrhlIfh19Mb3oybJGi3RHHy+XbIjvJhp1wvacuhQVt3 NAWn2gq0cBKCx/qJyDRv60uWuwIZohCFgbKzerw1ltSmwMUr/ibRwSFiFnC5vPwfoWvL 131W5aEW2MXt8F5XeUiNMjMrgCycPIwbdv2dOrKHhcfbvaknz9/Pr3NZq9ZqhOtc/Sg1 vEqg== X-Gm-Message-State: APjAAAVmEd62Nzv2xjMDSLbpei+YJC2tVLSk5eD79yOwtrg1vfXi6hB3 egTBXnYIexrK2GFNsh7kKuZ9sCdH X-Google-Smtp-Source: APXvYqxTItSV9u/yKzMYuhY+wvqwHQ9JrUd46ab3o1/A8VkAGroyUQ1AJVlYcsJqjVJ8yJ4MCxKtxA== X-Received: by 2002:ae9:ef4b:: with SMTP id d72mr6473100qkg.27.1578722772845; Fri, 10 Jan 2020 22:06:12 -0800 (PST) Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com. [209.85.160.176]) by smtp.gmail.com with ESMTPSA id k9sm2193465qtq.75.2020.01.10.22.06.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 Jan 2020 22:06:12 -0800 (PST) Received: by mail-qt1-f176.google.com with SMTP id w47so4121706qtk.4; Fri, 10 Jan 2020 22:06:12 -0800 (PST) X-Received: by 2002:ac8:5149:: with SMTP id h9mr5648108qtn.123.1578722772210; Fri, 10 Jan 2020 22:06:12 -0800 (PST) MIME-Version: 1.0 References: <202001102122.00ALM37Q063532@repo.freebsd.org> In-Reply-To: <202001102122.00ALM37Q063532@repo.freebsd.org> From: Ryan Libby Date: Fri, 10 Jan 2020 22:06:01 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r356613 - head/sys/dev/virtio/network To: Gleb Smirnoff Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47vq9L1hzfz4cTk X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 06:06:14 -0000 On Fri, Jan 10, 2020 at 1:22 PM Gleb Smirnoff wrote: > > Author: glebius > Date: Fri Jan 10 21:22:03 2020 > New Revision: 356613 > URL: https://svnweb.freebsd.org/changeset/base/356613 > > Log: > Add pfil(9) hook to vtnet(4). > > The patch could be simplier, using only the second chunk to > vtnet_rxq_eof(), that passes full mbufs to pfil(9). Packet > filter would m_free() them in case of returning PFIL_DROPPED. > > However, we pretend to be a hardware driver, so we first try > to pass a memory buffer via PFIL_MEMPTR feature. This is mostly > done for debugging purposes, so that one can experiment in bhyve > with packet filters utilizing same features as a true driver. > > Modified: > head/sys/dev/virtio/network/if_vtnet.c > head/sys/dev/virtio/network/if_vtnetvar.h > > Modified: head/sys/dev/virtio/network/if_vtnet.c > ============================================================================== > --- head/sys/dev/virtio/network/if_vtnet.c Fri Jan 10 20:53:58 2020 (r356612) > +++ head/sys/dev/virtio/network/if_vtnet.c Fri Jan 10 21:22:03 2020 (r356613) > @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); > > #include > #include > +#include > #include > #include > #include > @@ -935,6 +936,7 @@ static int > vtnet_setup_interface(struct vtnet_softc *sc) > { > device_t dev; > + struct pfil_head_args pa; > struct ifnet *ifp; > > dev = sc->vtnet_dev; > @@ -1038,6 +1040,12 @@ vtnet_setup_interface(struct vtnet_softc *sc) > > DEBUGNET_SET(ifp, vtnet); > > + pa.pa_version = PFIL_VERSION; > + pa.pa_flags = PFIL_IN; > + pa.pa_type = PFIL_TYPE_ETHERNET; > + pa.pa_headname = ifp->if_xname; > + sc->vtnet_pfil = pfil_head_register(&pa); > + > return (0); > } > > @@ -1773,9 +1781,11 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) > struct vtnet_softc *sc; > struct ifnet *ifp; > struct virtqueue *vq; > - struct mbuf *m; > + struct mbuf *m, *mr; > struct virtio_net_hdr_mrg_rxbuf *mhdr; > int len, deq, nbufs, adjsz, count; > + pfil_return_t pfil; > + bool pfil_done; > > sc = rxq->vtnrx_sc; > vq = rxq->vtnrx_vq; > @@ -1812,6 +1822,35 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) > adjsz = sizeof(struct virtio_net_hdr_mrg_rxbuf); > } > > + /* > + * If we have enough data in first mbuf, run it through > + * pfil as a memory buffer before dequeueing the rest. > + */ > + if (PFIL_HOOKED_IN(sc->vtnet_pfil) && > + len - adjsz >= ETHER_HDR_LEN + max_protohdr) { > + pfil = pfil_run_hooks(sc->vtnet_pfil, > + m->m_data + adjsz, ifp, > + len - adjsz | PFIL_MEMPTR | PFIL_IN, NULL); Hi Gleb, gcc wants (len - adjsz) paranthesized. https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/12838/ --- if_vtnet.o --- /workspace/src/sys/dev/virtio/network/if_vtnet.c: In function 'vtnet_rxq_eof': /workspace/src/sys/dev/virtio/network/if_vtnet.c:1833:12: error: suggest parentheses around arithmetic in operand of '|' [-Werror=parentheses] len - adjsz | PFIL_MEMPTR | PFIL_IN, NULL); ~~~~^~~~~~~ > + switch (pfil) { > + case PFIL_REALLOCED: > + mr = pfil_mem2mbuf(m->m_data + adjsz); > + vtnet_rxq_input(rxq, mr, hdr); > + /* FALLTHROUGH */ > + case PFIL_DROPPED: > + case PFIL_CONSUMED: > + vtnet_rxq_discard_buf(rxq, m); > + if (nbufs > 1) > + vtnet_rxq_discard_merged_bufs(rxq, > + nbufs); > + continue; > + default: > + KASSERT(pfil == PFIL_PASS, > + ("Filter returned %d!\n", pfil)); > + }; > + pfil_done = true; > + } else > + pfil_done = false; > + > if (vtnet_rxq_replace_buf(rxq, m, len) != 0) { > rxq->vtnrx_stats.vrxs_iqdrops++; > vtnet_rxq_discard_buf(rxq, m); > @@ -1841,6 +1880,19 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) > */ > memcpy(hdr, mtod(m, void *), sizeof(struct virtio_net_hdr)); > m_adj(m, adjsz); > + > + if (PFIL_HOOKED_IN(sc->vtnet_pfil) && pfil_done == false) { > + pfil = pfil_run_hooks(sc->vtnet_pfil, &m, ifp, PFIL_IN, > + NULL); > + switch (pfil) { > + case PFIL_DROPPED: > + case PFIL_CONSUMED: > + continue; > + default: > + KASSERT(pfil == PFIL_PASS, > + ("Filter returned %d!\n", pfil)); > + } > + } > > vtnet_rxq_input(rxq, m, hdr); > > > Modified: head/sys/dev/virtio/network/if_vtnetvar.h > ============================================================================== > --- head/sys/dev/virtio/network/if_vtnetvar.h Fri Jan 10 20:53:58 2020 (r356612) > +++ head/sys/dev/virtio/network/if_vtnetvar.h Fri Jan 10 21:22:03 2020 (r356613) > @@ -136,6 +136,7 @@ struct vtnet_softc { > struct ifnet *vtnet_ifp; > struct vtnet_rxq *vtnet_rxqs; > struct vtnet_txq *vtnet_txqs; > + pfil_head_t vtnet_pfil; > > uint32_t vtnet_flags; > #define VTNET_FLAG_SUSPENDED 0x0001 > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-svn-src-all@freebsd.org Sat Jan 11 09:08:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0580822321E; Sat, 11 Jan 2020 09:08:03 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vvC66Pxfz3GyP; Sat, 11 Jan 2020 09:08:02 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D75AF58A; Sat, 11 Jan 2020 09:08:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B9828i085253; Sat, 11 Jan 2020 09:08:02 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B982Ot085252; Sat, 11 Jan 2020 09:08:02 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001110908.00B982Ot085252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 11 Jan 2020 09:08:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356630 - head/libexec/rtld-elf X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/libexec/rtld-elf X-SVN-Commit-Revision: 356630 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 09:08:03 -0000 Author: kib Date: Sat Jan 11 09:08:02 2020 New Revision: 356630 URL: https://svnweb.freebsd.org/changeset/base/356630 Log: Stop prepending prefix to the result of realpath(3). The path is already absolute. Noted and reviewed by: rstone Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D23121 Modified: head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Sat Jan 11 04:02:40 2020 (r356629) +++ head/libexec/rtld-elf/rtld.c Sat Jan 11 09:08:02 2020 (r356630) @@ -5524,7 +5524,7 @@ static int open_binary_fd(const char *argv0, bool search_in_path, const char **binpath_res) { - char *abspath, *absres, *binpath, *pathenv, *pe, *res1; + char *binpath, *pathenv, *pe, *res1; const char *res; int fd; @@ -5569,31 +5569,16 @@ open_binary_fd(const char *argv0, bool search_in_path, rtld_die(); } if (res != NULL && res[0] != '/') { - abspath = getcwd(NULL, 0); - if (abspath != NULL) { - res1 = xmalloc(PATH_MAX); - if (realpath(res, res1) != NULL) { - if (res != argv0) - free(__DECONST(char *, res)); - res = res1; - } else { - free(res1); - } - absres = xmalloc(strlen(abspath) + - strlen(res) + 2); - strcpy(absres, abspath); - strcat(absres, "/"); - strcat(absres, res); - free(abspath); + res1 = xmalloc(PATH_MAX); + if (realpath(res, res1) != NULL) { if (res != argv0) free(__DECONST(char *, res)); - *binpath_res = absres; + res = res1; } else { - *binpath_res = res; + free(res1); } - } else { - *binpath_res = res; } + *binpath_res = res; return (fd); } From owner-svn-src-all@freebsd.org Sat Jan 11 09:19:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1366C223458; Sat, 11 Jan 2020 09:19:00 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vvRl6ltPz3HPs; Sat, 11 Jan 2020 09:18:59 +0000 (UTC) (envelope-from kib@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E317F783; Sat, 11 Jan 2020 09:18:59 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B9IxCt091013; Sat, 11 Jan 2020 09:18:59 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B9Iwhj091004; Sat, 11 Jan 2020 09:18:58 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001110918.00B9Iwhj091004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 11 Jan 2020 09:18:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356631 - in head/libexec/rtld-elf: . amd64 arm i386 mips powerpc64 sparc64 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/libexec/rtld-elf: . amd64 arm i386 mips powerpc64 sparc64 X-SVN-Commit-Revision: 356631 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 09:19:00 -0000 Author: kib Date: Sat Jan 11 09:18:58 2020 New Revision: 356631 URL: https://svnweb.freebsd.org/changeset/base/356631 Log: rtld: clean up Makefile. Move all MD statements into $MACHINE_ARCH/Makefile.inc. Unconditionally apply version script to rtld, the interpreter is not functional without it for long time. Reviewed by: brooks, emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D23083 Added: head/libexec/rtld-elf/mips/Makefile.inc (contents, props changed) Modified: head/libexec/rtld-elf/Makefile head/libexec/rtld-elf/amd64/Makefile.inc head/libexec/rtld-elf/arm/Makefile.inc head/libexec/rtld-elf/i386/Makefile.inc head/libexec/rtld-elf/powerpc64/Makefile.inc head/libexec/rtld-elf/sparc64/Makefile.inc Modified: head/libexec/rtld-elf/Makefile ============================================================================== --- head/libexec/rtld-elf/Makefile Sat Jan 11 09:08:02 2020 (r356630) +++ head/libexec/rtld-elf/Makefile Sat Jan 11 09:18:58 2020 (r356631) @@ -37,11 +37,6 @@ RTLD_ARCH= ${MACHINE_ARCH} RTLD_ARCH= ${MACHINE_CPUARCH} .endif CFLAGS+= -I${RTLD_ELF_DIR}/${RTLD_ARCH} -I${RTLD_ELF_DIR} -.if ${MACHINE_ARCH} == "powerpc64" -LDFLAGS+= -nostdlib -e _rtld_start -.else -LDFLAGS+= -nostdlib -e .rtld_start -.endif NO_WCAST_ALIGN= yes WARNS?= 6 @@ -52,36 +47,14 @@ SYMLINKS= ../..${BINDIR}/${PROG} ${LIBEXECDIR}/${PROG} MLINKS?= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 -.if ${MACHINE_CPUARCH} == "sparc64" -CFLAGS+= -fPIC -.else -CFLAGS+= -fpic -.endif -CFLAGS+= -DPIC $(DEBUG) -.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" -CFLAGS+= -fvisibility=hidden -.endif -.if ${MACHINE_CPUARCH} == "mips" -CFLAGS.reloc.c+=-fno-jump-tables -.endif -LDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs +CFLAGS+= -fpic -DPIC $(DEBUG) +LDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs -nostdlib -e ${RTLD_ENTRY} # Pull in the dependencies that we use from libc .include "rtld-libc/Makefile.inc" .if ${MK_TOOLCHAIN} == "no" LDFLAGS+= -L${LIBCDIR} .endif -.if ${MACHINE_CPUARCH} == "arm" -# Some of the required math functions (div & mod) are implemented in -# libcompiler_rt on ARM. The library also needs to be placed first to be -# correctly linked. As some of the functions are used before we have -# shared libraries. -LIBADD+= compiler_rt -.endif - - - -.if ${MK_SYMVER} == "yes" VERSION_DEF= ${LIBCSRCDIR}/Versions.def SYMBOL_MAPS= ${RTLD_ELF_DIR}/Symbol.map VERSION_MAP= Version.map @@ -90,9 +63,9 @@ LDFLAGS+= -Wl,--version-script=${VERSION_MAP} .if exists(${RTLD_ELF_DIR}/${RTLD_ARCH}/Symbol.map) SYMBOL_MAPS+= ${RTLD_ELF_DIR}/${RTLD_ARCH}/Symbol.map .endif -.endif .sinclude "${RTLD_ELF_DIR}/${RTLD_ARCH}/Makefile.inc" +RTLD_ENTRY?= .rtld_start # Since moving rtld-elf to /libexec, we need to create a symlink. # Fixup the existing binary that's there so we can symlink over it. Modified: head/libexec/rtld-elf/amd64/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/amd64/Makefile.inc Sat Jan 11 09:08:02 2020 (r356630) +++ head/libexec/rtld-elf/amd64/Makefile.inc Sat Jan 11 09:18:58 2020 (r356631) @@ -1,3 +1,3 @@ # $FreeBSD$ -CFLAGS+= ${CFLAGS_NO_SIMD} -msoft-float +CFLAGS+= ${CFLAGS_NO_SIMD} -msoft-float -fvisibility=hidden Modified: head/libexec/rtld-elf/arm/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/arm/Makefile.inc Sat Jan 11 09:08:02 2020 (r356630) +++ head/libexec/rtld-elf/arm/Makefile.inc Sat Jan 11 09:18:58 2020 (r356631) @@ -1 +1,7 @@ # $FreeBSD$ + +# Some of the required math functions (div & mod) are implemented in +# libcompiler_rt on ARM. The library also needs to be placed first to be +# correctly linked. As some of the functions are used before we have +# shared libraries. +LIBADD+= compiler_rt Modified: head/libexec/rtld-elf/i386/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/i386/Makefile.inc Sat Jan 11 09:08:02 2020 (r356630) +++ head/libexec/rtld-elf/i386/Makefile.inc Sat Jan 11 09:18:58 2020 (r356631) @@ -1,3 +1,3 @@ # $FreeBSD$ -CFLAGS+= ${CFLAGS_NO_SIMD} -msoft-float +CFLAGS+= ${CFLAGS_NO_SIMD} -msoft-float -fvisibility=hidden Added: head/libexec/rtld-elf/mips/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/libexec/rtld-elf/mips/Makefile.inc Sat Jan 11 09:18:58 2020 (r356631) @@ -0,0 +1,3 @@ +# $FreeBSD$ + +CFLAGS.reloc.c+=-fno-jump-tables Modified: head/libexec/rtld-elf/powerpc64/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/powerpc64/Makefile.inc Sat Jan 11 09:08:02 2020 (r356630) +++ head/libexec/rtld-elf/powerpc64/Makefile.inc Sat Jan 11 09:18:58 2020 (r356631) @@ -1 +1,3 @@ # $FreeBSD$ + +RTLD_ENTRY= _rtld_start Modified: head/libexec/rtld-elf/sparc64/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/sparc64/Makefile.inc Sat Jan 11 09:08:02 2020 (r356630) +++ head/libexec/rtld-elf/sparc64/Makefile.inc Sat Jan 11 09:18:58 2020 (r356631) @@ -1 +1,3 @@ # $FreeBSD$ + +CFLAGS:=${CFLAGS:S/-fpic/-fPIC/} From owner-svn-src-all@freebsd.org Sat Jan 11 11:38:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E347822696F; Sat, 11 Jan 2020 11:38:02 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vyXB5pCKz3xpC; Sat, 11 Jan 2020 11:38:02 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C21F321BE; Sat, 11 Jan 2020 11:38:02 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BBc22O078677; Sat, 11 Jan 2020 11:38:02 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BBc2cN078676; Sat, 11 Jan 2020 11:38:02 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001111138.00BBc2cN078676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sat, 11 Jan 2020 11:38:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356632 - head/sys/dev/usb/controller X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/usb/controller X-SVN-Commit-Revision: 356632 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 11:38:03 -0000 Author: hselasky Date: Sat Jan 11 11:38:02 2020 New Revision: 356632 URL: https://svnweb.freebsd.org/changeset/base/356632 Log: Revert r356598 for now because it breaks some AMD based XHCI controllers. Reported by: jkim @ MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/usb/controller/xhci.c Modified: head/sys/dev/usb/controller/xhci.c ============================================================================== --- head/sys/dev/usb/controller/xhci.c Sat Jan 11 09:18:58 2020 (r356631) +++ head/sys/dev/usb/controller/xhci.c Sat Jan 11 11:38:02 2020 (r356632) @@ -1598,26 +1598,10 @@ static usb_error_t xhci_cmd_stop_ep(struct xhci_softc *sc, uint8_t suspend, uint8_t ep_id, uint8_t slot_id) { - struct usb_page_search buf_dev; - struct xhci_dev_ctx *pdev; struct xhci_trb trb; uint32_t temp; DPRINTF("\n"); - - usbd_get_page(&sc->sc_hw.devs[slot_id].device_pc, 0, &buf_dev); - pdev = buf_dev.buffer; - usb_pc_cpu_invalidate(&sc->sc_hw.devs[slot_id].device_pc); - - switch (XHCI_EPCTX_0_EPSTATE_GET(pdev->ctx_ep[ep_id - 1].dwEpCtx0)) { - case XHCI_EPCTX_0_EPSTATE_DISABLED: - case XHCI_EPCTX_0_EPSTATE_STOPPED: - DPRINTF("Endpoint %u on slot %u is already stopped\n", - ep_id, slot_id); - return (USB_ERR_NORMAL_COMPLETION); - default: - break; - } trb.qwTrb0 = 0; trb.dwTrb2 = 0; From owner-svn-src-all@freebsd.org Sat Jan 11 12:02:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA28A227D28; Sat, 11 Jan 2020 12:02:16 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vz485tVpz40bW; Sat, 11 Jan 2020 12:02:16 +0000 (UTC) (envelope-from hselasky@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C53EA274D; Sat, 11 Jan 2020 12:02:16 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BC2Gj8096224; Sat, 11 Jan 2020 12:02:16 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BC2GZH096212; Sat, 11 Jan 2020 12:02:16 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001111202.00BC2GZH096212@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sat, 11 Jan 2020 12:02:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356633 - head/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/ofed/drivers/infiniband/ulp/ipoib X-SVN-Commit-Revision: 356633 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 12:02:17 -0000 Author: hselasky Date: Sat Jan 11 12:02:16 2020 New Revision: 356633 URL: https://svnweb.freebsd.org/changeset/base/356633 Log: Make sure the VNET is properly set when reaping mbufs in ipoib. Else the following panic may happen: panic() icmp_error() ipoib_cm_mb_reap() linux_work_fn() taskqueue_run_locked() taskqueue_thread_loop() fork_exit() fork_trampoline() Submitted by: Andreas Kempe MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c ============================================================================== --- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Sat Jan 11 11:38:02 2020 (r356632) +++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c Sat Jan 11 12:02:16 2020 (r356633) @@ -1268,6 +1268,8 @@ static void ipoib_cm_mb_reap(struct work_struct *work) spin_lock_irqsave(&priv->lock, flags); + CURVNET_SET_QUIET(priv->dev->if_vnet); + for (;;) { IF_DEQUEUE(&priv->cm.mb_queue, mb); if (mb == NULL) @@ -1293,6 +1295,8 @@ static void ipoib_cm_mb_reap(struct work_struct *work) spin_lock_irqsave(&priv->lock, flags); } + + CURVNET_RESTORE(); spin_unlock_irqrestore(&priv->lock, flags); } From owner-svn-src-all@freebsd.org Sat Jan 11 15:06:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B8AAA1ED1DF; Sat, 11 Jan 2020 15:06:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w38H4Sf9z49X2; Sat, 11 Jan 2020 15:06:07 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 935DD4B72; Sat, 11 Jan 2020 15:06:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BF67EF004763; Sat, 11 Jan 2020 15:06:07 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BF67tN004761; Sat, 11 Jan 2020 15:06:07 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001111506.00BF67tN004761@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 15:06:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356634 - in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Commit-Revision: 356634 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 15:06:07 -0000 Author: kevans Date: Sat Jan 11 15:06:06 2020 New Revision: 356634 URL: https://svnweb.freebsd.org/changeset/base/356634 Log: MFC r356359-r356360: kern_mmap: add fpcheck invariant for linux_mmap r356359: kern_mmap: add a variant that allows caller to inspect fp Linux mmap rejects mmap() on a write-only file with EACCES. linux_mmap_common currently does a fun dance to grab the fp associated with the passed in fd, validates it, then drops the reference and calls into kern_mmap(). Doing so is perhaps both fragile and premature; there's still plenty of chance for the request to get rejected with a more appropriate error, and it's prone to a race where the file we ultimately mmap has changed after it drops its referenced. This change alleviates the need to do this by providing a kern_mmap variant that allows the caller to inspect the fp just before calling into the fileop layer. The callback takes flags, prot, and maxprot as one could imagine scenarios where any of these, in conjunction with the file itself, may influence a caller's decision. The file type check in the linux compat layer has been removed; EINVAL is seemingly not an appropriate response to the file not being a vnode or device. The fileop layer will reject the operation with ENODEV if it's not supported, which more closely matches the common linux description of mmap(2) return values. If we discover that we're allowing an mmap() on a file type that Linux normally wouldn't, we should restrict those explicitly. r356360: kern_mmap: restore character deleted in transit Modified: stable/11/sys/compat/linux/linux_mmap.c stable/11/sys/sys/syscallsubr.h stable/11/sys/vm/vm_mmap.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/compat/linux/linux_mmap.c stable/12/sys/sys/syscallsubr.h stable/12/sys/vm/vm_mmap.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/compat/linux/linux_mmap.c ============================================================================== --- stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -62,7 +62,17 @@ __FBSDID("$FreeBSD$"); static void linux_fixup_prot(struct thread *td, int *prot); #endif +static int +linux_mmap_check_fp(struct file *fp, int flags, int prot, int maxprot) +{ + /* Linux mmap() just fails for O_WRONLY files */ + if ((fp->f_flag & FREAD) == 0) + return (EACCES); + + return (0); +} + int linux_mmap_common(struct thread *td, uintptr_t addr, size_t len, int prot, int flags, int fd, off_t pos) @@ -118,31 +128,6 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ fd = (bsd_flags & MAP_ANON) ? -1 : fd; - if (fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - */ - - error = fget(td, fd, cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE && fp->f_type != DTYPE_DEV) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - if (flags & LINUX_MAP_GROWSDOWN) { /* * The Linux MAP_GROWSDOWN option does not limit auto @@ -212,13 +197,15 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s */ if (addr != 0 && (bsd_flags & MAP_FIXED) == 0 && (bsd_flags & MAP_EXCL) == 0) { - error = kern_mmap(td, addr, len, prot, - bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, + bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos, + linux_mmap_check_fp); if (error == 0) goto out; } - error = kern_mmap(td, addr, len, prot, bsd_flags, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, bsd_flags, fd, pos, + linux_mmap_check_fp); out: LINUX_CTR2(mmap2, "return: %d (%p)", error, td->td_retval[0]); Modified: stable/11/sys/sys/syscallsubr.h ============================================================================== --- stable/11/sys/sys/syscallsubr.h Sat Jan 11 12:02:16 2020 (r356633) +++ stable/11/sys/sys/syscallsubr.h Sat Jan 11 15:06:06 2020 (r356634) @@ -60,6 +60,8 @@ struct thr_param; struct sched_param; struct __wrusage; +typedef int (*mmap_check_fp_fn)(struct file *, int, int, int); + int kern___getcwd(struct thread *td, char *buf, enum uio_seg bufseg, u_int buflen, u_int path_max); int kern_accept(struct thread *td, int s, struct sockaddr **name, @@ -165,6 +167,9 @@ int kern_mlock(struct proc *proc, struct ucred *cred, size_t len); int kern_mmap(struct thread *td, uintptr_t addr, size_t size, int prot, int flags, int fd, off_t pos); +int kern_mmap_fpcheck(struct thread *td, uintptr_t addr, size_t len, + int prot, int flags, int fd, off_t pos, + mmap_check_fp_fn check_fp_fn); int kern_mprotect(struct thread *td, uintptr_t addr, size_t size, int prot); int kern_msgctl(struct thread *, int, int, struct msqid_ds *); int kern_msgrcv(struct thread *, int, void *, size_t, long, int, long *); Modified: stable/11/sys/vm/vm_mmap.c ============================================================================== --- stable/11/sys/vm/vm_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/11/sys/vm/vm_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -184,6 +184,18 @@ int kern_mmap(struct thread *td, uintptr_t addr0, size_t size, int prot, int flags, int fd, off_t pos) { + + return (kern_mmap_fpcheck(td, addr0, size, prot, flags, fd, pos, NULL)); +} + +/* + * When mmap'ing a file, check_fp_fn may be used for the caller to do any + * last-minute validation based on the referenced file in a non-racy way. + */ +int +kern_mmap_fpcheck(struct thread *td, uintptr_t addr0, size_t size, int prot, + int flags, int fd, off_t pos, mmap_check_fp_fn check_fp_fn) +{ struct vmspace *vms; struct file *fp; vm_offset_t addr; @@ -356,7 +368,11 @@ kern_mmap(struct thread *td, uintptr_t addr0, size_t s error = EINVAL; goto done; } - + if (check_fp_fn != NULL) { + error = check_fp_fn(fp, prot, cap_maxprot, flags); + if (error != 0) + goto done; + } /* This relies on VM_PROT_* matching PROT_*. */ error = fo_mmap(fp, &vms->vm_map, &addr, size, prot, cap_maxprot, flags, pos, td); From owner-svn-src-all@freebsd.org Sat Jan 11 15:06:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 79B201ED1EE; Sat, 11 Jan 2020 15:06:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w38J2YL5z49X4; Sat, 11 Jan 2020 15:06:08 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 52F7D4B73; Sat, 11 Jan 2020 15:06:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BF687O004771; Sat, 11 Jan 2020 15:06:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BF67bG004769; Sat, 11 Jan 2020 15:06:07 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001111506.00BF67bG004769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 15:06:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356634 - in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Commit-Revision: 356634 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 15:06:08 -0000 Author: kevans Date: Sat Jan 11 15:06:06 2020 New Revision: 356634 URL: https://svnweb.freebsd.org/changeset/base/356634 Log: MFC r356359-r356360: kern_mmap: add fpcheck invariant for linux_mmap r356359: kern_mmap: add a variant that allows caller to inspect fp Linux mmap rejects mmap() on a write-only file with EACCES. linux_mmap_common currently does a fun dance to grab the fp associated with the passed in fd, validates it, then drops the reference and calls into kern_mmap(). Doing so is perhaps both fragile and premature; there's still plenty of chance for the request to get rejected with a more appropriate error, and it's prone to a race where the file we ultimately mmap has changed after it drops its referenced. This change alleviates the need to do this by providing a kern_mmap variant that allows the caller to inspect the fp just before calling into the fileop layer. The callback takes flags, prot, and maxprot as one could imagine scenarios where any of these, in conjunction with the file itself, may influence a caller's decision. The file type check in the linux compat layer has been removed; EINVAL is seemingly not an appropriate response to the file not being a vnode or device. The fileop layer will reject the operation with ENODEV if it's not supported, which more closely matches the common linux description of mmap(2) return values. If we discover that we're allowing an mmap() on a file type that Linux normally wouldn't, we should restrict those explicitly. r356360: kern_mmap: restore character deleted in transit Modified: stable/12/sys/compat/linux/linux_mmap.c stable/12/sys/sys/syscallsubr.h stable/12/sys/vm/vm_mmap.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/compat/linux/linux_mmap.c stable/11/sys/sys/syscallsubr.h stable/11/sys/vm/vm_mmap.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/compat/linux/linux_mmap.c ============================================================================== --- stable/12/sys/compat/linux/linux_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/12/sys/compat/linux/linux_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -62,7 +62,17 @@ __FBSDID("$FreeBSD$"); static void linux_fixup_prot(struct thread *td, int *prot); #endif +static int +linux_mmap_check_fp(struct file *fp, int flags, int prot, int maxprot) +{ + /* Linux mmap() just fails for O_WRONLY files */ + if ((fp->f_flag & FREAD) == 0) + return (EACCES); + + return (0); +} + int linux_mmap_common(struct thread *td, uintptr_t addr, size_t len, int prot, int flags, int fd, off_t pos) @@ -117,31 +127,6 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ fd = (bsd_flags & MAP_ANON) ? -1 : fd; - if (fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - */ - - error = fget(td, fd, &cap_mmap_rights, &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE && fp->f_type != DTYPE_DEV) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - if (flags & LINUX_MAP_GROWSDOWN) { /* * The Linux MAP_GROWSDOWN option does not limit auto @@ -211,13 +196,15 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s */ if (addr != 0 && (bsd_flags & MAP_FIXED) == 0 && (bsd_flags & MAP_EXCL) == 0) { - error = kern_mmap(td, addr, len, prot, - bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, + bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos, + linux_mmap_check_fp); if (error == 0) goto out; } - error = kern_mmap(td, addr, len, prot, bsd_flags, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, bsd_flags, fd, pos, + linux_mmap_check_fp); out: LINUX_CTR2(mmap2, "return: %d (%p)", error, td->td_retval[0]); Modified: stable/12/sys/sys/syscallsubr.h ============================================================================== --- stable/12/sys/sys/syscallsubr.h Sat Jan 11 12:02:16 2020 (r356633) +++ stable/12/sys/sys/syscallsubr.h Sat Jan 11 15:06:06 2020 (r356634) @@ -63,6 +63,8 @@ struct stat; struct thr_param; struct uio; +typedef int (*mmap_check_fp_fn)(struct file *, int, int, int); + int kern___getcwd(struct thread *td, char *buf, enum uio_seg bufseg, size_t buflen, size_t path_max); int kern_accept(struct thread *td, int s, struct sockaddr **name, @@ -175,6 +177,9 @@ int kern_mlock(struct proc *proc, struct ucred *cred, size_t len); int kern_mmap(struct thread *td, uintptr_t addr, size_t size, int prot, int flags, int fd, off_t pos); +int kern_mmap_fpcheck(struct thread *td, uintptr_t addr, size_t len, + int prot, int flags, int fd, off_t pos, + mmap_check_fp_fn check_fp_fn); int kern_mprotect(struct thread *td, uintptr_t addr, size_t size, int prot); int kern_msgctl(struct thread *, int, int, struct msqid_ds *); int kern_msgrcv(struct thread *, int, void *, size_t, long, int, long *); Modified: stable/12/sys/vm/vm_mmap.c ============================================================================== --- stable/12/sys/vm/vm_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/12/sys/vm/vm_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -185,6 +185,18 @@ int kern_mmap(struct thread *td, uintptr_t addr0, size_t size, int prot, int flags, int fd, off_t pos) { + + return (kern_mmap_fpcheck(td, addr0, size, prot, flags, fd, pos, NULL)); +} + +/* + * When mmap'ing a file, check_fp_fn may be used for the caller to do any + * last-minute validation based on the referenced file in a non-racy way. + */ +int +kern_mmap_fpcheck(struct thread *td, uintptr_t addr0, size_t size, int prot, + int flags, int fd, off_t pos, mmap_check_fp_fn check_fp_fn) +{ struct vmspace *vms; struct file *fp; struct proc *p; @@ -362,7 +374,11 @@ kern_mmap(struct thread *td, uintptr_t addr0, size_t s error = EINVAL; goto done; } - + if (check_fp_fn != NULL) { + error = check_fp_fn(fp, prot, cap_maxprot, flags); + if (error != 0) + goto done; + } /* This relies on VM_PROT_* matching PROT_*. */ error = fo_mmap(fp, &vms->vm_map, &addr, size, prot, cap_maxprot, flags, pos, td); From owner-svn-src-all@freebsd.org Sat Jan 11 16:28:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0BFE51EEFC8; Sat, 11 Jan 2020 16:28:36 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w4zR6DnSz4FTK; Sat, 11 Jan 2020 16:28:35 +0000 (UTC) (envelope-from kevans@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D0AD65A55; Sat, 11 Jan 2020 16:28:35 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BGSZIq053382; Sat, 11 Jan 2020 16:28:35 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BGSZjQ053381; Sat, 11 Jan 2020 16:28:35 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001111628.00BGSZjQ053381@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 16:28:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356635 - stable/11/sys/compat/linux X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/11/sys/compat/linux X-SVN-Commit-Revision: 356635 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 16:28:36 -0000 Author: kevans Date: Sat Jan 11 16:28:35 2020 New Revision: 356635 URL: https://svnweb.freebsd.org/changeset/base/356635 Log: Fix warning after r356634 This is a direct commit to stable/11, because stable/12 and head no longer used this local 'rights' variable. It is no longer needed now that grabbing fp was moved into mmap. Modified: stable/11/sys/compat/linux/linux_mmap.c Modified: stable/11/sys/compat/linux/linux_mmap.c ============================================================================== --- stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 15:06:06 2020 (r356634) +++ stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 16:28:35 2020 (r356635) @@ -82,7 +82,6 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s int bsd_flags, error; struct file *fp; - cap_rights_t rights; LINUX_CTR6(mmap2, "0x%lx, %ld, %ld, 0x%08lx, %ld, 0x%lx", addr, len, prot, flags, fd, pos); From owner-svn-src-all@freebsd.org Sat Jan 11 17:41:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B7D1C1F0514; Sat, 11 Jan 2020 17:41:20 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w6bN4Xg9z4Jk2; Sat, 11 Jan 2020 17:41:20 +0000 (UTC) (envelope-from delphij@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9713367A3; Sat, 11 Jan 2020 17:41:20 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BHfKxw099467; Sat, 11 Jan 2020 17:41:20 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BHfK23099466; Sat, 11 Jan 2020 17:41:20 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202001111741.00BHfK23099466@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sat, 11 Jan 2020 17:41:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356636 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 356636 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 17:41:20 -0000 Author: delphij Date: Sat Jan 11 17:41:20 2020 New Revision: 356636 URL: https://svnweb.freebsd.org/changeset/base/356636 Log: Correct off-by-two issue when determining FAT type. In the code we used NumClusters as the upper (non-inclusive) boundary of valid cluster number, so the actual value was 2 (CLUST_FIRST) more than the real number of clusters. This causes a FAT16 media with 65524 clusters be treated as FAT32 and might affect FAT12 media with 4084 clusters as well. To fix this, we increment NumClusters by CLUST_FIRST after the type determination. PR: 243179 MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D23082 Modified: head/sbin/fsck_msdosfs/boot.c Modified: head/sbin/fsck_msdosfs/boot.c ============================================================================== --- head/sbin/fsck_msdosfs/boot.c Sat Jan 11 16:28:35 2020 (r356635) +++ head/sbin/fsck_msdosfs/boot.c Sat Jan 11 17:41:20 2020 (r356636) @@ -266,8 +266,11 @@ readboot(int dosfs, struct bootblock *boot) return FSFATAL; } - boot->NumClusters = (boot->NumSectors - boot->FirstCluster) / boot->bpbSecPerClust + - CLUST_FIRST; + /* + * The number of clusters is derived from available data sectors, divided + * by sectors per cluster. + */ + boot->NumClusters = (boot->NumSectors - boot->FirstCluster) / boot->bpbSecPerClust; if (boot->flags & FAT32) { if (boot->NumClusters > (CLUST_RSRVD & CLUST32_MASK)) { @@ -310,11 +313,19 @@ readboot(int dosfs, struct bootblock *boot) break; } - if (boot->NumFatEntries < boot->NumClusters - CLUST_FIRST) { + if (boot->NumFatEntries < boot->NumClusters) { pfatal("FAT size too small, %u entries won't fit into %u sectors\n", boot->NumClusters, boot->FATsecs); return FSFATAL; } + + /* + * There are two reserved clusters. To avoid adding CLUST_FIRST every time + * when we perform boundary checks, we increment the NumClusters by 2, + * which is CLUST_FIRST to denote the first out-of-range cluster number. + */ + boot->NumClusters += CLUST_FIRST; + boot->ClusterSize = boot->bpbBytesPerSec * boot->bpbSecPerClust; boot->NumFiles = 1; From owner-svn-src-all@freebsd.org Sat Jan 11 18:36:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 54B4B1F191F; Sat, 11 Jan 2020 18:36:11 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w7pg1b9jz4MPT; Sat, 11 Jan 2020 18:36:11 +0000 (UTC) (envelope-from manu@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2D5C77249; Sat, 11 Jan 2020 18:36:11 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BIaBFj031864; Sat, 11 Jan 2020 18:36:11 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BIaAjY031862; Sat, 11 Jan 2020 18:36:10 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001111836.00BIaAjY031862@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 11 Jan 2020 18:36:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356637 - in head/sys: dts/arm64/overlays modules/dtb/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: dts/arm64/overlays modules/dtb/allwinner X-SVN-Commit-Revision: 356637 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 18:36:11 -0000 Author: manu Date: Sat Jan 11 18:36:10 2020 New Revision: 356637 URL: https://svnweb.freebsd.org/changeset/base/356637 Log: arm64: allwinner: dtso: Add spi0 spigen DTSO This overlays can be used on A64 board to use spigen and spi(8) on the spi0 pins. Tested On: Pine64-LTS, A64-Olinuxino Submitted by: Gary Otten Added: head/sys/dts/arm64/overlays/sun50i-a64-spi0-spigen.dtso (contents, props changed) Modified: head/sys/modules/dtb/allwinner/Makefile Added: head/sys/dts/arm64/overlays/sun50i-a64-spi0-spigen.dtso ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dts/arm64/overlays/sun50i-a64-spi0-spigen.dtso Sat Jan 11 18:36:10 2020 (r356637) @@ -0,0 +1,17 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "allwinner,sun50i-a64"; +}; + +&{/soc/spi@1c68000} { + status = "okay"; + + spigen0: spigen0 { + compatible = "freebsd,spigen"; + reg = <0>; + spi-max-frequency = <500000>; + status = "okay"; + }; +}; Modified: head/sys/modules/dtb/allwinner/Makefile ============================================================================== --- head/sys/modules/dtb/allwinner/Makefile Sat Jan 11 17:41:20 2020 (r356636) +++ head/sys/modules/dtb/allwinner/Makefile Sat Jan 11 18:36:10 2020 (r356637) @@ -54,6 +54,7 @@ DTSO= sun50i-a64-opp.dtso \ sun50i-a64-pwm.dtso \ sun50i-a64-rpwm.dtso \ sun50i-a64-sid.dtso \ + sun50i-a64-spi0-spigen.dtso \ sun50i-a64-ths.dtso \ sun50i-a64-timer.dtso \ sun50i-h5-opp.dtso \ From owner-svn-src-all@freebsd.org Sat Jan 11 18:55:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 23DC11F1F58; Sat, 11 Jan 2020 18:55:13 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w8Dd09Cnz4NLw; Sat, 11 Jan 2020 18:55:13 +0000 (UTC) (envelope-from bz@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 00D9775E0; Sat, 11 Jan 2020 18:55:13 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BItCcg043792; Sat, 11 Jan 2020 18:55:12 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BItCxW043787; Sat, 11 Jan 2020 18:55:12 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001111855.00BItCxW043787@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 18:55:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356638 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 356638 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 18:55:13 -0000 Author: bz Date: Sat Jan 11 18:55:12 2020 New Revision: 356638 URL: https://svnweb.freebsd.org/changeset/base/356638 Log: in6_mcast: make in6_joingroup_locked() static in6_joingroup_locked() is only used file-local. No need to export it hance make it static. Modified: head/sys/netinet6/in6_mcast.c head/sys/netinet6/in6_var.h Modified: head/sys/netinet6/in6_mcast.c ============================================================================== --- head/sys/netinet6/in6_mcast.c Sat Jan 11 18:36:10 2020 (r356637) +++ head/sys/netinet6/in6_mcast.c Sat Jan 11 18:55:12 2020 (r356638) @@ -121,8 +121,6 @@ MTX_SYSINIT(in6_multi_free_mtx, &in6_multi_free_mtx, " struct sx in6_multi_sx; SX_SYSINIT(in6_multi_sx, &in6_multi_sx, "in6_multi_sx"); - - static void im6f_commit(struct in6_mfilter *); static int im6f_get_source(struct in6_mfilter *imf, const struct sockaddr_in6 *psin, @@ -144,6 +142,8 @@ static void im6s_merge(struct ip6_msource *ims, const struct in6_msource *lims, const int rollback); static int in6_getmulti(struct ifnet *, const struct in6_addr *, struct in6_multi **); +static int in6_joingroup_locked(struct ifnet *, const struct in6_addr *, + struct in6_mfilter *, struct in6_multi **, int); static int in6m_get_source(struct in6_multi *inm, const struct in6_addr *addr, const int noalloc, struct ip6_msource **pims); @@ -1197,7 +1197,7 @@ in6_joingroup(struct ifnet *ifp, const struct in6_addr * If the MLD downcall fails, the group is not joined, and an error * code is returned. */ -int +static int in6_joingroup_locked(struct ifnet *ifp, const struct in6_addr *mcaddr, /*const*/ struct in6_mfilter *imf, struct in6_multi **pinm, const int delay) Modified: head/sys/netinet6/in6_var.h ============================================================================== --- head/sys/netinet6/in6_var.h Sat Jan 11 18:36:10 2020 (r356637) +++ head/sys/netinet6/in6_var.h Sat Jan 11 18:55:12 2020 (r356638) @@ -863,8 +863,6 @@ int im6o_mc_filter(const struct ip6_moptions *, const const struct sockaddr *, const struct sockaddr *); int in6_joingroup(struct ifnet *, const struct in6_addr *, struct in6_mfilter *, struct in6_multi **, int); -int in6_joingroup_locked(struct ifnet *, const struct in6_addr *, - struct in6_mfilter *, struct in6_multi **, int); int in6_leavegroup(struct in6_multi *, struct in6_mfilter *); int in6_leavegroup_locked(struct in6_multi *, struct in6_mfilter *); void in6m_clear_recorded(struct in6_multi *); From owner-svn-src-all@freebsd.org Sat Jan 11 19:12:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4E24C1F2638; Sat, 11 Jan 2020 19:12:57 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w8d42hKzz4PSn; Sat, 11 Jan 2020 19:12:56 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io1-f51.google.com with SMTP id c16so5560761ioh.6; Sat, 11 Jan 2020 11:12:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=g5zxvE/7aQ6l3VzZs3rsZJHUTxnwELaBPeaobzp9MjM=; b=infrJsSZgYvy3D55CHsnPS89JgqYaLJXWBD02MkR5yd+WB2FotXWFlRXexZPhcKxzz P+8lpiZVwdkwda7W+aboJFtcFv6Sy4twX2BuDTZ3JwWZ8jdBCcLga8koeoxIgn80MmBL yOm6O49Uv1RKdqZDWomLJKimT/3fnbYArlWgG9YWSC8qRCvlbi6b/1mWcbfh4YC3wLZp zP5tJ6lsQCDx243m4KzGMorWDqzkmku8W2PgKx7fxSJw8zqPGbKvQCepYyfSPkJk0P3X /cU7PFJ1MGgtr1FtcikoW26egwDRrGSxkH/TneTAnUw196DR2IK8hdGR+gGIM4rMYZaP 2a4g== X-Gm-Message-State: APjAAAU0+v2rFDcj8UgmWSbS1FrgCFoo1Ez7lInTTBhEDw4b/I3FWgtL RxiZnZRJ1GzmrEQtpkg7H0jSLzLU2XfgJtblgn1C7w== X-Google-Smtp-Source: APXvYqwMZX86IulOVuMVKvrXnjJ+zTdC79I5ptnHSizUBfE0t9sO4AMdqgNdlAPl65jYQuO1vU6IqDnI83vkGXdwOvQ= X-Received: by 2002:a02:ba91:: with SMTP id g17mr8596219jao.106.1578769975205; Sat, 11 Jan 2020 11:12:55 -0800 (PST) MIME-Version: 1.0 References: <202001102200.00AM0eBf082664@repo.freebsd.org> In-Reply-To: From: Ed Maste Date: Sat, 11 Jan 2020 14:12:42 -0500 Message-ID: Subject: Re: svn commit: r356615 - head/share/mk To: Enji Cooper Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47w8d42hKzz4PSn X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.51 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-4.12 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[51.166.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.12)[ip: (-5.62), ipnet: 209.85.128.0/17(-3.09), asn: 15169(-1.84), country: US(-0.05)]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; FREEMAIL_TO(0.00)[gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[51.166.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 19:12:57 -0000 On Fri, 10 Jan 2020 at 18:18, Enji Cooper wrote: > > If `MK_CRYPT == no`'s setting of `MK_KERBEROS:=no` was moved here, > then the rest would just work by virtue of precedence. As far as I can tell that doesn't actually work, but I haven't looked in detail to figure out why. From owner-svn-src-all@freebsd.org Sat Jan 11 20:07:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2236E1F39F7; Sat, 11 Jan 2020 20:07:31 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w9r26yyjz4S10; Sat, 11 Jan 2020 20:07:30 +0000 (UTC) (envelope-from glebius@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EA88382D0; Sat, 11 Jan 2020 20:07:30 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BK7UU4086405; Sat, 11 Jan 2020 20:07:30 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BK7UOQ086404; Sat, 11 Jan 2020 20:07:30 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001112007.00BK7UOQ086404@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sat, 11 Jan 2020 20:07:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356639 - head/sys/dev/virtio/network X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/dev/virtio/network X-SVN-Commit-Revision: 356639 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 20:07:31 -0000 Author: glebius Date: Sat Jan 11 20:07:30 2020 New Revision: 356639 URL: https://svnweb.freebsd.org/changeset/base/356639 Log: Pacify gcc. Reported by: rlibby Modified: head/sys/dev/virtio/network/if_vtnet.c Modified: head/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- head/sys/dev/virtio/network/if_vtnet.c Sat Jan 11 18:55:12 2020 (r356638) +++ head/sys/dev/virtio/network/if_vtnet.c Sat Jan 11 20:07:30 2020 (r356639) @@ -1830,7 +1830,7 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) len - adjsz >= ETHER_HDR_LEN + max_protohdr) { pfil = pfil_run_hooks(sc->vtnet_pfil, m->m_data + adjsz, ifp, - len - adjsz | PFIL_MEMPTR | PFIL_IN, NULL); + (len - adjsz) | PFIL_MEMPTR | PFIL_IN, NULL); switch (pfil) { case PFIL_REALLOCED: mr = pfil_mem2mbuf(m->m_data + adjsz); From owner-svn-src-all@freebsd.org Sat Jan 11 22:29:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E40CE1F6AA0; Sat, 11 Jan 2020 22:29:44 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wF085XqVz4Ym3; Sat, 11 Jan 2020 22:29:44 +0000 (UTC) (envelope-from jhibbits@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B98179C35; Sat, 11 Jan 2020 22:29:44 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BMTi6G071795; Sat, 11 Jan 2020 22:29:44 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BMTim4071794; Sat, 11 Jan 2020 22:29:44 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202001112229.00BMTim4071794@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 11 Jan 2020 22:29:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356640 - head/sys/powerpc/mpc85xx X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/mpc85xx X-SVN-Commit-Revision: 356640 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 22:29:45 -0000 Author: jhibbits Date: Sat Jan 11 22:29:44 2020 New Revision: 356640 URL: https://svnweb.freebsd.org/changeset/base/356640 Log: powerpc/mpc85xx: Fix localbus child reg property decoding r302340, as an attempt to fix the localbus child handling post-rman change, actually broke child resource allocation, due to typos in fdt_lbc_reg_decode(). This went unnoticed because there aren't any drivers currently in tree that use localbus. Modified: head/sys/powerpc/mpc85xx/lbc.c Modified: head/sys/powerpc/mpc85xx/lbc.c ============================================================================== --- head/sys/powerpc/mpc85xx/lbc.c Sat Jan 11 20:07:30 2020 (r356639) +++ head/sys/powerpc/mpc85xx/lbc.c Sat Jan 11 22:29:44 2020 (r356640) @@ -391,13 +391,13 @@ fdt_lbc_reg_decode(phandle_t node, struct lbc_softc *s /* Get address/size. */ start = count = 0; - for (j = 0; j < addr_cells; j++) { + for (j = 0; j < addr_cells - 1; j++) { start <<= 32; start |= reg[j]; } for (j = 0; j < size_cells; j++) { count <<= 32; - count |= reg[addr_cells + j - 1]; + count |= reg[addr_cells + j]; } reg += addr_cells - 1 + size_cells; From owner-svn-src-all@freebsd.org Sat Jan 11 22:55:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EC0761F742A; Sat, 11 Jan 2020 22:55:12 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wFYX5wxZz4b2G; Sat, 11 Jan 2020 22:55:12 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C28A8A19F; Sat, 11 Jan 2020 22:55:12 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BMtCDX089915; Sat, 11 Jan 2020 22:55:12 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BMtCts089914; Sat, 11 Jan 2020 22:55:12 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001112255.00BMtCts089914@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 11 Jan 2020 22:55:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356641 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356641 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 22:55:13 -0000 Author: mjg Date: Sat Jan 11 22:55:12 2020 New Revision: 356641 URL: https://svnweb.freebsd.org/changeset/base/356641 Log: vfs: add missing CLTFLA_MPSAFE annotations This covers all kern/vfs_*.c files. Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sat Jan 11 22:29:44 2020 (r356640) +++ head/sys/kern/vfs_subr.c Sat Jan 11 22:55:12 2020 (r356641) @@ -2404,7 +2404,8 @@ sysctl_vfs_worklist_len(SYSCTL_HANDLER_ARGS) return (error); } -SYSCTL_PROC(_vfs, OID_AUTO, worklist_len, CTLTYPE_INT | CTLFLAG_RD, NULL, 0, +SYSCTL_PROC(_vfs, OID_AUTO, worklist_len, + CTLTYPE_INT | CTLFLAG_MPSAFE| CTLFLAG_RD, NULL, 0, sysctl_vfs_worklist_len, "I", "Syncer thread worklist length"); static struct proc *updateproc; @@ -5467,7 +5468,7 @@ sysctl_vfs_ctl(SYSCTL_HANDLER_ARGS) return (error); } -SYSCTL_PROC(_vfs, OID_AUTO, ctl, CTLTYPE_OPAQUE | CTLFLAG_WR, +SYSCTL_PROC(_vfs, OID_AUTO, ctl, CTLTYPE_OPAQUE | CTLFLAG_MPSAFE | CTLFLAG_WR, NULL, 0, sysctl_vfs_ctl, "", "Sysctl by fsid"); From owner-svn-src-all@freebsd.org Sat Jan 11 22:56:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C634F1F7608; Sat, 11 Jan 2020 22:56:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wFZs4vT7z4bDB; Sat, 11 Jan 2020 22:56:21 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 89E75A1A0; Sat, 11 Jan 2020 22:56:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BMuLnT090007; Sat, 11 Jan 2020 22:56:21 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BMuKI3090003; Sat, 11 Jan 2020 22:56:20 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001112256.00BMuKI3090003@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 11 Jan 2020 22:56:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356642 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 356642 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 22:56:21 -0000 Author: mjg Date: Sat Jan 11 22:56:20 2020 New Revision: 356642 URL: https://svnweb.freebsd.org/changeset/base/356642 Log: vfs: incomplete pass at converting more ints to u_long Most notably numvnodes and freevnodes were u_long, but parameters used to govern them remained as ints. Modified: head/sys/kern/vfs_cache.c head/sys/kern/vfs_hash.c head/sys/kern/vfs_subr.c head/sys/sys/vnode.h Modified: head/sys/kern/vfs_cache.c ============================================================================== --- head/sys/kern/vfs_cache.c Sat Jan 11 22:55:12 2020 (r356641) +++ head/sys/kern/vfs_cache.c Sat Jan 11 22:56:20 2020 (r356642) @@ -1979,13 +1979,13 @@ nchinit(void *dummy __unused) SYSINIT(vfs, SI_SUB_VFS, SI_ORDER_SECOND, nchinit, NULL); void -cache_changesize(int newmaxvnodes) +cache_changesize(u_long newmaxvnodes) { struct nchashhead *new_nchashtbl, *old_nchashtbl; u_long new_nchash, old_nchash; struct namecache *ncp; uint32_t hash; - int newncsize; + u_long newncsize; int i; newncsize = newmaxvnodes * ncsizefactor; Modified: head/sys/kern/vfs_hash.c ============================================================================== --- head/sys/kern/vfs_hash.c Sat Jan 11 22:55:12 2020 (r356641) +++ head/sys/kern/vfs_hash.c Sat Jan 11 22:56:20 2020 (r356642) @@ -199,7 +199,7 @@ vfs_hash_rehash(struct vnode *vp, u_int hash) } void -vfs_hash_changesize(int newmaxvnodes) +vfs_hash_changesize(u_long newmaxvnodes) { struct vfs_hash_head *vfs_hash_newtbl, *vfs_hash_oldtbl; u_long vfs_hash_newmask, vfs_hash_oldmask; Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sat Jan 11 22:55:12 2020 (r356641) +++ head/sys/kern/vfs_subr.c Sat Jan 11 22:56:20 2020 (r356642) @@ -310,20 +310,21 @@ static enum { SYNCER_RUNNING, SYNCER_SHUTTING_DOWN, SY syncer_state; /* Target for maximum number of vnodes. */ -int desiredvnodes; -static int gapvnodes; /* gap between wanted and desired */ -static int vhiwat; /* enough extras after expansion */ -static int vlowat; /* minimal extras before expansion */ -static int vstir; /* nonzero to stir non-free vnodes */ +u_long desiredvnodes; +static u_long gapvnodes; /* gap between wanted and desired */ +static u_long vhiwat; /* enough extras after expansion */ +static u_long vlowat; /* minimal extras before expansion */ +static u_long vstir; /* nonzero to stir non-free vnodes */ static volatile int vsmalltrigger = 8; /* pref to keep if > this many pages */ static int sysctl_update_desiredvnodes(SYSCTL_HANDLER_ARGS) { - int error, old_desiredvnodes; + u_long old_desiredvnodes; + int error; old_desiredvnodes = desiredvnodes; - if ((error = sysctl_handle_int(oidp, arg1, arg2, req)) != 0) + if ((error = sysctl_handle_long(oidp, arg1, arg2, req)) != 0) return (error); if (old_desiredvnodes != desiredvnodes) { wantfreevnodes = desiredvnodes / 4; @@ -336,7 +337,7 @@ sysctl_update_desiredvnodes(SYSCTL_HANDLER_ARGS) SYSCTL_PROC(_kern, KERN_MAXVNODES, maxvnodes, CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, &desiredvnodes, 0, - sysctl_update_desiredvnodes, "I", "Target for maximum number of vnodes"); + sysctl_update_desiredvnodes, "UL", "Target for maximum number of vnodes"); SYSCTL_ULONG(_kern, OID_AUTO, minvnodes, CTLFLAG_RW, &wantfreevnodes, 0, "Old name for vfs.wantfreevnodes (legacy)"); static int vnlru_nowhere; @@ -459,7 +460,7 @@ PCTRIE_DEFINE(BUF, buf, b_lblkno, buf_trie_alloc, buf_ * grows, the ratio of the memory size in KB to vnodes approaches 64:1. */ #ifndef MAXVNODES_MAX -#define MAXVNODES_MAX (512 * 1024 * 1024 / 64) /* 8M */ +#define MAXVNODES_MAX (512UL * 1024 * 1024 / 64) /* 8M */ #endif static MALLOC_DEFINE(M_VNODE_MARKER, "vnodemarker", "vnode marker"); @@ -582,7 +583,7 @@ vntblinit(void *dummy __unused) desiredvnodes = min(physvnodes, virtvnodes); if (desiredvnodes > MAXVNODES_MAX) { if (bootverbose) - printf("Reducing kern.maxvnodes %d -> %d\n", + printf("Reducing kern.maxvnodes %lu -> %lu\n", desiredvnodes, MAXVNODES_MAX); desiredvnodes = MAXVNODES_MAX; } Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Sat Jan 11 22:55:12 2020 (r356641) +++ head/sys/sys/vnode.h Sat Jan 11 22:56:20 2020 (r356642) @@ -434,7 +434,7 @@ extern int vttoif_tab[]; */ extern struct vnode *rootvnode; /* root (i.e. "/") vnode */ extern struct mount *rootdevmp; /* "/dev" mount */ -extern int desiredvnodes; /* number of vnodes desired */ +extern u_long desiredvnodes; /* number of vnodes desired */ extern struct uma_zone *namei_zone; extern struct vattr va_null; /* predefined null vattr structure */ @@ -607,7 +607,7 @@ typedef int (*vn_get_ino_t)(struct mount *, void *, in int bnoreuselist(struct bufv *bufv, struct bufobj *bo, daddr_t startn, daddr_t endn); /* cache_* may belong in namei.h. */ -void cache_changesize(int newhashsize); +void cache_changesize(u_long newhashsize); #define cache_enter(dvp, vp, cnp) \ cache_enter_time(dvp, vp, cnp, NULL, NULL) void cache_enter_time(struct vnode *dvp, struct vnode *vp, @@ -924,7 +924,7 @@ int fifo_printinfo(struct vnode *); /* vfs_hash.c */ typedef int vfs_hash_cmp_t(struct vnode *vp, void *arg); -void vfs_hash_changesize(int newhashsize); +void vfs_hash_changesize(u_long newhashsize); int vfs_hash_get(const struct mount *mp, u_int hash, int flags, struct thread *td, struct vnode **vpp, vfs_hash_cmp_t *fn, void *arg); u_int vfs_hash_index(struct vnode *vp); From owner-svn-src-all@freebsd.org Sat Jan 11 22:58:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9703F1F7955; Sat, 11 Jan 2020 22:58:16 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wFd43VTyz4bWt; Sat, 11 Jan 2020 22:58:16 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7352EA1A3; Sat, 11 Jan 2020 22:58:16 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BMwG6n090265; Sat, 11 Jan 2020 22:58:16 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BMwEM0090257; Sat, 11 Jan 2020 22:58:14 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001112258.00BMwEM0090257@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 11 Jan 2020 22:58:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356643 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs kern sys X-SVN-Commit-Revision: 356643 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 22:58:16 -0000 Author: mjg Date: Sat Jan 11 22:58:14 2020 New Revision: 356643 URL: https://svnweb.freebsd.org/changeset/base/356643 Log: vfs: prealloc vnodes in getnewvnode_reserve Having a reserved vnode count does not guarantee that getnewvnodes wont block later. Said blocking partially defeats the purpose of reserving in the first place. Preallocate instaed. The only consumer was always passing "1" as count and never nesting reservations. Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c head/sys/kern/kern_thread.c head/sys/kern/subr_trap.c head/sys/kern/vfs_subr.c head/sys/sys/proc.h head/sys/sys/vnode.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Sat Jan 11 22:58:14 2020 (r356643) @@ -815,7 +815,7 @@ zfs_make_xattrdir(znode_t *zp, vattr_t *vap, vnode_t * return (SET_ERROR(EDQUOT)); } - getnewvnode_reserve(1); + getnewvnode_reserve(); tx = dmu_tx_create(zfsvfs->z_os); dmu_tx_hold_sa_create(tx, acl_ids.z_aclp->z_acl_bytes + Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Sat Jan 11 22:58:14 2020 (r356643) @@ -1800,7 +1800,7 @@ zfs_create(vnode_t *dvp, char *name, vattr_t *vap, int goto out; } - getnewvnode_reserve(1); + getnewvnode_reserve(); tx = dmu_tx_create(os); @@ -2092,7 +2092,7 @@ zfs_mkdir(vnode_t *dvp, char *dirname, vattr_t *vap, v /* * Add a new entry to the directory. */ - getnewvnode_reserve(1); + getnewvnode_reserve(); tx = dmu_tx_create(zfsvfs->z_os); dmu_tx_hold_zap(tx, dzp->z_id, TRUE, dirname); dmu_tx_hold_zap(tx, DMU_NEW_OBJECT, FALSE, NULL); @@ -4003,7 +4003,7 @@ zfs_symlink(vnode_t *dvp, vnode_t **vpp, char *name, v return (SET_ERROR(EDQUOT)); } - getnewvnode_reserve(1); + getnewvnode_reserve(); tx = dmu_tx_create(zfsvfs->z_os); fuid_dirtied = zfsvfs->z_fuid_dirty; dmu_tx_hold_write(tx, DMU_NEW_OBJECT, 0, MAX(1, len)); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Sat Jan 11 22:58:14 2020 (r356643) @@ -644,8 +644,8 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int b zp = kmem_cache_alloc(znode_cache, KM_SLEEP); - KASSERT(curthread->td_vp_reserv > 0, - ("zfs_znode_alloc: getnewvnode without any vnodes reserved")); + KASSERT(curthread->td_vp_reserved != NULL, + ("zfs_znode_alloc: getnewvnode without preallocated vnode")); error = getnewvnode("zfs", zfsvfs->z_parent->z_vfs, &zfs_vnodeops, &vp); if (error != 0) { kmem_cache_free(znode_cache, zp); @@ -1157,7 +1157,7 @@ zfs_zget(zfsvfs_t *zfsvfs, uint64_t obj_num, znode_t * int err; td = curthread; - getnewvnode_reserve(1); + getnewvnode_reserve(); again: *zpp = NULL; ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num); Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/kern/kern_thread.c Sat Jan 11 22:58:14 2020 (r356643) @@ -82,7 +82,7 @@ _Static_assert(offsetof(struct thread, td_flags) == 0x "struct thread KBI td_flags"); _Static_assert(offsetof(struct thread, td_pflags) == 0x104, "struct thread KBI td_pflags"); -_Static_assert(offsetof(struct thread, td_frame) == 0x478, +_Static_assert(offsetof(struct thread, td_frame) == 0x480, "struct thread KBI td_frame"); _Static_assert(offsetof(struct thread, td_emuldata) == 0x690, "struct thread KBI td_emuldata"); Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/kern/subr_trap.c Sat Jan 11 22:58:14 2020 (r356643) @@ -187,8 +187,8 @@ userret(struct thread *td, struct trapframe *frame) } KASSERT(td->td_pinned == 0 || (td->td_pflags & TDP_CALLCHAIN) != 0, ("userret: Returning with with pinned thread")); - KASSERT(td->td_vp_reserv == 0, - ("userret: Returning while holding vnode reservation")); + KASSERT(td->td_vp_reserved == NULL, + ("userret: Returning with preallocated vnode")); KASSERT((td->td_flags & (TDF_SBDRY | TDF_SEINTR | TDF_SERESTART)) == 0, ("userret: Returning with stop signals deferred")); KASSERT(td->td_su == NULL, Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/kern/vfs_subr.c Sat Jan 11 22:58:14 2020 (r356643) @@ -1527,40 +1527,29 @@ getnewvnode_wait(int suspended) * watermark handling works. */ void -getnewvnode_reserve(u_int count) +getnewvnode_reserve(void) { u_long rnumvnodes, rfreevnodes; struct thread *td; - /* Pre-adjust like the pre-adjust in getnewvnode(), with any count. */ - /* XXX no longer so quick, but this part is not racy. */ + td = curthread; + MPASS(td->td_vp_reserved == NULL); + mtx_lock(&vnode_free_list_mtx); rnumvnodes = atomic_load_long(&numvnodes); rfreevnodes = atomic_load_long(&freevnodes); - if (rnumvnodes + count > desiredvnodes && rfreevnodes > wantfreevnodes) - vnlru_free_locked(ulmin(rnumvnodes + count - desiredvnodes, + if (rnumvnodes + 1 > desiredvnodes && rfreevnodes > wantfreevnodes) + vnlru_free_locked(ulmin(rnumvnodes + 1 - desiredvnodes, rfreevnodes - wantfreevnodes), NULL); - mtx_unlock(&vnode_free_list_mtx); - - td = curthread; - /* First try to be quick and racy. */ - if (atomic_fetchadd_long(&numvnodes, count) + count <= desiredvnodes) { - td->td_vp_reserv += count; - vcheckspace(); /* XXX no longer so quick, but more racy */ - return; - } else - atomic_subtract_long(&numvnodes, count); - - mtx_lock(&vnode_free_list_mtx); - while (count > 0) { - if (getnewvnode_wait(0) == 0) { - count--; - td->td_vp_reserv++; - atomic_add_long(&numvnodes, 1); - } + if (rnumvnodes + 1 > desiredvnodes) { + while (getnewvnode_wait(0) != 0) + continue; } vcheckspace(); + atomic_add_long(&numvnodes, 1); mtx_unlock(&vnode_free_list_mtx); + + td->td_vp_reserved = uma_zalloc(vnode_zone, M_WAITOK); } /* @@ -1577,8 +1566,11 @@ getnewvnode_drop_reserve(void) struct thread *td; td = curthread; - atomic_subtract_long(&numvnodes, td->td_vp_reserv); - td->td_vp_reserv = 0; + if (td->td_vp_reserved != NULL) { + atomic_subtract_long(&numvnodes, 1); + uma_zfree(vnode_zone, td->td_vp_reserved); + td->td_vp_reserved = NULL; + } } /* @@ -1599,11 +1591,11 @@ getnewvnode(const char *tag, struct mount *mp, struct KASSERT(vops->registered, ("%s: not registered vector op %p\n", __func__, vops)); - vp = NULL; td = curthread; - if (td->td_vp_reserv > 0) { - td->td_vp_reserv -= 1; - goto alloc; + if (td->td_vp_reserved != NULL) { + vp = td->td_vp_reserved; + td->td_vp_reserved = NULL; + goto init; } mtx_lock(&vnode_free_list_mtx); if (numvnodes < desiredvnodes) @@ -1639,9 +1631,9 @@ getnewvnode(const char *tag, struct mount *mp, struct vcheckspace(); atomic_add_long(&numvnodes, 1); mtx_unlock(&vnode_free_list_mtx); -alloc: - counter_u64_add(vnodes_created, 1); vp = (struct vnode *) uma_zalloc(vnode_zone, M_WAITOK); +init: + counter_u64_add(vnodes_created, 1); /* * Locks are given the generic name "vnode" when created. * Follow the historic practice of using the filesystem Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/sys/proc.h Sat Jan 11 22:58:14 2020 (r356643) @@ -297,7 +297,7 @@ struct thread { struct osd td_osd; /* (k) Object specific data. */ struct vm_map_entry *td_map_def_user; /* (k) Deferred entries. */ pid_t td_dbg_forked; /* (c) Child pid for debugger. */ - u_int td_vp_reserv; /* (k) Count of reserved vnodes. */ + struct vnode *td_vp_reserved;/* (k) Prealloated vnode. */ u_int td_no_sleeping; /* (k) Sleeping disabled count. */ void *td_su; /* (k) FFS SU private */ sbintime_t td_sleeptimo; /* (t) Sleep timeout. */ Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Sat Jan 11 22:56:20 2020 (r356642) +++ head/sys/sys/vnode.h Sat Jan 11 22:58:14 2020 (r356643) @@ -624,7 +624,7 @@ void freebsd11_cvtnstat(struct stat *sb, struct nstat int freebsd11_cvtstat(struct stat *st, struct freebsd11_stat *ost); int getnewvnode(const char *tag, struct mount *mp, struct vop_vector *vops, struct vnode **vpp); -void getnewvnode_reserve(u_int count); +void getnewvnode_reserve(void); void getnewvnode_drop_reserve(void); int insmntque1(struct vnode *vp, struct mount *mp, void (*dtr)(struct vnode *, void *), void *dtr_arg); From owner-svn-src-all@freebsd.org Sat Jan 11 22:59:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F25741F7A05; Sat, 11 Jan 2020 22:59:44 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wFfm69Dkz4bfW; Sat, 11 Jan 2020 22:59:44 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CEFF2A1A4; Sat, 11 Jan 2020 22:59:44 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BMxivW090370; Sat, 11 Jan 2020 22:59:44 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BMxiZk090369; Sat, 11 Jan 2020 22:59:44 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001112259.00BMxiZk090369@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 11 Jan 2020 22:59:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356644 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356644 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 22:59:45 -0000 Author: mjg Date: Sat Jan 11 22:59:44 2020 New Revision: 356644 URL: https://svnweb.freebsd.org/changeset/base/356644 Log: vfs: deduplicate vnode allocation logic This creates a dedicated routine (vn_alloc) to allocate vnodes. As a side effect code duplicationw with getnewvnode_reserve is eleminated. Add vn_free for symmetry. Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sat Jan 11 22:58:14 2020 (r356643) +++ head/sys/kern/vfs_subr.c Sat Jan 11 22:59:44 2020 (r356644) @@ -1496,7 +1496,7 @@ vcheckspace(void) * Wait if necessary for space for a new vnode. */ static int -getnewvnode_wait(int suspended) +vn_alloc_wait(int suspended) { mtx_assert(&vnode_free_list_mtx, MA_OWNED); @@ -1522,81 +1522,12 @@ getnewvnode_wait(int suspended) return (numvnodes >= desiredvnodes ? ENFILE : 0); } -/* - * This hack is fragile, and probably not needed any more now that the - * watermark handling works. - */ -void -getnewvnode_reserve(void) +static struct vnode * +vn_alloc(struct mount *mp) { - u_long rnumvnodes, rfreevnodes; - struct thread *td; - - td = curthread; - MPASS(td->td_vp_reserved == NULL); - - mtx_lock(&vnode_free_list_mtx); - rnumvnodes = atomic_load_long(&numvnodes); - rfreevnodes = atomic_load_long(&freevnodes); - if (rnumvnodes + 1 > desiredvnodes && rfreevnodes > wantfreevnodes) - vnlru_free_locked(ulmin(rnumvnodes + 1 - desiredvnodes, - rfreevnodes - wantfreevnodes), NULL); - if (rnumvnodes + 1 > desiredvnodes) { - while (getnewvnode_wait(0) != 0) - continue; - } - vcheckspace(); - atomic_add_long(&numvnodes, 1); - mtx_unlock(&vnode_free_list_mtx); - - td->td_vp_reserved = uma_zalloc(vnode_zone, M_WAITOK); -} - -/* - * This hack is fragile, especially if desiredvnodes or wantvnodes are - * misconfgured or changed significantly. Reducing desiredvnodes below - * the reserved amount should cause bizarre behaviour like reducing it - * below the number of active vnodes -- the system will try to reduce - * numvnodes to match, but should fail, so the subtraction below should - * not overflow. - */ -void -getnewvnode_drop_reserve(void) -{ - struct thread *td; - - td = curthread; - if (td->td_vp_reserved != NULL) { - atomic_subtract_long(&numvnodes, 1); - uma_zfree(vnode_zone, td->td_vp_reserved); - td->td_vp_reserved = NULL; - } -} - -/* - * Return the next vnode from the free list. - */ -int -getnewvnode(const char *tag, struct mount *mp, struct vop_vector *vops, - struct vnode **vpp) -{ - struct vnode *vp; - struct thread *td; - struct lock_object *lo; static int cyclecount; int error __unused; - CTR3(KTR_VFS, "%s: mp %p with tag %s", __func__, mp, tag); - - KASSERT(vops->registered, - ("%s: not registered vector op %p\n", __func__, vops)); - - td = curthread; - if (td->td_vp_reserved != NULL) { - vp = td->td_vp_reserved; - td->td_vp_reserved = NULL; - goto init; - } mtx_lock(&vnode_free_list_mtx); if (numvnodes < desiredvnodes) cyclecount = 0; @@ -1619,7 +1550,7 @@ getnewvnode(const char *tag, struct mount *mp, struct else if (freevnodes > 0) vnlru_free_locked(1, NULL); else { - error = getnewvnode_wait(mp != NULL && (mp->mnt_kern_flag & + error = vn_alloc_wait(mp != NULL && (mp->mnt_kern_flag & MNTK_SUSPEND)); #if 0 /* XXX Not all VFS_VGET/ffs_vget callers check returns. */ if (error != 0) { @@ -1631,8 +1562,40 @@ getnewvnode(const char *tag, struct mount *mp, struct vcheckspace(); atomic_add_long(&numvnodes, 1); mtx_unlock(&vnode_free_list_mtx); - vp = (struct vnode *) uma_zalloc(vnode_zone, M_WAITOK); -init: + return (uma_zalloc(vnode_zone, M_WAITOK)); +} + +static void +vn_free(struct vnode *vp) +{ + + atomic_subtract_long(&numvnodes, 1); + uma_zfree(vnode_zone, vp); +} + +/* + * Return the next vnode from the free list. + */ +int +getnewvnode(const char *tag, struct mount *mp, struct vop_vector *vops, + struct vnode **vpp) +{ + struct vnode *vp; + struct thread *td; + struct lock_object *lo; + + CTR3(KTR_VFS, "%s: mp %p with tag %s", __func__, mp, tag); + + KASSERT(vops->registered, + ("%s: not registered vector op %p\n", __func__, vops)); + + td = curthread; + if (td->td_vp_reserved != NULL) { + vp = td->td_vp_reserved; + td->td_vp_reserved = NULL; + } else { + vp = vn_alloc(mp); + } counter_u64_add(vnodes_created, 1); /* * Locks are given the generic name "vnode" when created. @@ -1695,6 +1658,28 @@ init: return (0); } +void +getnewvnode_reserve(void) +{ + struct thread *td; + + td = curthread; + MPASS(td->td_vp_reserved == NULL); + td->td_vp_reserved = vn_alloc(NULL); +} + +void +getnewvnode_drop_reserve(void) +{ + struct thread *td; + + td = curthread; + if (td->td_vp_reserved != NULL) { + vn_free(td->td_vp_reserved); + td->td_vp_reserved = NULL; + } +} + static void freevnode(struct vnode *vp) { @@ -1710,7 +1695,6 @@ freevnode(struct vnode *vp) * so as not to contaminate the freshly allocated vnode. */ CTR2(KTR_VFS, "%s: destroying the vnode %p", __func__, vp); - atomic_subtract_long(&numvnodes, 1); bo = &vp->v_bufobj; VNASSERT((vp->v_iflag & VI_FREE) == 0, vp, ("cleaned vnode still on the free list.")); @@ -1751,7 +1735,7 @@ freevnode(struct vnode *vp) vp->v_iflag = 0; vp->v_vflag = 0; bo->bo_flag = 0; - uma_zfree(vnode_zone, vp); + vn_free(vp); } /* From owner-svn-src-all@freebsd.org Sat Jan 11 23:00:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 447961F7ADC; Sat, 11 Jan 2020 23:00:58 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wFhB16pYz4bpx; Sat, 11 Jan 2020 23:00:58 +0000 (UTC) (envelope-from mjg@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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 21BF5A1D8; Sat, 11 Jan 2020 23:00:58 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BN0wYC090551; Sat, 11 Jan 2020 23:00:58 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BN0wQs090550; Sat, 11 Jan 2020 23:00:58 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001112300.00BN0wQs090550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 11 Jan 2020 23:00:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356645 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356645 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 23:00:58 -0000 Author: mjg Date: Sat Jan 11 23:00:57 2020 New Revision: 356645 URL: https://svnweb.freebsd.org/changeset/base/356645 Log: vfs: only recalculate watermarks when limits are changing Previously they would get recalculated all the time, in particular in: getnewvnode -> vcheckspace -> vspace Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sat Jan 11 22:59:44 2020 (r356644) +++ head/sys/kern/vfs_subr.c Sat Jan 11 23:00:57 2020 (r356645) @@ -118,6 +118,7 @@ static void vnlru_return_batches(struct vfsops *mnt_op static void destroy_vpollinfo(struct vpollinfo *vi); static int v_inval_buf_range_locked(struct vnode *vp, struct bufobj *bo, daddr_t startlbn, daddr_t endlbn); +static void vnlru_recalc(void); /* * These fences are intended for cases where some synchronization is @@ -194,8 +195,6 @@ static TAILQ_HEAD(freelst, vnode) vnode_free_list; * whenever vnlru_proc() becomes active. */ static u_long wantfreevnodes; -SYSCTL_ULONG(_vfs, OID_AUTO, wantfreevnodes, CTLFLAG_RW, - &wantfreevnodes, 0, "Target for minimum number of \"free\" vnodes"); static u_long freevnodes; SYSCTL_ULONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD, &freevnodes, 0, "Number of \"free\" vnodes"); @@ -317,27 +316,65 @@ static u_long vlowat; /* minimal extras before expans static u_long vstir; /* nonzero to stir non-free vnodes */ static volatile int vsmalltrigger = 8; /* pref to keep if > this many pages */ +/* + * Note that no attempt is made to sanitize these parameters. + */ static int -sysctl_update_desiredvnodes(SYSCTL_HANDLER_ARGS) +sysctl_maxvnodes(SYSCTL_HANDLER_ARGS) { - u_long old_desiredvnodes; + u_long val; int error; - old_desiredvnodes = desiredvnodes; - if ((error = sysctl_handle_long(oidp, arg1, arg2, req)) != 0) + val = desiredvnodes; + error = sysctl_handle_long(oidp, &val, 0, req); + if (error != 0 || req->newptr == NULL) return (error); - if (old_desiredvnodes != desiredvnodes) { - wantfreevnodes = desiredvnodes / 4; - /* XXX locking seems to be incomplete. */ - vfs_hash_changesize(desiredvnodes); - cache_changesize(desiredvnodes); - } + + if (val == desiredvnodes) + return (0); + mtx_lock(&vnode_free_list_mtx); + desiredvnodes = val; + wantfreevnodes = desiredvnodes / 4; + vnlru_recalc(); + mtx_unlock(&vnode_free_list_mtx); + /* + * XXX There is no protection against multiple threads changing + * desiredvnodes at the same time. Locking above only helps vnlru and + * getnewvnode. + */ + vfs_hash_changesize(desiredvnodes); + cache_changesize(desiredvnodes); return (0); } SYSCTL_PROC(_kern, KERN_MAXVNODES, maxvnodes, - CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, &desiredvnodes, 0, - sysctl_update_desiredvnodes, "UL", "Target for maximum number of vnodes"); + CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_maxvnodes, + "UL", "Target for maximum number of vnodes"); + +static int +sysctl_wantfreevnodes(SYSCTL_HANDLER_ARGS) +{ + u_long val; + int error; + + val = wantfreevnodes; + error = sysctl_handle_long(oidp, &val, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + + if (val == wantfreevnodes) + return (0); + mtx_lock(&vnode_free_list_mtx); + wantfreevnodes = val; + vnlru_recalc(); + mtx_unlock(&vnode_free_list_mtx); + return (0); +} + +SYSCTL_PROC(_vfs, OID_AUTO, wantfreevnodes, + CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_wantfreevnodes, + "UL", "Target for minimum number of \"free\" vnodes"); + SYSCTL_ULONG(_kern, OID_AUTO, minvnodes, CTLFLAG_RW, &wantfreevnodes, 0, "Old name for vfs.wantfreevnodes (legacy)"); static int vnlru_nowhere; @@ -591,6 +628,12 @@ vntblinit(void *dummy __unused) mtx_init(&mntid_mtx, "mntid", NULL, MTX_DEF); TAILQ_INIT(&vnode_free_list); mtx_init(&vnode_free_list_mtx, "vnode_free_list", NULL, MTX_DEF); + /* + * The lock is taken to appease WITNESS. + */ + mtx_lock(&vnode_free_list_mtx); + vnlru_recalc(); + mtx_unlock(&vnode_free_list_mtx); vnode_zone = uma_zcreate("VNODE", sizeof (struct vnode), NULL, NULL, vnode_init, vnode_fini, UMA_ALIGN_PTR, 0); vnodepoll_zone = uma_zcreate("VNODEPOLL", sizeof (struct vpollinfo), @@ -1211,7 +1254,16 @@ vnlru_free(int count, struct vfsops *mnt_op) mtx_unlock(&vnode_free_list_mtx); } +static void +vnlru_recalc(void) +{ + mtx_assert(&vnode_free_list_mtx, MA_OWNED); + gapvnodes = imax(desiredvnodes - wantfreevnodes, 100); + vhiwat = gapvnodes / 11; /* 9% -- just under the 10% in vlrureclaim() */ + vlowat = vhiwat / 2; +} + /* XXX some names and initialization are bad for limits and watermarks. */ static int vspace(void) @@ -1219,9 +1271,6 @@ vspace(void) u_long rnumvnodes, rfreevnodes; int space; - gapvnodes = imax(desiredvnodes - wantfreevnodes, 100); - vhiwat = gapvnodes / 11; /* 9% -- just under the 10% in vlrureclaim() */ - vlowat = vhiwat / 2; rnumvnodes = atomic_load_long(&numvnodes); rfreevnodes = atomic_load_long(&freevnodes); if (rnumvnodes > desiredvnodes)