From owner-svn-src-head@freebsd.org Sun May 6 00:03:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB133FBFE5A; Sun, 6 May 2018 00:03:24 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A1FC69667; Sun, 6 May 2018 00:03:24 +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 64D2724AF9; Sun, 6 May 2018 00:03:24 +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 w4603OjG064083; Sun, 6 May 2018 00:03:24 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4603Ok0064082; Sun, 6 May 2018 00:03:24 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060003.w4603Ok0064082@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:03:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333278 - head/sys/geom/mirror X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/geom/mirror X-SVN-Commit-Revision: 333278 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:03:25 -0000 Author: markj Date: Sun May 6 00:03:24 2018 New Revision: 333278 URL: https://svnweb.freebsd.org/changeset/base/333278 Log: Avoid dropping the topology lock in gmirror's dumpconf implementation. Doing so introduces races which can lead to a use-after-free when grabbing a snapshot of the GEOM mesh. To ensure that a mirror's disk list remains stable, change its locking protocol: both the softc lock and the topology lock are now required to modify the list, so either lock is sufficient for traversal. Tested by: pho MFC after: 2 weeks Sponsored by: Dell EMC Isilon Modified: head/sys/geom/mirror/g_mirror.c Modified: head/sys/geom/mirror/g_mirror.c ============================================================================== --- head/sys/geom/mirror/g_mirror.c Sat May 5 22:40:40 2018 (r333277) +++ head/sys/geom/mirror/g_mirror.c Sun May 6 00:03:24 2018 (r333278) @@ -277,8 +277,6 @@ g_mirror_ndisks(struct g_mirror_softc *sc, int state) struct g_mirror_disk *disk; u_int n = 0; - sx_assert(&sc->sc_lock, SX_LOCKED); - LIST_FOREACH(disk, &sc->sc_disks, d_next) { if (state == -1 || disk->d_state == state) n++; @@ -495,7 +493,9 @@ g_mirror_destroy_disk(struct g_mirror_disk *disk) sc = disk->d_softc; sx_assert(&sc->sc_lock, SX_XLOCKED); + g_topology_lock(); LIST_REMOVE(disk, d_next); + g_topology_unlock(); g_mirror_event_cancel(disk); if (sc->sc_hint == disk) sc->sc_hint = NULL; @@ -522,6 +522,8 @@ static void g_mirror_free_device(struct g_mirror_softc *sc) { + g_topology_assert(); + mtx_destroy(&sc->sc_queue_mtx); mtx_destroy(&sc->sc_events_mtx); mtx_destroy(&sc->sc_done_mtx); @@ -2626,6 +2628,7 @@ again: DISK_STATE_CHANGED(); disk->d_state = state; + g_topology_lock(); if (LIST_EMPTY(&sc->sc_disks)) LIST_INSERT_HEAD(&sc->sc_disks, disk, d_next); else { @@ -2643,6 +2646,7 @@ again: if (dp != NULL) LIST_INSERT_AFTER(dp, disk, d_next); } + g_topology_unlock(); G_MIRROR_DEBUG(1, "Device %s: provider %s detected.", sc->sc_name, g_mirror_get_diskname(disk)); if (sc->sc_state == G_MIRROR_DEVICE_STATE_STARTING) @@ -3328,24 +3332,20 @@ g_mirror_dumpconf(struct sbuf *sb, const char *indent, disk = cp->private; if (disk == NULL) return; - g_topology_unlock(); - sx_xlock(&sc->sc_lock); sbuf_printf(sb, "%s%u\n", indent, (u_int)disk->d_id); if (disk->d_state == G_MIRROR_DISK_STATE_SYNCHRONIZING) { sbuf_printf(sb, "%s", indent); if (disk->d_sync.ds_offset == 0) sbuf_printf(sb, "0%%"); - else { + else sbuf_printf(sb, "%u%%", (u_int)((disk->d_sync.ds_offset * 100) / - sc->sc_provider->mediasize)); - } + sc->sc_mediasize)); sbuf_printf(sb, "\n"); - if (disk->d_sync.ds_offset > 0) { + if (disk->d_sync.ds_offset > 0) sbuf_printf(sb, "%s%jd" "\n", indent, (intmax_t)disk->d_sync.ds_offset); - } } sbuf_printf(sb, "%s%u\n", indent, disk->d_sync.ds_syncid); @@ -3380,11 +3380,7 @@ g_mirror_dumpconf(struct sbuf *sb, const char *indent, disk->d_priority); sbuf_printf(sb, "%s%s\n", indent, g_mirror_disk_state2str(disk->d_state)); - sx_xunlock(&sc->sc_lock); - g_topology_lock(); } else { - g_topology_unlock(); - sx_xlock(&sc->sc_lock); sbuf_printf(sb, "%s", indent); switch (sc->sc_type) { case G_MIRROR_TYPE_AUTOMATIC: @@ -3436,8 +3432,6 @@ g_mirror_dumpconf(struct sbuf *sb, const char *indent, else sbuf_printf(sb, "%s", "DEGRADED"); sbuf_printf(sb, "\n"); - sx_xunlock(&sc->sc_lock); - g_topology_lock(); } } From owner-svn-src-head@freebsd.org Sun May 6 00:05:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16486FBFF5D; Sun, 6 May 2018 00:05:04 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B9832697FD; Sun, 6 May 2018 00:05:03 +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 B467724AFE; Sun, 6 May 2018 00:05:03 +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 w460534h064195; Sun, 6 May 2018 00:05:03 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46053Eg064194; Sun, 6 May 2018 00:05:03 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060005.w46053Eg064194@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:05:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333279 - head/sys/geom/mirror X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/geom/mirror X-SVN-Commit-Revision: 333279 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:05:04 -0000 Author: markj Date: Sun May 6 00:05:03 2018 New Revision: 333279 URL: https://svnweb.freebsd.org/changeset/base/333279 Log: Remove a redundant assertion. MFC after: 1 week Sponsored by: Dell EMC Isilon Modified: head/sys/geom/mirror/g_mirror.c Modified: head/sys/geom/mirror/g_mirror.c ============================================================================== --- head/sys/geom/mirror/g_mirror.c Sun May 6 00:03:24 2018 (r333278) +++ head/sys/geom/mirror/g_mirror.c Sun May 6 00:05:03 2018 (r333279) @@ -207,7 +207,6 @@ g_mirror_event_send(void *arg, int state, int flags) mtx_unlock(&sc->sc_queue_mtx); if ((flags & G_MIRROR_EVENT_DONTWAIT) != 0) return (0); - sx_assert(&sc->sc_lock, SX_XLOCKED); G_MIRROR_DEBUG(4, "%s: Sleeping %p.", __func__, ep); sx_xunlock(&sc->sc_lock); while ((ep->e_flags & G_MIRROR_EVENT_DONE) == 0) { From owner-svn-src-head@freebsd.org Sun May 6 00:11:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39E69FC0419; Sun, 6 May 2018 00:11: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DD0A66B835; Sun, 6 May 2018 00:11:30 +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 D6C4B24C49; Sun, 6 May 2018 00:11:30 +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 w460BUog068847; Sun, 6 May 2018 00:11:30 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460BUOF068846; Sun, 6 May 2018 00:11:30 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060011.w460BUOF068846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:11:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333280 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333280 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:11:31 -0000 Author: markj Date: Sun May 6 00:11:30 2018 New Revision: 333280 URL: https://svnweb.freebsd.org/changeset/base/333280 Log: Style. MFC after: 3 days Modified: head/sys/kern/kern_mbuf.c Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Sun May 6 00:05:03 2018 (r333279) +++ head/sys/kern/kern_mbuf.c Sun May 6 00:11:30 2018 (r333280) @@ -682,18 +682,18 @@ mb_free_ext(struct mbuf *m) case EXT_MOD_TYPE: case EXT_DISPOSABLE: KASSERT(mref->m_ext.ext_free != NULL, - ("%s: ext_free not set", __func__)); + ("%s: ext_free not set", __func__)); mref->m_ext.ext_free(mref); uma_zfree(zone_mbuf, mref); break; case EXT_EXTREF: KASSERT(m->m_ext.ext_free != NULL, - ("%s: ext_free not set", __func__)); + ("%s: ext_free not set", __func__)); m->m_ext.ext_free(m); break; default: KASSERT(m->m_ext.ext_type == 0, - ("%s: unknown ext_type", __func__)); + ("%s: unknown ext_type", __func__)); } } From owner-svn-src-head@freebsd.org Sun May 6 00:19:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 890A7FC0664; Sun, 6 May 2018 00:19: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 29A856DC83; Sun, 6 May 2018 00:19: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 1EFC624CA0; Sun, 6 May 2018 00:19: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 w460JmQ4069231; Sun, 6 May 2018 00:19:48 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460Jm1g069229; Sun, 6 May 2018 00:19:48 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060019.w460Jm1g069229@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:19:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333281 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 333281 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:19:49 -0000 Author: markj Date: Sun May 6 00:19:48 2018 New Revision: 333281 URL: https://svnweb.freebsd.org/changeset/base/333281 Log: Add an mbuf allocator for netdump. The aim is to permit mbuf allocations after a panic without calling into the page allocator, without imposing any runtime overhead during regular operation of the system, and without modifying driver code. The approach taken is to preallocate a number of mbufs and clusters, storing them in linked lists, and using the lists to back some UMA cache zones. At panic time, the mbuf and cluster zone pointers are overwritten with those of the cache zones so that the mbuf allocator returns preallocated items. Using this scheme, drivers which cache mbuf zone pointers from m_getzone() require special handling when implementing netdump support. Reviewed by: cem (earlier version), julian, sbruno MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15251 Modified: head/sys/kern/kern_mbuf.c head/sys/sys/mbuf.h Modified: head/sys/kern/kern_mbuf.c ============================================================================== --- head/sys/kern/kern_mbuf.c Sun May 6 00:11:30 2018 (r333280) +++ head/sys/kern/kern_mbuf.c Sun May 6 00:19:48 2018 (r333281) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -378,6 +379,199 @@ mbuf_init(void *dummy) EVENTHANDLER_PRI_FIRST); } SYSINIT(mbuf, SI_SUB_MBUF, SI_ORDER_FIRST, mbuf_init, NULL); + +#ifdef NETDUMP +/* + * netdump makes use of a pre-allocated pool of mbufs and clusters. When + * netdump is configured, we initialize a set of UMA cache zones which return + * items from this pool. At panic-time, the regular UMA zone pointers are + * overwritten with those of the cache zones so that drivers may allocate and + * free mbufs and clusters without attempting to allocate physical memory. + * + * We keep mbufs and clusters in a pair of mbuf queues. In particular, for + * the purpose of caching clusters, we treat them as mbufs. + */ +static struct mbufq nd_mbufq = + { STAILQ_HEAD_INITIALIZER(nd_mbufq.mq_head), 0, INT_MAX }; +static struct mbufq nd_clustq = + { STAILQ_HEAD_INITIALIZER(nd_clustq.mq_head), 0, INT_MAX }; + +static int nd_clsize; +static uma_zone_t nd_zone_mbuf; +static uma_zone_t nd_zone_clust; +static uma_zone_t nd_zone_pack; + +static int +nd_buf_import(void *arg, void **store, int count, int domain __unused, + int flags) +{ + struct mbufq *q; + struct mbuf *m; + int i; + + q = arg; + + for (i = 0; i < count; i++) { + m = mbufq_dequeue(q); + if (m == NULL) + break; + trash_init(m, q == &nd_mbufq ? MSIZE : nd_clsize, flags); + store[i] = m; + } + return (i); +} + +static void +nd_buf_release(void *arg, void **store, int count) +{ + struct mbufq *q; + struct mbuf *m; + int i; + + q = arg; + + for (i = 0; i < count; i++) { + m = store[i]; + (void)mbufq_enqueue(q, m); + } +} + +static int +nd_pack_import(void *arg __unused, void **store, int count, int domain __unused, + int flags __unused) +{ + struct mbuf *m; + void *clust; + int i; + + for (i = 0; i < count; i++) { + m = m_get(MT_DATA, M_NOWAIT); + if (m == NULL) + break; + clust = uma_zalloc(nd_zone_clust, M_NOWAIT); + if (clust == NULL) { + m_free(m); + break; + } + mb_ctor_clust(clust, nd_clsize, m, 0); + store[i] = m; + } + return (i); +} + +static void +nd_pack_release(void *arg __unused, void **store, int count) +{ + struct mbuf *m; + void *clust; + int i; + + for (i = 0; i < count; i++) { + m = store[i]; + clust = m->m_ext.ext_buf; + uma_zfree(nd_zone_clust, clust); + uma_zfree(nd_zone_mbuf, m); + } +} + +/* + * Free the pre-allocated mbufs and clusters reserved for netdump, and destroy + * the corresponding UMA cache zones. + */ +void +netdump_mbuf_drain(void) +{ + struct mbuf *m; + void *item; + + if (nd_zone_mbuf != NULL) { + uma_zdestroy(nd_zone_mbuf); + nd_zone_mbuf = NULL; + } + if (nd_zone_clust != NULL) { + uma_zdestroy(nd_zone_clust); + nd_zone_clust = NULL; + } + if (nd_zone_pack != NULL) { + uma_zdestroy(nd_zone_pack); + nd_zone_pack = NULL; + } + + while ((m = mbufq_dequeue(&nd_mbufq)) != NULL) + m_free(m); + while ((item = mbufq_dequeue(&nd_clustq)) != NULL) + uma_zfree(m_getzone(nd_clsize), item); +} + +/* + * Callback invoked immediately prior to starting a netdump. + */ +void +netdump_mbuf_dump(void) +{ + + /* + * All cluster zones return buffers of the size requested by the + * drivers. It's up to the driver to reinitialize the zones if the + * MTU of a netdump-enabled interface changes. + */ + printf("netdump: overwriting mbuf zone pointers\n"); + zone_mbuf = nd_zone_mbuf; + zone_clust = nd_zone_clust; + zone_pack = nd_zone_pack; + zone_jumbop = nd_zone_clust; + zone_jumbo9 = nd_zone_clust; + zone_jumbo16 = nd_zone_clust; +} + +/* + * Reinitialize the netdump mbuf+cluster pool and cache zones. + */ +void +netdump_mbuf_reinit(int nmbuf, int nclust, int clsize) +{ + struct mbuf *m; + void *item; + + netdump_mbuf_drain(); + + nd_clsize = clsize; + + nd_zone_mbuf = uma_zcache_create("netdump_" MBUF_MEM_NAME, + MSIZE, mb_ctor_mbuf, mb_dtor_mbuf, +#ifdef INVARIANTS + trash_init, trash_fini, +#else + NULL, NULL, +#endif + nd_buf_import, nd_buf_release, + &nd_mbufq, UMA_ZONE_NOBUCKET); + + nd_zone_clust = uma_zcache_create("netdump_" MBUF_CLUSTER_MEM_NAME, + clsize, mb_ctor_clust, +#ifdef INVARIANTS + trash_dtor, trash_init, trash_fini, +#else + NULL, NULL, NULL, +#endif + nd_buf_import, nd_buf_release, + &nd_clustq, UMA_ZONE_NOBUCKET); + + nd_zone_pack = uma_zcache_create("netdump_" MBUF_PACKET_MEM_NAME, + MCLBYTES, mb_ctor_pack, mb_dtor_pack, NULL, NULL, + nd_pack_import, nd_pack_release, + NULL, UMA_ZONE_NOBUCKET); + + while (nmbuf-- > 0) { + m = m_get(MT_DATA, M_WAITOK); + uma_zfree(nd_zone_mbuf, m); + } + while (nclust-- > 0) { + item = uma_zalloc(m_getzone(nd_clsize), M_WAITOK); + uma_zfree(nd_zone_clust, item); + } +} +#endif /* NETDUMP */ /* * UMA backend page allocator for the jumbo frame zones. Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Sun May 6 00:11:30 2018 (r333280) +++ head/sys/sys/mbuf.h Sun May 6 00:19:48 2018 (r333281) @@ -1377,5 +1377,12 @@ mbuf_tstmp2timespec(struct mbuf *m, struct timespec *t } #endif +#ifdef NETDUMP +/* Invoked from the netdump client code. */ +void netdump_mbuf_drain(void); +void netdump_mbuf_dump(void); +void netdump_mbuf_reinit(int nmbuf, int nclust, int clsize); +#endif + #endif /* _KERNEL */ #endif /* !_SYS_MBUF_H_ */ From owner-svn-src-head@freebsd.org Sun May 6 00:22:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A11B5FC088B; Sun, 6 May 2018 00:22:39 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4A3DC6E04A; Sun, 6 May 2018 00:22:39 +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 43AC424E32; Sun, 6 May 2018 00:22:39 +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 w460MdAd074181; Sun, 6 May 2018 00:22:39 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460McX7074176; Sun, 6 May 2018 00:22:38 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060022.w460McX7074176@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:22:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333282 - in head/sys: dev/null geom kern sys X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys: dev/null geom kern sys X-SVN-Commit-Revision: 333282 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:22:39 -0000 Author: markj Date: Sun May 6 00:22:38 2018 New Revision: 333282 URL: https://svnweb.freebsd.org/changeset/base/333282 Log: Refactor some of the MI kernel dump code in preparation for netdump. - Add clear_dumper() to complement set_dumper(). - Drain netdump's preallocated mbuf pool when clearing the dumper. - Don't do bounds checking for dumpers with mediasize 0. - Add dumper callbacks for initialization for writing out headers. Reviewed by: sbruno MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15252 Modified: head/sys/dev/null/null.c head/sys/geom/geom_dev.c head/sys/kern/kern_shutdown.c head/sys/sys/conf.h Modified: head/sys/dev/null/null.c ============================================================================== --- head/sys/dev/null/null.c Sun May 6 00:19:48 2018 (r333281) +++ head/sys/dev/null/null.c Sun May 6 00:22:38 2018 (r333282) @@ -107,14 +107,14 @@ null_ioctl(struct cdev *dev __unused, u_long cmd, cadd int flags __unused, struct thread *td) { int error; - error = 0; + error = 0; switch (cmd) { #ifdef COMPAT_FREEBSD11 case DIOCSKERNELDUMP_FREEBSD11: #endif case DIOCSKERNELDUMP: - error = set_dumper(NULL, NULL, td, 0, 0, NULL, 0, NULL); + error = clear_dumper(td); break; case FIONBIO: break; Modified: head/sys/geom/geom_dev.c ============================================================================== --- head/sys/geom/geom_dev.c Sun May 6 00:19:48 2018 (r333281) +++ head/sys/geom/geom_dev.c Sun May 6 00:22:38 2018 (r333282) @@ -138,10 +138,11 @@ g_dev_setdumpdev(struct cdev *dev, struct diocskerneld int error, len; if (dev == NULL || kda == NULL) - return (set_dumper(NULL, NULL, td, 0, 0, NULL, 0, NULL)); + return (clear_dumper(td)); cp = dev->si_drv2; len = sizeof(kd); + memset(&kd, 0, len); kd.offset = 0; kd.length = OFF_MAX; error = g_io_getattr("GEOM::kerneldump", cp, &len, &kd); @@ -833,7 +834,7 @@ g_dev_orphan(struct g_consumer *cp) /* Reset any dump-area set on this device */ if (dev->si_flags & SI_DUMPDEV) - (void)set_dumper(NULL, NULL, curthread, 0, 0, NULL, 0, NULL); + (void)clear_dumper(curthread); /* Destroy the struct cdev *so we get no more requests */ destroy_dev_sched_cb(dev, g_dev_callback, cp); Modified: head/sys/kern/kern_shutdown.c ============================================================================== --- head/sys/kern/kern_shutdown.c Sun May 6 00:19:48 2018 (r333281) +++ head/sys/kern/kern_shutdown.c Sun May 6 00:22:38 2018 (r333282) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1090,10 +1091,6 @@ set_dumper(struct dumperinfo *di, const char *devname, if (error != 0) return (error); - if (di == NULL) { - error = 0; - goto cleanup; - } if (dumper.dumper != NULL) return (EBUSY); dumper = *di; @@ -1139,7 +1136,25 @@ set_dumper(struct dumperinfo *di, const char *devname, dumper.blockbuf = malloc(di->blocksize, M_DUMPER, M_WAITOK | M_ZERO); return (0); + cleanup: + (void)clear_dumper(td); + return (error); +} + +int +clear_dumper(struct thread *td) +{ + int error; + + error = priv_check(td, PRIV_SETDUMPER); + if (error != 0) + return (error); + +#ifdef NETDUMP + netdump_mbuf_drain(); +#endif + #ifdef EKCD if (dumper.kdcrypto != NULL) { explicit_bzero(dumper.kdcrypto, sizeof(*dumper.kdcrypto) + @@ -1156,14 +1171,14 @@ cleanup: } explicit_bzero(&dumper, sizeof(dumper)); dumpdevname[0] = '\0'; - return (error); + return (0); } static int dump_check_bounds(struct dumperinfo *di, off_t offset, size_t length) { - if (length != 0 && (offset < di->mediaoffset || + if (di->mediasize > 0 && length != 0 && (offset < di->mediaoffset || offset - di->mediaoffset + length > di->mediasize)) { if (di->kdcomp != NULL && offset >= di->mediaoffset) { printf( @@ -1244,18 +1259,6 @@ dump_encrypted_write(struct dumperinfo *di, void *virt return (0); } - -static int -dump_write_key(struct dumperinfo *di, off_t offset) -{ - struct kerneldumpcrypto *kdc; - - kdc = di->kdcrypto; - if (kdc == NULL) - return (0); - return (dump_write(di, kdc->kdc_dumpkey, 0, offset, - kdc->kdc_dumpkeysize)); -} #endif /* EKCD */ static int @@ -1289,20 +1292,42 @@ kerneldumpcomp_write_cb(void *base, size_t length, off } /* - * Write a kerneldumpheader at the specified offset. The header structure is 512 - * bytes in size, but we must pad to the device sector size. + * Write kernel dump headers at the beginning and end of the dump extent. + * Write the kernel dump encryption key after the leading header if we were + * configured to do so. */ static int -dump_write_header(struct dumperinfo *di, struct kerneldumpheader *kdh, - off_t offset) +dump_write_headers(struct dumperinfo *di, struct kerneldumpheader *kdh) { - void *buf; +#ifdef EKCD + struct kerneldumpcrypto *kdc; +#endif + void *buf, *key; size_t hdrsz; + uint64_t extent; + uint32_t keysize; + int error; hdrsz = sizeof(*kdh); if (hdrsz > di->blocksize) return (ENOMEM); +#ifdef EKCD + kdc = di->kdcrypto; + key = kdc->kdc_dumpkey; + keysize = kerneldumpcrypto_dumpkeysize(kdc); +#else + key = NULL; + keysize = 0; +#endif + + /* + * If the dump device has special handling for headers, let it take care + * of writing them out. + */ + if (di->dumper_hdr != NULL) + return (di->dumper_hdr(di, kdh, key, keysize)); + if (hdrsz == di->blocksize) buf = kdh; else { @@ -1311,7 +1336,24 @@ dump_write_header(struct dumperinfo *di, struct kernel memcpy(buf, kdh, hdrsz); } - return (dump_write(di, buf, 0, offset, di->blocksize)); + extent = dtoh64(kdh->dumpextent); +#ifdef EKCD + if (kdc != NULL) { + error = dump_write(di, kdc->kdc_dumpkey, 0, + di->mediaoffset + di->mediasize - di->blocksize - extent - + keysize, keysize); + if (error != 0) + return (error); + } +#endif + + error = dump_write(di, buf, 0, + di->mediaoffset + di->mediasize - 2 * di->blocksize - extent - + keysize, di->blocksize); + if (error == 0) + error = dump_write(di, buf, 0, di->mediaoffset + di->mediasize - + di->blocksize, di->blocksize); + return (error); } /* @@ -1336,26 +1378,37 @@ dump_write_header(struct dumperinfo *di, struct kernel * Uncompressed dumps will use the entire extent, but compressed dumps typically * will not. The true length of the dump is recorded in the leading and trailing * headers once the dump has been completed. + * + * The dump device may provide a callback, in which case it will initialize + * dumpoff and take care of laying out the headers. */ int dump_start(struct dumperinfo *di, struct kerneldumpheader *kdh) { - uint64_t dumpextent; + uint64_t dumpextent, span; uint32_t keysize; + int error; #ifdef EKCD - int error = kerneldumpcrypto_init(di->kdcrypto); + error = kerneldumpcrypto_init(di->kdcrypto); if (error != 0) return (error); keysize = kerneldumpcrypto_dumpkeysize(di->kdcrypto); #else + error = 0; keysize = 0; #endif - dumpextent = dtoh64(kdh->dumpextent); - if (di->mediasize < SIZEOF_METADATA + dumpextent + 2 * di->blocksize + - keysize) { - if (di->kdcomp != NULL) { + if (di->dumper_start != NULL) { + error = di->dumper_start(di); + } else { + dumpextent = dtoh64(kdh->dumpextent); + span = SIZEOF_METADATA + dumpextent + 2 * di->blocksize + + keysize; + if (di->mediasize < span) { + if (di->kdcomp == NULL) + return (E2BIG); + /* * We don't yet know how much space the compressed dump * will occupy, so try to use the whole swap partition @@ -1364,18 +1417,18 @@ dump_start(struct dumperinfo *di, struct kerneldumphea * be enough, the bounds checking in dump_write() * will catch us and cause the dump to fail. */ - dumpextent = di->mediasize - SIZEOF_METADATA - - 2 * di->blocksize - keysize; + dumpextent = di->mediasize - span + dumpextent; kdh->dumpextent = htod64(dumpextent); - } else - return (E2BIG); - } + } - /* The offset at which to begin writing the dump. */ - di->dumpoff = di->mediaoffset + di->mediasize - di->blocksize - - dumpextent; - - return (0); + /* + * The offset at which to begin writing the dump. + */ + di->dumpoff = di->mediaoffset + di->mediasize - di->blocksize - + dumpextent; + } + di->origdumpoff = di->dumpoff; + return (error); } static int @@ -1443,17 +1496,10 @@ int dump_finish(struct dumperinfo *di, struct kerneldumpheader *kdh) { uint64_t extent; - uint32_t keysize; int error; extent = dtoh64(kdh->dumpextent); -#ifdef EKCD - keysize = kerneldumpcrypto_dumpkeysize(di->kdcrypto); -#else - keysize = 0; -#endif - if (di->kdcomp != NULL) { error = compressor_flush(di->kdcomp->kdc_stream); if (error == EAGAIN) { @@ -1470,33 +1516,14 @@ dump_finish(struct dumperinfo *di, struct kerneldumphe * We now know the size of the compressed dump, so update the * header accordingly and recompute parity. */ - kdh->dumplength = htod64(di->dumpoff - - (di->mediaoffset + di->mediasize - di->blocksize - extent)); + kdh->dumplength = htod64(di->dumpoff - di->origdumpoff); kdh->parity = 0; kdh->parity = kerneldump_parity(kdh); compressor_reset(di->kdcomp->kdc_stream); } - /* - * Write kerneldump headers at the beginning and end of the dump extent. - * Write the key after the leading header. - */ - error = dump_write_header(di, kdh, - di->mediaoffset + di->mediasize - 2 * di->blocksize - extent - - keysize); - if (error != 0) - return (error); - -#ifdef EKCD - error = dump_write_key(di, - di->mediaoffset + di->mediasize - di->blocksize - extent - keysize); - if (error != 0) - return (error); -#endif - - error = dump_write_header(di, kdh, - di->mediaoffset + di->mediasize - di->blocksize); + error = dump_write_headers(di, kdh); if (error != 0) return (error); Modified: head/sys/sys/conf.h ============================================================================== --- head/sys/sys/conf.h Sun May 6 00:19:48 2018 (r333281) +++ head/sys/sys/conf.h Sun May 6 00:22:38 2018 (r333282) @@ -101,6 +101,8 @@ struct cdev { struct bio; struct buf; +struct dumperinfo; +struct kerneldumpheader; struct thread; struct uio; struct knote; @@ -131,6 +133,9 @@ typedef int dumper_t( vm_offset_t _physical, /* Physical address of virtual. */ off_t _offset, /* Byte-offset to write at. */ size_t _length); /* Number of bytes to dump. */ +typedef int dumper_start_t(struct dumperinfo *di); +typedef int dumper_hdr_t(struct dumperinfo *di, struct kerneldumpheader *kdh, + void *key, uint32_t keylen); #endif /* _KERNEL */ @@ -332,13 +337,18 @@ struct kerneldumpheader; struct dumperinfo { dumper_t *dumper; /* Dumping function. */ + dumper_start_t *dumper_start; /* Dumper callback for dump_start(). */ + dumper_hdr_t *dumper_hdr; /* Dumper callback for writing headers. */ void *priv; /* Private parts. */ u_int blocksize; /* Size of block in bytes. */ u_int maxiosize; /* Max size allowed for an individual I/O */ off_t mediaoffset; /* Initial offset in bytes. */ off_t mediasize; /* Space available in bytes. */ + + /* MI kernel dump state. */ void *blockbuf; /* Buffer for padding shorter dump blocks */ off_t dumpoff; /* Offset of ongoing kernel dump. */ + off_t origdumpoff; /* Starting dump offset. */ struct kerneldumpcrypto *kdcrypto; /* Kernel dump crypto. */ struct kerneldumpcomp *kdcomp; /* Kernel dump compression. */ }; @@ -349,6 +359,7 @@ int doadump(boolean_t); int set_dumper(struct dumperinfo *di, const char *devname, struct thread *td, uint8_t compression, uint8_t encryption, const uint8_t *key, uint32_t encryptedkeysize, const uint8_t *encryptedkey); +int clear_dumper(struct thread *td); int dump_start(struct dumperinfo *di, struct kerneldumpheader *kdh); int dump_append(struct dumperinfo *, void *, vm_offset_t, size_t); From owner-svn-src-head@freebsd.org Sun May 6 00:38:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E2CBFC0E2B; Sun, 6 May 2018 00:38: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 273CC72520; Sun, 6 May 2018 00:38: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 194F224FE8; Sun, 6 May 2018 00:38: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 w460cVMe079452; Sun, 6 May 2018 00:38:31 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460cUTZ079439; Sun, 6 May 2018 00:38:30 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060038.w460cUTZ079439@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:38:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333283 - in head: etc/mtree include share/man/man4 sys/conf sys/net sys/netinet/netdump X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head: etc/mtree include share/man/man4 sys/conf sys/net sys/netinet/netdump X-SVN-Commit-Revision: 333283 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:38:31 -0000 Author: markj Date: Sun May 6 00:38:29 2018 New Revision: 333283 URL: https://svnweb.freebsd.org/changeset/base/333283 Log: Import the netdump client code. This is a component of a system which lets the kernel dump core to a remote host after a panic, rather than to a local storage device. The server component is available in the ports tree. netdump is particularly useful on diskless systems. The netdump(4) man page contains some details describing the protocol. Support for configuring netdump will be added to dumpon(8) in a future commit. To use netdump, the kernel must have been compiled with the NETDUMP option. The initial revision of netdump was written by Darrell Anderson and was integrated into Sandvine's OS, from which this version was derived. Reviewed by: bdrewery, cem (earlier versions), julian, sbruno MFC after: 1 month X-MFC note: use a spare field in struct ifnet Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15253 Added: head/share/man/man4/netdump.4 (contents, props changed) head/sys/netinet/netdump/ head/sys/netinet/netdump/netdump.h (contents, props changed) head/sys/netinet/netdump/netdump_client.c (contents, props changed) Modified: head/etc/mtree/BSD.include.dist head/include/Makefile head/share/man/man4/Makefile head/sys/conf/NOTES head/sys/conf/files head/sys/conf/options head/sys/net/if.c head/sys/net/if_var.h Modified: head/etc/mtree/BSD.include.dist ============================================================================== --- head/etc/mtree/BSD.include.dist Sun May 6 00:22:38 2018 (r333282) +++ head/etc/mtree/BSD.include.dist Sun May 6 00:38:29 2018 (r333283) @@ -290,6 +290,8 @@ netinet cc .. + netdump + .. .. netinet6 .. Modified: head/include/Makefile ============================================================================== --- head/include/Makefile Sun May 6 00:22:38 2018 (r333282) +++ head/include/Makefile Sun May 6 00:38:29 2018 (r333283) @@ -56,6 +56,7 @@ LSUBDIRS= cam/ata cam/mmc cam/nvme cam/scsi \ net/altq \ netgraph/atm netgraph/netflow \ netinet/cc \ + netinet/netdump \ security/audit \ security/mac_biba security/mac_bsdextended security/mac_lomac \ security/mac_mls security/mac_partition \ Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Sun May 6 00:22:38 2018 (r333282) +++ head/share/man/man4/Makefile Sun May 6 00:38:29 2018 (r333283) @@ -319,6 +319,7 @@ MAN= aac.4 \ ncv.4 \ ${_ndis.4} \ net80211.4 \ + netdump.4 \ netfpga10g_nf10bmac.4 \ netgraph.4 \ netintro.4 \ Added: head/share/man/man4/netdump.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/netdump.4 Sun May 6 00:38:29 2018 (r333283) @@ -0,0 +1,127 @@ +.\"- +.\" Copyright (c) 2018 Mark Johnston +.\" +.\" 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$ +.\" +.Dd May 4, 2018 +.Dt NETDUMP 4 +.Os +.Sh NAME +.Nm netdump +.Nd protocol for transmitting kernel dumps to a remote server +.Sh SYNOPSIS +To compile netdump client support into the kernel, place the following line in +your kernel configuration file: +.Bd -ragged -offset indent +.Cd "options NETDUMP" +.Ed +.Pp +Debug output can be enabled by adding the following line: +.Bd -ragged -offset indent +.Cd "options NETDUMP_DEBUG" +.Ed +.Sh DESCRIPTION +netdump is a UDP-based protocol for transmitting kernel dumps to a remote host. +A netdump client is a panicking kernel, and a netdump server is a host +running the +.Nm +daemon, available in ports as +.Pa ports/ftp/netdumpd . +.Nm +clients are configured using the +.Xr dumpon 8 +utility. +.Pp +.Nm +client messages consist of a fixed-size header followed by a variable-sized +payload. +The header contains the message type, a sequence number, the offset of +the payload data in the kernel dump, and the length of the payload data +(not including the header). +The message types are +.Dv HERALD , FINISHED , KDH , VMCORE , +and +.Dv EKCD_KEY . +.Nm +server messages have a fixed size and contain only the sequence number of +the client message. +These messages indicate that the server has successfully processed the +client message with the corresponding sequence number. +All client messages are acknowledged this way. +Server messages are always sent to port 20024 of the client. +.Pp +To initiate a +.Nm , +the client sends a +.Dv HERALD +message to the server at port 20023. +The client may include a relative path in its payload, in which case the +.Nm +server should attempt to save the dump at that path relative to its configured +dump directory. +The server will acknowledge the +.Dv HERALD +using a random source port, and the client must send all subsequent messages +to that port. +.Pp +The +.Dv KDH , VMCORE , +and +.Dv EKCD_KEY +message payloads contain the kernel dump header, dump contents, and +dump encryption key respectively. +The offset in the message header should be treated as a seek offset +in the corresponding file. +There are no ordering requirements for these messages. +.Pp +A +.Nm +is completed by sending the +.Dv FINISHED +message to the server. +.Pp +The following network drivers support netdump: +.Xr alc 4 , +.Xr bge 4 , +.Xr bxe 4 , +.Xr cxgb 4 , +.Xr em 4 , +.Xr igb 4 , +.Xr ix 4 , +.Xr mlx4en 4 , +.Xr re 4 , +.Xr vtnet 4 . +.Sh SEE ALSO +.Xr decryptcore 8 , +.Xr dumpon 8 , +.Xr savecore 8 +.Sh HISTORY +.Nm +client support first appeared in +.Fx 12.0 . +.Sh BUGS +Only IPv4 is supported. +.Pp +.Nm +may only be used after the kernel has panicked. Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Sun May 6 00:22:38 2018 (r333282) +++ head/sys/conf/NOTES Sun May 6 00:38:29 2018 (r333283) @@ -1025,6 +1025,10 @@ options TCP_SIGNATURE #include support for RFC 2385 # a smooth scheduling of the traffic. options DUMMYNET +# The NETDUMP option enables netdump(4) client support in the kernel. +# This allows a panicking kernel to transmit a kernel dump to a remote host. +options NETDUMP + ##################################################################### # FILESYSTEM OPTIONS Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun May 6 00:22:38 2018 (r333282) +++ head/sys/conf/files Sun May 6 00:38:29 2018 (r333283) @@ -4372,6 +4372,7 @@ netinet/libalias/alias_mod.c optional libalias | netgr netinet/libalias/alias_proxy.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_util.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_sctp.c optional libalias inet | netgraph_nat inet +netinet/netdump/netdump_client.c optional inet netdump netinet6/dest6.c optional inet6 netinet6/frag6.c optional inet6 netinet6/icmp6.c optional inet6 Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Sun May 6 00:22:38 2018 (r333282) +++ head/sys/conf/options Sun May 6 00:38:29 2018 (r333283) @@ -313,6 +313,9 @@ NFS_ROOT opt_nfsroot.h # SMB/CIFS requester NETSMB opt_netsmb.h +# Enable netdump(4) client support. +NETDUMP opt_global.h + # Options used only in subr_param.c. HZ opt_param.h MAXFILES opt_param.h Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Sun May 6 00:22:38 2018 (r333282) +++ head/sys/net/if.c Sun May 6 00:38:29 2018 (r333283) @@ -87,6 +87,7 @@ #include #ifdef INET #include +#include #endif /* INET */ #ifdef INET6 #include @@ -2769,6 +2770,9 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, if (error == 0) { getmicrotime(&ifp->if_lastchange); rt_ifmsg(ifp); +#ifdef INET + NETDUMP_REINIT(ifp); +#endif } /* * If the link MTU changed, do network layer specific procedure. Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Sun May 6 00:22:38 2018 (r333282) +++ head/sys/net/if_var.h Sun May 6 00:38:29 2018 (r333283) @@ -70,6 +70,7 @@ struct route; /* if_output */ struct vnet; struct ifmedia; struct netmap_adapter; +struct netdump_methods; #ifdef _KERNEL #include /* ifqueue only? */ @@ -367,6 +368,11 @@ struct ifnet { /* Ethernet PCP */ uint8_t if_pcp; + + /* + * Netdump hooks to be called while dumping. + */ + struct netdump_methods *if_netdump_methods; /* * Spare fields to be added before branching a stable branch, so Added: head/sys/netinet/netdump/netdump.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/netinet/netdump/netdump.h Sun May 6 00:38:29 2018 (r333283) @@ -0,0 +1,130 @@ +/*- + * Copyright (c) 2005-2014 Sandvine Incorporated + * Copyright (c) 2000 Darrell Anderson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _NETINET_NETDUMP_H_ +#define _NETINET_NETDUMP_H_ + +#include +#include +#include + +#include +#include + +#define NETDUMP_PORT 20023 /* Server UDP port for heralds. */ +#define NETDUMP_ACKPORT 20024 /* Client UDP port for acks. */ + +#define NETDUMP_HERALD 1 /* Broadcast before starting a dump. */ +#define NETDUMP_FINISHED 2 /* Send after finishing a dump. */ +#define NETDUMP_VMCORE 3 /* Contains dump data. */ +#define NETDUMP_KDH 4 /* Contains kernel dump header. */ +#define NETDUMP_EKCD_KEY 5 /* Contains kernel dump key. */ + +#define NETDUMP_DATASIZE 4096 /* Arbitrary packet size limit. */ + +struct netdump_msg_hdr { + uint32_t mh_type; /* Netdump message type. */ + uint32_t mh_seqno; /* Match acks with msgs. */ + uint64_t mh_offset; /* vmcore offset (bytes). */ + uint32_t mh_len; /* Attached data (bytes). */ + uint32_t mh__pad; +} __packed; + +struct netdump_ack { + uint32_t na_seqno; /* Match acks with msgs. */ +} __packed; + +struct netdump_conf { + struct diocskerneldump_arg ndc_kda; + char ndc_iface[IFNAMSIZ]; + struct in_addr ndc_server; + struct in_addr ndc_client; + struct in_addr ndc_gateway; +}; + +#define _PATH_NETDUMP "/dev/netdump" + +#define NETDUMPGCONF _IOR('n', 1, struct netdump_conf) +#define NETDUMPSCONF _IOW('n', 2, struct netdump_conf) + +#ifdef _KERNEL +#ifdef NETDUMP + +#define NETDUMP_MAX_IN_FLIGHT 64 + +enum netdump_ev { + NETDUMP_START, + NETDUMP_END, +}; + +struct ifnet; +struct mbuf; + +void netdump_reinit(struct ifnet *); + +typedef void netdump_init_t(struct ifnet *, int *nrxr, int *ncl, int *clsize); +typedef void netdump_event_t(struct ifnet *, enum netdump_ev); +typedef int netdump_transmit_t(struct ifnet *, struct mbuf *); +typedef int netdump_poll_t(struct ifnet *, int); + +struct netdump_methods { + netdump_init_t *nd_init; + netdump_event_t *nd_event; + netdump_transmit_t *nd_transmit; + netdump_poll_t *nd_poll; +}; + +#define NETDUMP_DEFINE(driver) \ + static netdump_init_t driver##_netdump_init; \ + static netdump_event_t driver##_netdump_event; \ + static netdump_transmit_t driver##_netdump_transmit; \ + static netdump_poll_t driver##_netdump_poll; \ + \ + static struct netdump_methods driver##_netdump_methods = { \ + .nd_init = driver##_netdump_init, \ + .nd_event = driver##_netdump_event, \ + .nd_transmit = driver##_netdump_transmit, \ + .nd_poll = driver##_netdump_poll, \ + } + +#define NETDUMP_REINIT(ifp) netdump_reinit(ifp) + +#define NETDUMP_SET(ifp, driver) \ + (ifp)->if_netdump_methods = &driver##_netdump_methods + +#else /* !NETDUMP */ + +#define NETDUMP_DEFINE(driver) +#define NETDUMP_REINIT(ifp) +#define NETDUMP_SET(ifp, driver) + +#endif /* NETDUMP */ +#endif /* _KERNEL */ + +#endif /* _NETINET_NETDUMP_H_ */ Added: head/sys/netinet/netdump/netdump_client.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/netinet/netdump/netdump_client.c Sun May 6 00:38:29 2018 (r333283) @@ -0,0 +1,1296 @@ +/*- + * Copyright (c) 2005-2014 Sandvine Incorporated. All rights reserved. + * Copyright (c) 2000 Darrell Anderson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * netdump_client.c + * FreeBSD subsystem supporting netdump network dumps. + * A dedicated server must be running to accept client dumps. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define NETDDEBUG(f, ...) do { \ + if (nd_debug > 0) \ + printf(("%s: " f), __func__, ## __VA_ARGS__); \ +} while (0) +#define NETDDEBUG_IF(i, f, ...) do { \ + if (nd_debug > 0) \ + if_printf((i), ("%s: " f), __func__, ## __VA_ARGS__); \ +} while (0) +#define NETDDEBUGV(f, ...) do { \ + if (nd_debug > 1) \ + printf(("%s: " f), __func__, ## __VA_ARGS__); \ +} while (0) +#define NETDDEBUGV_IF(i, f, ...) do { \ + if (nd_debug > 1) \ + if_printf((i), ("%s: " f), __func__, ## __VA_ARGS__); \ +} while (0) + +static int netdump_arp_gw(void); +static void netdump_cleanup(void); +static int netdump_configure(struct netdump_conf *); +static int netdump_dumper(void *priv __unused, void *virtual, + vm_offset_t physical __unused, off_t offset, size_t length); +static int netdump_ether_output(struct mbuf *m, struct ifnet *ifp, + struct ether_addr dst, u_short etype); +static void netdump_handle_arp(struct mbuf **mb); +static void netdump_handle_ip(struct mbuf **mb); +static int netdump_ioctl(struct cdev *dev __unused, u_long cmd, + caddr_t addr, int flags __unused, struct thread *td); +static int netdump_modevent(module_t mod, int type, void *priv); +static void netdump_network_poll(void); +static void netdump_pkt_in(struct ifnet *ifp, struct mbuf *m); +static int netdump_send(uint32_t type, off_t offset, unsigned char *data, + uint32_t datalen); +static int netdump_send_arp(in_addr_t dst); +static int netdump_start(struct dumperinfo *di); +static int netdump_udp_output(struct mbuf *m); + +/* Must be at least as big as the chunks dumpsys() gives us. */ +static unsigned char nd_buf[MAXDUMPPGS * PAGE_SIZE]; +static uint32_t nd_seqno; +static int dump_failed, have_gw_mac; +static void (*drv_if_input)(struct ifnet *, struct mbuf *); +static int restore_gw_addr; + +static uint64_t rcvd_acks; +CTASSERT(sizeof(rcvd_acks) * NBBY == NETDUMP_MAX_IN_FLIGHT); + +/* + * Times to poll the NIC (0.5ms each poll) before assuming packetloss + * occurred (default to 1s). + */ +static int nd_polls = 2000; + +/* Times to retransmit lost packets. */ +static int nd_retries = 10; + +/* Number of ARP retries. */ +static int nd_arp_retries = 3; + +/* Configuration parameters. */ +static struct netdump_conf nd_conf; +#define nd_server nd_conf.ndc_server +#define nd_client nd_conf.ndc_client +#define nd_gateway nd_conf.ndc_gateway + +/* General dynamic settings. */ +static struct ether_addr nd_gw_mac; +static struct ifnet *nd_ifp; +static uint16_t nd_server_port = NETDUMP_PORT; + +FEATURE(netdump, "Netdump client support"); + +static SYSCTL_NODE(_net, OID_AUTO, netdump, CTLFLAG_RD, NULL, + "netdump parameters"); + +static int nd_debug; +SYSCTL_INT(_net_netdump, OID_AUTO, debug, CTLFLAG_RWTUN, + &nd_debug, 0, + "Debug message verbosity"); +static int nd_enabled; +SYSCTL_INT(_net_netdump, OID_AUTO, enabled, CTLFLAG_RD, + &nd_enabled, 0, + "netdump configuration status"); +static char nd_path[MAXPATHLEN]; +SYSCTL_STRING(_net_netdump, OID_AUTO, path, CTLFLAG_RW, + nd_path, sizeof(nd_path), + "Server path for output files"); + +/* + * Checks for netdump support on a network interface + * + * Parameters: + * ifp The network interface that is being tested for support + * + * Returns: + * int 1 if the interface is supported, 0 if not + */ +static bool +netdump_supported_nic(struct ifnet *ifp) +{ + + return (ifp->if_netdump_methods != NULL); +} + +/*- + * Network specific primitives. + * Following down the code they are divided ordered as: + * - Packet buffer primitives + * - Output primitives + * - Input primitives + * - Polling primitives + */ + +/* + * Handles creation of the ethernet header, then places outgoing packets into + * the tx buffer for the NIC + * + * Parameters: + * m The mbuf containing the packet to be sent (will be freed by + * this function or the NIC driver) + * ifp The interface to send on + * dst The destination ethernet address (source address will be looked + * up using ifp) + * etype The ETHERTYPE_* value for the protocol that is being sent + * + * Returns: + * int see errno.h, 0 for success + */ +static int +netdump_ether_output(struct mbuf *m, struct ifnet *ifp, struct ether_addr dst, + u_short etype) +{ + struct ether_header *eh; + + if (((ifp->if_flags & (IFF_MONITOR | IFF_UP)) != IFF_UP) || + (ifp->if_drv_flags & IFF_DRV_RUNNING) != IFF_DRV_RUNNING) { + if_printf(ifp, "netdump_ether_output: interface isn't up\n"); + m_freem(m); + return (ENETDOWN); + } + + /* Fill in the ethernet header. */ + M_PREPEND(m, ETHER_HDR_LEN, M_NOWAIT); + if (m == NULL) { + printf("%s: out of mbufs\n", __func__); + return (ENOBUFS); + } + eh = mtod(m, struct ether_header *); + memcpy(eh->ether_shost, IF_LLADDR(ifp), ETHER_ADDR_LEN); + memcpy(eh->ether_dhost, dst.octet, ETHER_ADDR_LEN); + eh->ether_type = htons(etype); + return ((ifp->if_netdump_methods->nd_transmit)(ifp, m)); +} + +/* + * Unreliable transmission of an mbuf chain to the netdump server + * Note: can't handle fragmentation; fails if the packet is larger than + * nd_ifp->if_mtu after adding the UDP/IP headers + * + * Parameters: + * m mbuf chain + * + * Returns: + * int see errno.h, 0 for success + */ +static int +netdump_udp_output(struct mbuf *m) +{ + struct udpiphdr *ui; + struct ip *ip; + + MPASS(nd_ifp != NULL); + + M_PREPEND(m, sizeof(struct udpiphdr), M_NOWAIT); + if (m == NULL) { + printf("%s: out of mbufs\n", __func__); + return (ENOBUFS); + } + + if (m->m_pkthdr.len > nd_ifp->if_mtu) { + printf("netdump_udp_output: Packet is too big: %d > MTU %u\n", + m->m_pkthdr.len, nd_ifp->if_mtu); + m_freem(m); + return (ENOBUFS); + } + + ui = mtod(m, struct udpiphdr *); + bzero(ui->ui_x1, sizeof(ui->ui_x1)); + ui->ui_pr = IPPROTO_UDP; + ui->ui_len = htons(m->m_pkthdr.len - sizeof(struct ip)); + ui->ui_ulen = ui->ui_len; + ui->ui_src = nd_client; + ui->ui_dst = nd_server; + /* Use this src port so that the server can connect() the socket */ + ui->ui_sport = htons(NETDUMP_ACKPORT); + ui->ui_dport = htons(nd_server_port); + ui->ui_sum = 0; + if ((ui->ui_sum = in_cksum(m, m->m_pkthdr.len)) == 0) + ui->ui_sum = 0xffff; + + ip = mtod(m, struct ip *); + ip->ip_v = IPVERSION; + ip->ip_hl = sizeof(struct ip) >> 2; + ip->ip_tos = 0; + ip->ip_len = htons(m->m_pkthdr.len); + ip->ip_id = 0; + ip->ip_off = htons(IP_DF); + ip->ip_ttl = 255; + ip->ip_sum = 0; + ip->ip_sum = in_cksum(m, sizeof(struct ip)); + + return (netdump_ether_output(m, nd_ifp, nd_gw_mac, ETHERTYPE_IP)); +} + +/* + * Builds and sends a single ARP request to locate the server + * + * Return value: + * 0 on success + * errno on error + */ +static int +netdump_send_arp(in_addr_t dst) +{ + struct ether_addr bcast; + struct mbuf *m; + struct arphdr *ah; + int pktlen; + + MPASS(nd_ifp != NULL); + + /* Fill-up a broadcast address. */ + memset(&bcast, 0xFF, ETHER_ADDR_LEN); + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) { + printf("netdump_send_arp: Out of mbufs\n"); + return (ENOBUFS); + } + pktlen = arphdr_len2(ETHER_ADDR_LEN, sizeof(struct in_addr)); + m->m_len = pktlen; + m->m_pkthdr.len = pktlen; + MH_ALIGN(m, pktlen); + ah = mtod(m, struct arphdr *); + ah->ar_hrd = htons(ARPHRD_ETHER); + ah->ar_pro = htons(ETHERTYPE_IP); + ah->ar_hln = ETHER_ADDR_LEN; + ah->ar_pln = sizeof(struct in_addr); + ah->ar_op = htons(ARPOP_REQUEST); + memcpy(ar_sha(ah), IF_LLADDR(nd_ifp), ETHER_ADDR_LEN); + ((struct in_addr *)ar_spa(ah))->s_addr = nd_client.s_addr; + bzero(ar_tha(ah), ETHER_ADDR_LEN); + ((struct in_addr *)ar_tpa(ah))->s_addr = dst; + return (netdump_ether_output(m, nd_ifp, bcast, ETHERTYPE_ARP)); +} + +/* + * Sends ARP requests to locate the server and waits for a response. + * We first try to ARP the server itself, and fall back to the provided + * gateway if the server appears to be off-link. + * + * Return value: + * 0 on success + * errno on error + */ +static int +netdump_arp_gw(void) +{ + in_addr_t dst; + int error, polls, retries; + + dst = nd_server.s_addr; +restart: + for (retries = 0; retries < nd_arp_retries && have_gw_mac == 0; + retries++) { + error = netdump_send_arp(dst); + if (error != 0) + return (error); + for (polls = 0; polls < nd_polls && have_gw_mac == 0; polls++) { + netdump_network_poll(); + DELAY(500); + } + if (have_gw_mac == 0) + printf("(ARP retry)"); + } + if (have_gw_mac != 0) + return (0); + if (dst == nd_server.s_addr && nd_server.s_addr != nd_gateway.s_addr) { + printf("Failed to ARP server, trying to reach gateway...\n"); + dst = nd_gateway.s_addr; + goto restart; + } + + printf("\nARP timed out.\n"); + return (ETIMEDOUT); +} + +/* + * Dummy free function for netdump clusters. + */ +static void +netdump_mbuf_free(struct mbuf *m __unused) +{ +} + +/* + * Construct and reliably send a netdump packet. May fail from a resource + * shortage or extreme number of unacknowledged retransmissions. Wait for + * an acknowledgement before returning. Splits packets into chunks small + * enough to be sent without fragmentation (looks up the interface MTU) + * + * Parameters: + * type netdump packet type (HERALD, FINISHED, or VMCORE) + * offset vmcore data offset (bytes) + * data vmcore data + * datalen vmcore data size (bytes) + * + * Returns: + * int see errno.h, 0 for success + */ +static int +netdump_send(uint32_t type, off_t offset, unsigned char *data, uint32_t datalen) +{ + struct netdump_msg_hdr *nd_msg_hdr; + struct mbuf *m, *m2; + uint64_t want_acks; + uint32_t i, pktlen, sent_so_far; + int retries, polls, error; + + want_acks = 0; + rcvd_acks = 0; + retries = 0; + + MPASS(nd_ifp != NULL); + +retransmit: + /* Chunks can be too big to fit in packets. */ + for (i = sent_so_far = 0; sent_so_far < datalen || + (i == 0 && datalen == 0); i++) { + pktlen = datalen - sent_so_far; + + /* First bound: the packet structure. */ + pktlen = min(pktlen, NETDUMP_DATASIZE); + + /* Second bound: the interface MTU (assume no IP options). */ + pktlen = min(pktlen, nd_ifp->if_mtu - sizeof(struct udpiphdr) - + sizeof(struct netdump_msg_hdr)); + + /* + * Check if it is retransmitting and this has been ACKed + * already. + */ + if ((rcvd_acks & (1 << i)) != 0) { + sent_so_far += pktlen; + continue; + } + + /* + * Get and fill a header mbuf, then chain data as an extended + * mbuf. + */ + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) { + printf("netdump_send: Out of mbufs\n"); + return (ENOBUFS); + } + m->m_len = sizeof(struct netdump_msg_hdr); + m->m_pkthdr.len = sizeof(struct netdump_msg_hdr); + MH_ALIGN(m, sizeof(struct netdump_msg_hdr)); + nd_msg_hdr = mtod(m, struct netdump_msg_hdr *); + nd_msg_hdr->mh_seqno = htonl(nd_seqno + i); + nd_msg_hdr->mh_type = htonl(type); + nd_msg_hdr->mh_offset = htobe64(offset + sent_so_far); + nd_msg_hdr->mh_len = htonl(pktlen); + nd_msg_hdr->mh__pad = 0; + + if (pktlen != 0) { + m2 = m_get(M_NOWAIT, MT_DATA); + if (m2 == NULL) { + m_freem(m); + printf("netdump_send: Out of mbufs\n"); + return (ENOBUFS); + } + MEXTADD(m2, data + sent_so_far, pktlen, + netdump_mbuf_free, NULL, NULL, 0, EXT_DISPOSABLE); + m2->m_len = pktlen; + + m_cat(m, m2); + m->m_pkthdr.len += pktlen; + } + error = netdump_udp_output(m); + if (error != 0) + return (error); + + /* Note that we're waiting for this packet in the bitfield. */ + want_acks |= (1 << i); + sent_so_far += pktlen; + } + if (i >= NETDUMP_MAX_IN_FLIGHT) + printf("Warning: Sent more than %d packets (%d). " + "Acknowledgements will fail unless the size of " + "rcvd_acks/want_acks is increased.\n", + NETDUMP_MAX_IN_FLIGHT, i); + + /* + * Wait for acks. A *real* window would speed things up considerably. + */ + polls = 0; + while (rcvd_acks != want_acks) { + if (polls++ > nd_polls) { + if (retries++ > nd_retries) + return (ETIMEDOUT); + printf(". "); + goto retransmit; + } + netdump_network_poll(); + DELAY(500); + } + nd_seqno += i; + return (0); +} + +/* + * Handler for IP packets: checks their sanity and then processes any netdump + * ACK packets it finds. + * + * It needs to replicate partially the behaviour of ip_input() and + * udp_input(). + * + * Parameters: + * mb a pointer to an mbuf * containing the packet received + * Updates *mb if m_pullup et al change the pointer + * Assumes the calling function will take care of freeing the mbuf + */ +static void +netdump_handle_ip(struct mbuf **mb) +{ + struct ip *ip; + struct udpiphdr *udp; + struct netdump_ack *nd_ack; + struct mbuf *m; + int rcv_ackno; + unsigned short hlen; + + /* IP processing. */ + m = *mb; + if (m->m_pkthdr.len < sizeof(struct ip)) { + NETDDEBUG("dropping packet too small for IP header\n"); + return; + } + if (m->m_len < sizeof(struct ip)) { + m = m_pullup(m, sizeof(struct ip)); + *mb = m; + if (m == NULL) { + NETDDEBUG("m_pullup failed\n"); + return; + } + } + ip = mtod(m, struct ip *); + + /* IP version. */ + if (ip->ip_v != IPVERSION) { + NETDDEBUG("bad IP version %d\n", ip->ip_v); + return; + } + + /* Header length. */ + hlen = ip->ip_hl << 2; + if (hlen < sizeof(struct ip)) { + NETDDEBUG("bad IP header length (%hu)\n", hlen); + return; + } + if (hlen > m->m_len) { + m = m_pullup(m, hlen); + *mb = m; + if (m == NULL) { + NETDDEBUG("m_pullup failed\n"); + return; + } + ip = mtod(m, struct ip *); + } + /* Ignore packets with IP options. */ + if (hlen > sizeof(struct ip)) { + NETDDEBUG("drop packet with IP options\n"); + return; + } + +#ifdef INVARIANTS + if (((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET || + (ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) && + (m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) == 0) { + NETDDEBUG("Bad IP header (RFC1122)\n"); + return; + } +#endif + + /* Checksum. */ + if ((m->m_pkthdr.csum_flags & CSUM_IP_CHECKED) != 0) { + if ((m->m_pkthdr.csum_flags & CSUM_IP_VALID) == 0) { + NETDDEBUG("bad IP checksum\n"); + return; + } + } else { + /* XXX */ ; + } + + /* Convert fields to host byte order. */ + ip->ip_len = ntohs(ip->ip_len); + if (ip->ip_len < hlen) { + NETDDEBUG("IP packet smaller (%hu) than header (%hu)\n", + ip->ip_len, hlen); + return; + } + if (m->m_pkthdr.len < ip->ip_len) { + NETDDEBUG("IP packet bigger (%hu) than ethernet packet (%d)\n", + ip->ip_len, m->m_pkthdr.len); + return; + } + if (m->m_pkthdr.len > ip->ip_len) { + + /* Truncate the packet to the IP length. */ + if (m->m_len == m->m_pkthdr.len) { + m->m_len = ip->ip_len; + m->m_pkthdr.len = ip->ip_len; + } else + m_adj(m, ip->ip_len - m->m_pkthdr.len); + } + + ip->ip_off = ntohs(ip->ip_off); + + /* Check that the source is the server's IP. */ + if (ip->ip_src.s_addr != nd_server.s_addr) { + NETDDEBUG("drop packet not from server (from 0x%x)\n", + ip->ip_src.s_addr); + return; + } + + /* Check if the destination IP is ours. */ + if (ip->ip_dst.s_addr != nd_client.s_addr) { + NETDDEBUGV("drop packet not to our IP\n"); + return; + } + + if (ip->ip_p != IPPROTO_UDP) { + NETDDEBUG("drop non-UDP packet\n"); + return; + } + + /* Do not deal with fragments. */ + if ((ip->ip_off & (IP_MF | IP_OFFMASK)) != 0) { + NETDDEBUG("drop fragmented packet\n"); + return; + } + + /* UDP custom is to have packet length not include IP header. */ + ip->ip_len -= hlen; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sun May 6 00:42:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34E4AFC1146; Sun, 6 May 2018 00:42: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DF34873970; Sun, 6 May 2018 00:42:30 +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 C00E825195; Sun, 6 May 2018 00:42:30 +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 w460gUJi084348; Sun, 6 May 2018 00:42:30 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460gUrD084346; Sun, 6 May 2018 00:42:30 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060042.w460gUrD084346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:42:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333284 - head/sbin/dumpon X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sbin/dumpon X-SVN-Commit-Revision: 333284 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:42:31 -0000 Author: markj Date: Sun May 6 00:42:30 2018 New Revision: 333284 URL: https://svnweb.freebsd.org/changeset/base/333284 Log: Add netdump support to dumpon(8). A new usage is added so that parameters for netdump may be specified. Specifically, one configures an interface for netdump with: # dumpon -c -s [-g ] Reviewed by: bdrewery, cem (earlier versions), sbruno MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15254 Modified: head/sbin/dumpon/dumpon.8 head/sbin/dumpon/dumpon.c Modified: head/sbin/dumpon/dumpon.8 ============================================================================== --- head/sbin/dumpon/dumpon.8 Sun May 6 00:38:29 2018 (r333283) +++ head/sbin/dumpon/dumpon.8 Sun May 6 00:42:30 2018 (r333284) @@ -28,7 +28,7 @@ .\" From: @(#)swapon.8 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd February 13, 2018 +.Dd March 6, 2018 .Dt DUMPON 8 .Os .Sh NAME @@ -37,10 +37,19 @@ .Sh SYNOPSIS .Nm .Op Fl v -.Op Fl k Ar public_key_file +.Op Fl k Ar pubkey +.Op Fl Z .Op Fl z +.Ar device +.Nm +.Op Fl v +.Op Fl k Ar pubkey .Op Fl Z -.Ar special_file +.Op Fl z +.Op Fl g Ar gateway | Li default +.Fl s Ar server +.Fl c Ar client +.Ar iface .Nm .Op Fl v .Cm off @@ -60,7 +69,7 @@ normally occur from the system multi-user initializati controlled by the .Dq dumpdev and -.Dq dumppubkey +.Dq dumpon_flags variables in the boot time configuration file .Pa /etc/rc.conf . .Pp @@ -72,8 +81,7 @@ Alternatively, full memory dumps can be enabled by set variable to 0. .Pp For systems using full memory dumps, the size of the specified dump -device must be at -least the size of physical memory. +device must be at least the size of physical memory. Even though an additional 64 kB header is added to the dump, the BIOS for a platform typically holds back some memory, so it is not usually necessary to size the dump device larger than the actual amount of RAM @@ -86,8 +94,37 @@ total amount of physical memory as reported by the .Xr sysctl 8 variable. .Pp +.Nm +is used to configure a local storage device as the dump device. +With additional parameters, the kernel can instead be configured to +transmit a dump to a remote server using +.Xr netdump 4 . +This eliminates the need to reserve space for saving crash dumps and +is especially useful in diskless environments. The -.Op Fl k Ar public_key_file +.Xr netdump 4 +server address is specified with +.Fl s Ar server , +and the local address is specified with +.Fl c Ar client . +The +.Fl g Ar gateway +parameter may be used to specify a first-hop router to the server, +or to specify that the currently configured default gateway is to +be used. +Note that the +.Xr netdump 4 +configuration is not automatically updated if any network configuration +(e.g., the default route) changes after the +.Nm +invocation. +The name of the interface to be used must be specified as +.Ar iface . +The interface must be up in order to configure +.Xr netdump 4 . +.Pp +The +.Fl k Ar pubkey flag causes .Nm to generate a one-time key for kernel crash dump encryption. @@ -95,16 +132,16 @@ The key will be replaced by a new one when the .Nm utility is run again. The key is encrypted using -.Ar public_key_file . +.Ar pubkey . This process is sandboxed using .Xr capsicum 4 . Both plain and encrypted keys are sent to the kernel using .Dv DIOCSKERNELDUMP .Xr ioctl 2 . A user can specify the -.Ar public_key_file +.Ar pubkey in the -.Dq dumppubkey +.Dq dumpon_flags variable defined in .Pa /etc/rc.conf for use with the @@ -172,13 +209,13 @@ should be used as the dump device. The .Nm utility operates by opening -.Ar special_file +.Ar device and making a .Dv DIOCSKERNELDUMP .Xr ioctl 2 request on it to save kernel crash dumps. If -.Ar special_file +.Ar device is the text string: .Dq Li off , .Nm Modified: head/sbin/dumpon/dumpon.c ============================================================================== --- head/sbin/dumpon/dumpon.c Sun May 6 00:38:29 2018 (r333283) +++ head/sbin/dumpon/dumpon.c Sun May 6 00:42:30 2018 (r333284) @@ -46,12 +46,15 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include #include +#include +#include #include #include #include @@ -61,6 +64,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include + +#include +#include +#include + +#include +#include + #ifdef HAVE_CRYPTO #include #include @@ -69,16 +81,109 @@ __FBSDID("$FreeBSD$"); static int verbose; -static void +static void _Noreturn usage(void) { - fprintf(stderr, "%s\n%s\n%s\n", - "usage: dumpon [-v] [-k public_key_file] [-Zz] special_file", - " dumpon [-v] off", - " dumpon [-v] -l"); + fprintf(stderr, + "usage: dumpon [-v] [-k ] [-Zz] \n" + " dumpon [-v] [-k ] [-Zz]\n" + " [-g |default] -s -c \n" + " dumpon [-v] off\n" + " dumpon [-v] -l\n"); exit(EX_USAGE); } +/* + * Look for a default route on the specified interface. + */ +static char * +find_gateway(const char *ifname) +{ + struct ifaddrs *ifa, *ifap; + struct rt_msghdr *rtm; + struct sockaddr *sa; + struct sockaddr_dl *sdl; + struct sockaddr_in *dst, *mask, *gw; + char *buf, *next, *ret; + size_t sz; + int error, i, ifindex, mib[7]; + + ret = NULL; + + /* First look up the interface index. */ + if (getifaddrs(&ifap) != 0) + err(EX_OSERR, "getifaddrs"); + for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { + if (ifa->ifa_addr->sa_family != AF_LINK) + continue; + if (strcmp(ifa->ifa_name, ifname) == 0) { + sdl = (struct sockaddr_dl *)(void *)ifa->ifa_addr; + ifindex = sdl->sdl_index; + break; + } + } + if (ifa == NULL) + errx(1, "couldn't find interface index for '%s'", ifname); + freeifaddrs(ifap); + + /* Now get the IPv4 routing table. */ + mib[0] = CTL_NET; + mib[1] = PF_ROUTE; + mib[2] = 0; + mib[3] = AF_INET; + mib[4] = NET_RT_DUMP; + mib[5] = 0; + mib[6] = -1; /* FIB */ + + for (;;) { + if (sysctl(mib, nitems(mib), NULL, &sz, NULL, 0) != 0) + err(EX_OSERR, "sysctl(NET_RT_DUMP)"); + buf = malloc(sz); + error = sysctl(mib, nitems(mib), buf, &sz, NULL, 0); + if (error == 0) + break; + if (errno != ENOMEM) + err(EX_OSERR, "sysctl(NET_RT_DUMP)"); + free(buf); + } + + for (next = buf; next < buf + sz; next += rtm->rtm_msglen) { + rtm = (struct rt_msghdr *)(void *)next; + if (rtm->rtm_version != RTM_VERSION) + continue; + if ((rtm->rtm_flags & RTF_GATEWAY) == 0 || + rtm->rtm_index != ifindex) + continue; + + dst = gw = mask = NULL; + sa = (struct sockaddr *)(rtm + 1); + for (i = 0; i < RTAX_MAX; i++) { + if ((rtm->rtm_addrs & (1 << i)) != 0) { + switch (i) { + case RTAX_DST: + dst = (void *)sa; + break; + case RTAX_GATEWAY: + gw = (void *)sa; + break; + case RTAX_NETMASK: + mask = (void *)sa; + break; + } + } + sa = (struct sockaddr *)((char *)sa + SA_SIZE(sa)); + } + + if (dst->sin_addr.s_addr == INADDR_ANY && + mask->sin_addr.s_addr == 0) { + ret = inet_ntoa(gw->sin_addr); + break; + } + } + free(buf); + return (ret); +} + static void check_size(int fd, const char *fn) { @@ -107,13 +212,13 @@ check_size(int fd, const char *fn) #ifdef HAVE_CRYPTO static void -genkey(const char *pubkeyfile, struct diocskerneldump_arg *kda) +genkey(const char *pubkeyfile, struct diocskerneldump_arg *kdap) { FILE *fp; RSA *pubkey; assert(pubkeyfile != NULL); - assert(kda != NULL); + assert(kdap != NULL); fp = NULL; pubkey = NULL; @@ -137,21 +242,21 @@ genkey(const char *pubkeyfile, struct diocskerneldump_ if (pubkey == NULL) errx(1, "Unable to read data from %s.", pubkeyfile); - kda->kda_encryptedkeysize = RSA_size(pubkey); - if (kda->kda_encryptedkeysize > KERNELDUMP_ENCKEY_MAX_SIZE) { + kdap->kda_encryptedkeysize = RSA_size(pubkey); + if (kdap->kda_encryptedkeysize > KERNELDUMP_ENCKEY_MAX_SIZE) { errx(1, "Public key has to be at most %db long.", 8 * KERNELDUMP_ENCKEY_MAX_SIZE); } - kda->kda_encryptedkey = calloc(1, kda->kda_encryptedkeysize); - if (kda->kda_encryptedkey == NULL) + kdap->kda_encryptedkey = calloc(1, kdap->kda_encryptedkeysize); + if (kdap->kda_encryptedkey == NULL) err(1, "Unable to allocate encrypted key"); - kda->kda_encryption = KERNELDUMP_ENC_AES_256_CBC; - arc4random_buf(kda->kda_key, sizeof(kda->kda_key)); - if (RSA_public_encrypt(sizeof(kda->kda_key), kda->kda_key, - kda->kda_encryptedkey, pubkey, - RSA_PKCS1_PADDING) != (int)kda->kda_encryptedkeysize) { + kdap->kda_encryption = KERNELDUMP_ENC_AES_256_CBC; + arc4random_buf(kdap->kda_key, sizeof(kdap->kda_key)); + if (RSA_public_encrypt(sizeof(kdap->kda_key), kdap->kda_key, + kdap->kda_encryptedkey, pubkey, + RSA_PKCS1_PADDING) != (int)kdap->kda_encryptedkeysize) { errx(1, "Unable to encrypt the one-time key."); } RSA_free(pubkey); @@ -162,8 +267,10 @@ static void listdumpdev(void) { char dumpdev[PATH_MAX]; + struct netdump_conf ndconf; size_t len; const char *sysctlname = "kern.shutdown.dumpdevname"; + int fd; len = sizeof(dumpdev); if (sysctlbyname(sysctlname, &dumpdev, &len, NULL, 0) != 0) { @@ -174,37 +281,89 @@ listdumpdev(void) err(EX_OSERR, "Sysctl get '%s'\n", sysctlname); } } - if (verbose) { + if (strlen(dumpdev) == 0) + (void)strlcpy(dumpdev, _PATH_DEVNULL, sizeof(dumpdev)); + + if (verbose) printf("kernel dumps on "); + printf("%s\n", dumpdev); + + /* If netdump is enabled, print the configuration parameters. */ + if (verbose) { + fd = open(_PATH_NETDUMP, O_RDONLY); + if (fd < 0) { + if (errno != ENOENT) + err(EX_OSERR, "opening %s", _PATH_NETDUMP); + return; + } + if (ioctl(fd, NETDUMPGCONF, &ndconf) != 0) { + if (errno != ENXIO) + err(EX_OSERR, "ioctl(NETDUMPGCONF)"); + (void)close(fd); + return; + } + + printf("server address: %s\n", inet_ntoa(ndconf.ndc_server)); + printf("client address: %s\n", inet_ntoa(ndconf.ndc_client)); + printf("gateway address: %s\n", inet_ntoa(ndconf.ndc_gateway)); + (void)close(fd); } - if (strlen(dumpdev) == 0) { - printf("%s\n", _PATH_DEVNULL); - } else { - printf("%s\n", dumpdev); +} + +static int +opendumpdev(const char *arg, char *dumpdev) +{ + int fd, i; + + if (strncmp(arg, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0) + strlcpy(dumpdev, arg, PATH_MAX); + else { + i = snprintf(dumpdev, PATH_MAX, "%s%s", _PATH_DEV, arg); + if (i < 0) + err(EX_OSERR, "%s", arg); + if (i >= PATH_MAX) + errc(EX_DATAERR, EINVAL, "%s", arg); } + + fd = open(dumpdev, O_RDONLY); + if (fd < 0) + err(EX_OSFILE, "%s", dumpdev); + return (fd); } int main(int argc, char *argv[]) { - struct diocskerneldump_arg kda; - const char *pubkeyfile; - int ch; - int i, fd; - int do_listdumpdev = 0; - bool enable, gzip, zstd; + char dumpdev[PATH_MAX]; + struct diocskerneldump_arg _kda, *kdap; + struct netdump_conf ndconf; + struct addrinfo hints, *res; + const char *dev, *pubkeyfile, *server, *client, *gateway; + int ch, error, fd; + bool enable, gzip, list, netdump, zstd; - gzip = zstd = false; + gzip = list = netdump = zstd = false; + kdap = NULL; pubkeyfile = NULL; + server = client = gateway = NULL; - while ((ch = getopt(argc, argv, "k:lvZz")) != -1) - switch((char)ch) { + while ((ch = getopt(argc, argv, "c:g:k:ls:vZz")) != -1) + switch ((char)ch) { + case 'c': + client = optarg; + break; + case 'g': + gateway = optarg; + break; case 'k': pubkeyfile = optarg; break; case 'l': - do_listdumpdev = 1; + list = true; break; + case 's': + server = optarg; + break; case 'v': verbose = 1; break; @@ -224,7 +383,7 @@ main(int argc, char *argv[]) argc -= optind; argv += optind; - if (do_listdumpdev) { + if (list) { listdumpdev(); exit(EX_OK); } @@ -232,72 +391,104 @@ main(int argc, char *argv[]) if (argc != 1) usage(); - enable = (strcmp(argv[0], "off") != 0); #ifndef HAVE_CRYPTO - if (pubkeyfile != NULL) { - enable = false; - warnx("Unable to use the public key. Recompile dumpon with OpenSSL support."); - } + if (pubkeyfile != NULL) + errx("Unable to use the public key. Recompile dumpon with OpenSSL support."); #endif - if (enable) { - char tmp[PATH_MAX]; - char *dumpdev; + if (server != NULL && client != NULL) { + enable = true; + dev = _PATH_NETDUMP; + netdump = true; + kdap = &ndconf.ndc_kda; + } else if (server == NULL && client == NULL && argc > 0) { + enable = strcmp(argv[0], "off") != 0; + dev = enable ? argv[0] : _PATH_DEVNULL; + netdump = false; + kdap = &_kda; + } else + usage(); - if (strncmp(argv[0], _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0) { - dumpdev = argv[0]; - } else { - i = snprintf(tmp, PATH_MAX, "%s%s", _PATH_DEV, argv[0]); - if (i < 0) { - err(EX_OSERR, "%s", argv[0]); - } else if (i >= PATH_MAX) { - errno = EINVAL; - err(EX_DATAERR, "%s", argv[0]); - } - dumpdev = tmp; - } - fd = open(dumpdev, O_RDONLY); - if (fd < 0) - err(EX_OSFILE, "%s", dumpdev); + fd = opendumpdev(dev, dumpdev); + if (!netdump && !gzip) + check_size(fd, dumpdev); - if (!gzip && !zstd) - check_size(fd, dumpdev); + bzero(kdap, sizeof(*kdap)); + kdap->kda_enable = 0; + if (ioctl(fd, DIOCSKERNELDUMP, kdap) != 0) + err(EX_OSERR, "ioctl(DIOCSKERNELDUMP)"); + if (!enable) + exit(EX_OK); - bzero(&kda, sizeof(kda)); - kda.kda_enable = 0; - i = ioctl(fd, DIOCSKERNELDUMP, &kda); - explicit_bzero(&kda, sizeof(kda)); + explicit_bzero(kdap, sizeof(*kdap)); + kdap->kda_enable = 1; + kdap->kda_compression = KERNELDUMP_COMP_NONE; + if (zstd) + kdap->kda_compression = KERNELDUMP_COMP_ZSTD; + else if (gzip) + kdap->kda_compression = KERNELDUMP_COMP_GZIP; + if (netdump) { + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + hints.ai_protocol = IPPROTO_UDP; + res = NULL; + error = getaddrinfo(server, NULL, &hints, &res); + if (error != 0) + err(1, "%s", gai_strerror(error)); + if (res == NULL) + errx(1, "failed to resolve '%s'", server); + server = inet_ntoa( + ((struct sockaddr_in *)(void *)res->ai_addr)->sin_addr); + freeaddrinfo(res); + + if (strlcpy(ndconf.ndc_iface, argv[0], + sizeof(ndconf.ndc_iface)) >= sizeof(ndconf.ndc_iface)) + errx(EX_USAGE, "invalid interface name '%s'", argv[0]); + if (inet_aton(server, &ndconf.ndc_server) == 0) + errx(EX_USAGE, "invalid server address '%s'", server); + if (inet_aton(client, &ndconf.ndc_client) == 0) + errx(EX_USAGE, "invalid client address '%s'", client); + + if (gateway == NULL) + gateway = server; + else if (strcmp(gateway, "default") == 0 && + (gateway = find_gateway(argv[0])) == NULL) + errx(EX_NOHOST, + "failed to look up next-hop router for %s", server); + if (inet_aton(gateway, &ndconf.ndc_gateway) == 0) + errx(EX_USAGE, "invalid gateway address '%s'", gateway); + #ifdef HAVE_CRYPTO if (pubkeyfile != NULL) - genkey(pubkeyfile, &kda); + genkey(pubkeyfile, kdap); #endif - - kda.kda_enable = 1; - kda.kda_compression = KERNELDUMP_COMP_NONE; - if (zstd) - kda.kda_compression = KERNELDUMP_COMP_ZSTD; - else if (gzip) - kda.kda_compression = KERNELDUMP_COMP_GZIP; - i = ioctl(fd, DIOCSKERNELDUMP, &kda); - explicit_bzero(kda.kda_encryptedkey, kda.kda_encryptedkeysize); - free(kda.kda_encryptedkey); - explicit_bzero(&kda, sizeof(kda)); - if (i == 0 && verbose) - printf("kernel dumps on %s\n", dumpdev); + error = ioctl(fd, NETDUMPSCONF, &ndconf); + if (error != 0) + error = errno; + explicit_bzero(kdap->kda_encryptedkey, + kdap->kda_encryptedkeysize); + free(kdap->kda_encryptedkey); + explicit_bzero(kdap, sizeof(*kdap)); + if (error != 0) + errc(EX_OSERR, error, "ioctl(NETDUMPSCONF)"); } else { - fd = open(_PATH_DEVNULL, O_RDONLY); - if (fd < 0) - err(EX_OSFILE, "%s", _PATH_DEVNULL); - - kda.kda_enable = 0; - i = ioctl(fd, DIOCSKERNELDUMP, &kda); - explicit_bzero(&kda, sizeof(kda)); - if (i == 0 && verbose) - printf("kernel dumps disabled\n"); +#ifdef HAVE_CRYPTO + if (pubkeyfile != NULL) + genkey(pubkeyfile, kdap); +#endif + error = ioctl(fd, DIOCSKERNELDUMP, kdap); + if (error != 0) + error = errno; + explicit_bzero(kdap->kda_encryptedkey, + kdap->kda_encryptedkeysize); + free(kdap->kda_encryptedkey); + explicit_bzero(kdap, sizeof(*kdap)); + if (error != 0) + errc(EX_OSERR, error, "ioctl(DIOCSKERNELDUMP)"); } - if (i < 0) - err(EX_OSERR, "ioctl(DIOCSKERNELDUMP)"); + if (verbose) + printf("kernel dumps on %s\n", dumpdev); - exit (0); + exit(EX_OK); } From owner-svn-src-head@freebsd.org Sun May 6 00:43:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AEF57FC1209; Sun, 6 May 2018 00:43:47 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 64B3573AEF; Sun, 6 May 2018 00:43:47 +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 5FB35251B9; Sun, 6 May 2018 00:43:47 +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 w460hl39084439; Sun, 6 May 2018 00:43:47 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460hlpX084438; Sun, 6 May 2018 00:43:47 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060043.w460hlpX084438@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:43:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333285 - head/sys/dev/alc X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/alc X-SVN-Commit-Revision: 333285 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:43:47 -0000 Author: markj Date: Sun May 6 00:43:46 2018 New Revision: 333285 URL: https://svnweb.freebsd.org/changeset/base/333285 Log: Add netdump hooks to alc(4). Tested with an AR8162. Reviewed by: julian, sbruno MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15255 Modified: head/sys/dev/alc/if_alc.c Modified: head/sys/dev/alc/if_alc.c ============================================================================== --- head/sys/dev/alc/if_alc.c Sun May 6 00:42:30 2018 (r333284) +++ head/sys/dev/alc/if_alc.c Sun May 6 00:43:46 2018 (r333285) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -199,6 +200,7 @@ static int alc_shutdown(device_t); static void alc_start(struct ifnet *); static void alc_start_locked(struct ifnet *); static void alc_start_queue(struct alc_softc *); +static void alc_start_tx(struct alc_softc *); static void alc_stats_clear(struct alc_softc *); static void alc_stats_update(struct alc_softc *); static void alc_stop(struct alc_softc *); @@ -213,6 +215,8 @@ static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int, static int sysctl_hw_alc_proc_limit(SYSCTL_HANDLER_ARGS); static int sysctl_hw_alc_int_mod(SYSCTL_HANDLER_ARGS); +NETDUMP_DEFINE(alc); + static device_method_t alc_methods[] = { /* Device interface. */ DEVMETHOD(device_probe, alc_probe), @@ -227,7 +231,7 @@ static device_method_t alc_methods[] = { DEVMETHOD(miibus_writereg, alc_miibus_writereg), DEVMETHOD(miibus_statchg, alc_miibus_statchg), - { NULL, NULL } + DEVMETHOD_END }; static driver_t alc_driver = { @@ -1651,6 +1655,9 @@ alc_attach(device_t dev) goto fail; } + /* Attach driver netdump methods. */ + NETDUMP_SET(ifp, alc); + fail: if (error != 0) alc_detach(dev); @@ -2974,25 +2981,31 @@ alc_start_locked(struct ifnet *ifp) ETHER_BPF_MTAP(ifp, m_head); } - if (enq > 0) { - /* Sync descriptors. */ - bus_dmamap_sync(sc->alc_cdata.alc_tx_ring_tag, - sc->alc_cdata.alc_tx_ring_map, BUS_DMASYNC_PREWRITE); - /* Kick. Assume we're using normal Tx priority queue. */ - if ((sc->alc_flags & ALC_FLAG_AR816X_FAMILY) != 0) - CSR_WRITE_2(sc, ALC_MBOX_TD_PRI0_PROD_IDX, - (uint16_t)sc->alc_cdata.alc_tx_prod); - else - CSR_WRITE_4(sc, ALC_MBOX_TD_PROD_IDX, - (sc->alc_cdata.alc_tx_prod << - MBOX_TD_PROD_LO_IDX_SHIFT) & - MBOX_TD_PROD_LO_IDX_MASK); - /* Set a timeout in case the chip goes out to lunch. */ - sc->alc_watchdog_timer = ALC_TX_TIMEOUT; - } + if (enq > 0) + alc_start_tx(sc); } static void +alc_start_tx(struct alc_softc *sc) +{ + + /* Sync descriptors. */ + bus_dmamap_sync(sc->alc_cdata.alc_tx_ring_tag, + sc->alc_cdata.alc_tx_ring_map, BUS_DMASYNC_PREWRITE); + /* Kick. Assume we're using normal Tx priority queue. */ + if ((sc->alc_flags & ALC_FLAG_AR816X_FAMILY) != 0) + CSR_WRITE_2(sc, ALC_MBOX_TD_PRI0_PROD_IDX, + (uint16_t)sc->alc_cdata.alc_tx_prod); + else + CSR_WRITE_4(sc, ALC_MBOX_TD_PROD_IDX, + (sc->alc_cdata.alc_tx_prod << + MBOX_TD_PROD_LO_IDX_SHIFT) & + MBOX_TD_PROD_LO_IDX_MASK); + /* Set a timeout in case the chip goes out to lunch. */ + sc->alc_watchdog_timer = ALC_TX_TIMEOUT; +} + +static void alc_watchdog(struct alc_softc *sc) { struct ifnet *ifp; @@ -4642,3 +4655,54 @@ sysctl_hw_alc_int_mod(SYSCTL_HANDLER_ARGS) return (sysctl_int_range(oidp, arg1, arg2, req, ALC_IM_TIMER_MIN, ALC_IM_TIMER_MAX)); } + +#ifdef NETDUMP +static void +alc_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) +{ + struct alc_softc *sc; + + sc = if_getsoftc(ifp); + KASSERT(sc->alc_buf_size <= MCLBYTES, ("incorrect cluster size")); + + *nrxr = ALC_RX_RING_CNT; + *ncl = NETDUMP_MAX_IN_FLIGHT; + *clsize = MCLBYTES; +} + +static void +alc_netdump_event(struct ifnet *ifp __unused, enum netdump_ev event __unused) +{ +} + +static int +alc_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct alc_softc *sc; + int error; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + error = alc_encap(sc, &m); + if (error == 0) + alc_start_tx(sc); + return (error); +} + +static int +alc_netdump_poll(struct ifnet *ifp, int count) +{ + struct alc_softc *sc; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + alc_txeof(sc); + return (alc_rxintr(sc, count)); +} +#endif /* NETDUMP */ From owner-svn-src-head@freebsd.org Sun May 6 00:45:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08A21FC139E; Sun, 6 May 2018 00:45: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AF10073D17; Sun, 6 May 2018 00:45:41 +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 AA021251C8; Sun, 6 May 2018 00:45: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 w460jfnQ084586; Sun, 6 May 2018 00:45:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460jfFg084585; Sun, 6 May 2018 00:45:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060045.w460jfFg084585@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:45:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333286 - head/sys/dev/bge X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/bge X-SVN-Commit-Revision: 333286 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:45:42 -0000 Author: markj Date: Sun May 6 00:45:41 2018 New Revision: 333286 URL: https://svnweb.freebsd.org/changeset/base/333286 Log: Add netdump hooks to bge(4). Tested with a NetXtreme BCM5727 adapter. Reviewed by: julian MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15256 Modified: head/sys/dev/bge/if_bge.c Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Sun May 6 00:43:46 2018 (r333285) +++ head/sys/dev/bge/if_bge.c Sun May 6 00:45:41 2018 (r333286) @@ -100,6 +100,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -426,8 +427,9 @@ static int bge_encap(struct bge_softc *, struct mbuf * static void bge_intr(void *); static int bge_msi_intr(void *); static void bge_intr_task(void *, int); -static void bge_start_locked(if_t); static void bge_start(if_t); +static void bge_start_locked(if_t); +static void bge_start_tx(struct bge_softc *, uint32_t); static int bge_ioctl(if_t, u_long, caddr_t); static void bge_init_locked(struct bge_softc *); static void bge_init(void *); @@ -517,6 +519,8 @@ static void bge_add_sysctl_stats(struct bge_softc *, s struct sysctl_oid_list *); static int bge_sysctl_stats(SYSCTL_HANDLER_ARGS); +NETDUMP_DEFINE(bge); + static device_method_t bge_methods[] = { /* Device interface */ DEVMETHOD(device_probe, bge_probe), @@ -3941,8 +3945,12 @@ again: if (error) { ether_ifdetach(ifp); device_printf(sc->bge_dev, "couldn't set up irq\n"); + goto fail; } + /* Attach driver netdump methods. */ + NETDUMP_SET(ifp, bge); + fail: if (error) bge_detach(dev); @@ -5389,22 +5397,26 @@ bge_start_locked(if_t ifp) if_bpfmtap(ifp, m_head); } - if (count > 0) { - bus_dmamap_sync(sc->bge_cdata.bge_tx_ring_tag, - sc->bge_cdata.bge_tx_ring_map, BUS_DMASYNC_PREWRITE); - /* Transmit. */ + if (count > 0) + bge_start_tx(sc, prodidx); +} + +static void +bge_start_tx(struct bge_softc *sc, uint32_t prodidx) +{ + + bus_dmamap_sync(sc->bge_cdata.bge_tx_ring_tag, + sc->bge_cdata.bge_tx_ring_map, BUS_DMASYNC_PREWRITE); + /* Transmit. */ + bge_writembx(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx); + /* 5700 b2 errata */ + if (sc->bge_chiprev == BGE_CHIPREV_5700_BX) bge_writembx(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx); - /* 5700 b2 errata */ - if (sc->bge_chiprev == BGE_CHIPREV_5700_BX) - bge_writembx(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx); - sc->bge_tx_prodidx = prodidx; + sc->bge_tx_prodidx = prodidx; - /* - * Set a timeout in case the chip goes out to lunch. - */ - sc->bge_timer = BGE_TX_TIMEOUT; - } + /* Set a timeout in case the chip goes out to lunch. */ + sc->bge_timer = BGE_TX_TIMEOUT; } /* @@ -6796,3 +6808,74 @@ bge_get_counter(if_t ifp, ift_counter cnt) return (if_get_counter_default(ifp, cnt)); } } + +#ifdef NETDUMP +static void +bge_netdump_init(if_t ifp, int *nrxr, int *ncl, int *clsize) +{ + struct bge_softc *sc; + + sc = if_getsoftc(ifp); + BGE_LOCK(sc); + *nrxr = sc->bge_return_ring_cnt; + *ncl = NETDUMP_MAX_IN_FLIGHT; + if ((sc->bge_flags & BGE_FLAG_JUMBO_STD) != 0 && + (if_getmtu(sc->bge_ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN + + ETHER_VLAN_ENCAP_LEN > (MCLBYTES - ETHER_ALIGN))) + *clsize = MJUM9BYTES; + else + *clsize = MCLBYTES; + BGE_UNLOCK(sc); +} + +static void +bge_netdump_event(if_t ifp __unused, enum netdump_ev event __unused) +{ +} + +static int +bge_netdump_transmit(if_t ifp, struct mbuf *m) +{ + struct bge_softc *sc; + uint32_t prodidx; + int error; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (1); + + prodidx = sc->bge_tx_prodidx; + error = bge_encap(sc, &m, &prodidx); + if (error == 0) + bge_start_tx(sc, prodidx); + return (error); +} + +static int +bge_netdump_poll(if_t ifp, int count) +{ + struct bge_softc *sc; + uint32_t rx_prod, tx_cons; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (1); + + bus_dmamap_sync(sc->bge_cdata.bge_status_tag, + sc->bge_cdata.bge_status_map, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + + rx_prod = sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx; + tx_cons = sc->bge_ldata.bge_status_block->bge_idx[0].bge_tx_cons_idx; + + bus_dmamap_sync(sc->bge_cdata.bge_status_tag, + sc->bge_cdata.bge_status_map, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); + + (void)bge_rxeof(sc, rx_prod, 0); + bge_txeof(sc, tx_cons); + return (0); +} +#endif /* NETDUMP */ From owner-svn-src-head@freebsd.org Sun May 6 00:47:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52BD0FC14ED; Sun, 6 May 2018 00:47:40 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 01EB674EEB; Sun, 6 May 2018 00:47:40 +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 F0E17251DB; Sun, 6 May 2018 00:47:39 +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 w460ldRk084802; Sun, 6 May 2018 00:47:39 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460ldT7084800; Sun, 6 May 2018 00:47:39 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060047.w460ldT7084800@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:47:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333287 - head/sys/dev/bxe X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/bxe X-SVN-Commit-Revision: 333287 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:47:40 -0000 Author: markj Date: Sun May 6 00:47:39 2018 New Revision: 333287 URL: https://svnweb.freebsd.org/changeset/base/333287 Log: Add netdump support to bxe(4). Tested with a NetXtreme II BCM57810 adapter. Reviewed by: davidcs MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15257 Modified: head/sys/dev/bxe/bxe.c head/sys/dev/bxe/bxe.h Modified: head/sys/dev/bxe/bxe.c ============================================================================== --- head/sys/dev/bxe/bxe.c Sun May 6 00:45:41 2018 (r333286) +++ head/sys/dev/bxe/bxe.c Sun May 6 00:47:39 2018 (r333287) @@ -236,6 +236,8 @@ MODULE_DEPEND(bxe, pci, 1, 1, 1); MODULE_DEPEND(bxe, ether, 1, 1, 1); DRIVER_MODULE(bxe, pci, bxe_driver, bxe_devclass, 0, 0); +NETDUMP_DEFINE(bxe); + /* resources needed for unloading a previously loaded device */ #define BXE_PREV_WAIT_NEEDED 1 @@ -12789,6 +12791,9 @@ bxe_init_ifnet(struct bxe_softc *sc) /* attach to the Ethernet interface list */ ether_ifattach(ifp, sc->link_params.mac_addr); + /* Attach driver netdump methods. */ + NETDUMP_SET(ifp, bxe); + return (0); } @@ -19186,3 +19191,57 @@ bxe_eioctl(struct cdev *dev, u_long cmd, caddr_t data, return (rval); } + +#ifdef NETDUMP +static void +bxe_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) +{ + struct bxe_softc *sc; + + sc = if_getsoftc(ifp); + BXE_CORE_LOCK(sc); + *nrxr = sc->num_queues; + *ncl = NETDUMP_MAX_IN_FLIGHT; + *clsize = sc->fp[0].mbuf_alloc_size; + BXE_CORE_UNLOCK(sc); +} + +static void +bxe_netdump_event(struct ifnet *ifp __unused, enum netdump_ev event __unused) +{ +} + +static int +bxe_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct bxe_softc *sc; + int error; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING || !sc->link_vars.link_up) + return (ENOENT); + + error = bxe_tx_encap(&sc->fp[0], &m); + if (error != 0 && m != NULL) + m_freem(m); + return (error); +} + +static int +bxe_netdump_poll(struct ifnet *ifp, int count) +{ + struct bxe_softc *sc; + int i; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0 || + !sc->link_vars.link_up) + return (ENOENT); + + for (i = 0; i < sc->num_queues; i++) + (void)bxe_rxeof(sc, &sc->fp[0]); + (void)bxe_txeof(sc, &sc->fp[0]); + return (0); +} +#endif /* NETDUMP */ Modified: head/sys/dev/bxe/bxe.h ============================================================================== --- head/sys/dev/bxe/bxe.h Sun May 6 00:45:41 2018 (r333286) +++ head/sys/dev/bxe/bxe.h Sun May 6 00:47:39 2018 (r333287) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include From owner-svn-src-head@freebsd.org Sun May 6 00:48:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0379FC157A; Sun, 6 May 2018 00:48:44 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 76D6375952; Sun, 6 May 2018 00:48: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 71E78251DE; Sun, 6 May 2018 00:48: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 w460mi9V084888; Sun, 6 May 2018 00:48:44 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460miP6084885; Sun, 6 May 2018 00:48:44 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060048.w460miP6084885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:48:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333288 - head/sys/dev/cxgb X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/cxgb X-SVN-Commit-Revision: 333288 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:48:45 -0000 Author: markj Date: Sun May 6 00:48:43 2018 New Revision: 333288 URL: https://svnweb.freebsd.org/changeset/base/333288 Log: Add netdump support to cxgb(4). Tested with a T320 adapter. Reviewed by: np MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15258 Modified: head/sys/dev/cxgb/cxgb_adapter.h head/sys/dev/cxgb/cxgb_main.c head/sys/dev/cxgb/cxgb_sge.c Modified: head/sys/dev/cxgb/cxgb_adapter.h ============================================================================== --- head/sys/dev/cxgb/cxgb_adapter.h Sun May 6 00:47:39 2018 (r333287) +++ head/sys/dev/cxgb/cxgb_adapter.h Sun May 6 00:48:43 2018 (r333288) @@ -576,4 +576,11 @@ int cxgb_transmit(struct ifnet *ifp, struct mbuf *m); void cxgb_qflush(struct ifnet *ifp); void t3_iterate(void (*)(struct adapter *, void *), void *); void cxgb_refresh_stats(struct port_info *); + +#ifdef NETDUMP +int cxgb_netdump_encap(struct sge_qset *qs, struct mbuf **m); +int cxgb_netdump_poll_rx(adapter_t *adap, struct sge_qset *qs); +int cxgb_netdump_poll_tx(struct sge_qset *qs); +#endif + #endif Modified: head/sys/dev/cxgb/cxgb_main.c ============================================================================== --- head/sys/dev/cxgb/cxgb_main.c Sun May 6 00:47:39 2018 (r333287) +++ head/sys/dev/cxgb/cxgb_main.c Sun May 6 00:48:43 2018 (r333288) @@ -74,6 +74,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -191,6 +192,8 @@ static devclass_t cxgb_port_devclass; DRIVER_MODULE(cxgb, cxgbc, cxgb_port_driver, cxgb_port_devclass, 0, 0); MODULE_VERSION(cxgb, 1); +NETDUMP_DEFINE(cxgb); + static struct mtx t3_list_lock; static SLIST_HEAD(, adapter) t3_list; #ifdef TCP_OFFLOAD @@ -1045,6 +1048,9 @@ cxgb_port_attach(device_t dev) ether_ifattach(ifp, p->hw_addr); + /* Attach driver netdump methods. */ + NETDUMP_SET(ifp, cxgb); + #ifdef DEFAULT_JUMBO if (sc->params.nports <= 2) ifp->if_mtu = ETHERMTU_JUMBO; @@ -3578,3 +3584,72 @@ cxgbc_mod_event(module_t mod, int cmd, void *arg) return (rc); } + +#ifdef NETDUMP +static void +cxgb_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) +{ + struct port_info *pi; + adapter_t *adap; + + pi = if_getsoftc(ifp); + adap = pi->adapter; + ADAPTER_LOCK(adap); + *nrxr = SGE_QSETS; + *ncl = adap->sge.qs[0].fl[1].size; + *clsize = adap->sge.qs[0].fl[1].buf_size; + ADAPTER_UNLOCK(adap); +} + +static void +cxgb_netdump_event(struct ifnet *ifp, enum netdump_ev event) +{ + struct port_info *pi; + struct sge_qset *qs; + int i; + + pi = if_getsoftc(ifp); + if (event == NETDUMP_START) + for (i = 0; i < SGE_QSETS; i++) { + qs = &pi->adapter->sge.qs[i]; + + /* Need to reinit after netdump_mbuf_dump(). */ + qs->fl[0].zone = zone_pack; + qs->fl[1].zone = zone_clust; + qs->lro.enabled = 0; + } +} + +static int +cxgb_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct port_info *pi; + struct sge_qset *qs; + + pi = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (ENOENT); + + qs = &pi->adapter->sge.qs[pi->first_qset]; + return (cxgb_netdump_encap(qs, &m)); +} + +static int +cxgb_netdump_poll(struct ifnet *ifp, int count) +{ + struct port_info *pi; + adapter_t *adap; + int i; + + pi = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) + return (ENOENT); + + adap = pi->adapter; + for (i = 0; i < SGE_QSETS; i++) + (void)cxgb_netdump_poll_rx(adap, &adap->sge.qs[i]); + (void)cxgb_netdump_poll_tx(&adap->sge.qs[pi->first_qset]); + return (0); +} +#endif /* NETDUMP */ Modified: head/sys/dev/cxgb/cxgb_sge.c ============================================================================== --- head/sys/dev/cxgb/cxgb_sge.c Sun May 6 00:47:39 2018 (r333287) +++ head/sys/dev/cxgb/cxgb_sge.c Sun May 6 00:48:43 2018 (r333288) @@ -390,6 +390,15 @@ reclaim_completed_tx(struct sge_qset *qs, int reclaim_ return (reclaim); } +#ifdef NETDUMP +int +cxgb_netdump_poll_tx(struct sge_qset *qs) +{ + + return (reclaim_completed_tx(qs, TX_RECLAIM_MAX, TXQ_ETH)); +} +#endif + /** * should_restart_tx - are there enough resources to restart a Tx queue? * @q: the Tx queue @@ -1586,6 +1595,23 @@ t3_encap(struct sge_qset *qs, struct mbuf **m) return (0); } +#ifdef NETDUMP +int +cxgb_netdump_encap(struct sge_qset *qs, struct mbuf **m) +{ + int error; + + error = t3_encap(qs, m); + if (error == 0) + check_ring_tx_db(qs->port->adapter, &qs->txq[TXQ_ETH], 1); + else if (*m != NULL) { + m_freem(*m); + *m = NULL; + } + return (error); +} +#endif + void cxgb_tx_watchdog(void *arg) { @@ -3014,6 +3040,14 @@ process_responses_gts(adapter_t *adap, struct sge_rspq return (work); } +#ifdef NETDUMP +int +cxgb_netdump_poll_rx(adapter_t *adap, struct sge_qset *qs) +{ + + return (process_responses_gts(adap, &qs->rspq)); +} +#endif /* * Interrupt handler for legacy INTx interrupts for T3B-based cards. From owner-svn-src-head@freebsd.org Sun May 6 00:52:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ADE15FC18DC; Sun, 6 May 2018 00:52:18 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 63F6376C01; Sun, 6 May 2018 00:52:18 +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 5ED0B2535A; Sun, 6 May 2018 00:52:18 +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 w460qIcV086673; Sun, 6 May 2018 00:52:18 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460qIPL086672; Sun, 6 May 2018 00:52:18 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060052.w460qIPL086672@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:52:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333289 - head/sys/dev/re X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/re X-SVN-Commit-Revision: 333289 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:52:19 -0000 Author: markj Date: Sun May 6 00:52:17 2018 New Revision: 333289 URL: https://svnweb.freebsd.org/changeset/base/333289 Log: Add netdump support to re(4). Tested with a RealTek 8101E adapter. Reviewed by: sbruno MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15260 Modified: head/sys/dev/re/if_re.c Modified: head/sys/dev/re/if_re.c ============================================================================== --- head/sys/dev/re/if_re.c Sun May 6 00:48:43 2018 (r333288) +++ head/sys/dev/re/if_re.c Sun May 6 00:52:17 2018 (r333289) @@ -139,6 +139,8 @@ __FBSDID("$FreeBSD$"); #include +#include + #include #include #include @@ -279,6 +281,7 @@ static void re_tick (void *); static void re_int_task (void *, int); static void re_start (struct ifnet *); static void re_start_locked (struct ifnet *); +static void re_start_tx (struct rl_softc *); static int re_ioctl (struct ifnet *, u_long, caddr_t); static void re_init (void *); static void re_init_locked (struct rl_softc *); @@ -307,6 +310,8 @@ static void re_setwol (struct rl_softc *); static void re_clrwol (struct rl_softc *); static void re_set_linkspeed (struct rl_softc *); +NETDUMP_DEFINE(re); + #ifdef DEV_NETMAP /* see ixgbe.c for details */ #include MODULE_DEPEND(re, netmap, 1, 1, 1); @@ -1737,8 +1742,11 @@ re_attach(device_t dev) if (error) { device_printf(dev, "couldn't set up irq\n"); ether_ifdetach(ifp); + goto fail; } + NETDUMP_SET(ifp, re); + fail: if (error) re_detach(dev); @@ -2981,8 +2989,14 @@ re_start_locked(struct ifnet *ifp) return; } - /* Flush the TX descriptors */ + re_start_tx(sc); +} +static void +re_start_tx(struct rl_softc *sc) +{ + + /* Flush the TX descriptors */ bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag, sc->rl_ldata.rl_tx_list_map, BUS_DMASYNC_PREWRITE|BUS_DMASYNC_PREREAD); @@ -4078,3 +4092,59 @@ sysctl_hw_re_int_mod(SYSCTL_HANDLER_ARGS) return (sysctl_int_range(oidp, arg1, arg2, req, RL_TIMER_MIN, RL_TIMER_MAX)); } + +#ifdef NETDUMP +static void +re_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) +{ + struct rl_softc *sc; + + sc = if_getsoftc(ifp); + RL_LOCK(sc); + *nrxr = sc->rl_ldata.rl_rx_desc_cnt; + *ncl = NETDUMP_MAX_IN_FLIGHT; + *clsize = (ifp->if_mtu > RL_MTU && + (sc->rl_flags & RL_FLAG_JUMBOV2) != 0) ? MJUM9BYTES : MCLBYTES; + RL_UNLOCK(sc); +} + +static void +re_netdump_event(struct ifnet *ifp __unused, enum netdump_ev event __unused) +{ +} + +static int +re_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct rl_softc *sc; + int error; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING || (sc->rl_flags & RL_FLAG_LINK) == 0) + return (EBUSY); + + error = re_encap(sc, &m); + if (error == 0) + re_start_tx(sc); + return (error); +} + +static int +re_netdump_poll(struct ifnet *ifp, int count) +{ + struct rl_softc *sc; + int error; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0 || + (sc->rl_flags & RL_FLAG_LINK) == 0) + return (EBUSY); + + re_txeof(sc); + error = re_rxeof(sc, NULL); + if (error != 0 && error != EAGAIN) + return (error); + return (0); +} +#endif /* NETDUMP */ From owner-svn-src-head@freebsd.org Sun May 6 00:53:53 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0BB6FC19BF; Sun, 6 May 2018 00:53:53 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49D3876D89; Sun, 6 May 2018 00:53:53 +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 4134025372; Sun, 6 May 2018 00:53:53 +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 w460rrMT089936; Sun, 6 May 2018 00:53:53 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460rruv089935; Sun, 6 May 2018 00:53:53 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060053.w460rruv089935@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:53:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333290 - head/sys/dev/virtio/network X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/virtio/network X-SVN-Commit-Revision: 333290 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:53:53 -0000 Author: markj Date: Sun May 6 00:53:52 2018 New Revision: 333290 URL: https://svnweb.freebsd.org/changeset/base/333290 Log: Add netdump support to vtnet(4). Tested with bhyve. Reviewed by: bryanv, julian MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15261 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 Sun May 6 00:52:17 2018 (r333289) +++ head/sys/dev/virtio/network/if_vtnet.c Sun May 6 00:53:52 2018 (r333290) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -143,7 +144,7 @@ static struct mbuf * struct virtio_net_hdr *); static int vtnet_txq_enqueue_buf(struct vtnet_txq *, struct mbuf **, struct vtnet_tx_header *); -static int vtnet_txq_encap(struct vtnet_txq *, struct mbuf **); +static int vtnet_txq_encap(struct vtnet_txq *, struct mbuf **, int); #ifdef VTNET_LEGACY_TX static void vtnet_start_locked(struct vtnet_txq *, struct ifnet *); static void vtnet_start(struct ifnet *); @@ -231,6 +232,8 @@ static void vtnet_disable_interrupts(struct vtnet_soft static int vtnet_tunable_int(struct vtnet_softc *, const char *, int); +NETDUMP_DEFINE(vtnet); + /* Tunables. */ static SYSCTL_NODE(_hw, OID_AUTO, vtnet, CTLFLAG_RD, 0, "VNET driver parameters"); static int vtnet_csum_disable = 0; @@ -1026,6 +1029,8 @@ vtnet_setup_interface(struct vtnet_softc *sc) vtnet_set_rx_process_limit(sc); vtnet_set_tx_intr_threshold(sc); + NETDUMP_SET(ifp, vtnet); + return (0); } @@ -2176,7 +2181,7 @@ fail: } static int -vtnet_txq_encap(struct vtnet_txq *txq, struct mbuf **m_head) +vtnet_txq_encap(struct vtnet_txq *txq, struct mbuf **m_head, int flags) { struct vtnet_tx_header *txhdr; struct virtio_net_hdr *hdr; @@ -2186,7 +2191,7 @@ vtnet_txq_encap(struct vtnet_txq *txq, struct mbuf **m m = *m_head; M_ASSERTPKTHDR(m); - txhdr = uma_zalloc(vtnet_tx_header_zone, M_NOWAIT | M_ZERO); + txhdr = uma_zalloc(vtnet_tx_header_zone, flags | M_ZERO); if (txhdr == NULL) { m_freem(m); *m_head = NULL; @@ -2260,7 +2265,7 @@ again: if (m0 == NULL) break; - if (vtnet_txq_encap(txq, &m0) != 0) { + if (vtnet_txq_encap(txq, &m0, M_NOWAIT) != 0) { if (m0 != NULL) IFQ_DRV_PREPEND(&ifp->if_snd, m0); break; @@ -2337,7 +2342,7 @@ again: break; } - if (vtnet_txq_encap(txq, &m) != 0) { + if (vtnet_txq_encap(txq, &m, M_NOWAIT) != 0) { if (m != NULL) drbr_putback(ifp, br, m); else @@ -3976,3 +3981,69 @@ vtnet_tunable_int(struct vtnet_softc *sc, const char * return (def); } + +#ifdef NETDUMP +static void +vtnet_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) +{ + struct vtnet_softc *sc; + + sc = if_getsoftc(ifp); + + VTNET_CORE_LOCK(sc); + *nrxr = sc->vtnet_max_vq_pairs; + *ncl = NETDUMP_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, NETDUMP_MAX_IN_FLIGHT * 2); + uma_prealloc(vtnet_tx_header_zone, NETDUMP_MAX_IN_FLIGHT * 2); +} + +static void +vtnet_netdump_event(struct ifnet *ifp __unused, enum netdump_ev event __unused) +{ +} + +static int +vtnet_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct vtnet_softc *sc; + struct vtnet_txq *txq; + int error; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + txq = &sc->vtnet_txqs[0]; + error = vtnet_txq_encap(txq, &m, M_NOWAIT | M_USE_RESERVE); + if (error == 0) + (void)vtnet_txq_notify(txq); + return (error); +} + +static int +vtnet_netdump_poll(struct ifnet *ifp, int count) +{ + struct vtnet_softc *sc; + int i; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + (void)vtnet_txq_eof(&sc->vtnet_txqs[0]); + for (i = 0; i < sc->vtnet_max_vq_pairs; i++) + (void)vtnet_rxq_eof(&sc->vtnet_rxqs[i]); + return (0); +} +#endif /* NETDUMP */ From owner-svn-src-head@freebsd.org Sun May 6 00:57:53 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82BF4FC1B3C; Sun, 6 May 2018 00:57:53 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 327AD77A3E; Sun, 6 May 2018 00:57:53 +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 2D58325379; Sun, 6 May 2018 00:57:53 +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 w460vr2u090207; Sun, 6 May 2018 00:57:53 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w460vr4x090206; Sun, 6 May 2018 00:57:53 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805060057.w460vr4x090206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 6 May 2018 00:57:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333291 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333291 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 00:57:53 -0000 Author: markj Date: Sun May 6 00:57:52 2018 New Revision: 333291 URL: https://svnweb.freebsd.org/changeset/base/333291 Log: Add netdump support to iflib. em(4) and igb(4) were tested by me, and ixgbe(4) and bnxt(4) were tested by sbruno. Reviewed by: mmacy, shurd MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15262 Modified: head/sys/net/iflib.c Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Sun May 6 00:53:52 2018 (r333290) +++ head/sys/net/iflib.c Sun May 6 00:57:52 2018 (r333291) @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); #include #include - #include #include #include @@ -71,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -735,6 +735,8 @@ static void iflib_if_init_locked(if_ctx_t ctx); static struct mbuf * iflib_fixup_rx(struct mbuf *m); #endif +NETDUMP_DEFINE(iflib); + #ifdef DEV_NETMAP #include #include @@ -3381,7 +3383,7 @@ iflib_tx_desc_free(iflib_txq_t txq, int n) ifsd_map = txq->ift_sds.ifsd_map; do_prefetch = (txq->ift_ctx->ifc_flags & IFC_PREFETCH); - while (n--) { + while (n-- > 0) { if (do_prefetch) { prefetch(ifsd_m[(cidx + 3) & mask]); prefetch(ifsd_m[(cidx + 4) & mask]); @@ -4438,6 +4440,8 @@ iflib_device_register(device_t dev, void *sc, if_share } *ctxp = ctx; + NETDUMP_SET(ctx->ifc_ifp, iflib); + if_setgetcounterfn(ctx->ifc_ifp, iflib_if_get_counter); iflib_add_device_sysctl_post(ctx); ctx->ifc_flags |= IFC_INIT_DONE; @@ -6015,3 +6019,88 @@ iflib_fixup_rx(struct mbuf *m) return (n); } #endif + +#ifdef NETDUMP +static void +iflib_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) +{ + if_ctx_t ctx; + + ctx = if_getsoftc(ifp); + CTX_LOCK(ctx); + *nrxr = NRXQSETS(ctx); + *ncl = ctx->ifc_rxqs[0].ifr_fl->ifl_size; + *clsize = ctx->ifc_rxqs[0].ifr_fl->ifl_buf_size; + CTX_UNLOCK(ctx); +} + +static void +iflib_netdump_event(struct ifnet *ifp, enum netdump_ev event) +{ + if_ctx_t ctx; + if_softc_ctx_t scctx; + iflib_fl_t fl; + iflib_rxq_t rxq; + int i, j; + + ctx = if_getsoftc(ifp); + scctx = &ctx->ifc_softc_ctx; + + switch (event) { + case NETDUMP_START: + for (i = 0; i < scctx->isc_nrxqsets; i++) { + rxq = &ctx->ifc_rxqs[i]; + for (j = 0; j < rxq->ifr_nfl; j++) { + fl = rxq->ifr_fl; + fl->ifl_zone = m_getzone(fl->ifl_buf_size); + } + } + iflib_no_tx_batch = 1; + break; + default: + break; + } +} + +static int +iflib_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + if_ctx_t ctx; + iflib_txq_t txq; + int error; + + ctx = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + txq = &ctx->ifc_txqs[0]; + error = iflib_encap(txq, &m); + if (error == 0) + (void)iflib_txd_db_check(ctx, txq, true, txq->ift_in_use); + return (error); +} + +static int +iflib_netdump_poll(struct ifnet *ifp, int count) +{ + if_ctx_t ctx; + if_softc_ctx_t scctx; + iflib_txq_t txq; + int i; + + ctx = if_getsoftc(ifp); + scctx = &ctx->ifc_softc_ctx; + + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + txq = &ctx->ifc_txqs[0]; + (void)iflib_completed_tx_reclaim(txq, RECLAIM_THRESH(ctx)); + + for (i = 0; i < scctx->isc_nrxqsets; i++) + (void)iflib_rxeof(&ctx->ifc_rxqs[i], 16 /* XXX */); + return (0); +} +#endif /* NETDUMP */ From owner-svn-src-head@freebsd.org Sun May 6 06:33:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B8FEFCE3F5; Sun, 6 May 2018 06:33:10 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail108.syd.optusnet.com.au (mail108.syd.optusnet.com.au [211.29.132.59]) by mx1.freebsd.org (Postfix) with ESMTP id 957E27AAF5; Sun, 6 May 2018 06:33:07 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail108.syd.optusnet.com.au (Postfix) with ESMTPS id 4B2FA1A68D2; Sun, 6 May 2018 16:32:59 +1000 (AEST) Date: Sun, 6 May 2018 16:32:58 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mateusz Guzik cc: Bruce Evans , Conrad Meyer , Brooks Davis , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333240 - in head/sys: powerpc/powerpc sys In-Reply-To: Message-ID: <20180506123307.F1132@besplex.bde.org> References: <201805040400.w4440moH025057@repo.freebsd.org> <20180504155301.GA56280@spindle.one-eyed-alien.net> <20180505090954.X1307@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=VJytp5HX c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=NEAV23lmAAAA:8 a=6I5d2MoRAAAA:8 a=4YqHmCY2neY6Z2w3_wgA:9 a=L26oZMlYe06m1DHe:21 a=UIXw6Cqk_dryAM3I:21 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 06:33:10 -0000 On Sat, 5 May 2018, Mateusz Guzik wrote: > On Sat, May 5, 2018 at 2:38 AM, Bruce Evans wrote: > > I don't believe the claimed speeding of using the optimized bcopy() >> in cpu_fetch_sycall_args() on amd64 (r333241). This changes the copy >> size from a variable to 6*8 bytes. It is claimed to speed up getppid() >> from 7.31M/sec to 10.65M/sec on Skylake. But here it and other changes >> in the last week give a small pessimization for getpid() on Haswell >> at 4.08GHz: last week, 100M getpid()'s took 8.27 seconds (12.09M/sec). >> Now they take 8.30 seconds (12.05M/sec). (This is with very old >> libraries, so there is no possibility of getpid() being done in >> userland.) 0.03 seconds is 122.4M cycles. So the speed difference >> is 1.224 cycles. Here the timing has a resolution of only 0.01 seconds, >> so most digits in this 1.224 are noise, but the difference is apparently >> a single cycle. I would have expected more like the "rep movs*" setup >> overhead of 25 cycles. >> > The mail below only deals with performance claims on amd64. I'll see about > gcc 4.2.1 vs 32-bit archs later and other claims later. Well, I saw about gcc-4.2.1 before because that is what I use. I now know the full details. r333240 (bcopy -> { __builtin_memmove or bcopy } in systm.h) had no significant effect for this benchmark since the bcopy() is still used and still has a variable size in cpu_fetch_syscall_args(). r333241 (regcnt -> 6 args in trap.c) gave a tiny pessimization for gcc on amd64 (also clang on i386?), by using one of the bugs in r333240. As explained in a previous reply, __builtin_memmove() is never inlined for gcc-4.2.1, but is converted to memmove(). memmove() is a wrapper for bcopy(), so must be slightly slower. It is less than 0.1% slower for this benchmark according to the times below (but the timing is not done carefully enough to distinguish this from noise). r333265 (memcpy -> __builtin_memcpy in systm.h) has no effect for the benchmark yet r333266 (bcopy -> memcpy in trap.c) gives a significant optimization for gcc too (at least on amd64), since r33265 make memcpy == __builtin_memcpy and __builtin_memcpy() actually works for gcc-4.2.1, at least on amd64. Timing for this: 10**8 getpid() calls (lowest of several samples with "cpuset -l 6 time ./getpid-test"): r333291: 6.67 real 1.21 user 5.46 sys ~r333241: 8.04 real 1.21 user 6.82 sys ~r333240: 8.03 real 1.22 user 6.81 sys where ~r33324[0-1] is r333291 with only trap.c changed to r33324[0-1]24. This benchmark is sensitive enough to show scheduler problems. I use SCHED_4BSD, and have mostly fixed it to work better than SCHED_ULE for makeworld and for micro-benchmarks like this, but not in this branch. I used cpuset -l N here since I didn't want to see any scheduler problems, but instead it showed them. Kernel threads bound to (fixed) CPUs interfere with scheduling of other threads. The test system has 4 cores with 2 threads/core. It has kernel threads bound to CPUs 0 and 4 taking about 1.5% of each of these CPUs (too much). This is shown by the ~r333240 benchmark taking about 0.12 seconds longer when restricted to either one of these CPUs. Even SCHED_4BSD knows to mostly avoid using these CPUs when not restricted (and there are other CPUs to spare). But it doesn't know to avoid using the CPUs 1 and 5 which share resouces with these CPUs. The benchmark takes about 0.01 seconds longer when restricted to either CPU 1 or 5, or less than that but with more variance when not restricted. I used cpuset -l 6 to avoid the variance. Further analysis of these times: 8.03 seconds at 4.08GHz is 327.6e8 cycles or 327.6 cycles/call 8.04 seconds at 4.08GHz is 328.0e8 cycles or 328.0 cycles/call 6.67 seconds at 4.08GHz is 272.1e8 cycles or 272.1 cycles/call The difference between 327.6 and 328 cycles is in the noise. This shows that the cost of memmove() calling bcopy() is in the noise. The difference between 328.0 and 272.1 cycles is 55.9 cycles. This is almost exactly the startup overhead of the 2 "rep movs"'s in bcopy(). > It is unclear to me whether you actually benchmarked syscall performance > before and after the change nor how you measured a slowdown in getpid. I just used my 30 year old 9-line benchmark for getpid() and edited it a bit to increase the number of iterations from 10**6 to 10**8. (I try to keep this benchmark invariant down to the binary level, but only have i386 binaries.) > This mail outlines what was tested and how. > > If you want, you can mail me off list and we can arrange so that you get > root access to the test box and can measure things yourself, boot your > own kernel and whatnot. > > My preferred way of measurement is with this suite: > https://github.com/antonblanchard/will-it-scale > > Unfortunately it requires a little bit of patching to setup. I prefer my own (mostly simpler) benchmarks. The difficulty is to control the configuration including remembering which system I'm running on when modifying configurations, even with only 1 server and 3 test systems here. > > Upside is cheap processing: there is a dedicated process/thread which > collects results once a second, other than that the processes/threads > running the test only do the test and bump the iteration counter. > getppid looks like this: > while (1) { > getppid(); > (*iterations)++; > } > > If you are interested in trying it out yourself without getting access to > the box in question I'm happy to provide a bundle which should be easily > compilable. Good for lots of different benchmarks, but I usually prefer deeper anlysis of a single benchmark. > Perhaps you are using the tool which can be found here: > tools/tools/syscall_timing > > It reports significantly lower numbers (even 20% less) because the test > loop itself has just more overhead. My results above show almost 25% overhead according to the user:sys ratio. This ratio has a high variance, but I almost trust it. For my makeworld benchmark, I recently rewrote the timing to not trust any of the times reported by getrusage(), but to use raw ticks. getrusage() still doesn't even report interrupt times, and a large amount of the sys time is now hidden in kernel thread times (interrupt time in user threads is closer to 0 than it used to be, thus less needed, since interrupt time is now mostly hidden in kernel ithreads or unavailable for "fast" interrupt handlers). getrusage() is especially inaccurate for the short-lived processes that are typical for compiling -- it has to convert up ticks into user and sys times, and for short-lived processes the tick counts are usually 0 and 0 or 1 and 0 when it is called in exit(). > For the first testing method results are as I wrote in the commit message, > with one caveat that I disabled frequency scaling and they went down a > little > bit (i.e. NOT boosted freq, but having it disabled makes things tad bit > slower; *boosted* numbers are significantly bigger but also not reliable). I almost always do that here. My Haswell system always throttles in Turbo mode, so Turbo mode gives a speedup of about 1% with high variance instead of the 10% that it capable of for short bursts. > The syscall path has long standing pessimization of using a function pointer > to get to the arguments. This fact was utilized to provide different > implementations switchable at runtime (thanks to kgdb -w and the set > command). That is actually a not very long standing pessimization. My server runs FreeBSD-~5.2 and doesn't have it. Its syscalls are about 30% faster on i386 IIRC. i386 syscalls are have more fundamental (hardware) overhead than amd64 syscalls, so other pessimizations are relatively larger. My i586(npx)-optimized bcopy() had problems with its function pointers. They cost a lot according in some benchmarks. Other benchmarks showed that the problem is more with general cache misses or just branch target cache misses. A couple of cycles for the indirection is nothing compared with "rep cmps" startup overhead. > The variants include: > 1. cpu_fetch_syscall_args > > This is the routine as present in head, i.e. with inlined memcpy > > 2. cpu_fetch_syscall_args_bcopy > > State prior to my changes, i.e. a bcopy call with a variable size > > 3. cpu_fetch_syscall_args_oolmemcpy > > Forced to not be inlined memcpy with a constant size, the code itself > is the same as for regular memcpy > > 4. cpu_fetch_syscall_args_oolmemcpy_es Some of these functions are not declared inline, but are automatically inlined by clang whether you want this or not. I don't want this or clang, so I use gcc and uses its options to turn off inlining (-fno-inline, which is needed to unbreak -Os, and then -Os, and -fno-inline-functions-called-once). Also -mtune-i386 for i386, to prevent generation of instructions that ddb can't disassemble. So the getpid() benchmark and some others run a bit slower for me. I mostly only care about the makeworld benchmark. This runs less than 1% slower without the fancy optimizations. Then I speed it up by 20% sys time or 2% real time with my own fancy optimizations. > Forced to not be inlined memcpy with a constant size, the code itself > was modified to utilize the 'Enhanced REP MOVSB/STOSB' bit present on > Intel cpus made past 2011 or so. This is not so easy to do without pessimizing systems which don't have fast-strings. But x86 memcpy() almost gives this unintentionally. It was supposed to be a simple fallback for cases where memcpy() wasn't inlined, back when memcpy() was automatically converted to __builtin_memcpy(). memcpy() was supposed to be used instead of bcopy() only for small fixed-size copying (other uses are style bugs). But the builtin is never used for -O0 and in some other cases (mostly when memcpy() should not have been used). The fallback handles these cases. It was intentionally simple and very optimized, and could have used "rep movsb" the be even simpler and inhibit the style bugs by running slower. But with fast-strings, the simpler version is also faster. > The code can be found here: https://people.freebsd.org/~mjg/copyhacks.diff > (note: declarations where not added, so WERROR= or similar is needed to > get this to compile) I have the following versions of copying functions which you don't want to find details of: static struct func funcs[] = { { copy0, "copy0", MOVS, }, { copy1, "copy1", "unroll *4", }, { copy2, "copy2", "unroll *4 prefetch", }, { copy3, "copy3", "unroll *16 i586-opt", }, { copy4, "copy4", "unroll *16 i586-opt prefetch", }, { copy5, "copy5", "unroll *16 i586-opx prefetch", }, { copy6, "copy6", "unroll *8 prefetch 4", }, { copy7, "copy7", "unroll 64 fp++", }, { copy8, "copy8", "unroll 128 fp i-prefetch", }, { copy9, "copy9", "unroll 64 fp reordered", }, { copyA, "copyA", "unroll 256 fp reordered++", }, { copyB, "copyB", "unroll 512 fp reordered++", }, { copyC, "copyC", "Terje cksum", }, #ifdef __i386__ { copyD, "copyD", "kernel bcopy (unroll 64 fp i-prefetch)", }, #endif { copyE, "copyE", "unroll 64 fp i-prefetch++", }, #ifdef __i386__ { copyF, "copyF", "new kernel bcopy (unroll 64 fp i-prefetch++)", }, #endif { copyG, "copyG", "memcpy ("MOVS")", }, { copyH, "copyH", "movntps", V_ATHSSE | V_SSE2, }, { copyI, "copyI", "movntps with prefetchnta", V_ATHSSE | V_SSE2, }, { copyJ, "copyJ", "movntps with block prefetch", V_ATHSSE | V_SSE2, }, { copyK, "copyK", "movq", V_MMX, }, { copyL, "copyL", "movq with prefetchnta", V_SSE, }, { copyM, "copyM", "movq with block prefetch", V_MMX, }, { copyN, "copyN", "movntq", V_ATHSSE, }, { copyO, "copyO", "movntq with prefetchnta", V_ATHSSE, }, { copyP, "copyP", "movntq with block prefetch", V_ATHSSE, }, { copyQ, "copyQ", "movdqa", V_SSE2, }, { copyR, "copyR", "movdqa with prefetchnta", V_SSE2, }, { copyS, "copyS", "movdqa with block prefetch", V_SSE2, }, { copyT, "copyT", "unroll *8 a64-opt", }, { copyU, "copyU", "unroll *8 a64-opt with prefetchnta", V_SSE, }, { copyV, "copyV", "unroll *8 a64-opt with block prefetch", }, { copyW, "copyW", "movnti", V_SSE2, }, { copyX, "copyX", "movnti with prefetchnta", V_SSE2, }, { copyY, "copyY", "movnti with block prefetch", V_SSE2, }, { copyZ, "copyZ", "i686_memcpy( movdqa)", V_SSE2, }, { copya, "copya", "~i686_memcpy (movaps)", V_SSE, }, }; These only attempt to be fast for large blocks (about 4K and up). They are all only and show the problem space for ~1996-2004: - movs* and bcopy were mediocre for CPUs in that era. They had too large a startup overhead for small sizes and didn't know enough about caches for large sizes. - various unrolling and fp versions are mostly for i586's (P1's, where it best methods had to manage the U and V pipes) - cksum while copying was once almost free, but was worst then and is even worse now - various methods using MMX and SSE were slightly better than copying through even 64-bit integer registers then, but not enough better to be worth using. Now AVX is enough better to be worth using, but all of these methods are unavilable in the kernel, except by switching the "fpu" state which has much worse startup overhead than "rep movs*". - methods using nontemporal stores were barely worth using. amd64 used them unconditionally for pagezero before you broke this for the systems that benefit from it and I restored conditional use. I use them for pagecopy and pagezero on AthlonXP. Now caches are better and these methods are not worth using (on the newer CPUs with better caches). - methods using explicit prefetching were barely worth using on AthlonXP, but not worth using as early as Athlon64. Things are much more complicated now, unless you drop support for all except the newest high-end (x86) CPUs (assume AVX). > Variants were switched at runtime like this: > # kgdb -w > (kgdb) set > elf64_freebsd_sysvec.sv_fetch_syscall_args=cpu_fetch_syscall_args_bcopy > > The frequency is fixed with: > > # sysctl dev.cpu.0.freq=2100 > > PTI was disabled (vm.pmap.pti=0 in loader.conf). I also have PTI disabled for amd64, and didn't downgrade i386 to the slow versions where PTI is not optional. > Now, quick numbers from will it scale: > (kgdb) set > elf64_freebsd_sysvec.sv_fetch_syscall_args=cpu_fetch_syscall_args_bcopy > > min:7017152 max:7017152 total:7017152 > min:7023115 max:7023115 total:7023115 > min:7018879 max:7018879 total:7018879 Cycle counts would be easier to understand. They scale fairly well between all X86's newer than a P6 (the number of pipelines and the throughputs are almost the same. Caches are most different but micro-benchamrks avoid cache effects too much). > ... > As you can see the original code (doing bcopy) is way slower than the > inlined variant. The slowness seems to be almost all in the setup overhead, not quite as I predicted. With the following trivial fix for bcopy: XX Index: support.S XX =================================================================== XX --- support.S (revision 333291) XX +++ support.S (working copy) XX @@ -135,8 +135,10 @@ XX movsq XX movq %rdx,%rcx XX andq $7,%rcx /* any bytes left? */ XX + je 666f XX rep XX movsb XX +666: XX POP_FRAME_POINTER XX ret XX and r333266 modified back to using real bcopy: XX Index: trap.c XX =================================================================== XX --- trap.c (revision 333291) XX +++ trap.c (working copy) XX @@ -908,7 +908,7 @@ XX error = 0; XX argp = &frame->tf_rdi; XX argp += reg; XX - memcpy(sa->args, argp, sizeof(sa->args[0]) * 6); XX + (bcopy)(argp, sa->args, sizeof(sa->args[0]) * 6); XX if (sa->narg > regcnt) { XX KASSERT(params != NULL, ("copyin args with no params!")); XX error = copyin(params, &sa->args[regcnt], the time improves by much more than the predicted 25 cycles (times repeated from above): r333291: 6.67 real 1.21 user 5.46 sys (inline memcpy) ~r333241: 8.04 real 1.21 user 6.82 sys (extern memmove) ~r333240: 8.03 real 1.22 user 6.81 sys (extern becopy) above: 6.86 real 1.11 user 5.74 sys (extern fixed bcopy) That is, 280 cycles (above), which is only 8 cycles slower than the inlined version. Maybe there is more than 1 bcopy per getpid(), or the startup overhead is only high for the null "rep movsb" because it depends on the previous non-null one, so stalls the pipleines, while dependencies on the previous one are far enough away so that it can run mostly in parallel. > Not taking advantage of the EMRS bit can be now fixed at runtime thanks to > recently landed ifunc support. I think I won't like the complications from that. > bcopy code can be further depessimized: > > ENTRY(bcopy) > PUSH_FRAME_POINTER > xchgq %rsi,%rdi > > xchg is known to be slow, the preferred way is to swap registers "by hand". > the fact that the func always has to do is is a bug on its own. Really? I see that in the 2002 Athlon optimization manual, xchg of different registers is vector path and takes 2 cycles. 3 mov's to exchange would take about the same number of cycles since they have dependencies. buth both can be reordered, so the dependencies shouldn't matter much. E.g., the above xchg can be done before PUSH_FRAME_POINTER either directly or maybe the CPU can move it. Or just don't use eiher register immiedately. > Interestingly > memmove *does not have* to do it, so this provides even more reasons to just > remove this function in the first place. Nah. register moves are almost free. They can be done in parallel with other operations (like the cld that used to be here). Except on in-order x86 like Atom I guess. Almost all functions would be much slower without this. In compiled code, the compiler should generate a good order. This asm code is still "optimized" for in-order-original-i386 (probably badly even for that), but CPUs now do enough reordering to handle most function entries well. We also depend on this for PUSH_FRAME_POINTER to not be too slow. i386 was "optimised" by not doing this, and it really was an optimization before P6, and it still doesn't do this. Also, i386 bcopy() doesn't have this problem. Before it was aessively pessimized by 4+4, it just loaded the registers off the stack into the right registers to begin with. The long Linux thread in 2010 pointed to by danfe says to do the opposite (for the fairly bogus reason than memcpy() was misused, but bcopy() doesn't have the problem). > > movq %rdi,%rax > subq %rsi,%rax > cmpq %rcx,%rax /* overlapping && src < > dst? */ > jb 1f > > Avoidable (for memcpy-compatible callers) branch, although statically > predicted > as not taken (memcpy friendly). Static prediction only helps much for the first call. Another reason why memmove() shouldn't exist is that when there are multiple alternative functions that are not just aliases, each takes resources like branch prediction cache entries, so the alternatives are less likely to all stay cached, or if they do then they prevent the resources being used elsewhere. > > shrq $3,%rcx /* copy by 64-bit words */ > rep > movsq > movq %rdx,%rcx > andq $7,%rcx /* any bytes left? */ > rep > movsb > > The old string copy. Note that reordering andq prior to rep movsb can help > some microarchitectures. Are there really any that stupid? In-order ones are equally slow wherever the instructions are, and out-of-order ones have an especially large amount of time to reorder this andq. > The movsq -> movsb combo induces significant stalls in the cpu frontend. Indeed, as my last benchmark result shows. I tried avoiding this "rep movsb" and other optimizations several years ago (probably several times) but never noticed much effect from this before. CPUs seemed to be too smart about reordering. > If the target size is a multiple of 8 and is known at compilation time, we > can get away with calling a variant which only deals with this case and > thus avoid the extra penalty. I think that is not a useful optimization, since the cost of handling this case is approximately 0 cycles plus a branch target cache resource for "jz 666" (1 cycle for a predicted branch, but hopefully that can be in parallel). One of the old i386 "optimizations" was to avoid branches like this since i386's had no branch target cache. > Either way, the win *is here* and is definitely not in the range of 3%. Still 0.3% outside of benchmarks :-). Bruce From owner-svn-src-head@freebsd.org Sun May 6 07:00:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06924FA8D31; Sun, 6 May 2018 07:00:24 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 4B483814B2; Sun, 6 May 2018 07:00:22 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id 7AA5D4347B0; Sun, 6 May 2018 17:00:13 +1000 (AEST) Date: Sun, 6 May 2018 17:00:13 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mateusz Guzik cc: Alexey Dokuchaev , Bruce Evans , Conrad Meyer , svn-src-head@freebsd.org, svn-src-all@freebsd.org, Brooks Davis , src-committers Subject: Re: svn commit: r333240 - in head/sys: powerpc/powerpc sys In-Reply-To: Message-ID: <20180506163310.A1132@besplex.bde.org> References: <201805040400.w4440moH025057@repo.freebsd.org> <20180504155301.GA56280@spindle.one-eyed-alien.net> <20180505090954.X1307@besplex.bde.org> <20180505120055.GA81833@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=FNpr/6gs c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=20KFwNOVAAAA:8 a=fLfRUPnr80tKD2-r9ZQA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 07:00:24 -0000 On Sat, 5 May 2018, Mateusz Guzik wrote: > On Sat, May 5, 2018 at 2:00 PM, Alexey Dokuchaev wrote: > >> On Sat, May 05, 2018 at 10:38:29AM +1000, Bruce Evans wrote: >>> ... >>> Summary: this change wouldn't have passed my review. I have used similar >>> changes for 15-20 years but never made them production quality since >> there >>> are too many variations to consider and testing showed insignificant >>> improvements except for micro-benchmarks. >> >> Perhaps Foundation could sponsor your work to make them production quality >> Bruce. :-) >> >> Seriously though, I'm a bit worried to see these commits happening at the >> same time correctness of the implementation is still under discussion and >> disputes. Shall I expect that after my next -CURRENT update things would >> suddenly stop working? [1] >> >> ./danfe >> >> [1] https://bugzilla.redhat.com/show_bug.cgi?id=638477 That was long. > Nothing of the sort was done here. They had a memcpy function which > internally behaved like memmove. They changed to behave like mere > memcpy (i.e. assume non-overlapping buffers). This caused buggy code > to run into trouble. Especially since we are only changing the kernel now (but libc has even sillier optimizations). > bcopy has memmove semantics and this change keeps that. The only > difference is that instead of always generating a call, the compiler is > allowed to perform the copy in place in certain cases. This is precisely > what happens almost everywhere and it was not happening in the > kernel because of a giant hammer -fno-builtin flag (added to reduce > changes the compiler will do stuff the kernel does not want to deal > with). No, -fno-builtin is only used by NOTES to get different test coverage there. The hammer is -ffreestanding, which is added to avoid the certainty that gcc-old will do things like strength-reducing printf(9) into functions like puts(3) that don't exist in the kernel. In retrospect, -ffreestanding is not a hammer but is technically correct and should have been used much earlier. It is supported by gcc-2.95.4 (aka egcs?), but wasn't used in FreeBSD until gcc-3. The hosted case might also miscompile entry points like write() if the compiler knows too much about POSIX. The good name of functions like getenv() was broken by renaming to names like kern_getenv() long after using -ffreestanding made this unnecessary. printf(9) remains with its good name since the churn for renaming it should be too painful for anyone. Apparently no one except me noticed or cared that -ffreestanding broke the default of -fbuiltin. Even NOTES was broken and remains unfixed. Its -fno-builtin is supposed to reverse the default, but it now echoes the default. Bruce From owner-svn-src-head@freebsd.org Sun May 6 07:06:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1553FA91A6 for ; Sun, 6 May 2018 07:06:55 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 192368227D; Sun, 6 May 2018 07:06:54 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from thor.intern.walstatt.dynvpn.de ([77.180.123.97]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LejNC-1eXcHc3rna-00qUtS; Sun, 06 May 2018 09:06:51 +0200 Date: Sun, 6 May 2018 09:06:15 +0200 From: "O. Hartmann" To: Matthew Macy Cc: "O. Hartmann" , svn-src-head@freebsd.org, Sean Bruno , Stephen Hurd , bde@freebsd.org Subject: Re: svn commit: r333175 - in head/sys: kern net netinet netinet6 sys: TRAP 12 Message-ID: <20180506090642.18a8f3c2@thor.intern.walstatt.dynvpn.de> In-Reply-To: References: <201805021936.w42JaTlq039053@repo.freebsd.org> <20180503213206.7fba052c@thor.intern.walstatt.dynvpn.de> <20180503222419.4228e8e8@thor.intern.walstatt.dynvpn.de> <20180505110138.6cae0f75@thor.intern.walstatt.dynvpn.de> <20180505223151.580b6522@thor.intern.walstatt.dynvpn.de> <20180505225508.12bcee0c@thor.intern.walstatt.dynvpn.de> Organization: WALSTATT User-Agent: OutScare 3.1415926 X-Operating-System: ImNotAnOperatingSystem 3.141592527 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:LrbxyD00R9VyCvrxZOpWPKQ1+rXmccrjlVEhvLT+Q/+R/DYgIJa v3gwWOiYzeDtdyioR2i/uly8vPzYUAoA+hlPFcQM5plV7eRRbFi1NtyU/NFdUjHObQDUuXP yqPtqsaz+vZSx9utHskl33Mr5CXyvF6yY51I++2MrXOMCb7944AaZzx+rM1RmBPY4kqQXE7 gUa/xZdYeYY7XM18znsCA== X-UI-Out-Filterresults: notjunk:1;V01:K0:IvweYtUG9x8=:CXOiZgznxisd9PYCm+GnMN kv/FVCc6cTJwzNof4HhwNv987l0fr7n3ipJhT9UeT9UX+vRJYt64KYqxS/zyiIM+ZvnHMij1W jyMBl1IoNkEtz+p5E7eA+Z5BYym9UtjzX4vY43KgtaQvXAKouKBeSCh99DIWDdDq2GOQqyifr hwvtjAHA52OBzCSmsDHz/HRdI4dFGFIItNCgLLIDqbVnuUT+0NWcyk7H2rSIHICybGjp6xjOM VnxxYaD6WUOISA2WYsxay81CUNwz8SSdEtUR+JpyAdZfd1OY5CKHHOJESOdqxOjOjU7X/2yHh zN2D7lkv2KojQODjBww+Enlnt82HJz+dDQAJh9c6o/PMZ0cp9esGUUC6fMTCj3d/6GzhjD8nR bzbW8FCY3u6iccbUAq8FmCvBTqFBvylU2uXSRxQYZgF+QJ53ZqNQP1hzTidjg1goq9RpI3Ntz 2nWUTrgaO+6eHTccddTgIXq3+rzQle6PeBOJxJggNPdiaTihPn8SBUCJMWr3oGf4HPpvHXGWw +gpwbZ0K1EayzYkaVW/kxCVfYmufWRiIPpschdQOmdmkn5R7Q8JKP4bhWjzK3rR+BzIkAoGza o1u/ICiY/LfWrCKTZi4vqJHMzkMoDPHKl3y1I9phxs9hPt1mAGstA8u1AcaMLJObX7CLgoFKI 2ueIut45zDGoV16iPHavWn3UM65c2wa5F4t2aRXEm05ZqxwyzL9poS9os66O0aOm9FFXXVloM 8nxt8kPcob4Dbig62EUdipSon1I1URn2f0OR4+f8CaUs6xB2kX2y2brmXLK5N5PHJuerQ05jM CfW9LVZ X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 07:06:56 -0000 LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFNh dCwgNSBNYXkgMjAxOCAxNDoxMjowNCAtMDcwMA0KTWF0dGhldyBNYWN5IDxtbWFjeUBmcmVlYnNk Lm9yZz4gc2NocmllYjoNCg0KPiBpdCdzIGluIHRoZSBzYW1lIHBsYWNlIGFzIGJlZm9yZSBidXQg SSdsbCBhdHRhY2gganVzdCB0byBiZSBjbGVhci4NCj4gR3ppcHBlZCB0byBrZWVwIGdtYWlsIGZy b20gaW5zZXJ0aW5nIGNhcnJpYWdlIHJldHVybnMuDQo+IC1NDQoNClNvcnJ5LCBtaXNzZWQgaXQu DQoNCm9oDQoNCj4gDQo+IE9uIFNhdCwgTWF5IDUsIDIwMTggYXQgMTo1NCBQTSwgTy4gSGFydG1h bm4gPG9oYXJ0bWFubkB3YWxzdGF0dC5vcmc+IHdyb3RlOg0KPiA+IC0tLS0tQkVHSU4gUEdQIFNJ R05FRCBNRVNTQUdFLS0tLS0NCj4gPiBIYXNoOiBTSEE1MTINCj4gPg0KPiA+IEFtIFNhdCwgNSBN YXkgMjAxOCAxMzo0NToxMyAtMDcwMA0KPiA+IE1hdHRoZXcgTWFjeSA8bW1hY3lAZnJlZWJzZC5v cmc+IHNjaHJpZWI6DQo+ID4gIA0KPiA+PiBhY3R1YWxseSBjYW4geW91IHRyeSB0aGUgdXBkYXRl ZCBwYXRjaCBwbGVhc2UsIGl0IHR1cm5zIG91dCBJIG5lZWQgdG8NCj4gPj4gd29ya2Fyb3VuZCB0 aGlzIGxpdHRsZSBzaG9wIG9mIGhvcnJvcnM6DQo+ID4+DQo+ID4+DQo+ID4+IHN0YXRpYyB2b2lk DQo+ID4+IHRjcF91c3JfZGV0YWNoKHN0cnVjdCBzb2NrZXQgKnNvKQ0KPiA+PiB7DQo+ID4+ICAg ICBzdHJ1Y3QgaW5wY2IgKmlucDsNCj4gPj4gICAgIGludCBybG9jayA9IDA7DQo+ID4+DQo+ID4+ ICAgICBpbnAgPSBzb3RvaW5wY2Ioc28pOw0KPiA+PiAgICAgS0FTU0VSVChpbnAgIT0gTlVMTCwg KCJ0Y3BfdXNyX2RldGFjaDogaW5wID09IE5VTEwiKSk7DQo+ID4+ICAgICBpZiAoIUlOUF9JTkZP X1dMT0NLRUQoJlZfdGNiaW5mbykpIHsNCj4gPj4gICAgICAgICBJTlBfSU5GT19STE9DSygmVl90 Y2JpbmZvKTsNCj4gPj4gICAgICAgICBybG9jayA9IDE7DQo+ID4+ICAgICB9DQo+ID4+ICAgICBJ TlBfV0xPQ0soaW5wKTsNCj4gPj4gICAgIEtBU1NFUlQoaW5wLT5pbnBfc29ja2V0ICE9IE5VTEws DQo+ID4+ICAgICAgICAgKCJ0Y3BfdXNyX2RldGFjaDogaW5wX3NvY2tldCA9PSBOVUxMIikpOw0K PiA+PiAgICAgdGNwX2RldGFjaChzbywgaW5wKTsNCj4gPj4gICAgIGlmIChybG9jaykNCj4gPj4g ICAgICAgICBJTlBfSU5GT19SVU5MT0NLKCZWX3RjYmluZm8pOw0KPiA+PiB9DQo+ID4+DQo+ID4+ IFdlJ3JlIHN0aWxsIGFjcXVpcmluZyBhIHNsZWVwYWJsZSBtdXRleCBvdXQgb2Ygb3JkZXIgd2l0 aCBhIHJlYWQgbG9jaw0KPiA+PiBoZWxkIHdpdGggdGhlIGZvcm1lciB2ZXJzaW9uIG9mIHRoZSBw YXRjaC4NCj4gPj4gIA0KPiA+DQo+ID4gV2VsbCwgSSdkIGFwcHJlY2lhdGUgYSBwYXRjaCBmaWxl LCBpZiBwb3NzaWJsZSwgcGxlYXNlLg0KPiA+DQo+ID4gIA0KPiA+Pg0KPiA+PiBPbiBTYXQsIE1h eSA1LCAyMDE4IGF0IDE6MzEgUE0sIE8uIEhhcnRtYW5uIDxvLmhhcnRtYW5uQHdhbHN0YXR0Lm9y Zz4gd3JvdGU6ICANCj4gPj4gPiAtLS0tLUJFR0lOIFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ ID4+ID4gSGFzaDogU0hBNTEyDQo+ID4+ID4NCj4gPj4gPiBBbSBTYXQsIDUgTWF5IDIwMTggMTE6 MjE6NDcgLTA3MDANCj4gPj4gPiBNYXR0aGV3IE1hY3kgPG1tYWN5QGZyZWVic2Qub3JnPiBzY2hy aWViOg0KPiA+PiA+ICANCj4gPj4gPj4gcGhvQCBhbmQgc2JydW5vQCB0ZXN0ZWQgdGhlIHBhdGNo IGJlZm9yZSBjb21taXQsIEkgY2FuJ3QgcmVhZGlseQ0KPiA+PiA+PiByZXByb2R1Y2UgZXZlbiB0 aG91Z2ggdGhlIGRldGFjaCBwYXRoIHNob3VsZCBiZSBjb21tb24gZW5vdWdoLiBQbGVhc2UNCj4g Pj4gPj4gdGVsbCBtZSBpZiB0aGlzIGhlbHBzOg0KPiA+PiA+Pg0KPiA+PiA+PiBodHRwczovL3Bl b3BsZS5mcmVlYnNkLm9yZy9+bW1hY3kvaW5wY2IuZGlmZg0KPiA+PiA+Pg0KPiA+PiA+Pg0KPiA+ PiA+PiBUaGFua3MuDQo+ID4+ID4+ICANCj4gPj4gPg0KPiA+PiA+DQo+ID4+ID4gVGhlIHByaXZp ZGVkIHBhdGNoIHNlZW1pbmdseSB3b3JrIHNvIGZhciAoRnJlZUJTRCAxMi4wLUNVUlJFTlQgIzQg cjMzMzI3NE06IFNhdA0KPiA+PiA+IE1heSAgNSAyMjoxOTowNCBDRVNUIDIwMTggYW1kNjQpLiBJ IGp1c3QgcmVjb21waWxlIHdvcmxkIGFuZCBrZXJuZWwgb2YgcmV2aXNpb24NCj4gPj4gPiAzMzMy NzYgYW5kIHRyeSB0byBwdXNoIHRoZSBib3ggd2l0aCBuZSB0cmFmZmljIChORlMgbW9zdGx5KS4N Cj4gPj4gPg0KPiA+PiA+IE1heSBJIGFzayBvbiB3aGF0IGhhcmR3YXJlIHRoZSBtZW50aW9uZWQg dGVzdHMgb2YgeW91cnMgaGFzIGJlZW4gcGVyZm9ybWVkPyBJIGNhbg0KPiA+PiA+IHRlbGwsIHRo YXQgQUxMKCEpIGJveGVzIGVxdWlwdGVkIHdpdGggSW50ZWwncyBpMzUwIE5JQ3MgYXJlIHN1ZmZl cmluZyB0aGUgdmVyeSBzYW1lDQo+ID4+ID4gcHJvYmxlbS4gSSBkaWRuJ3QgZGFyZSB0byBtb3Zl IG9uIG9uIHRoZSBvdGhlciBzeXN0ZW1zIHdpdGggaTIxMCwgaTIxNyBvciBpMjE5LCBidXQNCj4g Pj4gPiB3aXRoIHRoZSBwYXRjaCBwcm92aWRlZCB3b3JraW5nIHNvIGZhciwgSSdsbCB0ZXN0Lg0K PiA+PiA+DQo+ID4+ID4gVGhhbmtzLg0KPiA+PiA+ICANCj4gPj4gPj4NCj4gPj4gPj4gT24gU2F0 LCBNYXkgNSwgMjAxOCBhdCAyOjAxIEFNLCBPLiBIYXJ0bWFubiA8by5oYXJ0bWFubkB3YWxzdGF0 dC5vcmc+IHdyb3RlOiAgDQo+ID4+ID4+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0Ut LS0tLQ0KPiA+PiA+PiA+IEhhc2g6IFNIQTUxMg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gQW0gVGh1 LCAzIE1heSAyMDE4IDIyOjIzOjUyICswMjAwDQo+ID4+ID4+ID4gIk8uIEhhcnRtYW5uIiA8b2hh cnRtYW5uQHdhbHN0YXR0Lm9yZz4gc2NocmllYjoNCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ ID4+ID4gSSdtIG5vdCBmYW1pbGlhciB3aXRoIGtlcm5lbCBkZWJ1Z2dpbmcsIHNvIHRoZXJlIGFy ZSBzb21lIHN0cnVnZ2xlcy4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEFmdGVyIGNvbXBpbGluZyBh IGRlYnVnZ2luZyBrZXJuZWwgb24NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IFZlcnNpb24gU3RyaW5n OiBGcmVlQlNEIDEyLjAtQ1VSUkVOVCAjMiByMzMzMjY5OiBTYXQgTWF5ICA1IDA4OjEwOjMyIENF U1QgMjAxOA0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gUGFuaWMgU3RyaW5nOiBMb2NrIHRjcCBub3Qg ZXhjbHVzaXZlbHkgbG9ja2VkDQo+ID4+ID4+ID4gQCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9w Y2IuYzoxMzkxDQo+ID4+ID4+ID4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEFuZCB0aGlzIGlzIHdo YXQgSSBjYW4gcHJvdmlkZSB5b3Ugd2l0aDoNCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ID4+ ID4gUmVhZGluZyBzeW1ib2xzDQo+ID4+ID4+ID4gZnJvbSAvdXNyL29iai91c3Ivc3JjL2FtZDY0 LmFtZDY0L3N5cy9XQUxIQUxMLURFQlVHL2tlcm5lbC5mdWxsLi4uZG9uZS4NCj4gPj4gPj4gPg0K PiA+PiA+PiA+IFVucmVhZCBwb3J0aW9uIG9mIHRoZSBrZXJuZWwgbWVzc2FnZSBidWZmZXI6DQo+ ID4+ID4+ID4gcGFuaWM6IExvY2sgdGNwIG5vdCBleGNsdXNpdmVseSBsb2NrZWQgQCAvdXNyL3Ny Yy9zeXMvbmV0aW5ldC9pbl9wY2IuYzoxMzkxDQo+ID4+ID4+ID4NCj4gPj4gPj4gPiBjcHVpZCA9 IDQNCj4gPj4gPj4gPiB0aW1lID0gMTUyNTUxMDI5MQ0KPiA+PiA+PiA+IEtEQjogc3RhY2sgYmFj a3RyYWNlOg0KPiA+PiA+PiA+IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3RyYWNlX3Nl bGZfd3JhcHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTY3MA0KPiA+PiA+PiA+IHZwYW5p YygpIGF0IHZwYW5pYysweDFhMy9mcmFtZSAweGZmZmZmZTAwZTQ4NWU2ZDANCj4gPj4gPj4gPiBw YW5pYygpIGF0IHBhbmljKzB4NDMvZnJhbWUgMHhmZmZmZmUwMGU0ODVlNzMwDQo+ID4+ID4+ID4g X3J3X3d1bmxvY2tfY29va2llKCkgYXQgX3J3X3d1bmxvY2tfY29va2llKzB4MTM3L2ZyYW1lIDB4 ZmZmZmZlMDBlNDg1ZTc2MA0KPiA+PiA+PiA+IGluX3BjYmZyZWUoKSBhdCBpbl9wY2JmcmVlKzB4 NTFhL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTdiMA0KPiA+PiA+PiA+IHRjcF91c3JfZGV0YWNoKCkg YXQgdGNwX3Vzcl9kZXRhY2grMHgxNWUvZnJhbWUgMHhmZmZmZmUwMGU0ODVlN2YwDQo+ID4+ID4+ ID4gc29mcmVlKCkgYXQgc29mcmVlKzB4MmY0L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTg0MA0KPiA+ PiA+PiA+IHNvY2xvc2UoKSBhdCBzb2Nsb3NlKzB4Mzg3L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZThi MA0KPiA+PiA+PiA+IGNsb3NlZigpIGF0IGNsb3NlZisweDFmNS9mcmFtZSAweGZmZmZmZTAwZTQ4 NWU5NDANCj4gPj4gPj4gPiBjbG9zZWZwKCkgYXQgY2xvc2VmcCsweGEwL2ZyYW1lIDB4ZmZmZmZl MDBlNDg1ZTk4MA0KPiA+PiA+PiA+IGFtZDY0X3N5c2NhbGwoKSBhdCBhbWQ2NF9zeXNjYWxsKzB4 NmQzL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZWFiMA0KPiA+PiA+PiA+IGZhc3Rfc3lzY2FsbF9jb21t b24oKSBhdCBmYXN0X3N5c2NhbGxfY29tbW9uKzB4MTAxL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZWFi MA0KPiA+PiA+PiA+IC0gLS0tIHN5c2NhbGwgKDYsIEZyZWVCU0QgRUxGNjQsIHN5c19jbG9zZSks IHJpcCA9IDB4ODAxMTFhZGRhLCByc3AgPQ0KPiA+PiA+PiA+IDB4N2ZmZmRmM2Y3MjI4LCByYnAg PSAweDdmZmZkZjNmNzI0MCAtLS0gS0RCOiBlbnRlcjogcGFuaWMNCj4gPj4gPj4gPg0KPiA+PiA+ PiA+IF9fY3VydGhyZWFkICgpIGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQo+ID4+ID4+ID4gMjMx ICAgICAgICAgICAgIF9fYXNtKCJtb3ZxICUlZ3M6JTEsJTAiIDogIj1yIiAodGQpDQo+ID4+ID4+ ID4gKGtnZGIpIGJ0DQo+ID4+ID4+ID4gKGtnZGIpIGJ0DQo+ID4+ID4+ID4gIzAgIF9fY3VydGhy ZWFkICgpIGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQo+ID4+ID4+ID4gIzEgIGRvYWR1bXAgKHRl eHRkdW1wPTApIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fc2h1dGRvd24uYzozNjUNCj4gPj4g Pj4gPiAjMiAgMHhmZmZmZmZmZjgwNTk3ZDViIGluIGRiX2R1bXAgKGR1bW15PTxvcHRpbWl6ZWQg b3V0PiwgZHVtbXkyPTx1bmF2YWlsYWJsZT4sDQo+ID4+ID4+ID4gZHVtbXkzPTx1bmF2YWlsYWJs ZT4sIGR1bW15ND08dW5hdmFpbGFibGU+KSBhdCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQu Yzo1NzQNCj4gPj4gPj4gPiAjMyAgMHhmZmZmZmZmZjgwNTk3YWU2IGluIGRiX2NvbW1hbmQgKGxh c3RfY21kcD08b3B0aW1pemVkIG91dD4sDQo+ID4+ID4+ID4gY21kX3RhYmxlPTxvcHRpbWl6ZWQg IA0KPiA+PiA+PiA+IG91dD4sIGRvcGFnZXI9PG9wdGltaXplZCBvdXQ+KSBhdCAvdXNyL3NyYy9z eXMvZGRiL2RiX2NvbW1hbmQuYzo0ODEgIzQNCj4gPj4gPj4gPiBvdXQ+MHhmZmZmZmZmZjgwNTk3 ODE0IGluIGRiX2NvbW1hbmRfbG9vcCAoKQ0KPiA+PiA+PiA+IG91dD5hdCAvdXNyL3NyYy9zeXMv ZGRiL2RiX2NvbW1hbmQuYzo1MzQgIA0KPiA+PiA+PiA+ICM1ICAweGZmZmZmZmZmODA1OWIwNGYg aW4gZGJfdHJhcCAodHlwZT08b3B0aW1pemVkIG91dD4sIGNvZGU9PG9wdGltaXplZCBvdXQ+KQ0K PiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9kZGIvZGJfbWFpbi5jOjI1MCAjNiAgMHhmZmZmZmZm ZjgwOTI0NDYzIGluIGtkYl90cmFwICh0eXBlPTMsDQo+ID4+ID4+ID4gY29kZT0tNjE0NTYsIHRm PTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9zcmMvc3lzL2tlcm4vc3Vicl9rZGIuYzo2OTcgIzcN Cj4gPj4gPj4gPiAweGZmZmZmZmZmODBjODBhYjcgaW4gdHJhcCAoZnJhbWU9MHhmZmZmZmUwMGU0 ODVlNWEwKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9hbWQ2NC9hbWQ2NC90cmFwLmM6NTUw ICM4ICA8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPiAjOSAga2RiX2VudGVyDQo+ID4+ID4+ID4gKHdo eT0weGZmZmZmZmZmODBkZDdiNTQgInBhbmljIiwgbXNnPTxvcHRpbWl6ZWQgb3V0PikNCj4gPj4g Pj4gPiBhdCAvdXNyL3NyYy9zeXMva2Vybi9zdWJyX2tkYi5jOjQ3OSAjMTAgMHhmZmZmZmZmZjgw OGRiNTAwIGluIHZwYW5pYw0KPiA+PiA+PiA+IChmbXQ9PG9wdGltaXplZCAgDQo+ID4+ID4+ID4g b3V0PiwgYXA9MHhmZmZmZmUwMGU0ODVlNzEwKSBhdCAvdXNyL3NyYy9zeXMva2Vybi9rZXJuX3No dXRkb3duLmM6ODUxICMxMQ0KPiA+PiA+PiA+IG91dD4weGZmZmZmZmZmODA4ZGI1OTMgaW4gcGFu aWMgIA0KPiA+PiA+PiA+IChmbXQ9MHhmZmZmZmZmZjgxMjViYmQ4IDxjbnB1dHNfbXR4PiAiXDI1 MVwzMTJcMzMyXDIwMFwzNzdcMzc3XDM3N1wzNzciKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5 cy9rZXJuL2tlcm5fc2h1dGRvd24uYzo3ODkgIzEyIDB4ZmZmZmZmZmY4MDhkNjViNyBpbiBfX3J3 X2Fzc2VydA0KPiA+PiA+PiA+IChjPTB4ZmZmZmZlMDAxMTFlZTY1MCwgd2hhdD00LCBmaWxlPTB4 ZmZmZmZmZmY4MGRjNTE1Nw0KPiA+PiA+PiA+ICIvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2Iu YyIsIGxpbmU9MTM5MSkNCj4gPj4gPj4gPiBhdCAvdXNyL3NyYy9zeXMva2Vybi9rZXJuX3J3bG9j ay5jOjE0MjYgIzEzIF9yd193dW5sb2NrX2Nvb2tpZQ0KPiA+PiA+PiA+IChjPTB4ZmZmZmZlMDAx MTFlZTY1MCwgZmlsZT0weGZmZmZmZmZmODBkYzUxNTcgIi91c3Ivc3JjL3N5cy9uZXRpbmV0L2lu X3BjYi5jIiwNCj4gPj4gPj4gPiBsaW5lPTEzOTEpIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5f cndsb2NrLmM6MzYyICMxNCAweGZmZmZmZmZmODBhNjhjYWEgaW4NCj4gPj4gPj4gPiBpbl9wY2Jm cmVlIChpbnA9MHhmZmZmZjgwMDY2MDU4YjEwKSBhdCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9w Y2IuYzoxMzkxICMxNQ0KPiA+PiA+PiA+IDB4ZmZmZmZmZmY4MGIwOWE2ZSBpbiB0Y3BfZGV0YWNo IChzbz08b3B0aW1pemVkIG91dD4sIGlucD08b3B0aW1pemVkIG91dD4pDQo+ID4+ID4+ID4gYXQg L3Vzci9zcmMvc3lzL25ldGluZXQvdGNwX3VzcnJlcS5jOjI1OCAjMTYgdGNwX3Vzcl9kZXRhY2gg KHNvPTxvcHRpbWl6ZWQNCj4gPj4gPj4gPiBvdXQ+KSBhdCAvdXNyL3NyYy9zeXMvbmV0aW5ldC90 Y3BfdXNycmVxLmM6Mjg5ICMxNyAweGZmZmZmZmZmODA5N2MzOTQgaW4gc29mcmVlDQo+ID4+ID4+ ID4gb3V0Pihzbz0weGZmZmZmODAwMTk4OGQzNTgpDQo+ID4+ID4+ID4gYXQgL3Vzci9zcmMvc3lz L2tlcm4vdWlwY19zb2NrZXQuYzoxMDMyICMxOCAweGZmZmZmZmZmODA5N2Q0ODcgaW4gc29jbG9z ZQ0KPiA+PiA+PiA+IChzbz0weGZmZmZmODAwMTk4OGQzNTgpIGF0IC91c3Ivc3JjL3N5cy9rZXJu L3VpcGNfc29ja2V0LmM6MTEyNiAjMTkNCj4gPj4gPj4gPiAweGZmZmZmZmZmODA4ODVhZDUgaW4g Zm9fY2xvc2UgKGZwPTxvcHRpbWl6ZWQgb3V0PiwgdGQ9PG9wdGltaXplZCBvdXQ+KQ0KPiA+PiA+ PiA+IGF0IC91c3Ivc3JjL3N5cy9zeXMvZmlsZS5oOjM0OCAjMjAgX2Zkcm9wIChmcD08b3B0aW1p emVkIG91dD4sIHRkPTxvcHRpbWl6ZWQNCj4gPj4gPj4gPiBvdXQ+KSBhdCAvdXNyL3NyYy9zeXMv a2Vybi9rZXJuX2Rlc2NyaXAuYzoyOTU3ICMyMSBjbG9zZWYNCj4gPj4gPj4gPiBvdXQ+KGZwPTB4 ZmZmZmY4MDAwNGVmNGViMCwNCj4gPj4gPj4gPiB0ZD0weGZmZmZmODAwMTk4OTE1NjApIGF0IC91 c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVzY3JpcC5jOjI1MzggIzIyDQo+ID4+ID4+ID4gMHhmZmZm ZmZmZjgwODgyOTIwIGluIGNsb3NlZnAgKGZkcD0weGZmZmZmODAwMTk1NTM0NTAsIGZkPTEyLA0K PiA+PiA+PiA+IGZwPTB4ZmZmZmY4MDAwNGVmNGViMCwgdGQ9MHhmZmZmZjgwMDE5ODkxNTYwLCBo b2xkbGVhZGVycz0wKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVzY3Jp cC5jOjEyMDggIzIzIDB4ZmZmZmZmZmY4MGM4MjAzMyBpbiBzeXNjYWxsZW50ZXINCj4gPj4gPj4g PiAodGQ9MHhmZmZmZjgwMDE5ODkxNTYwKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9hbWQ2 NC9hbWQ2NC8uLi8uLi9rZXJuL3N1YnJfc3lzY2FsbC5jOjEzNSAjMjQgYW1kNjRfc3lzY2FsbA0K PiA+PiA+PiA+ICh0ZD0weGZmZmZmODAwMTk4OTE1NjAsIHRyYWNlZD0wKSBhdCAvdXNyL3NyYy9z eXMvYW1kNjQvYW1kNjQvdHJhcC5jOjk0NSAjMjUNCj4gPj4gPj4gPiA8c2lnbmFsIGhhbmRsZXIg Y2FsbGVkPiAjMjYgMHgwMDAwMDAwODAxMTFhZGRhIGluID8/ICgpIEJhY2t0cmFjZSBzdG9wcGVk Og0KPiA+PiA+PiA+IENhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHg3ZmZmZGYzZjcy MjggKGtnZGIpDQo+ID4+ID4+ID4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gIA0K PiA+PiA+PiA+PiAtLS0tLUJFR0lOIFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ID4+ID4+ID4+ IEhhc2g6IFNIQTUxMg0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiBBbSBUaHUsIDMgTWF5IDIwMTgg MTI6NTM6MDUgLTA3MDANCj4gPj4gPj4gPj4gIksuIE1hY3kiIDxrbWFjeUBmcmVlYnNkLm9yZz4g c2NocmllYjoNCj4gPj4gPj4gPj4gIA0KPiA+PiA+PiA+PiA+IENhbiB5b3UgZ2l2ZSBhbnkgY29u dGV4dCBvbiB3aGF0IHRoZXkncmUgZG9pbmc/IEluIGFkZGl0aW9uIC0gZXZlbiBvbg0KPiA+PiA+ PiA+PiA+IGEgcHJvZHVjdGlvbiBrZXJuZWwgaXQncyBwb3NzaWJsZSB0byBjb21waWxlIGluIERE QiB0byBhdCBsZWFzdCBnZXQgYQ0KPiA+PiA+PiA+PiA+IGJhY2t0cmFjZS4gWW91ciByZXBvcnQg b25seSBnaXZlcyB1cyBlbm91Z2ggaW5mb3JtYXRpb24gdG8ga25vdyB0aGF0ICANCj4gPj4gPj4g Pj4NCj4gPj4gPj4gPj4gTm90IGF0IHRoZSBtb21lbnQuIFRoZSBpbW1lZGlhdGUgY3Jhc2ggY29y cnVwdGVkIHRoZSAvdXNyL3NyYyBmaWxlc3lzdGVtIHNvIEkNCj4gPj4gPj4gPj4gY2FuIG5vdCBy ZWNvbXBpbGUgYSBrZXJuZWwuIEV2ZXJ5IGF0dGVtcHQgdG8gL2V0Yy9uZXRzdGFydCB0aGUgbmV0 d29yayBvbiB0aGUNCj4gPj4gPj4gPj4gYnVnZ3kga2VybmVsIGVuZHMgdXAgaW4gYSBmdXJ0aGVy IGRlc3RydWN0aW9uLCBzbyBJIHN0b3BwZWQgYXQgdGhpcyB2ZXJ5DQo+ID4+ID4+ID4+IG1vbWVu dCBhbmQgaG9wZWZ1bGx5IEkgY2FuIGNvcHkgL3Vzci9zcmMgZnJvbSBhIHIzMzE1MyBib3ggKHIz MzMxNTMgaXMgZm9yIG1lDQo+ID4+ID4+ID4+IHRoZSBsYXN0IHdvcmtpbmcgcmV2aXNpb24pIHZp YSBVU0IgZmxhc2ggZHJpdmUgYW5kIHJlY29tcGlsZSB0aGUga2VybmVsLiBCdXQNCj4gPj4gPj4g Pj4gSSdsbCBnbyBmb3IgcjMzMzE1MyBmaXJzdCBzaW5jZSBJIG5lZWQgdGhlIHNlcnZlciB1cCB0 b21vcnJvdyBhbmQgSSdsbCB0cnkgb24NCj4gPj4gPj4gPj4gdGhlIG90aGVyIGJveCB3aGljaCBp cyBhbHNvIGFmZmVjdGVkLCBidXQgYWxzbyBlcXVpcHRlZCB3aXRoIHRoZSBpMzUwIE5JQyBvbg0K PiA+PiA+PiA+PiB3aGljaCB0aGUgcHJvYmxlbSBvY2N1cnMgdmVyeSBxdWlja2x5LiAgDQo+ID4+ ID4+ID4+ID4gdGhlcmUgaXMgX2FuXyBpc3N1ZS4gSXQncyBkaWZmaWN1bHQgdG8gcHJvY2VlZCBv biB0aGlzIGFsb25lLiBJIGRvDQo+ID4+ID4+ID4+ID4gaGF2ZSBhIHJlcG9ydCBmcm9tIHRoZSBG cmVlQlNEIENJIGluZnJhc3RydWN0dXJlIHRoYXQgd2UncmUgbG9va2luZyBpbg0KPiA+PiA+PiA+ PiA+IHRvIG5vdy4gIFdpdGggbHVjayB0aGF0IGlzIHRoZSBzYW1lIGlzc3VlLg0KPiA+PiA+PiA+ PiA+DQo+ID4+ID4+ID4+ID4gLU0NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IE9uIFRodSwg TWF5IDMsIDIwMTggYXQgMTI6MzEgUE0sIE8uIEhhcnRtYW5uIDxvaGFydG1hbm5Ad2Fsc3RhdHQu b3JnPg0KPiA+PiA+PiA+PiA+IHdyb3RlOiAgDQo+ID4+ID4+ID4+ID4gPiAtLS0tLUJFR0lOIFBH UCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ID4+ID4+ID4+ID4gPiBIYXNoOiBTSEE1MTINCj4gPj4g Pj4gPj4gPiA+DQo+ID4+ID4+ID4+ID4gPiBBbSBXZWQsIDIgTWF5IDIwMTggMTk6MzY6MjkgKzAw MDAgKFVUQykNCj4gPj4gPj4gPj4gPiA+IFN0ZXBoZW4gSHVyZCA8c2h1cmRARnJlZUJTRC5vcmc+ IHNjaHJpZWI6DQo+ID4+ID4+ID4+ID4gPiAgDQo+ID4+ID4+ID4+ID4gPj4gQXV0aG9yOiBzaHVy ZA0KPiA+PiA+PiA+PiA+ID4+IERhdGU6IFdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOA0KPiA+PiA+ PiA+PiA+ID4+IE5ldyBSZXZpc2lvbjogMzMzMTc1DQo+ID4+ID4+ID4+ID4gPj4gVVJMOiBodHRw czovL3N2bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8zMzMxNzUNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+IExvZzoNCj4gPj4gPj4gPj4gPiA+PiAgIFNlcGFyYXRlIGxp c3QgbWFuaXB1bGF0aW9uIGxvY2tpbmcgZnJvbSBzdGF0ZSBjaGFuZ2UgaW4gbXVsdGljYXN0DQo+ ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgIE11bHRpY2FzdCBpbmNvcnJlY3RseSBj YWxscyBpbiB0byBkcml2ZXJzIHdpdGggYSBtdXRleCBoZWxkIGNhdXNpbmcNCj4gPj4gPj4gPj4g PiA+PiBkcml2ZXJzIHRvIGhhdmUgdG8gZ28gdGhyb3VnaCBhbGwgbWFubmVyIG9mIGNvbnRvcnRp b25zIHRvIHVzZSBhIG5vbg0KPiA+PiA+PiA+PiA+ID4+IHNsZWVwYWJsZSBsb2NrLiBTZXJpYWxp emUgbXVsdGljYXN0IHVwZGF0ZXMgaW5zdGVhZC4NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+ICAgU3VibWl0dGVkIGJ5OiAgICAgICBtbWFjeSA8bW1hY3lAbWF0dG1hY3kuaW8+DQo+ ID4+ID4+ID4+ID4gPj4gICBSZXZpZXdlZCBieTogICAgICAgIHNodXJkLCBzYnJ1bm8NCj4gPj4g Pj4gPj4gPiA+PiAgIFNwb25zb3JlZCBieTogICAgICAgTGltZWxpZ2h0IE5ldHdvcmtzDQo+ID4+ ID4+ID4+ID4gPj4gICBEaWZmZXJlbnRpYWwgUmV2aXNpb246ICAgICAgaHR0cHM6Ly9yZXZpZXdz LmZyZWVic2Qub3JnL0QxNDk2OQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gTW9k aWZpZWQ6DQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5j DQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ID4+ID4+ ID4+ID4gPj4gICBoZWFkL3N5cy9uZXQvaWYuYw0KPiA+PiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMv bmV0aW5ldC9pZ21wLmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaWdtcF92 YXIuaA0KPiA+PiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9pbi5jDQo+ID4+ID4+ID4+ ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhl YWQvc3lzL25ldGluZXQvaW5fcGNiLmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGlu ZXQvaW5fdmFyLmgNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaXBfY2FycC5j DQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjYuYw0KPiA+PiA+PiA+PiA+ ID4+ICAgaGVhZC9zeXMvbmV0aW5ldDYvaW42X2lmYXR0YWNoLmMNCj4gPj4gPj4gPj4gPiA+PiAg IGhlYWQvc3lzL25ldGluZXQ2L2luNl9tY2FzdC5jDQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5 cy9uZXRpbmV0Ni9pbjZfcGNiLmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2 L2luNl92YXIuaA0KPiA+PiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldDYvbWxkNi5jDQo+ ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9tbGQ2X3Zhci5oDQo+ID4+ID4+ID4+ ID4gPj4gICBoZWFkL3N5cy9zeXMvZ3Rhc2txdWV1ZS5oDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4g Pj4gPj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMva2Vybi9zdWJyX2d0YXNrcXVldWUuYw0KPiA+ PiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+IC0tLSBo ZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5jICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4 DQo+ID4+ID4+ID4+ID4gPj4gKHIzMzMxNzQpICsrKyBoZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2tx dWV1ZS5jICAgV2VkIE1heSAgMiAxOTozNjoyOQ0KPiA+PiA+PiA+PiA+ID4+IDIwMTggICAgICAg IChyMzMzMTc1KSBAQCAtNTMsNiArNTMsNyBAQCBzdGF0aWMgdm9pZA0KPiA+PiA+PiA+PiA+ID4+ IGd0YXNrcXVldWVfdGhyZWFkX2VucXVldWUodm9pZCAqKTsgc3RhdGljIHZvaWQNCj4gPj4gPj4g Pj4gPiA+PiBndGFza3F1ZXVlX3RocmVhZF9sb29wKHZvaWQgKmFyZyk7DQo+ID4+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPj4gPiA+PiAgVEFTS1FHUk9VUF9ERUZJTkUoc29mdGlycSwgbXBfbmNwdXMs IDEpOw0KPiA+PiA+PiA+PiA+ID4+ICtUQVNLUUdST1VQX0RFRklORShjb25maWcsIDEsIDEpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIHN0cnVjdCBndGFza3F1ZXVlX2J1c3kg ew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBndGFzayAgICAqdGJfcnVubmluZzsNCj4g Pj4gPj4gPj4gPiA+PiBAQCAtNjYyLDcgKzY2Myw3IEBAIFNZU0lOSVQodHFnX3JlY29yZF9zbXBf c3RhcnRlZCwgU0lfU1VCX1NNUCwgU0lfT1JERVJfRg0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gIHZvaWQNCj4gPj4gPj4gPj4gPiA+PiAgdGFza3Fncm91cF9hdHRhY2goc3RydWN0 IHRhc2txZ3JvdXAgKnFncm91cCwgc3RydWN0IGdyb3VwdGFzayAqZ3Rhc2ssDQo+ID4+ID4+ID4+ ID4gPj4gLSAgICB2b2lkICp1bmlxLCBpbnQgaXJxLCBjaGFyICpuYW1lKQ0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgdm9pZCAqdW5pcSwgaW50IGlycSwgY29uc3QgY2hhciAqbmFtZSkNCj4gPj4gPj4g Pj4gPiA+PiAgew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGNwdXNldF90IG1hc2s7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgaW50IHFpZCwgZXJyb3I7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTk3Niw0 ICs5NzcsMTMgQEAgdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICB0YXNrcWdyb3VwX2Rlc3Ryb3koc3Ry dWN0IHRhc2txZ3JvdXAgKnFncm91cCkNCj4gPj4gPj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4+ID4gPj4gK30NCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4g Pj4gK3ZvaWQNCj4gPj4gPj4gPj4gPiA+PiArdGFza3Fncm91cF9jb25maWdfZ3Rhc2tfaW5pdCh2 b2lkICpjdHgsIHN0cnVjdCBncm91cHRhc2sgKmd0YXNrLA0KPiA+PiA+PiA+PiA+ID4+IGd0YXNr X2ZuX3QgKmZuLA0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIGNvbnN0IGNoYXIgKm5hbWUpDQo+ID4+ ID4+ID4+ID4gPj4gK3sNCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAg R1JPVVBUQVNLX0lOSVQoZ3Rhc2ssIDAsIGZuLCBjdHgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAg IHRhc2txZ3JvdXBfYXR0YWNoKHFncm91cF9jb25maWcsIGd0YXNrLCBndGFzaywgLTEsIG5hbWUp Ow0KPiA+PiA+PiA+PiA+ID4+ICB9DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiBN b2RpZmllZDogaGVhZC9zeXMva2Vybi9zdWJyX3dpdG5lc3MuYw0KPiA+PiA+PiA+PiA+ID4+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+IC0tLSBoZWFkL3N5cy9rZXJuL3N1 YnJfd2l0bmVzcy5jICAgICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4DQo+ID4+ID4+ID4+ID4g Pj4gKHIzMzMxNzQpICsrKyBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jICAgICAgV2VkIE1h eSAgMiAxOTozNjoyOQ0KPiA+PiA+PiA+PiA+ID4+IDIwMTggICAgICAgIChyMzMzMTc1KSBAQCAt NTMyLDE4ICs1MzIsMjIgQEAgc3RhdGljIHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IHdpdG5lc3Nf b3JkZXJfbGlzdF9lbnRyeSBvcmRlcl9saXN0c1tdID0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAg KiBJUHY0IG11bHRpY2FzdDoNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgKiBwcm90b2NvbCBsb2Nr cyBiZWZvcmUgaW50ZXJmYWNlIGxvY2tzLCBhZnRlciBVRFAgbG9ja3MuDQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICovDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgeyAiaW5fbXVsdGlfc3giLCAmbG9j a19jbGFzc19zeCB9LA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHsgInVkcGlucCIsICZsb2NrX2Ns YXNzX3J3IH0sDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgeyAiaW5fbXVsdGlfbXR4IiwgJmxvY2tf Y2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgeyAiaW5fbXVsdGlfbGlz dF9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAgfSwNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB7 ICJpZ21wX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgIHsgImlmbmV0X3J3IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgIHsgTlVMTCwgTlVMTCB9LA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICogSVB2NiBtdWx0aWNhc3Q6DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICog cHJvdG9jb2wgbG9ja3MgYmVmb3JlIGludGVyZmFjZSBsb2NrcywgYWZ0ZXIgVURQIGxvY2tzLg0K PiA+PiA+PiA+PiA+ID4+ICAgICAgICAqLw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHsgImluNl9t dWx0aV9zeCIsICZsb2NrX2NsYXNzX3N4IH0sDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgeyAidWRw aW5wIiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPj4gPj4gPiA+PiAtICAgICB7ICJpbjZfbXVs dGlfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAg eyAiaW42X211bHRpX2xpc3RfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgeyAibWxkX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0KPiA+ PiA+PiA+PiA+ID4+ICsgICAgIHsgImlmbmV0X3J3IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgIHsgTlVMTCwgTlVMTCB9LA0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IC8qDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMv bmV0L2lmLmMNCj4gPj4gPj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPj4g Pj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0L2lmLmMgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4ICAg ICAgICAocjMzMzE3NCkNCj4gPj4gPj4gPj4gPiA+PiArKysgaGVhZC9zeXMvbmV0L2lmLmMgV2Vk IE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4gPj4gPiA+PiBA QCAtOTg1LDExICs5ODUsMTMgQEAgc3RhdGljIHZvaWQNCj4gPj4gPj4gPj4gPiA+PiAgaWZfcHVy Z2VtYWRkcnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4g Pj4gPiA+PiAgICAgICBzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlmbWE7DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgc3RydWN0IGlmbXVsdGlhZGRyICpuZXh0Ow0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgSUZfQUREUl9XTE9DSyhpZnApOw0KPiA+PiA+PiA+PiA+ID4+IC0gICAg IFRBSUxRX0ZPUkVBQ0hfU0FGRShpZm1hLCAmaWZwLT5pZl9tdWx0aWFkZHJzLCBpZm1hX2xpbmss IG5leHQpDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgd2hpbGUgKCFUQUlMUV9FTVBUWSgmaWZwLT5p Zl9tdWx0aWFkZHJzKSkgew0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgaWZtYSA9IFRB SUxRX0ZJUlNUKCZpZnAtPmlmX211bHRpYWRkcnMpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAg ICAgICAgVEFJTFFfUkVNT1ZFKCZpZnAtPmlmX211bHRpYWRkcnMsIGlmbWEsIGlmbWFfbGluayk7 DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBpZl9kZWxtdWx0aV9sb2NrZWQoaWZwLCBp Zm1hLCAxKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg SUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0zNDI5LDYgKzM0MzEsMTIgQEAgaWZfYWRkbXVsdGkoc3Ry dWN0IGlmbmV0ICppZnAsIHN0cnVjdCBzb2NrYWRkciAqc2EsDQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgc3RydWN0IHNvY2thZGRyX2RsIHNkbDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQgZXJy b3I7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiArI2lmZGVmIElORVQNCj4gPj4g Pj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4g Pj4gPiA+PiArI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4gKyNpZmRlZiBJTkVUNg0KPiA+PiA+PiA+ PiA+ID4+ICsgICAgIElONl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4g PiA+PiArI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgLyoNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICAgKiBJZiB0aGUgYWRkcmVzcyBpcyBhbHJlYWR5IHByZXNlbnQsIHJldHVybiBhIG5ldyBy ZWZlcmVuY2UgdG8gaXQ7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICogb3RoZXJ3aXNlLCBhbGxv Y2F0ZSBzdG9yYWdlIGFuZCBzZXQgdXAgYSBuZXcgYWRkcmVzcy4NCj4gPj4gPj4gPj4gPiA+PiBA QCAtMzYxMCw2ICszNjE4LDkgQEAgaWZfZGVsbXVsdGlfaWZtYShzdHJ1Y3QgaWZtdWx0aWFkZHIg KmlmbWEpDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbmV0ICppZnA7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgaW50IGxhc3RyZWY7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4g PiA+PiArI2lmZGVmIElORVQNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VO TE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiArI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgaWZwID0gaWZtYS0+aWZtYV9pZnA7DQo+ID4+ID4+ID4+ID4gPj4gICNpZmRlZiBESUFH Tk9TVElDDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYgKGlmcCA9PSBOVUxMKSB7DQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTM3MTEsOCArMzcyMiw3IEBAIGlmX2RlbG11bHRpX2xvY2tlZChzdHJ1Y3Qg aWZuZXQgKmlmcCwgc3RydWN0DQo+ID4+ID4+ID4+ID4gPj4gaWZtdWx0aWFkIGlmX2ZyZWVtdWx0 aShsbF9pZm1hKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4gPj4gPj4g PiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIGlm IChpZnAgIT0gTlVMTCkNCj4gPj4gPj4gPj4gPiA+PiArICAgICBpZiAoaWZwICE9IE5VTEwgJiYg ZGV0YWNoaW5nID09IDApDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBUQUlMUV9SRU1P VkUoJmlmcC0+aWZfbXVsdGlhZGRycywgaWZtYSwgaWZtYV9saW5rKTsNCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmX2ZyZWVtdWx0aShpZm1hKTsNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYw0K PiA+PiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+IC0t LSBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYyAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAgICAg ICAgKHIzMzMxNzQpDQo+ID4+ID4+ID4+ID4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaWdtcC5j ICAgV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4gPj4g PiA+PiBAQCAtMTM2LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgICAgICAgIGlnbXBfdjNfZW5xdWV1 ZV9ncm91cF9yZWNvcmQoc3RydWN0DQo+ID4+ID4+ID4+ID4gPj4gbWJ1ZnENCj4gPj4gPj4gPj4g PiA+PiAqIHN0cnVjdCBpbl9tdWx0aSAqLCBjb25zdCBpbnQsIGNvbnN0IGludCwgY29uc3QgaW50 KTsNCj4gPj4gPj4gPj4gPiA+PiAgc3RhdGljIGludCAgIGlnbXBfdjNfZW5xdWV1ZV9maWx0ZXJf Y2hhbmdlKHN0cnVjdCBtYnVmcSAqLA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAg IHN0cnVjdCBpbl9tdWx0aSAqKTsNCj4gPj4gPj4gPj4gPiA+PiAtc3RhdGljIHZvaWQgIGlnbXBf djNfcHJvY2Vzc19ncm91cF90aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0YyAqLA0KPiA+PiA+PiA+ PiA+ID4+ICtzdGF0aWMgdm9pZCAgaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycyhzdHJ1Y3Qg aW5fbXVsdGlfaGVhZCAqLA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgIHN0cnVj dCBtYnVmcSAqLCBzdHJ1Y3QgbWJ1ZnEgKiwgc3RydWN0IGluX211bHRpICosDQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICAgICAgICAgICAgY29uc3QgaW50KTsNCj4gPj4gPj4gPj4gPiA+PiAgc3Rh dGljIGludCAgIGlnbXBfdjNfbWVyZ2Vfc3RhdGVfY2hhbmdlcyhzdHJ1Y3QgaW5fbXVsdGkgKiwN Cj4gPj4gPj4gPj4gPiA+PiBAQCAtMTYyLDEyICsxNjIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBuZXRpc3JfaGFuZGxlciBpZ21wX25oID0gew0KPiA+PiA+PiA+PiA+ID4+ICAgKiB0aGVtc2Vs dmVzIGFyZSBub3QgdmlydHVhbGl6ZWQuDQo+ID4+ID4+ID4+ID4gPj4gICAqDQo+ID4+ID4+ID4+ ID4gPj4gICAqIExvY2tpbmc6DQo+ID4+ID4+ID4+ID4gPj4gLSAqICAqIFRoZSBwZXJtaXR0ZWQg bG9jayBvcmRlciBpczogSU5fTVVMVElfTE9DSywgSUdNUF9MT0NLLA0KPiA+PiA+PiA+PiA+ID4+ IElGX0FERFJfTE9DSy4NCj4gPj4gPj4gPj4gPiA+PiArICogICogVGhlIHBlcm1pdHRlZCBsb2Nr IG9yZGVyIGlzOiBJTl9NVUxUSV9MSVNUX0xPQ0ssIElHTVBfTE9DSywNCj4gPj4gPj4gPj4gPiA+ PiBJRl9BRERSX0xPQ0suDQo+ID4+ID4+ID4+ID4gPj4gICAqICAgIEFueSBtYXkgYmUgdGFrZW4g aW5kZXBlbmRlbnRseTsgaWYgYW55IGFyZSBoZWxkIGF0IHRoZSBzYW1lDQo+ID4+ID4+ID4+ID4g Pj4gICAqICAgIHRpbWUsIHRoZSBhYm92ZSBsb2NrIG9yZGVyIG11c3QgYmUgZm9sbG93ZWQuDQo+ ID4+ID4+ID4+ID4gPj4gICAqICAqIEFsbCBvdXRwdXQgaXMgZGVsZWdhdGVkIHRvIHRoZSBuZXRp c3IuDQo+ID4+ID4+ID4+ID4gPj4gICAqICAgIE5vdyB0aGF0IEdpYW50IGhhcyBiZWVuIGVsaW1p bmF0ZWQsIHRoZSBuZXRpc3IgbWF5IGJlIGlubGluZWQuDQo+ID4+ID4+ID4+ID4gPj4gLSAqICAq IElOX01VTFRJX0xPQ0sgY292ZXJzIGluX211bHRpLg0KPiA+PiA+PiA+PiA+ID4+ICsgKiAgKiBJ Tl9NVUxUSV9MSVNUX0xPQ0sgY292ZXJzIGluX211bHRpLg0KPiA+PiA+PiA+PiA+ID4+ICAgKiAg KiBJR01QX0xPQ0sgY292ZXJzIGlnbXBfaWZzb2Z0YyBhbmQgYW55IGdsb2JhbCB2YXJpYWJsZXMg aW4gdGhpcw0KPiA+PiA+PiA+PiA+ID4+IGZpbGUsDQo+ID4+ID4+ID4+ID4gPj4gICAqICAgIGlu Y2x1ZGluZyB0aGUgb3V0cHV0IHF1ZXVlLg0KPiA+PiA+PiA+PiA+ID4+ICAgKiAgKiBJRl9BRERS X0xPQ0sgY292ZXJzIGlmX211bHRpYWRkcnMsIHdoaWNoIGlzIHVzZWQgZm9yIGEgdmFyaWV0eSBv Zg0KPiA+PiA+PiA+PiA+ID4+IEBAIC00NDEsNyArNDQxLDcgQEAgc3lzY3RsX2lnbXBfaWZpbmZv KFNZU0NUTF9IQU5ETEVSX0FSR1MpDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYgKGVycm9yKQ0K PiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgcmV0dXJuIChlcnJvcik7DQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg SUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZiAo bmFtZVswXSA8PSAwIHx8IG5hbWVbMF0gPiBWX2lmX2luZGV4KSB7DQo+ID4+ID4+ID4+ID4gPj4g QEAgLTQ3NSw3ICs0NzUsNyBAQCBzeXNjdGxfaWdtcF9pZmluZm8oU1lTQ1RMX0hBTkRMRVJfQVJH UykNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5f TVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxP Q0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPj4gPj4g PiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTU4Niw3ICs1ODYs NiBAQCBpZ2lfYWxsb2NfbG9ja2VkKC8qY29uc3QqLyBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICBpZ2ktPmlnaV9xaSA9IElHTVBfUUlfSU5JVDsNCj4gPj4gPj4gPj4g PiA+PiAgICAgICBpZ2ktPmlnaV9xcmkgPSBJR01QX1FSSV9JTklUOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIGlnaS0+aWdpX3VyaSA9IElHTVBfVVJJX0lOSVQ7DQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgU0xJU1RfSU5JVCgmaWdpLT5pZ2lfcmVsaW5taGVhZCk7DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgbWJ1ZnFfaW5pdCgmaWdpLT5pZ2lfZ3EsIElHTVBfTUFYX1JFU1BPTlNFX1BBQ0tFVFMpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgTElTVF9JTlNFUlRfSEVBRCgm Vl9pZ2lfaGVhZCwgaWdpLCBpZ2lfbGluayk7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTYxMiwxMSAr NjExLDEyIEBAIGlnbXBfaWZkZXRhY2goc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4g Pj4gIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICAgICAqaWdp Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAgICAgICppZm1hOw0K PiA+PiA+PiA+PiA+ID4+IC0gICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5t Ow0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVs dGkgICAgICAgICAqaW5tOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9o ZWFkIGlubV9mcmVlX3RtcDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVFIzKEtUUl9JR01QVjMs ICIlczogY2FsbGVkIGZvciBpZnAgJXAoJXMpIiwgX19mdW5jX18sIGlmcCwNCj4gPj4gPj4gPj4g PiA+PiAgICAgICAgICAgaWZwLT5pZl94bmFtZSk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4g Pj4gPiA+PiArICAgICBTTElTVF9JTklUKCZpbm1fZnJlZV90bXApOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIElHTVBfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5p aV9pZ21wOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC02MzEsMjQgKzYzMSwxNSBAQCBpZ21wX2lmZGV0 YWNoKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCIlczogaWZtYV9wcm90b3NwZWMgaXMgTlVMTCIsIF9fZnVuY19fKSk7DQo+ID4+ ID4+ID4+ID4gPj4gICNlbmRpZg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAg ICBpbm0gPSAoc3RydWN0IGluX211bHRpICopaWZtYS0+aWZtYV9wcm90b3NwZWM7DQo+ID4+ID4+ ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgIGlmIChpbm0tPmlubV9zdGF0ZSA9PSBJR01Q X0xFQVZJTkdfTUVNQkVSKSB7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0xJU1RfSU5TRVJUX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsDQo+ID4+ID4+ ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubSwgaW5tX25yZWxl KTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFW SU5HX01FTUJFUikNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbm1fcmVsZV9sb2NrZWQoJmlubV9mcmVlX3RtcCwgaW5tKTsNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICAgICAgICAgICAgICAgICAgaW5tX2NsZWFyX3JlY29yZGVkKGlubSk7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBJRl9B RERSX1JVTkxPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIC8qDQo+ID4+ ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgKiBGcmVlIHRoZSBpbl9tdWx0aSByZWZlcmVuY2Uo cykgZm9yIHRoaXMgSUdNUCBsaWZlY3ljbGUuDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShp bm0sICZpZ2ktPmlnaV9yZWxpbm1oZWFkLCBpbm1fbnJlbGUsDQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgICAgICAgICAgICAgdGlubSkgew0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAg ICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwgaW5tX25yZWxlKTsN Cj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2VfbG9ja2Vk KGlubSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4g KyAgICAgICAgICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKCZpbm1fZnJlZV90bXApOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4g Pj4gIH0NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+PiA+ ID4+IEBAIC02ODQsMTEgKzY3NSw2IEBAIGlnaV9kZWxldGVfbG9ja2VkKGNvbnN0IHN0cnVjdCBp Zm5ldCAqaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBtYnVmcV9k cmFpbigmaWdpLT5pZ2lfZ3EpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgICAgICAgICAgICAgICAgIExJU1RfUkVNT1ZFKGlnaSwgaWdpX2xpbmspOw0KPiA+PiA+PiA+ PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgS0FTU0VSVChT TElTVF9FTVBUWSgmaWdpLT5pZ2lfcmVsaW5taGVhZCksDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAoIiVzOiB0aGVyZSBhcmUgZGFuZ2xpbmcgaW5fbXVsdGkgcmVm ZXJlbmNlcyIsDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1 bmNfXykpOw0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgZnJlZShpZ2ksIE1fSUdNUCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICAgICAgICAgIHJldHVybjsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4g Pj4gPj4gPiA+PiBAQCAtNzIyLDcgKzcwOCw3IEBAIGlnbXBfaW5wdXRfdjFfcXVlcnkoc3RydWN0 IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIH0NCj4g Pj4gPj4gPj4gPiA+PiAgICAgICBJR01QU1RBVF9JTkMoaWdwc19yY3ZfZ2VuX3F1ZXJpZXMpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DSygpOw0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIElHTVBfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0p LT5paV9pZ21wOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC03NzgsNyArNzY0LDcgQEAgaWdtcF9pbnB1 dF92MV9xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBJR01QX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ ID4+ICB9DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTgxNiw3ICs4MDIsNyBAQCBpZ21wX2lucHV0X3Yy X3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaXANCj4gPj4gPj4gPj4gPiA+ PiAgICAgICAgICAgICAgIElHTVBTVEFUX0lOQyhpZ3BzX3Jjdl9ncm91cF9xdWVyaWVzKTsNCj4g Pj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElT VF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZ2kgPSAoKHN0cnVjdCBpbl9pZmluZm8gKilp ZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTg3 Miw3ICs4NTgsNyBAQCBpZ21wX2lucHV0X3YyX3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25z dCBzdHJ1Y3QgaXANCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICBvdXRfbG9ja2Vk Og0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElf TElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHJl dHVybiAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtODk5LDcg Kzg4NSw3IEBAIGlnbXBfdjJfdXBkYXRlX2dyb3VwKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25z dCBpbnQgdA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIENUUjQoS1RSX0lHTVBWMywgIjB4JTA4eDog JXMvJXMgdGltZXI9JWQiLCBfX2Z1bmNfXywNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgbnRv aGwoaW5tLT5pbm1fYWRkci5zX2FkZHIpLCBpbm0tPmlubV9pZnAtPmlmX3huYW1lLCB0aW1lcik7 DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FT U0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQo KTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN3aXRjaCAoaW5tLT5p bm1fc3RhdGUpIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBjYXNlIElHTVBfTk9UX01FTUJFUjoN Cj4gPj4gPj4gPj4gPiA+PiBAQCAtMTAxMSw3ICs5OTcsNyBAQCBpZ21wX2lucHV0X3YzX3F1ZXJ5 KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QNCj4gPj4gPj4gPj4gPiA+PiBpcCBJR01Q U1RBVF9JTkMoaWdwc19yY3ZfZ3NyX3F1ZXJpZXMpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIH0N Cj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsN Cj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4gPj4g PiA+PiAgICAgICBJR01QX0xPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIGlnaSA9ICgoc3RydWN0IGluX2lmaW5mbyAqKWlmcC0+aWZfYWZkYXRhW0FGX0lORVRd KS0+aWlfaWdtcDsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTA5Miw3ICsxMDc4LDcgQEAgaWdtcF9p bnB1dF92M19xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0DQo+ID4+ID4+ID4+ ID4gPj4gaXANCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElT VF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHJldHVy biAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTEwOSw3ICsx MDk1LDcgQEAgaWdtcF9pbnB1dF92M19ncm91cF9xdWVyeShzdHJ1Y3QgaW5fbXVsdGkgKmlubSwN Cj4gPj4gPj4gPj4gPiA+PiBzdHJ1Y3QgaW50ICAgICAgICAgICAgICAgICAgICAgIHJldHZhbDsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICB1aW50MTZfdCAgICAgICAgICAgICAgICAgbnNyYzsNCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJU KCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHJldHZhbCA9IDA7DQo+ID4+ID4+ID4+ID4gPj4gQEAg LTEyNDYsNyArMTIzMiw3IEBAIGlnbXBfaW5wdXRfdjFfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZw LCAvKmNvbnN0Ki8NCj4gPj4gPj4gPj4gPiA+PiBzdHJ1DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg ICogSWYgd2UgYXJlIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAsIGFuZCBvdXIgbWVtYmVyc2hpcCBz aG91bGQgYmUNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgKiByZXBvcnRlZCwgc3RvcCBvdXIgZ3Jv dXAgdGltZXIgYW5kIHRyYW5zaXRpb24gdG8gdGhlICdsYXp5Jw0KPiA+PiA+PiA+PiA+ID4+IHN0 YXRlLiAqLw0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gPj4g Pj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBpbm0gPSBpbm1fbG9va3VwKGlmcCwgaWdtcC0+aWdtcF9ncm91cCk7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgaWYgKGlubSAhPSBOVUxMKSB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2k7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTEzMDUsNyAr MTI5MSw3IEBAIGlnbXBfaW5wdXRfdjFfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZwLCAvKmNvbnN0 Ki8NCj4gPj4gPj4gPj4gPiA+PiBzdHJ1IH0NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ ID4+ICB9DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTEzNzMsNyArMTM1OSw3IEBAIGlnbXBfaW5wdXRf djJfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZwLCAvKmNvbnN0Ki8NCj4gPj4gPj4gPj4gPiA+PiBz dHJ1DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICogcmVwb3J0ZWQsIGFuZCBvdXIgZ3JvdXAgdGlt ZXIgaXMgcGVuZGluZyBvciBhYm91dCB0byBiZSByZXNldCwNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICAgKiBzdG9wIG91ciBncm91cCB0aW1lciBieSB0cmFuc2l0aW9uaW5nIHRvIHRoZSAnbGF6eScg c3RhdGUuDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICovDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAg SU5fTVVMVElfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9D SygpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlubSA9IGlubV9sb29rdXAoaWZwLCBpZ21wLT5p Z21wX2dyb3VwKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZiAoaW5tICE9IE5VTEwpIHsNCj4g Pj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaTsNCj4g Pj4gPj4gPj4gPiA+PiBAQCAtMTQxOCw3ICsxNDA0LDcgQEAgaWdtcF9pbnB1dF92Ml9yZXBvcnQo c3RydWN0IGlmbmV0ICppZnAsIC8qY29uc3QqLw0KPiA+PiA+PiA+PiA+ID4+IHN0cnUgfQ0KPiA+ PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIG91dF9sb2NrZWQ6DQo+ID4+ID4+ID4+ID4g Pj4gLSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVM VElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IHJldHVybiAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTY0 Nyw2ICsxNjMzLDcgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgc3RydWN0IGlnbXBfaWZzb2Z0YyAgICAgKmlnaTsNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBzdHJ1Y3QgaWZtdWx0aWFkZHIgICAgICAqaWZtYTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBz dHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHN0cnVj dCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX3RtcDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQg ICAgICAgICAgICAgICAgICAgICAgbG9vcCwgdXJpX2Zhc3RoejsNCj4gPj4gPj4gPj4gPiA+Pg0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIGxvb3AgPSAwOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xNjYy LDcgKzE2NDksOCBAQCBpZ21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICAgICAgIVZfc3RhdGVfY2hhbmdlX3RpbWVyc19ydW5uaW5nKQ0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQo JmlubV9mcmVlX3RtcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL KCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4N Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xNzIwLDcgKzE3 MDgsNyBAQCBpZ21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdpLT5pZ2lfdmVyc2lvbik7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgIGNhc2UgSUdNUF9WRVJTSU9OXzM6DQo+ID4+ID4+ID4+ ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdtcF92M19wcm9jZXNzX2dyb3Vw X3RpbWVycyhpZ2ksICZxcnEsDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycygmaW5tX2ZyZWVfdG1wLA0KPiA+ PiA+PiA+PiA+ID4+ICZxcnEsICZzY3EsIGlubSwgdXJpX2Zhc3Roeik7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTcyOCw4ICsxNzE2 LDYgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAg ICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgICAgICAgICAgaWYgKGlnaS0+aWdpX3ZlcnNpb24gPT0gSUdNUF9WRVJTSU9OXzMp IHsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluX211bHRp ICAgICAgICAgKnRpbm07DQo+ID4+ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAg ICAgICAgICAgICAgICAgICBpZ21wX2Rpc3BhdGNoX3F1ZXVlKCZxcnEsIDAsIGxvb3ApOw0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpZ21wX2Rpc3BhdGNoX3F1ZXVlKCZz Y3EsIDAsIGxvb3ApOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTE3Mzcs MTggKzE3MjMsMTMgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgICAqIEZyZWUgdGhlIGluX211bHRpIHJlZmVyZW5jZShzKSBm b3IgdGhpcw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgKiBJR01QIGxp ZmVjeWNsZS4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ID4+ ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0s ICZpZ2ktPmlnaV9yZWxpbm1oZWFkLA0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgaW5tX25yZWxlLCB0aW5tKSB7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU0xJU1RfUkVNT1ZFX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQs DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubV9u cmVsZSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5t X3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAg ICAgIH0NCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2Vf bGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAg ICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4g Pj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJR01QX1VOTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x NzYwLDcgKzE3NDEsNyBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90aW1lcihzdHJ1Y3QgaW5f bXVsdGkgKmlubSwNCj4gPj4gPj4gPj4gPiA+PiBjbyB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg aW50IHJlcG9ydF90aW1lcl9leHBpcmVkOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4g Pj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJ Tl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYg KGlubS0+aW5tX3RpbWVyID09IDApIHsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTgwMiwxNCArMTc4 MywxNCBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90aW1lcihzdHJ1Y3QgaW5fbXVsdGkNCj4g Pj4gPj4gPj4gPiA+PiAqaW5tLCBjbw0KPiA+PiA+PiA+PiA+ID4+ICAgKiBOb3RlOiBVbmxvY2tl ZCByZWFkIGZyb20gaWdpLg0KPiA+PiA+PiA+PiA+ID4+ICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAg c3RhdGljIHZvaWQNCj4gPj4gPj4gPj4gPiA+PiAtaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVy cyhzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2ksDQo+ID4+ID4+ID4+ID4gPj4gK2lnbXBfdjNfcHJv Y2Vzc19ncm91cF90aW1lcnMoc3RydWN0IGluX211bHRpX2hlYWQgKmlubWgsDQo+ID4+ID4+ID4+ ID4gPj4gICAgICBzdHJ1Y3QgbWJ1ZnEgKnFycSwgc3RydWN0IG1idWZxICpzY3EsDQo+ID4+ID4+ ID4+ID4gPj4gICAgICBzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgY29uc3QgaW50IHVyaV9mYXN0aHop DQo+ID4+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQgcXVlcnlfcmVz cG9uc2VfdGltZXJfZXhwaXJlZDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQgc3RhdGVfY2hh bmdlX3JldHJhbnNtaXRfdGltZXJfZXhwaXJlZDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElH TVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IHF1ZXJ5X3Jlc3BvbnNlX3RpbWVyX2V4cGlyZWQgPSAwOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x OTA3LDggKzE4ODgsNyBAQCBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVjdCBpZ21w X2lmc29mdGMNCj4gPj4gPj4gPj4gPiA+PiAqaWdpLCBpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdN UF9MRUFWSU5HX01FTUJFUiAmJg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5tLT5pbm1fc2NydiA9PSAwKSB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5tLT5pbm1fc3RhdGUgPSBJR01QX05PVF9NRU1CRVI7DQo+ID4+ ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0xJU1RfSU5TRVJUX0hF QUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlubSwgaW5tX25yZWxlKTsNCj4gPj4gPj4gPj4gPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoaW5taCwgaW5tKTsNCj4g Pj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgICAgICAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ ID4+ID4+ID4gPj4gQEAgLTE5MjksNyArMTkwOSw3IEBAIHN0YXRpYyB2b2lkDQo+ID4+ID4+ID4+ ID4gPj4gIGlnbXBfdjNfc3VwcHJlc3NfZ3JvdXBfcmVjb3JkKHN0cnVjdCBpbl9tdWx0aSAqaW5t KQ0KPiA+PiA+PiA+PiA+ID4+ICB7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01V TFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIEtBU1NFUlQoaW5tLT5pbm1faWdpLT5pZ2lfdmVyc2lvbiA9PSBJR01QX1ZFUlNJT05f MywNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICgiJXM6IG5vdCBJR01QdjMgbW9kZSBv biBsaW5rIiwgX19mdW5jX18pKTsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjAwMywxMyArMTk4Mywx NSBAQCBpZ21wX3YzX2NhbmNlbF9saW5rX3RpbWVycyhzdHJ1Y3QgaWdtcF9pZnNvZnRjDQo+ID4+ ID4+ID4+ID4gPj4gKmlnaSkgew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRp YWRkciAgICAgICppZm1hOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm5ldCAgICAg ICAgICAgICppZnA7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgc3RydWN0IGluX211bHRpICAgICAg ICAgKmlubSwgKnRpbm07DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgc3RydWN0IGluX211bHRpICAg ICAgICAgKmlubTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBp bm1fZnJlZV90bXA7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVFIz KEtUUl9JR01QVjMsICIlczogY2FuY2VsIHYzIHRpbWVycyBvbiBpZnAgJXAoJXMpIiwgX19mdW5j X18sDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgIGlnaS0+aWdpX2lmcCwgaWdpLT5pZ2lfaWZw LT5pZl94bmFtZSk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAgICBJTl9N VUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1Rf TE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJR01QX0xPQ0tfQVNTRVJUKCk7 DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgU0xJU1RfSU5JVCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgICogU3RvcCB0aGUgdjMgR2VuZXJhbCBRdWVyeSBSZXNwb25zZSBvbiB0aGlzIGxpbmsgc3Rv bmUgZGVhZC4NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjA1MCw3ICsyMDMyLDcgQEAgaWdtcF92M19j YW5jZWxfbGlua190aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWdpKQ0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgICAgICAgICAgICAgICAgICAgKiBtZXNzYWdlIGlzIHNlbnQgdXBzdHJlYW0gdG8g dGhlIG9sZCBxdWVyaWVyIC0tDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAg ICAqIHRyYW5zaXRpb24gdG8gTk9UIHdvdWxkIGxvc2UgdGhlIGxlYXZlIGFuZCByYWNlLg0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICAgICAgICAgICAgICAgICAgU0xJU1RfSU5TRVJUX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhl YWQsIGlubSwNCj4gPj4gPj4gPj4gPiA+PiBpbm1fbnJlbGUpOw0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoJmlubV9mcmVlX3RtcCwgaW5tKTsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgLyogRkFMTFRIUk9VR0ggKi8N Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGNhc2UgSUdNUF9HX1FVRVJZX1BFTkRJTkdf TUVNQkVSOg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgY2FzZSBJR01QX1NHX1FVRVJZ X1BFTkRJTkdfTUVNQkVSOg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yMDY5LDEwICsyMDUxLDggQEAg aWdtcF92M19jYW5jZWxfbGlua190aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0Yw0KPiA+PiA+PiA+ PiA+ID4+ICppZ2kpIG1idWZxX2RyYWluKCZpbm0tPmlubV9zY3EpOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4g Pj4gPj4gPj4gPiA+PiAtICAgICBTTElTVF9GT1JFQUNIX1NBRkUoaW5tLCAmaWdpLT5pZ2lfcmVs aW5taGVhZCwgaW5tX25yZWxlLCB0aW5tKSB7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwgaW5tX25yZWxlKTsNCj4g Pj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0KPiA+ PiA+PiA+PiA+ID4+IC0gICAgIH0NCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4g KyAgICAgaW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4gPj4g Pj4gPiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTIxOTksNyArMjE3OSw3IEBAIGlnbXBfdjF2Ml9xdWV1ZV9yZXBvcnQoc3Ry dWN0IGluX211bHRpICppbm0sIGNvbnN0DQo+ID4+ID4+ID4+ID4gPj4gaW50IHN0cnVjdCBpcCAg ICAgICAgICAgICAgICppcDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgbWJ1ZiAgICAg ICAgICAgICAqbTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01V TFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsN Cj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lm cDsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjI3NiwxMCArMjI1Niw4IEBAIGlnbXBfY2hhbmdlX3N0 YXRlKHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBp Zm5ldCAqaWZwOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGludCBlcnJvcjsNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGVycm9yID0gMDsNCj4gPj4gPj4g Pj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAvKg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAqIFRyeSB0 byBkZXRlY3QgaWYgdGhlIHVwcGVyIGxheWVyIGp1c3QgYXNrZWQgdXMgdG8gY2hhbmdlIHN0YXRl DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICogZm9yIGFuIGludGVyZmFjZSB3aGljaCBoYXMgbm93 IGdvbmUgYXdheS4NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjM3OSw5ICsyMzU3LDEwIEBAIGlnbXBf aW5pdGlhbF9qb2luKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBzdHJ1Y3QNCj4gPj4gPj4gPj4gPiA+ PiBpZ21wX2lmDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgKiBncm91cCBhcm91bmQg Zm9yIHRoZSBmaW5hbCBJTkNMVURFIHt9IGVucXVldWUuDQo+ID4+ID4+ID4+ID4gPj4gICAgICAg ICAgICAgICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlmIChpZ2ktPmlnaV92 ZXJzaW9uID09IElHTVBfVkVSU0lPTl8zICYmDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgICAgaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFWSU5HX01FTUJFUikNCj4gPj4gPj4gPj4g PiA+PiAtICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgICAgIGlubS0+aW5t X3N0YXRlID09IElHTVBfTEVBVklOR19NRU1CRVIpIHsNCj4gPj4gPj4gPj4gPiA+PiArICAgICAg ICAgICAgICAgICAgICAgTVBBU1MoaW5tLT5pbm1fcmVmY291bnQgPiAxKTsNCj4gPj4gPj4gPj4g PiA+PiArICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVfbG9ja2VkKE5VTEwsIGlubSk7DQo+ ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAg ICAgICBpbm0tPmlubV9zdGF0ZSA9IElHTVBfUkVQT1JUSU5HX01FTUJFUjsNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgc3dpdGNoIChpZ2ktPmlnaV92ZXJz aW9uKSB7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTI0NzMsNyArMjQ1Miw3IEBAIGlnbXBfaGFuZGxl X3N0YXRlX2NoYW5nZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSwNCj4gPj4gPj4gPj4gPiA+PiBzdHJ1 Y3QNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5t X2lmcDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xP Q0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FT U0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIEtBU1NFUlQoaWdpICYmIGlnaS0+aWdp X2lmcCA9PSBpZnAsICgiJXM6IGluY29uc2lzdGVudCBpZnAiLA0KPiA+PiA+PiA+PiA+ID4+IF9f ZnVuY19fKSk7IEBAIC0yNTMxLDcgKzI1MTAsNyBAQCBpZ21wX2ZpbmFsX2xlYXZlKHN0cnVjdCBp bl9tdWx0aSAqaW5tLA0KPiA+PiA+PiA+PiA+ID4+IHN0cnVjdCBpZ21wX2lmcyBfX2Z1bmNfXywg bnRvaGwoaW5tLT5pbm1fYWRkci5zX2FkZHIpLCBpbm0tPmlubV9pZnAsDQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgIGlubS0+aW5tX2lmcC0+aWZfeG5hbWUpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4g PiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgc3dpdGNoIChpbm0tPmlubV9zdGF0ZSkgew0KPiA+PiA+PiA+PiA+ID4+IEBAIC0y NjU4LDcgKzI2MzcsNyBAQCBpZ21wX3YzX2VucXVldWVfZ3JvdXBfcmVjb3JkKHN0cnVjdCBtYnVm cSAqbXEsDQo+ID4+ID4+ID4+ID4gPj4gc3RydWN0IGluX2FkZHJfdCAgICAgICAgICAgICAgICBu YWRkcjsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB1aW50OF90ICAgICAgICAgICAgICAgICAgbW9k ZTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tf QVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VS VCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgZXJyb3IgPSAwOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lmcDsNCj4gPj4gPj4gPj4gPiA+ PiBAQCAtMzAxOCw3ICsyOTk3LDcgQEAgaWdtcF92M19lbnF1ZXVlX2ZpbHRlcl9jaGFuZ2Uoc3Ry dWN0IG1idWZxICptcSwNCj4gPj4gPj4gPj4gPiA+PiBzdHJ1Y3QgdWludDhfdCAgICAgICAgICAg ICAgICAgIG1vZGUsIG5vdywgdGhlbjsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZWN0eXBlX3Qg ICAgICAgICAgICAgICAgY3J0LCBkcnQsIG5ydDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgaWYgKGlubS0+aW5tX25zcmMgPT0gMCB8fA0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgICAgICAoaW5tLT5pbm1fc3RbMF0uaXNzX2FzbSA+IDAgJiYgaW5tLT5pbm1fc3RbMV0u aXNzX2FzbSA+IDApKQ0KPiA+PiA+PiA+PiA+ID4+IEBAIC0zMjIxLDcgKzMyMDAsNyBAQCBpZ21w X3YzX21lcmdlX3N0YXRlX2NoYW5nZXMoc3RydWN0IGluX211bHRpICppbm0sDQo+ID4+ID4+ID4+ ID4gPj4gc3RydSBkb21lcmdlID0gMDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZWNzbGVuID0g MDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tf QVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VS VCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4g Pj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4gQEAgLTMz MjAsNyArMzI5OSw3IEBAIGlnbXBfdjNfZGlzcGF0Y2hfZ2VuZXJhbF9xdWVyeShzdHJ1Y3QgaWdt cF9pZnNvZnRjDQo+ID4+ID4+ID4+ID4gPj4gKmlnIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICpp bm07DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHJldHZh bCwgbG9vcDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJ X0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL X0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIEtBU1NFUlQoaWdpLT5pZ2lfdmVy c2lvbiA9PSBJR01QX1ZFUlNJT05fMywNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMzYzMiw3ICszNjEx LDYgQEAgREJfU0hPV19DT01NQU5EKGlnaV9saXN0LCBkYl9zaG93X2lnaV9saXN0KQ0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCIgICAgcWkgJXVcbiIsIGlnaS0+aWdp X3FpKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50ZigiICAgIHFyaSAl dVxuIiwgaWdpLT5pZ2lfcXJpKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGRiX3By aW50ZigiICAgIHVyaSAldVxuIiwgaWdpLT5pZ2lfdXJpKTsNCj4gPj4gPj4gPj4gPiA+PiAtICAg ICAgICAgICAgIC8qIFNMSVNUX0hFQUQoLGluX211bHRpKSAgIGlnaV9yZWxpbm1oZWFkICovDQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAvKiBzdHJ1Y3QgbWJ1ZnEgICAgaWdpX2dxOyAq Lw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCJcbiIpOw0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IE1vZGlm aWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXBfdmFyLmgNCj4gPj4gPj4gPj4gPiA+PiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCj4gPj4gPj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0aW5ldC9pZ21w X3Zhci5oICAgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOA0KPiA+PiA+PiA+PiA+ID4+IChy MzMzMTc0KSArKysgaGVhZC9zeXMvbmV0aW5ldC9pZ21wX3Zhci5oICAgICAgIFdlZCBNYXkgIDIg MTk6MzY6MjkNCj4gPj4gPj4gPj4gPiA+PiAyMDE4ICAgICAgICAocjMzMzE3NSkgQEAgLTIxNCw3 ICsyMTQsNiBAQCBzdHJ1Y3QgaWdtcF9pZnNvZnRjIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB1 aW50MzJfdCBpZ2lfcWk7ICAgICAgICAvKiBJR01QdjMgUXVlcnkgSW50ZXJ2YWwgKHMpICovDQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgdWludDMyX3QgaWdpX3FyaTsgICAgICAgLyogSUdNUHYzIFF1 ZXJ5IFJlc3BvbnNlIEludGVydmFsIChzKSAqLw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHVpbnQz Ml90IGlnaV91cmk7ICAgICAgIC8qIElHTVB2MyBVbnNvbGljaXRlZCBSZXBvcnQgSW50ZXJ2YWwg KHMpICovDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgU0xJU1RfSEVBRCgsaW5fbXVsdGkpICAgaWdp X3JlbGlubWhlYWQ7IC8qIHJlbGVhc2VkIGdyb3VwcyAqLw0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IHN0cnVjdCBtYnVmcSAgICBpZ2lfZ3E7ICAgICAgICAgLyogZ2VuZXJhbCBxdWVyeSByZXNwb25z ZXMgcXVldWUgKi8NCj4gPj4gPj4gPj4gPiA+PiAgfTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+ PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gTW9kaWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvaW4u Yw0KPiA+PiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+ IC0tLSBoZWFkL3N5cy9uZXRpbmV0L2luLmMgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAg ICAgICAgKHIzMzMxNzQpDQo+ID4+ID4+ID4+ID4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaW4u YyAgICAgV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4g Pj4gPiA+PiBAQCAtNjMyLDEyICs2MzIsMTAgQEAgaW5fZGlmYWRkcl9pb2N0bCh1X2xvbmcgY21k LCBjYWRkcl90IGRhdGEsIHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IGlmbmUgc3RydWN0IGluX2lm aW5mbyAqaWk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAg IGlpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pOw0KPiA+ PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgICAgICAgICAgaWYgKGlpLT5paV9hbGxob3N0cykgew0KPiA+PiA+PiA+PiA+ID4+ IC0gICAgICAgICAgICAgICAgICAgICAodm9pZClpbl9sZWF2ZWdyb3VwX2xvY2tlZChpaS0+aWlf YWxsaG9zdHMsIE5VTEwpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAo dm9pZClpbl9sZWF2ZWdyb3VwKGlpLT5paV9hbGxob3N0cywgTlVMTCk7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgIGlpLT5paV9hbGxob3N0cyA9IE5VTEw7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICBJ Tl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJRl9BRERSX1dMT0NLKGlmcCk7DQo+ID4+ID4+ID4+ ID4gPj4gQEAgLTk5NCwxMSArOTkyLDEyIEBAIGluX2Jyb2FkY2FzdChzdHJ1Y3QgaW5fYWRkciBp biwgc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4gPj4gIHZvaWQNCj4gPj4gPj4gPj4g PiA+PiAgaW5faWZkZXRhY2goc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4gPj4gIHsN Cj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGluX3BjYnB1cmdlaWYwKCZWX3JpcGNiaW5mbywgaWZw KTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbl9wY2JwdXJnZWlmMCgmVl91ZGJpbmZvLCBpZnAp Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGluX3BjYnB1cmdlaWYwKCZWX3VsaXRlY2JpbmZvLCBp ZnApOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGluX3B1cmdlbWFkZHJzKGlmcCk7DQo+ID4+ID4+ ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x MDExLDEyICsxMDEwLDEyIEBAIGluX2lmZGV0YWNoKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+ PiA+PiA+ID4+ICBzdGF0aWMgdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICBpbl9wdXJnZW1hZGRycyhz dHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4gPj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+PiA+ID4+IC0g ICAgIExJU1RfSEVBRCgsaW5fbXVsdGkpIHB1cmdlaW5tczsNCj4gPj4gPj4gPj4gPiA+PiAtICAg ICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tLCAqdGlubTsNCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBwdXJnZWlubXM7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBz dHJ1Y3QgaWZtdWx0aWFkZHIgICAgICAqaWZtYTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IC0gICAgIExJU1RfSU5JVCgmcHVyZ2Vpbm1zKTsNCj4gPj4gPj4gPj4gPiA+PiAtICAg ICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgU0xJU1RfSU5JVCgmcHVy Z2Vpbm1zKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICogRXh0cmFjdCBsaXN0IG9mIGluX211bHRpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV0 YWNoaW5nIGlmcA0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xMDM0LDE3ICsxMDMzLDEzIEBAIGluX3B1 cmdlbWFkZHJzKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAg ICAgICAgICgiJXM6IGlmbWFfcHJvdG9zcGVjIGlzIE5VTEwiLCBfX2Z1bmNfXykpOw0KPiA+PiA+ PiA+PiA+ID4+ICAjZW5kaWYNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlubSA9IChz dHJ1Y3QgaW5fbXVsdGkgKilpZm1hLT5pZm1hX3Byb3Rvc3BlYzsNCj4gPj4gPj4gPj4gPiA+PiAt ICAgICAgICAgICAgIExJU1RfSU5TRVJUX0hFQUQoJnB1cmdlaW5tcywgaW5tLCBpbm1fbGluayk7 DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoJnB1cmdlaW5t cywgaW5tKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg SUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICBMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZwdXJnZWlubXMsIGlubV9saW5rLCB0aW5tKSB7 DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICBMSVNUX1JFTU9WRShpbm0sIGlubV9saW5r KTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0p Ow0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIH0NCj4gPj4gPj4gPj4gPiA+PiArICAgICBpbm1fcmVs ZWFzZV9saXN0X2RlZmVycmVkKCZwdXJnZWlubXMpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGln bXBfaWZkZXRhY2goaWZwKTsNCj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElT VF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gIHN0cnVjdCBpbl9sbGVudHJ5IHsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPj4gPj4gPj4g PiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMv bmV0aW5ldC9pbl9tY2FzdC5jICAgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOA0KPiA+PiA+ PiA+PiA+ID4+IChyMzMzMTc0KSArKysgaGVhZC9zeXMvbmV0aW5ldC9pbl9tY2FzdC5jICAgICAg IFdlZCBNYXkgIDIgMTk6MzY6MjkNCj4gPj4gPj4gPj4gPiA+PiAyMDE4ICAgICAgICAocjMzMzE3 NSkgQEAgLTUxLDYgKzUxLDcgQEAgX19GQlNESUQoIiRGcmVlQlNEJCIpOw0KPiA+PiA+PiA+PiA+ ID4+ICAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8 c3lzL2t0ci5oPg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8c3lzL3Rhc2txdWV1ZS5oPg0K PiA+PiA+PiA+PiA+ID4+ICsjaW5jbHVkZSA8c3lzL2d0YXNrcXVldWUuaD4NCj4gPj4gPj4gPj4g PiA+PiAgI2luY2x1ZGUgPHN5cy90cmVlLmg+DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4g PiA+PiAgI2luY2x1ZGUgPG5ldC9pZi5oPg0KPiA+PiA+PiA+PiA+ID4+IEBAIC01OSw2ICs2MCw4 IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsNCj4gPj4gPj4gPj4gPiA+PiAgI2luY2x1ZGUgPG5l dC9yb3V0ZS5oPg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0L3ZuZXQuaD4NCj4gPj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICsjaW5jbHVkZSA8bmV0L2V0aGVybmV0Lmg+DQo+ ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0aW5ldC9pbi5o Pg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0aW5ldC9pbl9zeXN0bS5oPg0KPiA+PiA+ PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0aW5ldC9pbl9maWIuaD4NCj4gPj4gPj4gPj4gPiA+PiBA QCAtOTEsMTggKzk0LDI0IEBAIHN0YXRpYyBNQUxMT0NfREVGSU5FKE1fSVBNU09VUkNFLCAiaXBf bXNvdXJjZSIsDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgLyoNCj4gPj4gPj4g Pj4gPiA+PiAgICogTG9ja2luZzoNCj4gPj4gPj4gPj4gPiA+PiAtICogLSBMb2NrIG9yZGVyIGlz OiBHaWFudCwgSU5QX1dMT0NLLCBJTl9NVUxUSV9MT0NLLCBJR01QX0xPQ0ssDQo+ID4+ID4+ID4+ ID4gPj4gSUZfQUREUl9MT0NLLg0KPiA+PiA+PiA+PiA+ID4+ICsgKiAtIExvY2sgb3JkZXIgaXM6 IEdpYW50LCBJTlBfV0xPQ0ssIElOX01VTFRJX0xJU1RfTE9DSywgSUdNUF9MT0NLLA0KPiA+PiA+ PiA+PiA+ID4+IElGX0FERFJfTE9DSy4NCj4gPj4gPj4gPj4gPiA+PiAgICogLSBUaGUgSUZfQURE Ul9MT0NLIGlzIGltcGxpY2l0bHkgdGFrZW4gYnkgaW5tX2xvb2t1cCgpIGVhcmxpZXIsDQo+ID4+ ID4+ID4+ID4gPj4gaG93ZXZlcg0KPiA+PiA+PiA+PiA+ID4+ICAgKiAgIGl0IGNhbiBiZSB0YWtl biBieSBjb2RlIGluIG5ldC9pZi5jIGFsc28uDQo+ID4+ID4+ID4+ID4gPj4gICAqIC0gaXBfbW9w dGlvbnMgYW5kIGluX21maWx0ZXIgYXJlIGNvdmVyZWQgYnkgdGhlIElOUF9XTE9DSy4NCj4gPj4g Pj4gPj4gPiA+PiAgICoNCj4gPj4gPj4gPj4gPiA+PiAtICogc3RydWN0IGluX211bHRpIGlzIGNv dmVyZWQgYnkgSU5fTVVMVElfTE9DSy4gVGhlcmUgaXNuJ3Qgc3RyaWN0bHkNCj4gPj4gPj4gPj4g PiA+PiArICogc3RydWN0IGluX211bHRpIGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTElTVF9MT0NL LiBUaGVyZSBpc24ndCBzdHJpY3RseQ0KPiA+PiA+PiA+PiA+ID4+ICAgKiBhbnkgbmVlZCBmb3Ig aW5fbXVsdGkgaXRzZWxmIHRvIGJlIHZpcnR1YWxpemVkIC0tIGl0IGlzIGJvdW5kIHRvIGFuDQo+ ID4+ID4+ID4+ID4gPj4gaWZwDQo+ID4+ID4+ID4+ID4gPj4gICAqIGFueXdheSBubyBtYXR0ZXIg d2hhdCBoYXBwZW5zLg0KPiA+PiA+PiA+PiA+ID4+ICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAtc3Ry dWN0IG10eCBpbl9tdWx0aV9tdHg7DQo+ID4+ID4+ID4+ID4gPj4gLU1UWF9TWVNJTklUKGluX211 bHRpX210eCwgJmluX211bHRpX210eCwgImluX211bHRpX210eCIsIE1UWF9ERUYpOw0KPiA+PiA+ PiA+PiA+ID4+ICtzdHJ1Y3QgbXR4IGluX211bHRpX2xpc3RfbXR4Ow0KPiA+PiA+PiA+PiA+ID4+ ICtNVFhfU1lTSU5JVChpbl9tdWx0aV9tdHgsICZpbl9tdWx0aV9saXN0X210eCwgImluX211bHRp X2xpc3RfbXR4IiwNCj4gPj4gPj4gPj4gPiA+PiBNVFhfREVGKTsNCj4gPj4gPj4gPj4gPiA+Pg0K PiA+PiA+PiA+PiA+ID4+ICtzdHJ1Y3QgbXR4IGluX211bHRpX2ZyZWVfbXR4Ow0KPiA+PiA+PiA+ PiA+ID4+ICtNVFhfU1lTSU5JVChpbl9tdWx0aV9mcmVlX210eCwgJmluX211bHRpX2ZyZWVfbXR4 LCAiaW5fbXVsdGlfZnJlZV9tdHgiLA0KPiA+PiA+PiA+PiA+ID4+IE1UWF9ERUYpOyArDQo+ID4+ ID4+ID4+ID4gPj4gK3N0cnVjdCBzeCBpbl9tdWx0aV9zeDsNCj4gPj4gPj4gPj4gPiA+PiArU1hf U1lTSU5JVChpbl9tdWx0aV9zeCwgJmluX211bHRpX3N4LCAiaW5fbXVsdGlfc3giKTsNCj4gPj4g Pj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ID4+ID4gPj4gICAqIEZ1 bmN0aW9ucyB3aXRoIG5vbi1zdGF0aWMgbGlua2FnZSBkZWZpbmVkIGluIHRoaXMgZmlsZSBzaG91 bGQgYmUNCj4gPj4gPj4gPj4gPiA+PiAgICogZGVjbGFyZWQgaW4gaW5fdmFyLmg6DQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTE1MSw2ICsxNjAsNyBAQCBzdGF0aWMgaW50ICAgICAgICBpbm1faXNfaWZw X2RldGFjaGVkKGNvbnN0IHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IGluX211bHRpDQo+ID4+ID4+ ID4+ID4gPj4gKiBzdGF0aWMgaW50ICAgaW5tX21lcmdlKHN0cnVjdCBpbl9tdWx0aSAqLCAvKmNv bnN0Ki8gc3RydWN0IGluX21maWx0ZXINCj4gPj4gPj4gPj4gPiA+PiAqKTsgc3RhdGljIHZvaWQg IGlubV9wdXJnZShzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ID4+ID4+ID4+ID4gPj4gIHN0YXRpYyB2 b2lkICBpbm1fcmVhcChzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ID4+ID4+ID4+ID4gPj4gK3N0YXRp YyB2b2lkIGlubV9yZWxlYXNlKHN0cnVjdCBpbl9tdWx0aSAqKTsNCj4gPj4gPj4gPj4gPiA+PiAg c3RhdGljIHN0cnVjdCBpcF9tb3B0aW9ucyAqDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICBpbnBfZmluZG1vcHRpb25zKHN0cnVjdCBpbnBjYiAqKTsNCj4gPj4gPj4gPj4gPiA+PiAgc3Rh dGljIHZvaWQgIGlucF9mcmVlbW9wdGlvbnNfaW50ZXJuYWwoc3RydWN0IGlwX21vcHRpb25zICop Ow0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yMTYsNiArMjI2LDY1IEBAIGlubV9pc19pZnBfZGV0YWNo ZWQoY29uc3Qgc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4g Pj4gPj4gPiA+PiAgI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiArc3Rh dGljIHN0cnVjdCBncm91cHRhc2sgZnJlZV9ndGFzazsNCj4gPj4gPj4gPj4gPiA+PiArc3RhdGlj IHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX2xpc3Q7DQo+ID4+ID4+ID4+ID4gPj4gK3N0 YXRpYyB2b2lkIGlubV9yZWxlYXNlX3Rhc2sodm9pZCAqYXJnIF9fdW51c2VkKTsNCj4gPj4gPj4g Pj4gPiA+PiArc3RhdGljIHZvaWQgaW5tX2luaXQodm9pZCkNCj4gPj4gPj4gPj4gPiA+PiArew0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJmlubV9mcmVlX2xpc3QpOw0KPiA+PiA+ PiA+PiA+ID4+ICsgICAgIHRhc2txZ3JvdXBfY29uZmlnX2d0YXNrX2luaXQoTlVMTCwgJmZyZWVf Z3Rhc2ssIGlubV9yZWxlYXNlX3Rhc2ssDQo+ID4+ID4+ID4+ID4gPj4gImlubSByZWxlYXNlIHRh c2siKTsgK30NCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4gK1NZU0lOSVQoaW5t X2luaXQsIFNJX1NVQl9TTVAgKyAxLCBTSV9PUkRFUl9GSVJTVCwNCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBpbm1faW5pdCwgTlVMTCk7DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ ICsNCj4gPj4gPj4gPj4gPiA+PiArdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICtpbm1fcmVsZWFzZV9s aXN0X2RlZmVycmVkKHN0cnVjdCBpbl9tdWx0aV9oZWFkICppbm1oKQ0KPiA+PiA+PiA+PiA+ID4+ ICt7DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIGlmIChTTElTVF9F TVBUWShpbm1oKSkNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIHJldHVybjsNCj4gPj4g Pj4gPj4gPiA+PiArICAgICBtdHhfbG9jaygmaW5fbXVsdGlfZnJlZV9tdHgpOw0KPiA+PiA+PiA+ PiA+ID4+ICsgICAgIFNMSVNUX0NPTkNBVCgmaW5tX2ZyZWVfbGlzdCwgaW5taCwgaW5fbXVsdGks IGlubV9ucmVsZSk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgbXR4X3VubG9jaygmaW5fbXVsdGlf ZnJlZV9tdHgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIEdST1VQVEFTS19FTlFVRVVFKCZmcmVl X2d0YXNrKTsNCj4gPj4gPj4gPj4gPiA+PiArfQ0KPiA+PiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4g Pj4gPiA+PiArdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICtpbm1fcmVsZWFzZV9kZWZlcnJlZChzdHJ1 Y3QgaW5fbXVsdGkgKmlubSkNCj4gPj4gPj4gPj4gPiA+PiArew0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIHRtcDsNCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID4gMCk7DQo+ID4+ID4+ID4+ID4gPj4g KyAgICAgaWYgKC0taW5tLT5pbm1fcmVmY291bnQgPT0gMCkgew0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgICAgICAgICAgU0xJU1RfSU5JVCgmdG1wKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAg ICAgIGlubS0+aW5tX2lmbWEtPmlmbWFfcHJvdG9zcGVjID0gTlVMTDsNCj4gPj4gPj4gPj4gPiA+ PiArICAgICAgICAgICAgIFNMSVNUX0lOU0VSVF9IRUFEKCZ0bXAsIGlubSwgaW5tX25yZWxlKTsN Cj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xpc3RfZGVmZXJyZWQo JnRtcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICt9DQo+ID4+ ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiA+PiA+PiA+ ID4+ICtpbm1fcmVsZWFzZV90YXNrKHZvaWQgKmFyZyBfX3VudXNlZCkNCj4gPj4gPj4gPj4gPiA+ PiArew0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9mcmVl X3RtcDsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgKnRpbm07 DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJmlu bV9mcmVlX3RtcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgbXR4X2xvY2soJmluX211bHRpX2Zy ZWVfbXR4KTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBTTElTVF9DT05DQVQoJmlubV9mcmVlX3Rt cCwgJmlubV9mcmVlX2xpc3QsIGluX211bHRpLCBpbm1fbnJlbGUpOw0KPiA+PiA+PiA+PiA+ID4+ ICsgICAgIG10eF91bmxvY2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgU0xJU1RfRk9SRUFD SF9TQUZFKGlubSwgJmlubV9mcmVlX3RtcCwgaW5tX25yZWxlLCB0aW5tKSB7DQo+ID4+ID4+ID4+ ID4gPj4gKyAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaW5tX2ZyZWVfdG1wLCBpbm1f bnJlbGUpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgTVBBU1MoaW5tKTsNCj4gPj4g Pj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlKGlubSk7DQo+ID4+ID4+ID4+ID4g Pj4gKyAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+ PiA+PiA+PiA+ID4+ICt9DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICAvKg0K PiA+PiA+PiA+PiA+ID4+ICAgKiBJbml0aWFsaXplIGFuIGluX21maWx0ZXIgc3RydWN0dXJlIHRv IGEga25vd24gc3RhdGUgYXQgdDAsIHQxDQo+ID4+ID4+ID4+ID4gPj4gICAqIHdpdGggYW4gZW1w dHkgc291cmNlIGZpbHRlciBsaXN0Lg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yMzIsNyArMzAxLDcg QEAgaW1mX2luaXQoc3RydWN0IGluX21maWx0ZXIgKmltZiwgY29uc3QgaW50IHN0MCwgY29uc3QN Cj4gPj4gPj4gPj4gPiA+PiAgLyoNCj4gPj4gPj4gPj4gPiA+PiAgICogRnVuY3Rpb24gZm9yIGxv b2tpbmcgdXAgYW4gaW5fbXVsdGkgcmVjb3JkIGZvciBhbiBJUHY0IG11bHRpY2FzdA0KPiA+PiA+ PiA+PiA+ID4+IGFkZHJlc3MNCj4gPj4gPj4gPj4gPiA+PiAgICogb24gYSBnaXZlbiBpbnRlcmZh Y2UuIGlmcCBtdXN0IGJlIHZhbGlkLiBJZiBubyByZWNvcmQgZm91bmQsIHJldHVybg0KPiA+PiA+ PiA+PiA+ID4+IE5VTEwuDQo+ID4+ID4+ID4+ID4gPj4gLSAqIFRoZSBJTl9NVUxUSV9MT0NLIGFu ZCBJRl9BRERSX0xPQ0sgb24gaWZwIG11c3QgYmUgaGVsZC4NCj4gPj4gPj4gPj4gPiA+PiArICog VGhlIElOX01VTFRJX0xJU1RfTE9DSyBhbmQgSUZfQUREUl9MT0NLIG9uIGlmcCBtdXN0IGJlIGhl bGQuDQo+ID4+ID4+ID4+ID4gPj4gICAqLw0KPiA+PiA+PiA+PiA+ID4+ICBzdHJ1Y3QgaW5fbXVs dGkgKg0KPiA+PiA+PiA+PiA+ID4+ICBpbm1fbG9va3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlm cCwgY29uc3Qgc3RydWN0IGluX2FkZHIgaW5hKQ0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yNDAsNyAr MzA5LDcgQEAgaW5tX2xvb2t1cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVj dCBpbl9hDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICppZm1hOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpbl9tdWx0aSAqaW5tOw0KPiA+PiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4g Pj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgSUZfQUREUl9MT0NLX0FTU0VSVChpZnApOw0KPiA+PiA+PiA+PiA+ID4+DQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgaW5tID0gTlVMTDsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjY0 LDcgKzMzMyw3IEBAIGlubV9sb29rdXAoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBp bl9hZGRyIGluYQ0KPiA+PiA+PiA+PiA+ID4+ICB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3Ry dWN0IGluX211bHRpICppbm07DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAg ICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJ X0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJRl9BRERSX1JMT0NL KGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cF9sb2NrZWQoaWZw LCBpbmEpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElGX0FERFJfUlVOTE9DSyhpZnApOw0KPiA+ PiA+PiA+PiA+ID4+IEBAIC00NTEsNyArNTIwLDcgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0 ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSU5f TVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgIGlpID0gKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXTsNCj4g Pj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL KCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cChpZnAsICpncm91cCk7 DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYgKGlubSAhPSBOVUxMKSB7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC00NjAsMTEgKzUyOSwxMyBA QCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHINCj4g Pj4gPj4gPj4gPiA+PiAqZyAqLw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgS0FTU0VS VChpbm0tPmlubV9yZWZjb3VudCA+PSAxLA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAg ICAgICgiJXM6IGJhZCByZWZjb3VudCAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9yZWZjb3VudCkp Ow0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgKytpbm0tPmlubV9yZWZjb3VudDsNCj4g Pj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9hY3F1aXJlX2xvY2tlZChpbm0pOw0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgICAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4g Pj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0so KTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBpZiAoaW5tICE9IE5VTEwpDQo+ID4+ID4+ID4+ID4g Pj4gKyAgICAgICAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4g Pj4gPiA+PiAgICAgICBtZW1zZXQoJmdzaW4sIDAsIHNpemVvZihnc2luKSk7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgZ3Npbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICBnc2luLnNpbl9sZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsNCj4gPj4gPj4g Pj4gPiA+PiBAQCAtNDc5LDYgKzU1MCw3IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZw LCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAg cmV0dXJuIChlcnJvcik7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAv KiBYWFggaWZtYV9wcm90b3NwZWMgbXVzdCBiZSBjb3ZlcmVkIGJ5IElGX0FERFJfTE9DSyAqLw0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIElGX0FERFJfV0xPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4gQEAgLTUwNCwxMCArNTc2LDkgQEAgaW5f Z2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyDQo+ID4+ID4+ ID4+ID4gPj4gKmcgX19mdW5jX18sIGlmbWEsIGlubSwgaW5ldF9udG9hX3IoKmdyb3VwLCBhZGRy YnVmKSk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4g ICNlbmRpZg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgKytpbm0tPmlubV9yZWZjb3Vu dDsNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9hY3F1aXJlX2xvY2tlZChpbm0p Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ID4+ID4+ ID4gPj4gLSAgICAgICAgICAgICBJRl9BRERSX1dVTkxPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+ PiAtICAgICAgICAgICAgIHJldHVybiAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAg ICBnb3RvIG91dF9sb2NrZWQ7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XTE9DS19BU1NFUlQoaWZwKTsNCj4g Pj4gPj4gPj4gPiA+PiBAQCAtNTIyLDYgKzU5Myw3IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5l dCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlu bSA9IG1hbGxvYyhzaXplb2YoKmlubSksIE1fSVBNQUREUiwgTV9OT1dBSVQgfCBNX1pFUk8pOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmIChpbm0gPT0gTlVMTCkgew0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgICAgICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgICAgICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAg ICAgICAgICAgaWZfZGVsbXVsdGlfaWZtYShpZm1hKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAg ICAgICAgIHJldHVybiAoRU5PTUVNKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTUzOSw4ICs2MTEsOSBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlm cCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZm1hLT5p Zm1hX3Byb3Rvc3BlYyA9IGlubTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgICpwaW5tID0gaW5tOw0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiArIG91 dF9sb2NrZWQ6DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4g PiA+PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ID4+ICB9DQo+ID4+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPj4gPiA+PiBAQCAtNTUwLDM2ICs2MjMsMjkgQEAgaW5fZ2V0bXVsdGkoc3Ry dWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyDQo+ID4+ID4+ID4+ID4gPj4gKmcN Cj4gPj4gPj4gPj4gPiA+PiAgICogSWYgdGhlIHJlZmNvdW50IGRyb3BzIHRvIDAsIGZyZWUgdGhl IGluX211bHRpIHJlY29yZCBhbmQNCj4gPj4gPj4gPj4gPiA+PiAgICogZGVsZXRlIHRoZSB1bmRl cmx5aW5nIGxpbmstbGF5ZXIgbWVtYmVyc2hpcC4NCj4gPj4gPj4gPj4gPiA+PiAgICovDQo+ID4+ ID4+ID4+ID4gPj4gLXZvaWQNCj4gPj4gPj4gPj4gPiA+PiAtaW5tX3JlbGVhc2VfbG9ja2VkKHN0 cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+PiA+PiA+PiA+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiA+ PiA+PiA+ID4+ICtpbm1fcmVsZWFzZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSkNCj4gPj4gPj4gPj4g PiA+PiAgew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAqaWZtYTsN Cj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaWZuZXQgKmlmcDsNCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBy ZWZjb3VudCBpcyAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9yZWZjb3VudCk7DQo+ID4+ID4+ID4+ ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIGlmICgtLWlubS0+aW5tX3JlZmNvdW50ID4g MCkgew0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6 IHJlZmNvdW50IGlzIG5vdyAlZCIsIF9fZnVuY19fLA0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAg ICAgICAgICAgIGlubS0+aW5tX3JlZmNvdW50KTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAg ICAgIHJldHVybjsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gLQ0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID09IDApOw0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBmcmVlaW5nIGlubSAlcCIs IF9fZnVuY19fLCBpbm0pOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg aWZtYSA9IGlubS0+aW5tX2lmbWE7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgaWZwID0gaW5tLT5p bm1faWZwOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgLyogWFhYIHRo aXMgYWNjZXNzIGlzIG5vdCBjb3ZlcmVkIGJ5IElGX0FERFJfTE9DSyAqLw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBwdXJnaW5nIGlmbWEgJXAiLCBfX2Z1bmNf XywgaWZtYSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgS0FTU0VSVChpZm1hLT5pZm1hX3Byb3Rv c3BlYyA9PSBpbm0sDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICgiJXM6IGlmbWFfcHJvdG9z cGVjICE9IGlubSIsIF9fZnVuY19fKSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgaWZtYS0+aWZt YV9wcm90b3NwZWMgPSBOVUxMOw0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBpZiAoaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgQ1VSVk5FVF9TRVQo aWZwLT5pZl92bmV0KTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbm1fcHVyZ2UoaW5tKTsNCj4g Pj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgZnJlZShpbm0sIE1fSVBNQURE Uik7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZl9kZWxtdWx0aV9p Zm1hKGlmbWEpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIGlmIChpZnApDQo+ID4+ID4+ID4+ID4g Pj4gKyAgICAgICAgICAgICBDVVJWTkVUX1JFU1RPUkUoKTsNCj4gPj4gPj4gPj4gPiA+PiAgfQ0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ID4+ID4gPj4gQEAg LTU5Miw3ICs2NTgsNyBAQCBpbm1fY2xlYXJfcmVjb3JkZWQoc3RydWN0IGluX211bHRpICppbm0p DQo+ID4+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaXBfbXNv dXJjZSAgICAgICAqaW1zOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAg SU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9M SVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBSQl9GT1JFQUNIKGltcywgaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3Jjcykgew0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgaWYgKGltcy0+aW1zX3N0cCkgew0KPiA+PiA+PiA+ PiA+ID4+IEBAIC02MzIsNyArNjk4LDcgQEAgaW5tX3JlY29yZF9zb3VyY2Uoc3RydWN0IGluX211 bHRpICppbm0sIGNvbnN0IGluX2FkZHJfDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlw X21zb3VyY2UgICAgICAgIGZpbmQ7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlwX21z b3VyY2UgICAgICAgKmltcywgKm5pbXM7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+ PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElO X01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIGZpbmQuaW1zX2hhZGRyID0gbnRvaGwobmFkZHIpOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIGltcyA9IFJCX0ZJTkQoaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3JjcywgJmZp bmQpOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC05NTksNiArMTAyNSw3IEBAIGlubV9tZXJnZShzdHJ1 Y3QgaW5fbXVsdGkgKmlubSwgLypjb25zdCovIHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IGluX21m IHNjaGFuZ2VkID0gMDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBlcnJvciA9IDA7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgbnNyYzEgPSBuc3JjMCA9IDA7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAg SU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgLyoNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgKiBVcGRhdGUgdGhlIHNvdXJj ZSBmaWx0ZXJzIGZpcnN0LCBhcyB0aGlzIG1heSBmYWlsLg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x MTY1LDYgKzEyMzIsNyBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZwLCBj b25zdCBzdHJ1Y3QNCj4gPj4gPj4gPj4gPiA+PiBpbiBpbnQgICAgICAgICAgICAgICAgICAgICAg ZXJyb3I7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJTl9NVUxUSV9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NL X0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSNChL VFJfSUdNUFYzLCAiJXM6IGpvaW4gMHglMDh4IG9uICVwKCVzKSkiLCBfX2Z1bmNfXywNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICAgICAgbnRvaGwoZ2luYS0+c19hZGRyKSwgaWZwLCBpZnAtPmlmX3hu YW1lKTsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTE4Niw3ICsxMjU0LDcgQEAgaW5fam9pbmdyb3Vw X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0DQo+ID4+ID4+ID4+ID4gPj4g aW4gQ1RSMShLVFJfSUdNUFYzLCAiJXM6IGluX2dldG11bHRpKCkgZmFpbHVyZSIsIF9fZnVuY19f KTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIHJldHVybiAoZXJyb3IpOw0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSMShLVFJf SUdNUFYzLCAiJXM6IG1lcmdlIGlubSBzdGF0ZSIsIF9fZnVuY19fKTsNCj4gPj4gPj4gPj4gPiA+ PiAgICAgICBlcnJvciA9IGlubV9tZXJnZShpbm0sIGltZik7DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgaWYgKGVycm9yKSB7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTEyMDEsMTAgKzEyNjksMTIgQEAg aW5fam9pbmdyb3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3QNCj4gPj4gPj4gPj4g PiA+PiBzdHJ1Y3QgaW4gZ290byBvdXRfaW5tX3JlbGVhc2U7DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gLW91dF9pbm1fcmVsZWFzZToN Cj4gPj4gPj4gPj4gPiA+PiArIG91dF9pbm1fcmVsZWFzZToNCj4gPj4gPj4gPj4gPiA+PiArICAg ICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmIChlcnJv cikgew0KPiA+PiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIENU UjIoS1RSX0lHTVBWMywgIiVzOiBkcm9wcGluZyByZWYgb24gJXAiLCBfX2Z1bmNfXywgaW5tKTsN Cj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0K PiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgaW5tX3JlbGVhc2VfZGVmZXJyZWQoaW5tKTsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICB9IGVsc2Ugew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAg ICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+PiA+PiA+ ID4+IEBAIC0xMjQ5LDYgKzEzMTksNyBAQCBpbl9sZWF2ZWdyb3VwX2xvY2tlZChzdHJ1Y3QgaW5f bXVsdGkNCj4gPj4gPj4gPj4gPiA+PiAqaW5tLCAvKmNvbnN0Ki8gcyBlcnJvciA9IDA7DQo+ID4+ ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgp Ow0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLX0FTU0VSVCgpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSNShLVFJfSUdNUFYzLCAi JXM6IGxlYXZlIGlubSAlcCwgMHglMDh4LyVzLCBpbWYgJXAiLCBfX2Z1bmNfXywNCj4gPj4gPj4g Pj4gPiA+PiAgICAgICAgICAgaW5tLCBudG9obChpbm0tPmlubV9hZGRyLnNfYWRkciksDQo+ID4+ ID4+ID4+ID4gPj4gQEAgLTEyNzIsMTggKzEzNDMsMjAgQEAgaW5fbGVhdmVncm91cF9sb2NrZWQo c3RydWN0IGluX211bHRpDQo+ID4+ID4+ID4+ID4gPj4gKmlubSwgLypjb25zdCovIHMNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICAgKiB0aGUgdHJhbnNhY3Rpb24sIGl0IE1VU1QgTk9UIGZhaWwuDQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgICovDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSMShLVFJf SUdNUFYzLCAiJXM6IG1lcmdlIGlubSBzdGF0ZSIsIF9fZnVuY19fKTsNCj4gPj4gPj4gPj4gPiA+ PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBlcnJv ciA9IGlubV9tZXJnZShpbm0sIGltZik7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgS0FTU0VSVChl cnJvciA9PSAwLCAoIiVzOiBmYWlsZWQgdG8gbWVyZ2UgaW5tIHN0YXRlIiwgX19mdW5jX18pKTsN Cj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIENUUjEoS1RSX0lHTVBWMywg IiVzOiBkb2luZyBpZ21wIGRvd25jYWxsIiwgX19mdW5jX18pOw0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgIENVUlZORVRfU0VUKGlubS0+aW5tX2lmcC0+aWZfdm5ldCk7DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgZXJyb3IgPSBpZ21wX2NoYW5nZV9zdGF0ZShpbm0pOw0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgIGlubV9yZWxlYXNlX2RlZmVycmVkKGlubSk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5f TVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVVJWTkVUX1JFU1RP UkUoKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZiAoZXJyb3IpDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICBDVFIxKEtUUl9JR01QVjMsICIlczogZmFpbGVkIGlnbXAgZG93bmNhbGwi LCBfX2Z1bmNfXyk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVFIy KEtUUl9JR01QVjMsICIlczogZHJvcHBpbmcgcmVmIG9uICVwIiwgX19mdW5jX18sIGlubSk7DQo+ ID4+ID4+ID4+ID4gPj4gLSAgICAgaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPj4gPj4g PiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xMzE1LDE4ICsxMzg4LDYgQEAgaW5fYWRkbXVs dGkoc3RydWN0IGluX2FkZHIgKmFwLCBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4gPj4gPj4gPiA+ PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ID4+ID4g Pj4gLSAqIExlYXZlIGFuIElQdjQgbXVsdGljYXN0IGdyb3VwLCBhc3N1bWVkIHRvIGJlIGluIGV4 Y2x1c2l2ZSAoKixHKSBtb2RlLg0KPiA+PiA+PiA+PiA+ID4+IC0gKiBUaGlzIEtQSSBpcyBmb3Ig bGVnYWN5IGtlcm5lbCBjb25zdW1lcnMgb25seS4NCj4gPj4gPj4gPj4gPiA+PiAtICovDQo+ID4+ ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAqKiogRElGRiBPVVRQVVQgVFJVTkNBVEVEIEFU IDEwMDAgTElORVMgKioqDQo+ID4+ID4+ID4+ID4gPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4gPj4gPj4gPj4gPiA+PiBzdm4tc3JjLWhlYWRAZnJl ZWJzZC5vcmcgbWFpbGluZyBsaXN0DQo+ID4+ID4+ID4+ID4gPj4gaHR0cHM6Ly9saXN0cy5mcmVl YnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtaGVhZA0KPiA+PiA+PiA+PiA+ID4+IFRv IHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVA ZnJlZWJzZC5vcmciICANCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ID4gPg0KPiA+PiA+PiA+ PiA+ID4gQWZ0ZXIgKGFyb3VuZCEpIHRoaXMgdXBkYXRlLCBzb21lIGJveGVzIHdpdGggaTM1MCBk dWFsIHBvcnQgTklDcw0KPiA+PiA+PiA+PiA+ID4gaW1tZWRpYXRlbHkgY3Jhc2ggd2l0aCBGYXRh bCB0cmFwIDEyOiBwYWdlIGZhdWx0IGFuZCBzb21ldGhpbmcgd2l0aA0KPiA+PiA+PiA+PiA+ID4N Cj4gPj4gPj4gPj4gPiA+IGN1cnJlbnQgcHJvY2VzczogKGlzYy13b3JrZXIwMDA2KQ0KPiA+PiA+ PiA+PiA+ID4NCj4gPj4gPj4gPj4gPiA+IC4uLi4NCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ ID4gPiBUaG9zZSBib3hlcyBkbyBub3QgaGF2ZSBkZWJ1Z2dpbmcga2VybmVsLiBUaGUgc3ltcHRv bWJzIGFyZSB0aGUgc2FtZS4NCj4gPj4gPj4gPj4gPiA+IFNpbmdsZSB1c2VyIGtlcm5lbCB3b3Jr cywgYnV0IHRoZSBtb21lbnQgSSBwZXJmb3JtIC9ldGMvbmV0c3RhcnQgYW5kIGFueQ0KPiA+PiA+ PiA+PiA+ID4ga2luZCBvZiBuZXQgdHJhZmZpYyBlc3RhYmxpc2hlcywgdGhpcyBjcmFwIGJhaWxz IG91dC4NCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ID4gPg0KPiA+PiA+PiA+PiA+ID4gLSAt LQ0KPiA+PiA+PiA+PiA+ID4gTy4gSGFydG1hbm4NCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ ID4gPiBJY2ggd2lkZXJzcHJlY2hlIGRlciBOdXR6dW5nIG9kZXIgw5xiZXJtaXR0bHVuZyBtZWlu ZXIgRGF0ZW4gZsO8cg0KPiA+PiA+PiA+PiA+ID4gV2VyYmV6d2Vja2Ugb2RlciBmw7xyIGRpZSBN YXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0IEJEU0cpLg0KPiA+PiA+ PiA+PiA+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCj4gPj4gPj4gPj4gPiA+DQo+ ID4+ID4+ID4+ID4gPiBpTFVFQVJNS0FCMFdJUVFaVlpNekF0d0MyVC84NlRyUzUyOGZ5RmhZbEFV Q1d1dGp0Z0FLQ1JEUzUyOGZ5RmhZDQo+ID4+ID4+ID4+ID4gPiBsQWt6QWY5UGhhRlR3TmhRRDJ6 Rjd4U0hKMndmdkx0b1VFalpsekdzdXNBQ3AxcGE3SkFmejBQeXYrbG0rWE5KDQo+ID4+ID4+ID4+ ID4gPiB2TEVscklmMUNtRHp1QTh5YmxaL3gvd09WU0prQWY5Qys1MERWRXRHcTVIL2JIU0ROd3pt cXJqOFlnQjdYcFNzDQo+ID4+ID4+ID4+ID4gPiBQTVJYYytJd0lhMUpnaTJ5TSs2VENTTlNzMU41 YkVVaFU5Qmk4ZVh5NlkwRlNrQVplVitzDQo+ID4+ID4+ID4+ID4gPiA9UzBiQw0KPiA+PiA+PiA+ PiA+ID4gLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tDQo+ID4+ID4+ID4+ID4gPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiA+PiA+PiA+ID4g c3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KPiA+PiA+PiA+PiA+ID4gaHR0 cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtaGVhZA0KPiA+ PiA+PiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8gInN2bi1zcmMtaGVh ZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyIgIA0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+Pg0KPiA+ PiA+PiA+Pg0KPiA+PiA+PiA+PiAtIC0tDQo+ID4+ID4+ID4+IE8uIEhhcnRtYW5uDQo+ID4+ID4+ ID4+DQo+ID4+ID4+ID4+IEljaCB3aWRlcnNwcmVjaGUgZGVyIE51dHp1bmcgb2RlciDDnGJlcm1p dHRsdW5nIG1laW5lciBEYXRlbiBmw7xyDQo+ID4+ID4+ID4+IFdlcmJlendlY2tlIG9kZXIgZsO8 ciBkaWUgTWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4N Cj4gPj4gPj4gPj4gLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCj4gPj4gPj4gPj4NCj4g Pj4gPj4gPj4gaUxVRUFSTUtBQjBXSVFRWlZaTXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdXR2 OHdBS0NSRFM1MjhmeUZoWQ0KPiA+PiA+PiA+PiBsSWUxQWZ3T0NBaWdwWGF3WjdLQWpMTnBXalJU NERzcnpmcWNDNTdNb3ppVlF5SytYOXFvUUEydjBwbFZOcFAwDQo+ID4+ID4+ID4+IEZMcWg1ZGtS WGlpT0xyeXI5YXVJTFVLeUxDTnlBZndMN2NGZTFZUlg3Vm5zSzV3Ly84WG0yNXRKNzRDWEM4UDAN Cj4gPj4gPj4gPj4gZ2FvU3F2RHFDS1dUajZpTitRL1Bqb05vaFdvSUs3NnRpWkFXUGprYUhldUZi eXBQYTJHKw0KPiA+PiA+PiA+PiA9RXBKYQ0KPiA+PiA+PiA+PiAtLS0tLUVORCBQR1AgU0lHTkFU VVJFLS0tLS0NCj4gPj4gPj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCj4gPj4gPj4gPj4gc3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcg bGlzdA0KPiA+PiA+PiA+PiBodHRwczovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGlu Zm8vc3ZuLXNyYy1oZWFkDQo+ID4+ID4+ID4+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWls IHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmciICANCj4gPj4gPj4gPg0K PiA+PiA+PiA+DQo+ID4+ID4+ID4NCj4gPj4gPj4gPiAtIC0tDQo+ID4+ID4+ID4gTy4gSGFydG1h bm4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEljaCB3aWRlcnNwcmVjaGUgZGVyIE51dHp1bmcgb2Rl ciDDnGJlcm1pdHRsdW5nIG1laW5lciBEYXRlbiBmw7xyDQo+ID4+ID4+ID4gV2VyYmV6d2Vja2Ug b2RlciBmw7xyIGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0 IEJEU0cpLg0KPiA+PiA+PiA+IC0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tDQo+ID4+ID4+ ID4NCj4gPj4gPj4gPiBpTFVFQVJNS0FCMFdJUVFaVlpNekF0d0MyVC84NlRyUzUyOGZ5RmhZbEFV Q1d1MXk4Z0FLQ1JEUzUyOGZ5RmhZDQo+ID4+ID4+ID4gbEZFb0FmNGlXKzR0U0FPY0cwRVExL1ky UE5xTENYNEFucFlUbFNsYUVDeHRGbERaL1hiTk93M1R5VkI5UmJRQw0KPiA+PiA+PiA+IHFHRTlV eDJ4UUJENDhhMU5iMUlIVlZDOWppN2pBZ0NMT1h6S1VxbWNYa1BOdmpTZ1pXWitTZHlkNTVDaG9M Z1kNCj4gPj4gPj4gPiBTa3lZOEZTVTNHRURtMjhXZ2FYalE0b0poKzcvRmY2OU5zdURabHQ3aUMy NEtaZFJLSDAwDQo+ID4+ID4+ID4gPTRiWSsNCj4gPj4gPj4gPiAtLS0tLUVORCBQR1AgU0lHTkFU VVJFLS0tLS0gIA0KPiA+PiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXw0KPiA+PiA+PiBzdm4tc3JjLWhlYWRAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0 DQo+ID4+ID4+IGh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9zdm4t c3JjLWhlYWQNCj4gPj4gPj4gVG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8gInN2bi1z cmMtaGVhZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyIgIA0KPiA+PiA+DQo+ID4+ID4NCj4gPj4g Pg0KPiA+PiA+IC0gLS0NCj4gPj4gPiBPLiBIYXJ0bWFubg0KPiA+PiA+DQo+ID4+ID4gSWNoIHdp ZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVyIMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVuIGbD vHINCj4gPj4gPiBXZXJiZXp3ZWNrZSBvZGVyIGbDvHIgZGllIE1hcmt0LSBvZGVyIE1laW51bmdz Zm9yc2NodW5nICjCpyAyOCBBYnMuIDQgQkRTRykuDQo+ID4+ID4gLS0tLS1CRUdJTiBQR1AgU0lH TkFUVVJFLS0tLS0NCj4gPj4gPg0KPiA+PiA+IGlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2 VHJTNTI4ZnlGaFlsQVVDV3U0VXR3QUtDUkRTNTI4ZnlGaFkNCj4gPj4gPiBsSXoyQWY5bnFyU0dR c2FOVlo5RGNTVFg0b3JvM1NSLzhlZnRiQzQxZGF0NjdnallJdWI5eERLVWxiZlVQSWtUDQo+ID4+ ID4gb0dkUFA5eE8zNStYT25tek9LNnhtTHlKYnd2NUFnQ1hlN1hiY0JjR2ZRMzgwemhHZ21lWjVp Y2gyVGQxTGd4bw0KPiA+PiA+IDh0N2lGbyt4VHYrVGljUTI3dVJxQ3dLUGNZRWJ6MDZVS0tncTl0 dFlxZ1haVjFVSXpzNWgNCj4gPj4gPiA9L1VaZg0KPiA+PiA+IC0tLS0tRU5EIFBHUCBTSUdOQVRV UkUtLS0tLSAgDQo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+ID4+IHN2bi1zcmMtaGVhZEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QNCj4gPj4g aHR0cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtaGVhZA0K PiA+PiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3ZuLXNyYy1oZWFkLXVuc3Vi c2NyaWJlQGZyZWVic2Qub3JnIiAgDQo+ID4NCj4gPg0KPiA+DQo+ID4gLSAtLQ0KPiA+IE8uIEhh cnRtYW5uDQo+ID4NCj4gPiBJY2ggd2lkZXJzcHJlY2hlIGRlciBOdXR6dW5nIG9kZXIgw5xiZXJt aXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8cg0KPiA+IFdlcmJlendlY2tlIG9kZXIgZsO8ciBkaWUg TWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4NCj4gPiAt LS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQ0KPiA+DQo+ID4gaUxVRUFSTUtBQjBXSVFRWlZa TXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdTRhTFFBS0NSRFM1MjhmeUZoWQ0KPiA+IGxOc29B ZjBmRm5FN25HYW5rbTM4N3hza09BSEt4YkdQZnpRY05KeVdWVjNaQlpveGU0OS9UbmJMWHJnNFBE cUMNCj4gPiA3a1hmSXV6MzBlZ1FXVjVvSHpad1llT1JmdHhVQWYwVTNmODJURkhURlB5VlVRV0xP YXJTWGg5WkRjOHc0dWI5DQo+ID4gSGV1cHh0RlUwTnlQb3JEYjQ4YVIzNFJ5ZkdUVkJmVnBjbWQ3 ajRwcVY1REF5YjZtVVQwdQ0KPiA+ID12OG9SDQo+ID4gLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0t LS0tICANCg0KDQoNCi0gLS0gDQpPLiBIYXJ0bWFubg0KDQpJY2ggd2lkZXJzcHJlY2hlIGRlciBO dXR6dW5nIG9kZXIgw5xiZXJtaXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8cg0KV2VyYmV6d2Vja2Ug b2RlciBmw7xyIGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0 IEJEU0cpLg0KLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCg0KaUxVRUFSTUtBQjBXSVFR WlZaTXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdTZwZ3dBS0NSRFM1MjhmeUZoWQ0KbEhsWUFm OVZ5S1ZXVXlmODVRd1ZGYWIxcGFKbGpTZldvbGxST1VPYnpkSk8rbG1kZXJUd1l1WTV5alhTaGFK SA0KdWJKY2tEdDhsQldmVFFUSWN2eGwzUGhia3hoMEFmd0p0cUxXL00rL20xVmRKekNRdExrVnFv VEVCSEsramRERw0KOEliT3d2TmQwempvZzFCVll1aCt4aHNjUFNSU2VQVDJyYVpqc3JucnZVbXJY QXlmb0F3ZA0KPTFXTmwNCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0K From owner-svn-src-head@freebsd.org Sun May 6 13:21:45 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55012FB9DC5; Sun, 6 May 2018 13:21:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 03F5874CF0; Sun, 6 May 2018 13:21:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F2EE0552B; Sun, 6 May 2018 13:21:44 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w46DLirJ066247; Sun, 6 May 2018 13:21:44 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46DLiXN066246; Sun, 6 May 2018 13:21:44 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805061321.w46DLiXN066246@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sun, 6 May 2018 13:21:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333300 - head/crypto/openssh X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/crypto/openssh X-SVN-Commit-Revision: 333300 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 13:21:45 -0000 Author: des Date: Sun May 6 13:21:44 2018 New Revision: 333300 URL: https://svnweb.freebsd.org/changeset/base/333300 Log: Update the repository URLs. Modified: head/crypto/openssh/FREEBSD-upgrade Modified: head/crypto/openssh/FREEBSD-upgrade ============================================================================== --- head/crypto/openssh/FREEBSD-upgrade Sun May 6 12:27:15 2018 (r333299) +++ head/crypto/openssh/FREEBSD-upgrade Sun May 6 13:21:44 2018 (r333300) @@ -17,7 +17,7 @@ 04) Copy to the vendor directory: - $ svn co svn+ssh://svn.freebsd.org/base/vendor-crypto/openssh/dist + $ svn co svn+ssh://repo.freebsd.org/base/vendor-crypto/openssh/dist $ rsync --archive --delete openssh-X.YpZ/ dist/ 05) Take care of added / deleted files: @@ -32,13 +32,13 @@ 07) Tag: $ svn copy -m "Tag OpenSSH X.YpZ." \ - svn+ssh://svn.freebsd.org/base/vendor-crypto/openssh/dist \ - svn+ssh://svn.freebsd.org/base/vendor-crypto/openssh/X.YpZ + svn+ssh://repo.freebsd.org/base/vendor-crypto/openssh/dist \ + svn+ssh://repo.freebsd.org/base/vendor-crypto/openssh/X.YpZ 08) Check out head and run the pre-merge script, which strips our RCS tags from files that have them: - $ svn co svn+ssh://svn.freebsd.org/base/head + $ svn co svn+ssh://repo.freebsd.org/base/head $ cd head/crypto/openssh $ sh freebsd-pre-merge.sh From owner-svn-src-head@freebsd.org Sun May 6 14:19:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9FEF0FBAF7D; Sun, 6 May 2018 14:19:51 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47FC980459; Sun, 6 May 2018 14:19:51 +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 3E6855D56; Sun, 6 May 2018 14:19:51 +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 w46EJpaM094779; Sun, 6 May 2018 14:19:51 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46EJpj3094778; Sun, 6 May 2018 14:19:51 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201805061419.w46EJpj3094778@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 6 May 2018 14:19:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333304 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 333304 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 14:19:51 -0000 Author: tuexen Date: Sun May 6 14:19:50 2018 New Revision: 333304 URL: https://svnweb.freebsd.org/changeset/base/333304 Log: Ensure we are not dereferencing a NULL pointer. This was found by Coverity scanning the usrsctp stack (CID 203808). MFC after: 3 days Modified: head/sys/netinet/sctp_indata.c Modified: head/sys/netinet/sctp_indata.c ============================================================================== --- head/sys/netinet/sctp_indata.c Sun May 6 13:59:56 2018 (r333303) +++ head/sys/netinet/sctp_indata.c Sun May 6 14:19:50 2018 (r333304) @@ -3621,7 +3621,9 @@ sctp_strike_gap_ack_chunks(struct sctp_tcb *stcb, stru SCTP_SO_NOT_LOCKED); } /* Make sure to flag we had a FR */ - tp1->whoTo->net_ack++; + if (tp1->whoTo != NULL) { + tp1->whoTo->net_ack++; + } continue; } } From owner-svn-src-head@freebsd.org Sun May 6 14:37:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 32932FBB547; Sun, 6 May 2018 14:37:12 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CF40585C5E; Sun, 6 May 2018 14:37: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 AABB86088; Sun, 6 May 2018 14:37: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 w46EbBFS004843; Sun, 6 May 2018 14:37:11 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46EbB1Q004842; Sun, 6 May 2018 14:37:11 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805061437.w46EbB1Q004842@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sun, 6 May 2018 14:37:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333305 - head/sys/arm/ti/am335x X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/ti/am335x X-SVN-Commit-Revision: 333305 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 14:37:12 -0000 Author: manu Date: Sun May 6 14:37:11 2018 New Revision: 333305 URL: https://svnweb.freebsd.org/changeset/base/333305 Log: am335x_prcm: Delay the frequencies read check With Linux 4.17 dts the compatible for the prcm added 'simplebus' we mean that the simplebus driver will attach to it at the BUS_PASS_BUS pass. Change the pass for the prcm driver to be at BUS_PASS_BUS so we will win the attach. This introduce a problem as this driver needs the ti_scm one to be already attached. ti_scm also attach at BUS_PASS_BUS but after the prcm one as it is after in the dtb and the simplebus driver simpy walk the tree to attach it's children. Use the bus_new_pass method to defer the frequencies read at BUS_PASS_TIMER. This fixes booting on BeagleBone* Reported by: many Modified: head/sys/arm/ti/am335x/am335x_prcm.c Modified: head/sys/arm/ti/am335x/am335x_prcm.c ============================================================================== --- head/sys/arm/ti/am335x/am335x_prcm.c Sun May 6 14:19:50 2018 (r333304) +++ head/sys/arm/ti/am335x/am335x_prcm.c Sun May 6 14:37:11 2018 (r333305) @@ -136,6 +136,7 @@ struct am335x_prcm_softc { struct resource * res[2]; bus_space_tag_t bst; bus_space_handle_t bsh; + int attach_done; }; static struct resource_spec am335x_prcm_spec[] = { @@ -424,7 +425,6 @@ static int am335x_prcm_attach(device_t dev) { struct am335x_prcm_softc *sc = device_get_softc(dev); - unsigned int sysclk, fclk; if (am335x_prcm_sc) return (ENXIO); @@ -440,6 +440,24 @@ am335x_prcm_attach(device_t dev) am335x_prcm_sc = sc; ti_cpu_reset = am335x_prcm_reset; + return (0); +} + +static void +am335x_prcm_new_pass(device_t dev) +{ + struct am335x_prcm_softc *sc = device_get_softc(dev); + unsigned int sysclk, fclk; + + sc = device_get_softc(dev); + if (sc->attach_done || + bus_current_pass < (BUS_PASS_TIMER + BUS_PASS_ORDER_EARLY)) { + bus_generic_new_pass(dev); + return; + } + + sc->attach_done = 1; + if (am335x_clk_get_sysclk_freq(NULL, &sysclk) != 0) sysclk = 0; if (am335x_clk_get_arm_fclk_freq(NULL, &fclk) != 0) @@ -447,15 +465,24 @@ am335x_prcm_attach(device_t dev) if (sysclk && fclk) device_printf(dev, "Clocks: System %u.%01u MHz, CPU %u MHz\n", sysclk/1000000, (sysclk % 1000000)/100000, fclk/1000000); - else + else { device_printf(dev, "can't read frequencies yet (SCM device not ready?)\n"); + goto fail; + } - return (0); + return; + +fail: + device_detach(dev); + return; } static device_method_t am335x_prcm_methods[] = { DEVMETHOD(device_probe, am335x_prcm_probe), DEVMETHOD(device_attach, am335x_prcm_attach), + + /* Bus interface */ + DEVMETHOD(bus_new_pass, am335x_prcm_new_pass), { 0, 0 } }; @@ -468,7 +495,7 @@ static driver_t am335x_prcm_driver = { static devclass_t am335x_prcm_devclass; EARLY_DRIVER_MODULE(am335x_prcm, simplebus, am335x_prcm_driver, - am335x_prcm_devclass, 0, 0, BUS_PASS_TIMER + BUS_PASS_ORDER_EARLY); + am335x_prcm_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); MODULE_VERSION(am335x_prcm, 1); MODULE_DEPEND(am335x_prcm, ti_scm, 1, 1, 1); From owner-svn-src-head@freebsd.org Sun May 6 15:59:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DC49FBE1F4; Sun, 6 May 2018 15:59:04 +0000 (UTC) (envelope-from bjk@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 00E2279521; Sun, 6 May 2018 15:59:04 +0000 (UTC) (envelope-from bjk@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EBE226D3C; Sun, 6 May 2018 15:59:03 +0000 (UTC) (envelope-from bjk@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w46Fx3O1046692; Sun, 6 May 2018 15:59:03 GMT (envelope-from bjk@FreeBSD.org) Received: (from bjk@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46Fx3cN046691; Sun, 6 May 2018 15:59:03 GMT (envelope-from bjk@FreeBSD.org) Message-Id: <201805061559.w46Fx3cN046691@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bjk set sender to bjk@FreeBSD.org using -f From: Benjamin Kaduk Date: Sun, 6 May 2018 15:59:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333306 - head/usr.bin/fetch X-SVN-Group: head X-SVN-Commit-Author: bjk X-SVN-Commit-Paths: head/usr.bin/fetch X-SVN-Commit-Revision: 333306 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 15:59:04 -0000 Author: bjk (doc committer) Date: Sun May 6 15:59:03 2018 New Revision: 333306 URL: https://svnweb.freebsd.org/changeset/base/333306 Log: Fix spelling of --output long option in fetch.1 PR: 228017 Reported by: rff1917@yahoo.com Modified: head/usr.bin/fetch/fetch.1 Modified: head/usr.bin/fetch/fetch.1 ============================================================================== --- head/usr.bin/fetch/fetch.1 Sun May 6 14:37:11 2018 (r333305) +++ head/usr.bin/fetch/fetch.1 Sun May 6 15:59:03 2018 (r333306) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 18, 2016 +.Dd May 6, 2018 .Dt FETCH 1 .Os .Sh NAME @@ -241,7 +241,7 @@ certificate presented by the server. .It Fl -no-verify-peer [SSL] Do not verify the peer certificate against trusted CAs. -.It Fl o Ar file , Fl output= Ns Ar file +.It Fl o Ar file , Fl -output= Ns Ar file Set the output file name to .Ar file . By default, a ``pathname'' is extracted from the specified URI, and From owner-svn-src-head@freebsd.org Sun May 6 16:22:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0A89FBEDFA; Sun, 6 May 2018 16:22:03 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6AC397F9F5; Sun, 6 May 2018 16:22:03 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BF2670D2; Sun, 6 May 2018 16:22:03 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w46GM3Je061893; Sun, 6 May 2018 16:22:03 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46GM39L061892; Sun, 6 May 2018 16:22:03 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201805061622.w46GM39L061892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Sun, 6 May 2018 16:22:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333307 - head/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Group: head X-SVN-Commit-Author: sbruno X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/lib/libzfs/common X-SVN-Commit-Revision: 333307 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 16:22:04 -0000 Author: sbruno Date: Sun May 6 16:22:02 2018 New Revision: 333307 URL: https://svnweb.freebsd.org/changeset/base/333307 Log: Cleanup sundry clang warnings for code that is not upstream in illumos. https://github.com/illumos/illumos-gate/edit/master/usr/src/lib/libzfs/common/libzfs_sendrecv.c Patch our version of it to quiesce warnings until someone decides to sync up our code: libzfs_sendrecv.c:2555:30: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] sprintf(guidname, "%lu", thisguid); ~~~ ^~~~~~~~ %llu libzfs_sendrecv.c:2612:29: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] sprintf(guidname, "%lu", parent_fromsnap_guid); ~~~ ^~~~~~~~~~~~~~~~~~~~ %llu libzfs_sendrecv.c:2645:29: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] sprintf(guidname, "%lu", parent_fromsnap_guid); ~~~ ^~~~~~~~~~~~~~~~~~~~ %llu Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D15325 Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Sun May 6 15:59:03 2018 (r333306) +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Sun May 6 16:22:02 2018 (r333307) @@ -2552,7 +2552,7 @@ again: needagain = B_TRUE; else progress = B_TRUE; - sprintf(guidname, "%lu", thisguid); + sprintf(guidname, "%" PRIu64, thisguid); nvlist_add_boolean(deleted, guidname); continue; } @@ -2609,7 +2609,7 @@ again: needagain = B_TRUE; else progress = B_TRUE; - sprintf(guidname, "%lu", parent_fromsnap_guid); + sprintf(guidname, "%" PRIu64, parent_fromsnap_guid); nvlist_add_boolean(deleted, guidname); continue; } @@ -2642,7 +2642,7 @@ again: if (stream_parent_fromsnap_guid != 0 && parent_fromsnap_guid != 0 && stream_parent_fromsnap_guid != parent_fromsnap_guid) { - sprintf(guidname, "%lu", parent_fromsnap_guid); + sprintf(guidname, "%" PRIu64, parent_fromsnap_guid); if (nvlist_exists(deleted, guidname)) { progress = B_TRUE; needagain = B_TRUE; From owner-svn-src-head@freebsd.org Sun May 6 19:04:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 511FDFC30B4; Sun, 6 May 2018 19:04:36 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f173.google.com (mail-io0-f173.google.com [209.85.223.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CA7D37FABB; Sun, 6 May 2018 19:04:35 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f173.google.com with SMTP id d11-v6so31165329iof.11; Sun, 06 May 2018 12:04:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=wN8jPPvBLTJhK/VPKXL2yhavfBb6rvKhx4w5mO33LrE=; b=Eka3Bv5h9f5KJLya6XGXnq17VJlG2Snos5twbw0qkGwgKlqW2iae6CkZcjgUoerQDD oxXSjYAsTZrQJps2Wj0h6FTZZ2JTlMURQpePh1zvRQxrnuVnJH9t/BRCvNUr2papeXuI f93mB1JqOdm8ka65FESJZzXYo4YjnvFCzF7rZvu96xtJrH4Mx/qUCXthByIZdt28h/nn W5X7giPKihvUfDaSutLOajpddxesiiQjwBSt4PXtTtBGOmNdDswXmH9mdoCgfIfOFMgS 1ZNNfu6UtIQ6HjHhj22bJPt6ZYjWRsnsX73Dl4oa0/DT7Gnh5YdsM81O+TTCmXYT1M1D DQZw== X-Gm-Message-State: ALQs6tCgVZu+PDUdzuoQEVsgQYULw/aKd6o5e27ba6OpI0u+eQhSCWNH RwNMLEnhSslMva3d1DGS68IrNfu4 X-Google-Smtp-Source: AB8JxZqHvjjv2Px1nmESIa/PEHPT9oRHyVLThNE+QYvNmZZ2RL6i/jUSN7qv/TXgEycTamEI7leFiQ== X-Received: by 2002:a6b:752:: with SMTP id 79-v6mr37997795ioh.216.1525626570712; Sun, 06 May 2018 10:09:30 -0700 (PDT) Received: from mail-it0-f44.google.com (mail-it0-f44.google.com. [209.85.214.44]) by smtp.gmail.com with ESMTPSA id s69-v6sm1711257ita.23.2018.05.06.10.09.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 06 May 2018 10:09:30 -0700 (PDT) Received: by mail-it0-f44.google.com with SMTP id 70-v6so8844080ity.2; Sun, 06 May 2018 10:09:30 -0700 (PDT) X-Received: by 2002:a24:1f4a:: with SMTP id d71-v6mr16840359itd.53.1525626570070; Sun, 06 May 2018 10:09:30 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 2002:a02:a40b:0:0:0:0:0 with HTTP; Sun, 6 May 2018 10:09:29 -0700 (PDT) In-Reply-To: <201805061419.w46EJpj3094778@repo.freebsd.org> References: <201805061419.w46EJpj3094778@repo.freebsd.org> From: Conrad Meyer Date: Sun, 6 May 2018 10:09:29 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333304 - head/sys/netinet To: Michael Tuexen Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 19:04:36 -0000 FYI, Coverity can detect this kind of issue scanning the kernel (not just usrsctp). It was detected as CID 1385266 on FreeBSD's Coverity Scan. Best, Conrad On Sun, May 6, 2018 at 7:19 AM, Michael Tuexen wrote: > Author: tuexen > Date: Sun May 6 14:19:50 2018 > New Revision: 333304 > URL: https://svnweb.freebsd.org/changeset/base/333304 > > Log: > Ensure we are not dereferencing a NULL pointer. > > This was found by Coverity scanning the usrsctp stack (CID 203808). > > MFC after: 3 days > > Modified: > head/sys/netinet/sctp_indata.c > > Modified: head/sys/netinet/sctp_indata.c > ============================================================================== > --- head/sys/netinet/sctp_indata.c Sun May 6 13:59:56 2018 (r333303) > +++ head/sys/netinet/sctp_indata.c Sun May 6 14:19:50 2018 (r333304) > @@ -3621,7 +3621,9 @@ sctp_strike_gap_ack_chunks(struct sctp_tcb *stcb, stru > SCTP_SO_NOT_LOCKED); > } > /* Make sure to flag we had a FR */ > - tp1->whoTo->net_ack++; > + if (tp1->whoTo != NULL) { > + tp1->whoTo->net_ack++; > + } > continue; > } > } > From owner-svn-src-head@freebsd.org Sun May 6 19:55:21 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25DDBFC4A02; Sun, 6 May 2018 19:55:21 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from drew.franken.de (mail-n.franken.de [193.175.24.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.franken.de", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BC86B6DC95; Sun, 6 May 2018 19:55:20 +0000 (UTC) (envelope-from tuexen@freebsd.org) Received: from [192.168.1.131] (p57BB4F6D.dip0.t-ipconnect.de [87.187.79.109]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTPSA id A9527721E280C; Sun, 6 May 2018 21:55:11 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 11.3 \(3445.6.18\)) Subject: Re: svn commit: r333304 - head/sys/netinet From: Michael Tuexen In-Reply-To: Date: Sun, 6 May 2018 21:55:10 +0200 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <30787D45-D97E-4AB0-9EA5-E2B003796D9B@freebsd.org> References: <201805061419.w46EJpj3094778@repo.freebsd.org> To: cem@freebsd.org X-Mailer: Apple Mail (2.3445.6.18) X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=disabled version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail-n.franken.de X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 19:55:21 -0000 > On 6. May 2018, at 19:09, Conrad Meyer wrote: >=20 > FYI, Coverity can detect this kind of issue scanning the kernel (not > just usrsctp). It was detected as CID 1385266 on FreeBSD's Coverity > Scan. That is correct. I just had problems in getting access to the FreeBSD page, so I didn't know the number. This has now been resolved. Best regards Michael >=20 > Best, > Conrad >=20 > On Sun, May 6, 2018 at 7:19 AM, Michael Tuexen = wrote: >> Author: tuexen >> Date: Sun May 6 14:19:50 2018 >> New Revision: 333304 >> URL: https://svnweb.freebsd.org/changeset/base/333304 >>=20 >> Log: >> Ensure we are not dereferencing a NULL pointer. >>=20 >> This was found by Coverity scanning the usrsctp stack (CID 203808). >>=20 >> MFC after: 3 days >>=20 >> Modified: >> head/sys/netinet/sctp_indata.c >>=20 >> Modified: head/sys/netinet/sctp_indata.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/sys/netinet/sctp_indata.c Sun May 6 13:59:56 2018 = (r333303) >> +++ head/sys/netinet/sctp_indata.c Sun May 6 14:19:50 2018 = (r333304) >> @@ -3621,7 +3621,9 @@ sctp_strike_gap_ack_chunks(struct sctp_tcb = *stcb, stru >> = SCTP_SO_NOT_LOCKED); >> } >> /* Make sure to flag we had a = FR */ >> - tp1->whoTo->net_ack++; >> + if (tp1->whoTo !=3D NULL) { >> + = tp1->whoTo->net_ack++; >> + } >> continue; >> } >> } >>=20 From owner-svn-src-head@freebsd.org Sun May 6 20:32:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 215DDFC56FF; Sun, 6 May 2018 20:32:48 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C2FA67497F; Sun, 6 May 2018 20:32:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BDB13119F2; Sun, 6 May 2018 20:32:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w46KWlNw088040; Sun, 6 May 2018 20:32:47 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46KWlCD088039; Sun, 6 May 2018 20:32:47 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805062032.w46KWlCD088039@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Sun, 6 May 2018 20:32:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333308 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333308 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 20:32:48 -0000 Author: mmacy Date: Sun May 6 20:32:47 2018 New Revision: 333308 URL: https://svnweb.freebsd.org/changeset/base/333308 Log: The ifnet pointer (ifp) in rt_newaddrmsg can be valid without ifp->if_addr being set if if the ifnet is still live by way of a reference but in line for deletion. Check ifp->if_addr before dereferencing. Approved by: sbruno Modified: head/sys/net/rtsock.c Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Sun May 6 16:22:02 2018 (r333307) +++ head/sys/net/rtsock.c Sun May 6 20:32:47 2018 (r333308) @@ -1411,7 +1411,10 @@ rt_newmaddrmsg(int cmd, struct ifmultiaddr *ifma) bzero((caddr_t)&info, sizeof(info)); info.rti_info[RTAX_IFA] = ifma->ifma_addr; - info.rti_info[RTAX_IFP] = ifp ? ifp->if_addr->ifa_addr : NULL; + if (ifp && ifp->if_addr) + info.rti_info[RTAX_IFP] = ifp->if_addr->ifa_addr; + else + info.rti_info[RTAX_IFP] = NULL; /* * If a link-layer address is present, present it as a ``gateway'' * (similarly to how ARP entries, e.g., are presented). From owner-svn-src-head@freebsd.org Sun May 6 20:34:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5EA96FC57B7; Sun, 6 May 2018 20:34:15 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 10E6B7573E; Sun, 6 May 2018 20:34:15 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 08B8C119F4; Sun, 6 May 2018 20:34:15 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w46KYEKn088158; Sun, 6 May 2018 20:34:14 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46KYDUY088148; Sun, 6 May 2018 20:34:13 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805062034.w46KYDUY088148@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Sun, 6 May 2018 20:34:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333309 - in head/sys: net netinet netinet6 X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: net netinet netinet6 X-SVN-Commit-Revision: 333309 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 20:34:15 -0000 Author: mmacy Date: Sun May 6 20:34:13 2018 New Revision: 333309 URL: https://svnweb.freebsd.org/changeset/base/333309 Log: r333175 introduced deferred deletion of multicast addresses in order to permit the driver ioctl to sleep on commands to the NIC when updating multicast filters. More generally this permitted driver's to use an sx as a softc lock. Unfortunately this change introduced a race whereby a a multicast update would still be queued for deletion when ifconfig deleted the interface thus calling down in to _purgemaddrs and synchronously deleting _all_ of the multicast addresses on the interface. Synchronously remove all external references to a multicast address before enqueueing for delete. Reported by: lwhsu Approved by: sbruno Modified: head/sys/net/if.c head/sys/net/if_var.h head/sys/netinet/igmp.c head/sys/netinet/in.c head/sys/netinet/in_mcast.c head/sys/netinet/in_var.h head/sys/netinet6/in6_ifattach.c head/sys/netinet6/in6_mcast.c head/sys/netinet6/in6_var.h head/sys/netinet6/mld6.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Sun May 6 20:32:47 2018 (r333308) +++ head/sys/net/if.c Sun May 6 20:34:13 2018 (r333309) @@ -254,7 +254,6 @@ struct mbuf *(*tbr_dequeue_ptr)(struct ifaltq *, int) static void if_attachdomain(void *); static void if_attachdomain1(struct ifnet *); static int ifconf(u_long, caddr_t); -static void if_freemulti(struct ifmultiaddr *); static void if_grow(void); static void if_input_default(struct ifnet *, struct mbuf *); static int if_requestencap_default(struct ifnet *, struct if_encap_req *); @@ -3395,7 +3394,10 @@ if_allocmulti(struct ifnet *ifp, struct sockaddr *sa, * counting, notifying the driver, handling routing messages, and releasing * any dependent link layer state. */ -static void +#ifdef MCAST_VERBOSE +extern void kdb_backtrace(void); +#endif +void if_freemulti(struct ifmultiaddr *ifma) { @@ -3404,6 +3406,10 @@ if_freemulti(struct ifmultiaddr *ifma) if (ifma->ifma_lladdr != NULL) free(ifma->ifma_lladdr, M_IFMADDR); +#ifdef MCAST_VERBOSE + kdb_backtrace(); + printf("%s freeing ifma: %p\n", __func__, ifma); +#endif free(ifma->ifma_addr, M_IFMADDR); free(ifma, M_IFMADDR); } @@ -3610,6 +3616,12 @@ if_delallmulti(struct ifnet *ifp) IF_ADDR_WUNLOCK(ifp); } +void +if_delmulti_ifma(struct ifmultiaddr *ifma) +{ + if_delmulti_ifma_flags(ifma, 0); +} + /* * Delete a multicast group membership by group membership pointer. * Network-layer protocol domains must use this routine. @@ -3617,11 +3629,11 @@ if_delallmulti(struct ifnet *ifp) * It is safe to call this routine if the ifp disappeared. */ void -if_delmulti_ifma(struct ifmultiaddr *ifma) +if_delmulti_ifma_flags(struct ifmultiaddr *ifma, int flags) { struct ifnet *ifp; int lastref; - + MCDPRINTF("%s freeing ifma: %p\n", __func__, ifma); #ifdef INET IN_MULTI_LIST_UNLOCK_ASSERT(); #endif @@ -3649,7 +3661,7 @@ if_delmulti_ifma(struct ifmultiaddr *ifma) if (ifp != NULL) IF_ADDR_WLOCK(ifp); - lastref = if_delmulti_locked(ifp, ifma, 0); + lastref = if_delmulti_locked(ifp, ifma, flags); if (ifp != NULL) { /* @@ -3683,6 +3695,7 @@ if_delmulti_locked(struct ifnet *ifp, struct ifmultiad } ifp = ifma->ifma_ifp; + MCDPRINTF("%s freeing %p from %s \n", __func__, ifma, ifp ? ifp->if_xname : ""); /* * If the ifnet is detaching, null out references to ifnet, @@ -3708,6 +3721,9 @@ if_delmulti_locked(struct ifnet *ifp, struct ifmultiad if (--ifma->ifma_refcount > 0) return 0; + if (ifp != NULL && detaching == 0) + TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link); + /* * If this ifma is a network-layer ifma, a link-layer ifma may * have been associated with it. Release it first if so. @@ -3726,11 +3742,15 @@ if_delmulti_locked(struct ifnet *ifp, struct ifmultiad if_freemulti(ll_ifma); } } - if (ifp != NULL && detaching == 0) - TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link); +#ifdef INVARIANTS + if (ifp) { + struct ifmultiaddr *ifmatmp; + TAILQ_FOREACH(ifmatmp, &ifp->if_multiaddrs, ifma_link) + MPASS(ifma != ifmatmp); + } +#endif if_freemulti(ifma); - /* * The last reference to this instance of struct ifmultiaddr * was released; the hardware should be notified of this change. Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Sun May 6 20:32:47 2018 (r333308) +++ head/sys/net/if_var.h Sun May 6 20:34:13 2018 (r333309) @@ -596,6 +596,12 @@ VNET_DECLARE(struct ifnet *, loif); /* first loopback #define V_if_index VNET(if_index) #define V_loif VNET(loif) +#ifdef MCAST_VERBOSE +#define MCDPRINTF printf +#else +#define MCDPRINTF(...) +#endif + int if_addgroup(struct ifnet *, const char *); int if_delgroup(struct ifnet *, const char *); int if_addmulti(struct ifnet *, struct sockaddr *, struct ifmultiaddr **); @@ -605,12 +611,14 @@ void if_attach(struct ifnet *); void if_dead(struct ifnet *); int if_delmulti(struct ifnet *, struct sockaddr *); void if_delmulti_ifma(struct ifmultiaddr *); +void if_delmulti_ifma_flags(struct ifmultiaddr *, int flags); void if_detach(struct ifnet *); void if_purgeaddrs(struct ifnet *); void if_delallmulti(struct ifnet *); void if_down(struct ifnet *); struct ifmultiaddr * if_findmulti(struct ifnet *, const struct sockaddr *); +void if_freemulti(struct ifmultiaddr *ifma); void if_free(struct ifnet *); void if_initname(struct ifnet *, const char *, int); void if_link_state_change(struct ifnet *, int); Modified: head/sys/netinet/igmp.c ============================================================================== --- head/sys/netinet/igmp.c Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet/igmp.c Sun May 6 20:34:13 2018 (r333309) @@ -610,7 +610,7 @@ void igmp_ifdetach(struct ifnet *ifp) { struct igmp_ifsoftc *igi; - struct ifmultiaddr *ifma; + struct ifmultiaddr *ifma, *next; struct in_multi *inm; struct in_multi_head inm_free_tmp; CTR3(KTR_IGMPV3, "%s: called for ifp %p(%s)", __func__, ifp, @@ -621,21 +621,22 @@ igmp_ifdetach(struct ifnet *ifp) igi = ((struct in_ifinfo *)ifp->if_afdata[AF_INET])->ii_igmp; if (igi->igi_version == IGMP_VERSION_3) { - IF_ADDR_RLOCK(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + IF_ADDR_WLOCK(ifp); + restart: + TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next) { if (ifma->ifma_addr->sa_family != AF_INET || ifma->ifma_protospec == NULL) continue; -#if 0 - KASSERT(ifma->ifma_protospec != NULL, - ("%s: ifma_protospec is NULL", __func__)); -#endif inm = (struct in_multi *)ifma->ifma_protospec; if (inm->inm_state == IGMP_LEAVING_MEMBER) inm_rele_locked(&inm_free_tmp, inm); inm_clear_recorded(inm); + if (__predict_false(ifma_restart)) { + ifma_restart = false; + goto restart; + } } - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); inm_release_list_deferred(&inm_free_tmp); } IGMP_UNLOCK(); @@ -1631,7 +1632,7 @@ igmp_fasttimo_vnet(void) struct mbufq qrq; /* Query response packets */ struct ifnet *ifp; struct igmp_ifsoftc *igi; - struct ifmultiaddr *ifma; + struct ifmultiaddr *ifma, *next; struct in_multi *inm; struct in_multi_head inm_free_tmp; int loop, uri_fasthz; @@ -1695,8 +1696,9 @@ igmp_fasttimo_vnet(void) mbufq_init(&scq, IGMP_MAX_STATE_CHANGE_PACKETS); } - IF_ADDR_RLOCK(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + IF_ADDR_WLOCK(ifp); + restart: + TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next) { if (ifma->ifma_addr->sa_family != AF_INET || ifma->ifma_protospec == NULL) continue; @@ -1712,8 +1714,12 @@ igmp_fasttimo_vnet(void) &scq, inm, uri_fasthz); break; } + if (__predict_false(ifma_restart)) { + ifma_restart = false; + goto restart; + } } - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); if (igi->igi_version == IGMP_VERSION_3) { igmp_dispatch_queue(&qrq, 0, loop); Modified: head/sys/netinet/in.c ============================================================================== --- head/sys/netinet/in.c Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet/in.c Sun May 6 20:34:13 2018 (r333309) @@ -1012,7 +1012,7 @@ in_purgemaddrs(struct ifnet *ifp) { struct in_multi_head purgeinms; struct in_multi *inm; - struct ifmultiaddr *ifma; + struct ifmultiaddr *ifma, *next; SLIST_INIT(&purgeinms); IN_MULTI_LIST_LOCK(); @@ -1023,19 +1023,20 @@ in_purgemaddrs(struct ifnet *ifp) * We need to do this as IF_ADDR_LOCK() may be re-acquired * by code further down. */ - IF_ADDR_RLOCK(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + IF_ADDR_WLOCK(ifp); + restart: + TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next) { if (ifma->ifma_addr->sa_family != AF_INET || ifma->ifma_protospec == NULL) continue; -#if 0 - KASSERT(ifma->ifma_protospec != NULL, - ("%s: ifma_protospec is NULL", __func__)); -#endif inm = (struct in_multi *)ifma->ifma_protospec; inm_rele_locked(&purgeinms, inm); + if (__predict_false(ifma_restart)) { + ifma_restart = true; + goto restart; + } } - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); inm_release_list_deferred(&purgeinms); igmp_ifdetach(ifp); Modified: head/sys/netinet/in_mcast.c ============================================================================== --- head/sys/netinet/in_mcast.c Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet/in_mcast.c Sun May 6 20:34:13 2018 (r333309) @@ -112,6 +112,8 @@ MTX_SYSINIT(in_multi_free_mtx, &in_multi_free_mtx, "in struct sx in_multi_sx; SX_SYSINIT(in_multi_sx, &in_multi_sx, "in_multi_sx"); +int ifma_restart; + /* * Functions with non-static linkage defined in this file should be * declared in in_var.h: @@ -252,6 +254,33 @@ inm_release_list_deferred(struct in_multi_head *inmh) } void +inm_disconnect(struct in_multi *inm) +{ + struct ifnet *ifp; + struct ifmultiaddr *ifma, *ll_ifma; + + ifp = inm->inm_ifp; + IF_ADDR_WLOCK_ASSERT(ifp); + ifma = inm->inm_ifma; + + if_ref(ifp); + TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link); + MCDPRINTF("removed ifma: %p from %s\n", ifma, ifp->if_xname); + if ((ll_ifma = ifma->ifma_llifma) != NULL) { + MPASS(ifma != ll_ifma); + ifma->ifma_llifma = NULL; + MPASS(ll_ifma->ifma_llifma == NULL); + MPASS(ll_ifma->ifma_ifp == ifp); + if (--ll_ifma->ifma_refcount == 0) { + TAILQ_REMOVE(&ifp->if_multiaddrs, ll_ifma, ifma_link); + MCDPRINTF("removed ll_ifma: %p from %s\n", ll_ifma, ifp->if_xname); + if_freemulti(ll_ifma); + ifma_restart = true; + } + } +} + +void inm_release_deferred(struct in_multi *inm) { struct in_multi_head tmp; @@ -260,6 +289,7 @@ inm_release_deferred(struct in_multi *inm) MPASS(inm->inm_refcount > 0); if (--inm->inm_refcount == 0) { SLIST_INIT(&tmp); + inm_disconnect(inm); inm->inm_ifma->ifma_protospec = NULL; SLIST_INSERT_HEAD(&tmp, inm, inm_nrele); inm_release_list_deferred(&tmp); @@ -643,9 +673,11 @@ inm_release(struct in_multi *inm) inm_purge(inm); free(inm, M_IPMADDR); - if_delmulti_ifma(ifma); - if (ifp) + if_delmulti_ifma_flags(ifma, 1); + if (ifp) { CURVNET_RESTORE(); + if_rele(ifp); + } } /* @@ -1270,7 +1302,6 @@ in_joingroup_locked(struct ifnet *ifp, const struct in } out_inm_release: - IN_MULTI_LIST_UNLOCK(); if (error) { CTR2(KTR_IGMPV3, "%s: dropping ref on %p", __func__, inm); @@ -1278,6 +1309,7 @@ in_joingroup_locked(struct ifnet *ifp, const struct in } else { *pinm = inm; } + IN_MULTI_LIST_UNLOCK(); return (error); } @@ -1350,7 +1382,9 @@ in_leavegroup_locked(struct in_multi *inm, /*const*/ s CTR1(KTR_IGMPV3, "%s: doing igmp downcall", __func__); CURVNET_SET(inm->inm_ifp->if_vnet); error = igmp_change_state(inm); + IF_ADDR_WLOCK(inm->inm_ifp); inm_release_deferred(inm); + IF_ADDR_WUNLOCK(inm->inm_ifp); IN_MULTI_LIST_UNLOCK(); CURVNET_RESTORE(); if (error) Modified: head/sys/netinet/in_var.h ============================================================================== --- head/sys/netinet/in_var.h Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet/in_var.h Sun May 6 20:34:13 2018 (r333309) @@ -343,6 +343,9 @@ extern struct sx in_multi_sx; #define IN_MULTI_LOCK_ASSERT() sx_assert(&in_multi_sx, SA_XLOCKED) #define IN_MULTI_UNLOCK_ASSERT() sx_assert(&in_multi_sx, SA_XUNLOCKED) +void inm_disconnect(struct in_multi *inm); +extern int ifma_restart; + /* Acquire an in_multi record. */ static __inline void inm_acquire_locked(struct in_multi *inm) @@ -368,6 +371,7 @@ inm_rele_locked(struct in_multi_head *inmh, struct in_ if (--inm->inm_refcount == 0) { MPASS(inmh != NULL); + inm_disconnect(inm); inm->inm_ifma->ifma_protospec = NULL; SLIST_INSERT_HEAD(inmh, inm, inm_nrele); } Modified: head/sys/netinet6/in6_ifattach.c ============================================================================== --- head/sys/netinet6/in6_ifattach.c Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet6/in6_ifattach.c Sun May 6 20:34:13 2018 (r333309) @@ -848,26 +848,29 @@ in6_purgemaddrs(struct ifnet *ifp) { struct in6_multi_head purgeinms; struct in6_multi *inm; - struct ifmultiaddr *ifma; + struct ifmultiaddr *ifma, *next; SLIST_INIT(&purgeinms); IN6_MULTI_LOCK(); IN6_MULTI_LIST_LOCK(); + IF_ADDR_WLOCK(ifp); /* * Extract list of in6_multi associated with the detaching ifp * which the PF_INET6 layer is about to release. - * We need to do this as IF_ADDR_LOCK() may be re-acquired - * by code further down. */ - IF_ADDR_RLOCK(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + restart: + TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next) { if (ifma->ifma_addr->sa_family != AF_INET6 || ifma->ifma_protospec == NULL) continue; inm = (struct in6_multi *)ifma->ifma_protospec; in6m_rele_locked(&purgeinms, inm); + if (__predict_false(ifma6_restart)) { + ifma6_restart = false; + goto restart; + } } - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); mld_ifdetach(ifp); IN6_MULTI_LIST_UNLOCK(); IN6_MULTI_UNLOCK(); Modified: head/sys/netinet6/in6_mcast.c ============================================================================== --- head/sys/netinet6/in6_mcast.c Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet6/in6_mcast.c Sun May 6 20:34:13 2018 (r333309) @@ -190,6 +190,7 @@ static SYSCTL_NODE(_net_inet6_ip6_mcast, OID_AUTO, fil CTLFLAG_RD | CTLFLAG_MPSAFE, sysctl_ip6_mcast_filters, "Per-interface stack-wide source filters"); +int ifma6_restart = 0; #ifdef KTR /* * Inline function which wraps assertions for a valid ifp. @@ -531,6 +532,7 @@ in6m_release(struct in6_multi *inm) ifma = inm->in6m_ifma; ifp = inm->in6m_ifp; + MPASS(ifma->ifma_llifma == NULL); /* XXX this access is not covered by IF_ADDR_LOCK */ CTR2(KTR_MLD, "%s: purging ifma %p", __func__, ifma); @@ -542,9 +544,11 @@ in6m_release(struct in6_multi *inm) in6m_purge(inm); free(inm, M_IP6MADDR); - if_delmulti_ifma(ifma); - if (ifp) + if_delmulti_ifma_flags(ifma, 1); + if (ifp) { CURVNET_RESTORE(); + if_rele(ifp); + } } static struct grouptask free_gtask; @@ -572,30 +576,58 @@ in6m_release_list_deferred(struct in6_multi_head *inmh } void -in6m_release_deferred(struct in6_multi *inm) +in6m_disconnect(struct in6_multi *inm) { - struct in6_multi_head tmp; struct ifnet *ifp; struct ifaddr *ifa; struct in6_ifaddr *ifa6; struct in6_multi_mship *imm; + struct ifmultiaddr *ifma, *ll_ifma; + ifp = inm->in6m_ifp; + IF_ADDR_WLOCK_ASSERT(ifp); + ifma = inm->in6m_ifma; + + if_ref(ifp); + TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link); + MCDPRINTF("removed ifma: %p from %s\n", ifma, ifp->if_xname); + if ((ll_ifma = ifma->ifma_llifma) != NULL) { + MPASS(ifma != ll_ifma); + ifma->ifma_llifma = NULL; + MPASS(ll_ifma->ifma_llifma == NULL); + MPASS(ll_ifma->ifma_ifp == ifp); + if (--ll_ifma->ifma_refcount == 0) { + ifma6_restart = true; + TAILQ_REMOVE(&ifp->if_multiaddrs, ll_ifma, ifma_link); + MCDPRINTF("removed ll_ifma: %p from %s\n", ll_ifma, ifp->if_xname); + if_freemulti(ll_ifma); + } + } + TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + if (ifa->ifa_addr->sa_family != AF_INET6) + continue; + ifa6 = (void *)ifa; + LIST_FOREACH(imm, &ifa6->ia6_memberships, i6mm_chain) { + if (inm == imm->i6mm_maddr) { + LIST_REMOVE(imm, i6mm_chain); + free(imm, M_IP6MADDR); + } + } + } +} + +void +in6m_release_deferred(struct in6_multi *inm) +{ + struct in6_multi_head tmp; + IN6_MULTI_LIST_LOCK_ASSERT(); KASSERT(inm->in6m_refcount > 0, ("refcount == %d inm: %p", inm->in6m_refcount, inm)); if (--inm->in6m_refcount == 0) { - ifp = inm->in6m_ifp; - IF_ADDR_LOCK_ASSERT(ifp); - TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { - if (ifa->ifa_addr->sa_family != AF_INET6) - continue; - ifa6 = (void *)ifa; - LIST_FOREACH(imm, &ifa6->ia6_memberships, i6mm_chain) { - if (inm == imm->i6mm_maddr) - imm->i6mm_maddr = NULL; - } - } + in6m_disconnect(inm); SLIST_INIT(&tmp); inm->in6m_ifma->ifma_protospec = NULL; + MPASS(inm->in6m_ifma->ifma_llifma == NULL); SLIST_INSERT_HEAD(&tmp, inm, in6m_nrele); in6m_release_list_deferred(&tmp); } @@ -1355,10 +1387,10 @@ in6_leavegroup_locked(struct in6_multi *inm, /*const*/ CTR2(KTR_MLD, "%s: dropping ref on %p", __func__, inm); if (ifp) - IF_ADDR_RLOCK(ifp); + IF_ADDR_WLOCK(ifp); in6m_release_deferred(inm); if (ifp) - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); IN6_MULTI_LIST_UNLOCK(); return (error); Modified: head/sys/netinet6/in6_var.h ============================================================================== --- head/sys/netinet6/in6_var.h Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet6/in6_var.h Sun May 6 20:34:13 2018 (r333309) @@ -670,6 +670,8 @@ struct in6_multi { } in6m_st[2]; /* state at t0, t1 */ }; +void in6m_disconnect(struct in6_multi *inm); +extern int ifma6_restart; /* * Helper function to derive the filter mode on a source entry * from its internal counters. Predicates are: @@ -711,6 +713,7 @@ extern struct sx in6_multi_sx; #define IN6_MULTI_LOCK_ASSERT() sx_assert(&in6_multi_sx, SA_XLOCKED) #define IN6_MULTI_UNLOCK_ASSERT() sx_assert(&in6_multi_sx, SA_XUNLOCKED) + /* * Look up an in6_multi record for an IPv6 multicast address * on the interface ifp. @@ -779,28 +782,13 @@ in6m_acquire(struct in6_multi *inm) static __inline void in6m_rele_locked(struct in6_multi_head *inmh, struct in6_multi *inm) { - struct ifnet *ifp; - struct ifaddr *ifa; - struct in6_ifaddr *ifa6; - struct in6_multi_mship *imm; - KASSERT(inm->in6m_refcount > 0, ("refcount == %d inm: %p", inm->in6m_refcount, inm)); IN6_MULTI_LIST_LOCK_ASSERT(); if (--inm->in6m_refcount == 0) { - ifp = inm->in6m_ifp; - IF_ADDR_LOCK_ASSERT(ifp); - TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { - if (ifa->ifa_addr->sa_family != AF_INET6) - continue; - - ifa6 = (void *)ifa; - LIST_FOREACH(imm, &ifa6->ia6_memberships, i6mm_chain) { - if (inm == imm->i6mm_maddr) - imm->i6mm_maddr = NULL; - } - } + in6m_disconnect(inm); inm->in6m_ifma->ifma_protospec = NULL; + MPASS(inm->in6m_ifma->ifma_llifma == NULL); SLIST_INSERT_HEAD(inmh, inm, in6m_nrele); } } Modified: head/sys/netinet6/mld6.c ============================================================================== --- head/sys/netinet6/mld6.c Sun May 6 20:32:47 2018 (r333308) +++ head/sys/netinet6/mld6.c Sun May 6 20:34:13 2018 (r333309) @@ -536,7 +536,7 @@ void mld_ifdetach(struct ifnet *ifp) { struct mld_ifsoftc *mli; - struct ifmultiaddr *ifma; + struct ifmultiaddr *ifma, *next; struct in6_multi *inm; struct in6_multi_head inmh; @@ -549,8 +549,9 @@ mld_ifdetach(struct ifnet *ifp) mli = MLD_IFINFO(ifp); if (mli->mli_version == MLD_VERSION_2) { - IF_ADDR_RLOCK(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + IF_ADDR_WLOCK(ifp); + restart: + TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next) { if (ifma->ifma_addr->sa_family != AF_INET6 || ifma->ifma_protospec == NULL) continue; @@ -560,8 +561,12 @@ mld_ifdetach(struct ifnet *ifp) ifma->ifma_protospec = NULL; } in6m_clear_recorded(inm); + if (__predict_false(ifma6_restart)) { + ifma6_restart = false; + goto restart; + } } - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); } MLD_UNLOCK(); @@ -696,7 +701,7 @@ mld_v1_input_query(struct ifnet *ifp, const struct ip6 * interface, kick the report timer. */ CTR2(KTR_MLD, "process v1 general query on ifp %p(%s)", - ifp, if_name(ifp)); + ifp, if_name(ifp)); TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_INET6 || ifma->ifma_protospec == NULL) @@ -1326,7 +1331,7 @@ mld_fasttimo_vnet(void) struct mbufq qrq; /* Query response packets */ struct ifnet *ifp; struct mld_ifsoftc *mli; - struct ifmultiaddr *ifma; + struct ifmultiaddr *ifma, *next; struct in6_multi *inm, *tinm; struct in6_multi_head inmh; int uri_fasthz; @@ -1388,8 +1393,9 @@ mld_fasttimo_vnet(void) mbufq_init(&scq, MLD_MAX_STATE_CHANGE_PACKETS); } - IF_ADDR_RLOCK(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + IF_ADDR_WLOCK(ifp); + restart: + TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next) { if (ifma->ifma_addr->sa_family != AF_INET6 || ifma->ifma_protospec == NULL) continue; @@ -1403,8 +1409,12 @@ mld_fasttimo_vnet(void) &scq, inm, uri_fasthz); break; } + if (__predict_false(ifma6_restart)) { + ifma6_restart = false; + goto restart; + } } - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); switch (mli->mli_version) { case MLD_VERSION_1: @@ -1641,7 +1651,7 @@ mld_set_version(struct mld_ifsoftc *mli, const int ver static void mld_v2_cancel_link_timers(struct mld_ifsoftc *mli) { - struct ifmultiaddr *ifma; + struct ifmultiaddr *ifma, *next; struct ifnet *ifp; struct in6_multi *inm; struct in6_multi_head inmh; @@ -1666,8 +1676,9 @@ mld_v2_cancel_link_timers(struct mld_ifsoftc *mli) ifp = mli->mli_ifp; - IF_ADDR_RLOCK(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + IF_ADDR_WLOCK(ifp); + restart: + TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next) { if (ifma->ifma_addr->sa_family != AF_INET6) continue; inm = (struct in6_multi *)ifma->ifma_protospec; @@ -1702,8 +1713,12 @@ mld_v2_cancel_link_timers(struct mld_ifsoftc *mli) mbufq_drain(&inm->in6m_scq); break; } + if (__predict_false(ifma6_restart)) { + ifma6_restart = false; + goto restart; + } } - IF_ADDR_RUNLOCK(ifp); + IF_ADDR_WUNLOCK(ifp); in6m_release_list_deferred(&inmh); } From owner-svn-src-head@freebsd.org Sun May 6 21:22:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD902FC7FA4; Sun, 6 May 2018 21:22:47 +0000 (UTC) (envelope-from phk@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62BD88177D; Sun, 6 May 2018 21:22:47 +0000 (UTC) (envelope-from phk@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 57F5112253; Sun, 6 May 2018 21:22:47 +0000 (UTC) (envelope-from phk@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w46LMlEm013155; Sun, 6 May 2018 21:22:47 GMT (envelope-from phk@FreeBSD.org) Received: (from phk@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46LMlWD013154; Sun, 6 May 2018 21:22:47 GMT (envelope-from phk@FreeBSD.org) Message-Id: <201805062122.w46LMlWD013154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: phk set sender to phk@FreeBSD.org using -f From: Poul-Henning Kamp Date: Sun, 6 May 2018 21:22:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333310 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: phk X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 333310 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 21:22:48 -0000 Author: phk Date: Sun May 6 21:22:46 2018 New Revision: 333310 URL: https://svnweb.freebsd.org/changeset/base/333310 Log: With the fall-back hack for lint gone, I have no copyright claim on this file. Modified: head/sys/sys/_stdarg.h Modified: head/sys/sys/_stdarg.h ============================================================================== --- head/sys/sys/_stdarg.h Sun May 6 20:34:13 2018 (r333309) +++ head/sys/sys/_stdarg.h Sun May 6 21:22:46 2018 (r333310) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-3-Clause * * Copyright (c) 2002 David E. O'Brien. All rights reserved. - * Copyright (c) 2017 Poul-Henning Kamp. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Sun May 6 21:29:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B081FC8199; Sun, 6 May 2018 21:29:31 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C1D0F83ABB; Sun, 6 May 2018 21:29:30 +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 BBCDE1225C; Sun, 6 May 2018 21:29:30 +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 w46LTUZN004767; Sun, 6 May 2018 21:29:30 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w46LTU7X004766; Sun, 6 May 2018 21:29:30 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201805062129.w46LTU7X004766@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 6 May 2018 21:29:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333311 - head/sys/fs/msdosfs X-SVN-Group: head X-SVN-Commit-Author: pfg X-SVN-Commit-Paths: head/sys/fs/msdosfs X-SVN-Commit-Revision: 333311 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 21:29:31 -0000 Author: pfg Date: Sun May 6 21:29:29 2018 New Revision: 333311 URL: https://svnweb.freebsd.org/changeset/base/333311 Log: msdosfs: use vfs_timestamp() to generate timestamps instead of getnanotime(). Most filesystems, with the notable exceptions of msdosfs and autofs use only vfs_timestamp() to read the current time. This has the benefit of configurable granularity (using the vfs.timestamp_precision sysctl). For convenience, use it on msdosfs too. Submitted by: Damjan Jovanovic Differential Revision: https://reviews.freebsd.org/D15297 Modified: head/sys/fs/msdosfs/msdosfs_denode.c head/sys/fs/msdosfs/msdosfs_vnops.c Modified: head/sys/fs/msdosfs/msdosfs_denode.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_denode.c Sun May 6 21:22:46 2018 (r333310) +++ head/sys/fs/msdosfs/msdosfs_denode.c Sun May 6 21:29:29 2018 (r333311) @@ -297,7 +297,7 @@ deupdat(struct denode *dep, int waitfor) DE_MODIFIED); return (0); } - getnanotime(&ts); + vfs_timestamp(&ts); DETIMES(dep, &ts, &ts, &ts); if ((dep->de_flag & DE_MODIFIED) == 0 && waitfor == 0) return (0); Modified: head/sys/fs/msdosfs/msdosfs_vnops.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_vnops.c Sun May 6 21:22:46 2018 (r333310) +++ head/sys/fs/msdosfs/msdosfs_vnops.c Sun May 6 21:29:29 2018 (r333311) @@ -178,7 +178,7 @@ msdosfs_create(struct vop_create_args *ap) ndirent.de_FileSize = 0; ndirent.de_pmp = pdep->de_pmp; ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE; - getnanotime(&ts); + vfs_timestamp(&ts); DETIMES(&ndirent, &ts, &ts, &ts); error = createde(&ndirent, pdep, &dep, cnp); if (error) @@ -216,7 +216,7 @@ msdosfs_close(struct vop_close_args *ap) VI_LOCK(vp); if (vp->v_usecount > 1) { - getnanotime(&ts); + vfs_timestamp(&ts); DETIMES(dep, &ts, &ts, &ts); } VI_UNLOCK(vp); @@ -266,7 +266,7 @@ msdosfs_getattr(struct vop_getattr_args *ap) u_long dirsperblk = pmp->pm_BytesPerSec / sizeof(struct direntry); uint64_t fileid; - getnanotime(&ts); + vfs_timestamp(&ts); DETIMES(dep, &ts, &ts, &ts); vap->va_fsid = dev2udev(pmp->pm_dev); /* @@ -1330,7 +1330,7 @@ msdosfs_mkdir(struct vop_mkdir_args *ap) memset(&ndirent, 0, sizeof(ndirent)); ndirent.de_pmp = pmp; ndirent.de_flag = DE_ACCESS | DE_CREATE | DE_UPDATE; - getnanotime(&ts); + vfs_timestamp(&ts); DETIMES(&ndirent, &ts, &ts, &ts); /* From owner-svn-src-head@freebsd.org Mon May 7 07:26:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49D3AFA8FC4; Mon, 7 May 2018 07:26:49 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ED5B97B099; Mon, 7 May 2018 07:26:48 +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 CFE3218300; Mon, 7 May 2018 07:26:48 +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 w477Qmkn071631; Mon, 7 May 2018 07:26:48 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w477QmJE071630; Mon, 7 May 2018 07:26:48 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805070726.w477QmJE071630@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 May 2018 07:26:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333314 - head/sys/arm64/rockchip/clk X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip/clk X-SVN-Commit-Revision: 333314 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 07:26:49 -0000 Author: manu Date: Mon May 7 07:26:48 2018 New Revision: 333314 URL: https://svnweb.freebsd.org/changeset/base/333314 Log: arm64: rockchip: rk3328: Add armclk clock Add the clock definition for the arm clock. While here remove the indexes in the clock table as we will need clock with a 0 index (non-exported clocks). Modified: head/sys/arm64/rockchip/clk/rk3328_cru.c Modified: head/sys/arm64/rockchip/clk/rk3328_cru.c ============================================================================== --- head/sys/arm64/rockchip/clk/rk3328_cru.c Mon May 7 07:02:26 2018 (r333313) +++ head/sys/arm64/rockchip/clk/rk3328_cru.c Mon May 7 07:26:48 2018 (r333314) @@ -191,6 +191,25 @@ static struct rk_clk_composite_def aclk_bus_pre = { .flags = RK_CLK_COMPOSITE_HAVE_MUX | RK_CLK_COMPOSITE_HAVE_GATE, }; +#define ARMCLK 6 +static const char *armclk_parents[] = {"apll", "gpll", "dpll", "npll" }; +static struct rk_clk_composite_def armclk = { + .clkdef = { + .id = ARMCLK, + .name = "armclk", + .parent_names = armclk_parents, + .parent_cnt = nitems(armclk_parents), + }, + .muxdiv_offset = 0x100, + .mux_shift = 6, + .mux_width = 2, + + .div_shift = 0, + .div_width = 5, + + .flags = RK_CLK_COMPOSITE_HAVE_MUX, +}; + /* CRU_CLKSEL_CON1 */ #define PCLK_BUS_PRE 216 @@ -377,61 +396,65 @@ static struct rk_clk_composite_def emmc = { }; static struct rk_clk rk3328_clks[] = { - [PLL_APLL] = { + { .type = RK_CLK_PLL, .clk.pll = &apll }, - [PLL_DPLL] = { + { .type = RK_CLK_PLL, .clk.pll = &dpll }, - [PLL_CPLL] = { + { .type = RK_CLK_PLL, .clk.pll = &cpll }, - [PLL_GPLL] = { + { .type = RK_CLK_PLL, .clk.pll = &gpll }, - [PLL_NPLL] = { + { .type = RK_CLK_PLL, .clk.pll = &npll }, - [ACLK_BUS_PRE] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &aclk_bus_pre }, - [HCLK_BUS_PRE] = { + { .type = RK_CLK_COMPOSITE, + .clk.composite = &armclk + }, + { + .type = RK_CLK_COMPOSITE, .clk.composite = &hclk_bus_pre }, - [PCLK_BUS_PRE] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &pclk_bus_pre }, - [ACLK_PERI_PRE] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &aclk_peri_pre, }, - [PCLK_PERI] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &pclk_peri, }, - [HCLK_PERI] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &hclk_peri, }, - [SCLK_SDMMC] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &sdmmc }, - [SCLK_SDIO] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &sdio }, - [SCLK_EMMC] = { + { .type = RK_CLK_COMPOSITE, .clk.composite = &emmc }, From owner-svn-src-head@freebsd.org Mon May 7 07:28:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A627FA9097; Mon, 7 May 2018 07:28: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 106677BDF1; Mon, 7 May 2018 07:28: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 0B72718302; Mon, 7 May 2018 07:28: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 w477SAc3071729; Mon, 7 May 2018 07:28:10 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w477SAmV071727; Mon, 7 May 2018 07:28:10 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805070728.w477SAmV071727@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 May 2018 07:28:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333315 - head/sys/arm64/rockchip/clk X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip/clk X-SVN-Commit-Revision: 333315 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 07:28:11 -0000 Author: manu Date: Mon May 7 07:28:10 2018 New Revision: 333315 URL: https://svnweb.freebsd.org/changeset/base/333315 Log: arm64: rk: Add support for setting pll rate Add support for setting pll rate. On RockChip SoC two kind of plls are supported, integer mode and fractional mode. The two modes are intended to support more frequencies for the core plls. While here change the recalc method as it appears that the datasheet is wrong on the calculation method. Modified: head/sys/arm64/rockchip/clk/rk_clk_pll.c head/sys/arm64/rockchip/clk/rk_clk_pll.h Modified: head/sys/arm64/rockchip/clk/rk_clk_pll.c ============================================================================== --- head/sys/arm64/rockchip/clk/rk_clk_pll.c Mon May 7 07:26:48 2018 (r333314) +++ head/sys/arm64/rockchip/clk/rk_clk_pll.c Mon May 7 07:28:10 2018 (r333315) @@ -48,6 +48,9 @@ struct rk_clk_pll_sc { uint32_t gate_shift; uint32_t flags; + + struct rk_clk_pll_rate *rates; + struct rk_clk_pll_rate *frac_rates; }; #define WRITE4(_clk, off, val) \ @@ -59,14 +62,6 @@ struct rk_clk_pll_sc { #define DEVICE_UNLOCK(_clk) \ CLKDEV_DEVICE_UNLOCK(clknode_get_device(_clk)) -#define RK_CLK_PLL_DSMPD_OFFSET 4 -#define RK_CLK_PLL_DSMPD_SHIFT 12 -#define RK_CLK_PLL_DSMPD_MASK 0x1000 - -#define RK_CLK_PLL_REFDIV_OFFSET 4 -#define RK_CLK_PLL_REFDIV_SHIFT 0 -#define RK_CLK_PLL_REFDIV_MASK 0x3F - #define RK_CLK_PLL_FBDIV_OFFSET 0 #define RK_CLK_PLL_FBDIV_SHIFT 0 #define RK_CLK_PLL_FBDIV_MASK 0xFFF @@ -75,6 +70,14 @@ struct rk_clk_pll_sc { #define RK_CLK_PLL_POSTDIV1_SHIFT 12 #define RK_CLK_PLL_POSTDIV1_MASK 0x7000 +#define RK_CLK_PLL_DSMPD_OFFSET 4 +#define RK_CLK_PLL_DSMPD_SHIFT 12 +#define RK_CLK_PLL_DSMPD_MASK 0x1000 + +#define RK_CLK_PLL_REFDIV_OFFSET 4 +#define RK_CLK_PLL_REFDIV_SHIFT 0 +#define RK_CLK_PLL_REFDIV_MASK 0x3F + #define RK_CLK_PLL_POSTDIV2_OFFSET 4 #define RK_CLK_PLL_POSTDIV2_SHIFT 6 #define RK_CLK_PLL_POSTDIV2_MASK 0x1C0 @@ -83,6 +86,10 @@ struct rk_clk_pll_sc { #define RK_CLK_PLL_FRAC_SHIFT 0 #define RK_CLK_PLL_FRAC_MASK 0xFFFFFF +#define RK_CLK_PLL_LOCK_MASK 0x400 + +#define RK_CLK_PLL_WRITE_MASK 0xFFFF0000 + static int rk_clk_pll_init(struct clknode *clk, device_t dev) { @@ -122,10 +129,10 @@ static int rk_clk_pll_recalc(struct clknode *clk, uint64_t *freq) { struct rk_clk_pll_sc *sc; - uint64_t foutvco; + uint64_t rate; uint32_t dsmpd, refdiv, fbdiv; uint32_t postdiv1, postdiv2, frac; - uint32_t raw1, raw2; + uint32_t raw1, raw2, raw3; sc = clknode_get_softc(clk); @@ -133,46 +140,107 @@ rk_clk_pll_recalc(struct clknode *clk, uint64_t *freq) READ4(clk, sc->base_offset, &raw1); READ4(clk, sc->base_offset + 4, &raw2); + READ4(clk, sc->base_offset + 8, &raw3); - READ4(clk, sc->base_offset + RK_CLK_PLL_DSMPD_OFFSET, &dsmpd); - dsmpd = (dsmpd & RK_CLK_PLL_DSMPD_MASK) >> RK_CLK_PLL_DSMPD_SHIFT; + fbdiv = (raw1 & RK_CLK_PLL_FBDIV_MASK) >> RK_CLK_PLL_FBDIV_SHIFT; + postdiv1 = (raw1 & RK_CLK_PLL_POSTDIV1_MASK) >> RK_CLK_PLL_POSTDIV1_SHIFT; - READ4(clk, sc->base_offset + RK_CLK_PLL_REFDIV_OFFSET, &refdiv); - refdiv = (refdiv & RK_CLK_PLL_REFDIV_MASK) >> RK_CLK_PLL_REFDIV_SHIFT; + dsmpd = (raw2 & RK_CLK_PLL_DSMPD_MASK) >> RK_CLK_PLL_DSMPD_SHIFT; + refdiv = (raw2 & RK_CLK_PLL_REFDIV_MASK) >> RK_CLK_PLL_REFDIV_SHIFT; + postdiv2 = (raw2 & RK_CLK_PLL_POSTDIV2_MASK) >> RK_CLK_PLL_POSTDIV2_SHIFT; - READ4(clk, sc->base_offset + RK_CLK_PLL_FBDIV_OFFSET, &fbdiv); - fbdiv = (fbdiv & RK_CLK_PLL_FBDIV_MASK) >> RK_CLK_PLL_FBDIV_SHIFT; + frac = (raw3 & RK_CLK_PLL_FRAC_MASK) >> RK_CLK_PLL_FRAC_SHIFT; - READ4(clk, sc->base_offset + RK_CLK_PLL_POSTDIV1_OFFSET, &postdiv1); - postdiv1 = (postdiv1 & RK_CLK_PLL_POSTDIV1_MASK) >> RK_CLK_PLL_POSTDIV1_SHIFT; - - READ4(clk, sc->base_offset + RK_CLK_PLL_POSTDIV2_OFFSET, &postdiv2); - postdiv2 = (postdiv2 & RK_CLK_PLL_POSTDIV2_MASK) >> RK_CLK_PLL_POSTDIV2_SHIFT; - - READ4(clk, sc->base_offset + RK_CLK_PLL_FRAC_OFFSET, &frac); - frac = (frac & RK_CLK_PLL_FRAC_MASK) >> RK_CLK_PLL_FRAC_SHIFT; - DEVICE_UNLOCK(clk); + rate = *freq * fbdiv / refdiv; if (dsmpd == 0) { /* Fractional mode */ - foutvco = *freq / refdiv * (fbdiv + frac / 224); - } else { - /* Integer mode */ + uint64_t frac_rate; - foutvco = *freq / refdiv * fbdiv; + frac_rate = *freq * frac / refdiv; + rate += frac_rate >> 24; } - *freq = foutvco / postdiv1 / postdiv2; + *freq = rate / postdiv1 / postdiv2; + if (*freq % 2) + *freq = *freq + 1; + return (0); } +static int +rk_clk_pll_set_freq(struct clknode *clk, uint64_t fparent, uint64_t *fout, + int flags, int *stop) +{ + struct rk_clk_pll_rate *rates; + struct rk_clk_pll_sc *sc; + uint32_t reg; + int timeout; + + sc = clknode_get_softc(clk); + + if (sc->rates) + rates = sc->rates; + else if (sc->frac_rates) + rates = sc->frac_rates; + else + return (EINVAL); + + for (; rates->freq; rates++) { + if (rates->freq == *fout) + break; + } + if (rates->freq == 0) { + *stop = 1; + return (EINVAL); + } + + DEVICE_LOCK(clk); + + /* Setting postdiv1 and fbdiv */ + READ4(clk, sc->base_offset, ®); + reg &= ~(RK_CLK_PLL_POSTDIV1_MASK | RK_CLK_PLL_FBDIV_MASK); + reg |= rates->postdiv1 << RK_CLK_PLL_POSTDIV1_SHIFT; + reg |= rates->fbdiv << RK_CLK_PLL_FBDIV_SHIFT; + WRITE4(clk, sc->base_offset, reg | RK_CLK_PLL_WRITE_MASK); + + /* Setting dsmpd, postdiv2 and refdiv */ + READ4(clk, sc->base_offset + 0x4, ®); + reg &= ~(RK_CLK_PLL_DSMPD_MASK | RK_CLK_PLL_POSTDIV2_MASK | + RK_CLK_PLL_REFDIV_MASK); + reg |= rates->dsmpd << RK_CLK_PLL_DSMPD_SHIFT; + reg |= rates->postdiv2 << RK_CLK_PLL_POSTDIV2_SHIFT; + reg |= rates->refdiv << RK_CLK_PLL_REFDIV_SHIFT; + WRITE4(clk, sc->base_offset + 0x4, reg | RK_CLK_PLL_WRITE_MASK); + + /* Setting frac */ + READ4(clk, sc->base_offset + 0x8, ®); + reg &= ~RK_CLK_PLL_FRAC_MASK; + reg |= rates->frac << RK_CLK_PLL_FRAC_SHIFT; + WRITE4(clk, sc->base_offset + 0x8, reg); + + /* Reading lock */ + for (timeout = 1000; timeout; timeout--) { + READ4(clk, sc->base_offset + 0x4, ®); + if ((reg & RK_CLK_PLL_LOCK_MASK) == 0) + break; + DELAY(1); + } + + DEVICE_UNLOCK(clk); + + *stop = 1; + return (0); +} + static clknode_method_t rk_clk_pll_clknode_methods[] = { /* Device interface */ CLKNODEMETHOD(clknode_init, rk_clk_pll_init), CLKNODEMETHOD(clknode_set_gate, rk_clk_pll_set_gate), CLKNODEMETHOD(clknode_recalc_freq, rk_clk_pll_recalc), + CLKNODEMETHOD(clknode_set_freq, rk_clk_pll_set_freq), CLKNODEMETHOD_END }; @@ -196,6 +264,8 @@ rk_clk_pll_register(struct clkdom *clkdom, struct rk_c sc->gate_offset = clkdef->gate_offset; sc->gate_shift = clkdef->gate_shift; sc->flags = clkdef->flags; + sc->rates = clkdef->rates; + sc->frac_rates = clkdef->frac_rates; clknode_register(clkdom, clk); Modified: head/sys/arm64/rockchip/clk/rk_clk_pll.h ============================================================================== --- head/sys/arm64/rockchip/clk/rk_clk_pll.h Mon May 7 07:26:48 2018 (r333314) +++ head/sys/arm64/rockchip/clk/rk_clk_pll.h Mon May 7 07:28:10 2018 (r333315) @@ -33,6 +33,16 @@ #include +struct rk_clk_pll_rate { + uint32_t freq; + uint32_t refdiv; + uint32_t fbdiv; + uint32_t postdiv1; + uint32_t postdiv2; + uint32_t dsmpd; + uint32_t frac; +}; + struct rk_clk_pll_def { struct clknode_init_def clkdef; uint32_t base_offset; @@ -41,6 +51,9 @@ struct rk_clk_pll_def { uint32_t gate_shift; uint32_t flags; + + struct rk_clk_pll_rate *rates; + struct rk_clk_pll_rate *frac_rates; }; #define RK_CLK_PLL_HAVE_GATE 0x1 From owner-svn-src-head@freebsd.org Mon May 7 07:28:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1AE7CFA90DB; Mon, 7 May 2018 07:28:48 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C18567C43F; Mon, 7 May 2018 07:28:47 +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 B7E8F18303; Mon, 7 May 2018 07:28:47 +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 w477Slss071791; Mon, 7 May 2018 07:28:47 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w477Sl8u071790; Mon, 7 May 2018 07:28:47 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805070728.w477Sl8u071790@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 May 2018 07:28:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333316 - head/sys/arm64/rockchip/clk X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip/clk X-SVN-Commit-Revision: 333316 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 07:28:48 -0000 Author: manu Date: Mon May 7 07:28:47 2018 New Revision: 333316 URL: https://svnweb.freebsd.org/changeset/base/333316 Log: arm64: rk3328: Add pll rates tables Add the known value to be safe for the rk3328 PLLs Modified: head/sys/arm64/rockchip/clk/rk3328_cru.c Modified: head/sys/arm64/rockchip/clk/rk3328_cru.c ============================================================================== --- head/sys/arm64/rockchip/clk/rk3328_cru.c Mon May 7 07:28:10 2018 (r333315) +++ head/sys/arm64/rockchip/clk/rk3328_cru.c Mon May 7 07:28:47 2018 (r333316) @@ -103,6 +103,404 @@ static struct rk_cru_gate rk3328_gates[] = { #define PLL_GPLL 4 #define PLL_NPLL 5 +static struct rk_clk_pll_rate rk3328_pll_rates[] = { + { + .freq = 1608000000, + .refdiv = 1, + .fbdiv = 67, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1584000000, + .refdiv = 1, + .fbdiv = 66, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1560000000, + .refdiv = 1, + .fbdiv = 65, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1536000000, + .refdiv = 1, + .fbdiv = 64, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1512000000, + .refdiv = 1, + .fbdiv = 63, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1488000000, + .refdiv = 1, + .fbdiv = 62, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1464000000, + .refdiv = 1, + .fbdiv = 61, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1440000000, + .refdiv = 1, + .fbdiv = 60, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1416000000, + .refdiv = 1, + .fbdiv = 59, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1392000000, + .refdiv = 1, + .fbdiv = 58, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1368000000, + .refdiv = 1, + .fbdiv = 57, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1344000000, + .refdiv = 1, + .fbdiv = 56, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1320000000, + .refdiv = 1, + .fbdiv = 55, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1296000000, + .refdiv = 1, + .fbdiv = 54, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1272000000, + .refdiv = 1, + .fbdiv = 53, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1248000000, + .refdiv = 1, + .fbdiv = 52, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1200000000, + .refdiv = 1, + .fbdiv = 50, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1188000000, + .refdiv = 2, + .fbdiv = 99, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1104000000, + .refdiv = 1, + .fbdiv = 46, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1100000000, + .refdiv = 12, + .fbdiv = 550, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1008000000, + .refdiv = 1, + .fbdiv = 84, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 1000000000, + .refdiv = 6, + .fbdiv = 500, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 984000000, + .refdiv = 1, + .fbdiv = 82, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 960000000, + .refdiv = 1, + .fbdiv = 80, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 936000000, + .refdiv = 1, + .fbdiv = 78, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 912000000, + .refdiv = 1, + .fbdiv = 76, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 900000000, + .refdiv = 4, + .fbdiv = 300, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 888000000, + .refdiv = 1, + .fbdiv = 74, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 864000000, + .refdiv = 1, + .fbdiv = 72, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 840000000, + .refdiv = 1, + .fbdiv = 70, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 816000000, + .refdiv = 1, + .fbdiv = 68, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 800000000, + .refdiv = 6, + .fbdiv = 400, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 700000000, + .refdiv = 6, + .fbdiv = 350, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 696000000, + .refdiv = 1, + .fbdiv = 58, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 600000000, + .refdiv = 1, + .fbdiv = 75, + .postdiv1 = 3, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 594000000, + .refdiv = 2, + .fbdiv = 99, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 504000000, + .refdiv = 1, + .fbdiv = 63, + .postdiv1 = 3, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 500000000, + .refdiv = 6, + .fbdiv = 250, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 1, + }, + { + .freq = 408000000, + .refdiv = 1, + .fbdiv = 68, + .postdiv1 = 2, + .postdiv2 = 2, + .dsmpd = 1, + }, + { + .freq = 312000000, + .refdiv = 1, + .fbdiv = 52, + .postdiv1 = 2, + .postdiv2 = 2, + .dsmpd = 1, + }, + { + .freq = 216000000, + .refdiv = 1, + .fbdiv = 72, + .postdiv1 = 4, + .postdiv2 = 2, + .dsmpd = 1, + }, + { + .freq = 96000000, + .refdiv = 1, + .fbdiv = 64, + .postdiv1 = 4, + .postdiv2 = 4, + .dsmpd = 1, + }, + {}, +}; + +static struct rk_clk_pll_rate rk3328_pll_frac_rates[] = { + { + .freq = 1016064000, + .refdiv = 3, + .fbdiv = 127, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 0, + .frac = 134217, + }, + { + .freq = 983040000, + .refdiv = 24, + .fbdiv = 983, + .postdiv1 = 1, + .postdiv2 = 1, + .dsmpd = 0, + .frac = 671088, + }, + { + .freq = 491520000, + .refdiv = 24, + .fbdiv = 983, + .postdiv1 = 2, + .postdiv2 = 1, + .dsmpd = 0, + .frac = 671088, + }, + { + .freq = 61440000, + .refdiv = 6, + .fbdiv = 215, + .postdiv1 = 7, + .postdiv2 = 2, + .dsmpd = 0, + .frac = 671088, + }, + { + .freq = 56448000, + .refdiv = 12, + .fbdiv = 451, + .postdiv1 = 4, + .postdiv2 = 4, + .dsmpd = 0, + .frac = 9797894, + }, + { + .freq = 40960000, + .refdiv = 12, + .fbdiv = 409, + .postdiv1 = 4, + .postdiv2 = 5, + .dsmpd = 0, + .frac = 10066329, + }, + {}, +}; + static const char *pll_parents[] = {"xin24m"}; static struct rk_clk_pll_def apll = { .clkdef = { @@ -115,6 +513,7 @@ static struct rk_clk_pll_def apll = { .gate_offset = 0x200, .gate_shift = 0, .flags = RK_CLK_PLL_HAVE_GATE, + .frac_rates = rk3328_pll_frac_rates, }; static struct rk_clk_pll_def dpll = { @@ -138,6 +537,7 @@ static struct rk_clk_pll_def cpll = { .parent_cnt = nitems(pll_parents), }, .base_offset = 0x40, + .rates = rk3328_pll_rates, }; static struct rk_clk_pll_def gpll = { @@ -151,6 +551,7 @@ static struct rk_clk_pll_def gpll = { .gate_offset = 0x200, .gate_shift = 2, .flags = RK_CLK_PLL_HAVE_GATE, + .frac_rates = rk3328_pll_frac_rates, }; static struct rk_clk_pll_def npll = { @@ -164,6 +565,7 @@ static struct rk_clk_pll_def npll = { .gate_offset = 0x200, .gate_shift = 12, .flags = RK_CLK_PLL_HAVE_GATE, + .rates = rk3328_pll_rates, }; /* CRU_CLKSEL_CON0 */ From owner-svn-src-head@freebsd.org Mon May 7 07:29:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61A47FA9146; Mon, 7 May 2018 07:29:49 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 136FF7CE60; Mon, 7 May 2018 07:29:49 +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 0703418304; Mon, 7 May 2018 07:29:49 +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 w477TmbV071868; Mon, 7 May 2018 07:29:48 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w477TmE6071867; Mon, 7 May 2018 07:29:48 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805070729.w477TmE6071867@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 May 2018 07:29:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333317 - head/sys/arm64/rockchip/clk X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip/clk X-SVN-Commit-Revision: 333317 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 07:29:49 -0000 Author: manu Date: Mon May 7 07:29:48 2018 New Revision: 333317 URL: https://svnweb.freebsd.org/changeset/base/333317 Log: arm64: rockchip: clk: Add support to reparent to clk_composite All clk_composite type have the possibility to reparent (choosing another parent to find a better frequency), add the support for that. Modified: head/sys/arm64/rockchip/clk/rk_clk_composite.c Modified: head/sys/arm64/rockchip/clk/rk_clk_composite.c ============================================================================== --- head/sys/arm64/rockchip/clk/rk_clk_composite.c Mon May 7 07:28:47 2018 (r333316) +++ head/sys/arm64/rockchip/clk/rk_clk_composite.c Mon May 7 07:29:48 2018 (r333317) @@ -155,22 +155,50 @@ rk_clk_composite_recalc(struct clknode *clk, uint64_t return (0); } +static uint32_t +rk_clk_composite_find_best(struct rk_clk_composite_sc *sc, uint64_t fparent, + uint64_t freq) +{ + uint64_t best, cur; + uint32_t best_div, div; + + for (best = 0, best_div = 0, div = 0; + div <= ((sc->div_mask >> sc->div_shift) + 1); div++) { + cur = fparent / div; + if ((freq - cur) < (freq - best)) { + best = cur; + best_div = div; + break; + } + } + + return (best_div); +} + static int rk_clk_composite_set_freq(struct clknode *clk, uint64_t fparent, uint64_t *fout, int flags, int *stop) { struct rk_clk_composite_sc *sc; + struct clknode *p_clk; + const char **p_names; uint64_t best, cur; uint32_t div, best_div, val; + int p_idx, best_parent; sc = clknode_get_softc(clk); - for (best = 0, best_div = 0, div = 0; div <= sc->div_mask; div++) { + p_names = clknode_get_parent_names(clk); + for (best_div = 0, best = 0, p_idx = 0; + p_idx != clknode_get_parents_num(clk); p_idx++) { + p_clk = clknode_find_by_name(p_names[p_idx]); + clknode_get_freq(p_clk, &fparent); + div = rk_clk_composite_find_best(sc, fparent, *fout); cur = fparent / div; if ((*fout - cur) < (*fout - best)) { best = cur; best_div = div; - break; + best_parent = p_idx; } } @@ -193,6 +221,9 @@ rk_clk_composite_set_freq(struct clknode *clk, uint64_ *stop = 1; return (0); } + + if (p_idx != best_parent) + clknode_set_parent_by_idx(clk, best_parent); DEVICE_LOCK(clk); READ4(clk, sc->muxdiv_offset, &val); From owner-svn-src-head@freebsd.org Mon May 7 07:30:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3BCCFA9280; Mon, 7 May 2018 07:30:40 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 96AA07D547; Mon, 7 May 2018 07:30:40 +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 9177F18312; Mon, 7 May 2018 07:30:40 +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 w477UeMf072657; Mon, 7 May 2018 07:30:40 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w477Ue88072656; Mon, 7 May 2018 07:30:40 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805070730.w477Ue88072656@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 May 2018 07:30:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333318 - head/sys/dev/extres/clk X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dev/extres/clk X-SVN-Commit-Revision: 333318 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 07:30:41 -0000 Author: manu Date: Mon May 7 07:30:40 2018 New Revision: 333318 URL: https://svnweb.freebsd.org/changeset/base/333318 Log: clk: Add support for assigned-clock-rates The properties 'assigned-clocks', 'assigned-clock-parents' and 'assigned-clock-rates' all work together. 'assigned-clocks' holds the list of clock for which we need to either assign a new parent or a new frequency. The old code just supported assigning a new parents, add support for assigning a new frequency too. Modified: head/sys/dev/extres/clk/clk.c Modified: head/sys/dev/extres/clk/clk.c ============================================================================== --- head/sys/dev/extres/clk/clk.c Mon May 7 07:29:48 2018 (r333317) +++ head/sys/dev/extres/clk/clk.c Mon May 7 07:30:40 2018 (r333318) @@ -1265,43 +1265,95 @@ clk_get_by_id(device_t dev, struct clkdom *clkdom, int #ifdef FDT +static void +clk_set_assigned_parent(device_t dev, clk_t clk, int idx) +{ + clk_t parent; + const char *pname; + int rv; + + rv = clk_get_by_ofw_index_prop(dev, 0, + "assigned-clock-parents", idx, &parent); + if (rv != 0) { + device_printf(dev, + "cannot get parent at idx %d\n", idx); + return; + } + + pname = clk_get_name(parent); + rv = clk_set_parent_by_clk(clk, parent); + if (rv != 0) + device_printf(dev, + "Cannot set parent %s for clock %s\n", + pname, clk_get_name(clk)); + else if (bootverbose) + device_printf(dev, "Set %s as the parent of %s\n", + pname, clk_get_name(clk)); + clk_release(parent); +} + +static void +clk_set_assigned_rates(device_t dev, clk_t clk, uint32_t freq) +{ + int rv; + + rv = clk_set_freq(clk, freq, 0); + if (rv != 0) { + device_printf(dev, "Failed to set %s to a frequency of %u\n", + clk_get_name(clk), freq); + return; + } + if (bootverbose) + device_printf(dev, "Set %s to %u\n", + clk_get_name(clk), freq); +} + int clk_set_assigned(device_t dev, phandle_t node) { - clk_t clk, clk_parent; - int error, nclocks, i; + clk_t clk; + uint32_t *rates; + int rv, nclocks, nrates, nparents, i; - error = ofw_bus_parse_xref_list_get_length(node, - "assigned-clock-parents", "#clock-cells", &nclocks); + rv = ofw_bus_parse_xref_list_get_length(node, + "assigned-clocks", "#clock-cells", &nclocks); - if (error != 0) { - if (error != ENOENT) + if (rv != 0) { + if (rv != ENOENT) device_printf(dev, - "cannot parse assigned-clock-parents property\n"); - return (error); + "cannot parse assigned-clock property\n"); + return (rv); } - for (i = 0; i < nclocks; i++) { - error = clk_get_by_ofw_index_prop(dev, 0, - "assigned-clock-parents", i, &clk_parent); - if (error != 0) { - device_printf(dev, "cannot get parent %d\n", i); - return (error); - } + nrates = OF_getencprop_alloc_multi(node, "assigned-clock-rates", + sizeof(*rates), (void **)&rates); + if (nrates <= 0) + nrates = 0; - error = clk_get_by_ofw_index_prop(dev, 0, "assigned-clocks", + nparents = ofw_bus_parse_xref_list_get_length(node, + "assigned-clock-parents", "#clock-cells", &nparents); + + for (i = 0; i < nclocks; i++) { + /* First get the clock we are supposed to modify */ + rv = clk_get_by_ofw_index_prop(dev, 0, "assigned-clocks", i, &clk); - if (error != 0) { - device_printf(dev, "cannot get assigned clock %d\n", i); - clk_release(clk_parent); - return (error); + if (rv != 0) { + if (bootverbose) + device_printf(dev, + "cannot get assigned clock at idx %d\n", + i); + continue; } - error = clk_set_parent_by_clk(clk, clk_parent); - clk_release(clk_parent); + /* First set it's parent if needed */ + if (i <= nparents) + clk_set_assigned_parent(dev, clk, i); + + /* Then set a new frequency */ + if (i <= nrates) + clk_set_assigned_rates(dev, clk, rates[i]); + clk_release(clk); - if (error != 0) - return (error); } return (0); From owner-svn-src-head@freebsd.org Mon May 7 07:31:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4BD7FFA940D; Mon, 7 May 2018 07:31:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 007697D7F8; Mon, 7 May 2018 07:31:26 +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 EF71418453; Mon, 7 May 2018 07:31:25 +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 w477VP4e075697; Mon, 7 May 2018 07:31:25 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w477VPMI075696; Mon, 7 May 2018 07:31:25 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805070731.w477VPMI075696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 May 2018 07:31:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333319 - head/sys/arm64/rockchip/clk X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip/clk X-SVN-Commit-Revision: 333319 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 07:31:26 -0000 Author: manu Date: Mon May 7 07:31:25 2018 New Revision: 333319 URL: https://svnweb.freebsd.org/changeset/base/333319 Log: arm64: rockchip: cru: Call clk_set_assigned We need to call clk_set_assigned after all the clock have been registered to set the parents/rates described in the dtb. Modified: head/sys/arm64/rockchip/clk/rk_cru.c Modified: head/sys/arm64/rockchip/clk/rk_cru.c ============================================================================== --- head/sys/arm64/rockchip/clk/rk_cru.c Mon May 7 07:30:40 2018 (r333318) +++ head/sys/arm64/rockchip/clk/rk_cru.c Mon May 7 07:31:25 2018 (r333319) @@ -197,11 +197,14 @@ int rk_cru_attach(device_t dev) { struct rk_cru_softc *sc; + phandle_t node; int i; sc = device_get_softc(dev); sc->dev = dev; + node = ofw_bus_get_node(dev); + if (bus_alloc_resources(dev, rk_cru_spec, &sc->res) != 0) { device_printf(dev, "cannot allocate resources for device\n"); return (ENXIO); @@ -241,6 +244,8 @@ rk_cru_attach(device_t dev) if (bootverbose) clkdom_dump(sc->clkdom); + + clk_set_assigned(dev, node); /* If we have resets, register our self as a reset provider */ if (sc->resets) From owner-svn-src-head@freebsd.org Mon May 7 09:42:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3427CFAC821; Mon, 7 May 2018 09:42:36 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DAEF479087; Mon, 7 May 2018 09:42:35 +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 D5CA9199BD; Mon, 7 May 2018 09:42:35 +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 w479gZcU075454; Mon, 7 May 2018 09:42:35 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w479gZHE075453; Mon, 7 May 2018 09:42:35 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805070942.w479gZHE075453@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 7 May 2018 09:42:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333320 - head/sys/dev/extres/clk X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dev/extres/clk X-SVN-Commit-Revision: 333320 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 09:42:36 -0000 Author: manu Date: Mon May 7 09:42:35 2018 New Revision: 333320 URL: https://svnweb.freebsd.org/changeset/base/333320 Log: clk: clk_set_assigned: Skip frequency of value 0 A frequency of value 0 mean that we don't want to change the frequency so skip it. Modified: head/sys/dev/extres/clk/clk.c Modified: head/sys/dev/extres/clk/clk.c ============================================================================== --- head/sys/dev/extres/clk/clk.c Mon May 7 07:31:25 2018 (r333319) +++ head/sys/dev/extres/clk/clk.c Mon May 7 09:42:35 2018 (r333320) @@ -1350,7 +1350,7 @@ clk_set_assigned(device_t dev, phandle_t node) clk_set_assigned_parent(dev, clk, i); /* Then set a new frequency */ - if (i <= nrates) + if (i <= nrates && rates[i] != 0) clk_set_assigned_rates(dev, clk, rates[i]); clk_release(clk); From owner-svn-src-head@freebsd.org Mon May 7 12:22:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8AA9BFB0A69; Mon, 7 May 2018 12:22:26 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 38E00795FC; Mon, 7 May 2018 12:22:26 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 33E401B388; Mon, 7 May 2018 12:22:26 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47CMQIN054195; Mon, 7 May 2018 12:22:26 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47CMQCE054194; Mon, 7 May 2018 12:22:26 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201805071222.w47CMQCE054194@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 7 May 2018 12:22:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333321 - head/sys/x86/x86 X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/x86/x86 X-SVN-Commit-Revision: 333321 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 12:22:26 -0000 Author: avg Date: Mon May 7 12:22:25 2018 New Revision: 333321 URL: https://svnweb.freebsd.org/changeset/base/333321 Log: x86 cpususpend_handler: call wbinvd after setting suspend state bits Without a subsequent wbinvd the changes to suspended_cpus (and resuming_cpus) can be lost at least on AMD systems that use MOESI cache coherency protocol. That can happen because one of APs ends up as an Owner of the corresponding cache line(s) and the changes may never reach the main memory before the AP is reset. While here, move clearing of suspended_cpus a little bit earlier as the fact of returning from savectx (with zero return value) means that the CPU has fully restored it execution context. Also, rework the comment that describes the need for resuming_cpus. This change fixed suspend to RAM a previously broken AMD-based system. Reviewed by: kib Discussed with: bde MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D15295 Modified: head/sys/x86/x86/mp_x86.c Modified: head/sys/x86/x86/mp_x86.c ============================================================================== --- head/sys/x86/x86/mp_x86.c Mon May 7 09:42:35 2018 (r333320) +++ head/sys/x86/x86/mp_x86.c Mon May 7 12:22:25 2018 (r333321) @@ -1425,16 +1425,36 @@ cpususpend_handler(void) #else npxsuspend(susppcbs[cpu]->sp_fpususpend); #endif - wbinvd(); - CPU_SET_ATOMIC(cpu, &suspended_cpus); /* - * Hack for xen, which does not use resumectx() so never - * uses the next clause: set resuming_cpus early so that - * resume_cpus() can wait on the same bitmap for acpi and - * xen. resuming_cpus now means eventually_resumable_cpus. + * suspended_cpus is cleared shortly after each AP is restarted + * by a Startup IPI, so that the BSP can proceed to restarting + * the next AP. + * + * resuming_cpus gets cleared when the AP completes + * initialization after having been released by the BSP. + * resuming_cpus is probably not the best name for the + * variable, because it is actually a set of processors that + * haven't resumed yet and haven't necessarily started resuming. + * + * Note that suspended_cpus is meaningful only for ACPI suspend + * as it's not really used for Xen suspend since the APs are + * automatically restored to the running state and the correct + * context. For the same reason resumectx is never called in + * that case. */ + CPU_SET_ATOMIC(cpu, &suspended_cpus); CPU_SET_ATOMIC(cpu, &resuming_cpus); + + /* + * Invalidate the cache after setting the global status bits. + * The last AP to set its bit may end up being an Owner of the + * corresponding cache line in MOESI protocol. The AP may be + * stopped before the cache line is written to the main memory. + */ + wbinvd(); } else { + /* Indicate that we have restarted and restored the context. */ + CPU_CLR_ATOMIC(cpu, &suspended_cpus); #ifdef __amd64__ fpuresume(susppcbs[cpu]->sp_fpususpend); #else @@ -1444,9 +1464,6 @@ cpususpend_handler(void) initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); - - /* Indicate that we are resuming */ - CPU_CLR_ATOMIC(cpu, &suspended_cpus); } /* Wait for resume directive */ From owner-svn-src-head@freebsd.org Mon May 7 14:44:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 952D1FB3CA8; Mon, 7 May 2018 14:44:56 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3CA8D7849A; Mon, 7 May 2018 14:44:56 +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 335661CAE9; Mon, 7 May 2018 14:44:56 +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 w47Eiu0r024895; Mon, 7 May 2018 14:44:56 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47Eitvb024893; Mon, 7 May 2018 14:44:55 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201805071444.w47Eitvb024893@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 7 May 2018 14:44:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333322 - in head: share/man/man4 sys/netinet X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in head: share/man/man4 sys/netinet X-SVN-Commit-Revision: 333322 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 14:44:56 -0000 Author: mav Date: Mon May 7 14:44:55 2018 New Revision: 333322 URL: https://svnweb.freebsd.org/changeset/base/333322 Log: Keep CARP state as INIT when net.inet.carp.allow=0. Currently when net.inet.carp.allow=0 CARP state remains as MASTER, which is not very useful (if there are other masters -- it can lead to split brain, if there are none -- it makes no sense). Having it as INIT makes it clear that carp packets are disabled. Submitted by: wg MFC after: 1 month Relnotes: yes Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D14477 Modified: head/share/man/man4/carp.4 head/sys/netinet/ip_carp.c Modified: head/share/man/man4/carp.4 ============================================================================== --- head/share/man/man4/carp.4 Mon May 7 12:22:25 2018 (r333321) +++ head/share/man/man4/carp.4 Mon May 7 14:44:55 2018 (r333322) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 21, 2013 +.Dd May 7, 2018 .Dt CARP 4 .Os .Sh NAME @@ -93,9 +93,11 @@ Additionally, there are a number of global parameters .Xr sysctl 8 : .Bl -tag -width ".Va net.inet.carp.ifdown_demotion_factor" .It Va net.inet.carp.allow -Accept incoming +Allow .Nm -packets. +operation. +When disabled, virtual hosts remain in initial state, neither sending nor +receiving announcements or traffic. Enabled by default. .It Va net.inet.carp.preempt Allow virtual hosts to preempt each other. Modified: head/sys/netinet/ip_carp.c ============================================================================== --- head/sys/netinet/ip_carp.c Mon May 7 12:22:25 2018 (r333321) +++ head/sys/netinet/ip_carp.c Mon May 7 14:44:55 2018 (r333322) @@ -210,11 +210,13 @@ static VNET_DEFINE(int, carp_senderr_adj) = CARP_MAXSK static VNET_DEFINE(int, carp_ifdown_adj) = CARP_MAXSKEW; #define V_carp_ifdown_adj VNET(carp_ifdown_adj) +static int carp_allow_sysctl(SYSCTL_HANDLER_ARGS); static int carp_demote_adj_sysctl(SYSCTL_HANDLER_ARGS); SYSCTL_NODE(_net_inet, IPPROTO_CARP, carp, CTLFLAG_RW, 0, "CARP"); -SYSCTL_INT(_net_inet_carp, OID_AUTO, allow, CTLFLAG_VNET | CTLFLAG_RW, - &VNET_NAME(carp_allow), 0, "Accept incoming CARP packets"); +SYSCTL_PROC(_net_inet_carp, OID_AUTO, allow, + CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW, 0, 0, carp_allow_sysctl, "I", + "Accept incoming CARP packets"); SYSCTL_INT(_net_inet_carp, OID_AUTO, preempt, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(carp_preempt), 0, "High-priority backup preemption mode"); SYSCTL_INT(_net_inet_carp, OID_AUTO, log, CTLFLAG_VNET | CTLFLAG_RW, @@ -1291,7 +1293,8 @@ carp_setrun(struct carp_softc *sc, sa_family_t af) if ((sc->sc_carpdev->if_flags & IFF_UP) == 0 || sc->sc_carpdev->if_link_state != LINK_STATE_UP || - (sc->sc_naddrs == 0 && sc->sc_naddrs6 == 0)) + (sc->sc_naddrs == 0 && sc->sc_naddrs6 == 0) || + !V_carp_allow) return; switch (sc->sc_state) { @@ -2041,7 +2044,8 @@ carp_sc_state(struct carp_softc *sc) CARP_LOCK_ASSERT(sc); if (sc->sc_carpdev->if_link_state != LINK_STATE_UP || - !(sc->sc_carpdev->if_flags & IFF_UP)) { + !(sc->sc_carpdev->if_flags & IFF_UP) || + !V_carp_allow) { callout_stop(&sc->sc_ad_tmo); #ifdef INET callout_stop(&sc->sc_md_tmo); @@ -2069,6 +2073,33 @@ carp_demote_adj(int adj, char *reason) atomic_add_int(&V_carp_demotion, adj); CARP_LOG("demoted by %d to %d (%s)\n", adj, V_carp_demotion, reason); taskqueue_enqueue(taskqueue_swi, &carp_sendall_task); +} + +static int +carp_allow_sysctl(SYSCTL_HANDLER_ARGS) +{ + int new, error; + struct carp_softc *sc; + + new = V_carp_allow; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error || !req->newptr) + return (error); + + if (V_carp_allow != new) { + V_carp_allow = new; + + mtx_lock(&carp_mtx); + LIST_FOREACH(sc, &carp_list, sc_next) { + CARP_LOCK(sc); + if (curvnet == sc->sc_carpdev->if_vnet) + carp_sc_state(sc); + CARP_UNLOCK(sc); + } + mtx_unlock(&carp_mtx); + } + + return (0); } static int From owner-svn-src-head@freebsd.org Mon May 7 15:07:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B222FB42A1; Mon, 7 May 2018 15:07:29 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48FEB7C30B; Mon, 7 May 2018 15:07:29 +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 2BA301CE9E; Mon, 7 May 2018 15:07:29 +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 w47F7TrQ035074; Mon, 7 May 2018 15:07:29 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47F7SOs035073; Mon, 7 May 2018 15:07:28 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805071507.w47F7SOs035073@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 May 2018 15:07:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333324 - in head/sys: amd64/amd64 conf X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: amd64/amd64 conf X-SVN-Commit-Revision: 333324 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 15:07:30 -0000 Author: mjg Date: Mon May 7 15:07:28 2018 New Revision: 333324 URL: https://svnweb.freebsd.org/changeset/base/333324 Log: amd64: replace libkern's memset and memmove with assembly variants memmove is repurposed bcopy (arguments swapped, return value added) The libkern variant is a wrapper around bcopy, so this is a big improvement. memset is repurposed memcpy. The librkern variant is doing fishy stuff, including branching on 0 and calling bzero. Both functions are rather crude and subject to partial depessimization. This is a soft prerequisite to adding variants utilizing the 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. Modified: head/sys/amd64/amd64/support.S head/sys/conf/files.amd64 Modified: head/sys/amd64/amd64/support.S ============================================================================== --- head/sys/amd64/amd64/support.S Mon May 7 15:07:26 2018 (r333323) +++ head/sys/amd64/amd64/support.S Mon May 7 15:07:28 2018 (r333324) @@ -162,6 +162,58 @@ ENTRY(bcopy) END(bcopy) /* + * memmove(dst, src, cnt) + * rdi, rsi, rdx + * Original by: + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 + */ +ENTRY(memmove) + PUSH_FRAME_POINTER + movq %rdi,%r9 + movq %rdx,%rcx + + movq %rdi,%rax + subq %rsi,%rax + cmpq %rcx,%rax /* overlapping && src < dst? */ + jb 1f + + shrq $3,%rcx /* copy by 64-bit words */ + rep + movsq + movq %rdx,%rcx + andq $7,%rcx /* any bytes left? */ + rep + movsb + movq %r9,%rax + POP_FRAME_POINTER + ret + + /* ALIGN_TEXT */ +1: + addq %rcx,%rdi /* copy backwards */ + addq %rcx,%rsi + decq %rdi + decq %rsi + andq $7,%rcx /* any fractional bytes? */ + std + rep + movsb + movq %rdx,%rcx /* copy remainder by 32-bit words */ + shrq $3,%rcx + subq $7,%rsi + subq $7,%rdi + rep + movsq + cld + movq %r9,%rax + POP_FRAME_POINTER + ret +END(memmove) + +/* + * memcpy(dst, src, len) + * rdi, rsi, rdx + * * Note: memcpy does not support overlapping copies */ ENTRY(memcpy) @@ -178,6 +230,27 @@ ENTRY(memcpy) POP_FRAME_POINTER ret END(memcpy) + +/* + * memset(dst, c, len) + * rdi, rsi, rdx + */ +ENTRY(memset) + PUSH_FRAME_POINTER + movq %rdi,%r9 + movq %rdx,%rcx + movq %rsi,%rax + shrq $3,%rcx + rep + stosq + movq %rdx,%rcx + andq $7,%rcx + rep + stosb + movq %r9,%rax + POP_FRAME_POINTER + ret +END(memset) /* * pagecopy(%rdi=from, %rsi=to) Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Mon May 7 15:07:26 2018 (r333323) +++ head/sys/conf/files.amd64 Mon May 7 15:07:28 2018 (r333324) @@ -620,8 +620,6 @@ isa/vga_isa.c optional vga kern/kern_clocksource.c standard kern/link_elf_obj.c standard libkern/x86/crc32_sse42.c standard -libkern/memmove.c standard -libkern/memset.c standard # # IA32 binary support # From owner-svn-src-head@freebsd.org Mon May 7 15:24:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 69EEAFB4AC2; Mon, 7 May 2018 15:24:04 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 159AB81019; Mon, 7 May 2018 15:24:04 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB4171D22F; Mon, 7 May 2018 15:24:03 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47FO3vD045056; Mon, 7 May 2018 15:24:03 GMT (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47FO3c6045055; Mon, 7 May 2018 15:24:03 GMT (envelope-from gallatin@FreeBSD.org) Message-Id: <201805071524.w47FO3c6045055@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gallatin set sender to gallatin@FreeBSD.org using -f From: Andrew Gallatin Date: Mon, 7 May 2018 15:24:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333325 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: gallatin X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333325 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 15:24:04 -0000 Author: gallatin Date: Mon May 7 15:24:03 2018 New Revision: 333325 URL: https://svnweb.freebsd.org/changeset/base/333325 Log: Boost thread priority while changing CPU frequency Boost the priority of user-space threads when they set their affinity to a core to adjust its frequency. This avoids a situation where a CPU bound kernel thread with the same affinity is running on a down-clocked core, and will "block" powerd from up-clocking the core until the kernel thread yields. This can lead to poor perfomance, and to things potentially getting stuck on Giant. Reviewed by: kib (imp reviewed earlier version) Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D15246 Modified: head/sys/kern/kern_cpu.c Modified: head/sys/kern/kern_cpu.c ============================================================================== --- head/sys/kern/kern_cpu.c Mon May 7 15:07:28 2018 (r333324) +++ head/sys/kern/kern_cpu.c Mon May 7 15:24:03 2018 (r333325) @@ -245,6 +245,7 @@ cf_set_method(device_t dev, const struct cf_level *lev struct cf_saved_freq *saved_freq, *curr_freq; struct pcpu *pc; int error, i; + u_char pri; sc = device_get_softc(dev); error = 0; @@ -333,6 +334,8 @@ cf_set_method(device_t dev, const struct cf_level *lev /* Bind to the target CPU before switching. */ pc = cpu_get_pcpu(set->dev); thread_lock(curthread); + pri = curthread->td_priority; + sched_prio(curthread, PRI_MIN); sched_bind(curthread, pc->pc_cpuid); thread_unlock(curthread); CF_DEBUG("setting abs freq %d on %s (cpu %d)\n", set->freq, @@ -340,6 +343,7 @@ cf_set_method(device_t dev, const struct cf_level *lev error = CPUFREQ_DRV_SET(set->dev, set); thread_lock(curthread); sched_unbind(curthread); + sched_prio(curthread, pri); thread_unlock(curthread); if (error) { goto out; @@ -357,6 +361,8 @@ cf_set_method(device_t dev, const struct cf_level *lev /* Bind to the target CPU before switching. */ pc = cpu_get_pcpu(set->dev); thread_lock(curthread); + pri = curthread->td_priority; + sched_prio(curthread, PRI_MIN); sched_bind(curthread, pc->pc_cpuid); thread_unlock(curthread); CF_DEBUG("setting rel freq %d on %s (cpu %d)\n", set->freq, @@ -364,6 +370,7 @@ cf_set_method(device_t dev, const struct cf_level *lev error = CPUFREQ_DRV_SET(set->dev, set); thread_lock(curthread); sched_unbind(curthread); + sched_prio(curthread, pri); thread_unlock(curthread); if (error) { /* XXX Back out any successful setting? */ From owner-svn-src-head@freebsd.org Mon May 7 15:45:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11DF9FB534E; Mon, 7 May 2018 15:45:46 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 B9D9F86DC4; Mon, 7 May 2018 15:45:44 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w47FjZWk056521; Mon, 7 May 2018 08:45:35 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w47FjZYA056520; Mon, 7 May 2018 08:45:35 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805071545.w47FjZYA056520@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf In-Reply-To: <201805071507.w47F7SOs035073@repo.freebsd.org> To: Mateusz Guzik Date: Mon, 7 May 2018 08:45:35 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 15:45:46 -0000 > Author: mjg > Date: Mon May 7 15:07:28 2018 > New Revision: 333324 > URL: https://svnweb.freebsd.org/changeset/base/333324 > > Log: > amd64: replace libkern's memset and memmove with assembly variants > > memmove is repurposed bcopy (arguments swapped, return value added) > The libkern variant is a wrapper around bcopy, so this is a big > improvement. > > memset is repurposed memcpy. The librkern variant is doing fishy stuff, > including branching on 0 and calling bzero. > > Both functions are rather crude and subject to partial depessimization. > > This is a soft prerequisite to adding variants utilizing the > 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. > > Modified: > head/sys/amd64/amd64/support.S > head/sys/conf/files.amd64 > > Modified: head/sys/amd64/amd64/support.S > ============================================================================== > --- head/sys/amd64/amd64/support.S Mon May 7 15:07:26 2018 (r333323) > +++ head/sys/amd64/amd64/support.S Mon May 7 15:07:28 2018 (r333324) > @@ -162,6 +162,58 @@ ENTRY(bcopy) > END(bcopy) > > /* > + * memmove(dst, src, cnt) > + * rdi, rsi, rdx > + * Original by: > + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 If the original is by ws@tools.de, who is this version by? Or is this simply copied from some other FreeBSD file? Thanks, > + */ > +ENTRY(memmove) > + PUSH_FRAME_POINTER > + movq %rdi,%r9 > + movq %rdx,%rcx > + > + movq %rdi,%rax > + subq %rsi,%rax > + cmpq %rcx,%rax /* overlapping && src < dst? */ > + jb 1f > + > + shrq $3,%rcx /* copy by 64-bit words */ > + rep > + movsq > + movq %rdx,%rcx > + andq $7,%rcx /* any bytes left? */ > + rep > + movsb > + movq %r9,%rax > + POP_FRAME_POINTER > + ret > + > + /* ALIGN_TEXT */ > +1: > + addq %rcx,%rdi /* copy backwards */ > + addq %rcx,%rsi > + decq %rdi > + decq %rsi > + andq $7,%rcx /* any fractional bytes? */ > + std > + rep > + movsb > + movq %rdx,%rcx /* copy remainder by 32-bit words */ > + shrq $3,%rcx > + subq $7,%rsi > + subq $7,%rdi > + rep > + movsq > + cld > + movq %r9,%rax > + POP_FRAME_POINTER > + ret > +END(memmove) > + > +/* > + * memcpy(dst, src, len) > + * rdi, rsi, rdx > + * > * Note: memcpy does not support overlapping copies > */ > ENTRY(memcpy) > @@ -178,6 +230,27 @@ ENTRY(memcpy) > POP_FRAME_POINTER > ret > END(memcpy) > + > +/* > + * memset(dst, c, len) > + * rdi, rsi, rdx > + */ > +ENTRY(memset) > + PUSH_FRAME_POINTER > + movq %rdi,%r9 > + movq %rdx,%rcx > + movq %rsi,%rax > + shrq $3,%rcx > + rep > + stosq > + movq %rdx,%rcx > + andq $7,%rcx > + rep > + stosb > + movq %r9,%rax > + POP_FRAME_POINTER > + ret > +END(memset) > > /* > * pagecopy(%rdi=from, %rsi=to) > > Modified: head/sys/conf/files.amd64 > ============================================================================== > --- head/sys/conf/files.amd64 Mon May 7 15:07:26 2018 (r333323) > +++ head/sys/conf/files.amd64 Mon May 7 15:07:28 2018 (r333324) > @@ -620,8 +620,6 @@ isa/vga_isa.c optional vga > kern/kern_clocksource.c standard > kern/link_elf_obj.c standard > libkern/x86/crc32_sse42.c standard > -libkern/memmove.c standard > -libkern/memset.c standard > # > # IA32 binary support > # > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon May 7 16:26:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 191A3FB600E; Mon, 7 May 2018 16:26:56 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f175.google.com (mail-io0-f175.google.com [209.85.223.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A3B0B6CE7C; Mon, 7 May 2018 16:26:55 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f175.google.com with SMTP id f21-v6so34718898iob.13; Mon, 07 May 2018 09:26:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=Bzywtu4MT96gHk4yNV2HXS3i+OxjBVQ2EncfbsZrhWg=; b=OjVVV4SWB5MgospQsQnsIaH8vyiOsR22z6mI7r4hW0qC2VMME6xPUacSXYwhJ35ibQ xQQZMhk4KZAULRZqXfcFj8SQLH3bwb/iiowfQvLHnVG7zWGyut0+XviF1FJrSl++eXNI 4C48WPfRWGlLDk475FjxxwpyE9AAngAFumyXOI0SxultHSZ08Hd/sGhMEznrgKah14Uy cr5ljdFyeP//ckTCAilkqoO4CgZeBJcgCc3G4BUDMdtDsgvUala7GM8mi5AC6G7AciYZ OkF8HYQFpQgBawfagrBgkGaIAJIKoQS7ODr3U3TShNwF7gfYMq9I9GAtP55EYtFKXswh pvpQ== X-Gm-Message-State: ALQs6tBGK+EQ06/3PZ3PAcg60hguOI0U2LBt/5pknq/MZUHOjPeJ6CK0 4i2pX3pHW7dG2asNwRENyKWEebDx X-Google-Smtp-Source: AB8JxZr+ZacLNteG9NuCda3FU/5SPomekinf6cLla3MaJhflOffS/hKEcpUB1BXf09CHCG2OVFgPAw== X-Received: by 2002:a6b:1456:: with SMTP id 83-v6mr39489661iou.218.1525710409051; Mon, 07 May 2018 09:26:49 -0700 (PDT) Received: from mail-io0-f182.google.com (mail-io0-f182.google.com. [209.85.223.182]) by smtp.gmail.com with ESMTPSA id v20-v6sm11019187iog.59.2018.05.07.09.26.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 May 2018 09:26:48 -0700 (PDT) Received: by mail-io0-f182.google.com with SMTP id g1-v6so25393299iob.2; Mon, 07 May 2018 09:26:48 -0700 (PDT) X-Received: by 2002:a6b:a867:: with SMTP id r100-v6mr39683057ioe.143.1525710408626; Mon, 07 May 2018 09:26:48 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 2002:a02:a40b:0:0:0:0:0 with HTTP; Mon, 7 May 2018 09:26:48 -0700 (PDT) In-Reply-To: <201805071545.w47FjZYA056520@pdx.rh.CN85.dnsmgr.net> References: <201805071507.w47F7SOs035073@repo.freebsd.org> <201805071545.w47FjZYA056520@pdx.rh.CN85.dnsmgr.net> From: Conrad Meyer Date: Mon, 7 May 2018 09:26:48 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf To: "Rodney W. Grimes" Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 16:26:56 -0000 On Mon, May 7, 2018 at 8:45 AM, Rodney W. Grimes wrote: >> + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 > > If the original is by ws@tools.de, who is this version by? > Or is this simply copied from some other FreeBSD file? This is covered thoroughly in lines 1-10 of the commit email: > Author: mjg ... > memmove is repurposed bcopy (arguments swapped, return value added) From owner-svn-src-head@freebsd.org Mon May 7 16:57:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27B4DFB6A88 for ; Mon, 7 May 2018 16:57:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x232.google.com (mail-it0-x232.google.com [IPv6:2607:f8b0:4001:c0b::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AF88F72B3B for ; Mon, 7 May 2018 16:57:43 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x232.google.com with SMTP id q72-v6so2606712itc.0 for ; Mon, 07 May 2018 09:57:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=KVpd6E9Chsh750jRPBw2OXV+A4H0cBiyEA/zTK5SolA=; b=koaDeW/NsvGNX12bAK5LsXc0e7vrM/S10sPxhUz2x/K1c4iQHQZkRuhkeiouvjun8x DffLv60rI2eu7V4PjUvaGz3usMZpxfpYDryhcyAZUrLDILz3pkb5APna8fHN9Rg9ru3u e6vH6f9KAn7iNOqnqqOmYi0LER0RFI6OS7TUMvQn7QNTtoP53guEaNxoI4lIiZT2pn9V 4oZwO7YTQevY+k2V9YqbtweQHbSyMeHlQdPFUvzZyL8o1X8llFpYKVyIosoWtE90eFj/ 8UwL9NlnLkfck1VTU+bAI7hKx9lQCewfHiEd1fLtJsLKJEHkCTQHWBvwMoPdVgSBHSwD GUdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=KVpd6E9Chsh750jRPBw2OXV+A4H0cBiyEA/zTK5SolA=; b=SSzZQAi22rOxe/4/lvn1dBDwXGFcHYMVKYFCtPXM2fAMyxIjOF24wPvJnIvPSZXTyy R6MmXbxVqXVXvSG8YraNHEk35p08sYJI2aDPPpsr+3f4WFmpuDM4xo45f0VZIbUHFksl rRqmNz+/0lKYNh9mOKeGExTbA8LQA4uvuw34SAoE8KQvWQFu0yqN7pXioHR2Ty92TSGv 4LYnnCmXLx9mjqms09NRaWnOGjtXjeITcyLoa56w1jhn1WwZ4DTCu3pW2Tj81yx1skUj 7Fo6m8msqXjv+tSUA8j6b8zkgjlDC1isjabF0SIo4CmxQmwl6LgLi7VVIZFKdDfrmuSZ wCZg== X-Gm-Message-State: ALKqPweGJZvEn12mHnktZ3OJTzR5peejhFWGERHoc+SJugTsxRf4XyUE kCcJ8OUPxzHnJA1a2ngLfN7s/vk+A+sl7RIjz8dCow== X-Google-Smtp-Source: AB8JxZr7qOVhV5jk0zl6+ZGLmcDc3ts9AlSDjM30POn3beOH935BuUHH69tZhY77ENeHl39dTFGrQODIFvXUSlwj1Ls= X-Received: by 2002:a24:e983:: with SMTP id f125-v6mr2121582ith.36.1525712262909; Mon, 07 May 2018 09:57:42 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a65a:0:0:0:0:0 with HTTP; Mon, 7 May 2018 09:57:41 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: References: <201805071507.w47F7SOs035073@repo.freebsd.org> <201805071545.w47FjZYA056520@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Mon, 7 May 2018 10:57:41 -0600 X-Google-Sender-Auth: 2DvXmP6ZbMLoBfMIUEJQKjE1mEM Message-ID: Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf To: "Conrad E. Meyer" Cc: "Rodney W. Grimes" , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 16:57:44 -0000 On Mon, May 7, 2018 at 10:26 AM, Conrad Meyer wrote: > On Mon, May 7, 2018 at 8:45 AM, Rodney W. Grimes > wrote: > >> + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 > > > > If the original is by ws@tools.de, who is this version by? > > Or is this simply copied from some other FreeBSD file? > > This is covered thoroughly in lines 1-10 of the commit email: > > > Author: mjg > ... > > memmove is repurposed bcopy (arguments swapped, return value added) > It's also trivial to see from code comparison... It noticed it right away while reviewing... Warner From owner-svn-src-head@freebsd.org Mon May 7 17:16:20 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 554FEFB7384; Mon, 7 May 2018 17:16:20 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DE6FF786BE; Mon, 7 May 2018 17:16:19 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 8B69F194C6; Mon, 7 May 2018 17:16:18 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: Andriy Gapon Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r332730 - in head/sys: amd64/amd64 i386/i386 powerpc/powerpc Date: Fri, 04 May 2018 15:55:18 -0700 Message-ID: <4861734.o1QKEXXL6r@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201804181544.w3IFisf7045389@repo.freebsd.org> References: <201804181544.w3IFisf7045389@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 17:16:20 -0000 On Wednesday, April 18, 2018 03:44:54 PM Andriy Gapon wrote: > Author: avg > Date: Wed Apr 18 15:44:54 2018 > New Revision: 332730 > URL: https://svnweb.freebsd.org/changeset/base/332730 > > Log: > don't check for kdb reentry in trap_fatal(), it's impossible > > trap() checks for it earlier and calls kdb_reentry(). I just noticed today that there are several other kdb_trap() checks in other architectures that need this fix and the KDB_WHY_TRAP change. Just grep for debugger_on_panic under sys. For example: arm/arm/trap-v4.c: if (debugger_on_panic || kdb_active) arm/arm/trap-v6.c: if (debugger_on_panic || kdb_active) arm64/arm64/trap.c: if (debugger_on_panic || kdb_active) mips/mips/trap.c: if (debugger_on_panic || kdb_active) { -- John Baldwin From owner-svn-src-head@freebsd.org Mon May 7 17:28:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA875FB77DB; Mon, 7 May 2018 17:28:17 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 4516378EA4; Mon, 7 May 2018 17:28:16 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w47HSD4X056877; Mon, 7 May 2018 10:28:13 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w47HSDuD056876; Mon, 7 May 2018 10:28:13 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805071728.w47HSDuD056876@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf In-Reply-To: To: Warner Losh Date: Mon, 7 May 2018 10:28:13 -0700 (PDT) CC: "Conrad E. Meyer" , "Rodney W. Grimes" , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 17:28:18 -0000 [ Charset UTF-8 unsupported, converting... ] > On Mon, May 7, 2018 at 10:26 AM, Conrad Meyer wrote: > > > On Mon, May 7, 2018 at 8:45 AM, Rodney W. Grimes > > wrote: > > >> + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 > > > > > > If the original is by ws@tools.de, who is this version by? > > > Or is this simply copied from some other FreeBSD file? > > > > This is covered thoroughly in lines 1-10 of the commit email: > > > > > Author: mjg > > ... > > > memmove is repurposed bcopy (arguments swapped, return value added) > > > > It's also trivial to see from code comparison... It noticed it right away > while reviewing... I believe both you and Conrad are placing to much weight on the commit message and no weight on the comment. Someone reading the code is not going to have the context we presently have. Comments in code need to stand alone, without any context of commit message creating them, or code else where, unless they directly reference that code else where. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon May 7 17:32:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 253AEFB7B91 for ; Mon, 7 May 2018 17:32:58 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x234.google.com (mail-io0-x234.google.com [IPv6:2607:f8b0:4001:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A551A7A660 for ; Mon, 7 May 2018 17:32:57 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x234.google.com with SMTP id e20-v6so35123427iof.4 for ; Mon, 07 May 2018 10:32:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=4zbBdfeGTfrQXVdxFbbrMMHDEDLldVXftXmfT2ok6zQ=; b=Dgq+Jr9si9qOZvqp6AyP9sCAecdAoQUkcoN/EZubK06QN5JX9ZRYSEQM+ggWVSHgHO ivJslmC+U4iULlXbjeW7swgnGJ6CG5+C/DJHHoGD+eKJd+se8BNAtHtIGrB3QKSbrYw0 QD6OFWqv7r/6D2xrNEUksa6qZVKyLcT2NylUGfxX/tWh2F6t81kLtMG+eQjESmXmBs04 XlbssrfaHR2lgrWcrtGCeQv9x7opucbqrNj0uEbHsgkS5S8YBFpkJFb+3hxtn+PPpKjQ 0Le/UmvHuQJ4PHzA5oVsX9++vOkByilm8TPJy5tYC243nUHBc/6WdzQZYyh8s/3sy5SW whdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=4zbBdfeGTfrQXVdxFbbrMMHDEDLldVXftXmfT2ok6zQ=; b=PL1+XHVAmqAeq+A8Ej4e3/++dtWrrlHVHQrpcIH+7Kf3U7RDUnPoC6qp5oRyg70sgg 7FIp4YRgTvA0+rPwrvZGbFEpzselvQy9fJ2vvzVckdbHVrT1hPFp/cIXxAPg356flX4l NjB1nkb2PyNdwDKt0W5zus4kyy7buSksxWRjFdEq2LdtyOYK1dONXTEO1CSNay6V4QAp YDakznzGvgLfoRfhSQQMFl+5BzC/zxdiO1C/ACZ/dM9Ovy1LYqHdsP2d4+XeqCudlsmV ih9kMv+9UFm/nKF0MDZtTQNI17Ze3WplNNNiostJGZXXvdgxaAhlIq7jtsVLXS7faKVD sfwg== X-Gm-Message-State: ALQs6tBZfxZAaP0o1TOhsTewImchlrGWT4GpDjfNDK//jJ/idpydv7SK KDRfrBl96JYbWs2GGIM7bmqM26gyN2+Lr0Sun0iMGA== X-Google-Smtp-Source: AB8JxZo3/Hu9JcqvlGUHkMIF+id3KuejFLLPQTXh5tgetJ21eaIoFXlIVLEzxVbIrT5nd1dTsTNaI+S3J73sbIzysJU= X-Received: by 2002:a6b:be01:: with SMTP id o1-v6mr39569541iof.299.1525714372184; Mon, 07 May 2018 10:32:52 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a65a:0:0:0:0:0 with HTTP; Mon, 7 May 2018 10:32:49 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <201805071728.w47HSDuD056876@pdx.rh.CN85.dnsmgr.net> References: <201805071728.w47HSDuD056876@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Mon, 7 May 2018 11:32:49 -0600 X-Google-Sender-Auth: lSBhpYf36KWOAAeFMMUrfI6hb8Y Message-ID: Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf To: "Rodney W. Grimes" Cc: "Conrad E. Meyer" , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 17:32:58 -0000 On Mon, May 7, 2018 at 11:28 AM, Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > [ Charset UTF-8 unsupported, converting... ] > > On Mon, May 7, 2018 at 10:26 AM, Conrad Meyer wrote: > > > > > On Mon, May 7, 2018 at 8:45 AM, Rodney W. Grimes > > > wrote: > > > >> + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 > > > > > > > > If the original is by ws@tools.de, who is this version by? > > > > Or is this simply copied from some other FreeBSD file? > > > > > > This is covered thoroughly in lines 1-10 of the commit email: > > > > > > > Author: mjg > > > ... > > > > memmove is repurposed bcopy (arguments swapped, return value added) > > > > > > > It's also trivial to see from code comparison... It noticed it right away > > while reviewing... > > I believe both you and Conrad are placing to much weight on the commit > message and no weight on the comment. Someone reading the code is not > going to have the context we presently have. > > Comments in code need to stand alone, without any context of commit > message creating them, or code else where, unless they directly > reference that code else where. > The code is 95% Wolfgang's code with the removal of the xchg %edi,%esi at the top and saving %edi into %r9 and restoring it to %rax before return. So -1 line +3 lines for a ~45 line function that affected only the arg order and return code.... The comment is entirely appropriate. Wraner From owner-svn-src-head@freebsd.org Mon May 7 17:37:08 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F355CFB7C78; Mon, 7 May 2018 17:37:07 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 94E037BBC6; Mon, 7 May 2018 17:37:07 +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 8CE801E78C; Mon, 7 May 2018 17:37:07 +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 w47Hb7TS010811; Mon, 7 May 2018 17:37:07 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47Hb72t010810; Mon, 7 May 2018 17:37:07 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805071737.w47Hb72t010810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 May 2018 17:37:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333328 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 333328 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 17:37:08 -0000 Author: mjg Date: Mon May 7 17:37:07 2018 New Revision: 333328 URL: https://svnweb.freebsd.org/changeset/base/333328 Log: amd64: tweak the memmove comment regarding authorship To make it clear the mentioned author did not write memmove. Modified: head/sys/amd64/amd64/support.S Modified: head/sys/amd64/amd64/support.S ============================================================================== --- head/sys/amd64/amd64/support.S Mon May 7 16:22:17 2018 (r333327) +++ head/sys/amd64/amd64/support.S Mon May 7 17:37:07 2018 (r333328) @@ -164,7 +164,7 @@ END(bcopy) /* * memmove(dst, src, cnt) * rdi, rsi, rdx - * Original by: + * Adapted from bcopy written by: * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 */ ENTRY(memmove) From owner-svn-src-head@freebsd.org Mon May 7 17:55:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3515FFB829E; Mon, 7 May 2018 17:55:58 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 7BB98813D2; Mon, 7 May 2018 17:55:57 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w47Httml056988; Mon, 7 May 2018 10:55:55 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w47HttWq056987; Mon, 7 May 2018 10:55:55 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805071755.w47HttWq056987@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333328 - head/sys/amd64/amd64 In-Reply-To: <201805071737.w47Hb72t010810@repo.freebsd.org> To: Mateusz Guzik Date: Mon, 7 May 2018 10:55:55 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 17:55:58 -0000 [ Charset UTF-8 unsupported, converting... ] > Author: mjg > Date: Mon May 7 17:37:07 2018 > New Revision: 333328 > URL: https://svnweb.freebsd.org/changeset/base/333328 > > Log: > amd64: tweak the memmove comment regarding authorship > > To make it clear the mentioned author did not write memmove. > > Modified: > head/sys/amd64/amd64/support.S > > Modified: head/sys/amd64/amd64/support.S > ============================================================================== > --- head/sys/amd64/amd64/support.S Mon May 7 16:22:17 2018 (r333327) > +++ head/sys/amd64/amd64/support.S Mon May 7 17:37:07 2018 (r333328) > @@ -164,7 +164,7 @@ END(bcopy) > /* > * memmove(dst, src, cnt) > * rdi, rsi, rdx > - * Original by: > + * Adapted from bcopy written by: > * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 Thank you, that makes it clearer. > */ > ENTRY(memmove) -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon May 7 17:58:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6304FB8342; Mon, 7 May 2018 17:58:04 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 017958153F; Mon, 7 May 2018 17:58:03 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w47Hw03W057004; Mon, 7 May 2018 10:58:00 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w47Hw0FZ057003; Mon, 7 May 2018 10:58:00 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805071758.w47Hw0FZ057003@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf In-Reply-To: To: Warner Losh Date: Mon, 7 May 2018 10:58:00 -0700 (PDT) CC: "Rodney W. Grimes" , "Conrad E. Meyer" , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 17:58:04 -0000 [ Charset UTF-8 unsupported, converting... ] > On Mon, May 7, 2018 at 11:28 AM, Rodney W. Grimes < > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > [ Charset UTF-8 unsupported, converting... ] > > > On Mon, May 7, 2018 at 10:26 AM, Conrad Meyer wrote: > > > > > > > On Mon, May 7, 2018 at 8:45 AM, Rodney W. Grimes > > > > wrote: > > > > >> + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 > > > > > > > > > > If the original is by ws@tools.de, who is this version by? > > > > > Or is this simply copied from some other FreeBSD file? > > > > > > > > This is covered thoroughly in lines 1-10 of the commit email: > > > > > > > > > Author: mjg > > > > ... > > > > > memmove is repurposed bcopy (arguments swapped, return value added) > > > > > > > > > > It's also trivial to see from code comparison... It noticed it right away > > > while reviewing... > > > > I believe both you and Conrad are placing to much weight on the commit > > message and no weight on the comment. Someone reading the code is not > > going to have the context we presently have. > > > > Comments in code need to stand alone, without any context of commit > > message creating them, or code else where, unless they directly > > reference that code else where. > > > > The code is 95% Wolfgang's code with the removal of the xchg %edi,%esi at > the top and saving %edi into %r9 and restoring it to %rax before return. So > -1 line +3 lines for a ~45 line function that affected only the arg order > and return code.... The comment is entirely appropriate. Again, it is the comment that is very incomplete and ambigous, thankfully it has been corrected. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon May 7 18:11:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A10AFB8822; Mon, 7 May 2018 18:11:23 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A2CF88465B; Mon, 7 May 2018 18:11:22 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D9D71ECC2; Mon, 7 May 2018 18:11:22 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47IBM89026544; Mon, 7 May 2018 18:11:22 GMT (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47IBMUx026543; Mon, 7 May 2018 18:11:22 GMT (envelope-from gallatin@FreeBSD.org) Message-Id: <201805071811.w47IBMUx026543@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gallatin set sender to gallatin@FreeBSD.org using -f From: Andrew Gallatin Date: Mon, 7 May 2018 18:11:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333329 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: gallatin X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333329 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 18:11:23 -0000 Author: gallatin Date: Mon May 7 18:11:22 2018 New Revision: 333329 URL: https://svnweb.freebsd.org/changeset/base/333329 Log: Fix an off-by-one error when deciding to request a tx interrupt The canonical check for whether or not a ring is drainable is TXQ_AVAIL() > MAX_TX_DESC() + 2. Use this same construct here, in order to avoid a potential off-by-one error where we might otherwise fail to request an interrupt. Reviewed by: mmacy Sponsored by: Netflix Modified: head/sys/net/iflib.c Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Mon May 7 17:37:07 2018 (r333328) +++ head/sys/net/iflib.c Mon May 7 18:11:22 2018 (r333329) @@ -3299,7 +3299,7 @@ defrag: */ txq->ift_rs_pending += nsegs + 1; if (txq->ift_rs_pending > TXQ_MAX_RS_DEFERRED(txq) || - iflib_no_tx_batch || (TXQ_AVAIL(txq) - nsegs - 1) <= MAX_TX_DESC(ctx)) { + iflib_no_tx_batch || (TXQ_AVAIL(txq) - nsegs) <= MAX_TX_DESC(ctx) + 2) { pi.ipi_flags |= IPI_TX_INTR; txq->ift_rs_pending = 0; } From owner-svn-src-head@freebsd.org Mon May 7 19:03:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18380FB9B1F for ; Mon, 7 May 2018 19:03:36 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-yb0-x244.google.com (mail-yb0-x244.google.com [IPv6:2607:f8b0:4002:c09::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9AC346EE77 for ; Mon, 7 May 2018 19:03:35 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-yb0-x244.google.com with SMTP id i13-v6so10295807ybl.4 for ; Mon, 07 May 2018 12:03:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=NSaoCFb71qNXpI/aHnro/ZVxs5Q2oh1B2BXALLTCNxk=; b=HcAX9yDEV0kzPgY7M5mj1EY7Z96LH9+2jbNERAuXe1OEV9qavkswPl4xusi3fjnLaB jxGooUh5SrW7EDtHipS1gcjJrsOSSUpiIjVEsB/1Y4bg6VzzhQhIu/Hh0MGtfPqdf/n5 KUs/D5GamGhMJ9jGEPHjFWwXAUXnmTMw/dRw5lQ4Uorv8lP+7WIYaxXvabjVMJsPr22B PCS3l9ueU5a4GbNssK/kX9KQbLIs0gQlf1u3Kv2NgIfegg6xav8hbNqY4olohd2ptV1h JQza57NfVyS0C1r62518zOgfFZK2EPyTOlF/PHlfF+QBF8zuQIgRBFA5ecy6D27+lV/6 TEZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=NSaoCFb71qNXpI/aHnro/ZVxs5Q2oh1B2BXALLTCNxk=; b=UGNiCYeU/uT13ykgh7cU5LOhgCf9OW34/M11AJ+i4ztyWFw8Fak1UcG8Z1pVPqanD1 FgVNJLbUOIID4v4ih3GThvZyVHpMwiPGt7vwUPniqJvKxaUoDq0pYG3ICN8qk2jI4QGS 1FUuydGFJ25dCfdofDI8kCMKv8pC9+84rhORvBtNgso5u3FU0LU15PlIoo8Ry3lWaKpJ jT8z7eNDl/7wGgPMybvZJ5yGtXnpixZMsdeil8+Ov1uX8kBrNRpVP5sgnXXDpxI+b9Sf KhSvCUd2y58Wl0ESViJ+Yrhx1AviMY7s48QiP0VDLqr3/riPAlFtq6Td8CHfU0/ljlzz RKOw== X-Gm-Message-State: ALQs6tACSAdEKM/xmsO/sxXmHf5md2ocWoIs7+i8Hhwt24XW2i2nbz0r 7VQRT0Vn38sLfHOWiZaqLjlin7fSRtmjjKBY2m6eeQ== X-Google-Smtp-Source: AB8JxZqYwvXJCZVeqRCHNYtozrtIYbkJUj6d+hWgsMm47CLLt7UrO8LoXxoMGJ1P3hCjQJOlVw3lTD9yUAZIi6wNMho= X-Received: by 2002:a25:cdca:: with SMTP id d193-v6mr11905233ybf.300.1525719814965; Mon, 07 May 2018 12:03:34 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:3894:0:0:0:0:0 with HTTP; Mon, 7 May 2018 12:03:34 -0700 (PDT) In-Reply-To: <201805071507.w47F7SOs035073@repo.freebsd.org> References: <201805071507.w47F7SOs035073@repo.freebsd.org> From: Oliver Pinter Date: Mon, 7 May 2018 21:03:34 +0200 Message-ID: Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 19:03:36 -0000 On 5/7/18, Mateusz Guzik wrote: > Author: mjg > Date: Mon May 7 15:07:28 2018 > New Revision: 333324 > URL: https://svnweb.freebsd.org/changeset/base/333324 > > Log: > amd64: replace libkern's memset and memmove with assembly variants > > memmove is repurposed bcopy (arguments swapped, return value added) > The libkern variant is a wrapper around bcopy, so this is a big > improvement. > > memset is repurposed memcpy. The librkern variant is doing fishy stuff, > including branching on 0 and calling bzero. > > Both functions are rather crude and subject to partial depessimization. > > This is a soft prerequisite to adding variants utilizing the > 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. > > Modified: > head/sys/amd64/amd64/support.S > head/sys/conf/files.amd64 > > Modified: head/sys/amd64/amd64/support.S > ============================================================================== > --- head/sys/amd64/amd64/support.S Mon May 7 15:07:26 2018 (r333323) > +++ head/sys/amd64/amd64/support.S Mon May 7 15:07:28 2018 (r333324) > @@ -162,6 +162,58 @@ ENTRY(bcopy) > END(bcopy) > > /* > + * memmove(dst, src, cnt) > + * rdi, rsi, rdx > + * Original by: > + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 > + */ > +ENTRY(memmove) > + PUSH_FRAME_POINTER > + movq %rdi,%r9 > + movq %rdx,%rcx > + > + movq %rdi,%rax > + subq %rsi,%rax > + cmpq %rcx,%rax /* overlapping && src < dst? */ > + jb 1f > + > + shrq $3,%rcx /* copy by 64-bit words */ > + rep > + movsq > + movq %rdx,%rcx > + andq $7,%rcx /* any bytes left? */ > + rep > + movsb > + movq %r9,%rax > + POP_FRAME_POINTER > + ret > + > + /* ALIGN_TEXT */ > +1: > + addq %rcx,%rdi /* copy backwards */ > + addq %rcx,%rsi > + decq %rdi > + decq %rsi > + andq $7,%rcx /* any fractional bytes? */ > + std > + rep > + movsb > + movq %rdx,%rcx /* copy remainder by 32-bit words */ > + shrq $3,%rcx > + subq $7,%rsi > + subq $7,%rdi > + rep > + movsq > + cld > + movq %r9,%rax > + POP_FRAME_POINTER > + ret > +END(memmove) > + > +/* > + * memcpy(dst, src, len) > + * rdi, rsi, rdx > + * > * Note: memcpy does not support overlapping copies > */ > ENTRY(memcpy) > @@ -178,6 +230,27 @@ ENTRY(memcpy) > POP_FRAME_POINTER > ret > END(memcpy) > + > +/* > + * memset(dst, c, len) > + * rdi, rsi, rdx > + */ > +ENTRY(memset) > + PUSH_FRAME_POINTER > + movq %rdi,%r9 > + movq %rdx,%rcx > + movq %rsi,%rax > + shrq $3,%rcx > + rep > + stosq According to Intel SDM stosq stores the whole RAX into destination, and then increments the destination register with 8. This implementation is wrong, since the c is a char, and the The RAX looks like 000000CC, so the stored patter would be 000000CC * SIZE / 8 * 8 + CC * SIZE % 8 in destination buffer. > + movq %rdx,%rcx > + andq $7,%rcx > + rep > + stosb > + movq %r9,%rax > + POP_FRAME_POINTER > + ret > +END(memset) > > /* > * pagecopy(%rdi=from, %rsi=to) > > Modified: head/sys/conf/files.amd64 > ============================================================================== > --- head/sys/conf/files.amd64 Mon May 7 15:07:26 2018 (r333323) > +++ head/sys/conf/files.amd64 Mon May 7 15:07:28 2018 (r333324) > @@ -620,8 +620,6 @@ isa/vga_isa.c optional vga > kern/kern_clocksource.c standard > kern/link_elf_obj.c standard > libkern/x86/crc32_sse42.c standard > -libkern/memmove.c standard > -libkern/memset.c standard > # > # IA32 binary support > # > _______________________________________________ > 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" > From owner-svn-src-head@freebsd.org Mon May 7 19:05:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF379FB9BD3 for ; Mon, 7 May 2018 19:05:14 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-yb0-x243.google.com (mail-yb0-x243.google.com [IPv6:2607:f8b0:4002:c09::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7B1B76FDBA for ; Mon, 7 May 2018 19:05:14 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-yb0-x243.google.com with SMTP id v12-v6so1332277ybl.10 for ; Mon, 07 May 2018 12:05:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=qEUUokfFjZWRfEbxLyU40ZAscVaU9TjavJqPF8EQOzo=; b=m8mPrPBal3b3kDZNj71WEqZcsNljlsaZrspxQYAXsNeZP0cjQMDLnrySqrB7VxORpS LJZtsnRMWVW8DIxzNCKR0mm9JHryCRsEQo1dEBHqtNyZadoyNUXHyPQ0IxUH6hkHsxwQ OxupPXejwCtf821bMlqD73vWSSa7bKZOZqmZ2+vBgHp6TkLbA7M2LyigqpM1uDZO2gUN ZvXc696s1VO/XPk70sJ0e0z/VG8A3zJNJG/Yepk8LlQ2I9lCAsHe0Z+JUYxNXFGRwg4I GwaTgkmGBlaJk1/+K4ri8PLPHy5nVRYQIouyg82hYlqMRhFED7b6bBwoZOp7NnfkqIU5 cUew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=qEUUokfFjZWRfEbxLyU40ZAscVaU9TjavJqPF8EQOzo=; b=hcjd3nc0gvjnk1GXSc2ld6ija5mxOFEZFA7H4kEdRPbHs884aJ2xqIbd5V0Yf/QuCo muY+pp0QNIIJ5nFmg3GmMBFHCllw5BHO7gLY89iyckPPwUy3KPQflsyyQOpWBRQQNksY dUbRsH1gUn4lWZGyeQNGPAYz/cmgar52aeZmqhAnC8j2lBxLdbgGeshidFTdHx9rq3HB DQPoQ4wK57ic7jtL3lNz+jdDk6NC5Qb4BXVtdT1TcCW/kKfGjoCIWD9+bn1EgcdxJKCn 2qj0GMKk22lchmZQ2wp9Hig90Crf5ZnoMHw81k1036a07ZMXf7ddl7/ob6TWz51Au1Ne Bfeg== X-Gm-Message-State: ALKqPwfqpFIElR3PKPQb8jNcBtLo4dUfTQR5gXHTMPcg0GngyEu1pTiv MkAHKTCLodP+CU+s8v0pI5PopxPVB4qcTH++4DaqVA== X-Google-Smtp-Source: AB8JxZohNaFbRwk/w9Bxwr3TuqFun00IVbWc1D5Hw842rUHj88yg2VtcVW4J2gfbDG7LEncfvfeGpTAXGX+n+XNaaIU= X-Received: by 2002:a25:6d03:: with SMTP id i3-v6mr5023630ybc.348.1525719913969; Mon, 07 May 2018 12:05:13 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:3894:0:0:0:0:0 with HTTP; Mon, 7 May 2018 12:05:13 -0700 (PDT) In-Reply-To: References: <201805071507.w47F7SOs035073@repo.freebsd.org> From: Oliver Pinter Date: Mon, 7 May 2018 21:05:13 +0200 Message-ID: Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 19:05:15 -0000 On 5/7/18, Oliver Pinter wrote: > On 5/7/18, Mateusz Guzik wrote: >> Author: mjg >> Date: Mon May 7 15:07:28 2018 >> New Revision: 333324 >> URL: https://svnweb.freebsd.org/changeset/base/333324 >> >> Log: >> amd64: replace libkern's memset and memmove with assembly variants >> >> memmove is repurposed bcopy (arguments swapped, return value added) >> The libkern variant is a wrapper around bcopy, so this is a big >> improvement. >> >> memset is repurposed memcpy. The librkern variant is doing fishy stuff, >> including branching on 0 and calling bzero. >> >> Both functions are rather crude and subject to partial depessimization. >> >> This is a soft prerequisite to adding variants utilizing the >> 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. >> >> Modified: >> head/sys/amd64/amd64/support.S >> head/sys/conf/files.amd64 >> >> Modified: head/sys/amd64/amd64/support.S >> ============================================================================== >> --- head/sys/amd64/amd64/support.S Mon May 7 15:07:26 2018 (r333323) >> +++ head/sys/amd64/amd64/support.S Mon May 7 15:07:28 2018 (r333324) >> @@ -162,6 +162,58 @@ ENTRY(bcopy) >> END(bcopy) >> >> /* >> + * memmove(dst, src, cnt) >> + * rdi, rsi, rdx >> + * Original by: >> + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 >> + */ >> +ENTRY(memmove) >> + PUSH_FRAME_POINTER >> + movq %rdi,%r9 >> + movq %rdx,%rcx >> + >> + movq %rdi,%rax >> + subq %rsi,%rax >> + cmpq %rcx,%rax /* overlapping && src < dst? */ >> + jb 1f >> + >> + shrq $3,%rcx /* copy by 64-bit words */ >> + rep >> + movsq >> + movq %rdx,%rcx >> + andq $7,%rcx /* any bytes left? */ >> + rep >> + movsb >> + movq %r9,%rax >> + POP_FRAME_POINTER >> + ret >> + >> + /* ALIGN_TEXT */ >> +1: >> + addq %rcx,%rdi /* copy backwards */ >> + addq %rcx,%rsi >> + decq %rdi >> + decq %rsi >> + andq $7,%rcx /* any fractional bytes? */ >> + std >> + rep >> + movsb >> + movq %rdx,%rcx /* copy remainder by 32-bit words */ >> + shrq $3,%rcx >> + subq $7,%rsi >> + subq $7,%rdi >> + rep >> + movsq >> + cld >> + movq %r9,%rax >> + POP_FRAME_POINTER >> + ret >> +END(memmove) >> + >> +/* >> + * memcpy(dst, src, len) >> + * rdi, rsi, rdx >> + * >> * Note: memcpy does not support overlapping copies >> */ >> ENTRY(memcpy) >> @@ -178,6 +230,27 @@ ENTRY(memcpy) >> POP_FRAME_POINTER >> ret >> END(memcpy) >> + >> +/* >> + * memset(dst, c, len) >> + * rdi, rsi, rdx >> + */ >> +ENTRY(memset) >> + PUSH_FRAME_POINTER >> + movq %rdi,%r9 >> + movq %rdx,%rcx >> + movq %rsi,%rax >> + shrq $3,%rcx >> + rep >> + stosq > > According to Intel SDM stosq stores the whole RAX into destination, > and then increments the destination register with 8. This > implementation is wrong, since the c is a char, and the The RAX looks > like 000000CC, so the stored patter would be 000000CC * SIZE / 8 * 8 + > CC * SIZE % 8 in destination buffer. Attached the proof. > >> + movq %rdx,%rcx >> + andq $7,%rcx >> + rep >> + stosb >> + movq %r9,%rax >> + POP_FRAME_POINTER >> + ret >> +END(memset) >> >> /* >> * pagecopy(%rdi=from, %rsi=to) >> >> Modified: head/sys/conf/files.amd64 >> ============================================================================== >> --- head/sys/conf/files.amd64 Mon May 7 15:07:26 2018 (r333323) >> +++ head/sys/conf/files.amd64 Mon May 7 15:07:28 2018 (r333324) >> @@ -620,8 +620,6 @@ isa/vga_isa.c optional vga >> kern/kern_clocksource.c standard >> kern/link_elf_obj.c standard >> libkern/x86/crc32_sse42.c standard >> -libkern/memmove.c standard >> -libkern/memset.c standard >> # >> # IA32 binary support >> # >> _______________________________________________ >> 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" >> > From owner-svn-src-head@freebsd.org Mon May 7 19:10:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF141FB9E23 for ; Mon, 7 May 2018 19:10:34 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-yb0-x244.google.com (mail-yb0-x244.google.com [IPv6:2607:f8b0:4002:c09::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3F40B7043F for ; Mon, 7 May 2018 19:10:34 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-yb0-x244.google.com with SMTP id i13-v6so10303736ybl.4 for ; Mon, 07 May 2018 12:10:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Cfa+KwMkb6iaiz56XxAwsfWZrZ+pvj1DlOQQwLGSsW0=; b=ly72l3LbnmX+VwsbPzspTMXUR0hErqNmIVN0bnYLiDBJLPKevnI1xvFusUZ+gpjExD s3YRYJ6htdRgBQfzB7e/3gbYxLJkF/PRCIwY0AdxJtfbJnJ4Pr+KTWmzIwP4wl4I/z+J vmyykTJISGEiUlmhwZliaNsn9xj1tXTOJRDgKh4oZ7ktVK62f8/54og74DZFRxoJIgiY UrVUVNySPHDC17cRY5Fxc6jrd14c6oCoUeMb93mX5EuQTljEGnJTlvMNfPKI6jBjzmUE KBlRvbVnkxLakhSto4rD94Rs4jfGT3rnuYUiB60rU/t/0GEV+jHeS4fDBIAPUg7xfmop AnkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Cfa+KwMkb6iaiz56XxAwsfWZrZ+pvj1DlOQQwLGSsW0=; b=cI16FuzRK+TIIpxHdNlbLMYUApkrx3nuBJNDsrHYU2UT7VGUYlKHMoSuAkxfOEm7Mq U94MKCRRWkxMzvNTq9gP9ISzzBjJs74Ap/VoewCMt34LG8vgBOM7RNipcjvF0vGasYb/ df9tr5+q6UjzVp0nuhbHtorQxVbkGLBpRYD8sGd8a0lYuukKiZoXDsInWlYGMjUTt5Rw VBkib7MlFr+ZS28eFkthy6ffT1LcPQBNKPiK1lfQxSyGbK3x+AIMUVwk2k1Od1NnlN/y GkpkrqBaMqgHa2Xv5/8QCJY0RjuYp+t3fmIQrnTanZMfl3vv4XpszY7XFn6APbku3nM5 IVVw== X-Gm-Message-State: ALKqPwcSNvNiOpXfGTzf5axb4zTpKWfGV1moT0T6sdT/i3m4n0nV4zxC m/V6Pj07taNdIlUckxwMdWGFNLis4f/fYoeMm/qVoA== X-Google-Smtp-Source: AB8JxZoOo2OCJ7drcf7J+YZyboXJAGy276BvdmrdK27MjirSTJ1HocmrLvYAezzg9Su68u3W9VUP7cPzRmUhQrOU2TM= X-Received: by 2002:a25:8746:: with SMTP id e6-v6mr681501ybn.371.1525720233743; Mon, 07 May 2018 12:10:33 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:3894:0:0:0:0:0 with HTTP; Mon, 7 May 2018 12:10:33 -0700 (PDT) In-Reply-To: <201805071545.w47FjZYA056520@pdx.rh.CN85.dnsmgr.net> References: <201805071507.w47F7SOs035073@repo.freebsd.org> <201805071545.w47FjZYA056520@pdx.rh.CN85.dnsmgr.net> From: Oliver Pinter Date: Mon, 7 May 2018 21:10:33 +0200 Message-ID: Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf To: rgrimes@freebsd.org Cc: Mateusz Guzik , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 19:10:35 -0000 On 5/7/18, Rodney W. Grimes wrote: >> Author: mjg >> Date: Mon May 7 15:07:28 2018 >> New Revision: 333324 >> URL: https://svnweb.freebsd.org/changeset/base/333324 >> >> Log: >> amd64: replace libkern's memset and memmove with assembly variants >> >> memmove is repurposed bcopy (arguments swapped, return value added) >> The libkern variant is a wrapper around bcopy, so this is a big >> improvement. >> >> memset is repurposed memcpy. The librkern variant is doing fishy stuff, >> including branching on 0 and calling bzero. >> >> Both functions are rather crude and subject to partial depessimization. >> >> This is a soft prerequisite to adding variants utilizing the >> 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. >> >> Modified: >> head/sys/amd64/amd64/support.S >> head/sys/conf/files.amd64 >> >> Modified: head/sys/amd64/amd64/support.S >> ============================================================================== >> --- head/sys/amd64/amd64/support.S Mon May 7 15:07:26 2018 (r333323) >> +++ head/sys/amd64/amd64/support.S Mon May 7 15:07:28 2018 (r333324) >> @@ -162,6 +162,58 @@ ENTRY(bcopy) >> END(bcopy) >> >> /* >> + * memmove(dst, src, cnt) >> + * rdi, rsi, rdx >> + * Original by: >> + * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 > > If the original is by ws@tools.de, who is this version by? > Or is this simply copied from some other FreeBSD file? Btw, it would be much better to review the relevant and function parts of the codes, rather than mocking with comments. ;) // not limited to this patch > > Thanks, >> + */ >> +ENTRY(memmove) >> + PUSH_FRAME_POINTER >> + movq %rdi,%r9 >> + movq %rdx,%rcx >> + >> + movq %rdi,%rax >> + subq %rsi,%rax >> + cmpq %rcx,%rax /* overlapping && src < dst? */ >> + jb 1f >> + >> + shrq $3,%rcx /* copy by 64-bit words */ >> + rep >> + movsq >> + movq %rdx,%rcx >> + andq $7,%rcx /* any bytes left? */ >> + rep >> + movsb >> + movq %r9,%rax >> + POP_FRAME_POINTER >> + ret >> + >> + /* ALIGN_TEXT */ >> +1: >> + addq %rcx,%rdi /* copy backwards */ >> + addq %rcx,%rsi >> + decq %rdi >> + decq %rsi >> + andq $7,%rcx /* any fractional bytes? */ >> + std >> + rep >> + movsb >> + movq %rdx,%rcx /* copy remainder by 32-bit words */ >> + shrq $3,%rcx >> + subq $7,%rsi >> + subq $7,%rdi >> + rep >> + movsq >> + cld >> + movq %r9,%rax >> + POP_FRAME_POINTER >> + ret >> +END(memmove) >> + >> +/* >> + * memcpy(dst, src, len) >> + * rdi, rsi, rdx >> + * >> * Note: memcpy does not support overlapping copies >> */ >> ENTRY(memcpy) >> @@ -178,6 +230,27 @@ ENTRY(memcpy) >> POP_FRAME_POINTER >> ret >> END(memcpy) >> + >> +/* >> + * memset(dst, c, len) >> + * rdi, rsi, rdx >> + */ >> +ENTRY(memset) >> + PUSH_FRAME_POINTER >> + movq %rdi,%r9 >> + movq %rdx,%rcx >> + movq %rsi,%rax >> + shrq $3,%rcx >> + rep >> + stosq >> + movq %rdx,%rcx >> + andq $7,%rcx >> + rep >> + stosb >> + movq %r9,%rax >> + POP_FRAME_POINTER >> + ret >> +END(memset) >> >> /* >> * pagecopy(%rdi=from, %rsi=to) >> >> Modified: head/sys/conf/files.amd64 >> ============================================================================== >> --- head/sys/conf/files.amd64 Mon May 7 15:07:26 2018 (r333323) >> +++ head/sys/conf/files.amd64 Mon May 7 15:07:28 2018 (r333324) >> @@ -620,8 +620,6 @@ isa/vga_isa.c optional vga >> kern/kern_clocksource.c standard >> kern/link_elf_obj.c standard >> libkern/x86/crc32_sse42.c standard >> -libkern/memmove.c standard >> -libkern/memset.c standard >> # >> # IA32 binary support >> # >> >> > > -- > Rod Grimes > rgrimes@freebsd.org > _______________________________________________ > 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" > From owner-svn-src-head@freebsd.org Mon May 7 20:38:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BCA71FBC433; Mon, 7 May 2018 20:38:10 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A2728725F; Mon, 7 May 2018 20:38:10 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61C3720573; Mon, 7 May 2018 20:38:10 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47KcAwe004775; Mon, 7 May 2018 20:38:10 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47KcATP004774; Mon, 7 May 2018 20:38:10 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <201805072038.w47KcATP004774@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Mon, 7 May 2018 20:38:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333330 - head/lib/libcapsicum X-SVN-Group: head X-SVN-Commit-Author: oshogbo X-SVN-Commit-Paths: head/lib/libcapsicum X-SVN-Commit-Revision: 333330 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 20:38:11 -0000 Author: oshogbo Date: Mon May 7 20:38:09 2018 New Revision: 333330 URL: https://svnweb.freebsd.org/changeset/base/333330 Log: Introduce caph_enter and caph_enter_casper. The caph_enter function should made it easier to sandbox application and not force us to remember that we need to check errno on failure. Another function is also checking if casper is present. Reviewed by: emaste, cem (partially) Differential Revision: https://reviews.freebsd.org/D14557 Modified: head/lib/libcapsicum/capsicum_helpers.3 head/lib/libcapsicum/capsicum_helpers.h Modified: head/lib/libcapsicum/capsicum_helpers.3 ============================================================================== --- head/lib/libcapsicum/capsicum_helpers.3 Mon May 7 18:11:22 2018 (r333329) +++ head/lib/libcapsicum/capsicum_helpers.3 Mon May 7 20:38:09 2018 (r333330) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 21, 2016 +.Dd May 7, 2018 .Dt CAPSICUM_HELPERS 3 .Os .Sh NAME @@ -41,6 +41,10 @@ .Sh SYNOPSIS .In capsicum_helpers.h .Ft int +.Fn caph_enter "void" +.Ft int +.Fn caph_enter_casper "void" +.Ft int .Fn caph_limit_stream "int fd, int flags" .Ft int .Fn caph_limit_stdin "void" @@ -55,6 +59,19 @@ .Ft void .Fn caph_cache_catpages "void" .Sh DESCRIPTION +The +.Nm caph_enter +is equivalent to the +.Xr cap_enter 2 +it returns success when the kernel is built without support of the capability +mode. +.Pp +The +.Nm caph_enter_casper +is equivalent to the +.Nm caph_enter +it returns success when the system is built without Casper support. +.Pp The .Nm capsicum helpers are a set of a inline functions which simplify modifying programs to use Modified: head/lib/libcapsicum/capsicum_helpers.h ============================================================================== --- head/lib/libcapsicum/capsicum_helpers.h Mon May 7 18:11:22 2018 (r333329) +++ head/lib/libcapsicum/capsicum_helpers.h Mon May 7 20:38:09 2018 (r333330) @@ -39,6 +39,8 @@ #include #include +#include + #define CAPH_IGNORE_EBADF 0x0001 #define CAPH_READ 0x0002 #define CAPH_WRITE 0x0004 @@ -120,6 +122,24 @@ caph_cache_catpages(void) { (void)catopen("libc", NL_CAT_LOCALE); +} + +static __inline int +caph_enter(void) +{ + + if (cap_enter() < 0 && errno != ENOSYS) + return (-1); + + return (0); +} + + +static __inline int +caph_enter_casper(void) +{ + + return (CASPER_SUPPORT == 0 ? 0 : caph_enter()); } #endif /* _CAPSICUM_HELPERS_H_ */ From owner-svn-src-head@freebsd.org Mon May 7 20:54:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5FA59FBC99E; Mon, 7 May 2018 20:54:43 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EF92568F26; Mon, 7 May 2018 20:54:42 +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 DC005208A3; Mon, 7 May 2018 20:54:42 +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 w47Ksg0f014729; Mon, 7 May 2018 20:54:42 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47KsgJV014728; Mon, 7 May 2018 20:54:42 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805072054.w47KsgJV014728@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 May 2018 20:54:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333332 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 333332 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 20:54:43 -0000 Author: mjg Date: Mon May 7 20:54:42 2018 New Revision: 333332 URL: https://svnweb.freebsd.org/changeset/base/333332 Log: amd64: fix up memset added in r333324 There was a missing trick expanding the passed pattern to a full word by multiplication. As a side effect non-zero patterns would be incorrectly laid down. This stems from the use of rep stosq which is word-sized, while the passed argument is byte-sized. I initially repurposed memcpy into memset without taking this into account. All but non-bzero testing was performed with a variant utilizing ERMS, i.e. using only stosb which happens to not into the problem whatsoever. So my bad twice. Thanks to Oliver Pinter for noting the problem and providing a testcase. Modified: head/sys/amd64/amd64/support.S Modified: head/sys/amd64/amd64/support.S ============================================================================== --- head/sys/amd64/amd64/support.S Mon May 7 20:41:24 2018 (r333331) +++ head/sys/amd64/amd64/support.S Mon May 7 20:54:42 2018 (r333332) @@ -239,7 +239,8 @@ ENTRY(memset) PUSH_FRAME_POINTER movq %rdi,%r9 movq %rdx,%rcx - movq %rsi,%rax + movabs $0x0101010101010101,%rax + imulq %rsi,%rax shrq $3,%rcx rep stosq From owner-svn-src-head@freebsd.org Mon May 7 20:57:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2661FBCA59; Mon, 7 May 2018 20:57:14 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-qt0-x242.google.com (mail-qt0-x242.google.com [IPv6:2607:f8b0:400d:c0d::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 44D0D69C5F; Mon, 7 May 2018 20:57:14 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-qt0-x242.google.com with SMTP id e8-v6so33381694qth.0; Mon, 07 May 2018 13:57:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=+Ugb7DDrhqFr0Ms9K49qMHyCVqbYLEDj+WK5h0+0/OU=; b=HcBp6zqqzG9ZBjSoWSfpP8eyzT37bAIaGk35iiVuULUSBWpYViVWtC/ARFOU3QpQuL 6s++8duSkHmO94PaxfAHZrLvkQuJQMghe16ZSV3zKIRX0bIR1gEQfmaviL7eLo4LGZl2 aLEkPpQLAJzvHtE8802mDZlONS69hdsj4Q7hyFlnHZLLXua792k3x5Tt6WMEZAhZerJZ cMXdHbbiv5u/CY1fNgLQ/V4GjqtFlpLNdAaaIQFMTD7NWyI86SaI1LZsulydBddUJKIX +RDC38LmZ+SaFjdNLe7Nn0jm6zjcjvs9gGyqaefAmVmTbPISiYtVXV6OzlwmSBeaoUsg zaYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=+Ugb7DDrhqFr0Ms9K49qMHyCVqbYLEDj+WK5h0+0/OU=; b=ECiNo3XZQO7BHe5M2ljIi0HMYYs3ZDJ6TzkW+zZkDY/K1fTLB+86n6HMvF3Robj2Ld 81QGSORV4hhxelIHULu/YLnBS4XbL7bLiWtG7upi9sdNM2N3O3GWmPvVmjaQ9ZIKzeVk Hfx2TRPN2gJiZI7J/po1M6cnQ707cqH1GkP4PMIFe0MzR0Pv8Uh62/xFOliWgSpaqFYb CL2jwfLwuBNvngyw0KTRVa+joDCPmEKdOwpNKu2uaSLGL5ZSfdmjR3lzCNTuxvyuoDR6 3W81B9HL18RuF2oOajVutTw3VMc1RUO3CdQinjkKECmmmHiWid+2f7E7VZuFs2j8Da72 fUIA== X-Gm-Message-State: ALKqPweIR6lIb4PkYQucntUDfamyDHFPwh/niPln94ufMm5JJBRrKbns Je1dPgwwRQ4h2GPmbg+bccfDxMIm+9aihMOKV/7I3w== X-Google-Smtp-Source: AB8JxZoUAnC4e9BE86gqwri/L11qKoWKehUnId81vnMFFdWW8SBnwX7WNaz72RjVqn3M/8wDCYCae5y6CSUlZdjIATU= X-Received: by 2002:ac8:3508:: with SMTP id y8-v6mr13407607qtb.26.1525726633700; Mon, 07 May 2018 13:57:13 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.28.74 with HTTP; Mon, 7 May 2018 13:57:13 -0700 (PDT) In-Reply-To: References: <201805071507.w47F7SOs035073@repo.freebsd.org> From: Mateusz Guzik Date: Mon, 7 May 2018 22:57:13 +0200 Message-ID: Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf To: Oliver Pinter Cc: Mateusz Guzik , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 20:57:15 -0000 On Mon, May 7, 2018 at 9:03 PM, Oliver Pinter wrote: > On 5/7/18, Mateusz Guzik wrote: > > Author: mjg > > Date: Mon May 7 15:07:28 2018 > > New Revision: 333324 > > URL: https://svnweb.freebsd.org/changeset/base/333324 > > > > Log: > > amd64: replace libkern's memset and memmove with assembly variants > > > > memmove is repurposed bcopy (arguments swapped, return value added) > > The libkern variant is a wrapper around bcopy, so this is a big > > improvement. > > > > memset is repurposed memcpy. The librkern variant is doing fishy stuff, > > including branching on 0 and calling bzero. > > > > Both functions are rather crude and subject to partial depessimization. > > > > This is a soft prerequisite to adding variants utilizing the > > 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. > > > > + > > +/* > > + * memset(dst, c, len) > > + * rdi, rsi, rdx > > + */ > > +ENTRY(memset) > > + PUSH_FRAME_POINTER > > + movq %rdi,%r9 > > + movq %rdx,%rcx > > + movq %rsi,%rax > > + shrq $3,%rcx > > + rep > > + stosq > > According to Intel SDM stosq stores the whole RAX into destination, > and then increments the destination register with 8. This > implementation is wrong, since the c is a char, and the The RAX looks > like 000000CC, so the stored patter would be 000000CC * SIZE / 8 * 8 + > CC * SIZE % 8 in destination buffer. > Ye, my bad. Forgot to expand the arg with the multiplication trick. Fixed: https://svnweb.freebsd.org/base?view=revision&revision=333332 -- Mateusz Guzik From owner-svn-src-head@freebsd.org Mon May 7 21:09:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E61DAFBCF92; Mon, 7 May 2018 21:09:09 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 911026DACE; Mon, 7 May 2018 21:09:09 +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 86E4920A4C; Mon, 7 May 2018 21:09:09 +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 w47L99kH019785; Mon, 7 May 2018 21:09:09 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47L99jY019783; Mon, 7 May 2018 21:09:09 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805072109.w47L99jY019783@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 7 May 2018 21:09:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333333 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 333333 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 21:09:10 -0000 Author: imp Date: Mon May 7 21:09:08 2018 New Revision: 333333 URL: https://svnweb.freebsd.org/changeset/base/333333 Log: Add device_quiet_children() and device_has_quiet_children() If you add a child to a device that has quiet children, we'll automatically set the quiet flag on the children, and its children. This is indended for things like CPU that have a large amount of repetition in booting that adds nothing. Modified: head/sys/kern/subr_bus.c head/sys/sys/bus.h Modified: head/sys/kern/subr_bus.c ============================================================================== --- head/sys/kern/subr_bus.c Mon May 7 20:54:42 2018 (r333332) +++ head/sys/kern/subr_bus.c Mon May 7 21:09:08 2018 (r333333) @@ -1828,6 +1828,8 @@ make_device(device_t parent, const char *name, int uni return (NULL); } } + if (parent != NULL && device_has_quiet_children(parent)) + dev->flags |= DF_QUIET | DF_QUIET_CHILDREN; dev->ivars = NULL; dev->softc = NULL; @@ -2649,12 +2651,30 @@ device_quiet(device_t dev) } /** + * @brief Set the DF_QUIET_CHILDREN flag for the device + */ +void +device_quiet_children(device_t dev) +{ + dev->flags |= DF_QUIET_CHILDREN; +} + +/** * @brief Clear the DF_QUIET flag for the device */ void device_verbose(device_t dev) { dev->flags &= ~DF_QUIET; +} + +/** + * @brief Return non-zero if the DF_QUIET_CHIDLREN flag is set on the device + */ +int +device_has_quiet_children(device_t dev) +{ + return ((dev->flags & DF_QUIET_CHILDREN) != 0); } /** Modified: head/sys/sys/bus.h ============================================================================== --- head/sys/sys/bus.h Mon May 7 20:54:42 2018 (r333332) +++ head/sys/sys/bus.h Mon May 7 21:09:08 2018 (r333333) @@ -89,6 +89,7 @@ struct u_device { #define DF_EXTERNALSOFTC 0x40 /* softc not allocated by us */ #define DF_REBID 0x80 /* Can rebid after attach */ #define DF_SUSPENDED 0x100 /* Device is suspended. */ +#define DF_QUIET_CHILDREN 0x200 /* Default to quiet for all my children */ /** * @brief Device request structure used for ioctl's. @@ -584,6 +585,7 @@ device_state_t device_get_state(device_t dev); int device_get_unit(device_t dev); struct sysctl_ctx_list *device_get_sysctl_ctx(device_t dev); struct sysctl_oid *device_get_sysctl_tree(device_t dev); +int device_has_quiet_children(device_t dev); int device_is_alive(device_t dev); /* did probe succeed? */ int device_is_attached(device_t dev); /* did attach succeed? */ int device_is_enabled(device_t dev); @@ -597,6 +599,7 @@ int device_probe_and_attach(device_t dev); int device_probe_child(device_t bus, device_t dev); int device_quiesce(device_t dev); void device_quiet(device_t dev); +void device_quiet_children(device_t dev); void device_set_desc(device_t dev, const char* desc); void device_set_desc_copy(device_t dev, const char* desc); int device_set_devclass(device_t dev, const char *classname); From owner-svn-src-head@freebsd.org Mon May 7 21:09:19 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 97FE3FBCFC1; Mon, 7 May 2018 21:09:19 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 28EA36DC69; Mon, 7 May 2018 21:09:17 +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 D07D920A4D; Mon, 7 May 2018 21:09:17 +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 w47L9Hql019839; Mon, 7 May 2018 21:09:17 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47L9HoP019838; Mon, 7 May 2018 21:09:17 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805072109.w47L9HoP019838@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 7 May 2018 21:09:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333334 - head/sys/dev/acpica X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/dev/acpica X-SVN-Commit-Revision: 333334 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 21:09:19 -0000 Author: imp Date: Mon May 7 21:09:17 2018 New Revision: 333334 URL: https://svnweb.freebsd.org/changeset/base/333334 Log: Use device_quiet_children to silence verbose CPU probe messages. Have cpu0 be noisy, but all the other CPU devices be quiet on boot. Modified: head/sys/dev/acpica/acpi_cpu.c Modified: head/sys/dev/acpica/acpi_cpu.c ============================================================================== --- head/sys/dev/acpica/acpi_cpu.c Mon May 7 21:09:08 2018 (r333333) +++ head/sys/dev/acpica/acpi_cpu.c Mon May 7 21:09:17 2018 (r333334) @@ -308,6 +308,11 @@ acpi_cpu_probe(device_t dev) acpi_set_private(dev, (void*)(intptr_t)cpu_id); device_set_desc(dev, "ACPI CPU"); + if (!bootverbose && device_get_unit(dev) != 0) { + device_quiet(dev); + device_quiet_children(dev); + } + return (0); } From owner-svn-src-head@freebsd.org Mon May 7 21:09:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D163EFBCFE9; Mon, 7 May 2018 21:09:22 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7C5ED6DD2B; Mon, 7 May 2018 21:09:22 +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 5BF4020A4E; Mon, 7 May 2018 21:09:22 +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 w47L9Mfc019893; Mon, 7 May 2018 21:09:22 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47L9MQW019892; Mon, 7 May 2018 21:09:22 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805072109.w47L9MQW019892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 7 May 2018 21:09:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333335 - head/sys/x86/x86 X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/x86/x86 X-SVN-Commit-Revision: 333335 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 21:09:23 -0000 Author: imp Date: Mon May 7 21:09:21 2018 New Revision: 333335 URL: https://svnweb.freebsd.org/changeset/base/333335 Log: Put the CPU starting on one line. Modified: head/sys/x86/x86/mp_x86.c Modified: head/sys/x86/x86/mp_x86.c ============================================================================== --- head/sys/x86/x86/mp_x86.c Mon May 7 21:09:17 2018 (r333334) +++ head/sys/x86/x86/mp_x86.c Mon May 7 21:09:21 2018 (r333335) @@ -1020,7 +1020,11 @@ init_secondary_tail(void) smp_cpus++; CTR1(KTR_SMP, "SMP: AP CPU #%d Launched", cpuid); - printf("SMP: AP CPU #%d Launched!\n", cpuid); + if (bootverbose) + printf("SMP: AP CPU #%d Launched!\n", cpuid); + else + printf("%s%d%s", smp_cpus == 2 ? "Launching APs: " : "", + cpuid, smp_cpus == mp_ncpus ? "\n" : " "); /* Determine if we are a logical CPU. */ if (cpu_info[PCPU_GET(apic_id)].cpu_hyperthread) From owner-svn-src-head@freebsd.org Mon May 7 21:32:09 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7261BFBD966; Mon, 7 May 2018 21:32:09 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2066D72D67; Mon, 7 May 2018 21:32:09 +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 1B3C020EF4; Mon, 7 May 2018 21:32:09 +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 w47LW8ww034908; Mon, 7 May 2018 21:32:08 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47LW8RE034907; Mon, 7 May 2018 21:32:08 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805072132.w47LW8RE034907@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 May 2018 21:32:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333337 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 333337 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 21:32:09 -0000 Author: mjg Date: Mon May 7 21:32:08 2018 New Revision: 333337 URL: https://svnweb.freebsd.org/changeset/base/333337 Log: amd64: stop asserting params != NULL in the syscall path The parameter is effectively controllable by userspace. It does not matter what it is set to as it is being passed to copyin - worst case the operation will just fail. While here stop computing it unless it is going to be used. Noted by: dillon@backplane.com Modified: head/sys/amd64/amd64/trap.c Modified: head/sys/amd64/amd64/trap.c ============================================================================== --- head/sys/amd64/amd64/trap.c Mon May 7 21:26:05 2018 (r333336) +++ head/sys/amd64/amd64/trap.c Mon May 7 21:32:08 2018 (r333337) @@ -886,7 +886,6 @@ cpu_fetch_syscall_args(struct thread *td) reg = 0; regcnt = 6; - params = (caddr_t)frame->tf_rsp + sizeof(register_t); sa->code = frame->tf_rax; if (sa->code == SYS_syscall || sa->code == SYS___syscall) { @@ -910,7 +909,7 @@ cpu_fetch_syscall_args(struct thread *td) argp += reg; memcpy(sa->args, argp, sizeof(sa->args[0]) * 6); if (sa->narg > regcnt) { - KASSERT(params != NULL, ("copyin args with no params!")); + params = (caddr_t)frame->tf_rsp + sizeof(register_t); error = copyin(params, &sa->args[regcnt], (sa->narg - regcnt) * sizeof(sa->args[0])); } From owner-svn-src-head@freebsd.org Mon May 7 22:29:33 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D357FBEBD0; Mon, 7 May 2018 22:29: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CFCB0850FB; Mon, 7 May 2018 22:29:32 +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 C62FC216FC; Mon, 7 May 2018 22:29:32 +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 w47MTW7N062493; Mon, 7 May 2018 22:29:32 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47MTWFd062491; Mon, 7 May 2018 22:29:32 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805072229.w47MTWFd062491@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 May 2018 22:29:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333339 - 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: 333339 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 22:29:33 -0000 Author: mjg Date: Mon May 7 22:29:32 2018 New Revision: 333339 URL: https://svnweb.freebsd.org/changeset/base/333339 Log: Avoid calls to syscall_thread_enter/exit for statically defined syscalls The entire mechanism is rarely used and is quite not performant due to atomci ops on the syscall table. It also has added overhead for completely unrelated syscalls. Reduce it by avoiding the func calls if possible (which consistutes vast majority of cases). Provides about 3% syscall rate speed up for getuid on Broadwell. Modified: head/sys/kern/kern_syscalls.c head/sys/sys/sysent.h Modified: head/sys/kern/kern_syscalls.c ============================================================================== --- head/sys/kern/kern_syscalls.c Mon May 7 21:42:22 2018 (r333338) +++ head/sys/kern/kern_syscalls.c Mon May 7 22:29:32 2018 (r333339) @@ -80,14 +80,12 @@ syscall_thread_drain(struct sysent *se) } int -syscall_thread_enter(struct thread *td, struct sysent *se) +_syscall_thread_enter(struct thread *td, struct sysent *se) { u_int32_t cnt, oldcnt; do { oldcnt = se->sy_thrcnt; - if ((oldcnt & SY_THR_STATIC) != 0) - return (0); if ((oldcnt & (SY_THR_DRAINING | SY_THR_ABSENT)) != 0) return (ENOSYS); cnt = oldcnt + SY_THR_INCR; @@ -96,14 +94,12 @@ syscall_thread_enter(struct thread *td, struct sysent } void -syscall_thread_exit(struct thread *td, struct sysent *se) +_syscall_thread_exit(struct thread *td, struct sysent *se) { u_int32_t cnt, oldcnt; do { oldcnt = se->sy_thrcnt; - if ((oldcnt & SY_THR_STATIC) != 0) - return; cnt = oldcnt - SY_THR_INCR; } while (atomic_cmpset_rel_32(&se->sy_thrcnt, oldcnt, cnt) == 0); } Modified: head/sys/sys/sysent.h ============================================================================== --- head/sys/sys/sysent.h Mon May 7 21:42:22 2018 (r333338) +++ head/sys/sys/sysent.h Mon May 7 22:29:32 2018 (r333339) @@ -289,8 +289,26 @@ struct nosys_args; int lkmnosys(struct thread *, struct nosys_args *); int lkmressys(struct thread *, struct nosys_args *); -int syscall_thread_enter(struct thread *td, struct sysent *se); -void syscall_thread_exit(struct thread *td, struct sysent *se); +int _syscall_thread_enter(struct thread *td, struct sysent *se); +void _syscall_thread_exit(struct thread *td, struct sysent *se); + +static inline int +syscall_thread_enter(struct thread *td, struct sysent *se) +{ + + if (__predict_true((se->sy_thrcnt & SY_THR_STATIC) != 0)) + return (0); + return (_syscall_thread_enter(td, se)); +} + +static inline void +syscall_thread_exit(struct thread *td, struct sysent *se) +{ + + if (__predict_true((se->sy_thrcnt & SY_THR_STATIC) != 0)) + return; + _syscall_thread_exit(td, se); +} int shared_page_alloc(int size, int align); int shared_page_fill(int size, int align, const void *data); From owner-svn-src-head@freebsd.org Mon May 7 23:10:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7164FC0BAB; Mon, 7 May 2018 23:10:13 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A1996DBF3; Mon, 7 May 2018 23:10:13 +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 6506721D80; Mon, 7 May 2018 23:10:13 +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 w47NADfA087244; Mon, 7 May 2018 23:10:13 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47NAD0E087242; Mon, 7 May 2018 23:10:13 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805072310.w47NAD0E087242@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 May 2018 23:10:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333342 - 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: 333342 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 23:10:14 -0000 Author: mjg Date: Mon May 7 23:10:12 2018 New Revision: 333342 URL: https://svnweb.freebsd.org/changeset/base/333342 Log: Change trap_enotcap to bool and annotate with __read_frequently It is read on each return to user space. Modified: head/sys/kern/sys_capability.c head/sys/sys/capsicum.h Modified: head/sys/kern/sys_capability.c ============================================================================== --- head/sys/kern/sys_capability.c Mon May 7 23:10:02 2018 (r333341) +++ head/sys/kern/sys_capability.c Mon May 7 23:10:12 2018 (r333342) @@ -85,8 +85,8 @@ __FBSDID("$FreeBSD$"); #include #include -int trap_enotcap; -SYSCTL_INT(_kern, OID_AUTO, trap_enotcap, CTLFLAG_RW, &trap_enotcap, 0, +bool __read_frequently trap_enotcap; +SYSCTL_BOOL(_kern, OID_AUTO, trap_enotcap, CTLFLAG_RW, &trap_enotcap, 0, "Deliver SIGTRAP on ENOTCAPABLE"); #ifdef CAPABILITY_MODE Modified: head/sys/sys/capsicum.h ============================================================================== --- head/sys/sys/capsicum.h Mon May 7 23:10:02 2018 (r333341) +++ head/sys/sys/capsicum.h Mon May 7 23:10:12 2018 (r333342) @@ -370,7 +370,7 @@ int cap_ioctl_check(struct filedesc *fdp, int fd, u_lo int cap_fcntl_check_fde(struct filedescent *fde, int cmd); int cap_fcntl_check(struct filedesc *fdp, int fd, int cmd); -extern int trap_enotcap; +extern bool trap_enotcap; #else /* !_KERNEL */ From owner-svn-src-head@freebsd.org Mon May 7 23:35:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E966FC1572; Mon, 7 May 2018 23:35:29 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 5478671DA4; Mon, 7 May 2018 23:35:28 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id 67DB94224FD; Tue, 8 May 2018 09:35:15 +1000 (AEST) Date: Tue, 8 May 2018 09:35:14 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mateusz Guzik cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf In-Reply-To: <201805071507.w47F7SOs035073@repo.freebsd.org> Message-ID: <20180508072206.B888@besplex.bde.org> References: <201805071507.w47F7SOs035073@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=FNpr/6gs c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=MdRsKBzazwKPVFaIwW4A:9 a=RYddRPqCA4RVdAks:21 a=-iCQatyvBGjsEPS3:21 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 23:35:29 -0000 On Mon, 7 May 2018, Mateusz Guzik wrote: > Log: > amd64: replace libkern's memset and memmove with assembly variants > > memmove is repurposed bcopy (arguments swapped, return value added) > The libkern variant is a wrapper around bcopy, so this is a big > improvement. This is a tiny improvement, perhaps negative. As previously explained, the wrapper only costs a couple of cycles, and bcopy() is not as good as it could be. But the simple C versions are much faster than the asm versions. The asm versions still use 2 "rep movs*", so they take about 50 cycles to start up. The simple C loop can do about 50 loads and stores in 50 cycles, so even with byte accesses it handles about 50 bytes before the asm version does anything. So this change is a small pessimization if the size is usually small. > memset is repurposed memcpy. The librkern variant is doing fishy stuff, > including branching on 0 and calling bzero. You mean the old libkern variant. It just duplicates the inline implementation in a stupid way. Another style bug in this is that the memset() (and also index() and rindex()) is implemented as an inline in , when newer mem*() are implemented as macros in . The inlines are harder to use and don't even support the hack of a special case if the size is constant and small. libkern/memcmp.c is almost never used, and neither is your asm version, so it shouldn't be optimized and your asm version shouldn't exist, and the bugs in the asm version rarely matter. It is just a fallback for cases where inlining doesn't work and for use in function pointers. I don't see how the inlining can ever not work, but there is an ifdef tangle that makes this non-obvious. libkern/memcpy.c gets tangled up with the complications. It can't just use the inline version because of namespace problems. With a macro version, it would define itself as (memset) and then just invoke the macro version as plain memset. With better names, the inline version would be defined with a name like __memset() and memset() would be defined as __memset() and the extern version would just use __memset(). Instead, libkern/memcpy.c defines LIBKERN_INLINE to tell to get out of the way. This is misnamed since it kills inlines instead of enabling them. Without it, all the inlines in libkern.h are 'static __inline'. Since they are static, they are always used, so the extern version is never used except possibly for function pointers. (Inlining may fail, but then a static function is used. This happens mainly with -O0.) The final details for memset() are that when LIBKERN_INLINE is defined, this is used as part of the function prototype; it also prevents the definition of LIBKERN_BODY and this is what kills production of the inline version. So libkern/memset.c gets only a prototype for memset(). Similarly, but bogusly for other files that define LIBKERN_INLINE. But normal files get the inline version. libc also has many silly "optimizations", even in its MI parts, so copying it to create libkern is not so good. E.g., on amd64, strcpy() has been pessimized by turning it into a wrapper around stpcpy(). amd64 stpcpy() is in asm and uses a masking trick to reduce to word-sized accesses. This is slower for short strings and probably should be MI if it is done at all. OTOH, i386 strcpy() is not a wrapper, but is still the ~25-30 year old version that does does manual unrolling in asm. At least it doesn't use any x86 string instructions. i386 used to have strlen() is asm, but this was intentionally not done for amd64, and now both use the MI strlen() which has the fancy masking optimization. Compilers often inline strlen() so it is unclear how often this is used. > Both functions are rather crude and subject to partial depessimization. Indeed, they are fully pessimized using 2 "rep movs". > This is a soft prerequisite to adding variants utilizing the > 'Enhanced REP MOVSB/STOSB' bit and let the kernel patch at runtime. Ugh. Dynamic changes also complicate debugging and profiling. Stack traces fil up with . I checked the effect of previous micro-optimizations for makeworld. Makeworld for a non-bloated (~5.2) world does about 120 million calls to copying functions (I added counters and zapped the "rep movsb" for all such functions in amd64/support.S). Previous optimizations for inlining, or just zapping "rep movsb", saves about 50 cycles/call. That is 6 billion cycles altogther, which take about 1.5 seconds at 4GHz, but HTT makes times about 50% longer, so scale this up to 2.25 seconds. Divide by the number of CPUs (8) to get the improvement in real time. It is 0.28 seconds. This is in the noise. (The total sys time is about 100 seconds and the total real time is about 150 seconds, and the noses is mostly in the idle time (standard deviation about 1% for real time but about 4% for idle time. The estimated 0.28 seconds is about 0.2% of the real time and could be confirmed by careful measurements, but I only did a quick test that the sys time was reduced by a few seconds). It is hard to get excited about optimizations of 0.2%, but that is exactly what I am doing for my current project of scheduler optimizations :-). Bruce From owner-svn-src-head@freebsd.org Mon May 7 23:36:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 609DAFC15C3; Mon, 7 May 2018 23:36: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0DE62721F6; Mon, 7 May 2018 23:36: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 028C122245; Mon, 7 May 2018 23:36: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 w47NaGWv001866; Mon, 7 May 2018 23:36:16 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47NaGXH001864; Mon, 7 May 2018 23:36:16 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805072336.w47NaGXH001864@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 7 May 2018 23:36:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333344 - 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: 333344 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 23:36:17 -0000 Author: mjg Date: Mon May 7 23:36:16 2018 New Revision: 333344 URL: https://svnweb.freebsd.org/changeset/base/333344 Log: Inlined sched_userret. The tested condition is rarely true and it induces a function call on each return to userspace. Bumps getuid rate by about 1% on Broadwell. Modified: head/sys/kern/sched_4bsd.c head/sys/kern/sched_ule.c head/sys/sys/sched.h Modified: head/sys/kern/sched_4bsd.c ============================================================================== --- head/sys/kern/sched_4bsd.c Mon May 7 23:23:11 2018 (r333343) +++ head/sys/kern/sched_4bsd.c Mon May 7 23:36:16 2018 (r333344) @@ -1481,25 +1481,13 @@ sched_preempt(struct thread *td) } void -sched_userret(struct thread *td) +sched_userret_slowpath(struct thread *td) { - /* - * XXX we cheat slightly on the locking here to avoid locking in - * the usual case. Setting td_priority here is essentially an - * incomplete workaround for not setting it properly elsewhere. - * Now that some interrupt handlers are threads, not setting it - * properly elsewhere can clobber it in the window between setting - * it here and returning to user mode, so don't waste time setting - * it perfectly here. - */ - KASSERT((td->td_flags & TDF_BORROWING) == 0, - ("thread with borrowed priority returning to userland")); - if (td->td_priority != td->td_user_pri) { - thread_lock(td); - td->td_priority = td->td_user_pri; - td->td_base_pri = td->td_user_pri; - thread_unlock(td); - } + + thread_lock(td); + td->td_priority = td->td_user_pri; + td->td_base_pri = td->td_user_pri; + thread_unlock(td); } void Modified: head/sys/kern/sched_ule.c ============================================================================== --- head/sys/kern/sched_ule.c Mon May 7 23:23:11 2018 (r333343) +++ head/sys/kern/sched_ule.c Mon May 7 23:36:16 2018 (r333344) @@ -2356,26 +2356,14 @@ sched_preempt(struct thread *td) * to static priorities in msleep() or similar. */ void -sched_userret(struct thread *td) +sched_userret_slowpath(struct thread *td) { - /* - * XXX we cheat slightly on the locking here to avoid locking in - * the usual case. Setting td_priority here is essentially an - * incomplete workaround for not setting it properly elsewhere. - * Now that some interrupt handlers are threads, not setting it - * properly elsewhere can clobber it in the window between setting - * it here and returning to user mode, so don't waste time setting - * it perfectly here. - */ - KASSERT((td->td_flags & TDF_BORROWING) == 0, - ("thread with borrowed priority returning to userland")); - if (td->td_priority != td->td_user_pri) { - thread_lock(td); - td->td_priority = td->td_user_pri; - td->td_base_pri = td->td_user_pri; - tdq_setlowpri(TDQ_SELF(), td); - thread_unlock(td); - } + + thread_lock(td); + td->td_priority = td->td_user_pri; + td->td_base_pri = td->td_user_pri; + tdq_setlowpri(TDQ_SELF(), td); + thread_unlock(td); } /* Modified: head/sys/sys/sched.h ============================================================================== --- head/sys/sys/sched.h Mon May 7 23:23:11 2018 (r333343) +++ head/sys/sys/sched.h Mon May 7 23:36:16 2018 (r333344) @@ -103,13 +103,32 @@ void sched_switch(struct thread *td, struct thread *ne void sched_throw(struct thread *td); void sched_unlend_prio(struct thread *td, u_char prio); void sched_user_prio(struct thread *td, u_char prio); -void sched_userret(struct thread *td); +void sched_userret_slowpath(struct thread *td); void sched_wakeup(struct thread *td); #ifdef RACCT #ifdef SCHED_4BSD fixpt_t sched_pctcpu_delta(struct thread *td); #endif #endif + +static inline void +sched_userret(struct thread *td) +{ + + /* + * XXX we cheat slightly on the locking here to avoid locking in + * the usual case. Setting td_priority here is essentially an + * incomplete workaround for not setting it properly elsewhere. + * Now that some interrupt handlers are threads, not setting it + * properly elsewhere can clobber it in the window between setting + * it here and returning to user mode, so don't waste time setting + * it perfectly here. + */ + KASSERT((td->td_flags & TDF_BORROWING) == 0, + ("thread with borrowed priority returning to userland")); + if (__predict_false(td->td_priority != td->td_user_pri)) + sched_userret_slowpath(td); +} /* * Threads are moved on and off of run queues From owner-svn-src-head@freebsd.org Tue May 8 01:37:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B03C5FC5C75; Tue, 8 May 2018 01:37:44 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id 8966C6FFDD; Tue, 8 May 2018 01:37:43 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id 3DEE8D68CB1; Tue, 8 May 2018 11:37:31 +1000 (AEST) Date: Tue, 8 May 2018 11:37:30 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Bruce Evans cc: Mateusz Guzik , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333324 - in head/sys: amd64/amd64 conf In-Reply-To: <20180508072206.B888@besplex.bde.org> Message-ID: <20180508101158.J1350@besplex.bde.org> References: <201805071507.w47F7SOs035073@repo.freebsd.org> <20180508072206.B888@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=FNpr/6gs c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=BVA95AcoyG47zic6ybEA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 01:37:44 -0000 On Tue, 8 May 2018, Bruce Evans wrote: > On Mon, 7 May 2018, Mateusz Guzik wrote: > >> Log: >> amd64: replace libkern's memset and memmove with assembly variants >> ... >> memset is repurposed memcpy. The librkern variant is doing fishy stuff, >> including branching on 0 and calling bzero. > > You mean the old libkern variant. It just duplicates the inline > implementation in a stupid way. Another style bug in this is that the > memset() (and also index() and rindex()) is implemented as an inline in > , when newer mem*() are implemented as macros in > . The inlines are harder to use and don't even support > the hack of a special case if the size is constant and small. > > libkern/memcmp.c is almost never used, and neither is your asm version, > so it shouldn't be optimized and your asm version shouldn't exist, and > the bugs in the asm version rarely matter. It is just a fallback for > cases where inlining doesn't work and for use in function pointers. I > don't see how the inlining can ever not work, but there is an ifdef > tangle that makes this non-obvious. I checked in an old i386 kernel that the extern memset() is not called even once during a makeworld. But several object files reference it. For a newer amd64 kernel, these files are: - huf_decompress.o - iflib.o - kern_event.o - memset.o - nfs_clvsops.o - ppp_msq.o - vga.o - zstd_opt.o (this uses a private static version) Bah, my test for this was broken because the naming error of having a private copy of memset broke debugging -- ddb put the breakpoint at the version in zstd_opt.o. Repeating the makeworld with breakpoints at both versions still showed no calls. Debugging this in the preprocessed sources for vga.c shows that memset() is never called there. However, bzero() is called a lot, and it expands to __builtin_memset() for the case that is supposed to be inlining (constant size <= 64), but the compiler (gcc) generates code that calls memset() anyway, and the extern memset() is needed for this fallback. But apparently, the inlining is not that bad, so the memset() is never actually called. Something is wrong, since the calls to memset() are all with size 384 Oops. The calls are actually to initialize local variables. Some code has the good pessimization of large local variables with auto-initiazation to 0 on every entry to the function. At least gcc apparently uses memset() to initialize such variables, although this is invalid in freestanding mode. So the extern memset() is not just a fallback for direct pessimizations. The limited size of the kernel stack makes this pessimization relatively rare. Further analysis of calls to memset() in a full amd64 kernel: - only 20 calls total - the sizes are variable(perhaps for a VLA), 0x10, 0x10, 0x10, 0x10, 0x2004, 0x4004, 0x4004, 0x2018, 0x60, 0xc0, 0x2a8, 0xf8, 0x100, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180 (the last 6 all for vga.c where the pessimization is in the slow path). So almost no problems with large zero-initialized variables on the stack either. clang does excessive inlining, so of course it inlines most of these initializations. It actually inlines all except 6 (ones with size 0x2004, 0x2004, 0x4004, 0x4004, 0xf8, 0x100). For the size 0x180 in vga.c, clang generates only memcpy() where gcc generates memset() and then load-stores and/or memcpy(). Reducing the slowness of large auto-initialized local variables is an interesting problem. memcpy() from static data is simplest, but for sparse data memset() followed by a few loads and stores is probably better. I would have expected clang to do the fancier optimization with memset(). I use -Os to limit such optimizations (they are especially useless in the initialization code in vga.c) but forget to use it for clang in this test. So it is even more surprising that gcc apparently does the fancier optimization with memset(). memcpy() from static data would give smaller code though larger data, and I think -Os is mostly to optimized code for space. Bruce From owner-svn-src-head@freebsd.org Tue May 8 01:39:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 85F15FC5DC9; Tue, 8 May 2018 01:39:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2F6E1701A0; Tue, 8 May 2018 01:39:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 26A3823626; Tue, 8 May 2018 01:39:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w481dlvw062733; Tue, 8 May 2018 01:39:47 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w481djMX062724; Tue, 8 May 2018 01:39:45 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805080139.w481djMX062724@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Tue, 8 May 2018 01:39:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333345 - head/sys/dev/e1000 X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/dev/e1000 X-SVN-Commit-Revision: 333345 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 01:39:47 -0000 Author: mmacy Date: Tue May 8 01:39:45 2018 New Revision: 333345 URL: https://svnweb.freebsd.org/changeset/base/333345 Log: Sleep rather than spin in e1000 when doing long running config operations. With r333218 it is now possible for drivers to use an sx lock and thus sleep while waiting on long running operations rather than DELAY(). Reported by: gallatin Reviewed by: sbruno Approved by: sbruno MFC after: 1 month Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D14984 Modified: head/sys/dev/e1000/e1000_80003es2lan.c head/sys/dev/e1000/e1000_82571.c head/sys/dev/e1000/e1000_82575.c head/sys/dev/e1000/e1000_hw.h head/sys/dev/e1000/e1000_i210.c head/sys/dev/e1000/e1000_i210.h head/sys/dev/e1000/e1000_ich8lan.c head/sys/dev/e1000/e1000_mac.c head/sys/dev/e1000/e1000_mac.h head/sys/dev/e1000/e1000_osdep.h head/sys/dev/e1000/if_em.c Modified: head/sys/dev/e1000/e1000_80003es2lan.c ============================================================================== --- head/sys/dev/e1000/e1000_80003es2lan.c Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_80003es2lan.c Tue May 8 01:39:45 2018 (r333345) @@ -60,7 +60,6 @@ static s32 e1000_reset_hw_80003es2lan(struct e1000_hw static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw); static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw); static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw); -static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask); static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex); static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw); static s32 e1000_cfg_on_link_up_80003es2lan(struct e1000_hw *hw); @@ -69,7 +68,6 @@ static s32 e1000_read_kmrn_reg_80003es2lan(struct e10 static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, u16 data); static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw); -static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask); static s32 e1000_read_mac_addr_80003es2lan(struct e1000_hw *hw); static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw); @@ -300,7 +298,7 @@ static s32 e1000_acquire_phy_80003es2lan(struct e1000_ DEBUGFUNC("e1000_acquire_phy_80003es2lan"); mask = hw->bus.func ? E1000_SWFW_PHY1_SM : E1000_SWFW_PHY0_SM; - return e1000_acquire_swfw_sync_80003es2lan(hw, mask); + return e1000_acquire_swfw_sync(hw, mask); } /** @@ -316,7 +314,7 @@ static void e1000_release_phy_80003es2lan(struct e1000 DEBUGFUNC("e1000_release_phy_80003es2lan"); mask = hw->bus.func ? E1000_SWFW_PHY1_SM : E1000_SWFW_PHY0_SM; - e1000_release_swfw_sync_80003es2lan(hw, mask); + e1000_release_swfw_sync(hw, mask); } /** @@ -334,7 +332,7 @@ static s32 e1000_acquire_mac_csr_80003es2lan(struct e1 mask = E1000_SWFW_CSR_SM; - return e1000_acquire_swfw_sync_80003es2lan(hw, mask); + return e1000_acquire_swfw_sync(hw, mask); } /** @@ -351,7 +349,7 @@ static void e1000_release_mac_csr_80003es2lan(struct e mask = E1000_SWFW_CSR_SM; - e1000_release_swfw_sync_80003es2lan(hw, mask); + e1000_release_swfw_sync(hw, mask); } /** @@ -366,14 +364,14 @@ static s32 e1000_acquire_nvm_80003es2lan(struct e1000_ DEBUGFUNC("e1000_acquire_nvm_80003es2lan"); - ret_val = e1000_acquire_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM); + ret_val = e1000_acquire_swfw_sync(hw, E1000_SWFW_EEP_SM); if (ret_val) return ret_val; ret_val = e1000_acquire_nvm_generic(hw); if (ret_val) - e1000_release_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM); + e1000_release_swfw_sync(hw, E1000_SWFW_EEP_SM); return ret_val; } @@ -389,78 +387,7 @@ static void e1000_release_nvm_80003es2lan(struct e1000 DEBUGFUNC("e1000_release_nvm_80003es2lan"); e1000_release_nvm_generic(hw); - e1000_release_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM); -} - -/** - * e1000_acquire_swfw_sync_80003es2lan - Acquire SW/FW semaphore - * @hw: pointer to the HW structure - * @mask: specifies which semaphore to acquire - * - * Acquire the SW/FW semaphore to access the PHY or NVM. The mask - * will also specify which port we're acquiring the lock for. - **/ -static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask) -{ - u32 swfw_sync; - u32 swmask = mask; - u32 fwmask = mask << 16; - s32 i = 0; - s32 timeout = 50; - - DEBUGFUNC("e1000_acquire_swfw_sync_80003es2lan"); - - while (i < timeout) { - if (e1000_get_hw_semaphore_generic(hw)) - return -E1000_ERR_SWFW_SYNC; - - swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC); - if (!(swfw_sync & (fwmask | swmask))) - break; - - /* Firmware currently using resource (fwmask) - * or other software thread using resource (swmask) - */ - e1000_put_hw_semaphore_generic(hw); - msec_delay_irq(5); - i++; - } - - if (i == timeout) { - DEBUGOUT("Driver can't access resource, SW_FW_SYNC timeout.\n"); - return -E1000_ERR_SWFW_SYNC; - } - - swfw_sync |= swmask; - E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync); - - e1000_put_hw_semaphore_generic(hw); - - return E1000_SUCCESS; -} - -/** - * e1000_release_swfw_sync_80003es2lan - Release SW/FW semaphore - * @hw: pointer to the HW structure - * @mask: specifies which semaphore to acquire - * - * Release the SW/FW semaphore used to access the PHY or NVM. The mask - * will also specify which port we're releasing the lock for. - **/ -static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask) -{ - u32 swfw_sync; - - DEBUGFUNC("e1000_release_swfw_sync_80003es2lan"); - - while (e1000_get_hw_semaphore_generic(hw) != E1000_SUCCESS) - ; /* Empty */ - - swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC); - swfw_sync &= ~mask; - E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync); - - e1000_put_hw_semaphore_generic(hw); + e1000_release_swfw_sync(hw, E1000_SWFW_EEP_SM); } /** Modified: head/sys/dev/e1000/e1000_82571.c ============================================================================== --- head/sys/dev/e1000/e1000_82571.c Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_82571.c Tue May 8 01:39:45 2018 (r333345) @@ -71,11 +71,8 @@ static s32 e1000_check_for_serdes_link_82571(struct e static s32 e1000_setup_fiber_serdes_link_82571(struct e1000_hw *hw); static s32 e1000_valid_led_default_82571(struct e1000_hw *hw, u16 *data); static void e1000_clear_hw_cntrs_82571(struct e1000_hw *hw); -static s32 e1000_get_hw_semaphore_82571(struct e1000_hw *hw); static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw); static s32 e1000_get_phy_id_82571(struct e1000_hw *hw); -static void e1000_put_hw_semaphore_82571(struct e1000_hw *hw); -static void e1000_put_hw_semaphore_82573(struct e1000_hw *hw); static s32 e1000_get_hw_semaphore_82574(struct e1000_hw *hw); static void e1000_put_hw_semaphore_82574(struct e1000_hw *hw); static s32 e1000_set_d0_lplu_state_82574(struct e1000_hw *hw, @@ -126,8 +123,8 @@ static s32 e1000_init_phy_params_82571(struct e1000_hw phy->ops.get_cable_length = e1000_get_cable_length_igp_2; phy->ops.read_reg = e1000_read_phy_reg_igp; phy->ops.write_reg = e1000_write_phy_reg_igp; - phy->ops.acquire = e1000_get_hw_semaphore_82571; - phy->ops.release = e1000_put_hw_semaphore_82571; + phy->ops.acquire = e1000_get_hw_semaphore; + phy->ops.release = e1000_put_hw_semaphore; break; case e1000_82573: phy->type = e1000_phy_m88; @@ -139,12 +136,11 @@ static s32 e1000_init_phy_params_82571(struct e1000_hw phy->ops.get_cable_length = e1000_get_cable_length_m88; phy->ops.read_reg = e1000_read_phy_reg_m88; phy->ops.write_reg = e1000_write_phy_reg_m88; - phy->ops.acquire = e1000_get_hw_semaphore_82571; - phy->ops.release = e1000_put_hw_semaphore_82571; + phy->ops.acquire = e1000_get_hw_semaphore; + phy->ops.release = e1000_put_hw_semaphore; break; case e1000_82574: case e1000_82583: - E1000_MUTEX_INIT(&hw->dev_spec._82571.swflag_mutex); phy->type = e1000_phy_bm; phy->ops.get_cfg_done = e1000_get_cfg_done_generic; @@ -507,99 +503,21 @@ static s32 e1000_get_phy_id_82571(struct e1000_hw *hw) } /** - * e1000_get_hw_semaphore_82571 - Acquire hardware semaphore + * e1000_get_hw_semaphore_82574 - Acquire hardware semaphore * @hw: pointer to the HW structure * - * Acquire the HW semaphore to access the PHY or NVM - **/ -static s32 e1000_get_hw_semaphore_82571(struct e1000_hw *hw) -{ - u32 swsm; - s32 sw_timeout = hw->nvm.word_size + 1; - s32 fw_timeout = hw->nvm.word_size + 1; - s32 i = 0; - - DEBUGFUNC("e1000_get_hw_semaphore_82571"); - - /* If we have timedout 3 times on trying to acquire - * the inter-port SMBI semaphore, there is old code - * operating on the other port, and it is not - * releasing SMBI. Modify the number of times that - * we try for the semaphore to interwork with this - * older code. - */ - if (hw->dev_spec._82571.smb_counter > 2) - sw_timeout = 1; - - /* Get the SW semaphore */ - while (i < sw_timeout) { - swsm = E1000_READ_REG(hw, E1000_SWSM); - if (!(swsm & E1000_SWSM_SMBI)) - break; - - usec_delay(50); - i++; - } - - if (i == sw_timeout) { - DEBUGOUT("Driver can't access device - SMBI bit is set.\n"); - hw->dev_spec._82571.smb_counter++; - } - /* Get the FW semaphore. */ - for (i = 0; i < fw_timeout; i++) { - swsm = E1000_READ_REG(hw, E1000_SWSM); - E1000_WRITE_REG(hw, E1000_SWSM, swsm | E1000_SWSM_SWESMBI); - - /* Semaphore acquired if bit latched */ - if (E1000_READ_REG(hw, E1000_SWSM) & E1000_SWSM_SWESMBI) - break; - - usec_delay(50); - } - - if (i == fw_timeout) { - /* Release semaphores */ - e1000_put_hw_semaphore_82571(hw); - DEBUGOUT("Driver can't access the NVM\n"); - return -E1000_ERR_NVM; - } - - return E1000_SUCCESS; -} - -/** - * e1000_put_hw_semaphore_82571 - Release hardware semaphore - * @hw: pointer to the HW structure - * - * Release hardware semaphore used to access the PHY or NVM - **/ -static void e1000_put_hw_semaphore_82571(struct e1000_hw *hw) -{ - u32 swsm; - - DEBUGFUNC("e1000_put_hw_semaphore_generic"); - - swsm = E1000_READ_REG(hw, E1000_SWSM); - - swsm &= ~(E1000_SWSM_SMBI | E1000_SWSM_SWESMBI); - - E1000_WRITE_REG(hw, E1000_SWSM, swsm); -} - -/** - * e1000_get_hw_semaphore_82573 - Acquire hardware semaphore - * @hw: pointer to the HW structure - * * Acquire the HW semaphore during reset. * **/ -static s32 e1000_get_hw_semaphore_82573(struct e1000_hw *hw) +static s32 +e1000_get_hw_semaphore_82574(struct e1000_hw *hw) { u32 extcnf_ctrl; s32 i = 0; - + /* XXX assert that mutex is held */ DEBUGFUNC("e1000_get_hw_semaphore_82573"); + ASSERT_CTX_LOCK_HELD(hw); extcnf_ctrl = E1000_READ_REG(hw, E1000_EXTCNF_CTRL); do { extcnf_ctrl |= E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP; @@ -615,7 +533,7 @@ static s32 e1000_get_hw_semaphore_82573(struct e1000_h if (i == MDIO_OWNERSHIP_TIMEOUT) { /* Release semaphores */ - e1000_put_hw_semaphore_82573(hw); + e1000_put_hw_semaphore_82574(hw); DEBUGOUT("Driver can't access the PHY\n"); return -E1000_ERR_PHY; } @@ -624,17 +542,18 @@ static s32 e1000_get_hw_semaphore_82573(struct e1000_h } /** - * e1000_put_hw_semaphore_82573 - Release hardware semaphore + * e1000_put_hw_semaphore_82574 - Release hardware semaphore * @hw: pointer to the HW structure * * Release hardware semaphore used during reset. * **/ -static void e1000_put_hw_semaphore_82573(struct e1000_hw *hw) +static void +e1000_put_hw_semaphore_82574(struct e1000_hw *hw) { u32 extcnf_ctrl; - DEBUGFUNC("e1000_put_hw_semaphore_82573"); + DEBUGFUNC("e1000_put_hw_semaphore_82574"); extcnf_ctrl = E1000_READ_REG(hw, E1000_EXTCNF_CTRL); extcnf_ctrl &= ~E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP; @@ -642,41 +561,6 @@ static void e1000_put_hw_semaphore_82573(struct e1000_ } /** - * e1000_get_hw_semaphore_82574 - Acquire hardware semaphore - * @hw: pointer to the HW structure - * - * Acquire the HW semaphore to access the PHY or NVM. - * - **/ -static s32 e1000_get_hw_semaphore_82574(struct e1000_hw *hw) -{ - s32 ret_val; - - DEBUGFUNC("e1000_get_hw_semaphore_82574"); - - E1000_MUTEX_LOCK(&hw->dev_spec._82571.swflag_mutex); - ret_val = e1000_get_hw_semaphore_82573(hw); - if (ret_val) - E1000_MUTEX_UNLOCK(&hw->dev_spec._82571.swflag_mutex); - return ret_val; -} - -/** - * e1000_put_hw_semaphore_82574 - Release hardware semaphore - * @hw: pointer to the HW structure - * - * Release hardware semaphore used to access the PHY or NVM - * - **/ -static void e1000_put_hw_semaphore_82574(struct e1000_hw *hw) -{ - DEBUGFUNC("e1000_put_hw_semaphore_82574"); - - e1000_put_hw_semaphore_82573(hw); - E1000_MUTEX_UNLOCK(&hw->dev_spec._82571.swflag_mutex); -} - -/** * e1000_set_d0_lplu_state_82574 - Set Low Power Linkup D0 state * @hw: pointer to the HW structure * @active: TRUE to enable LPLU, FALSE to disable @@ -747,7 +631,7 @@ static s32 e1000_acquire_nvm_82571(struct e1000_hw *hw DEBUGFUNC("e1000_acquire_nvm_82571"); - ret_val = e1000_get_hw_semaphore_82571(hw); + ret_val = e1000_get_hw_semaphore(hw); if (ret_val) return ret_val; @@ -760,7 +644,7 @@ static s32 e1000_acquire_nvm_82571(struct e1000_hw *hw } if (ret_val) - e1000_put_hw_semaphore_82571(hw); + e1000_put_hw_semaphore(hw); return ret_val; } @@ -776,7 +660,7 @@ static void e1000_release_nvm_82571(struct e1000_hw *h DEBUGFUNC("e1000_release_nvm_82571"); e1000_release_nvm_generic(hw); - e1000_put_hw_semaphore_82571(hw); + e1000_put_hw_semaphore(hw); } /** @@ -1093,8 +977,6 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) */ switch (hw->mac.type) { case e1000_82573: - ret_val = e1000_get_hw_semaphore_82573(hw); - break; case e1000_82574: case e1000_82583: ret_val = e1000_get_hw_semaphore_82574(hw); @@ -1111,10 +993,6 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) /* Must release MDIO ownership and mutex after MAC reset. */ switch (hw->mac.type) { case e1000_82573: - /* Release mutex only if the hw semaphore is acquired */ - if (!ret_val) - e1000_put_hw_semaphore_82573(hw); - break; case e1000_82574: case e1000_82583: /* Release mutex only if the hw semaphore is acquired */ @@ -1122,6 +1000,7 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) e1000_put_hw_semaphore_82574(hw); break; default: + panic("unknown mac type %x\n", hw->mac.type); break; } Modified: head/sys/dev/e1000/e1000_82575.c ============================================================================== --- head/sys/dev/e1000/e1000_82575.c Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_82575.c Tue May 8 01:39:45 2018 (r333345) @@ -80,11 +80,9 @@ static s32 e1000_valid_led_default_82575(struct e1000 static s32 e1000_write_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, u16 data); static void e1000_clear_hw_cntrs_82575(struct e1000_hw *hw); -static s32 e1000_acquire_swfw_sync_82575(struct e1000_hw *hw, u16 mask); static s32 e1000_get_pcs_speed_and_duplex_82575(struct e1000_hw *hw, u16 *speed, u16 *duplex); static s32 e1000_get_phy_id_82575(struct e1000_hw *hw); -static void e1000_release_swfw_sync_82575(struct e1000_hw *hw, u16 mask); static bool e1000_sgmii_active_82575(struct e1000_hw *hw); static s32 e1000_reset_init_script_82575(struct e1000_hw *hw); static s32 e1000_read_mac_addr_82575(struct e1000_hw *hw); @@ -512,12 +510,8 @@ static s32 e1000_init_mac_params_82575(struct e1000_hw /* link info */ mac->ops.get_link_up_info = e1000_get_link_up_info_82575; /* acquire SW_FW sync */ - mac->ops.acquire_swfw_sync = e1000_acquire_swfw_sync_82575; - mac->ops.release_swfw_sync = e1000_release_swfw_sync_82575; - if (mac->type >= e1000_i210) { - mac->ops.acquire_swfw_sync = e1000_acquire_swfw_sync_i210; - mac->ops.release_swfw_sync = e1000_release_swfw_sync_i210; - } + mac->ops.acquire_swfw_sync = e1000_acquire_swfw_sync; + mac->ops.release_swfw_sync = e1000_release_swfw_sync; /* set lan id for port to determine which phy lock to use */ hw->mac.ops.set_lan_id(hw); @@ -989,7 +983,7 @@ static s32 e1000_acquire_nvm_82575(struct e1000_hw *hw DEBUGFUNC("e1000_acquire_nvm_82575"); - ret_val = e1000_acquire_swfw_sync_82575(hw, E1000_SWFW_EEP_SM); + ret_val = e1000_acquire_swfw_sync(hw, E1000_SWFW_EEP_SM); if (ret_val) goto out; @@ -1020,7 +1014,7 @@ static s32 e1000_acquire_nvm_82575(struct e1000_hw *hw ret_val = e1000_acquire_nvm_generic(hw); if (ret_val) - e1000_release_swfw_sync_82575(hw, E1000_SWFW_EEP_SM); + e1000_release_swfw_sync(hw, E1000_SWFW_EEP_SM); out: return ret_val; @@ -1039,83 +1033,7 @@ static void e1000_release_nvm_82575(struct e1000_hw *h e1000_release_nvm_generic(hw); - e1000_release_swfw_sync_82575(hw, E1000_SWFW_EEP_SM); -} - -/** - * e1000_acquire_swfw_sync_82575 - Acquire SW/FW semaphore - * @hw: pointer to the HW structure - * @mask: specifies which semaphore to acquire - * - * Acquire the SW/FW semaphore to access the PHY or NVM. The mask - * will also specify which port we're acquiring the lock for. - **/ -static s32 e1000_acquire_swfw_sync_82575(struct e1000_hw *hw, u16 mask) -{ - u32 swfw_sync; - u32 swmask = mask; - u32 fwmask = mask << 16; - s32 ret_val = E1000_SUCCESS; - s32 i = 0, timeout = 200; - - DEBUGFUNC("e1000_acquire_swfw_sync_82575"); - - while (i < timeout) { - if (e1000_get_hw_semaphore_generic(hw)) { - ret_val = -E1000_ERR_SWFW_SYNC; - goto out; - } - - swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC); - if (!(swfw_sync & (fwmask | swmask))) - break; - - /* - * Firmware currently using resource (fwmask) - * or other software thread using resource (swmask) - */ - e1000_put_hw_semaphore_generic(hw); - msec_delay_irq(5); - i++; - } - - if (i == timeout) { - DEBUGOUT("Driver can't access resource, SW_FW_SYNC timeout.\n"); - ret_val = -E1000_ERR_SWFW_SYNC; - goto out; - } - - swfw_sync |= swmask; - E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync); - - e1000_put_hw_semaphore_generic(hw); - -out: - return ret_val; -} - -/** - * e1000_release_swfw_sync_82575 - Release SW/FW semaphore - * @hw: pointer to the HW structure - * @mask: specifies which semaphore to acquire - * - * Release the SW/FW semaphore used to access the PHY or NVM. The mask - * will also specify which port we're releasing the lock for. - **/ -static void e1000_release_swfw_sync_82575(struct e1000_hw *hw, u16 mask) -{ - u32 swfw_sync; - - DEBUGFUNC("e1000_release_swfw_sync_82575"); - - while (e1000_get_hw_semaphore_generic(hw) != E1000_SUCCESS) - ; /* Empty */ - - swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC); - swfw_sync &= ~mask; - E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync); - - e1000_put_hw_semaphore_generic(hw); + e1000_release_swfw_sync(hw, E1000_SWFW_EEP_SM); } /** Modified: head/sys/dev/e1000/e1000_hw.h ============================================================================== --- head/sys/dev/e1000/e1000_hw.h Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_hw.h Tue May 8 01:39:45 2018 (r333345) @@ -944,7 +944,6 @@ struct e1000_dev_spec_82543 { struct e1000_dev_spec_82571 { bool laa_is_present; u32 smb_counter; - E1000_MUTEX swflag_mutex; }; struct e1000_dev_spec_80003es2lan { @@ -968,8 +967,6 @@ enum e1000_ulp_state { struct e1000_dev_spec_ich8lan { bool kmrn_lock_loss_workaround_enabled; struct e1000_shadow_ram shadow_ram[E1000_SHADOW_RAM_WORDS]; - E1000_MUTEX nvm_mutex; - E1000_MUTEX swflag_mutex; bool nvm_k1_enabled; bool disable_k1_off; bool eee_disable; Modified: head/sys/dev/e1000/e1000_i210.c ============================================================================== --- head/sys/dev/e1000/e1000_i210.c Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_i210.c Tue May 8 01:39:45 2018 (r333345) @@ -38,7 +38,6 @@ static s32 e1000_acquire_nvm_i210(struct e1000_hw *hw); static void e1000_release_nvm_i210(struct e1000_hw *hw); -static s32 e1000_get_hw_semaphore_i210(struct e1000_hw *hw); static s32 e1000_write_nvm_srwr(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); static s32 e1000_pool_flash_update_done_i210(struct e1000_hw *hw); @@ -59,7 +58,7 @@ static s32 e1000_acquire_nvm_i210(struct e1000_hw *hw) DEBUGFUNC("e1000_acquire_nvm_i210"); - ret_val = e1000_acquire_swfw_sync_i210(hw, E1000_SWFW_EEP_SM); + ret_val = e1000_acquire_swfw_sync(hw, E1000_SWFW_EEP_SM); return ret_val; } @@ -75,152 +74,7 @@ static void e1000_release_nvm_i210(struct e1000_hw *hw { DEBUGFUNC("e1000_release_nvm_i210"); - e1000_release_swfw_sync_i210(hw, E1000_SWFW_EEP_SM); -} - -/** - * e1000_acquire_swfw_sync_i210 - Acquire SW/FW semaphore - * @hw: pointer to the HW structure - * @mask: specifies which semaphore to acquire - * - * Acquire the SW/FW semaphore to access the PHY or NVM. The mask - * will also specify which port we're acquiring the lock for. - **/ -s32 e1000_acquire_swfw_sync_i210(struct e1000_hw *hw, u16 mask) -{ - u32 swfw_sync; - u32 swmask = mask; - u32 fwmask = mask << 16; - s32 ret_val = E1000_SUCCESS; - s32 i = 0, timeout = 200; /* FIXME: find real value to use here */ - - DEBUGFUNC("e1000_acquire_swfw_sync_i210"); - - while (i < timeout) { - if (e1000_get_hw_semaphore_i210(hw)) { - ret_val = -E1000_ERR_SWFW_SYNC; - goto out; - } - - swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC); - if (!(swfw_sync & (fwmask | swmask))) - break; - - /* - * Firmware currently using resource (fwmask) - * or other software thread using resource (swmask) - */ - e1000_put_hw_semaphore_generic(hw); - msec_delay_irq(5); - i++; - } - - if (i == timeout) { - DEBUGOUT("Driver can't access resource, SW_FW_SYNC timeout.\n"); - ret_val = -E1000_ERR_SWFW_SYNC; - goto out; - } - - swfw_sync |= swmask; - E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync); - - e1000_put_hw_semaphore_generic(hw); - -out: - return ret_val; -} - -/** - * e1000_release_swfw_sync_i210 - Release SW/FW semaphore - * @hw: pointer to the HW structure - * @mask: specifies which semaphore to acquire - * - * Release the SW/FW semaphore used to access the PHY or NVM. The mask - * will also specify which port we're releasing the lock for. - **/ -void e1000_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask) -{ - u32 swfw_sync; - - DEBUGFUNC("e1000_release_swfw_sync_i210"); - - while (e1000_get_hw_semaphore_i210(hw) != E1000_SUCCESS) - ; /* Empty */ - - swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC); - swfw_sync &= ~mask; - E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync); - - e1000_put_hw_semaphore_generic(hw); -} - -/** - * e1000_get_hw_semaphore_i210 - Acquire hardware semaphore - * @hw: pointer to the HW structure - * - * Acquire the HW semaphore to access the PHY or NVM - **/ -static s32 e1000_get_hw_semaphore_i210(struct e1000_hw *hw) -{ - u32 swsm; - s32 timeout = hw->nvm.word_size + 1; - s32 i = 0; - - DEBUGFUNC("e1000_get_hw_semaphore_i210"); - - /* Get the SW semaphore */ - while (i < timeout) { - swsm = E1000_READ_REG(hw, E1000_SWSM); - if (!(swsm & E1000_SWSM_SMBI)) - break; - - usec_delay(50); - i++; - } - - if (i == timeout) { - /* In rare circumstances, the SW semaphore may already be held - * unintentionally. Clear the semaphore once before giving up. - */ - if (hw->dev_spec._82575.clear_semaphore_once) { - hw->dev_spec._82575.clear_semaphore_once = FALSE; - e1000_put_hw_semaphore_generic(hw); - for (i = 0; i < timeout; i++) { - swsm = E1000_READ_REG(hw, E1000_SWSM); - if (!(swsm & E1000_SWSM_SMBI)) - break; - - usec_delay(50); - } - } - - /* If we do not have the semaphore here, we have to give up. */ - if (i == timeout) { - DEBUGOUT("Driver can't access device - SMBI bit is set.\n"); - return -E1000_ERR_NVM; - } - } - - /* Get the FW semaphore. */ - for (i = 0; i < timeout; i++) { - swsm = E1000_READ_REG(hw, E1000_SWSM); - E1000_WRITE_REG(hw, E1000_SWSM, swsm | E1000_SWSM_SWESMBI); - - /* Semaphore acquired if bit latched */ - if (E1000_READ_REG(hw, E1000_SWSM) & E1000_SWSM_SWESMBI) - break; - - usec_delay(50); - } - - if (i == timeout) { - /* Release semaphores */ - e1000_put_hw_semaphore_generic(hw); - DEBUGOUT("Driver can't access the NVM\n"); - return -E1000_ERR_NVM; - } - - return E1000_SUCCESS; + e1000_release_swfw_sync(hw, E1000_SWFW_EEP_SM); } /** Modified: head/sys/dev/e1000/e1000_i210.h ============================================================================== --- head/sys/dev/e1000/e1000_i210.h Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_i210.h Tue May 8 01:39:45 2018 (r333345) @@ -44,8 +44,6 @@ s32 e1000_write_nvm_srwr_i210(struct e1000_hw *hw, u16 u16 words, u16 *data); s32 e1000_read_nvm_srrd_i210(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); -s32 e1000_acquire_swfw_sync_i210(struct e1000_hw *hw, u16 mask); -void e1000_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask); s32 e1000_read_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr, u16 *data); s32 e1000_write_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr, Modified: head/sys/dev/e1000/e1000_ich8lan.c ============================================================================== --- head/sys/dev/e1000/e1000_ich8lan.c Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_ich8lan.c Tue May 8 01:39:45 2018 (r333345) @@ -697,9 +697,6 @@ static s32 e1000_init_nvm_params_ich8lan(struct e1000_ dev_spec->shadow_ram[i].value = 0xFFFF; } - E1000_MUTEX_INIT(&dev_spec->nvm_mutex); - E1000_MUTEX_INIT(&dev_spec->swflag_mutex); - /* Function Pointers */ nvm->ops.acquire = e1000_acquire_nvm_ich8lan; nvm->ops.release = e1000_release_nvm_ich8lan; @@ -1852,7 +1849,7 @@ static s32 e1000_acquire_nvm_ich8lan(struct e1000_hw * { DEBUGFUNC("e1000_acquire_nvm_ich8lan"); - E1000_MUTEX_LOCK(&hw->dev_spec.ich8lan.nvm_mutex); + ASSERT_CTX_LOCK_HELD(hw); return E1000_SUCCESS; } @@ -1867,9 +1864,7 @@ static void e1000_release_nvm_ich8lan(struct e1000_hw { DEBUGFUNC("e1000_release_nvm_ich8lan"); - E1000_MUTEX_UNLOCK(&hw->dev_spec.ich8lan.nvm_mutex); - - return; + ASSERT_CTX_LOCK_HELD(hw); } /** @@ -1886,7 +1881,7 @@ static s32 e1000_acquire_swflag_ich8lan(struct e1000_h DEBUGFUNC("e1000_acquire_swflag_ich8lan"); - E1000_MUTEX_LOCK(&hw->dev_spec.ich8lan.swflag_mutex); + ASSERT_CTX_LOCK_HELD(hw); while (timeout) { extcnf_ctrl = E1000_READ_REG(hw, E1000_EXTCNF_CTRL); @@ -1927,9 +1922,6 @@ static s32 e1000_acquire_swflag_ich8lan(struct e1000_h } out: - if (ret_val) - E1000_MUTEX_UNLOCK(&hw->dev_spec.ich8lan.swflag_mutex); - return ret_val; } @@ -1954,10 +1946,6 @@ static void e1000_release_swflag_ich8lan(struct e1000_ } else { DEBUGOUT("Semaphore unexpectedly released by sw/fw/hw\n"); } - - E1000_MUTEX_UNLOCK(&hw->dev_spec.ich8lan.swflag_mutex); - - return; } /** @@ -5032,8 +5020,6 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) E1000_WRITE_REG(hw, E1000_FEXTNVM3, reg); } - if (!ret_val) - E1000_MUTEX_UNLOCK(&hw->dev_spec.ich8lan.swflag_mutex); if (ctrl & E1000_CTRL_PHY_RST) { ret_val = hw->phy.ops.get_cfg_done(hw); Modified: head/sys/dev/e1000/e1000_mac.c ============================================================================== --- head/sys/dev/e1000/e1000_mac.c Mon May 7 23:36:16 2018 (r333344) +++ head/sys/dev/e1000/e1000_mac.c Tue May 8 01:39:45 2018 (r333345) @@ -1708,76 +1708,6 @@ s32 e1000_get_speed_and_duplex_fiber_serdes_generic(st } /** - * e1000_get_hw_semaphore_generic - Acquire hardware semaphore - * @hw: pointer to the HW structure - * - * Acquire the HW semaphore to access the PHY or NVM - **/ -s32 e1000_get_hw_semaphore_generic(struct e1000_hw *hw) -{ - u32 swsm; - s32 timeout = hw->nvm.word_size + 1; - s32 i = 0; - - DEBUGFUNC("e1000_get_hw_semaphore_generic"); - - /* Get the SW semaphore */ - while (i < timeout) { - swsm = E1000_READ_REG(hw, E1000_SWSM); - if (!(swsm & E1000_SWSM_SMBI)) - break; - - usec_delay(50); - i++; - } - - if (i == timeout) { - DEBUGOUT("Driver can't access device - SMBI bit is set.\n"); - return -E1000_ERR_NVM; - } - - /* Get the FW semaphore. */ - for (i = 0; i < timeout; i++) { - swsm = E1000_READ_REG(hw, E1000_SWSM); - E1000_WRITE_REG(hw, E1000_SWSM, swsm | E1000_SWSM_SWESMBI); - - /* Semaphore acquired if bit latched */ - if (E1000_READ_REG(hw, E1000_SWSM) & E1000_SWSM_SWESMBI) - break; - - usec_delay(50); - } - - if (i == timeout) { - /* Release semaphores */ - e1000_put_hw_semaphore_generic(hw); - DEBUGOUT("Driver can't access the NVM\n"); - return -E1000_ERR_NVM; - } - - return E1000_SUCCESS; -} - -/** - * e1000_put_hw_semaphore_generic - Release hardware semaphore - * @hw: pointer to the HW structure - * - * Release hardware semaphore used to access the PHY or NVM - **/ -void e1000_put_hw_semaphore_generic(struct e1000_hw *hw) -{ - u32 swsm; - - DEBUGFUNC("e1000_put_hw_semaphore_generic"); - - swsm = E1000_READ_REG(hw, E1000_SWSM); - - swsm &= ~(E1000_SWSM_SMBI | E1000_SWSM_SWESMBI); - - E1000_WRITE_REG(hw, E1000_SWSM, swsm); -} - -/** * e1000_get_auto_rd_done_generic - Check for auto read completion * @hw: pointer to the HW structure * @@ -2252,3 +2182,186 @@ s32 e1000_write_8bit_ctrl_reg_generic(struct e1000_hw return E1000_SUCCESS; } + +/** + * e1000_get_hw_semaphore - Acquire hardware semaphore + * @hw: pointer to the HW structure + * + * Acquire the HW semaphore to access the PHY or NVM + **/ +s32 e1000_get_hw_semaphore(struct e1000_hw *hw) +{ + u32 swsm; + s32 timeout = hw->nvm.word_size + 1; + s32 i = 0; + + DEBUGFUNC("e1000_get_hw_semaphore"); +#ifdef notyet + /* _82571 */ + /* If we have timedout 3 times on trying to acquire + * the inter-port SMBI semaphore, there is old code + * operating on the other port, and it is not + * releasing SMBI. Modify the number of times that + * we try for the semaphore to interwork with this + * older code. + */ + if (hw->dev_spec._82571.smb_counter > 2) + sw_timeout = 1; + +#endif + /* Get the SW semaphore */ + while (i < timeout) { + swsm = E1000_READ_REG(hw, E1000_SWSM); + if (!(swsm & E1000_SWSM_SMBI)) + break; + + usec_delay(50); + i++; + } + + if (i == timeout) { +#ifdef notyet + /* + * XXX This sounds more like a driver bug whereby we either + * recursed accidentally or missed clearing it previously + */ + /* In rare circumstances, the SW semaphore may already be held + * unintentionally. Clear the semaphore once before giving up. + */ + if (hw->dev_spec._82575.clear_semaphore_once) { + hw->dev_spec._82575.clear_semaphore_once = FALSE; + e1000_put_hw_semaphore_generic(hw); + for (i = 0; i < timeout; i++) { + swsm = E1000_READ_REG(hw, E1000_SWSM); + if (!(swsm & E1000_SWSM_SMBI)) + break; + + usec_delay(50); + } + } +#endif + + DEBUGOUT("Driver can't access device - SMBI bit is set.\n"); + return -E1000_ERR_NVM; + } + + /* Get the FW semaphore. */ + for (i = 0; i < timeout; i++) { + swsm = E1000_READ_REG(hw, E1000_SWSM); + E1000_WRITE_REG(hw, E1000_SWSM, swsm | E1000_SWSM_SWESMBI); + + /* Semaphore acquired if bit latched */ + if (E1000_READ_REG(hw, E1000_SWSM) & E1000_SWSM_SWESMBI) + break; + + usec_delay(50); + } + + if (i == timeout) { + /* Release semaphores */ + e1000_put_hw_semaphore(hw); + DEBUGOUT("Driver can't access the NVM\n"); + return -E1000_ERR_NVM; + } + + return E1000_SUCCESS; +} + +/** + * e1000_put_hw_semaphore - Release hardware semaphore *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue May 8 02:16:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7030DFC7C9A; Tue, 8 May 2018 02:16:02 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id 09CB177A21; Tue, 8 May 2018 02:16:01 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id C14F73CD483; Tue, 8 May 2018 12:15:52 +1000 (AEST) Date: Tue, 8 May 2018 12:15:52 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mateusz Guzik cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333344 - in head/sys: kern sys In-Reply-To: <201805072336.w47NaGXH001864@repo.freebsd.org> Message-ID: <20180508113755.S1350@besplex.bde.org> References: <201805072336.w47NaGXH001864@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=FNpr/6gs c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=IPsf2WS5RCN7Jz4q2tIA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 02:16:02 -0000 On Mon, 7 May 2018, Mateusz Guzik wrote: > Log: > Inlined sched_userret. > > The tested condition is rarely true and it induces a function call > on each return to userspace. > > Bumps getuid rate by about 1% on Broadwell. > ... > Modified: head/sys/kern/sched_4bsd.c > ============================================================================== > --- head/sys/kern/sched_4bsd.c Mon May 7 23:23:11 2018 (r333343) > +++ head/sys/kern/sched_4bsd.c Mon May 7 23:36:16 2018 (r333344) > @@ -1481,25 +1481,13 @@ sched_preempt(struct thread *td) > } > > void > -sched_userret(struct thread *td) > +sched_userret_slowpath(struct thread *td) > { > - /* > - * XXX we cheat slightly on the locking here to avoid locking in > - * the usual case. Setting td_priority here is essentially an > - * incomplete workaround for not setting it properly elsewhere. > - * Now that some interrupt handlers are threads, not setting it > - * properly elsewhere can clobber it in the window between setting > - * it here and returning to user mode, so don't waste time setting > - * it perfectly here. > - */ This moves the comment to where it mostly doesn't apply. It was already slightly rotted. > - KASSERT((td->td_flags & TDF_BORROWING) == 0, > - ("thread with borrowed priority returning to userland")); > - if (td->td_priority != td->td_user_pri) { The first sentence in the comment applies to not locking for this test. I wonder if there is a larger problem with the newer TDF_BORROWING test. > - thread_lock(td); > - td->td_priority = td->td_user_pri; > - td->td_base_pri = td->td_user_pri; > - thread_unlock(td); > - } > + > + thread_lock(td); > + td->td_priority = td->td_user_pri; > + td->td_base_pri = td->td_user_pri; > + thread_unlock(td); > } No cheating here. The comment should have started a new paragraph (or be split up) for this part. > ... > Modified: head/sys/sys/sched.h > ... > +static inline void > +sched_userret(struct thread *td) > +{ > + > + /* > + * XXX we cheat slightly on the locking here to avoid locking in > + * the usual case. Setting td_priority here is essentially an > + * incomplete workaround for not setting it properly elsewhere. > + * Now that some interrupt handlers are threads, not setting it > + * properly elsewhere can clobber it in the window between setting > + * it here and returning to user mode, so don't waste time setting > + * it perfectly here. > + */ > + KASSERT((td->td_flags & TDF_BORROWING) == 0, > + ("thread with borrowed priority returning to userland")); > + if (__predict_false(td->td_priority != td->td_user_pri)) > + sched_userret_slowpath(td); > +} Only the first sentence in the comment applies here. I don't like the __predict_false() obfuscation. It is especially useless here, since we have manually moved the slow path to a function, so all the compiler can do is change the sense of a branch and it should get that right anyway. I have used the following more hackish optimization for this for 20-25 years, in i386/trap.c up to FreeBSD-~5.2 only: #define userret(td, framep, sticks) do \ XX if ((td)->td_proc->p_flag & P_PROFIL) \ XX (userret)((td), (framep), (sticks)); \ XX else \ XX (td)->td_priority = (td)->td_ksegrp->kg_user_pri; \ XX while (0) The whole sched_userret() API is fairly pessimal. sched_userret() is the same for SCHED_ULE as for SCHED_4BSD except for 1 more statement in the former. Apart from that, scheduler layering is not needed for this function. The layering is currently: syscall return -> userret() -> sched_userret() with the last call now optimized to a tail call, and much more overhead than the P_PROFIL test in userret() (but "only" 21 instructions with lots of branches before the tail call). Doing the tail call depends on RACCT and some other options not being configured. The P_PROFIL check was moved earlier, perhaps to allow the tail call, but doing RACCT later defeats this. Anyway, it makes most sense to check the priorities last. RACCT sleeps after checking the priorities, so they could change a lot. Bruce From owner-svn-src-head@freebsd.org Tue May 8 02:22:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1DF6FC855A; Tue, 8 May 2018 02:22:35 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 704477A655; Tue, 8 May 2018 02:22:35 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6B37E23EED; Tue, 8 May 2018 02:22:35 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w482MZuq087236; Tue, 8 May 2018 02:22:35 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w482MYiX087233; Tue, 8 May 2018 02:22:34 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805080222.w482MYiX087233@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Tue, 8 May 2018 02:22:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333346 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 333346 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 02:22:36 -0000 Author: mmacy Date: Tue May 8 02:22:34 2018 New Revision: 333346 URL: https://svnweb.freebsd.org/changeset/base/333346 Log: Fix spurious retransmit recovery on low latency networks TCP's smoothed RTT (SRTT) can be much larger than an actual observed RTT. This can be either because of hz restricting the calculable RTT to 10ms in VMs or 1ms using the default 1000hz or simply because SRTT recently incorporated a larger value. If an ACK arrives before the calculated badrxtwin (now + SRTT): tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); We'll erroneously reset snd_una to snd_max. If multiple segments were dropped and this happens repeatedly the transmit rate will be limited to 1MSS per RTO until we've retransmitted all drops. Reported by: rstone Reviewed by: hiren, transport Approved by: sbruno MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D8556 Modified: head/sys/netinet/tcp_input.c head/sys/netinet/tcp_output.c head/sys/netinet/tcp_timer.c Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Tue May 8 01:39:45 2018 (r333345) +++ head/sys/netinet/tcp_input.c Tue May 8 02:22:34 2018 (r333346) @@ -1682,6 +1682,9 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru to.to_tsecr -= tp->ts_offset; if (TSTMP_GT(to.to_tsecr, tcp_ts_getticks())) to.to_tsecr = 0; + else if (tp->t_flags & TF_PREVVALID && + tp->t_badrxtwin != 0 && SEQ_LT(to.to_tsecr, tp->t_badrxtwin)) + cc_cong_signal(tp, th, CC_RTO_ERR); } /* * Process options only when we get SYN/ACK back. The SYN case @@ -1794,9 +1797,10 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru TCPSTAT_INC(tcps_predack); /* - * "bad retransmit" recovery. + * "bad retransmit" recovery without timestamps. */ - if (tp->t_rxtshift == 1 && + if ((to.to_flags & TOF_TS) == 0 && + tp->t_rxtshift == 1 && tp->t_flags & TF_PREVVALID && (int)(ticks - tp->t_badrxtwin) < 0) { cc_cong_signal(tp, th, CC_RTO_ERR); @@ -2787,8 +2791,10 @@ process_ACK: * original cwnd and ssthresh, and proceed to transmit where * we left off. */ - if (tp->t_rxtshift == 1 && tp->t_flags & TF_PREVVALID && - (int)(ticks - tp->t_badrxtwin) < 0) + if (tp->t_rxtshift == 1 && + tp->t_flags & TF_PREVVALID && + tp->t_badrxtwin && + SEQ_LT(to.to_tsecr, tp->t_badrxtwin)) cc_cong_signal(tp, th, CC_RTO_ERR); /* Modified: head/sys/netinet/tcp_output.c ============================================================================== --- head/sys/netinet/tcp_output.c Tue May 8 01:39:45 2018 (r333345) +++ head/sys/netinet/tcp_output.c Tue May 8 02:22:34 2018 (r333346) @@ -206,7 +206,7 @@ tcp_output(struct tcpcb *tp) #if defined(IPSEC) || defined(IPSEC_SUPPORT) unsigned ipsec_optlen = 0; #endif - int idle, sendalot; + int idle, sendalot, curticks; int sack_rxmit, sack_bytes_rxmt; struct sackhole *p; int tso, mtu; @@ -808,9 +808,12 @@ send: /* Timestamps. */ if ((tp->t_flags & TF_RCVD_TSTMP) || ((flags & TH_SYN) && (tp->t_flags & TF_REQ_TSTMP))) { - to.to_tsval = tcp_ts_getticks() + tp->ts_offset; + curticks = tcp_ts_getticks(); + to.to_tsval = curticks + tp->ts_offset; to.to_tsecr = tp->ts_recent; to.to_flags |= TOF_TS; + if (tp->t_rxtshift == 1) + tp->t_badrxtwin = curticks; } /* Set receive buffer autosizing timestamp. */ Modified: head/sys/netinet/tcp_timer.c ============================================================================== --- head/sys/netinet/tcp_timer.c Tue May 8 01:39:45 2018 (r333345) +++ head/sys/netinet/tcp_timer.c Tue May 8 02:22:34 2018 (r333346) @@ -693,7 +693,12 @@ tcp_timer_rexmt(void * xtp) tp->t_flags |= TF_WASCRECOVERY; else tp->t_flags &= ~TF_WASCRECOVERY; - tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); + if ((tp->t_flags & TF_RCVD_TSTMP) == 0) + tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); + /* In the event that we've negotiated timestamps + * badrxtwin will be set to the value that we set + * the retransmitted packet's to_tsval to by tcp_output + */ tp->t_flags |= TF_PREVVALID; } else tp->t_flags &= ~TF_PREVVALID; From owner-svn-src-head@freebsd.org Tue May 8 03:00:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CAA86FC9BF9; Tue, 8 May 2018 03:00:02 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 1B8F4837D5; Tue, 8 May 2018 03:00:01 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w482xxh0058850; Mon, 7 May 2018 19:59:59 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w482xxrO058849; Mon, 7 May 2018 19:59:59 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805080259.w482xxrO058849@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333346 - head/sys/netinet In-Reply-To: <201805080222.w482MYiX087233@repo.freebsd.org> To: Matt Macy Date: Mon, 7 May 2018 19:59:59 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 03:00:03 -0000 > Author: mmacy > Date: Tue May 8 02:22:34 2018 > New Revision: 333346 > URL: https://svnweb.freebsd.org/changeset/base/333346 > > Log: > Fix spurious retransmit recovery on low latency networks Your commit message quality is defanitly much much better!! Just one little nit... > > TCP's smoothed RTT (SRTT) can be much larger than an actual observed RTT. This can be either because of hz restricting the calculable RTT to 10ms in VMs or 1ms using the default 1000hz or simply because SRTT recently incorporated a larger value. Can you wrap lines at 80 characters please. Thanks, > If an ACK arrives before the calculated badrxtwin (now + SRTT): > tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); > > We'll erroneously reset snd_una to snd_max. If multiple segments were dropped and this happens repeatedly the transmit rate will be limited to 1MSS per RTO until we've retransmitted all drops. > > Reported by: rstone > Reviewed by: hiren, transport > Approved by: sbruno > MFC after: 1 month > Differential Revision: https://reviews.freebsd.org/D8556 > > Modified: > head/sys/netinet/tcp_input.c > head/sys/netinet/tcp_output.c > head/sys/netinet/tcp_timer.c > > Modified: head/sys/netinet/tcp_input.c > ============================================================================== > --- head/sys/netinet/tcp_input.c Tue May 8 01:39:45 2018 (r333345) > +++ head/sys/netinet/tcp_input.c Tue May 8 02:22:34 2018 (r333346) > @@ -1682,6 +1682,9 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru > to.to_tsecr -= tp->ts_offset; > if (TSTMP_GT(to.to_tsecr, tcp_ts_getticks())) > to.to_tsecr = 0; > + else if (tp->t_flags & TF_PREVVALID && > + tp->t_badrxtwin != 0 && SEQ_LT(to.to_tsecr, tp->t_badrxtwin)) > + cc_cong_signal(tp, th, CC_RTO_ERR); > } > /* > * Process options only when we get SYN/ACK back. The SYN case > @@ -1794,9 +1797,10 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru > TCPSTAT_INC(tcps_predack); > > /* > - * "bad retransmit" recovery. > + * "bad retransmit" recovery without timestamps. > */ > - if (tp->t_rxtshift == 1 && > + if ((to.to_flags & TOF_TS) == 0 && > + tp->t_rxtshift == 1 && > tp->t_flags & TF_PREVVALID && > (int)(ticks - tp->t_badrxtwin) < 0) { > cc_cong_signal(tp, th, CC_RTO_ERR); > @@ -2787,8 +2791,10 @@ process_ACK: > * original cwnd and ssthresh, and proceed to transmit where > * we left off. > */ > - if (tp->t_rxtshift == 1 && tp->t_flags & TF_PREVVALID && > - (int)(ticks - tp->t_badrxtwin) < 0) > + if (tp->t_rxtshift == 1 && > + tp->t_flags & TF_PREVVALID && > + tp->t_badrxtwin && > + SEQ_LT(to.to_tsecr, tp->t_badrxtwin)) > cc_cong_signal(tp, th, CC_RTO_ERR); > > /* > > Modified: head/sys/netinet/tcp_output.c > ============================================================================== > --- head/sys/netinet/tcp_output.c Tue May 8 01:39:45 2018 (r333345) > +++ head/sys/netinet/tcp_output.c Tue May 8 02:22:34 2018 (r333346) > @@ -206,7 +206,7 @@ tcp_output(struct tcpcb *tp) > #if defined(IPSEC) || defined(IPSEC_SUPPORT) > unsigned ipsec_optlen = 0; > #endif > - int idle, sendalot; > + int idle, sendalot, curticks; > int sack_rxmit, sack_bytes_rxmt; > struct sackhole *p; > int tso, mtu; > @@ -808,9 +808,12 @@ send: > /* Timestamps. */ > if ((tp->t_flags & TF_RCVD_TSTMP) || > ((flags & TH_SYN) && (tp->t_flags & TF_REQ_TSTMP))) { > - to.to_tsval = tcp_ts_getticks() + tp->ts_offset; > + curticks = tcp_ts_getticks(); > + to.to_tsval = curticks + tp->ts_offset; > to.to_tsecr = tp->ts_recent; > to.to_flags |= TOF_TS; > + if (tp->t_rxtshift == 1) > + tp->t_badrxtwin = curticks; > } > > /* Set receive buffer autosizing timestamp. */ > > Modified: head/sys/netinet/tcp_timer.c > ============================================================================== > --- head/sys/netinet/tcp_timer.c Tue May 8 01:39:45 2018 (r333345) > +++ head/sys/netinet/tcp_timer.c Tue May 8 02:22:34 2018 (r333346) > @@ -693,7 +693,12 @@ tcp_timer_rexmt(void * xtp) > tp->t_flags |= TF_WASCRECOVERY; > else > tp->t_flags &= ~TF_WASCRECOVERY; > - tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); > + if ((tp->t_flags & TF_RCVD_TSTMP) == 0) > + tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); > + /* In the event that we've negotiated timestamps > + * badrxtwin will be set to the value that we set > + * the retransmitted packet's to_tsval to by tcp_output > + */ > tp->t_flags |= TF_PREVVALID; > } else > tp->t_flags &= ~TF_PREVVALID; > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Tue May 8 03:53:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB0C7FCC3B3; Tue, 8 May 2018 03:53:47 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6976F6FF70; Tue, 8 May 2018 03:53:47 +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 6454324F1C; Tue, 8 May 2018 03:53:47 +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 w483rlDB033543; Tue, 8 May 2018 03:53:47 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w483rlde033542; Tue, 8 May 2018 03:53:47 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201805080353.w483rlde033542@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 8 May 2018 03:53:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333351 - head/usr.bin/grep X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.bin/grep X-SVN-Commit-Revision: 333351 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 03:53:48 -0000 Author: kevans Date: Tue May 8 03:53:46 2018 New Revision: 333351 URL: https://svnweb.freebsd.org/changeset/base/333351 Log: bsdgrep: Allow "-" to be passed to -f to mean "standard input" A version of this patch was originally sent to me by se@, matching behavior from newer versions of GNU grep. While there have been some differences of opinion on whether stdin should be closed or not after depleting it in process of -f, I've opted to leave stdin open and just let the later matching stuff fail and result in a no-match. I'm not married to the current behavior- it was generally chosen since we are adopting this in particular from GNU grep, and I would like to stay consistent without a strong argument to the contrary. The current behavior isn't technically wrong, it's just fairly unfriendly to the developer-user of grep that may not realize their usage is trivially invalid. Submitted by: se Modified: head/usr.bin/grep/grep.1 head/usr.bin/grep/grep.c Modified: head/usr.bin/grep/grep.1 ============================================================================== --- head/usr.bin/grep/grep.1 Tue May 8 03:52:26 2018 (r333350) +++ head/usr.bin/grep/grep.1 Tue May 8 03:53:46 2018 (r333351) @@ -30,7 +30,7 @@ .\" .\" @(#)grep.1 8.3 (Berkeley) 4/18/94 .\" -.Dd April 25, 2018 +.Dd May 7, 2018 .Dt GREP 1 .Os .Sh NAME @@ -404,6 +404,13 @@ and block buffered otherwise. .El .Pp If no file arguments are specified, the standard input is used. +Additionally, +.Dq - +may be used in place of a file name, anywhere that a file name is accepted, to +read from standard input. +This includes both +.Fl f +and file arguments. .Sh EXIT STATUS The .Nm grep Modified: head/usr.bin/grep/grep.c ============================================================================== --- head/usr.bin/grep/grep.c Tue May 8 03:52:26 2018 (r333350) +++ head/usr.bin/grep/grep.c Tue May 8 03:53:46 2018 (r333351) @@ -307,7 +307,9 @@ read_patterns(const char *fn) size_t len; ssize_t rlen; - if ((f = fopen(fn, "r")) == NULL) + if (strcmp(fn, "-") == 0) + f = stdin; + else if ((f = fopen(fn, "r")) == NULL) err(2, "%s", fn); if ((fstat(fileno(f), &st) == -1) || (S_ISDIR(st.st_mode))) { fclose(f); @@ -324,7 +326,8 @@ read_patterns(const char *fn) free(line); if (ferror(f)) err(2, "%s", fn); - fclose(f); + if (strcmp(fn, "-") != 0) + fclose(f); } static inline const char * From owner-svn-src-head@freebsd.org Tue May 8 04:51:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99CC1FCDF44; Tue, 8 May 2018 04:51:17 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4A8E87E3D3; Tue, 8 May 2018 04:51:17 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 42C7E258EE; Tue, 8 May 2018 04:51:17 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w484pHEE060736; Tue, 8 May 2018 04:51:17 GMT (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w484pFC6060730; Tue, 8 May 2018 04:51:15 GMT (envelope-from peter@FreeBSD.org) Message-Id: <201805080451.w484pFC6060730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: peter set sender to peter@FreeBSD.org using -f From: Peter Wemm Date: Tue, 8 May 2018 04:51:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333352 - in head/contrib/sqlite3: . tea X-SVN-Group: head X-SVN-Commit-Author: peter X-SVN-Commit-Paths: in head/contrib/sqlite3: . tea X-SVN-Commit-Revision: 333352 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 04:51:18 -0000 Author: peter Date: Tue May 8 04:51:15 2018 New Revision: 333352 URL: https://svnweb.freebsd.org/changeset/base/333352 Log: Update private sqlite from sqlite3-3.20.0 to sqlite3-3.23.1 Deleted: head/contrib/sqlite3/tea/ Modified: head/contrib/sqlite3/Makefile.am head/contrib/sqlite3/Makefile.in head/contrib/sqlite3/Makefile.msc head/contrib/sqlite3/configure head/contrib/sqlite3/configure.ac head/contrib/sqlite3/shell.c head/contrib/sqlite3/sqlite3.c head/contrib/sqlite3/sqlite3.h head/contrib/sqlite3/sqlite3ext.h Directory Properties: head/contrib/sqlite3/ (props changed) Modified: head/contrib/sqlite3/Makefile.am ============================================================================== --- head/contrib/sqlite3/Makefile.am Tue May 8 03:53:46 2018 (r333351) +++ head/contrib/sqlite3/Makefile.am Tue May 8 04:51:15 2018 (r333352) @@ -1,5 +1,5 @@ -AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE +AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @ZLIB_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c @@ -10,7 +10,7 @@ sqlite3_SOURCES = shell.c sqlite3.h EXTRA_sqlite3_SOURCES = sqlite3.c sqlite3_LDADD = @EXTRA_SHELL_OBJ@ @READLINE_LIBS@ sqlite3_DEPENDENCIES = @EXTRA_SHELL_OBJ@ -sqlite3_CFLAGS = $(AM_CFLAGS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS +sqlite3_CFLAGS = $(AM_CFLAGS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_ENABLE_STMTVTAB -DSQLITE_ENABLE_DBSTAT_VTAB $(SHELL_CFLAGS) include_HEADERS = sqlite3.h sqlite3ext.h Modified: head/contrib/sqlite3/Makefile.in ============================================================================== --- head/contrib/sqlite3/Makefile.in Tue May 8 03:53:46 2018 (r333351) +++ head/contrib/sqlite3/Makefile.in Tue May 8 04:51:15 2018 (r333352) @@ -308,9 +308,11 @@ SED = @SED@ SESSION_FLAGS = @SESSION_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SHELL_CFLAGS = @SHELL_CFLAGS@ STRIP = @STRIP@ THREADSAFE_FLAGS = @THREADSAFE_FLAGS@ VERSION = @VERSION@ +ZLIB_FLAGS = @ZLIB_FLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -363,7 +365,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE +AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @ZLIB_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8 @@ -371,7 +373,7 @@ sqlite3_SOURCES = shell.c sqlite3.h EXTRA_sqlite3_SOURCES = sqlite3.c sqlite3_LDADD = @EXTRA_SHELL_OBJ@ @READLINE_LIBS@ sqlite3_DEPENDENCIES = @EXTRA_SHELL_OBJ@ -sqlite3_CFLAGS = $(AM_CFLAGS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS +sqlite3_CFLAGS = $(AM_CFLAGS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_ENABLE_STMTVTAB -DSQLITE_ENABLE_DBSTAT_VTAB $(SHELL_CFLAGS) include_HEADERS = sqlite3.h sqlite3ext.h EXTRA_DIST = sqlite3.1 tea Makefile.msc sqlite3.rc README.txt Replace.cs pkgconfigdir = ${libdir}/pkgconfig Modified: head/contrib/sqlite3/Makefile.msc ============================================================================== --- head/contrib/sqlite3/Makefile.msc Tue May 8 03:53:46 2018 (r333351) +++ head/contrib/sqlite3/Makefile.msc Tue May 8 04:51:15 2018 (r333352) @@ -561,6 +561,7 @@ SHELL_CORE_DEP = !ENDIF !ENDIF + # This is the core library that the shell executable should link with. # !IFNDEF SHELL_CORE_LIB @@ -808,7 +809,7 @@ LTLINK = $(TCC) -Fe$@ # If requested, link to the RPCRT4 library. # !IF $(USE_RPCRT4_LIB)!=0 -LTLINK = $(LTLINK) rpcrt4.lib +LTLIBS = $(LTLIBS) rpcrt4.lib !ENDIF # If a platform was set, force the linker to target that. @@ -927,15 +928,26 @@ LIBRESOBJS = # when the shell is not being dynamically linked. # !IF $(DYNAMIC_SHELL)==0 && $(FOR_WIN10)==0 -SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_SHELL_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_STMTVTAB +SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_STMTVTAB +SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_ENABLE_DBSTAT_VTAB +SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_INTROSPECTION_PRAGMAS +SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_RTREE !ENDIF # This is the default Makefile target. The objects listed here # are what get build when you type just "make" with no arguments. # -all: dll shell +core: dll shell +# Targets that require the Tcl library. +# +tcl: $(ALL_TCL_TARGETS) + +# This Makefile target builds all of the standard binaries. +# +all: core tcl + # Dynamic link library section. # dll: $(SQLITE3DLL) @@ -957,8 +969,8 @@ sqlite3.def: Replace.exe $(LIBOBJ) | .\Replace.exe "^\s+/EXPORT:_?(sqlite3(?:session|changeset|changegroup)?_[^@,]*)(?:@\d+|,DATA)?$$" $$1 true \ | sort >> sqlite3.def -$(SQLITE3EXE): $(TOP)\shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLITE3H) - $(LTLINK) $(SHELL_COMPILE_OPTS) $(READLINE_FLAGS) $(TOP)\shell.c $(SHELL_CORE_SRC) \ +$(SQLITE3EXE): shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLITE3H) + $(LTLINK) $(SHELL_COMPILE_OPTS) $(READLINE_FLAGS) shell.c $(SHELL_CORE_SRC) \ /link $(SQLITE3EXEPDB) $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS) @@ -973,7 +985,7 @@ sqlite3.lo: $(SQLITE3C) !IF $(USE_RC)!=0 _HASHCHAR=^# !IF ![echo !IFNDEF VERSION > rcver.vc] && \ - ![for /F "delims=" %V in ('type "$(SQLITE3H)" ^| find "$(_HASHCHAR)define SQLITE_VERSION "') do (echo VERSION = ^^%V >> rcver.vc)] && \ + ![for /F "delims=" %V in ('type "$(SQLITE3H)" ^| "%SystemRoot%\System32\find.exe" "$(_HASHCHAR)define SQLITE_VERSION "') do (echo VERSION = ^^%V >> rcver.vc)] && \ ![echo !ENDIF >> rcver.vc] !INCLUDE rcver.vc !ENDIF Modified: head/contrib/sqlite3/configure ============================================================================== --- head/contrib/sqlite3/configure Tue May 8 03:53:46 2018 (r333351) +++ head/contrib/sqlite3/configure Tue May 8 04:51:15 2018 (r333352) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for sqlite 3.20.0. +# Generated by GNU Autoconf 2.69 for sqlite 3.23.1. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.20.0' -PACKAGE_STRING='sqlite 3.20.0' +PACKAGE_VERSION='3.23.1' +PACKAGE_STRING='sqlite 3.23.1' PACKAGE_BUGREPORT='http://www.sqlite.org' PACKAGE_URL='' @@ -636,6 +636,8 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +SHELL_CFLAGS +ZLIB_FLAGS EXTRA_SHELL_OBJ SESSION_FLAGS JSON1_FLAGS @@ -1330,7 +1332,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.20.0 to adapt to many kinds of systems. +\`configure' configures sqlite 3.23.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1400,7 +1402,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.20.0:";; + short | recursive ) echo "Configuration of sqlite 3.23.1:";; esac cat <<\_ACEOF @@ -1521,7 +1523,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.20.0 +sqlite configure 3.23.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1936,7 +1938,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.20.0, which was +It was created by sqlite $as_me 3.23.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2285,12 +2287,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - -# Use automake. -am__api_version='1.15' - ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do +for ac_dir in . "$srcdir"/.; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" @@ -2306,7 +2304,7 @@ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; fi done if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in . \"$srcdir\"/." "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2318,6 +2316,10 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Pleas ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + +# Use automake. +am__api_version='1.15' + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -2802,7 +2804,7 @@ fi # Define the identity of the package. PACKAGE='sqlite' - VERSION='3.20.0' + VERSION='3.23.1' cat >>confdefs.h <<_ACEOF @@ -13631,7 +13633,137 @@ _ACEOF fi done +for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char deflate (); +int +main () +{ +return deflate (); + ; + return 0; +} +_ACEOF +for ac_lib in '' z; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_deflate=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_deflate+:} false; then : + break +fi +done +if ${ac_cv_search_deflate+:} false; then : + +else + ac_cv_search_deflate=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + ZLIB_FLAGS="-DSQLITE_HAVE_ZLIB" +fi + + +fi + +done + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing system" >&5 +$as_echo_n "checking for library containing system... " >&6; } +if ${ac_cv_search_system+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char system (); +int +main () +{ +return system (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_system=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_system+:} false; then : + break +fi +done +if ${ac_cv_search_system+:} false; then : + +else + ac_cv_search_system=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_system" >&5 +$as_echo "$ac_cv_search_system" >&6; } +ac_res=$ac_cv_search_system +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + SHELL_CFLAGS="-DSQLITE_NOHAVE_SYSTEM" +fi + + + #----------------------------------------------------------------------- # UPDATE: Maybe it's better if users just set CFLAGS before invoking # configure. This option doesn't really add much... @@ -14227,7 +14359,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.20.0, which was +This file was extended by sqlite $as_me 3.23.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14284,7 +14416,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sqlite config.status 3.20.0 +sqlite config.status 3.23.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/sqlite3/configure.ac ============================================================================== --- head/contrib/sqlite3/configure.ac Tue May 8 03:53:46 2018 (r333351) +++ head/contrib/sqlite3/configure.ac Tue May 8 04:51:15 2018 (r333352) @@ -10,8 +10,9 @@ # AC_PREREQ(2.61) -AC_INIT(sqlite, 3.20.0, http://www.sqlite.org) +AC_INIT(sqlite, 3.23.1, http://www.sqlite.org) AC_CONFIG_SRCDIR([sqlite3.c]) +AC_CONFIG_AUX_DIR([.]) # Use automake. AM_INIT_AUTOMAKE([foreign]) @@ -163,6 +164,13 @@ AC_SUBST(EXTRA_SHELL_OBJ) #----------------------------------------------------------------------- AC_CHECK_FUNCS(posix_fallocate) +AC_CHECK_HEADERS(zlib.h,[ + AC_SEARCH_LIBS(deflate,z,[ZLIB_FLAGS="-DSQLITE_HAVE_ZLIB"]) +]) +AC_SUBST(ZLIB_FLAGS) + +AC_SEARCH_LIBS(system,,,[SHELL_CFLAGS="-DSQLITE_NOHAVE_SYSTEM"]) +AC_SUBST(SHELL_CFLAGS) #----------------------------------------------------------------------- # UPDATE: Maybe it's better if users just set CFLAGS before invoking Modified: head/contrib/sqlite3/shell.c ============================================================================== --- head/contrib/sqlite3/shell.c Tue May 8 03:53:46 2018 (r333351) +++ head/contrib/sqlite3/shell.c Tue May 8 04:51:15 2018 (r333352) @@ -79,6 +79,9 @@ #include #include #include "sqlite3.h" +typedef sqlite3_int64 i64; +typedef sqlite3_uint64 u64; +typedef unsigned char u8; #if SQLITE_USER_AUTHENTICATION # include "sqlite3userauth.h" #endif @@ -90,9 +93,19 @@ # if !defined(__RTP__) && !defined(_WRS_KERNEL) # include # endif +#endif +#if (!defined(_WIN32) && !defined(WIN32)) || defined(__MINGW32__) # include -# include +# include +# if defined(__MINGW32__) +# define DIRENT dirent +# ifndef S_ISLNK +# define S_ISLNK(mode) (0) +# endif +# endif #endif +#include +#include #if HAVE_READLINE # include @@ -137,6 +150,9 @@ # ifndef access # define access(f,m) _access((f),(m)) # endif +# ifndef unlink +# define unlink _unlink +# endif # undef popen # define popen _popen # undef pclose @@ -358,6 +374,11 @@ static void endTimer(void){ #define UNUSED_PARAMETER(x) (void)(x) /* +** Number of elements in an array +*/ +#define ArraySize(X) (int)(sizeof(X)/sizeof(X[0])) + +/* ** If the following flag is set, then command execution stops ** at an error if we are not interactive. */ @@ -629,7 +650,66 @@ static char *one_input_line(FILE *in, char *zPrior, in } return zResult; } + + /* +** Return the value of a hexadecimal digit. Return -1 if the input +** is not a hex digit. +*/ +static int hexDigitValue(char c){ + if( c>='0' && c<='9' ) return c - '0'; + if( c>='a' && c<='f' ) return c - 'a' + 10; + if( c>='A' && c<='F' ) return c - 'A' + 10; + return -1; +} + +/* +** Interpret zArg as an integer value, possibly with suffixes. +*/ +static sqlite3_int64 integerValue(const char *zArg){ + sqlite3_int64 v = 0; + static const struct { char *zSuffix; int iMult; } aMult[] = { + { "KiB", 1024 }, + { "MiB", 1024*1024 }, + { "GiB", 1024*1024*1024 }, + { "KB", 1000 }, + { "MB", 1000000 }, + { "GB", 1000000000 }, + { "K", 1000 }, + { "M", 1000000 }, + { "G", 1000000000 }, + }; + int i; + int isNeg = 0; + if( zArg[0]=='-' ){ + isNeg = 1; + zArg++; + }else if( zArg[0]=='+' ){ + zArg++; + } + if( zArg[0]=='0' && zArg[1]=='x' ){ + int x; + zArg += 2; + while( (x = hexDigitValue(zArg[0]))>=0 ){ + v = (v<<4) + x; + zArg++; + } + }else{ + while( IsDigit(zArg[0]) ){ + v = v*10 + zArg[0] - '0'; + zArg++; + } + } + for(i=0; i +#include +#include +#include +#include +#include +#include + +/* +** We may need several defines that should have been in "sys/stat.h". +*/ + +#ifndef S_ISREG +#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +#endif + +#ifndef S_ISDIR +#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +#endif + +#ifndef S_ISLNK +#define S_ISLNK(mode) (0) +#endif + +/* +** We may need to provide the "mode_t" type. +*/ + +#ifndef MODE_T_DEFINED + #define MODE_T_DEFINED + typedef unsigned short mode_t; +#endif + +/* +** We may need to provide the "ino_t" type. +*/ + +#ifndef INO_T_DEFINED + #define INO_T_DEFINED + typedef unsigned short ino_t; +#endif + +/* +** We need to define "NAME_MAX" if it was not present in "limits.h". +*/ + +#ifndef NAME_MAX +# ifdef FILENAME_MAX +# define NAME_MAX (FILENAME_MAX) +# else +# define NAME_MAX (260) +# endif +#endif + +/* +** We need to define "NULL_INTPTR_T" and "BAD_INTPTR_T". +*/ + +#ifndef NULL_INTPTR_T +# define NULL_INTPTR_T ((intptr_t)(0)) +#endif + +#ifndef BAD_INTPTR_T +# define BAD_INTPTR_T ((intptr_t)(-1)) +#endif + +/* +** We need to provide the necessary structures and related types. +*/ + +#ifndef DIRENT_DEFINED +#define DIRENT_DEFINED +typedef struct DIRENT DIRENT; +typedef DIRENT *LPDIRENT; +struct DIRENT { + ino_t d_ino; /* Sequence number, do not use. */ + unsigned d_attributes; /* Win32 file attributes. */ + char d_name[NAME_MAX + 1]; /* Name within the directory. */ +}; +#endif + +#ifndef DIR_DEFINED +#define DIR_DEFINED +typedef struct DIR DIR; +typedef DIR *LPDIR; +struct DIR { + intptr_t d_handle; /* Value returned by "_findfirst". */ + DIRENT d_first; /* DIRENT constructed based on "_findfirst". */ + DIRENT d_next; /* DIRENT constructed based on "_findnext". */ +}; +#endif + +/* +** Provide a macro, for use by the implementation, to determine if a +** particular directory entry should be skipped over when searching for +** the next directory entry that should be returned by the readdir() or +** readdir_r() functions. +*/ + +#ifndef is_filtered +# define is_filtered(a) ((((a).attrib)&_A_HIDDEN) || (((a).attrib)&_A_SYSTEM)) +#endif + +/* +** Provide the function prototype for the POSIX compatiable getenv() +** function. This function is not thread-safe. +*/ + +extern const char *windirent_getenv(const char *name); + +/* +** Finally, we can provide the function prototypes for the opendir(), +** readdir(), readdir_r(), and closedir() POSIX functions. +*/ + +extern LPDIR opendir(const char *dirname); +extern LPDIRENT readdir(LPDIR dirp); +extern INT readdir_r(LPDIR dirp, LPDIRENT entry, LPDIRENT *result); +extern INT closedir(LPDIR dirp); + +#endif /* defined(WIN32) && defined(_MSC_VER) */ + +/************************* End test_windirent.h ********************/ +/************************* Begin test_windirent.c ******************/ +/* +** 2015 November 30 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code to implement most of the opendir() family of +** POSIX functions on Win32 using the MSVCRT. +*/ + +#if defined(_WIN32) && defined(_MSC_VER) +/* #include "test_windirent.h" */ + +/* +** Implementation of the POSIX getenv() function using the Win32 API. +** This function is not thread-safe. +*/ +const char *windirent_getenv( + const char *name +){ + static char value[32768]; /* Maximum length, per MSDN */ + DWORD dwSize = sizeof(value) / sizeof(char); /* Size in chars */ + DWORD dwRet; /* Value returned by GetEnvironmentVariableA() */ + + memset(value, 0, sizeof(value)); + dwRet = GetEnvironmentVariableA(name, value, dwSize); + if( dwRet==0 || dwRet>dwSize ){ + /* + ** The function call to GetEnvironmentVariableA() failed -OR- + ** the buffer is not large enough. Either way, return NULL. + */ + return 0; + }else{ + /* + ** The function call to GetEnvironmentVariableA() succeeded + ** -AND- the buffer contains the entire value. + */ + return value; + } +} + +/* +** Implementation of the POSIX opendir() function using the MSVCRT. +*/ +LPDIR opendir( + const char *dirname +){ + struct _finddata_t data; + LPDIR dirp = (LPDIR)sqlite3_malloc(sizeof(DIR)); + SIZE_T namesize = sizeof(data.name) / sizeof(data.name[0]); + + if( dirp==NULL ) return NULL; + memset(dirp, 0, sizeof(DIR)); + + /* TODO: Remove this if Unix-style root paths are not used. */ + if( sqlite3_stricmp(dirname, "/")==0 ){ + dirname = windirent_getenv("SystemDrive"); + } + + memset(&data, 0, sizeof(struct _finddata_t)); + _snprintf(data.name, namesize, "%s\\*", dirname); + dirp->d_handle = _findfirst(data.name, &data); + + if( dirp->d_handle==BAD_INTPTR_T ){ + closedir(dirp); + return NULL; + } + + /* TODO: Remove this block to allow hidden and/or system files. */ + if( is_filtered(data) ){ +next: + + memset(&data, 0, sizeof(struct _finddata_t)); + if( _findnext(dirp->d_handle, &data)==-1 ){ + closedir(dirp); + return NULL; + } + + /* TODO: Remove this block to allow hidden and/or system files. */ + if( is_filtered(data) ) goto next; + } + + dirp->d_first.d_attributes = data.attrib; + strncpy(dirp->d_first.d_name, data.name, NAME_MAX); + dirp->d_first.d_name[NAME_MAX] = '\0'; + + return dirp; +} + +/* +** Implementation of the POSIX readdir() function using the MSVCRT. +*/ +LPDIRENT readdir( + LPDIR dirp +){ + struct _finddata_t data; + + if( dirp==NULL ) return NULL; + + if( dirp->d_first.d_ino==0 ){ + dirp->d_first.d_ino++; + dirp->d_next.d_ino++; + + return &dirp->d_first; + } + +next: + + memset(&data, 0, sizeof(struct _finddata_t)); + if( _findnext(dirp->d_handle, &data)==-1 ) return NULL; + + /* TODO: Remove this block to allow hidden and/or system files. */ + if( is_filtered(data) ) goto next; + + dirp->d_next.d_ino++; + dirp->d_next.d_attributes = data.attrib; + strncpy(dirp->d_next.d_name, data.name, NAME_MAX); + dirp->d_next.d_name[NAME_MAX] = '\0'; + + return &dirp->d_next; +} + +/* +** Implementation of the POSIX readdir_r() function using the MSVCRT. +*/ +INT readdir_r( + LPDIR dirp, + LPDIRENT entry, + LPDIRENT *result +){ + struct _finddata_t data; + + if( dirp==NULL ) return EBADF; + + if( dirp->d_first.d_ino==0 ){ + dirp->d_first.d_ino++; + dirp->d_next.d_ino++; + + entry->d_ino = dirp->d_first.d_ino; + entry->d_attributes = dirp->d_first.d_attributes; + strncpy(entry->d_name, dirp->d_first.d_name, NAME_MAX); + entry->d_name[NAME_MAX] = '\0'; + + *result = entry; + return 0; + } + +next: + + memset(&data, 0, sizeof(struct _finddata_t)); + if( _findnext(dirp->d_handle, &data)==-1 ){ + *result = NULL; + return ENOENT; + } + + /* TODO: Remove this block to allow hidden and/or system files. */ + if( is_filtered(data) ) goto next; + + entry->d_ino = (ino_t)-1; /* not available */ + entry->d_attributes = data.attrib; + strncpy(entry->d_name, data.name, NAME_MAX); + entry->d_name[NAME_MAX] = '\0'; + + *result = entry; + return 0; +} + +/* +** Implementation of the POSIX closedir() function using the MSVCRT. +*/ +INT closedir( + LPDIR dirp +){ + INT result = 0; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue May 8 04:51:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F4203FCDF6E; Tue, 8 May 2018 04:51:47 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A163F7E93F; Tue, 8 May 2018 04:51:47 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9A7DE25916; Tue, 8 May 2018 04:51:47 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w484pldT063768; Tue, 8 May 2018 04:51:47 GMT (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w484plb0063767; Tue, 8 May 2018 04:51:47 GMT (envelope-from peter@FreeBSD.org) Message-Id: <201805080451.w484plb0063767@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: peter set sender to peter@FreeBSD.org using -f From: Peter Wemm Date: Tue, 8 May 2018 04:51:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333353 - head/lib/libsqlite3 X-SVN-Group: head X-SVN-Commit-Author: peter X-SVN-Commit-Paths: head/lib/libsqlite3 X-SVN-Commit-Revision: 333353 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 04:51:48 -0000 Author: peter Date: Tue May 8 04:51:47 2018 New Revision: 333353 URL: https://svnweb.freebsd.org/changeset/base/333353 Log: Update private sqlite from sqlite3-3.20.0 to sqlite3-3.23.1 Modified: head/lib/libsqlite3/Makefile Modified: head/lib/libsqlite3/Makefile ============================================================================== --- head/lib/libsqlite3/Makefile Tue May 8 04:51:15 2018 (r333352) +++ head/lib/libsqlite3/Makefile Tue May 8 04:51:47 2018 (r333353) @@ -36,6 +36,7 @@ CFLAGS+= -I${SQLITE} \ -DSQLITE_THREADSAFE=1 \ -DSQLITE_ENABLE_FTS3 \ -DSQLITE_ENABLE_FTS4 \ + -DSQLITE_ENABLE_FTS5 \ -DSQLITE_ENABLE_RTREE .include From owner-svn-src-head@freebsd.org Tue May 8 04:52:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62981FCE0FB; Tue, 8 May 2018 04:52:54 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0D67C7F483; Tue, 8 May 2018 04:52:54 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 054D02594F; Tue, 8 May 2018 04:52:54 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w484qsS3063850; Tue, 8 May 2018 04:52:54 GMT (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w484qrvb063846; Tue, 8 May 2018 04:52:53 GMT (envelope-from peter@FreeBSD.org) Message-Id: <201805080452.w484qrvb063846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: peter set sender to peter@FreeBSD.org using -f From: Peter Wemm Date: Tue, 8 May 2018 04:52:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333354 - in head/contrib/subversion: . doc subversion subversion/include subversion/include/private subversion/libsvn_auth_gnome_keyring subversion/libsvn_auth_kwallet subversion/libsv... X-SVN-Group: head X-SVN-Commit-Author: peter X-SVN-Commit-Paths: in head/contrib/subversion: . doc subversion subversion/include subversion/include/private subversion/libsvn_auth_gnome_keyring subversion/libsvn_auth_kwallet subversion/libsvn_client subversion/libsv... X-SVN-Commit-Revision: 333354 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 04:52:55 -0000 Author: peter Date: Tue May 8 04:52:52 2018 New Revision: 333354 URL: https://svnweb.freebsd.org/changeset/base/333354 Log: Update svn-1.9.7 to 1.10.0. Added: head/contrib/subversion/.editorconfig - copied unchanged from r333351, vendor/subversion/dist/.editorconfig head/contrib/subversion/subversion/include/private/ra_svn_wrapped_sasl.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/ra_svn_wrapped_sasl.h head/contrib/subversion/subversion/include/private/svn_branch.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/svn_branch.h head/contrib/subversion/subversion/include/private/svn_branch_compat.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/svn_branch_compat.h head/contrib/subversion/subversion/include/private/svn_branch_impl.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/svn_branch_impl.h head/contrib/subversion/subversion/include/private/svn_branch_nested.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/svn_branch_nested.h head/contrib/subversion/subversion/include/private/svn_branch_repos.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/svn_branch_repos.h head/contrib/subversion/subversion/include/private/svn_config_private.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/svn_config_private.h head/contrib/subversion/subversion/include/private/svn_element.h - copied unchanged from r333351, vendor/subversion/dist/subversion/include/private/svn_element.h head/contrib/subversion/subversion/libsvn_client/conflicts.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_client/conflicts.c head/contrib/subversion/subversion/libsvn_client/merge_elements.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_client/merge_elements.c head/contrib/subversion/subversion/libsvn_client/shelve.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_client/shelve.c head/contrib/subversion/subversion/libsvn_delta/branch.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_delta/branch.c head/contrib/subversion/subversion/libsvn_delta/branch_compat.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_delta/branch_compat.c head/contrib/subversion/subversion/libsvn_delta/branch_migrate.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_delta/branch_migrate.c head/contrib/subversion/subversion/libsvn_delta/branch_nested.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_delta/branch_nested.c head/contrib/subversion/subversion/libsvn_delta/branch_repos.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_delta/branch_repos.c head/contrib/subversion/subversion/libsvn_delta/element.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_delta/element.c head/contrib/subversion/subversion/libsvn_fs_base/fs_init.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_fs_base/fs_init.h head/contrib/subversion/subversion/libsvn_fs_fs/fs_init.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_fs_fs/fs_init.h head/contrib/subversion/subversion/libsvn_fs_x/batch_fsync.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_fs_x/batch_fsync.c head/contrib/subversion/subversion/libsvn_fs_x/batch_fsync.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_fs_x/batch_fsync.h head/contrib/subversion/subversion/libsvn_fs_x/dag_cache.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_fs_x/dag_cache.c head/contrib/subversion/subversion/libsvn_fs_x/dag_cache.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_fs_x/dag_cache.h head/contrib/subversion/subversion/libsvn_fs_x/fs_init.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_fs_x/fs_init.h head/contrib/subversion/subversion/libsvn_ra_serf/list.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_ra_serf/list.c head/contrib/subversion/subversion/libsvn_ra_serf/request_body.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_ra_serf/request_body.c head/contrib/subversion/subversion/libsvn_ra_serf/stream_bucket.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_ra_serf/stream_bucket.c head/contrib/subversion/subversion/libsvn_ra_svn/wrapped_sasl.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_ra_svn/wrapped_sasl.c head/contrib/subversion/subversion/libsvn_repos/authz.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_repos/authz.h head/contrib/subversion/subversion/libsvn_repos/authz_info.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_repos/authz_info.c head/contrib/subversion/subversion/libsvn_repos/authz_parse.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_repos/authz_parse.c head/contrib/subversion/subversion/libsvn_repos/compat.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_repos/compat.c head/contrib/subversion/subversion/libsvn_repos/config_file.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_repos/config_file.c head/contrib/subversion/subversion/libsvn_repos/config_file.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_repos/config_file.h head/contrib/subversion/subversion/libsvn_repos/list.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_repos/list.c head/contrib/subversion/subversion/libsvn_subr/cache-null.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/cache-null.c head/contrib/subversion/subversion/libsvn_subr/compress_lz4.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/compress_lz4.c head/contrib/subversion/subversion/libsvn_subr/compress_zlib.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/compress_zlib.c head/contrib/subversion/subversion/libsvn_subr/encode.c - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/encode.c head/contrib/subversion/subversion/libsvn_subr/lz4/ - copied from r333351, vendor/subversion/dist/subversion/libsvn_subr/lz4/ head/contrib/subversion/subversion/libsvn_subr/pools.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/pools.h head/contrib/subversion/subversion/libsvn_subr/utf8proc/LICENSE.md - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/utf8proc/LICENSE.md head/contrib/subversion/subversion/libsvn_subr/utf8proc/NEWS.md - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/utf8proc/NEWS.md head/contrib/subversion/subversion/libsvn_subr/utf8proc/README.md - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/utf8proc/README.md head/contrib/subversion/subversion/libsvn_subr/utf8proc/lump.md - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/utf8proc/lump.md head/contrib/subversion/subversion/libsvn_subr/utf8proc/utf8proc_internal.h - copied unchanged from r333351, vendor/subversion/dist/subversion/libsvn_subr/utf8proc/utf8proc_internal.h head/contrib/subversion/subversion/svn/shelve-cmd.c - copied unchanged from r333351, vendor/subversion/dist/subversion/svn/shelve-cmd.c Deleted: head/contrib/subversion/subversion/libsvn_delta/debug_editor.h head/contrib/subversion/subversion/libsvn_ra_serf/README head/contrib/subversion/subversion/libsvn_repos/authz_pool.c head/contrib/subversion/subversion/libsvn_subr/compress.c head/contrib/subversion/subversion/libsvn_subr/utf8proc/LICENSE head/contrib/subversion/subversion/libsvn_subr/utf8proc/README head/contrib/subversion/subversion/libsvn_subr/utf8proc/utf8proc.h Modified: head/contrib/subversion/CHANGES head/contrib/subversion/COMMITTERS head/contrib/subversion/INSTALL head/contrib/subversion/LICENSE head/contrib/subversion/Makefile.in head/contrib/subversion/NOTICE head/contrib/subversion/README head/contrib/subversion/aclocal.m4 head/contrib/subversion/build-outputs.mk head/contrib/subversion/build.conf head/contrib/subversion/configure head/contrib/subversion/configure.ac head/contrib/subversion/doc/doxygen.conf head/contrib/subversion/gen-make.py head/contrib/subversion/get-deps.sh head/contrib/subversion/subversion/include/private/ra_svn_sasl.h head/contrib/subversion/subversion/include/private/svn_atomic.h head/contrib/subversion/subversion/include/private/svn_cache.h head/contrib/subversion/subversion/include/private/svn_cmdline_private.h head/contrib/subversion/subversion/include/private/svn_delta_private.h head/contrib/subversion/subversion/include/private/svn_dep_compat.h head/contrib/subversion/subversion/include/private/svn_diff_private.h head/contrib/subversion/subversion/include/private/svn_diff_tree.h head/contrib/subversion/subversion/include/private/svn_fs_fs_private.h head/contrib/subversion/subversion/include/private/svn_fs_private.h head/contrib/subversion/subversion/include/private/svn_fs_util.h head/contrib/subversion/subversion/include/private/svn_io_private.h head/contrib/subversion/subversion/include/private/svn_log.h head/contrib/subversion/subversion/include/private/svn_mergeinfo_private.h head/contrib/subversion/subversion/include/private/svn_mutex.h head/contrib/subversion/subversion/include/private/svn_object_pool.h head/contrib/subversion/subversion/include/private/svn_packed_data.h head/contrib/subversion/subversion/include/private/svn_ra_svn_private.h head/contrib/subversion/subversion/include/private/svn_repos_private.h head/contrib/subversion/subversion/include/private/svn_sorts_private.h head/contrib/subversion/subversion/include/private/svn_sqlite.h head/contrib/subversion/subversion/include/private/svn_string_private.h head/contrib/subversion/subversion/include/private/svn_subr_private.h head/contrib/subversion/subversion/include/private/svn_temp_serializer.h head/contrib/subversion/subversion/include/private/svn_utf_private.h head/contrib/subversion/subversion/include/private/svn_wc_private.h head/contrib/subversion/subversion/include/svn_auth.h head/contrib/subversion/subversion/include/svn_base64.h head/contrib/subversion/subversion/include/svn_checksum.h head/contrib/subversion/subversion/include/svn_client.h head/contrib/subversion/subversion/include/svn_cmdline.h head/contrib/subversion/subversion/include/svn_config.h head/contrib/subversion/subversion/include/svn_dav.h head/contrib/subversion/subversion/include/svn_delta.h head/contrib/subversion/subversion/include/svn_diff.h head/contrib/subversion/subversion/include/svn_error.h head/contrib/subversion/subversion/include/svn_error_codes.h head/contrib/subversion/subversion/include/svn_fs.h head/contrib/subversion/subversion/include/svn_hash.h head/contrib/subversion/subversion/include/svn_io.h head/contrib/subversion/subversion/include/svn_props.h head/contrib/subversion/subversion/include/svn_ra.h head/contrib/subversion/subversion/include/svn_ra_svn.h head/contrib/subversion/subversion/include/svn_repos.h head/contrib/subversion/subversion/include/svn_string.h head/contrib/subversion/subversion/include/svn_types.h head/contrib/subversion/subversion/include/svn_user.h head/contrib/subversion/subversion/include/svn_version.h head/contrib/subversion/subversion/include/svn_wc.h head/contrib/subversion/subversion/include/svn_x509.h head/contrib/subversion/subversion/include/svn_xml.h head/contrib/subversion/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c head/contrib/subversion/subversion/libsvn_auth_kwallet/kwallet.cpp head/contrib/subversion/subversion/libsvn_client/checkout.c head/contrib/subversion/subversion/libsvn_client/client.h head/contrib/subversion/subversion/libsvn_client/copy.c head/contrib/subversion/subversion/libsvn_client/deprecated.c head/contrib/subversion/subversion/libsvn_client/diff.c head/contrib/subversion/subversion/libsvn_client/diff_local.c head/contrib/subversion/subversion/libsvn_client/export.c head/contrib/subversion/subversion/libsvn_client/externals.c head/contrib/subversion/subversion/libsvn_client/import.c head/contrib/subversion/subversion/libsvn_client/info.c head/contrib/subversion/subversion/libsvn_client/list.c head/contrib/subversion/subversion/libsvn_client/merge.c head/contrib/subversion/subversion/libsvn_client/mergeinfo.c head/contrib/subversion/subversion/libsvn_client/mtcc.c head/contrib/subversion/subversion/libsvn_client/patch.c head/contrib/subversion/subversion/libsvn_client/ra.c head/contrib/subversion/subversion/libsvn_client/relocate.c head/contrib/subversion/subversion/libsvn_client/resolved.c head/contrib/subversion/subversion/libsvn_client/revisions.c head/contrib/subversion/subversion/libsvn_client/upgrade.c head/contrib/subversion/subversion/libsvn_delta/cancel.c head/contrib/subversion/subversion/libsvn_delta/compat.c head/contrib/subversion/subversion/libsvn_delta/debug_editor.c head/contrib/subversion/subversion/libsvn_delta/default_editor.c head/contrib/subversion/subversion/libsvn_delta/svndiff.c head/contrib/subversion/subversion/libsvn_delta/text_delta.c head/contrib/subversion/subversion/libsvn_delta/xdelta.c head/contrib/subversion/subversion/libsvn_diff/binary_diff.c head/contrib/subversion/subversion/libsvn_diff/diff.h head/contrib/subversion/subversion/libsvn_diff/diff3.c head/contrib/subversion/subversion/libsvn_diff/diff_file.c head/contrib/subversion/subversion/libsvn_diff/diff_memory.c head/contrib/subversion/subversion/libsvn_diff/parse-diff.c head/contrib/subversion/subversion/libsvn_fs/deprecated.c head/contrib/subversion/subversion/libsvn_fs/editor.c head/contrib/subversion/subversion/libsvn_fs/fs-loader.c head/contrib/subversion/subversion/libsvn_fs/fs-loader.h head/contrib/subversion/subversion/libsvn_fs_base/bdb/rev-table.c head/contrib/subversion/subversion/libsvn_fs_base/fs.c head/contrib/subversion/subversion/libsvn_fs_base/lock.c head/contrib/subversion/subversion/libsvn_fs_base/revs-txns.c head/contrib/subversion/subversion/libsvn_fs_base/revs-txns.h head/contrib/subversion/subversion/libsvn_fs_base/tree.c head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.h head/contrib/subversion/subversion/libsvn_fs_fs/caching.c head/contrib/subversion/subversion/libsvn_fs_fs/dag.c head/contrib/subversion/subversion/libsvn_fs_fs/fs.c head/contrib/subversion/subversion/libsvn_fs_fs/fs.h head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.h head/contrib/subversion/subversion/libsvn_fs_fs/hotcopy.c head/contrib/subversion/subversion/libsvn_fs_fs/hotcopy.h head/contrib/subversion/subversion/libsvn_fs_fs/id.c head/contrib/subversion/subversion/libsvn_fs_fs/index.c head/contrib/subversion/subversion/libsvn_fs_fs/load-index.c head/contrib/subversion/subversion/libsvn_fs_fs/lock.c head/contrib/subversion/subversion/libsvn_fs_fs/low_level.c head/contrib/subversion/subversion/libsvn_fs_fs/low_level.h head/contrib/subversion/subversion/libsvn_fs_fs/pack.c head/contrib/subversion/subversion/libsvn_fs_fs/recovery.c head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.h head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.sql head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache.c head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache.h head/contrib/subversion/subversion/libsvn_fs_fs/rev_file.c head/contrib/subversion/subversion/libsvn_fs_fs/revprops.c head/contrib/subversion/subversion/libsvn_fs_fs/revprops.h head/contrib/subversion/subversion/libsvn_fs_fs/stats.c head/contrib/subversion/subversion/libsvn_fs_fs/structure head/contrib/subversion/subversion/libsvn_fs_fs/structure-indexes head/contrib/subversion/subversion/libsvn_fs_fs/temp_serializer.c head/contrib/subversion/subversion/libsvn_fs_fs/temp_serializer.h head/contrib/subversion/subversion/libsvn_fs_fs/transaction.c head/contrib/subversion/subversion/libsvn_fs_fs/tree.c head/contrib/subversion/subversion/libsvn_fs_fs/util.c head/contrib/subversion/subversion/libsvn_fs_fs/util.h head/contrib/subversion/subversion/libsvn_fs_fs/verify.c head/contrib/subversion/subversion/libsvn_fs_util/fs-util.c head/contrib/subversion/subversion/libsvn_fs_x/cached_data.c head/contrib/subversion/subversion/libsvn_fs_x/cached_data.h head/contrib/subversion/subversion/libsvn_fs_x/caching.c head/contrib/subversion/subversion/libsvn_fs_x/changes.c head/contrib/subversion/subversion/libsvn_fs_x/changes.h head/contrib/subversion/subversion/libsvn_fs_x/dag.c head/contrib/subversion/subversion/libsvn_fs_x/dag.h head/contrib/subversion/subversion/libsvn_fs_x/fs.c head/contrib/subversion/subversion/libsvn_fs_x/fs.h head/contrib/subversion/subversion/libsvn_fs_x/fs_x.c head/contrib/subversion/subversion/libsvn_fs_x/fs_x.h head/contrib/subversion/subversion/libsvn_fs_x/hotcopy.c head/contrib/subversion/subversion/libsvn_fs_x/hotcopy.h head/contrib/subversion/subversion/libsvn_fs_x/index.c head/contrib/subversion/subversion/libsvn_fs_x/index.h head/contrib/subversion/subversion/libsvn_fs_x/lock.c head/contrib/subversion/subversion/libsvn_fs_x/lock.h head/contrib/subversion/subversion/libsvn_fs_x/low_level.c head/contrib/subversion/subversion/libsvn_fs_x/low_level.h head/contrib/subversion/subversion/libsvn_fs_x/noderevs.c head/contrib/subversion/subversion/libsvn_fs_x/noderevs.h head/contrib/subversion/subversion/libsvn_fs_x/pack.c head/contrib/subversion/subversion/libsvn_fs_x/pack.h head/contrib/subversion/subversion/libsvn_fs_x/recovery.c head/contrib/subversion/subversion/libsvn_fs_x/recovery.h head/contrib/subversion/subversion/libsvn_fs_x/rep-cache-db.h head/contrib/subversion/subversion/libsvn_fs_x/rep-cache.c head/contrib/subversion/subversion/libsvn_fs_x/rep-cache.h head/contrib/subversion/subversion/libsvn_fs_x/reps.c head/contrib/subversion/subversion/libsvn_fs_x/reps.h head/contrib/subversion/subversion/libsvn_fs_x/rev_file.c head/contrib/subversion/subversion/libsvn_fs_x/rev_file.h head/contrib/subversion/subversion/libsvn_fs_x/revprops.c head/contrib/subversion/subversion/libsvn_fs_x/revprops.h head/contrib/subversion/subversion/libsvn_fs_x/string_table.c head/contrib/subversion/subversion/libsvn_fs_x/string_table.h head/contrib/subversion/subversion/libsvn_fs_x/temp_serializer.c head/contrib/subversion/subversion/libsvn_fs_x/temp_serializer.h head/contrib/subversion/subversion/libsvn_fs_x/transaction.c head/contrib/subversion/subversion/libsvn_fs_x/transaction.h head/contrib/subversion/subversion/libsvn_fs_x/tree.c head/contrib/subversion/subversion/libsvn_fs_x/tree.h head/contrib/subversion/subversion/libsvn_fs_x/util.c head/contrib/subversion/subversion/libsvn_fs_x/util.h head/contrib/subversion/subversion/libsvn_fs_x/verify.c head/contrib/subversion/subversion/libsvn_fs_x/verify.h head/contrib/subversion/subversion/libsvn_ra/ra_loader.c head/contrib/subversion/subversion/libsvn_ra/ra_loader.h head/contrib/subversion/subversion/libsvn_ra_local/ra_plugin.c head/contrib/subversion/subversion/libsvn_ra_serf/blame.c head/contrib/subversion/subversion/libsvn_ra_serf/commit.c head/contrib/subversion/subversion/libsvn_ra_serf/eagain_bucket.c head/contrib/subversion/subversion/libsvn_ra_serf/get_file.c head/contrib/subversion/subversion/libsvn_ra_serf/getlocations.c head/contrib/subversion/subversion/libsvn_ra_serf/getlocationsegments.c head/contrib/subversion/subversion/libsvn_ra_serf/libsvn_ra_serf.pc.in head/contrib/subversion/subversion/libsvn_ra_serf/lock.c head/contrib/subversion/subversion/libsvn_ra_serf/log.c head/contrib/subversion/subversion/libsvn_ra_serf/merge.c head/contrib/subversion/subversion/libsvn_ra_serf/mergeinfo.c head/contrib/subversion/subversion/libsvn_ra_serf/multistatus.c head/contrib/subversion/subversion/libsvn_ra_serf/options.c head/contrib/subversion/subversion/libsvn_ra_serf/property.c head/contrib/subversion/subversion/libsvn_ra_serf/ra_serf.h head/contrib/subversion/subversion/libsvn_ra_serf/replay.c head/contrib/subversion/subversion/libsvn_ra_serf/sb_bucket.c head/contrib/subversion/subversion/libsvn_ra_serf/serf.c head/contrib/subversion/subversion/libsvn_ra_serf/stat.c head/contrib/subversion/subversion/libsvn_ra_serf/update.c head/contrib/subversion/subversion/libsvn_ra_serf/util.c head/contrib/subversion/subversion/libsvn_ra_serf/xml.c head/contrib/subversion/subversion/libsvn_ra_svn/client.c head/contrib/subversion/subversion/libsvn_ra_svn/cram.c head/contrib/subversion/subversion/libsvn_ra_svn/cyrus_auth.c head/contrib/subversion/subversion/libsvn_ra_svn/deprecated.c head/contrib/subversion/subversion/libsvn_ra_svn/editorp.c head/contrib/subversion/subversion/libsvn_ra_svn/internal_auth.c head/contrib/subversion/subversion/libsvn_ra_svn/marshal.c head/contrib/subversion/subversion/libsvn_ra_svn/protocol head/contrib/subversion/subversion/libsvn_ra_svn/ra_svn.h head/contrib/subversion/subversion/libsvn_repos/authz.c head/contrib/subversion/subversion/libsvn_repos/commit.c head/contrib/subversion/subversion/libsvn_repos/config_pool.c head/contrib/subversion/subversion/libsvn_repos/delta.c head/contrib/subversion/subversion/libsvn_repos/deprecated.c head/contrib/subversion/subversion/libsvn_repos/dump.c head/contrib/subversion/subversion/libsvn_repos/fs-wrap.c head/contrib/subversion/subversion/libsvn_repos/hooks.c head/contrib/subversion/subversion/libsvn_repos/load-fs-vtable.c head/contrib/subversion/subversion/libsvn_repos/load.c head/contrib/subversion/subversion/libsvn_repos/log.c head/contrib/subversion/subversion/libsvn_repos/replay.c head/contrib/subversion/subversion/libsvn_repos/reporter.c head/contrib/subversion/subversion/libsvn_repos/repos.c head/contrib/subversion/subversion/libsvn_repos/repos.h head/contrib/subversion/subversion/libsvn_repos/rev_hunt.c head/contrib/subversion/subversion/libsvn_subr/atomic.c head/contrib/subversion/subversion/libsvn_subr/auth.c head/contrib/subversion/subversion/libsvn_subr/base64.c head/contrib/subversion/subversion/libsvn_subr/cache-inprocess.c head/contrib/subversion/subversion/libsvn_subr/cache-membuffer.c head/contrib/subversion/subversion/libsvn_subr/checksum.c head/contrib/subversion/subversion/libsvn_subr/cmdline.c head/contrib/subversion/subversion/libsvn_subr/config.c head/contrib/subversion/subversion/libsvn_subr/config_auth.c head/contrib/subversion/subversion/libsvn_subr/config_file.c head/contrib/subversion/subversion/libsvn_subr/config_impl.h head/contrib/subversion/subversion/libsvn_subr/config_win.c head/contrib/subversion/subversion/libsvn_subr/deprecated.c head/contrib/subversion/subversion/libsvn_subr/dirent_uri.c head/contrib/subversion/subversion/libsvn_subr/dso.c head/contrib/subversion/subversion/libsvn_subr/eol.c head/contrib/subversion/subversion/libsvn_subr/error.c head/contrib/subversion/subversion/libsvn_subr/errorcode.inc head/contrib/subversion/subversion/libsvn_subr/fnv1a.c head/contrib/subversion/subversion/libsvn_subr/fnv1a.h head/contrib/subversion/subversion/libsvn_subr/gpg_agent.c head/contrib/subversion/subversion/libsvn_subr/hash.c head/contrib/subversion/subversion/libsvn_subr/internal_statements.h head/contrib/subversion/subversion/libsvn_subr/io.c head/contrib/subversion/subversion/libsvn_subr/libsvn_subr.pc.in head/contrib/subversion/subversion/libsvn_subr/log.c head/contrib/subversion/subversion/libsvn_subr/mergeinfo.c head/contrib/subversion/subversion/libsvn_subr/mutex.c head/contrib/subversion/subversion/libsvn_subr/object_pool.c head/contrib/subversion/subversion/libsvn_subr/opt.c head/contrib/subversion/subversion/libsvn_subr/packed_data.c head/contrib/subversion/subversion/libsvn_subr/path.c head/contrib/subversion/subversion/libsvn_subr/pool.c head/contrib/subversion/subversion/libsvn_subr/prefix_string.c head/contrib/subversion/subversion/libsvn_subr/prompt.c head/contrib/subversion/subversion/libsvn_subr/properties.c head/contrib/subversion/subversion/libsvn_subr/skel.c head/contrib/subversion/subversion/libsvn_subr/sorts.c head/contrib/subversion/subversion/libsvn_subr/spillbuf.c head/contrib/subversion/subversion/libsvn_subr/sqlite.c head/contrib/subversion/subversion/libsvn_subr/sqlite3wrapper.c head/contrib/subversion/subversion/libsvn_subr/stream.c head/contrib/subversion/subversion/libsvn_subr/string.c head/contrib/subversion/subversion/libsvn_subr/subst.c head/contrib/subversion/subversion/libsvn_subr/sysinfo.c head/contrib/subversion/subversion/libsvn_subr/temp_serializer.c head/contrib/subversion/subversion/libsvn_subr/user.c head/contrib/subversion/subversion/libsvn_subr/utf.c head/contrib/subversion/subversion/libsvn_subr/utf8proc.c head/contrib/subversion/subversion/libsvn_subr/utf8proc/utf8proc.c head/contrib/subversion/subversion/libsvn_subr/utf8proc/utf8proc_data.c head/contrib/subversion/subversion/libsvn_subr/version.c head/contrib/subversion/subversion/libsvn_subr/win32_crashrpt.c head/contrib/subversion/subversion/libsvn_subr/win32_crashrpt_dll.h head/contrib/subversion/subversion/libsvn_subr/win32_crypto.c head/contrib/subversion/subversion/libsvn_subr/win32_xlate.c head/contrib/subversion/subversion/libsvn_subr/x509info.c head/contrib/subversion/subversion/libsvn_subr/x509parse.c head/contrib/subversion/subversion/libsvn_subr/xml.c head/contrib/subversion/subversion/libsvn_wc/adm_crawler.c head/contrib/subversion/subversion/libsvn_wc/conflicts.c head/contrib/subversion/subversion/libsvn_wc/copy.c head/contrib/subversion/subversion/libsvn_wc/crop.c head/contrib/subversion/subversion/libsvn_wc/deprecated.c head/contrib/subversion/subversion/libsvn_wc/diff.h head/contrib/subversion/subversion/libsvn_wc/diff_editor.c head/contrib/subversion/subversion/libsvn_wc/diff_local.c head/contrib/subversion/subversion/libsvn_wc/entries.c head/contrib/subversion/subversion/libsvn_wc/externals.c head/contrib/subversion/subversion/libsvn_wc/node.c head/contrib/subversion/subversion/libsvn_wc/old-and-busted.c head/contrib/subversion/subversion/libsvn_wc/props.c head/contrib/subversion/subversion/libsvn_wc/status.c head/contrib/subversion/subversion/libsvn_wc/translate.c head/contrib/subversion/subversion/libsvn_wc/upgrade.c head/contrib/subversion/subversion/libsvn_wc/wc-checks.h head/contrib/subversion/subversion/libsvn_wc/wc-metadata.h head/contrib/subversion/subversion/libsvn_wc/wc-metadata.sql head/contrib/subversion/subversion/libsvn_wc/wc-queries.h head/contrib/subversion/subversion/libsvn_wc/wc-queries.sql head/contrib/subversion/subversion/libsvn_wc/wc.h head/contrib/subversion/subversion/libsvn_wc/wc_db.c head/contrib/subversion/subversion/libsvn_wc/wc_db.h head/contrib/subversion/subversion/libsvn_wc/wc_db_pristine.c head/contrib/subversion/subversion/libsvn_wc/wc_db_update_move.c head/contrib/subversion/subversion/libsvn_wc/wc_db_util.c head/contrib/subversion/subversion/libsvn_wc/wcroot_anchor.c head/contrib/subversion/subversion/libsvn_wc/workqueue.c head/contrib/subversion/subversion/svn/cl-conflicts.c head/contrib/subversion/subversion/svn/cl-conflicts.h head/contrib/subversion/subversion/svn/cl-log.h head/contrib/subversion/subversion/svn/cl.h head/contrib/subversion/subversion/svn/cleanup-cmd.c head/contrib/subversion/subversion/svn/conflict-callbacks.c head/contrib/subversion/subversion/svn/diff-cmd.c head/contrib/subversion/subversion/svn/help-cmd.c head/contrib/subversion/subversion/svn/info-cmd.c head/contrib/subversion/subversion/svn/list-cmd.c head/contrib/subversion/subversion/svn/log-cmd.c head/contrib/subversion/subversion/svn/merge-cmd.c head/contrib/subversion/subversion/svn/notify.c head/contrib/subversion/subversion/svn/propdel-cmd.c head/contrib/subversion/subversion/svn/propedit-cmd.c head/contrib/subversion/subversion/svn/propget-cmd.c head/contrib/subversion/subversion/svn/propset-cmd.c head/contrib/subversion/subversion/svn/resolve-cmd.c head/contrib/subversion/subversion/svn/status.c head/contrib/subversion/subversion/svn/svn.c head/contrib/subversion/subversion/svn/switch-cmd.c head/contrib/subversion/subversion/svn/update-cmd.c head/contrib/subversion/subversion/svn/util.c head/contrib/subversion/subversion/svn_private_config.h.in head/contrib/subversion/subversion/svn_private_config.hw head/contrib/subversion/subversion/svnadmin/svnadmin.c head/contrib/subversion/subversion/svnbench/cl.h head/contrib/subversion/subversion/svnbench/null-export-cmd.c head/contrib/subversion/subversion/svnbench/null-list-cmd.c head/contrib/subversion/subversion/svnbench/null-log-cmd.c head/contrib/subversion/subversion/svnbench/svnbench.c head/contrib/subversion/subversion/svndumpfilter/svndumpfilter.c head/contrib/subversion/subversion/svnfsfs/load-index-cmd.c head/contrib/subversion/subversion/svnfsfs/stats-cmd.c head/contrib/subversion/subversion/svnfsfs/svnfsfs.c head/contrib/subversion/subversion/svnfsfs/svnfsfs.h head/contrib/subversion/subversion/svnlook/svnlook.c head/contrib/subversion/subversion/svnmucc/svnmucc.c head/contrib/subversion/subversion/svnrdump/dump_editor.c head/contrib/subversion/subversion/svnrdump/load_editor.c head/contrib/subversion/subversion/svnrdump/svnrdump.c head/contrib/subversion/subversion/svnrdump/svnrdump.h head/contrib/subversion/subversion/svnrdump/util.c head/contrib/subversion/subversion/svnserve/cyrus_auth.c head/contrib/subversion/subversion/svnserve/serve.c head/contrib/subversion/subversion/svnserve/server.h head/contrib/subversion/subversion/svnserve/svnserve.c head/contrib/subversion/subversion/svnsync/svnsync.c head/contrib/subversion/win-tests.py Directory Properties: head/contrib/subversion/ (props changed) Copied: head/contrib/subversion/.editorconfig (from r333351, vendor/subversion/dist/.editorconfig) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/subversion/.editorconfig Tue May 8 04:52:52 2018 (r333354, copy of r333351, vendor/subversion/dist/.editorconfig) @@ -0,0 +1,9 @@ +# top-most EditorConfig file +# See http://editorconfig.org/ +root = true + +[*] +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = false Modified: head/contrib/subversion/CHANGES ============================================================================== --- head/contrib/subversion/CHANGES Tue May 8 04:51:47 2018 (r333353) +++ head/contrib/subversion/CHANGES Tue May 8 04:52:52 2018 (r333354) @@ -1,3 +1,291 @@ +Version 1.10.0 +(?? ??? 2018, from /branches/1.10.x) +http://svn.apache.org/repos/asf/subversion/tags/1.10.0 + +See the 1.10 release notes for a more verbose overview of the changes since +the 1.9 release: https://subversion.apache.org/docs/release-notes/1.10.html + + User-visible changes: + - Major new features: + * Better interactive conflict resolution for tree conflicts (r1687489 et al) + * Wilcards and improved performance in path-based authorization (r1776832) + * New experimental 'svn shelve' command (issue #3625) + - Minor new features and improvements: + * svnbench: Show time taken & bytes transferred (r1703383, r1710586) + * New 'svnadmin dump' options to include/exclude paths (r1811992 et al) + * New '--normalize-props' option for 'svnadmin dump' (r1807836 et al) + * New 'svnadmin 'load-revprops', 'dump-revprops' subcommands (r1694191, -225) + * New '--no-flush-to-disk' option for 'svnadmin load' (r1736357, -7357) + * New '--file' option for several svnadmin subcommands (r1738021) + * New '--max-request-size', '--max-response-size' options for svnserve (r1714330, -333) + * New '-rN' option for 'svnadmin lstxns' (r1703699) + * New '--search' option for fast 'svn ls' searches (r1767186 et al) + * Add '--search' option support to 'svnbench null-list' (r1767202) + * New '-M' option for 'svnlook tree' (r1708222) + * New '--skip-unchanged' option for 'svnsync copy-revprops' (r1692655) + * 'svn log --search' now ignores case and diacriticals (r1731300, r1735614) + * Improved performance of server-side log processing (r1732768, r1731656) + * diff3: Reduce processing time and memory usage (r1731659) + * ra_serf: Adjustments for serf versions with HTTP/2 support (r1716400) + * ra_serf: Send svndiff1 deltas during commit (r1704317, r1704613, r1791290) + * ra_serf: Stream svndiff deltas w/o creating temporary files (r1803143 et al) + * ra_serf: Don't necessarily request full MERGE reponses (r1806017 et al) + * 'svn patch': Parse binary diffs in git-style patches (r1703925) + * 'svnadmin info' now reports latest revision in the repository (r1697953) + * ra_svn: Various performance-related tweaks (r1694490) + * Optimize svndiff parser (r1685063) + * 'svn status' without -v: Stop showing uninteresting deletions (r1664533) + * Save a few cycles in svn_stringbuf_set() (r1759177) + * windows: Use the Unicode Windows API (r1756193) + * windows: Distinguish out-of-memory error from abort() (r1724784, -809) + * windows: Explicitly release file locks (r1702089) + * windows: Correctly check result from LoadLibrary() call (r1755983) + * Remove Windows-specific slowdown during pristine cleanup (r1701641) + * FSFS: Optionally cache node properties without full-text cache (r1723715) + * FSFS: Open transaction's proto revision in write-only mode (r1759135) + * FSFS: Avoid checksum calculations if logical addressing is used (r1756377) + * FSFS: Do not read very long change lists in block read mode (r1746012) + * FSFS: Avoid double DAG lookup (r1711582) + * FSFS: Avoid double cache lookups (r1681974, r1710370) + * FSFS: Increase default revprop pack size from 4k to 16k (r1709799) + * FSFS: Speed up revprop access (r1707986 et al) + * FSFS: Disable representation sharing for directories (r1706619) + * FSFS: Speed up transaction processing for large directories (r1706617) + * FSFS: Tune format 7 pack ordering heuristics (r1706615) + * FSFS: Reduce I/O overhead during history traversal (r1703237) + * FSFS: Use native Windows API to guarantee data is flushed (r1701053) + * FSFS: Warn if a possible rep-cache SHA1 collision is detected (r1674673) + * FSFS: Optimize revprop cache filling strategy under high load (r1795324) + * FSFS: New "verify-before-commit" fsfs.conf option (r1795351) + * FSFS: New format 8 with various performance improvements (r1801940 et al) + * FSFS/FSX: Chunked read support for changed paths lists (r1746026, -4987) + * FSFS/FSX: Improvements to cache implementation (r1694489) + * FSX: Add checksums to packed revprop manifests and files (r1713132, -9717) + * FSX: Significantly reduce size of packed revprop manifest data (r1713109) + * FSX: Improved on-disk representation of property lists (r1717427) + * FSX: New in-repository representation of directories (r1712967) + * FSX: Make 'svnadmin recover' discard all transactions (r1712937) + * FSX: Reduce number of fsync operations (r1711354 et al) + * mod_dav_svn: Improve performance and memory usage of PROPFIND (r1721732) + * mod_dav_svn: Show process-id on Windows in /svn-status page (r1718567) + * mod_dav_svn: Advertise svndiff1 support to clients (r1704891, r1791285) + * mod_dav_svn: Remove disk I/O to TMPDIR during first commit (r1716240) + * svnsync: Fix assertion failure with up-to-date repositories (r1727140) + * ra_serf: Parallel requests for text and property changes (r1716575) + * svnserve: Remove disk I/O to TMPDIR during first commit (r1716240) + * Triple performance of URI escaping (r1710099, -103) + * 'svn blame': Optimize a bit on the server side (r1711666) + * 'svn cleanup': Add --vacuum-pristines option (r1802787 et al) + * 'svn diff --git': Show diffs of symlinks like git and hg (r1706372) + * 'svn patch': Capable of handling git-like symlink changes (r1706446) + * 'svn patch': Improve detection of additions and deletions (r1706623) + * 'svn patch': Handle zero-byte files vs deleted files (r1705856) + * 'svn diff --git': Produce 'rename from/to' headers (r1706855) + * 'svn diff --git': Produce proper mode headers (r1706041) + * 'svn lock', 'svn unlock': Take the -q option (r1796288) + * 'svn help': improved wording and consistency (r1802989 et al) + * 'svn': Add a new '--accept recommended' option. (r1805623) + * 'svn': --non-interactive uses recommended tree conflict resolution (r1805620) + * Evaluate 'old mode' and 'new mode' lines from git-syle diffs (r1705391) + * svnrdump, svndumpfilter: Enable buffered stdin (r1703074) + * ra_serf: Receive svndiff1 and gzip compressed deltas (r1791282, -3, -4) + * svnadmin: 'lock', 'unlock', 'rmlocks': Take the -q option (r1796406) + * New svndiff2 binary delta format using lz4 compression (r1801938, et al) + * gpg-agent: Support gpg ≥2.1.13 and unset GPG_AGENT_INFO (r1795087) + * Add 'http-compression=auto' client config option as default (r1803899 et al) + * Speed up processing of mergeinfo (r1802470 et al) + * Check for invalid 'xt' fields in x509 certs (r1809290) + * New '--password-from-stdin' option for 'svn' (r1819093) + - Client-side bugfixes: + * svnbench: Honour the '--with-no-revprops' option (r1709593) + * ra_serf: Fix segfault when running over HTTP v1 (r1766089) + * ra_serf: Keep small svndiffs in memory during commit (r1724455) + * ra_serf: Improve error messages related to lock operations (r1716450) + * ra_serf: Work around a bug in serf bucket handling (r1714806) + * ra_serf: Fix lock token handling for file-path commits (r1815799 et al) + * Raise a malfunction instead of segfaulting with corrupt wc.db (r1749887) + * Fix check for unversioned obstructions blocking file externals (r1735932) + * 'svn patch' bugfixes: + + Fix behaviour if a reject file can't be created (r1725948) + + Describe adds and removes in reject file headers (r1707034) + + Detect recorded moves that are already applied (r1706893) + + Detect already applied patches in edge cases (r1706687) + + Fix handling of missing trailing context (issue #4609) + + Fix interaction of moves and property changes (r1706875) + + Fix output for reordered hunks (issue #4533) + + Prevent from overwriting existing reject files (r1706600) + + Improve handling of added properties (r1706598) + + Improve handling of rejected file deletions (r1706221) + + Fix --dry-run with replaced files (r1706217) + + Fix applying prop changes which should conflict (r1705733) + + Fix duplicate notifications when adding directories (r1704883) + + Fix duplicate notifications when patching svn:executable prop (r1706078) + + Fix notifications when adding/removing properties (r1705698) + + Make handle already applied property patches (r1705692) + + Change some notifications to 'U' instead of 'G' (r1706693) + + Don't create file if git-style patch indicates modification (r1706005) + + Parse any properties following svn:mergeinfo (r1706825) + + Fix potential unbounded memory usage in parser (r1705979) + + Fix problems with --git diffs applied in reverse (r1704854, -88) + + Fix removal of EOL if final patch context line has no EOL (#4315) + * 'svn diff --git': Fix file permission modes to match git and hg (r1695384) + * 'svn diff --git': added/deleted filenames are never /dev/null (issue #4689) + * Fix a problem with relocating some externals (r1723385) + * Fix 'svn diff URL@REV WC' wrongly looks up URL@HEAD (issue #4597) + * Fix 'svn diff --no-diff-added' shows properties as added (issue #4596) + * Properly raise text merge conflicts with file externals (r1680245) + * Fix 'svn diff' with local directories marked incomplete (r1674413 et al) + * ra_svn/ra_serf: Make negative log limits work as documented (r1665530) + * ra_svn: Eliminate unnecessary URL reparenting (r1779611, r1779611) + * ra_svn: Use svndiff2 deltas when supported on both ends (r1803269 et al) + * Handle invalid revision numbers consistently across RA layers (r1665328) + * Handle commits to revs > HEAD consistently across RA layers (r1664698) + * Eliminate one client/server roundtrip from checkouts of HEAD (r1779620) + * Expose some error messages generated by github's SVN server (r1707164) + * 'svnfsfs stats': Show average lengths of delta chains (r1705739) + * svnmucc: Fix crash during application teardown (r1795727) + * Fix assertion when exporting a working copy containing relative externals + (r1802316) + - Server-side bugfixes: + * Fix checksum validation error due to data eviction from cache (r1781694) + * FSFS pack: Use unbuffered file streams in a couple of places (r1759405) + * FSFS: Reduce excessive amount of read and seek syscalls (r1758979, -9399) + * FSFS: Reduce memory footprint of cached directories (r1725179) + * FSFS: Add various checks for integer overflows (r1714372, -32, -34) + * FSFS: Detect a very unlikely case of item index corruption (r1716973) + * FSFS: Make handling of revprop size information more resilient (r1716784) + * FSFS: Don't re-parse a directory which just got committed (r1706679) + * FSFS: Handle some known quirks in committed node revisions (r1673875) + * FSFS format 7: Verify item types more thoroughly (r1796160) + * FSFS: Fix false positive "Not a directory" error involving file moved and + replaced by dir (issue #4677) + * FSFS: Fix crash accessing revprops with --memory-cache-size=0 (r1795164) + * FSFS: Fix issue #4623 for FSFS. (r1813794 et al) + * mod_dav_svn: Omit Cache-Control HTTP header for HEAD URLs (issue #4514) + * mod_dav_svn: Reduced memory consumption for DAV merge responses (r1727790) + * mod_dav_svn: Don't set a Last-Modified header in GET responses (r1724790) + * mod_dav_svn: Actually use FSFS transaction directory cache (r1723720) + * mod_dav_svn: Do not insert newlines in base64 encoded responses (r1712223) + * Fix insertion of very large items into the membuffer cache (r1717337, -8) + * Fix capacity check of the membuffer cache's prefix pool (r1714356) + * Prevent paths containing newlines from being committed (r1662585) + * Fix for properties: Null updates break last-changed-revision (issue #4700) + * 'svnfsfs stats': Fix false positive checksum errors reading old revisions + (r1785904) + * 'svnfsfs stats': Fix support for pre-v4 FSFS repositories. (r1816966) + * svnadmin, svnfsfs: Detect invalid arguments to -M (r1787023, r1787045) + * svnlook, svnserve: Detect invalid arguments to -M (r1787023, r1787045) + * svnadmin: Output locked paths in canonical form (r1796420) + * svnadmin: Output locked paths correctly encoded (r1797122) + * svn: propdel, propset: Transcode property names on output (r1797186) + * svnserve: Make use-sasl=true a fatal error in SASL-less builds. (r1803188) + - Client-side and server-side bugfixes: + * Fix integer overflow check with >= 1G mergeinfo ranges per path (r1714380) + * Fix integer overflow checks on WoW64 platforms (r1714372) + * Fix bug with canonicalizing Window-specific drive-relative URL (r1692262) + * In file:// URLs, allow '\' directly after Windows drive letter (r1692259) + * Fix segfault with recursive configuration value definitions (issue #4543) + * FSFS: Improve error messages when DAG lookup fails (r1795120) + * Transcode command-line arguments to UTF-8 (r1797190, r1797362, et al) + * Fix segfault on x509 certificate with empty name (r1798157) + * Fix segfault with invalid URLs in svn:externals (r1803471) + * Windows: Failure to write files might remain undetected (r1806014) + - Other tool improvements and bugfixes: + * New svn-mergeinfo-normalizer tool (r1695992 et al) + * Allow configuring mailer.py to use SMTP SSL (r1777846) + * svnmucc can now delete directories with deleted children (issue #4666) + * svn-vendor.py: Minor enhancements, mostly in treating symlinks (r1732669) + * bash_completion: Better URL completion (r1701494) + * bash_completion: Complete arguments to 'svn info --show-item' (r1698276) + * fsfs-stats: New 1.8-compatible wrapper for 'svnfsfs stats' (r1802032) + * Drop support for upgrading working copies created with Subversion 1.7 + (r1807584 et al) + + Developer-visible changes: + - General: + * windows: Removed support for building with Visual Studio 6.0 (r1703419) + * Fix .py scripts throughout the source tree for Python 3 (r1741723 et al) + * Support memcached on Windows with APR-util 1.3 or later (r1674626 et al) + * Don't require GNU-specific sed(1) extensions during the build (r1693159) + * get-deps.sh: download Googlemock and Googletest from GitHub (r1746303) + * windows: Add autodetection for 'zlibstat.lib' (r1783704) + * windows: Compile libsvn_fs_* as DLLs (r1696758, -83) + * windows: Allow building against OpenSSL 1.1.0 (r1814724 et al) + * OS X: Silence compile-time deprecation warnings with SASL (r1739649) + * OS X: Silence ranlib warnings about disabled WIN32 code (r1809792) + * 'make check GLOBAL_SCHEDULER=1' will run many tests in parallel (r1716399) + * unix: New '--enable-apache-whitelist' configure script option (r1732294) + * OS X: Support 'configure --enable-runtime-module-search' (r1677273) + * tests: Allow tests to be run over HTTP/2 (r1710707) + * tests: httpd compile-time and run-time version may differ (r1808955 et al) + * tests: Add pre-cooked repos for all FSFS versions. (r1816402 et al) + * tests: Add FSFS_DIR_DELTIFICATION option. (r1813897) + * Add basic tests for svn_xml_parser_t API (r1765214) + * Unbreak the test suite on Python 3 (r1743034, -81, et al) + * Make the test suite work when checked out of a git repository (r1771118) + * Allow Apache HTTPD with mod_deflate in testsuite on Windows (r1758776) + * Support modern utilities for finding free TCP ports for tests (r1684649) + * The C test scheduler is more efficient in SMP environments (r1775555) + * The C tests convert paths from/to UTF-8 more efficiently (r1775642) + * Add INSTALL instructions for building with OpenSSL 1.1.0 (r1778313) + * Improved INSTALL instructions for Windows (r1703470, -2, -3, -4, et al) + * Updated INSTALL instructions (r1691712) + * windows: Support Visual Studio 2017 (r1786653, r1786669) + * gnome-keyring: Support libsecret in preference to libgnome-keyring + (r1798004) + * kwallet: Support KDE 5 in preference to KDE 4 (r1798731) + * kwallet: Fix KDE5 support with clang 3.8 (r1802536 et al) + * kwallet: Add --with-kwallet=INCDIR:LIBDIR build option (r1802646) + * Rename cxxhl bindings 'make tests' to avoid confusion with 'make test' + (r1800849) + * 'make check': Allow testing with FSFS compression (r1801936) + * svnserveautocheck.sh: Support out-of-tree builds when running a single + test file (r1802081) + * Distribution artifacts now prepared with swig 3.0.10 (r1802135) + * SQLite: Use https:// links to download amalgamation sources (r1817043) + * Create reproducible tarballs (r1804618 et al) + * Disable static builds of the apache and auth provider modules (r1802612) + * utf8proc: Update to version 2.1.0 (r1809090 et al) + * utf8proc: Build against the system library by default (r1803210 et al) + - API changes: + * New svn_client_conflict_* API functions for the new conflict resolver. + * New svn_repos_fs_get_mergeinfo2() with streamy access (r1780810 et al) + * New streamy svn_repos_get_logs5() API function (r1730389, -1163) + * New streamy svn_fs_paths_changed3() API function (r1727822, r1745055) + * New svn_client_list4() API function (r1767186) + * New svn_ra_list() API function (r1767190) + * New svn_repos_list() API function (r1765088) + * New svn_stream_contents_checksum() API function (r1755486, -6651) + * New svn_io_file_get_offset() API function (r1719269) + * New svn_base64_encode2 API function (r1711517) + * New svn_fs_create2() API function (r1710631) + * New svn_string_from_stream2() API function (r1710065) + * New svn_io_write_atomic2() API function (r1703142) + * New svn_stream_for_stdin2() API function (r1702983) + * New svn_io_file_rename2() API function (r1701017) + * New svn_error_quick_wrapf() API function (r1662668) + * New svn_repos_path_change_t type (r1802114) + * New svn_repos_log_entry_t type (r1802114) + * New svn_cstring_join2() API (r1806041) + * New svn_txdelta_to_svndiff_stream() API (r1803140 et al) + * svn_repos_parse_dumpstream3() now accepts NULL pointers (r1700180) + * Return resettable streams from svn_stream_checksummed2(). (r1804807) + * Fix svnserveautocheck&davautocheck when time is only a built-in (r1665652) + - Bindings: + * Configure the swig bindings only if swig has been enabled (r1751167) + * Error if 'configure --with-swig' is used and swig is not found (r1700844) + * Perl: Fix build with libraries in non-standard LD_LIBRARY_PATH (r1781588) + * JavaHL can now get revision properties along with log messages (r1780819) + * JavaHL: Allow access to constructors of a couple JavaHL classes (r1739704) + * JavaHL: Correct some JNIEntry method names (r1706738) + * Allow swig bindings scripts to configure the FSFS cache (r1709922) + * Disable some swig wrappers that aren't working (r1700966) + * JavaHL: Make StringArray nullable (r1785429) + * JavaHL: Add missing exception checks (r1801108) + * Ruby: Fix handling of NULL MD5 digests (r1811786) + * Ruby: Detect versions up to 2.4 (r1806570) + + Version 1.9.7 (10 Aug 2017, from /branches/1.9.x) http://svn.apache.org/repos/asf/subversion/tags/1.9.7 @@ -994,6 +1282,51 @@ http://svn.apache.org/repos/asf/subversion/tags/1.9.0 * javahl: allow compiling with a C++11 compiler (r1684412) +Version 1.8.19 +(10 Aug 2017, from /branches/1.8.x) +http://svn.apache.org/repos/asf/subversion/tags/1.8.19 + + User-visible changes: + - Client-side bugfixes: + * Fix arbitrary code execution vulnerability CVE-2017-9800 + See + for details. + + - Server-side bugfixes: + (none) + + - Bindings bugfixes: + (none) + + Developer-visible changes: + - General: + (none) + + - API changes: + (none) + + +Version 1.8.18 +(10 Jul 2017, from /branches/1.8.x) +http://svn.apache.org/repos/asf/subversion/tags/1.8.18 + + User-visible changes: + - Server-side bugfixes: + * fsfs: never attempt to share directory representations (r1785053) + * fsfs: make consistency independent of hash algorithms (r1785737 et al) + This change makes Subversion resilient to collision attacks, including + SHA-1 collision attacks such as . See also our + documentation at and + . + + - Client-side and server-side bugfixes: + * work around an APR bug related to file truncation (r1759116) + + Developer-visible changes: + - General: + * update serf download URI in build scripts (r1700130 et al) + + Version 1.8.17 (29 Nov 2016, from /branches/1.8.x) http://svn.apache.org/repos/asf/subversion/tags/1.8.17 @@ -2666,7 +2999,7 @@ the 1.6 release: http://subversion.apache.org/docs/re * fixed: ra_serf doesn't support http-auth-types config (issue #3435) * fixed: merge sets incorrect mergeinfo on skipped paths (issue #3440) * fixed: ra_serf inconsistent handling of cached authn creds (issue #3450) - * fixed: ra_serf sefault with using NTLM or Negotiate auth (r876910) + * fixed: ra_serf segfault with using NTLM or Negotiate auth (r876910) * fixed: excluded subtrees are not detected by svnversion (issue #3461) * fixed: submitting a changelist while obstructed item exists (issue #3484) * fixed: crash when changing an external's URL (issue #3530) Modified: head/contrib/subversion/COMMITTERS ============================================================================== --- head/contrib/subversion/COMMITTERS Tue May 8 04:51:47 2018 (r333353) +++ head/contrib/subversion/COMMITTERS Tue May 8 04:52:52 2018 (r333354) @@ -19,7 +19,7 @@ Blanket commit access: fitz Brian W. Fitzpatrick daniel Daniel Stenberg cmpilato C. Michael Pilato - philip Philip Martin + philip Philip Martin jerenkrantz Justin Erenkrantz rooneg Garrett Rooney blair Blair Zajac @@ -27,14 +27,13 @@ Blanket commit access: dlr Daniel Rall mbk Mark Benedetto King jaa Jani Averbach - julianfoad Julian Foad + julianfoad Julian Foad jszakmeister John Szakmeister ehu Erik Hülsmann breser Ben Reser maxb Max Bowsher dberlin Daniel Berlin danderson David Anderson - ivan Ivan Zhakov djames David James pburba Paul Burba glasser David Glasser @@ -48,17 +47,20 @@ Blanket commit access: kou Kouhei Sutou danielsh Daniel Shahaf peters Peter Samuelson - rhuijben Bert Huijben + rhuijben Bert Huijben stylesen Senthil Kumaran S steveking Stefan Küng - neels Neels J. Hofmeyr + neels Neels J. Hofmeyr jwhitlock Jeremy Whitlock sbutler Stephen Butler dannas Daniel Näslund - stefan2 Stefan Fuhrmann + stefan2 Stefan Fuhrmann jcorvel Johan Corveleyn trent Trent Nelson kotkov Evgeny Kotkov + astieger Andreas Stieger + jamessan James McCoy + luke1410 Stefan Hett [[END ACTIVE FULL COMMITTERS. LEAVE THIS LINE HERE; SCRIPTS LOOK FOR IT.]] @@ -76,6 +78,7 @@ Full committers who have asked to be listed as dormant malcolm Malcolm Rowe naked Nuutti Kotivuori ringstrom Tobias Ringström + ivan Ivan Zhakov Partial committers who have asked to be listed as dormant: @@ -100,6 +103,7 @@ Commit access for specific areas: rschupp Roderich Schupp (Swig bindings) stilor Alexey Neyman (Python bindings, svn-vendor.py) + troycurtisjr Troy Curtis, Jr (Swig bindings) Packages: @@ -164,14 +168,14 @@ Commit access for specific areas: humbedooh Daniel Gruno (svnpubsub) prabhugs Prabhu Gnana Sundar (verify-keep-going) schabi Markus Schaber (testsuite) - gbg Gabriela Gibson (gtest) + gbg Gabriela Gibson (gtest) + lyalyakin Pavel Lyalyakin (site) Translation of message files: niqueco Nicolás Lichtmaier (po: es) luebbe Lübbe Onken (po: de) jensseidel Jens Seidel (po: de) - astieger Andreas Stieger (po: de) oyvindmo Øyvind Møll (po: nb) sunny256 Øyvind A. Holm (po: nb) jzgoda Jaroslaw Zgoda (po: pl) @@ -188,8 +192,7 @@ Commit access for specific areas: lark Wang Jian (po: zh_CN) [EMAIL IS BOUNCING] giorgio_valoti Giorgio Valoti (po: it) - nebiac Federico Nebiacolombo (po: it) [EMAIL - IS BOUNCING] + nebiac Federico Nebiacolombo (po: it) fabien Fabien Coelho (po: fr) marcelg Marcel Gosselin (po: fr) mattiase Mattias EngdegÃ¥rd (po: sv) Modified: head/contrib/subversion/INSTALL ============================================================================== --- head/contrib/subversion/INSTALL Tue May 8 04:51:47 2018 (r333353) +++ head/contrib/subversion/INSTALL Tue May 8 04:52:52 2018 (r333354) @@ -3,7 +3,7 @@ A Quick Guide ====================================== -$LastChangedDate: 2015-12-12 04:00:43 +0000 (Sat, 12 Dec 2015) $ +$LastChangedDate: 2017-12-25 04:00:08 +0000 (Mon, 25 Dec 2017) $ Contents: @@ -22,7 +22,7 @@ Contents: E. Building the Latest Source under Windows III. BUILDING A SUBVERSION SERVER - A. Setting Up Apache + A. Setting Up Apache Httpd B. Making and Installing the Subversion Server C. Configuring Apache for Subversion D. Running and Testing @@ -55,7 +55,7 @@ I. INTRODUCTION 'installers' for both Windows and OS X. Visit this page for package links: - http://subversion.apache.org/packages.html + https://subversion.apache.org/packages.html For those of you who still wish to build from source, Subversion follows the Unix convention of "./configure && make", but it has @@ -96,9 +96,9 @@ I. INTRODUCTION These diff streams are used everywhere -- over the network, in the repository, and in the client's working copy. - * libserf (OPTIONAL for client) + * Apache Serf (OPTIONAL for client) - The Serf library allows the Subversion client to send HTTP + The Apache Serf library allows the Subversion client to send HTTP requests. This is necessary if you want your client to access a repository served by the Apache HTTP server. There is an alternate 'svnserve' server as well, though, and clients @@ -110,10 +110,16 @@ I. INTRODUCTION * OpenSSL (OPTIONAL for client and server) OpenSSL enables your client to access SSL-encrypted https:// - URLs (using libserf) in addition to unencrypted http:// URLs. + URLs (using Apache Serf) in addition to unencrypted http:// URLs. To use SSL with Subversion's WebDAV server, Apache needs to be compiled with OpenSSL as well. + * Netwide Assembler (OPTIONAL for client and server) + + The Netwide Assembler (NASM) is used to build the (optionally) + assembler modules of OpenSSL. As of OpenSSL 1.1.0 NASM is the + only supported assembler. + * Berkeley DB (OPTIONAL for client and server) There are two different repository 'back-end' @@ -185,7 +191,7 @@ I. INTRODUCTION Subversion's own configure script may need to be told where to find them, if they were not installed in standard system locations. - Note: there are optional dependencies (such as openssl, swig, and httpd) + Note: there are optional dependencies (such as OpenSSL, swig, and httpd) which get-deps.sh does not download. Note: Because previous builds of Subversion may have installed older @@ -202,7 +208,7 @@ I. INTRODUCTION If you do not have a pre-installed APR and APR-util, you will need to get these yourself: - http://apr.apache.org/download.cgi + https://apr.apache.org/download.cgi On Unix systems, if you already have the APR libraries compiled and do not wish to regenerate them from source code, then Subversion needs to @@ -271,11 +277,11 @@ I. INTRODUCTION newer. The autogen.sh script knows about that. - 5. Serf library 1.3.4 or newer (OPTIONAL) + 5. Apache Serf library 1.3.4 or newer (OPTIONAL) If you want your client to be able to speak to an Apache server (via a http:// or https:// URL), you must link against - serf. Though optional, we strongly recommend this. + Apache Serf. Though optional, we strongly recommend this. In order to use ra_serf, you must install serf, and run Subversion's ./configure with the argument --with-serf. If serf is installed in a @@ -285,31 +291,31 @@ I. INTRODUCTION instead. - Serf can be obtained via your system's package distribution + Apache Serf can be obtained via your system's package distribution system or directly from http://code.google.com/p/serf/. - For more information on serf and Subversion's ra_serf, see the file - subversion/libsvn_ra_serf/README. + For more information on Apache Serf and Subversion's ra_serf, see the + file subversion/libsvn_ra_serf/README. 6. OpenSSL (OPTIONAL) - ### needs some updates. I think serf automagically handles + ### needs some updates. I think Apache Serf automagically handles ### finding OpenSSL, but we may need more docco here. and w.r.t ### zlib. - The Serf library has support for SSL encryption by relying on the + The Apache Serf library has support for SSL encryption by relying on the OpenSSL library. - a. Using OpenSSL on the client through Serf + a. Using OpenSSL on the client through Apache Serf - On Unix systems, to build Serf with OpenSSL, you need OpenSSL + On Unix systems, to build Apache Serf with OpenSSL, you need OpenSSL installed on your system, and you must add "--with-ssl" as a "./configure" parameter. If your OpenSSL installation is hard - for Serf to find, you may need to use "--with-libs=/path/to/lib" - in addition. In particular, on Red Hat (but not Fedora Core) it - is necessary to specify "--with-libs=/usr/kerberos" for OpenSSL - to be found. You can also specify a path to the zlib library - using "--with-libs". + for Apache Serf to find, you may need to use + "--with-libs=/path/to/lib" in addition. In particular, on Red Hat + (but not Fedora Core) it is necessary to specify + "--with-libs=/usr/kerberos" for OpenSSL to be found. You can also + specify a path to the zlib library using "--with-libs". Under Windows, you can specify the paths to these libraries by passing the options --with-zlib and --with-openssl to gen-make.py. @@ -334,7 +340,7 @@ I. INTRODUCTION including instructions for building and packaging on both Unix systems and Windows, at: - http://www.openssl.org/ + https://www.openssl.org/ 7. Berkeley DB 4.X (OPTIONAL) @@ -358,7 +364,7 @@ I. INTRODUCTION You'll need Berkeley DB installed on your system. You can get it from: - http://www.oracle.com/technology/software/products/berkeley-db/index.html + http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html If you have Berkeley DB installed in a place not searched by default for includes and libraries, add something like this: @@ -393,7 +399,7 @@ I. INTRODUCTION 9. Apache Web Server 2.2.X or newer (OPTIONAL) - (http://httpd.apache.org/download.cgi) + (https://httpd.apache.org/download.cgi) The Apache httpd server is one of two methods to make your Subversion repository available over a network - the other is a custom server @@ -404,7 +410,7 @@ I. INTRODUCTION is done: See section III for details. - 10. Python 2.7 or newer (http://www.python.org/) (OPTIONAL) + 10. Python 2.7 or newer (https://www.python.org/) (OPTIONAL) If you want to run "make check" or build from the latest source under Unix/Windows as described in section II.B, II.E and III.D, @@ -424,7 +430,7 @@ I. INTRODUCTION 12. SQLite (REQUIRED) - Subversion requires SQLite version 3.7.12 or above. You can meet this + Subversion requires SQLite version 3.8.2 or above. You can meet this dependency several ways: * Use an SQLite amalgamation file. * Specify an SQLite installation to use. @@ -435,7 +441,7 @@ I. INTRODUCTION --with-sqlite configure option. This file also ships with the Subversion dependencies distribution, or you can download it from SQLite: - http://www.sqlite.org/download.html + https://www.sqlite.org/download.html 13. pkg-config (Unix only, OPTIONAL) @@ -521,6 +527,19 @@ I. INTRODUCTION $ ./get-dep.sh gmock + 22. LZ4 (OPTIONAL) + + Subversion uses LZ4 compression libary version r129 or above. Configure + will attempt to locate the system library by default using pkg-config + and known paths. + + If it is installed in a non-standard location, then use: + + --with-lz4=/path/to/liblz4 + + If configure should use the version bundled with the sources, use: + --with-lz4=internal + D. Documentation The primary documentation for Subversion is the free book @@ -542,7 +561,7 @@ II. INSTALLATION Download the most recent distribution tarball from: - http://subversion.apache.org/download/ + https://subversion.apache.org/download/ Unpack it, and use the standard GNU procedure to compile: @@ -674,28 +693,22 @@ II. INSTALLATION D. Installing from a Zip or Installer File under Windows - -------------------------------------------------------- + ----------------------------------------------------- Of all the ways of getting a Subversion client, this is the - easiest. Download a Zip (*.zip) or self-extracting installer - (*-setup.exe) file from: + easiest. Download a Zip or self-extracting installer via: - http://subversion.apache.org/packages#windows + https://subversion.apache.org/packages.html#windows - For a Zip file, run your unzipping utility (WinZIP, ZipGenius, - UltimateZIP, FreeZIP, whatever) and extract the DLLs and EXEs to - a directory of your choice. Included in the download is the SVN - client, the SVNADMIN administration tool, and the SVNLOOK - reporting tool. + For a Zip file extract the DLLs and EXEs to a directory of your + choice. Included in the download are among other tools the SVN + client, the SVNADMIN administration tool and the SVNLOOK reporting + tool. - Note that if you need support for non-English locales you'll have - to set the APR_ICONV_PATH environment variable to the path of the - iconv directory in the folder that contains the Subversion install. + You may want to add the bin directory in the Subversion folder to your + PATH environment variable so as to not have to use the full path when + running Subversion commands. - You may also want to add the bin directory in the Subversion folder - to your PATH environment variable so as to not have to use the full - path when running Subversion commands. - To test the installation, open a DOS box (run either "cmd" or "command" from the Start menu's "Run..." menu option), change to the directory you installed the executables into, and run: @@ -713,58 +726,41 @@ II. INSTALLATION E.1 Prerequisites - * Visual Studio 6 and service pack. It can be built with later versions - of Visual Studio (Visual Studio.NET 2005-2015, Visual C++ Express - 2005-2010, Visual Studio Express 2012-2013 and Visual Studio Community - 2013-2015) but these instructions assume VS6. - * A recent Windows SDK. (Not needed with Visual Studio 2005 and later) - If you are using Visual Studio 6, you need the latest SDK which - is compatible with VC6, which is the one from February 2003. - You can get it from MSDN: - https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/e1147034-9b0b-4494-a5bc-6dfebb6b7eb1/download-and-install-microsoft-platform-sdk-febuary-2003-last-version-with-vc6-support?forum=windowssdk - * Python 2.7 or higher, downloaded from http://www.python.org/ which is + * Microsoft Visual Studio. Any recent (2005+) version containing the + Visual C++ component will work (E.g. Professional, Express, Community + Edition). Make sure you enable C++ support during setup. + * Python 2.7 or higher, downloaded from https://www.python.org/ which is used to generate the project files. Note that Python 3.x is not supported (yet). - * Perl 5.8 or higher from http://www.activestate.com/ - * Awk (from http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is - needed to compile Apache or APR. Note that this is the actual awk - program, not an installer - just rename it to awk.exe and it is - ready to use. + * Perl 5.8 or higher from https://www.perl.org/get.html + * Awk (from https://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is + needed to compile Apache. Note that this is the actual awk program, + not an installer - just rename it to awk.exe and it is ready to use. * Apache apr, apr-util, and optionally apr-iconv libraries, version - 1.3 or later. Included in both the Subversion dependencies ZIP file - and the Apache 2 source zip. If you are building from a Subversion + 1.3 or later (1.2 for apr-iconv). If you are building from a Subversion checkout and have not downloaded Apache 2, then get these 3 libraries - from http://www.apache.org/dist/apr/. - * SQLite 3.7.12 or higher from http://www.sqlite.org/download.html - * ZLib 1.2 or higher is required and is included in the Subversion - dependencies zip file or can be obtained from http://www.zlib.net/ - * Either a Subversion client binary from http://subversion.apache.org/ to - do the initial checkout of the Subversion source or the zip file - source distribution. See the section "Bootstrapping from a Zip or - Installer File under Windows" above for more. - * A means of unpacking the files, e.g., WinZIP or similar. + from https://www.apache.org/dist/apr/. + * SQLite 3.8.2 or higher from https://www.sqlite.org/download.html + (3.8.11.1 or higher recommended) + * ZLib 1.2 or higher is required and can be obtained from + http://www.zlib.net/ + * Either a Subversion client binary from + https://subversion.apache.org/packages.html to do the initial checkout + of the Subversion source or the zip file source distribution. Additional Options - * [Optional] Apache 2 source, downloaded from - http://httpd.apache.org/download.cgi, these instructions assume + * [Optional] Apache Httpd 2 source, downloaded from + https://httpd.apache.org/download.cgi, these instructions assume version 2.0.58. This is only needed for building the Subversion server Apache modules. ### FIXME Apache 2.2 or greater required. - * [Optional] Apache 2 msi install file, also from - http://httpd.apache.org/download.cgi (required for running the - tests). Only needed for testing the server dso modules and if - you are using Visual Studio 6. - Note that if you are not using Visual Studio 6 (and you want to - run and test the server modules) then you must rebuild Apache - from source -- do not use the stock MSI since mixing C runtime - libraries is not supported. - * [Optional] Berkeley DB for backend support of the server - components -- versions 4.3.27 and 4.4.20 are available from - http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=688 - as db-4.3.27-win32.zip and db-4.4.20-win32.zip. + * [Optional] Berkeley DB for backend support of the server components + are available from + http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html + (Version 4.4.20 or in specific cases some higher version recommended) For more information see Section I.C.7. - * [Optional] Openssl 0.9.7f or higher can be obtained from - http://www.openssl.org/source/openssl-0.9.7f.tar.gz + * [Optional] Openssl can be obtained from https://www.openssl.org/source/ + * [Optional] NASM can be obtained from http://www.nasm.us/ * [Optional] A modified version of GNU libintl, called svn-win32-libintl.zip, can be used for displaying localized messages. Available at: @@ -774,14 +770,11 @@ II. INSTALLATION binaries from http://gnuwin32.sourceforge.net/. You'll need the binaries (gettext-0.14.1-bin.zip) and dependencies (gettext-0.14.1-dep.zip). - * [Optional] An assembler, e.g., MASM32 from http://www.masm32.com/ - or nasm which is available from - http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D E.2 Notes - The Serf library supports secure connections with OpenSSL and - on-the-wire compression with zlib. If you want to use the + The Apache Serf library supports secure connections with OpenSSL + and on-the-wire compression with zlib. If you want to use the secure connections feature, you should pass the option "--with-openssl" to the gen-make.py script. See Section I.C.6 for more details. @@ -802,35 +795,20 @@ II. INSTALLATION installer to register environment variables or run VCVARS32.BAT before building anything. If you are using a newer Visual Studio, use the 'Visual Studio 20xx Command Prompt' on the Start menu. - * Install and register a recent Windows Core SDK if you are using - Visual Studio 6. This is a quote from the Microsoft February 2003 - SDK documentation: - - "To register the SDK bin, include, and library directories with - Microsoft Visual Studio® version 6.0 and Visual Studio .NET, - click Start, point to All Programs, point to Microsoft Platform - SDK February 2003, point to Visual Studio Registration, and then - click Register PSDK Directories with Visual Studio. This - registration process places the SDK bin, include, and library - directories at the beginning of the search paths, which ensures - that the latest headers and libraries are used when building - applications in the IDE. Note that for Visual Studio 6.0 - integration to succeed, Visual Studio 6.0 must run at least once - before you select Register PSDK Directories with Visual - Studio. Also note that when this option is run, the IDEs should - not be running." - * Install Python and add it to your path * Install Perl (it should add itself to the path) + ### Subversion doesn't need perl. Only some dependencies need it + (OpenSSL and some apr scripts) * Copy AWK (awk95.exe) to awk.exe (e.g. SVN\awk\awk.exe) and add the directory containing it (e.g. SVN\awk) to the path. - * [Optional] Install Apache 2 using the msi file if you are going to test - the server dso modules and are using Visual Studio 6. You must build - and install it from source if you are not using Visual Studio 6 and - want to build and/or test the server modules. + ### Subversion doesn't need awk. Only some dependencies need it + (some apr scripts) + * [Optional] Install NASM and add it to your path + ### Subversion doesn't need NASM. Only some dependencies need it + optionally (OpenSSL) * [Optional] If you checked out Subversion from the repository and want to build Subversion with http/https access support then install the - serf sources into SVN\src-trunk\serf. + Apache Serf sources into SVN\src-trunk\serf. * [Optional] If you want BDB backend support, extract the Berkeley DB files into SVN\src-trunk\db4-win32. It's a good idea to add SVN\src-trunk\db4-win32\bin to your PATH, so that Subversion can find @@ -846,6 +824,7 @@ II. INSTALLATION SVN\src-trunk\db4-win32\include, and all the import libraries to SVN\src-trunk\db4-win32\lib. Again, the DLLs should be somewhere in your path. + ### Just use --with-serf instead of the hardcoded path * [Optional] If you want to build the server modules, extract Apache source into SVN\httpd-2.x.x. @@ -858,22 +837,22 @@ II. INSTALLATION - Extract the apr, apr-util and apr-iconv directories from the srclib folder in the Apache httpd source into SVN\apr, SVN\apr-util, and SVN\apr-iconv respectively. + ### Just use --with-apr, etc. instead of the hardcoded paths * Extract the ZLib sources into SVN\zlib if you are not using the zlib included in the dependencies zip file. - * [Optional] If you want secure connection (https) client support, or if - you are building with enabled support for serf extract openssl into - SVN\openssl-x.x.x + ### Just use --with-zlib instead of the hardcoded path + * [Optional] If you want secure connection (https) client support extract + OpenSSL into SVN\openssl + ### And pass the path to both serf and gen-make.py * [Optional] If you want localized message support, extract svn-win32-libintl.zip into SVN\svn-win32-libintl and extract gettext-x.x.x-bin.zip and gettext-x.x.x-dep.zip into SVN\gettext-x.x.x-bin. - Add SVN\gettext-x.x.x-bin\bin to your path. - * [Optional] Extract MASM32 (only the ML.EXE and ML.ERR files) into - SVN\asm (or extract nasm into SVN\asm) and put it in your path. - * Download the SQLite amalgemation from - http://www.sqlite.org/download.html - and extract it into SVN\sqlite-amalgemation. - See I.C.12 for alternatives to using the amalgemation package. + Add SVN\gettext-x.x.x-bin\bin to your path. + * Download the SQLite amalgamation from + https://www.sqlite.org/download.html + and extract it into SVN\sqlite-amalgamation. + See I.C.12 for alternatives to using the amalgamation package. E.4 Building the Binaries @@ -890,7 +869,7 @@ II. INSTALLATION C:>set VER=trunk C:>set DIR=trunk C:>set BUILD_ROOT=C:\SVN - C:>set PYTHONDIR=C:\Python22 + C:>set PYTHONDIR=C:\Python27 C:>set AWKDIR=C:\SVN\Awk C:>set ASMDIR=C:\SVN\asm C:>set SDKINC="C:\Program Files\Microsoft SDK\include" @@ -901,9 +880,9 @@ II. INSTALLATION C:>set INCLUDE=%SDKINC%;%INCLUDE% C:>set LIB=%SDKLIB%;%LIB% - OpenSSL + OpenSSL < 1.1.0 - C:>cd openssl-0.9.7f + C:>cd openssl C:>perl Configure VC-WIN32 [*] C:>call ms\do_masm C:>nmake -f ms\ntdll.mak @@ -913,11 +892,23 @@ II. INSTALLATION *Note: Use "call ms\do_nasm" if you have nasm instead of MASM, or "call ms\do_ms" if you don't have an assembler. + Also if you are using OpenSSL >= 1.0.0 masm is no longer + supported. You will have to use do_nasm or do_ms in this case. + OpenSSL >= 1.1.0 + + C:>cd openssl + C:>perl Configure VC-WIN32 + C:>nmake + C:>nmake test + C:>cd .. + Apache 2 This step is only required for building the server dso modules. + ### FIXME Apache 2.2 or greater required. Old build instructions for VC6. + C:>set APACHEDIR=C:\Program Files\Apache Group\Apache2 C:>msdev httpd-2.0.58\apache.dsw /MAKE "BuildBin - Win32 Release" @@ -946,11 +937,11 @@ II. INSTALLATION Note that you'd make sure to define ZLIB_WINAPI in the ZLib config header and move the lib-file into the zlib root-directory. - Serf + Apache Serf - ### Section about serf might be required/useful to add. - ### scons is required too and serf needs to be configured prior to be - ### able to build Subversion using: + ### Section about Apache Serf might be required/useful to add. + ### scons is required too and Apache Serf needs to be configured prior to + ### be able to build Subversion using: ### scons APR=[PATH_TO_APR] APU=[PATH_TO_APU] OPENSSL=[PATH_TO_OPENSSL] ### ZLIB=[PATH_TO_ZLIB] PREFIX=[PATH_TO_SERF_DEST] ### scons check @@ -967,28 +958,16 @@ II. INSTALLATION the APR libraries; the options are --with-apr, --with-apr-util and --with-apr-iconv. * If you would like a debug build substitute Debug for Release in - the msdev/msbuild commands. + the msbuild command. * There have been rumors that Subversion on Win32 can be built using the latest cygwin, you probably don't want the zip file source distribution though. ymmv. - * The /USEENV switch to msdev makes it take notice of the INCLUDE and - LIB environment variables, it also makes it ignore its own lib and - include settings so you need to have the Windows SDK lib and include - directories in the LIB and INCLUDE environment variables. Do *not* - use this switch when starting up the msdev Visual environment. If you - wish to build in the Visual environment the SDK lib and include - directories must be in the Tools/Options/Directories settings (if you - followed the 'Register the SDK with Visual Studio 6' instructions - above this has been done for you). - * If you are using Visual Studio later than VC6 change -t dsw into - -t vcproj and add the --vsnet-version=20xx option on the gen-make.py - command. - In this case you will also have to distribute the C runtime dll with - the binaries. Also, since Apache/APR do not provide .vcproj files, - you will need to convert the Apache/APR .dsp files to .vcproj files - with Visual Studio before building -- just open the Apache .dsw file - and answer 'Yes To All' when the conversion dialog pops up, or you - can open the individual .dsp files and convert them one at a time. + * You will also have to distribute the C runtime dll with the binaries. + Also, since Apache/APR do not provide .vcproj files, you will need to + convert the Apache/APR .dsp files to .vcproj files with Visual Studio + before building -- just open the Apache .dsw file and answer 'Yes To + All' when the conversion dialog pops up, or you can open the individual + .dsp files and convert them one at a time. The Apache/APR projects required by Subversion are: apr-util\libaprutil.dsp, apr\libapr.dsp, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue May 8 04:54:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9A52AFCE213; Tue, 8 May 2018 04:54:38 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47FC18050A; Tue, 8 May 2018 04:54:38 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 426D225953; Tue, 8 May 2018 04:54:38 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w484sciI063955; Tue, 8 May 2018 04:54:38 GMT (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w484saLN063947; Tue, 8 May 2018 04:54:36 GMT (envelope-from peter@FreeBSD.org) Message-Id: <201805080454.w484saLN063947@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: peter set sender to peter@FreeBSD.org using -f From: Peter Wemm Date: Tue, 8 May 2018 04:54:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333355 - in head/usr.bin/svn: . lib/libsvn_client lib/libsvn_delta lib/libsvn_fs_x lib/libsvn_ra_serf lib/libsvn_ra_svn lib/libsvn_repos lib/libsvn_subr svn X-SVN-Group: head X-SVN-Commit-Author: peter X-SVN-Commit-Paths: in head/usr.bin/svn: . lib/libsvn_client lib/libsvn_delta lib/libsvn_fs_x lib/libsvn_ra_serf lib/libsvn_ra_svn lib/libsvn_repos lib/libsvn_subr svn X-SVN-Commit-Revision: 333355 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 04:54:38 -0000 Author: peter Date: Tue May 8 04:54:36 2018 New Revision: 333355 URL: https://svnweb.freebsd.org/changeset/base/333355 Log: Update svn/svnlite from 1.9.7 to 1.10.0 Modified: head/usr.bin/svn/lib/libsvn_client/Makefile head/usr.bin/svn/lib/libsvn_delta/Makefile head/usr.bin/svn/lib/libsvn_fs_x/Makefile head/usr.bin/svn/lib/libsvn_ra_serf/Makefile head/usr.bin/svn/lib/libsvn_ra_svn/Makefile head/usr.bin/svn/lib/libsvn_repos/Makefile head/usr.bin/svn/lib/libsvn_subr/Makefile head/usr.bin/svn/svn/Makefile head/usr.bin/svn/svn_private_config.h Modified: head/usr.bin/svn/lib/libsvn_client/Makefile ============================================================================== --- head/usr.bin/svn/lib/libsvn_client/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/lib/libsvn_client/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -8,13 +8,14 @@ INTERNALLIB= yes LIB= svn_client SRCS= add.c blame.c cat.c changelist.c checkout.c cleanup.c \ - cmdline.c commit.c commit_util.c compat_providers.c copy.c \ - copy_foreign.c ctx.c delete.c deprecated.c diff.c \ - diff_local.c diff_summarize.c export.c externals.c import.c \ - info.c iprops.c list.c locking_commands.c log.c merge.c \ - mergeinfo.c mtcc.c patch.c prop_commands.c \ - ra.c relocate.c repos_diff.c resolved.c revert.c revisions.c \ - status.c switch.c update.c upgrade.c url.c util.c version.c + cmdline.c commit_util.c commit.c compat_providers.c \ + conflicts.c copy_foreign.c copy.c ctx.c delete.c deprecated.c \ + diff_local.c diff_summarize.c diff.c export.c externals.c \ + import.c info.c iprops.c list.c locking_commands.c log.c \ + merge_elements.c merge.c mergeinfo.c mtcc.c patch.c \ + prop_commands.c ra.c relocate.c repos_diff.c resolved.c \ + revert.c revisions.c shelve.c status.c switch.c update.c \ + upgrade.c url.c util.c version.c CFLAGS+= -I${SVNDIR}/include -I${SVNDIR} -I${.CURDIR}/../.. \ -I${.CURDIR}/../libapr \ Modified: head/usr.bin/svn/lib/libsvn_delta/Makefile ============================================================================== --- head/usr.bin/svn/lib/libsvn_delta/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/lib/libsvn_delta/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -7,8 +7,10 @@ INTERNALLIB= yes LIB= svn_delta -SRCS= cancel.c compat.c compose_delta.c debug_editor.c \ - default_editor.c deprecated.c depth_filter_editor.c editor.c \ +SRCS= branch.c branch_compat.c branch_migrate.c branch_nested.c \ + branch_repos.c cancel.c compat.c compose_delta.c \ + debug_editor.c default_editor.c deprecated.c \ + depth_filter_editor.c editor.c element.c \ path_driver.c svndiff.c text_delta.c version.c xdelta.c CFLAGS+= -I${SVNDIR}/include -I${SVNDIR} -I${.CURDIR}/../.. \ Modified: head/usr.bin/svn/lib/libsvn_fs_x/Makefile ============================================================================== --- head/usr.bin/svn/lib/libsvn_fs_x/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/lib/libsvn_fs_x/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -7,7 +7,8 @@ INTERNALLIB= yes LIB= svn_fs_x -SRCS= cached_data.c caching.c changes.c dag.c fs.c fs_id.c fs_x.c \ +SRCS= batch_fsync.c cached_data.c caching.c changes.c \ + dag_cache.c dag.c fs.c fs_id.c fs_x.c \ hotcopy.c id.c index.c lock.c low_level.c noderevs.c pack.c \ recovery.c rep-cache.c reps.c rev_file.c revprops.c \ string_table.c temp_serializer.c transaction.c tree.c \ Modified: head/usr.bin/svn/lib/libsvn_ra_serf/Makefile ============================================================================== --- head/usr.bin/svn/lib/libsvn_ra_serf/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/lib/libsvn_ra_serf/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -10,9 +10,10 @@ LIB= svn_ra_serf SRCS= blame.c blncache.c commit.c eagain_bucket.c \ get_deleted_rev.c get_file.c get_lock.c getdate.c \ getlocations.c getlocationsegments.c getlocks.c \ - inherited_props.c lock.c log.c merge.c mergeinfo.c \ - multistatus.c options.c property.c replay.c sb_bucket.c \ - serf.c stat.c update.c util.c util_error.c xml.c + inherited_props.c list.c lock.c log.c merge.c mergeinfo.c \ + multistatus.c options.c property.c replay.c \ + request_body.c sb_bucket.c serf.c stat.c stream_bucket.c \ + update.c util.c util_error.c xml.c CFLAGS+= -I${SVNDIR}/include -I${SVNDIR} -I${.CURDIR}/../.. \ -I${.CURDIR}/../libapr \ Modified: head/usr.bin/svn/lib/libsvn_ra_svn/Makefile ============================================================================== --- head/usr.bin/svn/lib/libsvn_ra_svn/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/lib/libsvn_ra_svn/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -8,7 +8,7 @@ INTERNALLIB= yes LIB= svn_ra_svn SRCS= client.c cram.c cyrus_auth.c deprecated.c editorp.c \ - internal_auth.c marshal.c streams.c version.c + internal_auth.c marshal.c streams.c wrapped_sasl.c version.c CFLAGS+= -I${SVNDIR}/include -I${SVNDIR} -I${.CURDIR}/../.. \ -I${.CURDIR}/../libapr \ Modified: head/usr.bin/svn/lib/libsvn_repos/Makefile ============================================================================== --- head/usr.bin/svn/lib/libsvn_repos/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/lib/libsvn_repos/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -7,9 +7,10 @@ INTERNALLIB= yes LIB= svn_repos -SRCS= authz.c authz_pool.c config_pool.c commit.c delta.c \ +SRCS= authz.c authz_info.c authz_parse.c \ + config_pool.c commit.c compat.c config_file.c delta.c \ deprecated.c dump.c fs-wrap.c hooks.c load-fs-vtable.c \ - load.c log.c node_tree.c notify.c replay.c reporter.c \ + list.c load.c log.c node_tree.c notify.c replay.c reporter.c \ repos.c rev_hunt.c CFLAGS+= -I${SVNDIR}/include -I${SVNDIR} -I${.CURDIR}/../.. \ Modified: head/usr.bin/svn/lib/libsvn_subr/Makefile ============================================================================== --- head/usr.bin/svn/lib/libsvn_subr/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/lib/libsvn_subr/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -2,18 +2,20 @@ .include "${.CURDIR}/../Makefile.inc" -.PATH: ${SVNDIR}/libsvn_subr +.PATH: ${SVNDIR}/libsvn_subr ${SVNDIR}/libsvn_subr/lz4 INTERNALLIB= yes LIB= svn_subr SRCS= adler32.c atomic.c auth.c base64.c bit_array.c \ cache-inprocess.c cache-membuffer.c cache-memcache.c \ - cache.c cache_config.c checksum.c cmdline.c compat.c \ - compress.c config.c config_auth.c config_file.c \ + cache.c cache-null.c cache_config.c checksum.c cmdline.c \ + compat.c compress_lz4.c compress_zlib.c \ + config.c config_auth.c config_file.c \ config_win.c crypto.c ctype.c date.c debug.c \ - deprecated.c dirent_uri.c dso.c eol.c error.c fnv1a.c \ - gpg_agent.c hash.c io.c iter.c lock.c log.c \ + deprecated.c dirent_uri.c dso.c \ + encode.c eol.c error.c fnv1a.c \ + gpg_agent.c hash.c io.c iter.c lock.c log.c lz4.c \ macos_keychain.c magic.c md5.c mergeinfo.c mutex.c nls.c \ object_pool.c opt.c packed_data.c path.c \ pool.c prefix_string.c prompt.c properties.c quoprint.c \ Modified: head/usr.bin/svn/svn/Makefile ============================================================================== --- head/usr.bin/svn/svn/Makefile Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/svn/Makefile Tue May 8 04:54:36 2018 (r333355) @@ -14,7 +14,8 @@ SRCS= add-cmd.c auth-cmd.c blame-cmd.c cat-cmd.c chang mergeinfo-cmd.c mkdir-cmd.c move-cmd.c notify.c patch-cmd.c \ propdel-cmd.c propedit-cmd.c propget-cmd.c proplist-cmd.c \ props.c propset-cmd.c relocate-cmd.c resolve-cmd.c \ - resolved-cmd.c revert-cmd.c status-cmd.c similarity.c status.c \ + resolved-cmd.c revert-cmd.c \ + shelve-cmd.c status-cmd.c similarity.c status.c \ svn.c switch-cmd.c unlock-cmd.c update-cmd.c upgrade-cmd.c util.c CFLAGS+=-I${SVNDIR}/include -I${SVNDIR} -I${.CURDIR:H} \ Modified: head/usr.bin/svn/svn_private_config.h ============================================================================== --- head/usr.bin/svn/svn_private_config.h Tue May 8 04:52:52 2018 (r333354) +++ head/usr.bin/svn/svn_private_config.h Tue May 8 04:54:36 2018 (r333355) @@ -52,6 +52,12 @@ /* Define to 1 if you have the header file. */ #define HAVE_SERF_H 1 +/* Define to use internal LZ4 code */ +#define SVN_INTERNAL_LZ4 1 + +/* Define to use internal UTF8PROC code */ +#define SVN_INTERNAL_UTF8PROC 1 + /* Define to 1 if you have the header file. */ #define HAVE_STDBOOL_H 1 @@ -110,7 +116,7 @@ #define PACKAGE_NAME "subversion" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "subversion 1.9.4" +#define PACKAGE_STRING "subversion 1.10.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "subversion" @@ -119,7 +125,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.9.4" +#define PACKAGE_VERSION "1.10.0" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 From owner-svn-src-head@freebsd.org Tue May 8 06:09:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF3E3FA8151; Tue, 8 May 2018 06:09:49 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A3A7A70962; Tue, 8 May 2018 06:09:49 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9E906264E0; Tue, 8 May 2018 06:09:49 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4869n9G000553; Tue, 8 May 2018 06:09:49 GMT (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4869nuE000552; Tue, 8 May 2018 06:09:49 GMT (envelope-from peter@FreeBSD.org) Message-Id: <201805080609.w4869nuE000552@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: peter set sender to peter@FreeBSD.org using -f From: Peter Wemm Date: Tue, 8 May 2018 06:09:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333358 - head/lib/libsqlite3 X-SVN-Group: head X-SVN-Commit-Author: peter X-SVN-Commit-Paths: head/lib/libsqlite3 X-SVN-Commit-Revision: 333358 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 06:09:50 -0000 Author: peter Date: Tue May 8 06:09:49 2018 New Revision: 333358 URL: https://svnweb.freebsd.org/changeset/base/333358 Log: Revert r333353 - FTS5 uses log(3) which currently breakes non-amd64 builds. Reported by: lwhsu Modified: head/lib/libsqlite3/Makefile Modified: head/lib/libsqlite3/Makefile ============================================================================== --- head/lib/libsqlite3/Makefile Tue May 8 05:11:06 2018 (r333357) +++ head/lib/libsqlite3/Makefile Tue May 8 06:09:49 2018 (r333358) @@ -36,7 +36,6 @@ CFLAGS+= -I${SQLITE} \ -DSQLITE_THREADSAFE=1 \ -DSQLITE_ENABLE_FTS3 \ -DSQLITE_ENABLE_FTS4 \ - -DSQLITE_ENABLE_FTS5 \ -DSQLITE_ENABLE_RTREE .include From owner-svn-src-head@freebsd.org Tue May 8 10:58:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB63FFB1993; Tue, 8 May 2018 10:58:15 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 716326C70A; Tue, 8 May 2018 10:58:15 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1033) id 65FDBDCC2; Tue, 8 May 2018 10:58:15 +0000 (UTC) Date: Tue, 8 May 2018 10:58:15 +0000 From: Alexey Dokuchaev To: Kyle Evans Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333351 - head/usr.bin/grep Message-ID: <20180508105815.GB7299@FreeBSD.org> References: <201805080353.w483rlde033542@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805080353.w483rlde033542@repo.freebsd.org> User-Agent: Mutt/1.9.2 (2017-12-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 10:58:15 -0000 On Tue, May 08, 2018 at 03:53:47AM +0000, Kyle Evans wrote: > New Revision: 333351 > URL: https://svnweb.freebsd.org/changeset/base/333351 > > Log: > bsdgrep: Allow "-" to be passed to -f to mean "standard input" > > A version of this patch was originally sent to me by se@, matching behavior > from newer versions of GNU grep. > > - if ((f = fopen(fn, "r")) == NULL) > + if (strcmp(fn, "-") == 0) > + f = stdin; This makes sense: when `fn' is "-", `f' is stdin. > - fclose(f); > + if (strcmp(fn, "-") != 0) > + fclose(f); But not this one: why are you checking `fn' again? Shouldn't you fclose(f) if it's not stdin? if (f != stdin) fclose(f); ./danfe From owner-svn-src-head@freebsd.org Tue May 8 11:39:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DC773FB2B62; Tue, 8 May 2018 11:39: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8948074E44; Tue, 8 May 2018 11:39: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 6A62029C1C; Tue, 8 May 2018 11:39: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 w48Bd2ZE065358; Tue, 8 May 2018 11:39:02 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48Bd2ub065357; Tue, 8 May 2018 11:39:02 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201805081139.w48Bd2ub065357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 8 May 2018 11:39:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333362 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 333362 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 11:39:03 -0000 Author: hselasky Date: Tue May 8 11:39:01 2018 New Revision: 333362 URL: https://svnweb.freebsd.org/changeset/base/333362 Log: Fix for missing network interface address event when adding the default IPv6 based link-local address. The default link local address for IPv6 is added as part of bringing the network interface up. Move the call to "EVENTHANDLER_INVOKE(ifaddr_event,)" from the SIOCAIFADDR_IN6 ioctl(2) handler to in6_notify_ifa() which should catch all the cases of adding IPv6 based addresses to a network interface. Add a witness warning in case the event handler is not allowed to sleep. Reviewed by: network (ae), kib Differential Revision: https://reviews.freebsd.org/D13407 MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/netinet6/in6.c Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Tue May 8 10:56:06 2018 (r333361) +++ head/sys/netinet6/in6.c Tue May 8 11:39:01 2018 (r333362) @@ -686,7 +686,6 @@ aifaddr_out: * The failure means address duplication was detected. */ } - EVENTHANDLER_INVOKE(ifaddr_event, ifp); break; } @@ -1399,7 +1398,7 @@ in6_notify_ifa(struct ifnet *ifp, struct in6_ifaddr *i if (ifacount <= 1 && ifp->if_ioctl) { error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia); if (error) - return (error); + goto done; } /* @@ -1439,7 +1438,7 @@ in6_notify_ifa(struct ifnet *ifp, struct in6_ifaddr *i ia->ia_flags |= IFA_RTSELF; error = rtinit(&ia->ia_ifa, RTM_ADD, ia->ia_flags | rtflags); if (error) - return (error); + goto done; ia->ia_flags |= IFA_ROUTE; } @@ -1452,6 +1451,11 @@ in6_notify_ifa(struct ifnet *ifp, struct in6_ifaddr *i if (error == 0) ia->ia_flags |= IFA_RTSELF; } +done: + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, + "Invoking IPv6 network device address event may sleep"); + + EVENTHANDLER_INVOKE(ifaddr_event, ifp); return (error); } From owner-svn-src-head@freebsd.org Tue May 8 13:23:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDAB7FB6003; Tue, 8 May 2018 13:23:39 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8F7A46AB35; Tue, 8 May 2018 13:23:39 +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 708C12ADB3; Tue, 8 May 2018 13:23:39 +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 w48DNdGs020036; Tue, 8 May 2018 13:23:39 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48DNdhO020035; Tue, 8 May 2018 13:23:39 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201805081323.w48DNdhO020035@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 8 May 2018 13:23:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333363 - head/sys/powerpc/pseries X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/pseries X-SVN-Commit-Revision: 333363 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 13:23:40 -0000 Author: jhibbits Date: Tue May 8 13:23:39 2018 New Revision: 333363 URL: https://svnweb.freebsd.org/changeset/base/333363 Log: Fix wrong cpu0 identification Summary: chrp_cpuref_init() was relying on the boot strap processor to be the first child of /cpus. That was not always the case, specially on pseries with FDT. This change uses the "reg" property of each CPU instead and also adds several sanity checks to avoid unexpected behavior (maybe too many panics?). The main observed symptom was interrupts being missed by the main processor, leading to timeouts and the kernel aborting the boot. Submitted by: Leandro Lupori Reviewed by: nwhitehorn Differential Revision: https://reviews.freebsd.org/D15174 Modified: head/sys/powerpc/pseries/platform_chrp.c Modified: head/sys/powerpc/pseries/platform_chrp.c ============================================================================== --- head/sys/powerpc/pseries/platform_chrp.c Tue May 8 11:39:01 2018 (r333362) +++ head/sys/powerpc/pseries/platform_chrp.c Tue May 8 13:23:39 2018 (r333363) @@ -350,14 +350,26 @@ chrp_smp_get_bsp(platform_t plat, struct cpuref *cpure return (0); } +static void +get_cpu_reg(phandle_t cpu, cell_t *reg) +{ + int res; + + res = OF_getproplen(cpu, "reg"); + if (res != sizeof(cell_t)) + panic("Unexpected length for CPU property reg on Open Firmware\n"); + OF_getencprop(cpu, "reg", reg, res); +} + static int chrp_cpuref_init(void) { - phandle_t cpu, dev; + phandle_t cpu, dev, chosen, pbsp; + ihandle_t ibsp; char buf[32]; - int a, res; - cell_t interrupt_servers[32]; - uint64_t bsp; + int a, bsp, res, res2, tmp_cpuref_cnt; + static struct cpuref tmp_cpuref[MAXCPU]; + cell_t interrupt_servers[32], addr_cells, size_cells, reg, bsp_reg; if (platform_cpuref_valid) return (0); @@ -371,25 +383,77 @@ chrp_cpuref_init(void) dev = OF_peer(dev); } - bsp = 0; + /* Make sure that cpus reg property have 1 address cell and 0 size cells */ + res = OF_getproplen(dev, "#address-cells"); + res2 = OF_getproplen(dev, "#size-cells"); + if (res != res2 || res != sizeof(cell_t)) + panic("CPU properties #address-cells and #size-cells not found on Open Firmware\n"); + OF_getencprop(dev, "#address-cells", &addr_cells, sizeof(addr_cells)); + OF_getencprop(dev, "#size-cells", &size_cells, sizeof(size_cells)); + if (addr_cells != 1 || size_cells != 0) + panic("Unexpected values for CPU properties #address-cells and #size-cells on Open Firmware\n"); + + /* Look for boot CPU in /chosen/cpu and /chosen/fdtbootcpu */ + + chosen = OF_finddevice("/chosen"); + if (chosen == -1) + panic("Device /chosen not found on Open Firmware\n"); + + bsp_reg = -1; + + /* /chosen/cpu */ + if (OF_getproplen(chosen, "cpu") == sizeof(ihandle_t)) { + OF_getprop(chosen, "cpu", &ibsp, sizeof(ibsp)); + pbsp = OF_instance_to_package(ibsp); + if (pbsp != -1) + get_cpu_reg(pbsp, &bsp_reg); + } + + /* /chosen/fdtbootcpu */ + if (bsp_reg == -1) { + if (OF_getproplen(chosen, "fdtbootcpu") == sizeof(cell_t)) + OF_getprop(chosen, "fdtbootcpu", &bsp_reg, sizeof(bsp_reg)); + } + + if (bsp_reg == -1) + panic("Boot CPU not found on Open Firmware\n"); + + bsp = -1; + tmp_cpuref_cnt = 0; for (cpu = OF_child(dev); cpu != 0; cpu = OF_peer(cpu)) { res = OF_getprop(cpu, "device_type", buf, sizeof(buf)); if (res > 0 && strcmp(buf, "cpu") == 0) { res = OF_getproplen(cpu, "ibm,ppc-interrupt-server#s"); if (res > 0) { - - OF_getencprop(cpu, "ibm,ppc-interrupt-server#s", interrupt_servers, res); - for (a = 0; a < res/sizeof(cell_t); a++) { - platform_cpuref[platform_cpuref_cnt].cr_hwref = interrupt_servers[a]; - platform_cpuref[platform_cpuref_cnt].cr_cpuid = platform_cpuref_cnt; + get_cpu_reg(cpu, ®); + if (reg == bsp_reg) + bsp = tmp_cpuref_cnt; - platform_cpuref_cnt++; + for (a = 0; a < res/sizeof(cell_t); a++) { + tmp_cpuref[tmp_cpuref_cnt].cr_hwref = interrupt_servers[a]; + tmp_cpuref[tmp_cpuref_cnt].cr_cpuid = tmp_cpuref_cnt; + tmp_cpuref_cnt++; } } } + } + + if (bsp == -1) + panic("Boot CPU not found\n"); + + /* Map IDs, so BSP has CPUID 0 regardless of hwref */ + for (a = bsp; a < tmp_cpuref_cnt; a++) { + platform_cpuref[platform_cpuref_cnt].cr_hwref = tmp_cpuref[a].cr_hwref; + platform_cpuref[platform_cpuref_cnt].cr_cpuid = platform_cpuref_cnt; + platform_cpuref_cnt++; + } + for (a = 0; a < bsp; a++) { + platform_cpuref[platform_cpuref_cnt].cr_hwref = tmp_cpuref[a].cr_hwref; + platform_cpuref[platform_cpuref_cnt].cr_cpuid = platform_cpuref_cnt; + platform_cpuref_cnt++; } platform_cpuref_valid = 1; From owner-svn-src-head@freebsd.org Tue May 8 14:36:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1A76FB7AE0; Tue, 8 May 2018 14:36:43 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 907817AFCA; Tue, 8 May 2018 14:36:43 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-lf0-f50.google.com (mail-lf0-f50.google.com [209.85.215.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id 2FB14214F3; Tue, 8 May 2018 14:36:43 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-lf0-f50.google.com with SMTP id r25-v6so2435559lfd.1; Tue, 08 May 2018 07:36:43 -0700 (PDT) X-Gm-Message-State: ALQs6tDtDl4Iw+CaBpgZfu1a11G+VGUC+qg61kOJAm7SnnZs66cOUU2W L1072m4e8jbZhiN5j51YrbDvZZxkIefBWjKkHU0= X-Google-Smtp-Source: AB8JxZqyFw1Mf190SkI76UgaK42SrdsyjAbcghKSW2w+AIjSi+Vr2EKyeRfWYExpW4GJkQGERYI3Aoi3oOdOJUvASfo= X-Received: by 2002:a2e:7113:: with SMTP id m19-v6mr29300273ljc.44.1525790201790; Tue, 08 May 2018 07:36:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.46.49.18 with HTTP; Tue, 8 May 2018 07:36:21 -0700 (PDT) In-Reply-To: <20180508105815.GB7299@FreeBSD.org> References: <201805080353.w483rlde033542@repo.freebsd.org> <20180508105815.GB7299@FreeBSD.org> From: Kyle Evans Date: Tue, 8 May 2018 09:36:21 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333351 - head/usr.bin/grep To: Alexey Dokuchaev Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 14:36:44 -0000 On Tue, May 8, 2018 at 5:58 AM, Alexey Dokuchaev wrote: > On Tue, May 08, 2018 at 03:53:47AM +0000, Kyle Evans wrote: >> New Revision: 333351 >> URL: https://svnweb.freebsd.org/changeset/base/333351 >> >> Log: >> bsdgrep: Allow "-" to be passed to -f to mean "standard input" >> >> A version of this patch was originally sent to me by se@, matching behavior >> from newer versions of GNU grep. >> >> - if ((f = fopen(fn, "r")) == NULL) >> + if (strcmp(fn, "-") == 0) >> + f = stdin; > > This makes sense: when `fn' is "-", `f' is stdin. > >> - fclose(f); >> + if (strcmp(fn, "-") != 0) >> + fclose(f); > > But not this one: why are you checking `fn' again? Shouldn't you fclose(f) > if it's not stdin? > > if (f != stdin) > fclose(f); > You say potato, I say potato. =) In this case, it's low overhead in a not particularly performance critical bit and drawing a connection between this and the opening of 'f' above in an extremely obvious way. Granted, there's only one way to get stdin here. This also might get ripped out soon- we'll see how things go. From owner-svn-src-head@freebsd.org Tue May 8 14:49:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07905FB7FF4; Tue, 8 May 2018 14:49:13 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AE7B57F2C1; Tue, 8 May 2018 14:49:12 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1033) id A731E9984; Tue, 8 May 2018 14:49:12 +0000 (UTC) Date: Tue, 8 May 2018 14:49:12 +0000 From: Alexey Dokuchaev To: Kyle Evans Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333351 - head/usr.bin/grep Message-ID: <20180508144912.GA3581@FreeBSD.org> References: <201805080353.w483rlde033542@repo.freebsd.org> <20180508105815.GB7299@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 14:49:13 -0000 On Tue, May 08, 2018 at 09:36:21AM -0500, Kyle Evans wrote: > On Tue, May 8, 2018 at 5:58 AM, Alexey Dokuchaev wrote: > >> > >> - if ((f = fopen(fn, "r")) == NULL) > >> + if (strcmp(fn, "-") == 0) > >> + f = stdin; > > > > This makes sense: when `fn' is "-", `f' is stdin. > > > >> - fclose(f); > >> + if (strcmp(fn, "-") != 0) > >> + fclose(f); > > > > But not this one: why are you checking `fn' again? Shouldn't you > > fclose(f) if it's not stdin? > > > > if (f != stdin) > > fclose(f); > > > > You say potato, I say potato. =) In this case, it's low overhead in a > not particularly performance critical bit and drawing a connection > between this and the opening of 'f' above in an extremely obvious way. Well, I'm not worried about the overhead or performance issues, they are negligible. I just find second strcmp(fn, "-") to be semantically wrong (and that's why you need implicit "there's only one way to get stdin here" assert). You assign `f' to stdin based on `fn' being "-", but you fclose(f) when it's not stdin; the value of `fn' is irrelevant this time. As a nice bonus, you only spell strcmp(fn, "-") once and do not need to implicitly assert that there's only one way to get stdin here. > This also might get ripped out soon -- we'll see how things go. I see, understood. ./danfe From owner-svn-src-head@freebsd.org Tue May 8 16:16:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9319EFBA481; Tue, 8 May 2018 16:16:57 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 436046FE12; Tue, 8 May 2018 16:16:57 +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 2451C2C91F; Tue, 8 May 2018 16:16:57 +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 w48GGv1V005434; Tue, 8 May 2018 16:16:57 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48GGvI0005433; Tue, 8 May 2018 16:16:57 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805081616.w48GGvI0005433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 8 May 2018 16:16:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333365 - head/stand/common X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/stand/common X-SVN-Commit-Revision: 333365 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 16:16:57 -0000 Author: imp Date: Tue May 8 16:16:56 2018 New Revision: 333365 URL: https://svnweb.freebsd.org/changeset/base/333365 Log: We don't use f_devdata, so don't set it. Should that need to change later, we can. This leaves ZFS as the only irregular f_devdata user in the tree. Modified: head/stand/common/dev_net.c Modified: head/stand/common/dev_net.c ============================================================================== --- head/stand/common/dev_net.c Tue May 8 15:51:40 2018 (r333364) +++ head/stand/common/dev_net.c Tue May 8 16:16:56 2018 (r333365) @@ -190,7 +190,6 @@ net_open(struct open_file *f, ...) } netdev_opens++; - f->f_devdata = &netdev_sock; return (error); } @@ -202,9 +201,6 @@ net_close(struct open_file *f) if (debug) printf("net_close: opens=%d\n", netdev_opens); #endif - - f->f_devdata = NULL; - return (0); } From owner-svn-src-head@freebsd.org Tue May 8 16:56:03 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A05CEFBB777; Tue, 8 May 2018 16:56:03 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 486C478C27; Tue, 8 May 2018 16:56:03 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 25B4C2CFBF; Tue, 8 May 2018 16:56:03 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48Gu2h5025626; Tue, 8 May 2018 16:56:02 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48Gu2NP025625; Tue, 8 May 2018 16:56:02 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805081656.w48Gu2NP025625@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Tue, 8 May 2018 16:56:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333366 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333366 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 16:56:03 -0000 Author: shurd Date: Tue May 8 16:56:02 2018 New Revision: 333366 URL: https://svnweb.freebsd.org/changeset/base/333366 Log: iflib: cleanup queues when iflib_device_register fail Submitted by: Jacob Keller Reviewed by: gallatin MFC after: 3 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D15299 Modified: head/sys/net/iflib.c Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Tue May 8 16:16:56 2018 (r333365) +++ head/sys/net/iflib.c Tue May 8 16:56:02 2018 (r333366) @@ -4453,7 +4453,8 @@ fail_intr_free: if (scctx->isc_intr == IFLIB_INTR_MSIX || scctx->isc_intr == IFLIB_INTR_MSI) pci_release_msi(ctx->ifc_dev); fail_queues: - /* XXX free queues */ + iflib_tx_structures_free(ctx); + iflib_rx_structures_free(ctx); fail: IFDI_DETACH(ctx); CTX_UNLOCK(ctx); @@ -5065,14 +5066,16 @@ iflib_qset_structures_setup(if_ctx_t ctx) { int err; + /* + * It is expected that the caller takes care of freeing queues if this + * fails. + */ if ((err = iflib_tx_structures_setup(ctx)) != 0) return (err); - if ((err = iflib_rx_structures_setup(ctx)) != 0) { + if ((err = iflib_rx_structures_setup(ctx)) != 0) device_printf(ctx->ifc_dev, "iflib_rx_structures_setup failed: %d\n", err); - iflib_tx_structures_free(ctx); - iflib_rx_structures_free(ctx); - } + return (err); } From owner-svn-src-head@freebsd.org Tue May 8 17:00:37 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E55BFFBBA42; Tue, 8 May 2018 17:00:36 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 99F5F7B5AB; Tue, 8 May 2018 17:00:36 +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 7AF772CFF1; Tue, 8 May 2018 17:00:36 +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 w48H0a8i025941; Tue, 8 May 2018 17:00:36 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48H0ZI2025934; Tue, 8 May 2018 17:00:35 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805081700.w48H0ZI2025934@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 8 May 2018 17:00:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333368 - in head/sys: amd64/amd64 i386/i386 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: amd64/amd64 i386/i386 X-SVN-Commit-Revision: 333368 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 17:00:37 -0000 Author: kib Date: Tue May 8 17:00:34 2018 New Revision: 333368 URL: https://svnweb.freebsd.org/changeset/base/333368 Log: Prepare DB# handler for deferred trigger of watchpoints. Since pop %ss/mov %ss instructions defer all interrupts and exceptions for the next instruction, it is possible that the userspace watchpoint trap executes on the first instruction of the kernel entry for syscall/bpt. In this case, DB# should be treated similarly to NMI: on amd64 we must always load GSBASE even if the trap comes from kernel mode, and load the kernel page table root into %cr3. Moreover, the trap must use the dedicated stack, because we are still on the user stack when trapped on syscall entry. For i386, we must reload %cr3. The syscall instruction is not configured, so there is no issue with executing on user stack when trapping. Due to some CPU erratas it is not always possible to detect that the userspace watchpoint triggered by inspecting %dr6. In trap(), compare the trap %rip with the known unsafe entry points and if matched pretend that the watchpoint did not fire at all. Thank you to the MSRC Incident Response Team, and in particular Greg Lenti and Nate Warfield, for coordinating the response to this issue across multiple vendors. Thanks to Computer Recycling at The Working Center of Kitchener for making hardware available to allow us to test the patch on additional CPU families. Reviewed by: jhb Discussed with: Matthew Dillon Tested by: emaste Sponsored by: The FreeBSD Foundation Security: CVE-2018-8897 Security: FreeBSD-SA-18:06.debugreg Modified: head/sys/amd64/amd64/exception.S head/sys/amd64/amd64/machdep.c head/sys/amd64/amd64/mp_machdep.c head/sys/amd64/amd64/pmap.c head/sys/amd64/amd64/trap.c head/sys/i386/i386/exception.s head/sys/i386/i386/trap.c Modified: head/sys/amd64/amd64/exception.S ============================================================================== --- head/sys/amd64/amd64/exception.S Tue May 8 16:56:14 2018 (r333367) +++ head/sys/amd64/amd64/exception.S Tue May 8 17:00:34 2018 (r333368) @@ -115,7 +115,6 @@ X\l: subq $TF_RIP,%rsp jmp alltraps_noen .endm - TRAP_NOEN dbg, T_TRCTRAP TRAP_NOEN bpt, T_BPTFLT #ifdef KDTRACE_HOOKS TRAP_NOEN dtrace_ret, T_DTRACE_RET @@ -536,6 +535,121 @@ fast_syscall_common: */ IDTVEC(fast_syscall32) sysret + +/* + * DB# handler is very similar to NM#, because 'mov/pop %ss' delay + * generation of exception until the next instruction is executed, + * which might be a kernel entry. So we must execute the handler + * on IST stack and be ready for non-kernel GSBASE. + */ +IDTVEC(dbg) + subq $TF_RIP,%rsp + movl $(T_TRCTRAP),TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + movq %rdi,TF_RDI(%rsp) + movq %rsi,TF_RSI(%rsp) + movq %rdx,TF_RDX(%rsp) + movq %rcx,TF_RCX(%rsp) + movq %r8,TF_R8(%rsp) + movq %r9,TF_R9(%rsp) + movq %rax,TF_RAX(%rsp) + movq %rbx,TF_RBX(%rsp) + movq %rbp,TF_RBP(%rsp) + movq %r10,TF_R10(%rsp) + movq %r11,TF_R11(%rsp) + movq %r12,TF_R12(%rsp) + movq %r13,TF_R13(%rsp) + movq %r14,TF_R14(%rsp) + movq %r15,TF_R15(%rsp) + SAVE_SEGS + movl $TF_HASSEGS,TF_FLAGS(%rsp) + cld + testb $SEL_RPL_MASK,TF_CS(%rsp) + jnz dbg_fromuserspace + /* + * We've interrupted the kernel. Preserve GS.base in %r12, + * %cr3 in %r13, and possibly lower half of MSR_IA32_SPEC_CTL in %r14d. + */ + movl $MSR_GSBASE,%ecx + rdmsr + movq %rax,%r12 + shlq $32,%rdx + orq %rdx,%r12 + /* Retrieve and load the canonical value for GS.base. */ + movq TF_SIZE(%rsp),%rdx + movl %edx,%eax + shrq $32,%rdx + wrmsr + movq %cr3,%r13 + movq PCPU(KCR3),%rax + cmpq $~0,%rax + je 1f + movq %rax,%cr3 +1: testl $CPUID_STDEXT3_IBPB,cpu_stdext_feature3(%rip) + je 2f + movl $MSR_IA32_SPEC_CTRL,%ecx + rdmsr + movl %eax,%r14d + call handle_ibrs_entry +2: FAKE_MCOUNT(TF_RIP(%rsp)) + movq %rsp,%rdi + call trap + MEXITCOUNT + testl $CPUID_STDEXT3_IBPB,cpu_stdext_feature3(%rip) + je 3f + movl %r14d,%eax + xorl %edx,%edx + movl $MSR_IA32_SPEC_CTRL,%ecx + wrmsr + /* + * Put back the preserved MSR_GSBASE value. + */ +3: movl $MSR_GSBASE,%ecx + movq %r12,%rdx + movl %edx,%eax + shrq $32,%rdx + wrmsr + movq %r13,%cr3 + RESTORE_REGS + addq $TF_RIP,%rsp + jmp doreti_iret +dbg_fromuserspace: + /* + * Switch to kernel GSBASE and kernel page table, and copy frame + * from the IST stack to the normal kernel stack, since trap() + * re-enables interrupts, and since we might trap on DB# while + * in trap(). + */ + swapgs + movq PCPU(KCR3),%rax + cmpq $~0,%rax + je 1f + movq %rax,%cr3 +1: movq PCPU(RSP0),%rax + movl $TF_SIZE,%ecx + subq %rcx,%rax + movq %rax,%rdi + movq %rsp,%rsi + rep;movsb + movq %rax,%rsp + call handle_ibrs_entry + movq PCPU(CURPCB),%rdi + orl $PCB_FULL_IRET,PCB_FLAGS(%rdi) + testb $CPUID_STDEXT_FSGSBASE,cpu_stdext_feature(%rip) + jz 3f + cmpw $KUF32SEL,TF_FS(%rsp) + jne 2f + rdfsbase %rax + movq %rax,PCB_FSBASE(%rdi) +2: cmpw $KUG32SEL,TF_GS(%rsp) + jne 3f + movl $MSR_KGSBASE,%ecx + rdmsr + shlq $32,%rdx + orq %rdx,%rax + movq %rax,PCB_GSBASE(%rdi) +3: jmp calltrap /* * NMI handling is special. Modified: head/sys/amd64/amd64/machdep.c ============================================================================== --- head/sys/amd64/amd64/machdep.c Tue May 8 16:56:14 2018 (r333367) +++ head/sys/amd64/amd64/machdep.c Tue May 8 17:00:34 2018 (r333368) @@ -669,6 +669,7 @@ struct gate_descriptor *idt = &idt0[0]; /* interrupt d static char dblfault_stack[PAGE_SIZE] __aligned(16); static char mce0_stack[PAGE_SIZE] __aligned(16); static char nmi0_stack[PAGE_SIZE] __aligned(16); +static char dbg0_stack[PAGE_SIZE] __aligned(16); CTASSERT(sizeof(struct nmi_pcpu) == 16); struct amd64tss common_tss[MAXCPU]; @@ -821,7 +822,7 @@ extern inthand_t IDTVEC(tss), IDTVEC(missing), IDTVEC(stk), IDTVEC(prot), IDTVEC(page), IDTVEC(mchk), IDTVEC(rsvd), IDTVEC(fpu), IDTVEC(align), IDTVEC(xmm), IDTVEC(dblfault), - IDTVEC(div_pti), IDTVEC(dbg_pti), IDTVEC(bpt_pti), + IDTVEC(div_pti), IDTVEC(bpt_pti), IDTVEC(ofl_pti), IDTVEC(bnd_pti), IDTVEC(ill_pti), IDTVEC(dna_pti), IDTVEC(fpusegm_pti), IDTVEC(tss_pti), IDTVEC(missing_pti), IDTVEC(stk_pti), IDTVEC(prot_pti), IDTVEC(page_pti), @@ -1632,8 +1633,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) SEL_KPL, 0); setidt(IDT_DE, pti ? &IDTVEC(div_pti) : &IDTVEC(div), SDT_SYSIGT, SEL_KPL, 0); - setidt(IDT_DB, pti ? &IDTVEC(dbg_pti) : &IDTVEC(dbg), SDT_SYSIGT, - SEL_KPL, 0); + setidt(IDT_DB, &IDTVEC(dbg), SDT_SYSIGT, SEL_KPL, 4); setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 2); setidt(IDT_BP, pti ? &IDTVEC(bpt_pti) : &IDTVEC(bpt), SDT_SYSIGT, SEL_UPL, 0); @@ -1715,6 +1715,13 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) np = ((struct nmi_pcpu *) &mce0_stack[sizeof(mce0_stack)]) - 1; np->np_pcpu = (register_t) pc; common_tss[0].tss_ist3 = (long) np; + + /* + * DB# stack, runs on ist4. + */ + np = ((struct nmi_pcpu *) &dbg0_stack[sizeof(dbg0_stack)]) - 1; + np->np_pcpu = (register_t) pc; + common_tss[0].tss_ist4 = (long) np; /* Set the IO permission bitmap (empty due to tss seg limit) */ common_tss[0].tss_iobase = sizeof(struct amd64tss) + IOPERM_BITMAP_SIZE; Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Tue May 8 16:56:14 2018 (r333367) +++ head/sys/amd64/amd64/mp_machdep.c Tue May 8 17:00:34 2018 (r333368) @@ -91,6 +91,7 @@ extern struct pcpu __pcpu[]; char *doublefault_stack; char *mce_stack; char *nmi_stack; +char *dbg_stack; /* * Local data and functions. @@ -251,6 +252,10 @@ init_secondary(void) np = ((struct nmi_pcpu *) &mce_stack[PAGE_SIZE]) - 1; common_tss[cpu].tss_ist3 = (long) np; + /* The DB# stack runs on IST4. */ + np = ((struct nmi_pcpu *) &dbg_stack[PAGE_SIZE]) - 1; + common_tss[cpu].tss_ist4 = (long) np; + /* Prepare private GDT */ gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu]; for (x = 0; x < NGDT; x++) { @@ -297,6 +302,10 @@ init_secondary(void) np = ((struct nmi_pcpu *) &mce_stack[PAGE_SIZE]) - 1; np->np_pcpu = (register_t) pc; + /* Save the per-cpu pointer for use by the DB# handler. */ + np = ((struct nmi_pcpu *) &dbg_stack[PAGE_SIZE]) - 1; + np->np_pcpu = (register_t) pc; + wrmsr(MSR_FSBASE, 0); /* User value */ wrmsr(MSR_GSBASE, (u_int64_t)pc); wrmsr(MSR_KGSBASE, (u_int64_t)pc); /* XXX User value while we're in the kernel */ @@ -391,6 +400,8 @@ native_start_all_aps(void) mce_stack = (char *)kmem_malloc(kernel_arena, PAGE_SIZE, M_WAITOK | M_ZERO); nmi_stack = (char *)kmem_malloc(kernel_arena, PAGE_SIZE, + M_WAITOK | M_ZERO); + dbg_stack = (char *)kmem_malloc(kernel_arena, PAGE_SIZE, M_WAITOK | M_ZERO); dpcpu = (void *)kmem_malloc(kernel_arena, DPCPU_SIZE, M_WAITOK | M_ZERO); Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Tue May 8 16:56:14 2018 (r333367) +++ head/sys/amd64/amd64/pmap.c Tue May 8 17:00:34 2018 (r333368) @@ -7843,6 +7843,9 @@ pmap_pti_init(void) /* MC# stack IST 3 */ va = common_tss[i].tss_ist3 + sizeof(struct nmi_pcpu); pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); + /* DB# stack IST 4 */ + va = common_tss[i].tss_ist4 + sizeof(struct nmi_pcpu); + pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); } pmap_pti_add_kva_locked((vm_offset_t)kernphys + KERNBASE, (vm_offset_t)etext, true); Modified: head/sys/amd64/amd64/trap.c ============================================================================== --- head/sys/amd64/amd64/trap.c Tue May 8 16:56:14 2018 (r333367) +++ head/sys/amd64/amd64/trap.c Tue May 8 17:00:34 2018 (r333368) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); */ #include "opt_clock.h" +#include "opt_compat.h" #include "opt_cpu.h" #include "opt_hwpmc_hooks.h" #include "opt_isa.h" @@ -102,6 +103,10 @@ PMC_SOFT_DEFINE( , , page_fault, write); #include #endif +extern inthand_t IDTVEC(bpt), IDTVEC(bpt_pti), IDTVEC(dbg), + IDTVEC(fast_syscall), IDTVEC(fast_syscall_pti), IDTVEC(fast_syscall32), + IDTVEC(int0x80_syscall_pti), IDTVEC(int0x80_syscall); + void __noinline trap(struct trapframe *frame); void trap_check(struct trapframe *frame); void dblfault_handler(struct trapframe *frame); @@ -535,6 +540,52 @@ trap(struct trapframe *frame) load_dr6(rdr6() & ~0xf); return; } + + /* + * Malicious user code can configure a debug + * register watchpoint to trap on data access + * to the top of stack and then execute 'pop + * %ss; int 3'. Due to exception deferral for + * 'pop %ss', the CPU will not interrupt 'int + * 3' to raise the DB# exception for the debug + * register but will postpone the DB# until + * execution of the first instruction of the + * BP# handler (in kernel mode). Normally the + * previous check would ignore DB# exceptions + * for watchpoints on user addresses raised in + * kernel mode. However, some CPU errata + * include cases where DB# exceptions do not + * properly set bits in %dr6, e.g. Haswell + * HSD23 and Skylake-X SKZ24. + * + * A deferred DB# can also be raised on the + * first instructions of system call entry + * points or single-step traps via similar use + * of 'pop %ss' or 'mov xxx, %ss'. + */ + if (pti) { + if (frame->tf_rip == + (uintptr_t)IDTVEC(fast_syscall_pti) || +#ifdef COMPAT_FREEBSD32 + frame->tf_rip == + (uintptr_t)IDTVEC(int0x80_syscall_pti) || +#endif + frame->tf_rip == (uintptr_t)IDTVEC(bpt_pti)) + return; + } else { + if (frame->tf_rip == + (uintptr_t)IDTVEC(fast_syscall) || +#ifdef COMPAT_FREEBSD32 + frame->tf_rip == + (uintptr_t)IDTVEC(int0x80_syscall) || +#endif + frame->tf_rip == (uintptr_t)IDTVEC(bpt)) + return; + } + if (frame->tf_rip == (uintptr_t)IDTVEC(dbg) || + /* Needed for AMD. */ + frame->tf_rip == (uintptr_t)IDTVEC(fast_syscall32)) + return; /* * FALLTHROUGH (TRCTRAP kernel mode, kernel address) */ Modified: head/sys/i386/i386/exception.s ============================================================================== --- head/sys/i386/i386/exception.s Tue May 8 16:56:14 2018 (r333367) +++ head/sys/i386/i386/exception.s Tue May 8 17:00:34 2018 (r333368) @@ -103,8 +103,6 @@ MCOUNT_LABEL(btrap) IDTVEC(div) pushl $0; TRAP(T_DIVIDE) -IDTVEC(dbg) - pushl $0; TRAP(T_TRCTRAP) IDTVEC(bpt) pushl $0; TRAP(T_BPTFLT) IDTVEC(dtrace_ret) @@ -287,6 +285,39 @@ norm_ill: jmp alltraps #endif +/* + * See comment in the handler for the kernel case T_TRCTRAP in trap.c. + * The exception handler must be ready to execute with wrong %cr3. + * We save original %cr3 in frame->tf_err, similarly to NMI and MCE + * handlers. + */ +IDTVEC(dbg) + pushl $0 + pushl $T_TRCTRAP + PUSH_FRAME2 + SET_KERNEL_SREGS + cld + movl %cr3, %eax + movl %eax, TF_ERR(%esp) + call 1f +1: popl %eax + movl (tramp_idleptd - 1b)(%eax), %eax + movl %eax, %cr3 + FAKE_MCOUNT(TF_EIP(%esp)) + testl $PSL_VM, TF_EFLAGS(%esp) + jnz dbg_user + testb $SEL_RPL_MASK,TF_CS(%esp) + jz calltrap +dbg_user: + NMOVE_STACKS + pushl %esp + movl $trap,%eax + call *%eax + add $4, %esp + movl $T_RESERVED, TF_TRAPNO(%esp) + MEXITCOUNT + jmp doreti + IDTVEC(mchk) pushl $0 pushl $T_MCHK @@ -468,6 +499,8 @@ doreti_exit: cmpl $T_NMI, TF_TRAPNO(%esp) je doreti_iret_nmi cmpl $T_MCHK, TF_TRAPNO(%esp) + je doreti_iret_nmi + cmpl $T_TRCTRAP, TF_TRAPNO(%esp) je doreti_iret_nmi testl $SEL_RPL_MASK, TF_CS(%esp) jz doreti_popl_fs Modified: head/sys/i386/i386/trap.c ============================================================================== --- head/sys/i386/i386/trap.c Tue May 8 16:56:14 2018 (r333367) +++ head/sys/i386/i386/trap.c Tue May 8 17:00:34 2018 (r333368) @@ -118,6 +118,8 @@ static int trap_pfault(struct trapframe *, int, vm_off static void trap_fatal(struct trapframe *, vm_offset_t); void dblfault_handler(void); +extern inthand_t IDTVEC(bpt), IDTVEC(dbg), IDTVEC(int0x80_syscall); + #define MAX_TRAP_MSG 32 struct trap_data { @@ -662,6 +664,36 @@ kernel_trctrap: load_dr6(rdr6() & ~0xf); return; } + + /* + * Malicious user code can configure a debug + * register watchpoint to trap on data access + * to the top of stack and then execute 'pop + * %ss; int 3'. Due to exception deferral for + * 'pop %ss', the CPU will not interrupt 'int + * 3' to raise the DB# exception for the debug + * register but will postpone the DB# until + * execution of the first instruction of the + * BP# handler (in kernel mode). Normally the + * previous check would ignore DB# exceptions + * for watchpoints on user addresses raised in + * kernel mode. However, some CPU errata + * include cases where DB# exceptions do not + * properly set bits in %dr6, e.g. Haswell + * HSD23 and Skylake-X SKZ24. + * + * A deferred DB# can also be raised on the + * first instructions of system call entry + * points or single-step traps via similar use + * of 'pop %ss' or 'mov xxx, %ss'. + */ + if (frame->tf_eip == + (uintptr_t)IDTVEC(int0x80_syscall) + setidt_disp || + frame->tf_eip == (uintptr_t)IDTVEC(bpt) + + setidt_disp || + frame->tf_eip == (uintptr_t)IDTVEC(dbg) + + setidt_disp) + return; /* * FALLTHROUGH (TRCTRAP kernel mode, kernel address) */ From owner-svn-src-head@freebsd.org Tue May 8 17:15:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52CE7FBC6BC; Tue, 8 May 2018 17:15:11 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0000C7ED10; Tue, 8 May 2018 17:15:10 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D53F52D329; Tue, 8 May 2018 17:15:10 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48HFAvQ036133; Tue, 8 May 2018 17:15:10 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48HFArO036132; Tue, 8 May 2018 17:15:10 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805081715.w48HFArO036132@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Tue, 8 May 2018 17:15:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333373 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333373 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 17:15:11 -0000 Author: shurd Date: Tue May 8 17:15:10 2018 New Revision: 333373 URL: https://svnweb.freebsd.org/changeset/base/333373 Log: iflib: print message when iflib_tx_structures_setup fails Print a message when iflib_tx_structures_setup fails, like we do for iflib_rx_structures_setup. Now that we always print a message from within iflib_qset_structures_setup when it fails, stop printing one in iflib_device_register() at the call site. Submitted by: Jacob Keller Reviewed by: gallatin MFC after: 3 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D15300 Modified: head/sys/net/iflib.c Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Tue May 8 17:14:54 2018 (r333372) +++ head/sys/net/iflib.c Tue May 8 17:15:10 2018 (r333373) @@ -4398,10 +4398,8 @@ iflib_device_register(device_t dev, void *sc, if_share goto fail; } - if ((err = iflib_qset_structures_setup(ctx))) { - device_printf(dev, "qset structure setup failed %d\n", err); + if ((err = iflib_qset_structures_setup(ctx))) goto fail_queues; - } /* * Group taskqueues aren't properly set up until SMP is started, @@ -5070,8 +5068,10 @@ iflib_qset_structures_setup(if_ctx_t ctx) * It is expected that the caller takes care of freeing queues if this * fails. */ - if ((err = iflib_tx_structures_setup(ctx)) != 0) + if ((err = iflib_tx_structures_setup(ctx)) != 0) { + device_printf(ctx->ifc_dev, "iflib_tx_structures_setup failed: %d\n", err); return (err); + } if ((err = iflib_rx_structures_setup(ctx)) != 0) device_printf(ctx->ifc_dev, "iflib_rx_structures_setup failed: %d\n", err); From owner-svn-src-head@freebsd.org Tue May 8 17:15:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16A55FBC6CB; Tue, 8 May 2018 17:15:13 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BC9F57ED13; Tue, 8 May 2018 17:15:12 +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 9DCD32D32A; Tue, 8 May 2018 17:15:12 +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 w48HFCXK036184; Tue, 8 May 2018 17:15:12 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48HFCSe036183; Tue, 8 May 2018 17:15:12 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201805081715.w48HFCSe036183@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 8 May 2018 17:15:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333374 - head/release X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/release X-SVN-Commit-Revision: 333374 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 17:15:13 -0000 Author: gjb Date: Tue May 8 17:15:12 2018 New Revision: 333374 URL: https://svnweb.freebsd.org/changeset/base/333374 Log: Use vYYYYMMDD in the timestamp suffix for Google Compute Engine snapshot images for consistency with other OSes. MFC after: 3 weeks Sponsored by: The FreeBSD Foundation Modified: head/release/Makefile.gce Modified: head/release/Makefile.gce ============================================================================== --- head/release/Makefile.gce Tue May 8 17:15:10 2018 (r333373) +++ head/release/Makefile.gce Tue May 8 17:15:12 2018 (r333374) @@ -23,7 +23,8 @@ GCE_FAMILY= ${TYPE:tl}-${REVISION:S,.,-,} .endif .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" -SNAPSHOT_DATE!= date +-%Y-%m-%d +_SNAPSHOT_DATE!= date +%Y%m%d +SNAPSHOT_DATE= -v${_SNAPSHOT_DATE} GCE_FAMILY_SUFX= -snap .endif From owner-svn-src-head@freebsd.org Tue May 8 18:18:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFB35FC48B5; Tue, 8 May 2018 18:18:29 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 60FD470096; Tue, 8 May 2018 18:18:29 +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 3FA9D2DD24; Tue, 8 May 2018 18:18:29 +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 w48IITxO066733; Tue, 8 May 2018 18:18:29 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48IIRZA066726; Tue, 8 May 2018 18:18:27 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201805081818.w48IIRZA066726@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Tue, 8 May 2018 18:18:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333380 - in head/sys/contrib/dev/acpica: . components/executer components/namespace components/utilities include X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in head/sys/contrib/dev/acpica: . components/executer components/namespace components/utilities include X-SVN-Commit-Revision: 333380 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 18:18:29 -0000 Author: jkim Date: Tue May 8 18:18:27 2018 New Revision: 333380 URL: https://svnweb.freebsd.org/changeset/base/333380 Log: MFV: r333378 Import ACPICA 20180508. Modified: head/sys/contrib/dev/acpica/changes.txt head/sys/contrib/dev/acpica/components/executer/exconfig.c head/sys/contrib/dev/acpica/components/namespace/nsinit.c head/sys/contrib/dev/acpica/components/utilities/utbuffer.c head/sys/contrib/dev/acpica/include/aclocal.h head/sys/contrib/dev/acpica/include/acnamesp.h head/sys/contrib/dev/acpica/include/acpixf.h Directory Properties: head/sys/contrib/dev/acpica/ (props changed) Modified: head/sys/contrib/dev/acpica/changes.txt ============================================================================== --- head/sys/contrib/dev/acpica/changes.txt Tue May 8 18:11:26 2018 (r333379) +++ head/sys/contrib/dev/acpica/changes.txt Tue May 8 18:18:27 2018 (r333380) @@ -1,4 +1,25 @@ ---------------------------------------- +8 May 2018. Summary of changes for version 20180508: + + +1) ACPICA kernel-resident subsystem: + +Completed the new (recently deployed) package resolution mechanism for +the Load and LoadTable ASL/AML operators. This fixes a regression that +was introduced in version 20180209 that could result in an +AE_AML_INTERNAL exception during the loading of a dynamic ACPI/AML table +(SSDT) that contains package objects. + + +2) iASL Compiler/Disassembler and Tools: + +AcpiDump and AcpiXtract: Implemented support for ACPI tables larger than +1 MB. This change allows for table offsets within the acpidump file to be +up to 8 characters. These changes are backwards compatible with existing +acpidump files. + + +---------------------------------------- 27 April 2018. Summary of changes for version 20180427: Modified: head/sys/contrib/dev/acpica/components/executer/exconfig.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/exconfig.c Tue May 8 18:11:26 2018 (r333379) +++ head/sys/contrib/dev/acpica/components/executer/exconfig.c Tue May 8 18:18:27 2018 (r333380) @@ -342,6 +342,11 @@ AcpiExLoadTableOp ( return_ACPI_STATUS (Status); } + /* Complete the initialization/resolution of package objects */ + + Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT, + ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL); + /* Parameter Data (optional) */ if (ParameterNode) @@ -614,6 +619,11 @@ AcpiExLoadOp ( return_ACPI_STATUS (Status); } + + /* Complete the initialization/resolution of package objects */ + + Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT, + ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL); /* Store the DdbHandle into the Target operand */ Modified: head/sys/contrib/dev/acpica/components/namespace/nsinit.c ============================================================================== --- head/sys/contrib/dev/acpica/components/namespace/nsinit.c Tue May 8 18:11:26 2018 (r333379) +++ head/sys/contrib/dev/acpica/components/namespace/nsinit.c Tue May 8 18:18:27 2018 (r333380) @@ -408,6 +408,65 @@ ErrorExit: /******************************************************************************* * + * FUNCTION: AcpiNsInitOnePackage + * + * PARAMETERS: ObjHandle - Node + * Level - Current nesting level + * Context - Not used + * ReturnValue - Not used + * + * RETURN: Status + * + * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every package + * within the namespace. Used during dynamic load of an SSDT. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiNsInitOnePackage ( + ACPI_HANDLE ObjHandle, + UINT32 Level, + void *Context, + void **ReturnValue) +{ + ACPI_STATUS Status; + ACPI_OPERAND_OBJECT *ObjDesc; + ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle; + + + ObjDesc = AcpiNsGetAttachedObject (Node); + if (!ObjDesc) + { + return (AE_OK); + } + + /* Exit if package is already initialized */ + + if (ObjDesc->Package.Flags & AOPOBJ_DATA_VALID) + { + return (AE_OK); + } + + Status = AcpiDsGetPackageArguments (ObjDesc); + if (ACPI_FAILURE (Status)) + { + return (AE_OK); + } + + Status = AcpiUtWalkPackageTree (ObjDesc, NULL, AcpiDsInitPackageElement, + NULL); + if (ACPI_FAILURE (Status)) + { + return (AE_OK); + } + + ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID; + return (AE_OK); +} + + +/******************************************************************************* + * * FUNCTION: AcpiNsInitOneObject * * PARAMETERS: ObjHandle - Node @@ -533,27 +592,10 @@ AcpiNsInitOneObject ( case ACPI_TYPE_PACKAGE: - Info->PackageInit++; - Status = AcpiDsGetPackageArguments (ObjDesc); - if (ACPI_FAILURE (Status)) - { - break; - } + /* Complete the initialization/resolution of the package object */ - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE, - "%s: Completing resolution of Package elements\n", - ACPI_GET_FUNCTION_NAME)); - - /* - * Resolve all named references in package objects (and all - * sub-packages). This action has been deferred until the entire - * namespace has been loaded, in order to support external and - * forward references from individual package elements (05/2017). - */ - Status = AcpiUtWalkPackageTree (ObjDesc, NULL, - AcpiDsInitPackageElement, NULL); - - ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID; + Info->PackageInit++; + Status = AcpiNsInitOnePackage (ObjHandle, Level, NULL, NULL); break; default: Modified: head/sys/contrib/dev/acpica/components/utilities/utbuffer.c ============================================================================== --- head/sys/contrib/dev/acpica/components/utilities/utbuffer.c Tue May 8 18:11:26 2018 (r333379) +++ head/sys/contrib/dev/acpica/components/utilities/utbuffer.c Tue May 8 18:18:27 2018 (r333380) @@ -205,7 +205,7 @@ AcpiUtDumpBuffer ( { /* Print current offset */ - AcpiOsPrintf ("%6.4X: ", (BaseOffset + i)); + AcpiOsPrintf ("%8.4X: ", (BaseOffset + i)); /* Print 16 hex chars */ @@ -387,7 +387,7 @@ AcpiUtDumpBufferToFile ( { /* Print current offset */ - fprintf (File, "%6.4X: ", (BaseOffset + i)); + fprintf (File, "%8.4X: ", (BaseOffset + i)); /* Print 16 hex chars */ Modified: head/sys/contrib/dev/acpica/include/aclocal.h ============================================================================== --- head/sys/contrib/dev/acpica/include/aclocal.h Tue May 8 18:11:26 2018 (r333379) +++ head/sys/contrib/dev/acpica/include/aclocal.h Tue May 8 18:18:27 2018 (r333380) @@ -284,7 +284,7 @@ typedef enum * DescriptorType is used to differentiate between internal descriptors. * * The node is optimized for both 32-bit and 64-bit platforms: - * 20 bytes for the 32-bit case, 32 bytes for the 64-bit case. + * 28 bytes for the 32-bit case, 48 bytes for the 64-bit case. * * Note: The DescriptorType and Type fields must appear in the identical * position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT @@ -301,10 +301,12 @@ typedef struct acpi_namespace_node struct acpi_namespace_node *Parent; /* Parent node */ struct acpi_namespace_node *Child; /* First child */ struct acpi_namespace_node *Peer; /* First peer */ + struct acpi_namespace_node *OwnerList; /* All nodes owned by a table or method */ - /* - * The following fields are used by the ASL compiler and disassembler only - */ +/* + * The following fields are appended to the namespace node and + * are used by the ASL compiler and AML disassembler only + */ #ifdef ACPI_LARGE_NAMESPACE_NODE union acpi_parse_object *Op; void *MethodLocals; @@ -312,7 +314,6 @@ typedef struct acpi_namespace_node UINT32 Value; UINT32 Length; UINT8 ArgCount; - #endif } ACPI_NAMESPACE_NODE; Modified: head/sys/contrib/dev/acpica/include/acnamesp.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acnamesp.h Tue May 8 18:11:26 2018 (r333379) +++ head/sys/contrib/dev/acpica/include/acnamesp.h Tue May 8 18:18:27 2018 (r333380) @@ -204,6 +204,12 @@ ACPI_STATUS AcpiNsInitializeDevices ( UINT32 Flags); +ACPI_STATUS +AcpiNsInitOnePackage ( + ACPI_HANDLE ObjHandle, + UINT32 Level, + void *Context, + void **ReturnValue); /* * nsload - Namespace loading Modified: head/sys/contrib/dev/acpica/include/acpixf.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acpixf.h Tue May 8 18:11:26 2018 (r333379) +++ head/sys/contrib/dev/acpica/include/acpixf.h Tue May 8 18:18:27 2018 (r333380) @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20180427 +#define ACPI_CA_VERSION 0x20180508 #include #include From owner-svn-src-head@freebsd.org Tue May 8 18:25:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36420FC529B; Tue, 8 May 2018 18:25:38 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E049D7097E; Tue, 8 May 2018 18:25:37 +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 C303C2DED0; Tue, 8 May 2018 18:25:37 +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 w48IPbDY071528; Tue, 8 May 2018 18:25:37 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48IPbJE071527; Tue, 8 May 2018 18:25:37 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805081825.w48IPbJE071527@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 8 May 2018 18:25:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333381 - head/usr.sbin/efibootmgr X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/usr.sbin/efibootmgr X-SVN-Commit-Revision: 333381 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 18:25:38 -0000 Author: imp Date: Tue May 8 18:25:37 2018 New Revision: 333381 URL: https://svnweb.freebsd.org/changeset/base/333381 Log: Inline print_order(). It's used one palce. Modified: head/usr.sbin/efibootmgr/efibootmgr.c Modified: head/usr.sbin/efibootmgr/efibootmgr.c ============================================================================== --- head/usr.sbin/efibootmgr/efibootmgr.c Tue May 8 18:18:27 2018 (r333380) +++ head/usr.sbin/efibootmgr/efibootmgr.c Tue May 8 18:25:37 2018 (r333381) @@ -279,27 +279,6 @@ parse_args(int argc, char *argv[]) static void -print_order(void) -{ - uint32_t attrs; - uint8_t *data; - size_t size, i; - - if (efi_get_variable(EFI_GLOBAL_GUID, "BootOrder", &data, &size, &attrs) < 0) { - printf("BootOrder : Couldn't get value for BootOrder\n"); - return; - } - - if (size % 2 == 1) - errx(1, "Bad BootOrder variable: odd length"); - - printf("BootOrder : "); - for (i = 0; i < size; i += 2) - printf("%04x%s", le16dec(data + i), i == size - 2 ? "\n" : ", "); -} - - -static void read_vars(void) { @@ -808,7 +787,14 @@ print_boot_vars(bool verbose) if (ret > 0) { printf("Timeout : %d seconds\n", le16dec(data)); } - print_order(); + + if (efi_get_variable(EFI_GLOBAL_GUID, "BootOrder", &data, &size, &attrs) > 0) { + if (size % 2 == 1) + warn("Bad BootOrder variable: odd length %d", (int)size); + printf("BootOrder : "); + for (size_t i = 0; i < size; i += 2) + printf("%04x%s", le16dec(data + i), i == size - 2 ? "\n" : ", "); + } /* now we want to fetch 'em all fresh again * which possibly includes a newly created bootvar From owner-svn-src-head@freebsd.org Tue May 8 18:48:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8F186FC60E9; Tue, 8 May 2018 18:48:52 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 42C74779D8; Tue, 8 May 2018 18:48:52 +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 246B52E20D; Tue, 8 May 2018 18:48:52 +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 w48ImqHl082042; Tue, 8 May 2018 18:48:52 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48Imq8b082041; Tue, 8 May 2018 18:48:52 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201805081848.w48Imq8b082041@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Tue, 8 May 2018 18:48:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333382 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 333382 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 18:48:52 -0000 Author: tuexen Date: Tue May 8 18:48:51 2018 New Revision: 333382 URL: https://svnweb.freebsd.org/changeset/base/333382 Log: When reporting ERROR or ABORT chunks, don't use more data that is guaranteed to be contigous. Thanks to Felix Weinrank for finding and reporting this bug by fuzzing the usrsctp stack. MFC after: 3 days Modified: head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Tue May 8 18:25:37 2018 (r333381) +++ head/sys/netinet/sctputil.c Tue May 8 18:48:51 2018 (r333382) @@ -2660,6 +2660,13 @@ sctp_notify_assoc_change(uint16_t state, struct sctp_t notif_len = (unsigned int)sizeof(struct sctp_assoc_change); if (abort != NULL) { abort_len = ntohs(abort->ch.chunk_length); + /* + * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be + * contiguos. + */ + if (abort_len > SCTP_CHUNK_BUFFER_SIZE) { + abort_len = SCTP_CHUNK_BUFFER_SIZE; + } } else { abort_len = 0; } @@ -3565,6 +3572,13 @@ sctp_notify_remote_error(struct sctp_tcb *stcb, uint16 } if (chunk != NULL) { chunk_len = ntohs(chunk->ch.chunk_length); + /* + * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be + * contiguos. + */ + if (chunk_len > SCTP_CHUNK_BUFFER_SIZE) { + chunk_len = SCTP_CHUNK_BUFFER_SIZE; + } } else { chunk_len = 0; } From owner-svn-src-head@freebsd.org Tue May 8 19:43:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8ECCFC7FF8; Tue, 8 May 2018 19:43:58 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7A130842BC; Tue, 8 May 2018 19:43:58 +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 5B9372EBF3; Tue, 8 May 2018 19:43:58 +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 w48JhwhX014351; Tue, 8 May 2018 19:43:58 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48JhwSc014350; Tue, 8 May 2018 19:43:58 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805081943.w48JhwSc014350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 8 May 2018 19:43:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333383 - head/usr.sbin/efibootmgr X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/usr.sbin/efibootmgr X-SVN-Commit-Revision: 333383 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 19:43:59 -0000 Author: imp Date: Tue May 8 19:43:57 2018 New Revision: 333383 URL: https://svnweb.freebsd.org/changeset/base/333383 Log: Improve printing the boot variables. Print the boot variables in the order in the BootOrder variable, if it exists, and then in verbose mode print any unreferneced BootXXXX variables. If BootOrder isn't set, fall back to printing all the variables. Sponsored by: Netflix Modified: head/usr.sbin/efibootmgr/efibootmgr.c Modified: head/usr.sbin/efibootmgr/efibootmgr.c ============================================================================== --- head/usr.sbin/efibootmgr/efibootmgr.c Tue May 8 18:48:51 2018 (r333382) +++ head/usr.sbin/efibootmgr/efibootmgr.c Tue May 8 19:43:57 2018 (r333383) @@ -67,7 +67,7 @@ __FBSDID("$FreeBSD$"); #endif #define BAD_LENGTH ((size_t)-1) - + typedef struct _bmgr_opts { char *env; char *loader; @@ -130,7 +130,8 @@ struct entry { char *name; char *label; int idx; - int part; + int flags; +#define SEEN 1 LIST_ENTRY(entry) entries; }; @@ -758,6 +759,31 @@ get_descr(uint8_t *data) } +static bool +print_boot_var(const char *name, bool verbose, bool curboot) +{ + size_t size; + uint32_t load_attrs; + uint8_t *data; + int ret; + char *d; + + ret = efi_get_variable(EFI_GLOBAL_GUID, name, &data, &size, NULL); + if (ret < 0) + return false; + load_attrs = le32dec(data); + d = get_descr(data); + printf("%c%s%c %s", curboot ? '+' : ' ', name, + ((load_attrs & LOAD_OPTION_ACTIVE) ? '*': ' '), d); + free(d); + if (verbose) + print_loadopt_str(data, size); + else + printf("\n"); + return true; +} + + /* Cmd epilogue, or just the default with no args. * The order is [bootnext] bootcurrent, timeout, order, and the bootvars [-v] */ @@ -770,10 +796,10 @@ print_boot_vars(bool verbose) */ struct entry *v; uint8_t *data; - char *d; size_t size; - uint32_t attrs, load_attrs; - int ret; + uint32_t attrs; + int ret, bolen; + uint16_t *boot_order = NULL, current; ret = efi_get_variable(EFI_GLOBAL_GUID, "BootNext", &data, &size, &attrs); if (ret > 0) { @@ -781,39 +807,58 @@ print_boot_vars(bool verbose) } ret = efi_get_variable(EFI_GLOBAL_GUID, "BootCurrent", &data, &size,&attrs); - printf("BootCurrent: %04x\n", le16dec(data)); + current = le16dec(data); + printf("BootCurrent: %04x\n", current); ret = efi_get_variable(EFI_GLOBAL_GUID, "Timeout", &data, &size, &attrs); if (ret > 0) { - printf("Timeout : %d seconds\n", le16dec(data)); + printf("Timeout : %d seconds\n", le16dec(data)); } if (efi_get_variable(EFI_GLOBAL_GUID, "BootOrder", &data, &size, &attrs) > 0) { if (size % 2 == 1) warn("Bad BootOrder variable: odd length %d", (int)size); - printf("BootOrder : "); - for (size_t i = 0; i < size; i += 2) - printf("%04x%s", le16dec(data + i), i == size - 2 ? "\n" : ", "); + boot_order = malloc(size); + bolen = size / 2; + printf("BootOrder : "); + for (size_t i = 0; i < size; i += 2) { + boot_order[i / 2] = le16dec(data + i); + printf("%04X%s", boot_order[i / 2], i == size - 2 ? "\n" : ", "); + } } - /* now we want to fetch 'em all fresh again - * which possibly includes a newly created bootvar - */ - LIST_FOREACH(v, &efivars, entries) { - attrs = 0; - ret = efi_get_variable(EFI_GLOBAL_GUID, v->name, &data, - &size, &attrs); - if (ret < 0) - continue; /* we must have deleted it */ - load_attrs = le32dec(data); - d = get_descr(data); - printf("%s%c %s", v->name, - ((load_attrs & LOAD_OPTION_ACTIVE) ? '*': ' '), d); - free(d); - if (verbose) - print_loadopt_str(data, size); - else - printf("\n"); + if (boot_order == NULL) { + /* + * now we want to fetch 'em all fresh again + * which possibly includes a newly created bootvar + */ + LIST_FOREACH(v, &efivars, entries) { + print_boot_var(v->name, verbose, v->idx == current); + } + } else { + LIST_FOREACH(v, &efivars, entries) { + v->flags = 0; + } + for (int i = 0; i < bolen; i++) { + char buffer[10]; + + snprintf(buffer, sizeof(buffer), "Boot%04X", boot_order[i]); + if (!print_boot_var(buffer, verbose, boot_order[i] == current)) + printf("%s: MISSING!\n", buffer); + LIST_FOREACH(v, &efivars, entries) { + if (v->idx == boot_order[i]) { + v->flags |= SEEN; + break; + } + } + } + if (verbose) { + printf("\n\nUnreferenced Variables:\n"); + LIST_FOREACH(v, &efivars, entries) { + if (v->flags == 0) + print_boot_var(v->name, verbose, v->idx == current); + } + } } return 0; } From owner-svn-src-head@freebsd.org Tue May 8 20:02:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B11DCFC8724; Tue, 8 May 2018 20:02:40 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 63E6389EC2; Tue, 8 May 2018 20:02:40 +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 45FCB2EF57; Tue, 8 May 2018 20:02:40 +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 w48K2erX024596; Tue, 8 May 2018 20:02:40 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48K2eru024595; Tue, 8 May 2018 20:02:40 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805082002.w48K2eru024595@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 8 May 2018 20:02:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333384 - head/usr.sbin/efibootmgr X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/usr.sbin/efibootmgr X-SVN-Commit-Revision: 333384 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 20:02:40 -0000 Author: imp Date: Tue May 8 20:02:39 2018 New Revision: 333384 URL: https://svnweb.freebsd.org/changeset/base/333384 Log: efibootmgr.8: fix example The example given was for the old, and now deleted, Linux compatibility mode. Update the example for the current code. Submitted by: Vlad Movchan Modified: head/usr.sbin/efibootmgr/efibootmgr.8 Modified: head/usr.sbin/efibootmgr/efibootmgr.8 ============================================================================== --- head/usr.sbin/efibootmgr/efibootmgr.8 Tue May 8 19:43:57 2018 (r333383) +++ head/usr.sbin/efibootmgr/efibootmgr.8 Tue May 8 20:02:39 2018 (r333384) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 8, 2017 +.Dd May 8, 2018 .Dt EFIBOOTMGR 8 .Os .Sh NAME @@ -111,10 +111,10 @@ variable. The .Nm program can be used to create new EFI boot variables. To create a new -boot var pointing to an installation on partition 1 of device ada0 using -the given loader with a description FreeBSD-11: +boot var pointing to an installation with its EFI partition mounted +under /mnt, the given loader and a label "FreeBSD-11": .Pp -.Dl efibootmgr -c -d ada0 -p 1 -l/EFI/BOOT/BOOTX64.EFI -L FreeBSD-11 +.Dl efibootmgr -c -l /mnt/EFI/BOOT/BOOTX64.EFI -L FreeBSD-11 .Pp This will result in the next available BootVarNum being assigned to a new UEFI load variable, and given the label "FreeBSD-11" such as: From owner-svn-src-head@freebsd.org Tue May 8 20:02:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70CF8FC875C; Tue, 8 May 2018 20:02:46 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D109889F9C; Tue, 8 May 2018 20:02:45 +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 3D0CA2EF58; Tue, 8 May 2018 20:02:45 +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 w48K2jwp024650; Tue, 8 May 2018 20:02:45 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48K2jpZ024649; Tue, 8 May 2018 20:02:45 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805082002.w48K2jpZ024649@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 8 May 2018 20:02:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333385 - head/usr.sbin/efibootmgr X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/usr.sbin/efibootmgr X-SVN-Commit-Revision: 333385 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 20:02:46 -0000 Author: imp Date: Tue May 8 20:02:44 2018 New Revision: 333385 URL: https://svnweb.freebsd.org/changeset/base/333385 Log: Remove ignored command line options The --device and --part command line options were planned for Linux compatibility mode. However, that mode will never happen, so remove them as last vestiges of a false start. Submitted by: Vlad Movchan Modified: head/usr.sbin/efibootmgr/efibootmgr.c Modified: head/usr.sbin/efibootmgr/efibootmgr.c ============================================================================== --- head/usr.sbin/efibootmgr/efibootmgr.c Tue May 8 20:02:39 2018 (r333384) +++ head/usr.sbin/efibootmgr/efibootmgr.c Tue May 8 20:02:44 2018 (r333385) @@ -102,7 +102,6 @@ static struct option lopts[] = { {"del-timout", no_argument, NULL, 'T'}, {"delete", required_argument, NULL, 'B'}, {"delete-bootnext", required_argument, NULL, 'N'}, - {"device", required_argument, NULL, 'd'}, {"dry-run", no_argument, NULL, 'D'}, {"env", required_argument, NULL, 'e'}, {"help", no_argument, NULL, 'h'}, @@ -110,7 +109,6 @@ static struct option lopts[] = { {"label", required_argument, NULL, 'L'}, {"loader", required_argument, NULL, 'l'}, {"once", no_argument, NULL, 'O'}, - {"partition", required_argument, NULL, 'p'}, {"set-timeout", required_argument, NULL, 't'}, {"verbose", no_argument, NULL, 'v'}, { NULL, 0, NULL, 0} From owner-svn-src-head@freebsd.org Tue May 8 20:36:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E634FC96EA; Tue, 8 May 2018 20:36:55 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smarthost1.greenhost.nl (smarthost1.greenhost.nl [195.190.28.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F13C868952; Tue, 8 May 2018 20:36:54 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smtp.greenhost.nl ([213.108.110.112]) by smarthost1.greenhost.nl with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1fG9Lr-0001xU-4U; Tue, 08 May 2018 22:36:47 +0200 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Kyle Evans" , "Alexey Dokuchaev" Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Subject: Re: svn commit: r333351 - head/usr.bin/grep References: <201805080353.w483rlde033542@repo.freebsd.org> <20180508105815.GB7299@FreeBSD.org> <20180508144912.GA3581@FreeBSD.org> Date: Tue, 08 May 2018 22:36:50 +0200 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: "Ronald Klop" Message-ID: In-Reply-To: <20180508144912.GA3581@FreeBSD.org> User-Agent: Opera Mail/12.16 (FreeBSD) X-Authenticated-As-Hash: 398f5522cb258ce43cb679602f8cfe8b62a256d1 X-Virus-Scanned: by clamav at smarthost1.samage.net X-Spam-Level: / X-Spam-Score: -0.2 X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, BAYES_50 autolearn=disabled version=3.4.0 X-Scan-Signature: 788438cbfdc4dc137ce560360a3a99c7 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 20:36:55 -0000 On Tue, 08 May 2018 16:49:12 +0200, Alexey Dokuchaev wrote: > On Tue, May 08, 2018 at 09:36:21AM -0500, Kyle Evans wrote: >> On Tue, May 8, 2018 at 5:58 AM, Alexey Dokuchaev >> wrote: >> >> >> >> - if ((f = fopen(fn, "r")) == NULL) >> >> + if (strcmp(fn, "-") == 0) >> >> + f = stdin; >> > >> > This makes sense: when `fn' is "-", `f' is stdin. >> > >> >> - fclose(f); >> >> + if (strcmp(fn, "-") != 0) >> >> + fclose(f); >> > >> > But not this one: why are you checking `fn' again? Shouldn't you >> > fclose(f) if it's not stdin? >> > >> > if (f != stdin) >> > fclose(f); >> > >> >> You say potato, I say potato. =) In this case, it's low overhead in a >> not particularly performance critical bit and drawing a connection >> between this and the opening of 'f' above in an extremely obvious way. > > Well, I'm not worried about the overhead or performance issues, they are > negligible. I just find second strcmp(fn, "-") to be semantically wrong > (and that's why you need implicit "there's only one way to get stdin > here" > assert). You assign `f' to stdin based on `fn' being "-", but you > fclose(f) when it's not stdin; the value of `fn' is irrelevant this time. > As a nice bonus, you only spell strcmp(fn, "-") once and do not need to > implicitly assert that there's only one way to get stdin here. > >> This also might get ripped out soon -- we'll see how things go. > > I see, understood. > > ./danfe What is the result of "-f /dev/stdin"? Of does that fopen return a different filedesc? Ronald. From owner-svn-src-head@freebsd.org Tue May 8 20:39:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94AE7FC97DD; Tue, 8 May 2018 20:39:36 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4150D6A33E; Tue, 8 May 2018 20:39:36 +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 2132F2F463; Tue, 8 May 2018 20:39:36 +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 w48Kda04040071; Tue, 8 May 2018 20:39:36 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48KdZtv040070; Tue, 8 May 2018 20:39:35 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201805082039.w48KdZtv040070@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Tue, 8 May 2018 20:39:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333386 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 333386 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 20:39:36 -0000 Author: tuexen Date: Tue May 8 20:39:35 2018 New Revision: 333386 URL: https://svnweb.freebsd.org/changeset/base/333386 Log: Fix two typos reported by N. J. Mann, which were introduced in https://svnweb.freebsd.org/changeset/base/333382 by me. MFC after: 3 days Modified: head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Tue May 8 20:02:44 2018 (r333385) +++ head/sys/netinet/sctputil.c Tue May 8 20:39:35 2018 (r333386) @@ -2662,7 +2662,7 @@ sctp_notify_assoc_change(uint16_t state, struct sctp_t abort_len = ntohs(abort->ch.chunk_length); /* * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be - * contiguos. + * contiguous. */ if (abort_len > SCTP_CHUNK_BUFFER_SIZE) { abort_len = SCTP_CHUNK_BUFFER_SIZE; @@ -3574,7 +3574,7 @@ sctp_notify_remote_error(struct sctp_tcb *stcb, uint16 chunk_len = ntohs(chunk->ch.chunk_length); /* * Only SCTP_CHUNK_BUFFER_SIZE are guaranteed to be - * contiguos. + * contiguous. */ if (chunk_len > SCTP_CHUNK_BUFFER_SIZE) { chunk_len = SCTP_CHUNK_BUFFER_SIZE; From owner-svn-src-head@freebsd.org Tue May 8 20:43:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 683B8FC9B13; Tue, 8 May 2018 20:43:43 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 162D26AE78; Tue, 8 May 2018 20:43:43 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-lf0-f44.google.com (mail-lf0-f44.google.com [209.85.215.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id A2C09239D8; Tue, 8 May 2018 20:43:42 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-lf0-f44.google.com with SMTP id z142-v6so4555685lff.5; Tue, 08 May 2018 13:43:42 -0700 (PDT) X-Gm-Message-State: ALQs6tDImYcqXez3RbIsrFBLICsLuKVi9cra//YOnsVZ1NUewZsIxU3I xgGV0WsfH2LuKHH1gW/n1FlW3VwWZO1M5ad5Ij0= X-Google-Smtp-Source: AB8JxZoS/N+4EpXQNPWrvUB1iCZqjHKD4RO+n4MTqkGHvtF3pWL50+kyp4Tf/MhBp8olUpSVe2MDfpF+rrLA1P9H5YU= X-Received: by 2002:a2e:7113:: with SMTP id m19-v6mr30137444ljc.44.1525812221187; Tue, 08 May 2018 13:43:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.46.49.18 with HTTP; Tue, 8 May 2018 13:43:20 -0700 (PDT) In-Reply-To: References: <201805080353.w483rlde033542@repo.freebsd.org> <20180508105815.GB7299@FreeBSD.org> <20180508144912.GA3581@FreeBSD.org> From: Kyle Evans Date: Tue, 8 May 2018 15:43:20 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333351 - head/usr.bin/grep To: Ronald Klop Cc: Alexey Dokuchaev , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 20:43:43 -0000 On Tue, May 8, 2018 at 3:36 PM, Ronald Klop wrote: > On Tue, 08 May 2018 16:49:12 +0200, Alexey Dokuchaev > wrote: > >> On Tue, May 08, 2018 at 09:36:21AM -0500, Kyle Evans wrote: >>> >>> On Tue, May 8, 2018 at 5:58 AM, Alexey Dokuchaev >>> wrote: >>> >> >>> >> - if ((f = fopen(fn, "r")) == NULL) >>> >> + if (strcmp(fn, "-") == 0) >>> >> + f = stdin; >>> > >>> > This makes sense: when `fn' is "-", `f' is stdin. >>> > >>> >> - fclose(f); >>> >> + if (strcmp(fn, "-") != 0) >>> >> + fclose(f); >>> > >>> > But not this one: why are you checking `fn' again? Shouldn't you >>> > fclose(f) if it's not stdin? >>> > >>> > if (f != stdin) >>> > fclose(f); >>> > >>> >>> You say potato, I say potato. =) In this case, it's low overhead in a >>> not particularly performance critical bit and drawing a connection >>> between this and the opening of 'f' above in an extremely obvious way. >> >> >> Well, I'm not worried about the overhead or performance issues, they are >> negligible. I just find second strcmp(fn, "-") to be semantically wrong >> (and that's why you need implicit "there's only one way to get stdin here" >> assert). You assign `f' to stdin based on `fn' being "-", but you >> fclose(f) when it's not stdin; the value of `fn' is irrelevant this time. >> As a nice bonus, you only spell strcmp(fn, "-") once and do not need to >> implicitly assert that there's only one way to get stdin here. >> >>> This also might get ripped out soon -- we'll see how things go. >> >> >> I see, understood. >> >> ./danfe > > > What is the result of "-f /dev/stdin"? Of does that fopen return a different > filedesc? > Indeed- /dev/stdin will force it to open another filedesc and read from stdin all the same. Thanks, Kyle Evans From owner-svn-src-head@freebsd.org Tue May 8 21:01:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C66A5FC9FD2; Tue, 8 May 2018 21:01:05 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7C5296DCBE; Tue, 8 May 2018 21:01:05 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5DF792F8F6; Tue, 8 May 2018 21:01:05 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48L15dQ053360; Tue, 8 May 2018 21:01:05 GMT (envelope-from peter@FreeBSD.org) Received: (from peter@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48L15jU053359; Tue, 8 May 2018 21:01:05 GMT (envelope-from peter@FreeBSD.org) Message-Id: <201805082101.w48L15jU053359@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: peter set sender to peter@FreeBSD.org using -f From: Peter Wemm Date: Tue, 8 May 2018 21:01:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333387 - head/usr.bin/svn X-SVN-Group: head X-SVN-Commit-Author: peter X-SVN-Commit-Paths: head/usr.bin/svn X-SVN-Commit-Revision: 333387 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 21:01:06 -0000 Author: peter Date: Tue May 8 21:01:04 2018 New Revision: 333387 URL: https://svnweb.freebsd.org/changeset/base/333387 Log: Update svn_private_config.h - I misread an autoconf change. SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL -> SVN_LIBSVN_RA_LINKS_RA_LOCAL SVN_LIBSVN_CLIENT_LINKS_RA_SERF -> SVN_LIBSVN_RA_LINKS_RA_SERF SVN_LIBSVN_CLIENT_LINKS_RA_SVN -> SVN_LIBSVN_RA_LINKS_RA_SVN Modified: head/usr.bin/svn/svn_private_config.h Modified: head/usr.bin/svn/svn_private_config.h ============================================================================== --- head/usr.bin/svn/svn_private_config.h Tue May 8 20:39:35 2018 (r333386) +++ head/usr.bin/svn/svn_private_config.h Tue May 8 21:01:04 2018 (r333387) @@ -154,6 +154,9 @@ /* Defined if plaintext password/passphrase storage is disabled */ /* #undef SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE */ +/* Shared library file name suffix format */ +#undef SVN_DSO_SUFFIX_FMT + /* The desired major version for the Berkeley DB */ #define SVN_FS_WANT_DB_MAJOR 4 @@ -175,12 +178,18 @@ /* Is Mac OS KeyChain support enabled? */ /* #undef SVN_HAVE_KEYCHAIN_SERVICES */ +/* Defined if KF5 available */ +#undef SVN_HAVE_KF5 + /* Defined if KWallet support is enabled */ /* #undef SVN_HAVE_KWALLET */ /* Defined if libmagic support is enabled */ #define SVN_HAVE_LIBMAGIC 1 +/* Is libsecret support enabled? */ +#undef SVN_HAVE_LIBSECRET + /* Is Mach-O low-level _dyld API available? */ /* #undef SVN_HAVE_MACHO_ITERATE */ @@ -199,15 +208,6 @@ /* Defined if support for Serf is enabled */ #define SVN_HAVE_SERF 1 -/* Defined if libsvn_client should link against libsvn_ra_local */ -#define SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL 1 - -/* Defined if libsvn_client should link against libsvn_ra_serf */ -#define SVN_LIBSVN_CLIENT_LINKS_RA_SERF 1 - -/* Defined if libsvn_client should link against libsvn_ra_svn */ -#define SVN_LIBSVN_CLIENT_LINKS_RA_SVN 1 - /* Defined if libsvn_fs should link against libsvn_fs_base */ /* #undef SVN_LIBSVN_FS_LINKS_FS_BASE */ @@ -216,6 +216,15 @@ /* Defined if libsvn_fs should link against libsvn_fs_x */ #define SVN_LIBSVN_FS_LINKS_FS_X 1 + +/* Defined if libsvn_ra should link against libsvn_ra_local */ +#define SVN_LIBSVN_RA_LINKS_RA_LOCAL 1 + +/* Defined if libsvn_ra should link against libsvn_ra_serf */ +#define SVN_LIBSVN_RA_LINKS_RA_SERF 1 + +/* Defined if libsvn_ra should link against libsvn_ra_svn */ +#define SVN_LIBSVN_RA_LINKS_RA_SVN 1 /* Defined to be the path to the installed locale dirs */ #define SVN_LOCALE_DIR "NONE/share/locale" From owner-svn-src-head@freebsd.org Tue May 8 21:14:32 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6885EFCA641; Tue, 8 May 2018 21:14:32 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 07BDD6FA1F; Tue, 8 May 2018 21:14:32 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2EB12FB05; Tue, 8 May 2018 21:14:31 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48LEVYd060115; Tue, 8 May 2018 21:14:31 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48LETM3060105; Tue, 8 May 2018 21:14:29 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201805082114.w48LETM3060105@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Tue, 8 May 2018 21:14:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333388 - in head: . share/man/man4 sys/conf sys/dev/nxge sys/modules sys/modules/nxge tools/kerneldoc/subsys tools/tools tools/tools/nxge usr.sbin/bsdconfig/share X-SVN-Group: head X-SVN-Commit-Author: sbruno X-SVN-Commit-Paths: in head: . share/man/man4 sys/conf sys/dev/nxge sys/modules sys/modules/nxge tools/kerneldoc/subsys tools/tools tools/tools/nxge usr.sbin/bsdconfig/share X-SVN-Commit-Revision: 333388 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 21:14:32 -0000 Author: sbruno Date: Tue May 8 21:14:29 2018 New Revision: 333388 URL: https://svnweb.freebsd.org/changeset/base/333388 Log: nxge(4): Remove nxge(4) and associated man page and tools in FreeBSD 12.0. Submitted by: kbowling Reviewed by: brooks Relnotes: yes Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D1529 Deleted: head/share/man/man4/nxge.4 head/sys/dev/nxge/ head/sys/modules/nxge/ head/tools/kerneldoc/subsys/Doxyfile-dev_nxge head/tools/tools/nxge/ Modified: head/ObsoleteFiles.inc head/UPDATING head/share/man/man4/Makefile head/share/man/man4/vlan.4 head/sys/conf/NOTES head/sys/conf/files head/sys/modules/Makefile head/tools/tools/README head/usr.sbin/bsdconfig/share/device.subr Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Tue May 8 21:01:04 2018 (r333387) +++ head/ObsoleteFiles.inc Tue May 8 21:14:29 2018 (r333388) @@ -38,6 +38,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20180508: retire nxge +OLD_FILES+=usr/share/man/man4/if_nxge.4.gz +OLD_FILES+=usr/share/man/man4/nxge.4.gz # 20180505: rhosts OLD_FILES+=usr/share/skel/dot.rhosts # 20180502: retire ixgb Modified: head/UPDATING ============================================================================== --- head/UPDATING Tue May 8 21:01:04 2018 (r333387) +++ head/UPDATING Tue May 8 21:14:29 2018 (r333388) @@ -51,6 +51,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: ****************************** SPECIAL WARNING: ****************************** +20180508: + The nxge(4) driver has been removed. This driver was for PCI-X 10g + cards made by s2io/Neterion. The company was aquired by Exar and + no longer sells or supports Ethernet products. If you have device + nxge in your kernel config file it must be removed. + 20180504: The tz database (tzdb) has been updated to 2018e. This version more correctly models time stamps in time zones with negative DST such as Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Tue May 8 21:01:04 2018 (r333387) +++ head/share/man/man4/Makefile Tue May 8 21:14:29 2018 (r333388) @@ -397,7 +397,6 @@ MAN= aac.4 \ ${_nvme.4} \ ${_nvram.4} \ ${_nvram2env.4} \ - ${_nxge.4} \ oce.4 \ ocs_fc.4\ ohci.4 \ @@ -706,7 +705,6 @@ MLINKS+=netintro.4 net.4 \ netintro.4 networking.4 MLINKS+=${_nfe.4} ${_if_nfe.4} MLINKS+=nge.4 if_nge.4 -MLINKS+=${_nxge.4} ${_if_nxge.4} MLINKS+=ow.4 onewire.4 MLINKS+=pccbb.4 cbb.4 MLINKS+=pcm.4 snd.4 \ @@ -823,7 +821,6 @@ _ichwd.4= ichwd.4 _if_bxe.4= if_bxe.4 _if_ndis.4= if_ndis.4 _if_nfe.4= if_nfe.4 -_if_nxge.4= if_nxge.4 _if_urtw.4= if_urtw.4 _if_vmx.4= if_vmx.4 _if_vtnet.4= if_vtnet.4 @@ -840,7 +837,6 @@ _nfsmb.4= nfsmb.4 _nvd.4= nvd.4 _nvme.4= nvme.4 _nvram.4= nvram.4 -_nxge.4= nxge.4 _virtio.4= virtio.4 _virtio_balloon.4=virtio_balloon.4 _virtio_blk.4= virtio_blk.4 Modified: head/share/man/man4/vlan.4 ============================================================================== --- head/share/man/man4/vlan.4 Tue May 8 21:01:04 2018 (r333387) +++ head/share/man/man4/vlan.4 Tue May 8 21:14:29 2018 (r333388) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 28, 2017 +.Dd May 8, 2018 .Dt VLAN 4 .Os .Sh NAME @@ -137,7 +137,6 @@ in hardware: .Xr liquidio 4 , .Xr msk 4 , .Xr mxge 4 , -.Xr nxge 4 , .Xr nge 4 , .Xr re 4 , .Xr sge 4 , Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Tue May 8 21:01:04 2018 (r333387) +++ head/sys/conf/NOTES Tue May 8 21:14:29 2018 (r333388) @@ -2131,7 +2131,6 @@ device ix # Intel Pro/10Gbe PCIE Ethernet device ixv # Intel Pro/10Gbe PCIE Ethernet VF device le # AMD Am7900 LANCE and Am79C9xx PCnet device mxge # Myricom Myri-10G 10GbE NIC -device nxge # Neterion Xframe 10GbE Server/Storage Adapter device oce # Emulex 10 GbE (OneConnect Ethernet) device ti # Alteon Networks Tigon I/II gigabit Ethernet device txp # 3Com 3cR990 (``Typhoon'') Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Tue May 8 21:01:04 2018 (r333387) +++ head/sys/conf/files Tue May 8 21:14:29 2018 (r333388) @@ -2541,25 +2541,6 @@ dev/netmap/netmap_legacy.c optional netmap # compile-with "${NORMAL_C} -Wconversion -Wextra" dev/nfsmb/nfsmb.c optional nfsmb pci dev/nge/if_nge.c optional nge -dev/nxge/if_nxge.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-device.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-mm.c optional nxge -dev/nxge/xgehal/xge-queue.c optional nxge -dev/nxge/xgehal/xgehal-driver.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-ring.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-channel.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-fifo.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-stats.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-config.c optional nxge -dev/nxge/xgehal/xgehal-mgmt.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" dev/nmdm/nmdm.c optional nmdm dev/nsp/nsp.c optional nsp dev/nsp/nsp_pccard.c optional nsp pccard Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Tue May 8 21:01:04 2018 (r333387) +++ head/sys/modules/Makefile Tue May 8 21:14:29 2018 (r333388) @@ -290,7 +290,6 @@ SUBDIR= \ ${_nvd} \ ${_nvme} \ ${_nvram} \ - ${_nxge} \ oce \ ${_ocs_fc} \ otus \ @@ -688,7 +687,6 @@ _nfe= nfe _nvd= nvd _nvme= nvme _nvram= nvram -_nxge= nxge .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _padlock= padlock _padlock_rng= padlock_rng Modified: head/tools/tools/README ============================================================================== --- head/tools/tools/README Tue May 8 21:01:04 2018 (r333387) +++ head/tools/tools/README Tue May 8 21:14:29 2018 (r333388) @@ -50,7 +50,6 @@ ncpus Count the number of processors netmap Test applications for netmap(4) notescheck Check for missing devices and options in NOTES files. npe Tools specific to the Intel IXP4XXX NPE device -nxge A diagnostic tool for the nxge(4) driver pciid Generate src/share/misc/pci_vendors. pciroms A tool for dumping PCI ROM images. WARNING: alpha quality. pirtool A tool for dumping the $PIR table on i386 machines at runtime. Modified: head/usr.sbin/bsdconfig/share/device.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/device.subr Tue May 8 21:01:04 2018 (r333387) +++ head/usr.sbin/bsdconfig/share/device.subr Tue May 8 21:14:29 2018 (r333388) @@ -1336,7 +1336,6 @@ f_network "nfe%d" "NVIDIA nForce MCP Ethernet" f_network "ng%d" "Vimage netgraph(4) bridged Ethernet device" f_network "nge%d" "NatSemi PCI Gigabit Ethernet card" f_network "nve%d" "NVIDIA nForce MCP Ethernet" -f_network "nxge%d" "Neterion Xframe 10GbE Server/Storage adapter" f_network "pcn%d" "AMD Am79c79x PCI Ethernet card" f_network "plip%d" "Parallel Port IP (PLIP) peer connection" f_network "ral%d" "Ralink Technology IEEE 802.11 wireless adapter" From owner-svn-src-head@freebsd.org Tue May 8 21:17:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8D25FCA7D3; Tue, 8 May 2018 21:17:14 +0000 (UTC) (envelope-from sbruno@freebsd.org) Received: from mail.ignoranthack.me (ignoranthack.me [199.102.79.106]) (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 5C3BA7088B; Tue, 8 May 2018 21:17:13 +0000 (UTC) (envelope-from sbruno@freebsd.org) Received: from [192.168.0.6] (67-0-214-163.albq.qwest.net [67.0.214.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: sbruno@ignoranthack.me) by mail.ignoranthack.me (Postfix) with ESMTPSA id 26481194253; Tue, 8 May 2018 13:04:09 +0000 (UTC) Subject: Re: svn commit: r333388 - in head: . share/man/man4 sys/conf sys/dev/nxge sys/modules sys/modules/nxge tools/kerneldoc/subsys tools/tools tools/tools/nxge usr.sbin/bsdconfig/share To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201805082114.w48LETM3060105@repo.freebsd.org> From: Sean Bruno Openpgp: preference=signencrypt Autocrypt: addr=sbruno@freebsd.org; prefer-encrypt=mutual; keydata= xsBNBFk+0UEBCADaf4bgxxKvMOhRV5NPoGWRCCGm49d6+1VFNlQ77WsY/+Zvf95TPULdRlnG w648KfxWt7+O3kdKhdRwnqlXWC7zA2Qt0dRE1yIqOGJ4jp4INvp/bcxWzgr0aoKOjrlnfxRV bh+s0rzdZt6TsNL3cVYxkC8oezjaUkHdW4mFJU249U1QJogkF8g0FeKNfEcjEkwJNX6lQJH+ EzCWT0NCk6J+Xyo+zOOljxPp1OUfdvZi3ulkU/qTZstGVWxFVsP8xQklV/y3AFcbIYx6iGJ4 5L7WuB0IWhO7Z4yHENr8wFaNYwpod9i4egX2BugbrM8pOfhN2/qqdeG1L5LMtXw3yyAhABEB AAHNN1NlYW4gQnJ1bm8gKEZyZWVCU0QgRGV2ZWxvcGVyIEtleSkgPHNicnVub0BmcmVlYnNk Lm9yZz7CwJQEEwEKAD4WIQToxOn4gDUE4eP0ujS95PX+ibX8tgUCWT7RQQIbAwUJBaOagAUL CQgHAwUVCgkICwUWAwIBAAIeAQIXgAAKCRC95PX+ibX8ttKTCACFKzRc56EBAlVotq02EjZP SfX+unlk6AuPBzShxqRxeK+bGYVCigrYd1M8nnskv0dEiZ5iYeND9HIxbpEyopqgpVTibA7w gBXaZ7SOEhNX1wXwg14JrralfSmPFMYni+sWegPMX/zwfAsn1z4mG1Nn44Xqo3o7CfpkMPy6 M5Bow2IDzIhEYISLR+urxs74/aHU35PLtBSDtu18914SEMDdva27MARN8mbeCDbuJVfGCPWy YHuy2t+9u2Zn5Dd+t3sBXLM9gpeaMm+4x6TNPpESygbVdh4tDdjVZ9DK/bWFg0kMgfZoaq6J l0jNsQXrZV3bzYNFbVw04pFcvA2GIJ7xzsBNBFk+0UEBCADIXBmQOaKMHGbc9vwjhV4Oj5aZ DdhNedn12FVeTdOXJvuTOusgxS29lla0RenHGDsgD08UiFpasBXWq/E+BhQ19d+iRbLLR17O KKc1ZGefoVbLARLXD68J5j4XAyK+6k2KqBLlqzAEpHTzsksM9naARkVXiEVcrt6ciw0FSm8n kuK3gDKKe93XfzfP+TQdbvvzJc7Fa+appLbXz61TM1aikaQlda8bWubDegwXbuoJdB34xU1m yjr/N4o+raL0x7QrzdH+wwgrTTo+H4S2c1972Skt5K5tbxLowfHicRl23V8itVQr3sBtlX4+ 66q+Apm7+R36bUS/k+G45Sp6iPpxABEBAAHCwHwEGAEKACYWIQToxOn4gDUE4eP0ujS95PX+ ibX8tgUCWT7RQQIbDAUJBaOagAAKCRC95PX+ibX8trrIB/9Pljqt/JGamD9tx4dOVmxSyFg9 z2xzgklTLuDgS73MM120mM7ao9AQUeWiSle/H0UCK7xPOzC/aeUC4oygDQKAfkkNbCNTo3+A qDjBRA8qx0e9a/QjDL+RFgD4L5kLT4tToY8T8HaBp8h03LBfk510IaI8oL/Jg7vpM3PDtJMW tUi2H+yNFmL3NfM2oBToWKLFsoP54f/eeeImrNnrlLjLHPzqS+/9apgYqX2Jwiv3tHBc4FTO GuY8VvF7BpixJs8Pc2RUuCfSyodrp1YG1kRGlXAH0cqwwr0Zmk4+7dZvtVQMCl6kS6q1+84q JwtItxS2eXSEA4NO0sQ3BXUywANh Message-ID: Date: Tue, 8 May 2018 15:17:08 -0600 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <201805082114.w48LETM3060105@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="AiHMgyQvtmJsYZ3Alx4Exq0D0eyfFs9N7" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 21:17:15 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --AiHMgyQvtmJsYZ3Alx4Exq0D0eyfFs9N7 Content-Type: multipart/mixed; boundary="kbhfCGyhRMyevitEqq3en940wf2F7PuOH"; protected-headers="v1" From: Sean Bruno To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r333388 - in head: . share/man/man4 sys/conf sys/dev/nxge sys/modules sys/modules/nxge tools/kerneldoc/subsys tools/tools tools/tools/nxge usr.sbin/bsdconfig/share References: <201805082114.w48LETM3060105@repo.freebsd.org> In-Reply-To: <201805082114.w48LETM3060105@repo.freebsd.org> --kbhfCGyhRMyevitEqq3en940wf2F7PuOH Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable https://reviews.freebsd.org/D15292 *shakes fist at self* sean On 05/08/18 15:14, Sean Bruno wrote: > Author: sbruno > Date: Tue May 8 21:14:29 2018 > New Revision: 333388 > URL: https://svnweb.freebsd.org/changeset/base/333388 >=20 > Log: > nxge(4): > Remove nxge(4) and associated man page and tools in FreeBSD 12.0. > =20 > Submitted by: kbowling > Reviewed by: brooks > Relnotes: yes > Sponsored by: Limelight Networks > Differential Revision: https://reviews.freebsd.org/D1529 >=20 > Deleted: > head/share/man/man4/nxge.4 > head/sys/dev/nxge/ > head/sys/modules/nxge/ > head/tools/kerneldoc/subsys/Doxyfile-dev_nxge > head/tools/tools/nxge/ > Modified: > head/ObsoleteFiles.inc > head/UPDATING > head/share/man/man4/Makefile > head/share/man/man4/vlan.4 > head/sys/conf/NOTES > head/sys/conf/files > head/sys/modules/Makefile > head/tools/tools/README > head/usr.sbin/bsdconfig/share/device.subr >=20 > Modified: head/ObsoleteFiles.inc > =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/ObsoleteFiles.inc Tue May 8 21:01:04 2018 (r333387) > +++ head/ObsoleteFiles.inc Tue May 8 21:14:29 2018 (r333388) > @@ -38,6 +38,9 @@ > # xargs -n1 | sort | uniq -d; > # done > =20 > +# 20180508: retire nxge > +OLD_FILES+=3Dusr/share/man/man4/if_nxge.4.gz > +OLD_FILES+=3Dusr/share/man/man4/nxge.4.gz > # 20180505: rhosts > OLD_FILES+=3Dusr/share/skel/dot.rhosts > # 20180502: retire ixgb >=20 > Modified: head/UPDATING > =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/UPDATING Tue May 8 21:01:04 2018 (r333387) > +++ head/UPDATING Tue May 8 21:14:29 2018 (r333388) > @@ -51,6 +51,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: > =20 > ****************************** SPECIAL WARNING: **********************= ******** > =20 > +20180508: > + The nxge(4) driver has been removed. This driver was for PCI-X 10g > + cards made by s2io/Neterion. The company was aquired by Exar and > + no longer sells or supports Ethernet products. If you have device > + nxge in your kernel config file it must be removed. > + > 20180504: > The tz database (tzdb) has been updated to 2018e. This version more > correctly models time stamps in time zones with negative DST such as >=20 > Modified: head/share/man/man4/Makefile > =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/share/man/man4/Makefile Tue May 8 21:01:04 2018 (r333387) > +++ head/share/man/man4/Makefile Tue May 8 21:14:29 2018 (r333388) > @@ -397,7 +397,6 @@ MAN=3D aac.4 \ > ${_nvme.4} \ > ${_nvram.4} \ > ${_nvram2env.4} \ > - ${_nxge.4} \ > oce.4 \ > ocs_fc.4\ > ohci.4 \ > @@ -706,7 +705,6 @@ MLINKS+=3Dnetintro.4 net.4 \ > netintro.4 networking.4 > MLINKS+=3D${_nfe.4} ${_if_nfe.4} > MLINKS+=3Dnge.4 if_nge.4 > -MLINKS+=3D${_nxge.4} ${_if_nxge.4} > MLINKS+=3Dow.4 onewire.4 > MLINKS+=3Dpccbb.4 cbb.4 > MLINKS+=3Dpcm.4 snd.4 \ > @@ -823,7 +821,6 @@ _ichwd.4=3D ichwd.4 > _if_bxe.4=3D if_bxe.4 > _if_ndis.4=3D if_ndis.4 > _if_nfe.4=3D if_nfe.4 > -_if_nxge.4=3D if_nxge.4 > _if_urtw.4=3D if_urtw.4 > _if_vmx.4=3D if_vmx.4 > _if_vtnet.4=3D if_vtnet.4 > @@ -840,7 +837,6 @@ _nfsmb.4=3D nfsmb.4 > _nvd.4=3D nvd.4 > _nvme.4=3D nvme.4 > _nvram.4=3D nvram.4 > -_nxge.4=3D nxge.4 > _virtio.4=3D virtio.4 > _virtio_balloon.4=3Dvirtio_balloon.4 > _virtio_blk.4=3D virtio_blk.4 >=20 > Modified: head/share/man/man4/vlan.4 > =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/share/man/man4/vlan.4 Tue May 8 21:01:04 2018 (r333387) > +++ head/share/man/man4/vlan.4 Tue May 8 21:14:29 2018 (r333388) > @@ -25,7 +25,7 @@ > .\" > .\" $FreeBSD$ > .\" > -.Dd August 28, 2017 > +.Dd May 8, 2018 > .Dt VLAN 4 > .Os > .Sh NAME > @@ -137,7 +137,6 @@ in hardware: > .Xr liquidio 4 , > .Xr msk 4 , > .Xr mxge 4 , > -.Xr nxge 4 , > .Xr nge 4 , > .Xr re 4 , > .Xr sge 4 , >=20 > Modified: head/sys/conf/NOTES > =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/sys/conf/NOTES Tue May 8 21:01:04 2018 (r333387) > +++ head/sys/conf/NOTES Tue May 8 21:14:29 2018 (r333388) > @@ -2131,7 +2131,6 @@ device ix # Intel Pro/10Gbe PCIE Ethernet > device ixv # Intel Pro/10Gbe PCIE Ethernet VF > device le # AMD Am7900 LANCE and Am79C9xx PCnet > device mxge # Myricom Myri-10G 10GbE NIC > -device nxge # Neterion Xframe 10GbE Server/Storage Adapter > device oce # Emulex 10 GbE (OneConnect Ethernet) > device ti # Alteon Networks Tigon I/II gigabit Ethernet > device txp # 3Com 3cR990 (``Typhoon'') >=20 > Modified: head/sys/conf/files > =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/sys/conf/files Tue May 8 21:01:04 2018 (r333387) > +++ head/sys/conf/files Tue May 8 21:14:29 2018 (r333388) > @@ -2541,25 +2541,6 @@ dev/netmap/netmap_legacy.c optional netmap > # compile-with "${NORMAL_C} -Wconversion -Wextra" > dev/nfsmb/nfsmb.c optional nfsmb pci > dev/nge/if_nge.c optional nge > -dev/nxge/if_nxge.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > -dev/nxge/xgehal/xgehal-device.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > -dev/nxge/xgehal/xgehal-mm.c optional nxge > -dev/nxge/xgehal/xge-queue.c optional nxge > -dev/nxge/xgehal/xgehal-driver.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > -dev/nxge/xgehal/xgehal-ring.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > -dev/nxge/xgehal/xgehal-channel.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > -dev/nxge/xgehal/xgehal-fifo.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > -dev/nxge/xgehal/xgehal-stats.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > -dev/nxge/xgehal/xgehal-config.c optional nxge > -dev/nxge/xgehal/xgehal-mgmt.c optional nxge \ > - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" > dev/nmdm/nmdm.c optional nmdm > dev/nsp/nsp.c optional nsp > dev/nsp/nsp_pccard.c optional nsp pccard >=20 > Modified: head/sys/modules/Makefile > =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/sys/modules/Makefile Tue May 8 21:01:04 2018 (r333387) > +++ head/sys/modules/Makefile Tue May 8 21:14:29 2018 (r333388) > @@ -290,7 +290,6 @@ SUBDIR=3D \ > ${_nvd} \ > ${_nvme} \ > ${_nvram} \ > - ${_nxge} \ > oce \ > ${_ocs_fc} \ > otus \ > @@ -688,7 +687,6 @@ _nfe=3D nfe > _nvd=3D nvd > _nvme=3D nvme > _nvram=3D nvram > -_nxge=3D nxge > .if ${MK_CRYPT} !=3D "no" || defined(ALL_MODULES) > _padlock=3D padlock > _padlock_rng=3D padlock_rng >=20 > Modified: head/tools/tools/README > =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/tools/tools/README Tue May 8 21:01:04 2018 (r333387) > +++ head/tools/tools/README Tue May 8 21:14:29 2018 (r333388) > @@ -50,7 +50,6 @@ ncpus Count the number of processors > netmap Test applications for netmap(4) > notescheck Check for missing devices and options in NOTES files. > npe Tools specific to the Intel IXP4XXX NPE device > -nxge A diagnostic tool for the nxge(4) driver > pciid Generate src/share/misc/pci_vendors. > pciroms A tool for dumping PCI ROM images. WARNING: alpha quality. > pirtool A tool for dumping the $PIR table on i386 machines at runtime= =2E >=20 > Modified: head/usr.sbin/bsdconfig/share/device.subr > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/usr.sbin/bsdconfig/share/device.subr Tue May 8 21:01:04 2018 = (r333387) > +++ head/usr.sbin/bsdconfig/share/device.subr Tue May 8 21:14:29 2018 = (r333388) > @@ -1336,7 +1336,6 @@ f_network "nfe%d" "NVIDIA nForce MCP Ethernet" > f_network "ng%d" "Vimage netgraph(4) bridged Ethernet device" > f_network "nge%d" "NatSemi PCI Gigabit Ethernet card" > f_network "nve%d" "NVIDIA nForce MCP Ethernet" > -f_network "nxge%d" "Neterion Xframe 10GbE Server/Storage adapter" > f_network "pcn%d" "AMD Am79c79x PCI Ethernet card" > f_network "plip%d" "Parallel Port IP (PLIP) peer connection" > f_network "ral%d" "Ralink Technology IEEE 802.11 wireless adapter" >=20 >=20 --kbhfCGyhRMyevitEqq3en940wf2F7PuOH-- --AiHMgyQvtmJsYZ3Alx4Exq0D0eyfFs9N7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE6MTp+IA1BOHj9Lo0veT1/om1/LYFAlryE9RfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEU4 QzRFOUY4ODAzNTA0RTFFM0Y0QkEzNEJERTRGNUZFODlCNUZDQjYACgkQveT1/om1 /LZrfwgAy8gs8zpCSDzX+cZ21SACHD3Q9+aJNmkS9WOz/rMPriBeE9wifQC7YGgr 3n0rPV2TQZa0LJbAF7OzWovX1+HYicTdwd9nXJoE6h9h0qq9IkVPq3qnXsq9CcLz 9u/IVwS/GeRXz9GSgTW4Lz+3OHDI26OPFXnwikgZ+mWyOrukLnWQ4IbJgsgPSX9Y aeK3XvJGIXfwwF3XAVenQC3OGhfLd4Z/LsrDnQzeqwcQwO0dPNPWNsXoJCYs5Qi3 XrRDWtILURACLmJEboTfyj5KBTnJOnNImXfj0IXI/yTCOuX+930qYgsJwd02KBdK nYHi1edpe6DvjEptrf3bp7Bzz46ZtA== =sWgK -----END PGP SIGNATURE----- --AiHMgyQvtmJsYZ3Alx4Exq0D0eyfFs9N7-- From owner-svn-src-head@freebsd.org Tue May 8 22:10:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B79F8FCBDF2; Tue, 8 May 2018 22:10:33 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-pg0-x22a.google.com (mail-pg0-x22a.google.com [IPv6:2607:f8b0:400e:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 275417DA44; Tue, 8 May 2018 22:10:33 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-pg0-x22a.google.com with SMTP id k11-v6so20630836pgo.10; Tue, 08 May 2018 15:10:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=cE6Eq1/MSBgMmI187ZK8UTy8GYDArZCAY5QndYADJR4=; b=oKrlkYhy5iXu52SoQJEOjzzQO+BzQeCqJN4ijzk2Ii6O99dVgnWS4JK8xrXLWKUM66 Ua59GMt93jckfnM6j6uvuY8/t48wYMVQ8KJv02vPJ21K1cGMncGrz6qxIaNkqjlxyo2E waEmVj+YJru3QK++n+gfT9lzzZDChVzBmXM4CH67rsZdsqRZeldcksUDvPh1WkY0T99g 3479C03jBFnhBypSwwPl+pv/MrorRIyfvrop0RJZBTF112tVe2l6T1+1mN0urtviMSgr ZyhoCn+YUJZgf3wfkymDpn2yRkajgxKy6ksljgWR6w51jIOVjmZ31llJtsP3yZGNaz/H Be/w== 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 :references:mime-version:content-disposition:in-reply-to:user-agent; bh=cE6Eq1/MSBgMmI187ZK8UTy8GYDArZCAY5QndYADJR4=; b=aZip+pSo8VakSViYiKhyxLnYY8euoaF8D2LLxDGzS8DCifAh8TZ8lpXGZ+O3KSi23o H0dAJV5Bu8UxPCRmlAY5622t6N7QDD29QUp7mifjsYMvtpLqGpFSRWTbwScJXyg9uvoa cJlhnSTzEPiFM0owNUp2xYcFE+i9NLvphx46QeD9J0xl9DmyQmwslNsMMrzOg0Wy8lNc CnuUIU1FFVdtPpI9hPbml1/dNDB5qX2+pjfC1QtihXrE7WLh8E+ECuj8S0gmrmLN8BOt Yt92kjKCfGQSBJOT7f9U7ud36dbADBg6wfEFk+87u/EGxgu2iwdw42EYOTZoDHV9XiTP 6m5g== X-Gm-Message-State: ALQs6tDikO8Y6430ddtq81/riAhKddzgi0sTAJSydRFTY3c9i9noKSze wx0tyFhjdqQ/cys+psYkOy1yHg== X-Google-Smtp-Source: AB8JxZpUKh/iQ/3gdI+6UTrYhUXiefXiom2QE5ztLnFiUPr/+rNPXt7Ado0KuGTJou9IXFGdKdBMwQ== X-Received: by 2002:a65:60d1:: with SMTP id r17-v6mr29650215pgv.410.1525817431965; Tue, 08 May 2018 15:10:31 -0700 (PDT) Received: from raichu (toroon0560w-lp130-04-184-145-252-229.dsl.bell.ca. [184.145.252.229]) by smtp.gmail.com with ESMTPSA id t14sm552012pfh.109.2018.05.08.15.10.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 May 2018 15:10:31 -0700 (PDT) Sender: Mark Johnston Date: Tue, 8 May 2018 18:10:25 -0400 From: Mark Johnston To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333345 - head/sys/dev/e1000 Message-ID: <20180508221025.GA4249@raichu> References: <201805080139.w481djMX062724@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805080139.w481djMX062724@repo.freebsd.org> User-Agent: Mutt/1.9.5 (2018-04-13) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 22:10:34 -0000 On Tue, May 08, 2018 at 01:39:45AM +0000, Matt Macy wrote: > Author: mmacy > Date: Tue May 8 01:39:45 2018 > New Revision: 333345 > URL: https://svnweb.freebsd.org/changeset/base/333345 > > Log: > Sleep rather than spin in e1000 when doing long running config operations. > > With r333218 it is now possible for drivers to use an sx lock and thus sleep while > waiting on long running operations rather than DELAY(). > > Reported by: gallatin > Reviewed by: sbruno > Approved by: sbruno > MFC after: 1 month > Sponsored by: Limelight Networks > Differential Revision: https://reviews.freebsd.org/D14984 I'm getting a panic during boot with this change: "unknown mac type d". It occurs while the driver is attaching to: em0@pci0:1:0:0: class=0x020000 card=0x7044103c chip=0x105e8086 rev=0x06 hdr=0x00 vendor = 'Intel Corporation' device = '82571EB Gigabit Ethernet Controller' class = network subclass = ethernet From owner-svn-src-head@freebsd.org Tue May 8 23:09:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C208FCD19B; Tue, 8 May 2018 23:09:35 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (unknown [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4C2996A08C; Tue, 8 May 2018 23:09:35 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f42.google.com (mail-it0-f42.google.com [209.85.214.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 0DC8E247DA; Tue, 8 May 2018 23:09:35 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f42.google.com with SMTP id j186-v6so18326476ita.5; Tue, 08 May 2018 16:09:35 -0700 (PDT) X-Gm-Message-State: ALKqPweY3z+QozdQNlBR8hTxkqXWFvjj+7AIvqE8kXhIDqMBazomxbEb SPaNS6eUvn0lSaOr+mzARGw1iS09eivML0bVIU4= X-Google-Smtp-Source: AB8JxZq3rTkU5olB4ayO/jGGhmOJ8KUH+nVbhQcVheKMwmkPs4MQpyHdgRrm4/KJUq7N6dKCrmJ2ZdtsItckdN+AOeg= X-Received: by 2002:a24:5a85:: with SMTP id v127-v6mr7881807ita.128.1525820974345; Tue, 08 May 2018 16:09:34 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:b0c3:0:0:0:0:0 with HTTP; Tue, 8 May 2018 16:09:33 -0700 (PDT) In-Reply-To: <20180508221025.GA4249@raichu> References: <201805080139.w481djMX062724@repo.freebsd.org> <20180508221025.GA4249@raichu> From: Matthew Macy Date: Tue, 8 May 2018 16:09:33 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333345 - head/sys/dev/e1000 To: Mark Johnston Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 23:09:35 -0000 Is the e1000 driver compiled in or loaded as a module? -M On Tue, May 8, 2018 at 3:10 PM, Mark Johnston wrote: > On Tue, May 08, 2018 at 01:39:45AM +0000, Matt Macy wrote: >> Author: mmacy >> Date: Tue May 8 01:39:45 2018 >> New Revision: 333345 >> URL: https://svnweb.freebsd.org/changeset/base/333345 >> >> Log: >> Sleep rather than spin in e1000 when doing long running config operations. >> >> With r333218 it is now possible for drivers to use an sx lock and thus sleep while >> waiting on long running operations rather than DELAY(). >> >> Reported by: gallatin >> Reviewed by: sbruno >> Approved by: sbruno >> MFC after: 1 month >> Sponsored by: Limelight Networks >> Differential Revision: https://reviews.freebsd.org/D14984 > > I'm getting a panic during boot with this change: "unknown mac type d". > > It occurs while the driver is attaching to: > > em0@pci0:1:0:0: class=0x020000 card=0x7044103c chip=0x105e8086 rev=0x06 hdr=0x00 > vendor = 'Intel Corporation' > device = '82571EB Gigabit Ethernet Controller' > class = network > subclass = ethernet From owner-svn-src-head@freebsd.org Tue May 8 23:13:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45437FCD3D0; Tue, 8 May 2018 23:13:13 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D48AF6AA48; Tue, 8 May 2018 23:13:12 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96BC7F66; Tue, 8 May 2018 23:13:12 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48NDCLu020218; Tue, 8 May 2018 23:13:12 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48NDBrQ020214; Tue, 8 May 2018 23:13:11 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805082313.w48NDBrQ020214@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Tue, 8 May 2018 23:13:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333389 - in head: crypto/openssh crypto/openssh/contrib crypto/openssh/contrib/aix crypto/openssh/contrib/redhat crypto/openssh/contrib/suse crypto/openssh/openbsd-compat crypto/openss... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: crypto/openssh crypto/openssh/contrib crypto/openssh/contrib/aix crypto/openssh/contrib/redhat crypto/openssh/contrib/suse crypto/openssh/openbsd-compat crypto/openssh/regress crypto/openssh/... X-SVN-Commit-Revision: 333389 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 23:13:13 -0000 Author: des Date: Tue May 8 23:13:11 2018 New Revision: 333389 URL: https://svnweb.freebsd.org/changeset/base/333389 Log: Upgrade to OpenSSH 7.6p1. This will be followed shortly by 7.7p1. This completely removes client-side support for the SSH 1 protocol, which was already disabled in 12 but is still enabled in 11. For that reason, we will not be able to merge 7.6p1 or newer back to 11. Added: head/crypto/openssh/.gitignore - copied unchanged from r333296, vendor-crypto/openssh/dist/.gitignore head/crypto/openssh/freebsd-namespace.sh (contents, props changed) head/crypto/openssh/openbsd-compat/bsd-getpagesize.c - copied unchanged from r333296, vendor-crypto/openssh/dist/openbsd-compat/bsd-getpagesize.c head/crypto/openssh/openbsd-compat/bsd-malloc.c - copied unchanged from r333296, vendor-crypto/openssh/dist/openbsd-compat/bsd-malloc.c head/crypto/openssh/openbsd-compat/freezero.c - copied unchanged from r333296, vendor-crypto/openssh/dist/openbsd-compat/freezero.c head/crypto/openssh/openbsd-compat/recallocarray.c - copied unchanged from r333296, vendor-crypto/openssh/dist/openbsd-compat/recallocarray.c head/crypto/openssh/platform-misc.c - copied unchanged from r333296, vendor-crypto/openssh/dist/platform-misc.c head/crypto/openssh/regress/authinfo.sh - copied unchanged from r333296, vendor-crypto/openssh/dist/regress/authinfo.sh head/crypto/openssh/regress/misc/fuzz-harness/ - copied from r333296, vendor-crypto/openssh/dist/regress/misc/fuzz-harness/ Deleted: head/crypto/openssh/cipher-3des1.c head/crypto/openssh/cipher-bf1.c head/crypto/openssh/deattack.c head/crypto/openssh/deattack.h head/crypto/openssh/md-sha256.c head/crypto/openssh/rsa.c head/crypto/openssh/rsa.h head/crypto/openssh/ssh1.h head/crypto/openssh/sshconnect1.c Modified: head/crypto/openssh/.skipped-commit-ids head/crypto/openssh/ChangeLog head/crypto/openssh/FREEBSD-upgrade head/crypto/openssh/INSTALL head/crypto/openssh/LICENCE head/crypto/openssh/Makefile.in head/crypto/openssh/PROTOCOL head/crypto/openssh/PROTOCOL.agent head/crypto/openssh/PROTOCOL.certkeys head/crypto/openssh/README head/crypto/openssh/auth-options.c head/crypto/openssh/auth-options.h head/crypto/openssh/auth-pam.c head/crypto/openssh/auth.c head/crypto/openssh/auth.h head/crypto/openssh/auth2-chall.c head/crypto/openssh/auth2-gss.c head/crypto/openssh/auth2-hostbased.c head/crypto/openssh/auth2-kbdint.c head/crypto/openssh/auth2-none.c head/crypto/openssh/auth2-passwd.c head/crypto/openssh/auth2-pubkey.c head/crypto/openssh/auth2.c head/crypto/openssh/authfd.c head/crypto/openssh/authfd.h head/crypto/openssh/authfile.c head/crypto/openssh/bitmap.c head/crypto/openssh/bufbn.c head/crypto/openssh/buffer.h head/crypto/openssh/channels.c head/crypto/openssh/channels.h head/crypto/openssh/cipher.c head/crypto/openssh/cipher.h head/crypto/openssh/clientloop.c head/crypto/openssh/clientloop.h head/crypto/openssh/compat.c head/crypto/openssh/compat.h head/crypto/openssh/config.h head/crypto/openssh/configure.ac head/crypto/openssh/contrib/aix/README head/crypto/openssh/contrib/redhat/openssh.spec head/crypto/openssh/contrib/ssh-copy-id head/crypto/openssh/contrib/suse/openssh.spec head/crypto/openssh/defines.h head/crypto/openssh/digest-libc.c head/crypto/openssh/digest-openssl.c head/crypto/openssh/digest.h head/crypto/openssh/dispatch.c head/crypto/openssh/dispatch.h head/crypto/openssh/dns.c head/crypto/openssh/dns.h head/crypto/openssh/gss-serv.c head/crypto/openssh/hostfile.c head/crypto/openssh/includes.h head/crypto/openssh/kex.c head/crypto/openssh/kex.h head/crypto/openssh/kexc25519c.c head/crypto/openssh/kexc25519s.c head/crypto/openssh/kexdhc.c head/crypto/openssh/kexdhs.c head/crypto/openssh/kexecdhc.c head/crypto/openssh/kexecdhs.c head/crypto/openssh/kexgexc.c head/crypto/openssh/kexgexs.c head/crypto/openssh/key.c head/crypto/openssh/key.h head/crypto/openssh/krl.c head/crypto/openssh/log.c head/crypto/openssh/log.h head/crypto/openssh/mac.c head/crypto/openssh/misc.c head/crypto/openssh/misc.h head/crypto/openssh/monitor.c head/crypto/openssh/monitor_wrap.c head/crypto/openssh/monitor_wrap.h head/crypto/openssh/mux.c head/crypto/openssh/myproposal.h head/crypto/openssh/nchan.c head/crypto/openssh/opacket.c head/crypto/openssh/opacket.h head/crypto/openssh/openbsd-compat/Makefile.in head/crypto/openssh/openbsd-compat/bsd-err.c head/crypto/openssh/openbsd-compat/bsd-misc.c head/crypto/openssh/openbsd-compat/bsd-misc.h head/crypto/openssh/openbsd-compat/explicit_bzero.c head/crypto/openssh/openbsd-compat/fmt_scaled.c head/crypto/openssh/openbsd-compat/openbsd-compat.h head/crypto/openssh/openbsd-compat/port-tun.c head/crypto/openssh/openbsd-compat/port-tun.h head/crypto/openssh/packet.c head/crypto/openssh/packet.h head/crypto/openssh/pathnames.h head/crypto/openssh/platform.c head/crypto/openssh/readconf.c head/crypto/openssh/readconf.h head/crypto/openssh/regress/Makefile head/crypto/openssh/regress/agent-getpeereid.sh head/crypto/openssh/regress/agent-pkcs11.sh head/crypto/openssh/regress/agent.sh head/crypto/openssh/regress/banner.sh head/crypto/openssh/regress/broken-pipe.sh head/crypto/openssh/regress/brokenkeys.sh head/crypto/openssh/regress/cert-file.sh head/crypto/openssh/regress/cert-hostkey.sh head/crypto/openssh/regress/cert-userkey.sh head/crypto/openssh/regress/cfgmatch.sh head/crypto/openssh/regress/cipher-speed.sh head/crypto/openssh/regress/connect-privsep.sh head/crypto/openssh/regress/connect.sh head/crypto/openssh/regress/dhgex.sh head/crypto/openssh/regress/dynamic-forward.sh head/crypto/openssh/regress/exit-status.sh head/crypto/openssh/regress/forcecommand.sh head/crypto/openssh/regress/forward-control.sh head/crypto/openssh/regress/forwarding.sh head/crypto/openssh/regress/host-expand.sh head/crypto/openssh/regress/hostkey-agent.sh head/crypto/openssh/regress/integrity.sh head/crypto/openssh/regress/key-options.sh head/crypto/openssh/regress/keygen-change.sh head/crypto/openssh/regress/keyscan.sh head/crypto/openssh/regress/keytype.sh head/crypto/openssh/regress/localcommand.sh head/crypto/openssh/regress/login-timeout.sh head/crypto/openssh/regress/misc/kexfuzz/Makefile head/crypto/openssh/regress/misc/kexfuzz/kexfuzz.c head/crypto/openssh/regress/multiplex.sh head/crypto/openssh/regress/principals-command.sh head/crypto/openssh/regress/proto-mismatch.sh head/crypto/openssh/regress/proto-version.sh head/crypto/openssh/regress/proxy-connect.sh head/crypto/openssh/regress/putty-ciphers.sh head/crypto/openssh/regress/putty-transfer.sh head/crypto/openssh/regress/reconfigure.sh head/crypto/openssh/regress/reexec.sh head/crypto/openssh/regress/ssh-com.sh head/crypto/openssh/regress/stderr-after-eof.sh head/crypto/openssh/regress/stderr-data.sh head/crypto/openssh/regress/test-exec.sh head/crypto/openssh/regress/transfer.sh head/crypto/openssh/regress/try-ciphers.sh head/crypto/openssh/regress/unittests/Makefile.inc head/crypto/openssh/regress/unittests/hostkeys/mktestdata.sh head/crypto/openssh/regress/unittests/hostkeys/test_iterate.c head/crypto/openssh/regress/unittests/hostkeys/testdata/known_hosts head/crypto/openssh/regress/unittests/sshkey/mktestdata.sh head/crypto/openssh/regress/unittests/sshkey/test_file.c head/crypto/openssh/regress/unittests/sshkey/test_fuzz.c head/crypto/openssh/regress/unittests/sshkey/test_sshkey.c head/crypto/openssh/regress/yes-head.sh head/crypto/openssh/sandbox-seccomp-filter.c head/crypto/openssh/sandbox-solaris.c head/crypto/openssh/scp.1 head/crypto/openssh/scp.c head/crypto/openssh/servconf.c head/crypto/openssh/servconf.h head/crypto/openssh/serverloop.c head/crypto/openssh/serverloop.h head/crypto/openssh/session.c head/crypto/openssh/session.h head/crypto/openssh/sftp-client.c head/crypto/openssh/sftp-common.c head/crypto/openssh/sftp-server.c head/crypto/openssh/sftp.1 head/crypto/openssh/sftp.c head/crypto/openssh/ssh-add.1 head/crypto/openssh/ssh-add.c head/crypto/openssh/ssh-agent.c head/crypto/openssh/ssh-gss.h head/crypto/openssh/ssh-keygen.1 head/crypto/openssh/ssh-keygen.c head/crypto/openssh/ssh-keyscan.1 head/crypto/openssh/ssh-keyscan.c head/crypto/openssh/ssh-pkcs11-client.c head/crypto/openssh/ssh-pkcs11-helper.c head/crypto/openssh/ssh-pkcs11.c head/crypto/openssh/ssh-rsa.c head/crypto/openssh/ssh.1 head/crypto/openssh/ssh.c head/crypto/openssh/ssh.h head/crypto/openssh/ssh_api.c head/crypto/openssh/ssh_config head/crypto/openssh/ssh_config.5 head/crypto/openssh/ssh_namespace.h (contents, props changed) head/crypto/openssh/sshbuf-getput-basic.c head/crypto/openssh/sshbuf.c head/crypto/openssh/sshbuf.h head/crypto/openssh/sshconnect.c head/crypto/openssh/sshconnect.h head/crypto/openssh/sshconnect2.c head/crypto/openssh/sshd.8 head/crypto/openssh/sshd.c head/crypto/openssh/sshd_config head/crypto/openssh/sshd_config.5 head/crypto/openssh/ssherr.c head/crypto/openssh/ssherr.h head/crypto/openssh/sshkey.c head/crypto/openssh/sshkey.h head/crypto/openssh/ttymodes.c head/crypto/openssh/ttymodes.h head/crypto/openssh/umac.c head/crypto/openssh/utf8.c head/crypto/openssh/version.h head/crypto/openssh/xmalloc.c head/crypto/openssh/xmalloc.h head/secure/lib/libssh/Makefile head/secure/usr.bin/ssh/Makefile Directory Properties: head/crypto/openssh/ (props changed) Copied: head/crypto/openssh/.gitignore (from r333296, vendor-crypto/openssh/dist/.gitignore) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/crypto/openssh/.gitignore Tue May 8 23:13:11 2018 (r333389, copy of r333296, vendor-crypto/openssh/dist/.gitignore) @@ -0,0 +1,28 @@ +Makefile +buildpkg.sh +config.h +config.h.in +config.status +configure +openbsd-compat/Makefile +openbsd-compat/regress/Makefile +openssh.xml +opensshd.init +survey.sh +**/*.0 +**/*.o +**/*.out +**/*.a +autom4te.cache/ +scp +sftp +sftp-server +ssh +ssh-add +ssh-agent +ssh-keygen +ssh-keyscan +ssh-keysign +ssh-pkcs11-helper +sshd +!regress/misc/fuzz-harness/Makefile Modified: head/crypto/openssh/.skipped-commit-ids ============================================================================== --- head/crypto/openssh/.skipped-commit-ids Tue May 8 21:14:29 2018 (r333388) +++ head/crypto/openssh/.skipped-commit-ids Tue May 8 23:13:11 2018 (r333389) @@ -11,3 +11,13 @@ f6ae971186ba68d066cd102e57d5b0b2c211a5ee systrace is d 96c5054e3e1f170c6276902d5bc65bb3b87a2603 remove DEBUGLIBS from Makefile 6da9a37f74aef9f9cc639004345ad893cad582d8 Update moduli file 77bcb50e47b68c7209c7f0a5a020d73761e5143b unset REGRESS_FAIL_EARLY +38c2133817cbcae75c88c63599ac54228f0fa384 Change COMPILER_VERSION tests +30c20180c87cbc99fa1020489fe7fd8245b6420c resync integrity.sh shell +1e6b51ddf767cbad0a4e63eb08026c127e654308 integrity.sh reliability +fe5b31f69a60d47171836911f144acff77810217 Makefile.inc bits +5781670c0578fe89663c9085ed3ba477cf7e7913 Delete sshconnect1.c +ea80f445e819719ccdcb237022cacfac990fdc5c Makefile.inc warning flags +b92c93266d8234d493857bb822260dacf4366157 moduli-gen.sh tweak +b25bf747544265b39af74fe0716dc8d9f5b63b95 Updated moduli +1bd41cba06a7752de4df304305a8153ebfb6b0ac rsa.[ch] already removed +e39b3902fe1d6c4a7ba6a3c58e072219f3c1e604 Makefile changes Modified: head/crypto/openssh/ChangeLog ============================================================================== --- head/crypto/openssh/ChangeLog Tue May 8 21:14:29 2018 (r333388) +++ head/crypto/openssh/ChangeLog Tue May 8 23:13:11 2018 (r333389) @@ -1,3 +1,2514 @@ +commit 66bf74a92131b7effe49fb0eefe5225151869dc5 +Author: djm@openbsd.org +Date: Mon Oct 2 19:33:20 2017 +0000 + + upstream commit + + Fix PermitOpen crash; spotted by benno@, ok dtucker@ deraadt@ + + Upstream-ID: c2cc84ffac070d2e1ff76182c70ca230a387983c + +commit d63b38160a59039708fd952adc75a0b3da141560 +Author: Damien Miller +Date: Sun Oct 1 10:32:25 2017 +1100 + + update URL again + + I spotted a typo in the draft so uploaded a new version... + +commit 6f64f596430cd3576c529f07acaaf2800aa17d58 +Author: Damien Miller +Date: Sun Oct 1 10:01:56 2017 +1100 + + sync release notes URL + +commit 35ff70a04dd71663a5ac1e73b90d16d270a06e0d +Author: Damien Miller +Date: Sun Oct 1 10:01:25 2017 +1100 + + sync contrib/ssh-copy-id with upstream + +commit 290843b8ede85f8b30bf29cd7dceb805c3ea5b66 +Author: Damien Miller +Date: Sun Oct 1 09:59:19 2017 +1100 + + update version in RPM spec files + +commit 4e4e0bb223c5be88d87d5798c75cc6b0d4fef31d +Author: Damien Miller +Date: Sun Oct 1 09:58:24 2017 +1100 + + update agent draft URL + +commit e4a798f001d2ecd8bf025c1d07658079f27cc604 +Author: djm@openbsd.org +Date: Sat Sep 30 22:26:33 2017 +0000 + + upstream commit + + openssh-7.6; ok deraadt@ + + Upstream-ID: a39c3a5b63a1baae109ae1ae4c7c34c2a59acde0 + +commit 5fa1407e16e7e5fda9769d53b626ce39d5588d4d +Author: jmc@openbsd.org +Date: Wed Sep 27 06:45:53 2017 +0000 + + upstream commit + + tweak EposeAuthinfo; diff from lars nooden + + tweaked by sthen; ok djm dtucker + + Upstream-ID: 8f2ea5d2065184363e8be7a0ba24d98a3b259748 + +commit bba69c246f0331f657fd6ec97724df99fc1ad174 +Author: Damien Miller +Date: Thu Sep 28 16:06:21 2017 -0700 + + don't fatal ./configure for LibreSSL + +commit 04dc070e8b4507d9d829f910b29be7e3b2414913 +Author: Damien Miller +Date: Thu Sep 28 14:54:34 2017 -0700 + + abort in configure when only openssl-1.1.x found + + We don't support openssl-1.1.x yet (see multiple threads on the + openssh-unix-dev@ mailing list for the reason), but previously + ./configure would accept it and the compilation would subsequently + fail. This makes ./configure display an explicit error message and + abort. + + ok dtucker@ + +commit 74c1c3660acf996d9dc329e819179418dc115f2c +Author: Darren Tucker +Date: Wed Sep 27 07:44:41 2017 +1000 + + Check for and handle calloc(p, 0) = NULL. + + On some platforms (AIX, maybe others) allocating zero bytes of memory + via the various *alloc functions returns NULL, which is permitted + by the standards. Autoconf has some macros for detecting this (with + the exception of calloc for some reason) so use these and if necessary + activate shims for them. ok djm@ + +commit 6a9481258a77b0b54b2a313d1761c87360c5f1f5 +Author: markus@openbsd.org +Date: Thu Sep 21 19:18:12 2017 +0000 + + upstream commit + + test reverse dynamic forwarding with SOCKS + + Upstream-Regress-ID: 95cf290470f7e5e2f691e4bc6ba19b91eced2f79 + +commit 1b9f321605733754df60fac8c1d3283c89b74455 +Author: Damien Miller +Date: Tue Sep 26 16:55:55 2017 +1000 + + sync missing changes in dynamic-forward.sh + +commit 44fc334c7a9ebdd08addb6d5fa005369897fddeb +Author: Darren Tucker +Date: Mon Sep 25 09:48:10 2017 +1000 + + Add minimal strsignal for platforms without it. + +commit 218e6f98df566fb9bd363f6aa47018cb65ede196 +Author: djm@openbsd.org +Date: Sun Sep 24 13:45:34 2017 +0000 + + upstream commit + + fix inverted test on channel open failure path that + "upgraded" a transient failure into a fatal error; reported by sthen and also + seen by benno@; ok sthen@ + + Upstream-ID: b58b3fbb79ba224599c6cd6b60c934fc46c68472 + +commit c704f641f7b8777497dc82e81f2ac89afec7e401 +Author: djm@openbsd.org +Date: Sun Sep 24 09:50:01 2017 +0000 + + upstream commit + + write the correct buffer when tunnel forwarding; doesn't + matter on OpenBSD (they are the same) but does matter on portable where we + use an output filter to translate os-specific tun/tap headers + + Upstream-ID: f1ca94eff48404827b12e1d12f6139ee99a72284 + +commit 55486f5cef117354f0c64f991895835077b7c7f7 +Author: djm@openbsd.org +Date: Sat Sep 23 22:04:07 2017 +0000 + + upstream commit + + fix tunnel forwarding problem introduced in refactor; + reported by stsp@ ok markus@ + + Upstream-ID: 81a731cdae1122c8522134095d1a8b60fa9dcd04 + +commit 609d7a66ce578abf259da2d5f6f68795c2bda731 +Author: markus@openbsd.org +Date: Thu Sep 21 19:16:53 2017 +0000 + + upstream commit + + Add 'reverse' dynamic forwarding which combines dynamic + forwarding (-D) with remote forwarding (-R) where the remote-forwarded port + expects SOCKS-requests. + + The SSH server code is unchanged and the parsing happens at the SSH + clients side. Thus the full SOCKS-request is sent over the forwarded + channel and the client parses c->output. Parsing happens in + channel_before_prepare_select(), _before_ the select bitmask is + computed in the pre[] handlers, but after network input processing + in the post[] handlers. + + help and ok djm@ + + Upstream-ID: aa25a6a3851064f34fe719e0bf15656ad5a64b89 + +commit 36945fa103176c00b39731e1fc1919a0d0808b81 +Author: dtucker@openbsd.org +Date: Wed Sep 20 05:19:00 2017 +0000 + + upstream commit + + Use strsignal in debug message instead of casting for the + benefit of portable where sig_atomic_t might not be int. "much nicer" + deraadt@ + + Upstream-ID: 2dac6c1e40511c700bd90664cd263ed2299dcf79 + +commit 3e8d185af326bf183b6f78597d5e3d2eeb2dc40e +Author: millert@openbsd.org +Date: Tue Sep 19 12:10:30 2017 +0000 + + upstream commit + + Use explicit_bzero() instead of bzero() before free() to + prevent the compiler from optimizing away the bzero() call. OK djm@ + + Upstream-ID: cdc6197e64c9684c7250e23d60863ee1b53cef1d + +commit 5b8da1f53854c0923ec6e927e86709e4d72737b6 +Author: djm@openbsd.org +Date: Tue Sep 19 04:24:22 2017 +0000 + + upstream commit + + fix use-after-free in ~^Z escape handler path, introduced + in channels.c refactor; spotted by millert@ "makes sense" deraadt@ + + Upstream-ID: 8fa2cdc65c23ad6420c1e59444b0c955b0589b22 + +commit a3839d8d2b89ff1a80cadd4dd654336710de2c9e +Author: dtucker@openbsd.org +Date: Mon Sep 18 12:03:24 2017 +0000 + + upstream commit + + Prevent type mismatch warning in debug on platforms where + sig_atomic_t != int. ok djm@ + + Upstream-ID: 306e2375eb0364a4c68e48f091739bea4f4892ed + +commit 30484e5e5f0b63d2c6ba32c6b85f06b6c6fa55fc +Author: dtucker@openbsd.org +Date: Mon Sep 18 09:41:52 2017 +0000 + + upstream commit + + Add braces missing after channels refactor. ok markus@ + + Upstream-ID: 72ab325c84e010680dbc88f226e2aa96b11a3980 + +commit b79569190b9b76dfacc6d996faa482f16e8fc026 +Author: Damien Miller +Date: Tue Sep 19 12:29:23 2017 +1000 + + add freezero(3) replacement + + ok dtucker@ + +commit 161af8f5ec0961b10cc032efb5cc1b44ced5a92e +Author: Damien Miller +Date: Tue Sep 19 10:18:56 2017 +1000 + + move FORTIFY_SOURCE into hardening options group + + It's still on by default, but now it's possible to turn it off using + --without-hardening. This is useful since it's known to cause problems + with some -fsanitize options. ok dtucker@ + +commit 09eacf856e0fe1a6e3fe597ec8032b7046292914 +Author: bluhm@openbsd.org +Date: Wed Sep 13 14:58:26 2017 +0000 + + upstream commit + + Print SKIPPED if sudo and doas configuration is missing. + Prevents that running the regression test with wrong environment is reported + as failure. Keep the fatal there to avoid interfering with other setups for + portable ssh. OK dtucker@ + + Upstream-Regress-ID: f0dc60023caef496ded341ac5aade2a606fa234e + +commit cdede10899892f25f1ccdccd7a3fe5e5ef0aa49a +Author: dtucker@openbsd.org +Date: Mon Aug 7 03:52:55 2017 +0000 + + upstream commit + + Remove obsolete privsep=no fallback test. + + Upstream-Regress-ID: 7d6e1baa1678ac6be50c2a1555662eb1047638df + +commit ec218c105daa9f5b192f7aa890fdb2d4fdc4e9d8 +Author: dtucker@openbsd.org +Date: Mon Aug 7 00:53:51 2017 +0000 + + upstream commit + + Remove non-privsep test since disabling privsep is now + deprecated. + + Upstream-Regress-ID: 77ad3f3d8d52e87f514a80f285c6c1229b108ce8 + +commit 239c57d5bc2253e27e3e6ad7ac52ec8c377ee24e +Author: dtucker@openbsd.org +Date: Fri Jul 28 10:32:08 2017 +0000 + + upstream commit + + Don't call fatal from stop_sshd since it calls cleanup + which calls stop_sshd which will probably fail in the same way. Instead, + just bail. Differentiate between sshd dying without cleanup and not shutting + down. + + Upstream-Regress-ID: f97315f538618b349e2b0bea02d6b0c9196c6bc4 + +commit aea59a0d9f120f2a87c7f494a0d9c51eaa79b8ba +Author: djm@openbsd.org +Date: Thu Sep 14 04:32:21 2017 +0000 + + upstream commit + + Revert commitid: gJtIN6rRTS3CHy9b. + + ------------- + identify the case where SSHFP records are missing but other DNS RR + types are present and display a more useful error message for this + case; patch by Thordur Bjornsson; bz#2501; ok dtucker@ + ------------- + + This caused unexpected failures when VerifyHostKeyDNS=yes, SSHFP results + are missing but the user already has the key in known_hosts + + Spotted by dtucker@ + + Upstream-ID: 97e31742fddaf72046f6ffef091ec0d823299920 + +commit 871f1e4374420b07550041b329627c474abc3010 +Author: Damien Miller +Date: Tue Sep 12 18:01:35 2017 +1000 + + adapt portable to channels API changes + +commit 4ec0bb9f9ad7b4eb0af110fa8eddf8fa199e46bb +Author: djm@openbsd.org +Date: Tue Sep 12 07:55:48 2017 +0000 + + upstream commit + + unused variable + + Upstream-ID: 2f9ba09f2708993d35eac5aa71df910dcc52bac1 + +commit 9145a73ce2ba30c82bbf91d7205bfd112529449f +Author: djm@openbsd.org +Date: Tue Sep 12 07:32:04 2017 +0000 + + upstream commit + + fix tun/tap forwarding case in previous + + Upstream-ID: 43ebe37a930320e24bca6900dccc39857840bc53 + +commit 9f53229c2ac97dbc6f5a03657de08a1150a9ac7e +Author: djm@openbsd.org +Date: Tue Sep 12 06:35:31 2017 +0000 + + upstream commit + + Make remote channel ID a u_int + + Previously we tracked the remote channel IDs in an int, but this is + strictly incorrect: the wire protocol uses uint32 and there is nothing + in-principle stopping a SSH implementation from sending, say, 0xffff0000. + + In practice everyone numbers their channels sequentially, so this has + never been a problem. + + ok markus@ + + Upstream-ID: b9f4cd3dc53155b4a5c995c0adba7da760d03e73 + +commit dbee4119b502e3f8b6cd3282c69c537fd01d8e16 +Author: djm@openbsd.org +Date: Tue Sep 12 06:32:07 2017 +0000 + + upstream commit + + refactor channels.c + + Move static state to a "struct ssh_channels" that is allocated at + runtime and tracked as a member of struct ssh. + + Explicitly pass "struct ssh" to all channels functions. + + Replace use of the legacy packet APIs in channels.c. + + Rework sshd_config PermitOpen handling: previously the configuration + parser would call directly into the channels layer. After the refactor + this is not possible, as the channels structures are allocated at + connection time and aren't available when the configuration is parsed. + The server config parser now tracks PermitOpen itself and explicitly + configures the channels code later. + + ok markus@ + + Upstream-ID: 11828f161656b965cc306576422613614bea2d8f + +commit abd59663df37a42152e37980113ccaa405b9a282 +Author: djm@openbsd.org +Date: Thu Sep 7 23:48:09 2017 +0000 + + upstream commit + + typo in comment + + Upstream-ID: a93b1e6f30f1f9b854b5b964b9fd092d0c422c47 + +commit 149a8cd24ce9dd47c36f571738681df5f31a326c +Author: jmc@openbsd.org +Date: Mon Sep 4 06:34:43 2017 +0000 + + upstream commit + + tweak previous; + + Upstream-ID: bb8cc40b61b15f6a13d81da465ac5bfc65cbfc4b + +commit ec9d22cc251cc5acfe7b2bcef9cc7a1fe0e949d8 +Author: Damien Miller +Date: Fri Sep 8 12:44:13 2017 +1000 + + Fuzzer harnesses for sig verify and pubkey parsing + + These are some basic clang libfuzzer harnesses for signature + verification and public key parsing. Some assembly (metaphorical) + required. + +commit de35c382894964a896a63ecd5607d3a3b93af75d +Author: Damien Miller +Date: Fri Sep 8 12:38:31 2017 +1000 + + Give configure ability to set CFLAGS/LDFLAGS later + + Some CFLAGS/LDFLAGS may disrupt the configure script's operation, + in particular santization and fuzzer options that break assumptions + about memory and file descriptor dispositions. + + This adds two flags to configure --with-cflags-after and + --with-ldflags-after that allow specifying additional compiler and + linker options that are added to the resultant Makefiles but not + used in the configure run itself. + + E.g. + + env CC=clang-3.9 ./configure \ + --with-cflags-after=-fsantize=address \ + --with-ldflags-after="-g -fsanitize=address" + +commit 22376d27a349f62c502fec3396dfe0fdcb2a40b7 +Author: djm@openbsd.org +Date: Sun Sep 3 23:33:13 2017 +0000 + + upstream commit + + Expand ssh_config's StrictModes option with two new + settings: + + StrictModes=accept-new will automatically accept hitherto-unseen keys + but will refuse connections for changed or invalid hostkeys. + + StrictModes=off is the same as StrictModes=no + + Motivation: + + StrictModes=no combines two behaviours for host key processing: + automatically learning new hostkeys and continuing to connect to hosts + with invalid/changed hostkeys. The latter behaviour is quite dangerous + since it removes most of the protections the SSH protocol is supposed to + provide. + + Quite a few users want to automatically learn hostkeys however, so + this makes that feature available with less danger. + + At some point in the future, StrictModes=no will change to be a synonym + for accept-new, with its current behaviour remaining available via + StrictModes=off. + + bz#2400, suggested by Michael Samuel; ok markus + + Upstream-ID: 0f55502bf75fc93a74fb9853264a8276b9680b64 + +commit ff3c42384033514e248ba5d7376aa033f4a2b99a +Author: jmc@openbsd.org +Date: Fri Sep 1 15:41:26 2017 +0000 + + upstream commit + + remove blank line; + + Upstream-ID: 2f46b51a0ddb3730020791719e94d3e418e9f423 + +commit b828605d51f57851316d7ba402b4ae06cf37c55d +Author: djm@openbsd.org +Date: Fri Sep 1 05:53:56 2017 +0000 + + upstream commit + + identify the case where SSHFP records are missing but + other DNS RR types are present and display a more useful error message for + this case; patch by Thordur Bjornsson; bz#2501; ok dtucker@ + + Upstream-ID: 8f7a5a8344f684823d8317a9708b63e75be2c244 + +commit 8042bad97e2789a50e8f742c3bcd665ebf0add32 +Author: djm@openbsd.org +Date: Fri Sep 1 05:50:48 2017 +0000 + + upstream commit + + document available AuthenticationMethods; bz#2453 ok + dtucker@ + + Upstream-ID: 2c70576f237bb699aff59889dbf2acba4276d3d0 + +commit 71e5a536ec815d542b199f2ae6d646c0db9f1b58 +Author: djm@openbsd.org +Date: Wed Aug 30 03:59:08 2017 +0000 + + upstream commit + + pass packet state down to some of the channels function + (more to come...); ok markus@ + + Upstream-ID: d8ce7a94f4059d7ac1e01fb0eb01de0c4b36c81b + +commit 6227fe5b362239c872b91bbdee4bf63cf85aebc5 +Author: jmc@openbsd.org +Date: Tue Aug 29 13:05:58 2017 +0000 + + upstream commit + + sort options; + + Upstream-ID: cf21d68cf54e81968bca629aaeddc87f0c684f3c + +commit 530591a5795a02d01c78877d58604723918aac87 +Author: dlg@openbsd.org +Date: Tue Aug 29 09:42:29 2017 +0000 + + upstream commit + + add a -q option to ssh-add to make it quiet on success. + + if you want to silence ssh-add without this you generally redirect + the output to /dev/null, but that can hide error output which you + should see. + + ok djm@ + + Upstream-ID: 2f31b9b13f99dcf587e9a8ba443458e6c0d8997c + +commit a54eb27dd64b5eca3ba94e15cec3535124bd5029 +Author: dtucker@openbsd.org +Date: Sun Aug 27 00:38:41 2017 +0000 + + upstream commit + + Increase the buffer sizes for user prompts to ensure that + they won't be truncated by snprintf. Based on patch from cjwatson at + debian.org via bz#2768, ok djm@ + + Upstream-ID: 6ffacf1abec8f40b469de5b94bfb29997d96af3e + +commit dd9d9b3381a4597b840d480b043823112039327e +Author: Darren Tucker +Date: Mon Aug 28 16:48:27 2017 +1000 + + Switch Capsicum header to sys/capsicum.h. + + FreeBSD's was renamed to in 2014 to + avoid future conflicts with POSIX capabilities (the last release that + didn't have it was 9.3) so switch to that. Patch from des at des.no. + +commit f5e917ab105af5dd6429348d9bc463e52b263f92 +Author: Darren Tucker +Date: Sun Aug 27 08:55:40 2017 +1000 + + Add missing includes for bsd-err.c. + + Patch from cjwatson at debian.org via bz#2767. + +commit 878e029797cfc9754771d6f6ea17f8c89e11d225 +Author: Damien Miller +Date: Fri Aug 25 13:25:01 2017 +1000 + + Split platform_sys_dir_uid into its own file + + platform.o is too heavy for libssh.a use; it calls into the server on + many platforms. Move just the function needed by misc.c into its own + file. + +commit 07949bfe9133234eddd01715592aa0dde67745f0 +Author: Damien Miller +Date: Wed Aug 23 20:13:18 2017 +1000 + + misc.c needs functions from platform.c now + +commit b074c3c3f820000a21953441cea7699c4b17d72f +Author: djm@openbsd.org +Date: Fri Aug 18 05:48:04 2017 +0000 + + upstream commit + + add a "quiet" flag to exited_cleanly() that supresses + errors about exit status (failure due to signal is still reported) + + Upstream-ID: db85c39c3aa08e6ff67fc1fb4ffa89f807a9d2f0 + +commit de4ae07f12dabf8815ecede54235fce5d22e3f63 +Author: djm@openbsd.org +Date: Fri Aug 18 05:36:45 2017 +0000 + + upstream commit + + Move several subprocess-related functions from various + locations to misc.c. Extend subprocess() to offer a little more control over + stdio disposition. + + feedback & ok dtucker@ + + Upstream-ID: 3573dd7109d13ef9bd3bed93a3deb170fbfce049 + +commit 643c2ad82910691b2240551ea8b14472f60b5078 +Author: djm@openbsd.org +Date: Sat Aug 12 06:46:01 2017 +0000 + + upstream commit + + make "--" before the hostname terminate command-line + option processing completely; previous behaviour would not prevent further + options appearing after the hostname (ssh has a supported options after the + hostname for >20 years, so that's too late to change). + + ok deraadt@ + + Upstream-ID: ef5ee50571b98ad94dcdf8282204e877ec88ad89 + +commit 0f3455356bc284d7c6f4d3c1614d31161bd5dcc2 +Author: djm@openbsd.org +Date: Sat Aug 12 06:42:52 2017 +0000 + + upstream commit + + Switch from aes256-cbc to aes256-ctr for encrypting + new-style private keys. The latter having the advantage of being supported + for no-OpenSSL builds; bz#2754 ok markus@ + + Upstream-ID: 54179a2afd28f93470471030567ac40431e56909 + +commit c4972d0a9bd6f898462906b4827e09b7caea2d9b +Author: djm@openbsd.org +Date: Fri Aug 11 04:47:12 2017 +0000 + + upstream commit + + refuse to a private keys when its corresponding .pub key + does not match. bz#2737 ok dtucker@ + + Upstream-ID: 54ff5e2db00037f9db8d61690f26ef8f16e0d913 + +commit 4b3ecbb663c919132dddb3758e17a23089413519 +Author: djm@openbsd.org +Date: Fri Aug 11 04:41:08 2017 +0000 + + upstream commit + + don't print verbose error message when ssh disconnects + under sftp; bz#2750; ok dtucker@ + + Upstream-ID: 6d83708aed77b933c47cf155a87dc753ec01f370 + +commit 42a8f8bc288ef8cac504c5c73f09ed610bc74a34 +Author: dtucker@openbsd.org +Date: Fri Aug 11 04:16:35 2017 +0000 + + upstream commit + + Tweak previous keepalive commit: if last_time + keepalive + <= now instead of just "<" so client_alive_check will fire if the select + happens to return on exact second of the timeout. ok djm@ + + Upstream-ID: e02756bd6038d11bb8522bfd75a4761c3a684fcc + +commit b60ff20051ef96dfb207b6bfa45c0ad6c34a542a +Author: dtucker@openbsd.org +Date: Fri Aug 11 03:58:36 2017 +0000 + + upstream commit + + Keep track of the last time we actually heard from the + client and use this to also schedule a client_alive_check(). Prevents + activity on a forwarded port from indefinitely preventing the select timeout + so that client_alive_check() will eventually (although not optimally) be + called. + + Analysis by willchan at google com via bz#2756, feedback & ok djm@ + + Upstream-ID: c08721e0bbda55c6d18e2760f3fe1b17fb71169e + +commit 94bc1e7ffba3cbdea8c7dcdab8376bf29283128f +Author: Damien Miller +Date: Fri Jul 28 14:50:59 2017 +1000 + + Expose list of completed auth methods to PAM + + bz#2408; ok dtucker@ + +commit c78e6eec78c88acf8d51db90ae05a3e39458603d +Author: Damien Miller +Date: Fri Jul 21 14:38:16 2017 +1000 + + fix problems in tunnel forwarding portability code + + This fixes a few problems in the tun forwarding code, mostly to do + with host/network byte order confusion. + + Based on a report and patch by stepe AT centaurus.uberspace.de; + bz#2735; ok dtucker@ + +commit 2985d4062ebf4204bbd373456a810d558698f9f5 +Author: dtucker@openbsd.org +Date: Tue Jul 25 09:22:25 2017 +0000 + + upstream commit + + Make WinSCP patterns for SSH_OLD_DHGEX more specific to + exclude WinSCP 5.10.x and up. bz#2748, from martin at winscp.net, ok djm@ + + Upstream-ID: 6fd7c32e99af3952db007aa180e73142ddbc741a + +commit 9f0e44e1a0439ff4646495d5735baa61138930a9 +Author: djm@openbsd.org +Date: Mon Jul 24 04:34:28 2017 +0000 + + upstream commit + + g/c unused variable; make a little more portable + + Upstream-ID: 3f5980481551cb823c6fb2858900f93fa9217dea + +commit 51676ec61491ec6d7cbd06082034e29b377b3bf6 +Author: djm@openbsd.org +Date: Sun Jul 23 23:37:02 2017 +0000 + + upstream commit + + Allow IPQoS=none in ssh/sshd to not set an explicit + ToS/DSCP value and just use the operating system default; ok dtucker@ + + Upstream-ID: 77906ff8c7b660b02ba7cb1e47b17d66f54f1f7e + +commit 6c1fbd5a50d8d2415f06c920dd3b1279b741072d +Author: Damien Miller +Date: Fri Jul 21 14:24:26 2017 +1000 + + mention libedit + +commit dc2bd308768386b02c7337120203ca477e67ba62 +Author: markus@openbsd.org +Date: Wed Jul 19 08:30:41 2017 +0000 + + upstream commit + + fix support for unknown key types; ok djm@ + + Upstream-ID: 53fb29394ed04d616d65b3748dee5aa06b07ab48 + +commit fd0e8fa5f89d21290b1fb5f9d110ca4f113d81d9 +Author: djm@openbsd.org +Date: Wed Jul 19 01:15:02 2017 +0000 + + upstream commit + + switch from select() to poll() for the ssh-agent + mainloop; ok markus + + Upstream-ID: 4a94888ee67b3fd948fd10693973beb12f802448 + +commit b1e72df2b813ecc15bd0152167bf4af5f91c36d3 +Author: dtucker@openbsd.org +Date: Fri Jul 14 03:18:21 2017 +0000 + + upstream commit + + Make ""Killed by signal 1" LogLevel verbose so it's not + shown at the default level. Prevents it from appearing during ssh -J and + equivalent ProxyCommand configs. bz#1906, bz#2744, feedback&ok markus@ + + Upstream-ID: debfaa7e859b272246c2f2633335d288d2e2ae28 + +commit 1f3d202770a08ee6752ed2a234b7ca6f180eb498 +Author: jmc@openbsd.org +Date: Thu Jul 13 19:16:33 2017 +0000 + + upstream commit + + man pages with pseudo synopses which list filenames end + up creating very ugly output in man -k; after some discussion with ingo, we + feel the simplest fix is to remove such SYNOPSIS sections: the info is hardly + helpful at page top, is contained already in FILES, and there are + sufficiently few that just zapping them is simple; + + ok schwarze, who also helpfully ran things through a build to check + output; + + Upstream-ID: 3e211b99457e2f4c925c5927d608e6f97431336c + +commit 7f13a4827fb28957161de4249bd6d71954f1f2ed +Author: espie@openbsd.org +Date: Mon Jul 10 14:09:59 2017 +0000 + + upstream commit + + zap redundant Makefile variables. okay djm@ + + Upstream-ID: e39b3902fe1d6c4a7ba6a3c58e072219f3c1e604 + +commit dc44dd3a9e2c9795394e6a7e1e71c929cbc70ce0 +Author: jmc@openbsd.org +Date: Sat Jul 8 18:32:54 2017 +0000 + + upstream commit + + slightly rework previous, to avoid an article issue; + + Upstream-ID: 15a315f0460ddd3d4e2ade1f16d6c640a8c41b30 + +commit 853edbe057a84ebd0024c8003e4da21bf2b469f7 +Author: djm@openbsd.org +Date: Fri Jul 7 03:53:12 2017 +0000 + + upstream commit + + When generating all hostkeys (ssh-keygen -A), clobber + existing keys if they exist but are zero length. zero-length keys could + previously be made if ssh-keygen failed part way through generating them, so + avoid that case too. bz#2561 reported by Krzysztof Cieplucha; ok dtucker@ + + Upstream-ID: f662201c28ab8e1f086b5d43c59cddab5ade4044 + +commit 43616876ba68a2ffaece6a6c792def4b039f2d6e +Author: djm@openbsd.org +Date: Sat Jul 1 22:55:44 2017 +0000 + + upstream commit + + actually remove these files + + Upstream-ID: 1bd41cba06a7752de4df304305a8153ebfb6b0ac + +commit 83fa3a044891887369ce8b487ce88d713a04df48 +Author: djm@openbsd.org +Date: Sat Jul 1 13:50:45 2017 +0000 + + upstream commit + + remove post-SSHv1 removal dead code from rsa.c and merge + the remaining bit that it still used into ssh-rsa.c; ok markus + + Upstream-ID: ac8a048d24dcd89594b0052ea5e3404b473bfa2f + +commit 738c73dca2c99ee78c531b4cbeefc2008fe438f0 +Author: Damien Miller +Date: Fri Jul 14 14:26:36 2017 +1000 + + make explicit_bzero/memset safe for sz=0 + +commit 8433d51e067e0829f5521c0c646b6fd3fe17e732 +Author: Tim Rice +Date: Tue Jul 11 18:47:56 2017 -0700 + + modified: configure.ac + UnixWare needs BROKEN_TCGETATTR_ICANON like Solaris + Analysis by Robbie Zhang + +commit ff3507aea9c7d30cd098e7801e156c68faff7cc7 +Author: Damien Miller +Date: Fri Jul 7 11:21:27 2017 +1000 + + typo + +commit d79bceb9311a9c137d268f5bc481705db4151810 +Author: dtucker@openbsd.org +Date: Fri Jun 30 04:17:23 2017 +0000 + + upstream commit + + Only call close once in confree(). ssh_packet_close will + close the FD so only explicitly close non-SSH channels. bz#2734, from + bagajjal at microsoft.com, ok djm@ + + Upstream-ID: a81ce0c8b023527167739fccf1732b154718ab02 + +commit 197dc9728f062e23ce374f44c95a2b5f9ffa4075 +Author: Darren Tucker +Date: Thu Jun 29 15:40:25 2017 +1000 + + Update link for my patches. + +commit a98339edbc1fc21342a390f345179a9c3031bef7 +Author: djm@openbsd.org +Date: Wed Jun 28 01:09:22 2017 +0000 + + upstream commit + + Allow ssh-keygen to use a key held in ssh-agent as a CA when + signing certificates. bz#2377 ok markus + + Upstream-ID: fb42e920b592edcbb5b50465739a867c09329c8f + +commit c9cdef35524bd59007e17d5bd2502dade69e2dfb +Author: djm@openbsd.org +Date: Sat Jun 24 06:35:24 2017 +0000 + + upstream commit + + regress test for ExposeAuthInfo + + Upstream-Regress-ID: 190e5b6866376f4061c411ab157ca4d4e7ae86fd + +commit f17ee61cad25d210edab69d04ed447ad55fe80c1 +Author: djm@openbsd.org +Date: Sat Jun 24 07:08:57 2017 +0000 + + upstream commit + + correct env var name + + Upstream-ID: 721e761c2b1d6a4dcf700179f16fd53a1dadb313 + +commit 40962198e3b132cecdb32e9350acd4294e6a1082 +Author: jmc@openbsd.org +Date: Sat Jun 24 06:57:04 2017 +0000 + + upstream commit + + spelling; + + Upstream-ID: 606f933c8e2d0be902ea663946bc15e3eee40b25 + +commit 33f86265d7e8a0e88d3a81745d746efbdd397370 +Author: djm@openbsd.org +Date: Sat Jun 24 06:38:11 2017 +0000 + + upstream commit + + don't pass pointer to struct sshcipher between privsep + processes, just redo the lookup in each using the already-passed cipher name. + bz#2704 based on patch from Brooks Davis; ok markus dtucker + + Upstream-ID: 2eab434c09bdf549dafd7da3e32a0d2d540adbe0 + +commit 8f574959272ac7fe9239c4f5d10fd913f8920ab0 +Author: djm@openbsd.org +Date: Sat Jun 24 06:34:38 2017 +0000 + + upstream commit + + refactor authentication logging + + optionally record successful auth methods and public credentials *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue May 8 23:31:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2190FFCD841; Tue, 8 May 2018 23:31:36 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C4BD570017; Tue, 8 May 2018 23:31:35 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-io0-f173.google.com (mail-io0-f173.google.com [209.85.223.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 8C7C5249CD; Tue, 8 May 2018 23:31:35 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-io0-f173.google.com with SMTP id p124-v6so40585358iod.1; Tue, 08 May 2018 16:31:35 -0700 (PDT) X-Gm-Message-State: ALQs6tAisK9h2pnYxvCnNkcxKhx5N22sPv0fRtnPA4NfvBUb0cQaHFpm HjCAfOMP8nNxI1SAN2cVPms8ge0HWWLq+HWR42s= X-Google-Smtp-Source: AB8JxZrrq9T/m0FJIhfrdVplz/3KxOHq/kzY2pKBAQqjYdqIIu6cAyba9hz6Z1y0LdSQyc4Uj953tl3RYemhPE4/jAk= X-Received: by 2002:a6b:b7c6:: with SMTP id h189-v6mr44650112iof.94.1525822294986; Tue, 08 May 2018 16:31:34 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:b0c3:0:0:0:0:0 with HTTP; Tue, 8 May 2018 16:31:34 -0700 (PDT) In-Reply-To: <20180508221025.GA4249@raichu> References: <201805080139.w481djMX062724@repo.freebsd.org> <20180508221025.GA4249@raichu> From: Matthew Macy Date: Tue, 8 May 2018 16:31:34 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333345 - head/sys/dev/e1000 To: Mark Johnston Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Stephen Hurd Content-Type: multipart/mixed; boundary="000000000000e2381a056bba2f42" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 23:31:36 -0000 --000000000000e2381a056bba2f42 Content-Type: text/plain; charset="UTF-8" Can you please try the attached patch? (Note that gmail may insert carriage returns) -M On Tue, May 8, 2018 at 3:10 PM, Mark Johnston wrote: > On Tue, May 08, 2018 at 01:39:45AM +0000, Matt Macy wrote: >> Author: mmacy >> Date: Tue May 8 01:39:45 2018 >> New Revision: 333345 >> URL: https://svnweb.freebsd.org/changeset/base/333345 >> >> Log: >> Sleep rather than spin in e1000 when doing long running config operations. >> >> With r333218 it is now possible for drivers to use an sx lock and thus sleep while >> waiting on long running operations rather than DELAY(). >> >> Reported by: gallatin >> Reviewed by: sbruno >> Approved by: sbruno >> MFC after: 1 month >> Sponsored by: Limelight Networks >> Differential Revision: https://reviews.freebsd.org/D14984 > > I'm getting a panic during boot with this change: "unknown mac type d". > > It occurs while the driver is attaching to: > > em0@pci0:1:0:0: class=0x020000 card=0x7044103c chip=0x105e8086 rev=0x06 hdr=0x00 > vendor = 'Intel Corporation' > device = '82571EB Gigabit Ethernet Controller' > class = network > subclass = ethernet --000000000000e2381a056bba2f42 Content-Type: text/x-patch; charset="US-ASCII"; name="e1000_hack.diff" Content-Disposition: attachment; filename="e1000_hack.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jgyb6gb20 ZGlmZiAtLWdpdCBhL3N5cy9kZXYvZTEwMDAvZTEwMDBfbWFjLmMgYi9zeXMvZGV2L2UxMDAwL2Ux MDAwX21hYy5jCmluZGV4IGRhNzkzNGY5ZmI2Li43OTI4M2NmMzI5NiAxMDA2NDQKLS0tIGEvc3lz L2Rldi9lMTAwMC9lMTAwMF9tYWMuYworKysgYi9zeXMvZGV2L2UxMDAwL2UxMDAwX21hYy5jCkBA IC0yMTk2LDcgKzIxOTYsNiBAQCBzMzIgZTEwMDBfZ2V0X2h3X3NlbWFwaG9yZShzdHJ1Y3QgZTEw MDBfaHcgKmh3KQogCXMzMiBpID0gMDsKIAkKIAlERUJVR0ZVTkMoImUxMDAwX2dldF9od19zZW1h cGhvcmUiKTsKLSNpZmRlZiBub3R5ZXQKIAkvKiBfODI1NzEgKi8KIAkvKiBJZiB3ZSBoYXZlIHRp bWVkb3V0IDMgdGltZXMgb24gdHJ5aW5nIHRvIGFjcXVpcmUKIAkgKiB0aGUgaW50ZXItcG9ydCBT TUJJIHNlbWFwaG9yZSwgdGhlcmUgaXMgb2xkIGNvZGUKQEAgLTIyMDgsNyArMjIwNyw2IEBAIHMz MiBlMTAwMF9nZXRfaHdfc2VtYXBob3JlKHN0cnVjdCBlMTAwMF9odyAqaHcpCiAJaWYgKGh3LT5k ZXZfc3BlYy5fODI1NzEuc21iX2NvdW50ZXIgPiAyKQogCQlzd190aW1lb3V0ID0gMTsKIAotI2Vu ZGlmCiAJLyogR2V0IHRoZSBTVyBzZW1hcGhvcmUgKi8KIAl3aGlsZSAoaSA8IHRpbWVvdXQpIHsK IAkJc3dzbSA9IEUxMDAwX1JFQURfUkVHKGh3LCBFMTAwMF9TV1NNKTsKQEAgLTIyMjAsNyArMjIx OCw3IEBAIHMzMiBlMTAwMF9nZXRfaHdfc2VtYXBob3JlKHN0cnVjdCBlMTAwMF9odyAqaHcpCiAJ fQogCiAJaWYgKGkgPT0gdGltZW91dCkgewotI2lmZGVmIG5vdHlldAorCiAJCS8qCiAJCSAqIFhY WCBUaGlzIHNvdW5kcyBtb3JlIGxpa2UgYSBkcml2ZXIgYnVnIHdoZXJlYnkgd2UgZWl0aGVyCiAJ CSAqIHJlY3Vyc2VkIGFjY2lkZW50YWxseSBvciBtaXNzZWQgY2xlYXJpbmcgaXQgcHJldmlvdXNs eQpAQCAtMjIzOSw3ICsyMjM3LDYgQEAgczMyIGUxMDAwX2dldF9od19zZW1hcGhvcmUoc3RydWN0 IGUxMDAwX2h3ICpodykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VjX2RlbGF5 KDUwKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQotI2VuZGlm CiAKIAkJREVCVUdPVVQoIkRyaXZlciBjYW4ndCBhY2Nlc3MgZGV2aWNlIC0gU01CSSBiaXQgaXMg c2V0LlxuIik7CiAJCXJldHVybiAtRTEwMDBfRVJSX05WTTsK --000000000000e2381a056bba2f42-- From owner-svn-src-head@freebsd.org Tue May 8 23:37:53 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B631AFCDA9B; Tue, 8 May 2018 23:37:53 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62CA77143D; Tue, 8 May 2018 23:37:53 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-io0-f169.google.com (mail-io0-f169.google.com [209.85.223.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 284F224ADE; Tue, 8 May 2018 23:37:53 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-io0-f169.google.com with SMTP id c9-v6so34219628iob.12; Tue, 08 May 2018 16:37:53 -0700 (PDT) X-Gm-Message-State: ALQs6tC/8BiDqJ7zGOmkoR9hzNFWBC/eEQZbcSW8J1yvIiWpYRkD4SGW b5f0VAvaYcIaqmY/IU4XNN17inAxyOgnR1brTOE= X-Google-Smtp-Source: AB8JxZrX1OJtBdJQFDYBKqOGFsTY4BSZp3Mp+irWVGoRi+fwKpnkH1UwcJnSF2wjoWsAkPs/lIvB1vvIMPAu536hS6s= X-Received: by 2002:a6b:3b42:: with SMTP id i63-v6mr46792378ioa.133.1525822672655; Tue, 08 May 2018 16:37:52 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:b0c3:0:0:0:0:0 with HTTP; Tue, 8 May 2018 16:37:52 -0700 (PDT) In-Reply-To: References: <201805080139.w481djMX062724@repo.freebsd.org> <20180508221025.GA4249@raichu> From: Matthew Macy Date: Tue, 8 May 2018 16:37:52 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333345 - head/sys/dev/e1000 To: Mark Johnston Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Stephen Hurd Content-Type: multipart/mixed; boundary="00000000000064fb6e056bba461c" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 23:37:54 -0000 --00000000000064fb6e056bba461c Content-Type: text/plain; charset="UTF-8" Nix that. The panic is incorrect, we simply don't have anything to do in the default case. On Tue, May 8, 2018 at 4:31 PM, Matthew Macy wrote: > Can you please try the attached patch? (Note that gmail may insert > carriage returns) > > -M > > On Tue, May 8, 2018 at 3:10 PM, Mark Johnston wrote: >> On Tue, May 08, 2018 at 01:39:45AM +0000, Matt Macy wrote: >>> Author: mmacy >>> Date: Tue May 8 01:39:45 2018 >>> New Revision: 333345 >>> URL: https://svnweb.freebsd.org/changeset/base/333345 >>> >>> Log: >>> Sleep rather than spin in e1000 when doing long running config operations. >>> >>> With r333218 it is now possible for drivers to use an sx lock and thus sleep while >>> waiting on long running operations rather than DELAY(). >>> >>> Reported by: gallatin >>> Reviewed by: sbruno >>> Approved by: sbruno >>> MFC after: 1 month >>> Sponsored by: Limelight Networks >>> Differential Revision: https://reviews.freebsd.org/D14984 >> >> I'm getting a panic during boot with this change: "unknown mac type d". >> >> It occurs while the driver is attaching to: >> >> em0@pci0:1:0:0: class=0x020000 card=0x7044103c chip=0x105e8086 rev=0x06 hdr=0x00 >> vendor = 'Intel Corporation' >> device = '82571EB Gigabit Ethernet Controller' >> class = network >> subclass = ethernet --00000000000064fb6e056bba461c Content-Type: text/x-patch; charset="US-ASCII"; name="82571_fix.diff" Content-Disposition: attachment; filename="82571_fix.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jgybf6fv1 ZGlmZiAtLWdpdCBhL3N5cy9kZXYvZTEwMDAvZTEwMDBfODI1NzEuYyBiL3N5cy9kZXYvZTEwMDAv ZTEwMDBfODI1NzEuYwppbmRleCA1N2M0N2E1ZWJkNi4uMzQ4YTNkYWEzYzAgMTAwNjQ0Ci0tLSBh L3N5cy9kZXYvZTEwMDAvZTEwMDBfODI1NzEuYworKysgYi9zeXMvZGV2L2UxMDAwL2UxMDAwXzgy NTcxLmMKQEAgLTEwMDAsNyArMTAwMCw3IEBAIHN0YXRpYyBzMzIgZTEwMDBfcmVzZXRfaHdfODI1 NzEoc3RydWN0IGUxMDAwX2h3ICpodykKIAkJCWUxMDAwX3B1dF9od19zZW1hcGhvcmVfODI1NzQo aHcpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwYW5pYygidW5rbm93biBtYWMgdHlwZSAleFxu IiwgaHctPm1hYy50eXBlKTsKKwkJLyogd2UgZGlkbid0IGdldCB0aGUgc2VtYXBob3JlIG5vIG5l ZWQgdG8gcHV0IGl0ICovCiAJCWJyZWFrOwogCX0KIAo= --00000000000064fb6e056bba461c-- From owner-svn-src-head@freebsd.org Tue May 8 23:40:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D11E9FCDB6E; Tue, 8 May 2018 23:40:40 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-wr0-f172.google.com (mail-wr0-f172.google.com [209.85.128.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 53F7972C4D; Tue, 8 May 2018 23:40:40 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-wr0-f172.google.com with SMTP id i14-v6so30763618wre.2; Tue, 08 May 2018 16:40:40 -0700 (PDT) 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=NqGUDx2JOP5c7alvnACUmrT4ID4JNxZiVOSq4kUJj24=; b=izag8O0s37s0XODk5Rs2kQgIIJvHlugshcZy2BgNemwusBbmicWxTHVqrewjCkHluA 0FzU7u7TNqajVSG8ewvINIjaZoTufTjCYTUtHrWH99WEgS77msRlLKw26xDAvk37W7rM 7Jeg11ZhCRhhRGWPnRSMPWJSThqUP8UQEa4/q8511hv+a6zMQ9+DCjBWvCm5vVqSzRuF lIgvuc1TU5PGEoLQFcs2BjEyal1XR+HLsip9iKe2H6mSOA1VjHlPXsLp84fqFMgrI+6p xOK5AYp0A0LR8JUerNqKyRA/ArjgPqycEvVmekp0W+n30n0X80i3QyM8oKNv3fZM/E2p qrEg== X-Gm-Message-State: ALQs6tCr6Tv787inEQYjxk7fT0E9qybvRO952a0ppQIr0t0j1jMk6jgE pD9Q7hoa4xfzUh2y5hc0yZH+PhUcC/OZQAl7fqw= X-Google-Smtp-Source: AB8JxZoxi0y8wC07b+2DzAhUnKDO7nDMuF35Q5cn3IJoxIsIMRVvWNSurJ2w9niB/j04LHbRGPZvTlPKT44R6aZV9EA= X-Received: by 2002:adf:a970:: with SMTP id u103-v6mr32779002wrc.71.1525821284389; Tue, 08 May 2018 16:14:44 -0700 (PDT) MIME-Version: 1.0 References: <201805080139.w481djMX062724@repo.freebsd.org> <20180508221025.GA4249@raichu> In-Reply-To: From: Mark Johnston Date: Tue, 08 May 2018 23:14:33 +0000 Message-ID: Subject: Re: svn commit: r333345 - head/sys/dev/e1000 To: Matthew Macy Cc: Mark Johnston , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 23:40:41 -0000 On Tue, May 8, 2018, 19:09 Matthew Macy, wrote: > Is the e1000 driver compiled in or loaded as a module? > It's compiled in to the kernel. > On Tue, May 8, 2018 at 3:10 PM, Mark Johnston wrote: > > On Tue, May 08, 2018 at 01:39:45AM +0000, Matt Macy wrote: > >> Author: mmacy > >> Date: Tue May 8 01:39:45 2018 > >> New Revision: 333345 > >> URL: https://svnweb.freebsd.org/changeset/base/333345 > >> > >> Log: > >> Sleep rather than spin in e1000 when doing long running config > operations. > >> > >> With r333218 it is now possible for drivers to use an sx lock and > thus sleep while > >> waiting on long running operations rather than DELAY(). > >> > >> Reported by: gallatin > >> Reviewed by: sbruno > >> Approved by: sbruno > >> MFC after: 1 month > >> Sponsored by: Limelight Networks > >> Differential Revision: https://reviews.freebsd.org/D14984 > > > > I'm getting a panic during boot with this change: "unknown mac type d". > > > > It occurs while the driver is attaching to: > > > > em0@pci0:1:0:0: class=0x020000 card=0x7044103c chip=0x105e8086 rev=0x06 > hdr=0x00 > > vendor = 'Intel Corporation' > > device = '82571EB Gigabit Ethernet Controller' > > class = network > > subclass = ethernet > From owner-svn-src-head@freebsd.org Wed May 9 00:00:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DBED0FCE977; Wed, 9 May 2018 00:00:48 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8B07976061; Wed, 9 May 2018 00:00:48 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6D1B11703; Wed, 9 May 2018 00:00:48 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4900mJR040539; Wed, 9 May 2018 00:00:48 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4900mwO040538; Wed, 9 May 2018 00:00:48 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805090000.w4900mwO040538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Wed, 9 May 2018 00:00:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333390 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 333390 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 00:00:49 -0000 Author: mmacy Date: Wed May 9 00:00:47 2018 New Revision: 333390 URL: https://svnweb.freebsd.org/changeset/base/333390 Log: Reduce overhead of ktrace checks in the common case. KTRPOINT() checks both if we are tracing _and_ if we are recursing within ktrace. The second condition is only ever executed if ktrace is actually enabled. This change moves the check out of the hot path in to the functions themselves. Discussed with mjg@ Reported by: mjg@ Approved by: sbruno@ Modified: head/sys/kern/kern_ktrace.c head/sys/sys/ktrace.h Modified: head/sys/kern/kern_ktrace.c ============================================================================== --- head/sys/kern/kern_ktrace.c Tue May 8 23:13:11 2018 (r333389) +++ head/sys/kern/kern_ktrace.c Wed May 9 00:00:47 2018 (r333390) @@ -448,6 +448,9 @@ ktrsyscall(int code, int narg, register_t args[]) size_t buflen; char *buf = NULL; + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; + buflen = sizeof(register_t) * narg; if (buflen > 0) { buf = malloc(buflen, M_KTRACE, M_WAITOK); @@ -475,6 +478,9 @@ ktrsysret(int code, int error, register_t retval) struct ktr_request *req; struct ktr_sysret *ktp; + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; + req = ktr_getrequest(KTR_SYSRET); if (req == NULL) return; @@ -729,6 +735,9 @@ ktrcsw(int out, int user, const char *wmesg) struct ktr_request *req; struct ktr_csw *kc; + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; + req = ktr_getrequest(KTR_CSW); if (req == NULL) return; @@ -750,6 +759,9 @@ ktrstruct(const char *name, const void *data, size_t d char *buf; size_t buflen, namelen; + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; + if (data == NULL) datalen = 0; namelen = strlen(name) + 1; @@ -776,6 +788,9 @@ ktrstructarray(const char *name, enum uio_seg seg, con size_t buflen, datalen, namelen; int max_items; + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; + /* Trim array length to genio size. */ max_items = ktr_geniosize / struct_size; if (num_items > max_items) { @@ -820,6 +835,9 @@ ktrcapfail(enum ktr_cap_fail_type type, const cap_righ struct ktr_request *req; struct ktr_cap_fail *kcf; + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; + req = ktr_getrequest(KTR_CAPFAIL); if (req == NULL) return; @@ -844,6 +862,9 @@ ktrfault(vm_offset_t vaddr, int type) struct ktr_request *req; struct ktr_fault *kf; + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; + req = ktr_getrequest(KTR_FAULT); if (req == NULL) return; @@ -860,6 +881,9 @@ ktrfaultend(int result) struct thread *td = curthread; struct ktr_request *req; struct ktr_faultend *kf; + + if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) + return; req = ktr_getrequest(KTR_FAULTEND); if (req == NULL) Modified: head/sys/sys/ktrace.h ============================================================================== --- head/sys/sys/ktrace.h Tue May 8 23:13:11 2018 (r333389) +++ head/sys/sys/ktrace.h Wed May 9 00:00:47 2018 (r333390) @@ -70,8 +70,7 @@ struct ktr_header { * is the public interface. */ #define KTRCHECK(td, type) ((td)->td_proc->p_traceflag & (1 << type)) -#define KTRPOINT(td, type) \ - (KTRCHECK((td), (type)) && !((td)->td_pflags & TDP_INKTRACE)) +#define KTRPOINT(td, type) (__predict_false(KTRCHECK((td), (type)))) #define KTRCHECKDRAIN(td) (!(STAILQ_EMPTY(&(td)->td_proc->p_ktr))) #define KTRUSERRET(td) do { \ if (KTRCHECKDRAIN(td)) \ From owner-svn-src-head@freebsd.org Wed May 9 01:21:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 46E9EFD0B58; Wed, 9 May 2018 01:21:22 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-pl0-x22d.google.com (mail-pl0-x22d.google.com [IPv6:2607:f8b0:400e:c01::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A88C185CC0; Wed, 9 May 2018 01:21:21 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-pl0-x22d.google.com with SMTP id bi12-v6so3266407plb.12; Tue, 08 May 2018 18:21:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=OfmpuAhRzSEOsaYUTVFUxBjBB1fppdQUc8Vske3g0tY=; b=QO603y+ZtMBL8mmrFhcF5ojEQKsSEwXMKSxSZg8xAVkf0wGSmg7QgEfongGvCoGl4M nCUkyPkHpUuwIFYbMIdbayYwAi/A3eSOGHc7OJSBL1fhON7aZDELfhBcIGzS/RdK5WcQ xoWjJXuPozSP2Pk9YFDpevSjeHO7ULWMl6r/KYhVYkI09Z7Cwz67KUjk5zndA5SlLxff fqzAG8Fe9d8P9QqpGxfaXkOKeuM/iUZ/MBB1gjx9Ax6uWldWMXZ1bmx2Ohqel66LALnU KVyJ9LLwHWnxNokflxWAsdsmYefZm48nGvLrTK4sZ6pWp0qN8cP1qtwJ2wNoR3igWg3b HBug== 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 :references:mime-version:content-disposition:in-reply-to:user-agent; bh=OfmpuAhRzSEOsaYUTVFUxBjBB1fppdQUc8Vske3g0tY=; b=F0iQk3cbukeQWu2Mi9QmKLu8OOSll4FjjX9xCznsGlQgVYjbEjDToYZQdxsOinIZev xV83ppGpb887Cvk9z4PyoKAVkWUytS05POiruG0DTFFQnuPoyN4ZUf4LxFKuYbcWXSV0 VLvmL1Dc41UY5d2bh4DlimGTrU0q/m37DCvlGPPAhLsg9RQmjOmsCtrHRP26Mko6hUlL CMQFIB/WJbe5kzROdNzEI04XCMaFes/0Uw/rbLjrDW+/crVKzpSrXC8vo5iGm/I1SmID vGz3OdPi0TGCdSMxAkUKUziUU01K6zhmF/sCweX8y3p+vq2eiaOAtV2m61Y+oxsQFwRP 2Rhw== X-Gm-Message-State: ALQs6tBWVWrtCEYwIjgLjhTCm2kXlOp3y+wIqVgzaDSU3ftmEbFQARCt AguBp8RFoGUxVyrrRyzmbWkalQxd X-Google-Smtp-Source: AB8JxZoTrrebvuD90GDpB4Z83Mu0WINd8hMP4uVA3scHtx+sIzDCfE0SL584l4y/ev9a4AYTfIE7sw== X-Received: by 2002:a17:902:9344:: with SMTP id g4-v6mr22648783plp.10.1525828880301; Tue, 08 May 2018 18:21:20 -0700 (PDT) Received: from raichu (toroon0560w-lp130-04-184-145-252-229.dsl.bell.ca. [184.145.252.229]) by smtp.gmail.com with ESMTPSA id 67-v6sm7258289pgg.91.2018.05.08.18.21.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 May 2018 18:21:19 -0700 (PDT) Sender: Mark Johnston Date: Tue, 8 May 2018 21:21:14 -0400 From: Mark Johnston To: Matthew Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Stephen Hurd Subject: Re: svn commit: r333345 - head/sys/dev/e1000 Message-ID: <20180509012114.GA2261@raichu> References: <201805080139.w481djMX062724@repo.freebsd.org> <20180508221025.GA4249@raichu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.5 (2018-04-13) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 01:21:22 -0000 On Tue, May 08, 2018 at 04:37:52PM -0700, Matthew Macy wrote: > Nix that. The panic is incorrect, we simply don't have anything to do > in the default case. Indeed, getting rid of the panic allows my workstation to boot. > On Tue, May 8, 2018 at 4:31 PM, Matthew Macy wrote: > > Can you please try the attached patch? (Note that gmail may insert > > carriage returns) > > > > -M > > > > On Tue, May 8, 2018 at 3:10 PM, Mark Johnston wrote: > >> On Tue, May 08, 2018 at 01:39:45AM +0000, Matt Macy wrote: > >>> Author: mmacy > >>> Date: Tue May 8 01:39:45 2018 > >>> New Revision: 333345 > >>> URL: https://svnweb.freebsd.org/changeset/base/333345 > >>> > >>> Log: > >>> Sleep rather than spin in e1000 when doing long running config operations. > >>> > >>> With r333218 it is now possible for drivers to use an sx lock and thus sleep while > >>> waiting on long running operations rather than DELAY(). > >>> > >>> Reported by: gallatin > >>> Reviewed by: sbruno > >>> Approved by: sbruno > >>> MFC after: 1 month > >>> Sponsored by: Limelight Networks > >>> Differential Revision: https://reviews.freebsd.org/D14984 > >> > >> I'm getting a panic during boot with this change: "unknown mac type d". > >> > >> It occurs while the driver is attaching to: > >> > >> em0@pci0:1:0:0: class=0x020000 card=0x7044103c chip=0x105e8086 rev=0x06 hdr=0x00 > >> vendor = 'Intel Corporation' > >> device = '82571EB Gigabit Ethernet Controller' > >> class = network > >> subclass = ethernet > diff --git a/sys/dev/e1000/e1000_82571.c b/sys/dev/e1000/e1000_82571.c > index 57c47a5ebd6..348a3daa3c0 100644 > --- a/sys/dev/e1000/e1000_82571.c > +++ b/sys/dev/e1000/e1000_82571.c > @@ -1000,7 +1000,7 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) > e1000_put_hw_semaphore_82574(hw); > break; > default: > - panic("unknown mac type %x\n", hw->mac.type); > + /* we didn't get the semaphore no need to put it */ > break; > } > From owner-svn-src-head@freebsd.org Wed May 9 02:02:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76AD5FD156D; Wed, 9 May 2018 02:02:52 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 29F61715DE; Wed, 9 May 2018 02:02:52 +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 0C3852B89; Wed, 9 May 2018 02:02:52 +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 w4922pQ0006366; Wed, 9 May 2018 02:02:51 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4922o44006356; Wed, 9 May 2018 02:02:50 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805090202.w4922o44006356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 May 2018 02:02:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333391 - in head: . share/examples/drivers share/examples/etc share/examples/mdoc X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head: . share/examples/drivers share/examples/etc share/examples/mdoc X-SVN-Commit-Revision: 333391 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 02:02:52 -0000 Author: imp Date: Wed May 9 02:02:49 2018 New Revision: 333391 URL: https://svnweb.freebsd.org/changeset/base/333391 Log: Remove 'All Rights Reserved' from the collection copyright and templates. The original Berkeley Software Distributions were made in the 1980's and 1990's. At that time, the Buenos Ares Convention of 1910 was in force in most of the countries in the Americas. It required an affirmative statement of rights reservation, typically using 'All Rights Reserved.' The Regents included this phrase in their copyright notices to invoke this treaty to ensure maximal copyright protection. In the 1990's, Latin America coutries ratifeid the Berne Convention on copyrights which prohibited them from requiring an affirmative statement to reserve the rights. When Nicaragua ratified in 2000, the Buenos Ares Convention of 1910 was effectively repealed. This made all the 'All Rights Reserved' phrases obsolete and legal deadweight most of the time, and certainly in the cases removed here. Since it's no longer required, and is in fact meaningless, core has decided to dropped it from the project's collection copyright and sample templates. It encourages other rights holders to do the same after consultation with their legal department. More see https://en.wikipedia.org/wiki/Buenos_Aires_Convention for more information. Approved by: core@ (emaste@, jhb@) Differential Review: https://reviews.freebsd.org/D15264 Modified: head/COPYRIGHT head/share/examples/drivers/make_device_driver.sh head/share/examples/drivers/make_pseudo_driver.sh head/share/examples/etc/bsd-style-copyright head/share/examples/mdoc/POSIX-copyright head/share/examples/mdoc/example.1 head/share/examples/mdoc/example.3 head/share/examples/mdoc/example.4 head/share/examples/mdoc/example.9 Modified: head/COPYRIGHT ============================================================================== --- head/COPYRIGHT Wed May 9 00:00:47 2018 (r333390) +++ head/COPYRIGHT Wed May 9 02:02:49 2018 (r333391) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2018 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2018 The FreeBSD Project. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: head/share/examples/drivers/make_device_driver.sh ============================================================================== --- head/share/examples/drivers/make_device_driver.sh Wed May 9 00:00:47 2018 (r333390) +++ head/share/examples/drivers/make_device_driver.sh Wed May 9 02:02:49 2018 (r333391) @@ -115,7 +115,6 @@ fi cat >${TOP}/dev/${1}/${1}.c <${TOP}/dev/${1}/${1}.c < Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55B98FD158C; Wed, 9 May 2018 02:03:02 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 861877175F; Wed, 9 May 2018 02:02:59 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C8782B8A; Wed, 9 May 2018 02:02:59 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4922xaf006416; Wed, 9 May 2018 02:02:59 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4922xsD006415; Wed, 9 May 2018 02:02:59 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201805090202.w4922xsD006415@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 9 May 2018 02:02:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333392 - head/sys/contrib/ipfilter/netinet X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/sys/contrib/ipfilter/netinet X-SVN-Commit-Revision: 333392 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 02:03:02 -0000 Author: cy Date: Wed May 9 02:02:58 2018 New Revision: 333392 URL: https://svnweb.freebsd.org/changeset/base/333392 Log: Fix memory leak. (CID 1199373). MFC after: 1 week Modified: head/sys/contrib/ipfilter/netinet/ip_dstlist.c Modified: head/sys/contrib/ipfilter/netinet/ip_dstlist.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/ip_dstlist.c Wed May 9 02:02:49 2018 (r333391) +++ head/sys/contrib/ipfilter/netinet/ip_dstlist.c Wed May 9 02:02:58 2018 (r333392) @@ -690,6 +690,7 @@ ipf_dstlist_node_del(softc, arg, op, uid) err = COPYIN(op->iplo_struct, temp, size); if (err != 0) { IPFERROR(120027); + KFREES(temp, size); return EFAULT; } From owner-svn-src-head@freebsd.org Wed May 9 02:07:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40DA5FD171D; Wed, 9 May 2018 02:07:10 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E6DFF72F1C; Wed, 9 May 2018 02:07:09 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C7EEA2B91; Wed, 9 May 2018 02:07:09 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49279e0006604; Wed, 9 May 2018 02:07:09 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49279t8006603; Wed, 9 May 2018 02:07:09 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201805090207.w49279t8006603@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 9 May 2018 02:07:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333393 - head/sys/contrib/ipfilter/netinet X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/sys/contrib/ipfilter/netinet X-SVN-Commit-Revision: 333393 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 02:07:10 -0000 Author: cy Date: Wed May 9 02:07:09 2018 New Revision: 333393 URL: https://svnweb.freebsd.org/changeset/base/333393 Log: Document intentional fallthrough. (CID 976535) MFC after: 1 week Modified: head/sys/contrib/ipfilter/netinet/fil.c Modified: head/sys/contrib/ipfilter/netinet/fil.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 2018 (r333392) +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 2018 (r333393) @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) } } #endif + /* fallthrough is intentional */ case ICMP_SOURCEQUENCH : case ICMP_REDIRECT : case ICMP_TIMXCEED : From owner-svn-src-head@freebsd.org Wed May 9 04:09:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AAEEFFD3CBD; Wed, 9 May 2018 04:09:51 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 536106A6D2; Wed, 9 May 2018 04:09:51 +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 3604F453A; Wed, 9 May 2018 04:09:51 +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 w4949p4K068367; Wed, 9 May 2018 04:09:51 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4949opu068361; Wed, 9 May 2018 04:09:50 GMT (envelope-from np@FreeBSD.org) Message-Id: <201805090409.w4949opu068361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 9 May 2018 04:09:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333394 - in head/sys/dev/cxgbe: . common firmware tom X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: in head/sys/dev/cxgbe: . common firmware tom X-SVN-Commit-Revision: 333394 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 04:09:52 -0000 Author: np Date: Wed May 9 04:09:49 2018 New Revision: 333394 URL: https://svnweb.freebsd.org/changeset/base/333394 Log: cxgbe(4): Add support for hash filters. These filters reside in the card's memory instead of its TCAM and can be configured via a new "hashfilter" subcommand in cxgbetool. Hash and normal TCAM filters can be used together. The hardware does an exact-match of packet fields for hash filters, unlike the masked match performed for TCAM filters. Any T5/T6 card with memory can support at least half a million hash filters. The sample config file with the driver configures 512K of these, it is possible to double this to 1 million+ in some cases. The chip does an exact-match of fields of incoming datagrams with hash filters and performs the action configured for the filter if it matches. The fields to match are specified in a "filter mask" in the firmware config file. The filter mask always includes the 5-tuple (sip, dip, sport, dport, ipproto). It can, optionally, also include any subset of the filter mode (see filterMode and filterMask in the firmware config file). For example: filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe filterMask = protocol, port, vlan Exact values of the 5-tuple, the physical port, and VLAN tag would have to be provided while setting up a hash filter with the chip configuration above. Hash filters support all actions supported by TCAM filters. A packet that hits a hash filter can be dropped, let through (with optional steering to a specific queue or RSS region), switched out of another port (with optional L2 rewrite of DMAC, SMAC, VLAN tag), or get NAT'ed. (Support for some of these will show up in the driver in a follow-up commit very shortly). Sponsored by: Chelsio Communications Added: head/sys/dev/cxgbe/firmware/t6fw_cfg_hashfilter.txt (contents, props changed) Modified: head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/common/common.h head/sys/dev/cxgbe/common/t4_msg.h head/sys/dev/cxgbe/offload.h head/sys/dev/cxgbe/t4_filter.c head/sys/dev/cxgbe/t4_ioctl.h head/sys/dev/cxgbe/t4_main.c head/sys/dev/cxgbe/t4_sge.c head/sys/dev/cxgbe/tom/t4_connect.c head/sys/dev/cxgbe/tom/t4_cpl_io.c Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Wed May 9 02:07:09 2018 (r333393) +++ head/sys/dev/cxgbe/adapter.h Wed May 9 04:09:49 2018 (r333394) @@ -371,7 +371,7 @@ enum { CPL_COOKIE_DDP0, CPL_COOKIE_DDP1, CPL_COOKIE_TOM, - CPL_COOKIE_AVAILABLE1, + CPL_COOKIE_HASHFILTER, CPL_COOKIE_AVAILABLE2, CPL_COOKIE_AVAILABLE3, @@ -1244,6 +1244,9 @@ int get_filter(struct adapter *, struct t4_filter *); int set_filter(struct adapter *, struct t4_filter *); int del_filter(struct adapter *, struct t4_filter *); int t4_filter_rpl(struct sge_iq *, const struct rss_header *, struct mbuf *); +int t4_hashfilter_ao_rpl(struct sge_iq *, const struct rss_header *, struct mbuf *); +int t4_hashfilter_tcb_rpl(struct sge_iq *, const struct rss_header *, struct mbuf *); +int t4_del_hashfilter_rpl(struct sge_iq *, const struct rss_header *, struct mbuf *); static inline struct wrqe * alloc_wrqe(int wr_len, struct sge_wrq *wrq) Modified: head/sys/dev/cxgbe/common/common.h ============================================================================== --- head/sys/dev/cxgbe/common/common.h Wed May 9 02:07:09 2018 (r333393) +++ head/sys/dev/cxgbe/common/common.h Wed May 9 04:09:49 2018 (r333394) @@ -370,6 +370,7 @@ struct adapter_params { resources for TOE operation. */ unsigned int bypass:1; /* this is a bypass card */ unsigned int ethoffload:1; + unsigned int hash_filter:1; unsigned int ofldq_wr_cred; unsigned int eo_wr_cred; @@ -456,6 +457,11 @@ static inline int is_offload(const struct adapter *ada static inline int is_ethoffload(const struct adapter *adap) { return adap->params.ethoffload; +} + +static inline int is_hashfilter(const struct adapter *adap) +{ + return adap->params.hash_filter; } static inline int chip_id(struct adapter *adap) Modified: head/sys/dev/cxgbe/common/t4_msg.h ============================================================================== --- head/sys/dev/cxgbe/common/t4_msg.h Wed May 9 02:07:09 2018 (r333393) +++ head/sys/dev/cxgbe/common/t4_msg.h Wed May 9 04:09:49 2018 (r333394) @@ -197,6 +197,30 @@ static inline int act_open_has_tid(int status) status != CPL_ERR_CONN_EXIST); } +/* + * Convert an ACT_OPEN_RPL status to an errno. + */ +static inline int +act_open_rpl_status_to_errno(int status) +{ + + switch (status) { + case CPL_ERR_CONN_RESET: + return (ECONNREFUSED); + case CPL_ERR_ARP_MISS: + return (EHOSTUNREACH); + case CPL_ERR_CONN_TIMEDOUT: + return (ETIMEDOUT); + case CPL_ERR_TCAM_FULL: + return (EAGAIN); + case CPL_ERR_CONN_EXIST: + return (EAGAIN); + default: + return (EIO); + } +} + + enum { CPL_CONN_POLICY_AUTO = 0, CPL_CONN_POLICY_ASK = 1, @@ -1040,6 +1064,14 @@ struct cpl_abort_req { __u8 rsvd2[6]; }; +struct cpl_abort_req_core { + union opcode_tid ot; + __be32 rsvd0; + __u8 rsvd1; + __u8 cmd; + __u8 rsvd2[6]; +}; + struct cpl_abort_rpl_rss { RSS_HDR union opcode_tid ot; @@ -1055,6 +1087,14 @@ struct cpl_abort_rpl_rss6 { struct cpl_abort_rpl { WR_HDR; + union opcode_tid ot; + __be32 rsvd0; + __u8 rsvd1; + __u8 cmd; + __u8 rsvd2[6]; +}; + +struct cpl_abort_rpl_core { union opcode_tid ot; __be32 rsvd0; __u8 rsvd1; Added: head/sys/dev/cxgbe/firmware/t6fw_cfg_hashfilter.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/firmware/t6fw_cfg_hashfilter.txt Wed May 9 04:09:49 2018 (r333394) @@ -0,0 +1,265 @@ +# Firmware configuration file. +# +# Global limits (some are hardware limits, others are due to the firmware). +# nvi = 128 virtual interfaces +# niqflint = 1023 ingress queues with freelists and/or interrupts +# nethctrl = 64K Ethernet or ctrl egress queues +# neq = 64K egress queues of all kinds, including freelists +# nexactf = 512 MPS TCAM entries, can oversubscribe. + +[global] + rss_glb_config_mode = basicvirtual + rss_glb_config_options = tnlmapen,hashtoeplitz,tnlalllkp + + # PL_TIMEOUT register + pl_timeout_value = 200 # the timeout value in units of us + + sge_timer_value = 1, 5, 10, 50, 100, 200 # SGE_TIMER_VALUE* in usecs + + reg[0x10c4] = 0x20000000/0x20000000 # GK_CONTROL, enable 5th thread + + reg[0x7dc0] = 0x0e2f8849 # TP_SHIFT_CNT + + #Tick granularities in kbps + tsch_ticks = 100000, 10000, 1000, 10 + + filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe + filterMask = port, protocol + + tp_pmrx = 20, 512 + tp_pmrx_pagesize = 16K + + # TP number of RX channels (0 = auto) + tp_nrxch = 0 + + tp_pmtx = 40, 512 + tp_pmtx_pagesize = 64K + + # TP number of TX channels (0 = auto) + tp_ntxch = 0 + + # TP OFLD MTUs + tp_mtus = 88, 256, 512, 576, 808, 1024, 1280, 1488, 1500, 2002, 2048, 4096, 4352, 8192, 9000, 9600 + + # enable TP_OUT_CONFIG.IPIDSPLITMODE and CRXPKTENC + reg[0x7d04] = 0x00010008/0x00010008 + + # TP_GLOBAL_CONFIG + reg[0x7d08] = 0x00000800/0x00000800 # set IssFromCplEnable + + # TP_PC_CONFIG + reg[0x7d48] = 0x00000000/0x00000400 # clear EnableFLMError + + # TP_PC_CONFIG2 + reg[0x7d4c] = 0x00010000/0x00010000 # set DisableNewPshFlag + + # TP_PARA_REG0 + reg[0x7d60] = 0x06000000/0x07000000 # set InitCWND to 6 + + # TP_PARA_REG3 + reg[0x7d6c] = 0x28000000/0x28000000 # set EnableTnlCngHdr + # set RxMacCheck (Note: + # Only for hash filter, + # no tcp offload) + + # LE_DB_CONFIG + reg[0x19c04] = 0x00000000/0x02040000 # LE IPv4 compression disabled + # EXTN_HASH_IPV4 Disable + + # LE_DB_RSP_CODE_0 + reg[0x19c74] = 0x00000004/0x0000000f # TCAM_ACTV_HIT = 4 + + # LE_DB_RSP_CODE_1 + reg[0x19c78] = 0x08000000/0x0e000000 # HASH_ACTV_HIT = 4 + + # LE_DB_HASH_CONFIG + reg[0x19c28] = 0x00800000/0x01f00000 # LE Hash bucket size 8, + + # MC configuration + mc_mode_brc[0] = 0 # mc0 - 1: enable BRC, 0: enable RBC + +# PFs 0-3. These get 8 MSI/8 MSI-X vectors each. VFs are supported by +# these 4 PFs only. +[function "0"] + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x1 + +[function "1"] + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x2 + +[function "2"] + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x4 + +[function "3"] + nvf = 4 + wx_caps = all + r_caps = all + nvi = 2 + rssnvi = 2 + niqflint = 4 + nethctrl = 4 + neq = 8 + nexactf = 4 + cmask = all + pmask = 0x8 + +# PF4 is the resource-rich PF that the bus/nexus driver attaches to. +# It gets 32 MSI/128 MSI-X vectors. +[function "4"] + wx_caps = all + r_caps = all + nvi = 32 + rssnvi = 8 + niqflint = 512 + nethctrl = 1024 + neq = 2048 + nqpcq = 8192 + nexactf = 456 + cmask = all + pmask = all + nclip = 320 + + # TCAM has 6K cells; each region must start at a multiple of 128 cell. + # Each entry in these categories takes 2 cells each. nhash will use the + # TCAM iff there is room left (that is, the rest don't add up to 3072). + nfilter = 2032 + nserver = 512 + nhpfilter = 0 + nhash = 524288 + protocol = nic_hashfilter + tp_l2t = 4096 + +# PF5 is the SCSI Controller PF. It gets 32 MSI/40 MSI-X vectors. +# Not used right now. +[function "5"] + nvi = 1 + rssnvi = 0 + +# PF6 is the FCoE Controller PF. It gets 32 MSI/40 MSI-X vectors. +# Not used right now. +[function "6"] + nvi = 1 + rssnvi = 0 + +# The following function, 1023, is not an actual PCIE function but is used to +# configure and reserve firmware internal resources that come from the global +# resource pool. +# +[function "1023"] + wx_caps = all + r_caps = all + nvi = 4 + rssnvi = 0 + cmask = all + pmask = all + nexactf = 8 + nfilter = 16 + + +# For Virtual functions, we only allow NIC functionality and we only allow +# access to one port (1 << PF). Note that because of limitations in the +# Scatter Gather Engine (SGE) hardware which checks writes to VF KDOORBELL +# and GTS registers, the number of Ingress and Egress Queues must be a power +# of 2. +# +[function "0/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x1 + +[function "1/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x2 + +[function "2/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x1 + +[function "3/*"] + wx_caps = 0x82 + r_caps = 0x86 + nvi = 1 + rssnvi = 1 + niqflint = 2 + nethctrl = 2 + neq = 4 + nexactf = 2 + cmask = all + pmask = 0x2 + +# MPS has 192K buffer space for ingress packets from the wire as well as +# loopback path of the L2 switch. +[port "0"] + dcb = none + #bg_mem = 25 + #lpbk_mem = 25 + hwm = 60 + lwm = 15 + dwm = 30 + +[port "1"] + dcb = none + #bg_mem = 25 + #lpbk_mem = 25 + hwm = 60 + lwm = 15 + dwm = 30 + +[fini] + version = 0x1 + checksum = 0xb577311e +# +# $FreeBSD$ +# Modified: head/sys/dev/cxgbe/offload.h ============================================================================== --- head/sys/dev/cxgbe/offload.h Wed May 9 02:07:09 2018 (r333393) +++ head/sys/dev/cxgbe/offload.h Wed May 9 04:09:49 2018 (r333394) @@ -32,6 +32,9 @@ #ifndef __T4_OFFLOAD_H__ #define __T4_OFFLOAD_H__ +#include +#include +#include #define INIT_ULPTX_WRH(w, wrlen, atomic, tid) do { \ (w)->wr_hi = htonl(V_FW_WR_OP(FW_ULPTX_WR) | V_FW_WR_ATOMIC(atomic)); \ @@ -100,10 +103,16 @@ struct tid_info { u_int atids_in_use; struct mtx ftid_lock __aligned(CACHE_LINE_SIZE); + struct cv ftid_cv; struct filter_entry *ftid_tab; u_int nftids; u_int ftid_base; u_int ftids_in_use; + + struct mtx hftid_lock __aligned(CACHE_LINE_SIZE); + struct cv hftid_cv; + void **hftid_tab; + /* ntids, tids_in_use */ struct mtx etid_lock __aligned(CACHE_LINE_SIZE); struct etid_entry *etid_tab; Modified: head/sys/dev/cxgbe/t4_filter.c ============================================================================== --- head/sys/dev/cxgbe/t4_filter.c Wed May 9 02:07:09 2018 (r333393) +++ head/sys/dev/cxgbe/t4_filter.c Wed May 9 04:09:49 2018 (r333394) @@ -47,18 +47,54 @@ __FBSDID("$FreeBSD$"); #include "common/common.h" #include "common/t4_msg.h" #include "common/t4_regs.h" +#include "common/t4_regs_values.h" +#include "common/t4_tcb.h" #include "t4_l2t.h" struct filter_entry { - uint32_t valid:1; /* filter allocated and valid */ - uint32_t locked:1; /* filter is administratively locked */ - uint32_t pending:1; /* filter action is pending firmware reply */ + uint32_t valid:1; /* filter allocated and valid */ + uint32_t locked:1; /* filter is administratively locked or busy */ + uint32_t pending:1; /* filter action is pending firmware reply */ uint32_t smtidx:8; /* Source MAC Table index for smac */ - struct l2t_entry *l2t; /* Layer Two Table entry for dmac */ + int tid; /* tid of the filter TCB */ + struct l2t_entry *l2te; /* L2 table entry for DMAC rewrite */ - struct t4_filter_specification fs; + struct t4_filter_specification fs; }; +static void free_filter_resources(struct filter_entry *); +static int get_hashfilter(struct adapter *, struct t4_filter *); +static int set_hashfilter(struct adapter *, struct t4_filter *, + struct l2t_entry *); +static int del_hashfilter(struct adapter *, struct t4_filter *); +static int configure_hashfilter_tcb(struct adapter *, struct filter_entry *); + +static void +insert_hftid(struct adapter *sc, int tid, void *ctx, int ntids) +{ + struct tid_info *t = &sc->tids; + + t->hftid_tab[tid] = ctx; + atomic_add_int(&t->tids_in_use, ntids); +} + +static void * +lookup_hftid(struct adapter *sc, int tid) +{ + struct tid_info *t = &sc->tids; + + return (t->hftid_tab[tid]); +} + +static void +remove_hftid(struct adapter *sc, int tid, int ntids) +{ + struct tid_info *t = &sc->tids; + + t->hftid_tab[tid] = NULL; + atomic_subtract_int(&t->tids_in_use, ntids); +} + static uint32_t fconf_iconf_to_mode(uint32_t fconf, uint32_t iconf) { @@ -209,7 +245,7 @@ get_filter_mode(struct adapter *sc, uint32_t *mode) /* * We trust the cached values of the relevant TP registers. This means * things work reliably only if writes to those registers are always via - * t4_set_filter_mode_. + * t4_set_filter_mode. */ *mode = fconf_iconf_to_mode(tpp->vlan_pri_map, tpp->ingress_config); @@ -230,6 +266,10 @@ set_filter_mode(struct adapter *sc, uint32_t mode) * already set to the correct value for the requested filter * mode. It's not clear if it's safe to write to this register * on the fly. (And we trust the cached value of the register). + * + * check_fspec_against_fconf_iconf and other code that looks at + * tp->vlan_pri_map and tp->ingress_config needs to be reviewed + * thorougly before allowing dynamic filter mode changes. */ return (EBUSY); } @@ -260,12 +300,11 @@ done: } static inline uint64_t -get_filter_hits(struct adapter *sc, uint32_t fid) +get_filter_hits(struct adapter *sc, uint32_t tid) { uint32_t tcb_addr; - tcb_addr = t4_read_reg(sc, A_TP_CMM_TCB_BASE) + - (fid + sc->tids.ftid_base) * TCB_SIZE; + tcb_addr = t4_read_reg(sc, A_TP_CMM_TCB_BASE) + tid * TCB_SIZE; if (is_t4(sc)) { uint64_t hits; @@ -283,28 +322,28 @@ get_filter_hits(struct adapter *sc, uint32_t fid) int get_filter(struct adapter *sc, struct t4_filter *t) { - int i, rc, nfilters = sc->tids.nftids; + int i, nfilters = sc->tids.nftids; struct filter_entry *f; - rc = begin_synchronized_op(sc, NULL, HOLD_LOCK | SLEEP_OK | INTR_OK, - "t4getf"); - if (rc) - return (rc); + if (t->fs.hash) + return (get_hashfilter(sc, t)); if (sc->tids.ftids_in_use == 0 || sc->tids.ftid_tab == NULL || t->idx >= nfilters) { t->idx = 0xffffffff; - goto done; + return (0); } + mtx_lock(&sc->tids.ftid_lock); f = &sc->tids.ftid_tab[t->idx]; + MPASS(f->tid == sc->tids.ftid_base + t->idx); for (i = t->idx; i < nfilters; i++, f++) { if (f->valid) { t->idx = i; - t->l2tidx = f->l2t ? f->l2t->idx : 0; + t->l2tidx = f->l2te ? f->l2te->idx : 0; t->smtidx = f->smtidx; if (f->fs.hitcnts) - t->hits = get_filter_hits(sc, t->idx); + t->hits = get_filter_hits(sc, f->tid); else t->hits = UINT64_MAX; t->fs = f->fs; @@ -312,59 +351,78 @@ get_filter(struct adapter *sc, struct t4_filter *t) goto done; } } - t->idx = 0xffffffff; done: - end_synchronized_op(sc, LOCK_HELD); + mtx_unlock(&sc->tids.ftid_lock); return (0); } static int -set_filter_wr(struct adapter *sc, int fidx) +set_tcamfilter(struct adapter *sc, struct t4_filter *t, struct l2t_entry *l2te) { - struct filter_entry *f = &sc->tids.ftid_tab[fidx]; + struct filter_entry *f; struct fw_filter_wr *fwr; - unsigned int ftid, vnic_vld, vnic_vld_mask; + u_int vnic_vld, vnic_vld_mask; struct wrq_cookie cookie; + int i, rc, busy, locked; + const int ntids = t->fs.type ? 4 : 1; - ASSERT_SYNCHRONIZED_OP(sc); + MPASS(!t->fs.hash); + MPASS(t->idx < sc->tids.nftids); + /* Already validated against fconf, iconf */ + MPASS((t->fs.val.pfvf_vld & t->fs.val.ovlan_vld) == 0); + MPASS((t->fs.mask.pfvf_vld & t->fs.mask.ovlan_vld) == 0); - if (f->fs.newdmac || f->fs.newvlan) { - /* This filter needs an L2T entry; allocate one. */ - f->l2t = t4_l2t_alloc_switching(sc->l2t); - if (f->l2t == NULL) - return (EAGAIN); - if (t4_l2t_set_switching(sc, f->l2t, f->fs.vlan, f->fs.eport, - f->fs.dmac)) { - t4_l2t_release(f->l2t); - f->l2t = NULL; - return (ENOMEM); + f = &sc->tids.ftid_tab[t->idx]; + rc = busy = locked = 0; + mtx_lock(&sc->tids.ftid_lock); + for (i = 0; i < ntids; i++) { + busy += f[i].pending + f[i].valid; + locked += f[i].locked; + } + if (locked > 0) + rc = EPERM; + else if (busy > 0) + rc = EBUSY; + else { + fwr = start_wrq_wr(&sc->sge.mgmtq, howmany(sizeof(*fwr), 16), + &cookie); + if (__predict_false(fwr == NULL)) + rc = ENOMEM; + else { + f->pending = 1; + sc->tids.ftids_in_use++; } } + mtx_unlock(&sc->tids.ftid_lock); + if (rc != 0) { + if (l2te) + t4_l2t_release(l2te); + return (rc); + } - /* Already validated against fconf, iconf */ - MPASS((f->fs.val.pfvf_vld & f->fs.val.ovlan_vld) == 0); - MPASS((f->fs.mask.pfvf_vld & f->fs.mask.ovlan_vld) == 0); - if (f->fs.val.pfvf_vld || f->fs.val.ovlan_vld) + /* + * Can't fail now. A set-filter WR will definitely be sent. + */ + + f->tid = sc->tids.ftid_base + t->idx; + f->fs = t->fs; + f->l2te = l2te; + + if (t->fs.val.pfvf_vld || t->fs.val.ovlan_vld) vnic_vld = 1; else vnic_vld = 0; - if (f->fs.mask.pfvf_vld || f->fs.mask.ovlan_vld) + if (t->fs.mask.pfvf_vld || t->fs.mask.ovlan_vld) vnic_vld_mask = 1; else vnic_vld_mask = 0; - ftid = sc->tids.ftid_base + fidx; - - fwr = start_wrq_wr(&sc->sge.mgmtq, howmany(sizeof(*fwr), 16), &cookie); - if (fwr == NULL) - return (ENOMEM); bzero(fwr, sizeof(*fwr)); - fwr->op_pkd = htobe32(V_FW_WR_OP(FW_FILTER_WR)); fwr->len16_pkd = htobe32(FW_LEN16(*fwr)); fwr->tid_to_iq = - htobe32(V_FW_FILTER_WR_TID(ftid) | + htobe32(V_FW_FILTER_WR_TID(f->tid) | V_FW_FILTER_WR_RQTYPE(f->fs.type) | V_FW_FILTER_WR_NOREPLY(0) | V_FW_FILTER_WR_IQ(f->fs.iq)); @@ -384,7 +442,7 @@ set_filter_wr(struct adapter *sc, int fidx) V_FW_FILTER_WR_HITCNTS(f->fs.hitcnts) | V_FW_FILTER_WR_TXCHAN(f->fs.eport) | V_FW_FILTER_WR_PRIO(f->fs.prio) | - V_FW_FILTER_WR_L2TIX(f->l2t ? f->l2t->idx : 0)); + V_FW_FILTER_WR_L2TIX(f->l2te ? f->l2te->idx : 0)); fwr->ethtype = htobe16(f->fs.val.ethtype); fwr->ethtypem = htobe16(f->fs.mask.ethtype); fwr->frag_to_ovlan_vldm = @@ -422,265 +480,948 @@ set_filter_wr(struct adapter *sc, int fidx) fwr->lpm = htobe16(f->fs.mask.dport); fwr->fp = htobe16(f->fs.val.sport); fwr->fpm = htobe16(f->fs.mask.sport); - if (f->fs.newsmac) + if (f->fs.newsmac) { + /* XXX: need to use SMT idx instead */ bcopy(f->fs.smac, fwr->sma, sizeof (fwr->sma)); - - f->pending = 1; - sc->tids.ftids_in_use++; - + } commit_wrq_wr(&sc->sge.mgmtq, fwr, &cookie); - return (0); + + /* Wait for response. */ + mtx_lock(&sc->tids.ftid_lock); + for (;;) { + if (f->pending == 0) { + rc = f->valid ? 0 : EIO; + break; + } + if (cv_wait_sig(&sc->tids.ftid_cv, &sc->tids.ftid_lock) != 0) { + rc = EINPROGRESS; + break; + } + } + mtx_unlock(&sc->tids.ftid_lock); + return (rc); } int set_filter(struct adapter *sc, struct t4_filter *t) { - unsigned int nfilters, nports; - struct filter_entry *f; - int i, rc; + struct tid_info *ti = &sc->tids; + struct l2t_entry *l2te; + int rc; + /* + * Basic filter checks first. + */ + + if (t->fs.hash) { + if (!is_hashfilter(sc) || ti->ntids == 0) + return (ENOTSUP); + if (t->idx != (uint32_t)-1) + return (EINVAL); /* hw, not user picks the idx */ + } else { + if (ti->nftids == 0) + return (ENOTSUP); + if (t->idx >= ti->nftids) + return (EINVAL); + /* IPv6 filter idx must be 4 aligned */ + if (t->fs.type == 1 && + ((t->idx & 0x3) || t->idx + 4 >= ti->nftids)) + return (EINVAL); + } + + /* T4 doesn't support removing VLAN Tags for loop back filters. */ + if (is_t4(sc) && t->fs.action == FILTER_SWITCH && + (t->fs.newvlan == VLAN_REMOVE || t->fs.newvlan == VLAN_REWRITE)) + return (ENOTSUP); + + if (t->fs.action == FILTER_SWITCH && t->fs.eport >= sc->params.nports) + return (EINVAL); + if (t->fs.val.iport >= sc->params.nports) + return (EINVAL); + + /* Can't specify an iq if not steering to it */ + if (!t->fs.dirsteer && t->fs.iq) + return (EINVAL); + + /* Validate against the global filter mode and ingress config */ + rc = check_fspec_against_fconf_iconf(sc, &t->fs); + if (rc != 0) + return (rc); + + /* + * Basic checks passed. Make sure the queues and tid tables are setup. + */ + rc = begin_synchronized_op(sc, NULL, SLEEP_OK | INTR_OK, "t4setf"); if (rc) return (rc); + if (!(sc->flags & FULL_INIT_DONE) && + ((rc = adapter_full_init(sc)) != 0)) { + end_synchronized_op(sc, 0); + return (rc); + } + if (t->fs.hash) { + if (__predict_false(ti->hftid_tab == NULL)) { + ti->hftid_tab = malloc(sizeof(*ti->hftid_tab) * ti->ntids, + M_CXGBE, M_NOWAIT | M_ZERO); + if (ti->hftid_tab == NULL) { + rc = ENOMEM; + goto done; + } + mtx_init(&ti->hftid_lock, "T4 hashfilters", 0, MTX_DEF); + cv_init(&ti->hftid_cv, "t4hfcv"); + } + if (__predict_false(sc->tids.atid_tab == NULL)) { + rc = alloc_atid_tab(&sc->tids, M_NOWAIT); + if (rc != 0) + goto done; + } + } else if (__predict_false(ti->ftid_tab == NULL)) { + KASSERT(ti->ftids_in_use == 0, + ("%s: no memory allocated but ftids_in_use > 0", __func__)); + ti->ftid_tab = malloc(sizeof(struct filter_entry) * ti->nftids, + M_CXGBE, M_NOWAIT | M_ZERO); + if (ti->ftid_tab == NULL) { + rc = ENOMEM; + goto done; + } + mtx_init(&ti->ftid_lock, "T4 filters", 0, MTX_DEF); + cv_init(&ti->ftid_cv, "t4fcv"); + } +done: + end_synchronized_op(sc, 0); + if (rc != 0) + return (rc); - nfilters = sc->tids.nftids; - nports = sc->params.nports; + /* + * Allocate L2T entry, SMT entry, etc. + */ - if (nfilters == 0) { - rc = ENOTSUP; - goto done; + l2te = NULL; + if (t->fs.newdmac || t->fs.newvlan) { + /* This filter needs an L2T entry; allocate one. */ + l2te = t4_l2t_alloc_switching(sc->l2t); + if (__predict_false(l2te == NULL)) + return (EAGAIN); + if (t4_l2t_set_switching(sc, l2te, t->fs.vlan, t->fs.eport, + t->fs.dmac)) { + t4_l2t_release(l2te); + return (ENOMEM); + } } - if (t->idx >= nfilters) { - rc = EINVAL; - goto done; + if (t->fs.newsmac) { + /* XXX: alloc SMT */ + return (ENOTSUP); } - /* Validate against the global filter mode and ingress config */ - rc = check_fspec_against_fconf_iconf(sc, &t->fs); - if (rc != 0) - goto done; + if (t->fs.hash) + return (set_hashfilter(sc, t, l2te)); + else + return (set_tcamfilter(sc, t, l2te)); - if (t->fs.action == FILTER_SWITCH && t->fs.eport >= nports) { - rc = EINVAL; +} + +static int +del_tcamfilter(struct adapter *sc, struct t4_filter *t) +{ + struct filter_entry *f; + struct fw_filter_wr *fwr; + struct wrq_cookie cookie; + int rc; + + MPASS(sc->tids.ftid_tab != NULL); + MPASS(sc->tids.nftids > 0); + + if (t->idx >= sc->tids.nftids) + return (EINVAL); + + mtx_lock(&sc->tids.ftid_lock); + f = &sc->tids.ftid_tab[t->idx]; + if (f->locked) { + rc = EPERM; goto done; } - - if (t->fs.val.iport >= nports) { - rc = EINVAL; + if (f->pending) { + rc = EBUSY; goto done; } - - /* Can't specify an iq if not steering to it */ - if (!t->fs.dirsteer && t->fs.iq) { + if (f->valid == 0) { rc = EINVAL; goto done; } - - /* IPv6 filter idx must be 4 aligned */ - if (t->fs.type == 1 && - ((t->idx & 0x3) || t->idx + 4 >= nfilters)) { - rc = EINVAL; + MPASS(f->tid == sc->tids.ftid_base + t->idx); + fwr = start_wrq_wr(&sc->sge.mgmtq, howmany(sizeof(*fwr), 16), &cookie); + if (fwr == NULL) { + rc = ENOMEM; goto done; } - if (!(sc->flags & FULL_INIT_DONE) && - ((rc = adapter_full_init(sc)) != 0)) - goto done; + bzero(fwr, sizeof (*fwr)); + t4_mk_filtdelwr(f->tid, fwr, sc->sge.fwq.abs_id); + f->pending = 1; + commit_wrq_wr(&sc->sge.mgmtq, fwr, &cookie); + t->fs = f->fs; /* extra info for the caller */ - if (sc->tids.ftid_tab == NULL) { - KASSERT(sc->tids.ftids_in_use == 0, - ("%s: no memory allocated but filters_in_use > 0", - __func__)); - - sc->tids.ftid_tab = malloc(sizeof (struct filter_entry) * - nfilters, M_CXGBE, M_NOWAIT | M_ZERO); - if (sc->tids.ftid_tab == NULL) { - rc = ENOMEM; - goto done; + for (;;) { + if (f->pending == 0) { + rc = f->valid ? EIO : 0; + break; } - mtx_init(&sc->tids.ftid_lock, "T4 filters", 0, MTX_DEF); + if (cv_wait_sig(&sc->tids.ftid_cv, &sc->tids.ftid_lock) != 0) { + rc = EINPROGRESS; + break; + } } +done: + mtx_unlock(&sc->tids.ftid_lock); + return (rc); +} - for (i = 0; i < 4; i++) { - f = &sc->tids.ftid_tab[t->idx + i]; +int +del_filter(struct adapter *sc, struct t4_filter *t) +{ - if (f->pending || f->valid) { - rc = EBUSY; - goto done; - } - if (f->locked) { - rc = EPERM; - goto done; - } + /* No filters possible if not initialized yet. */ + if (!(sc->flags & FULL_INIT_DONE)) + return (EINVAL); - if (t->fs.type == 0) - break; + /* + * The checks for tid tables ensure that the locks that del_* will reach + * for are initialized. + */ + if (t->fs.hash) { + if (sc->tids.hftid_tab != NULL) + return (del_hashfilter(sc, t)); + } else { + if (sc->tids.ftid_tab != NULL) + return (del_tcamfilter(sc, t)); } - f = &sc->tids.ftid_tab[t->idx]; - f->fs = t->fs; + return (EINVAL); +} - rc = set_filter_wr(sc, t->idx); -done: - end_synchronized_op(sc, 0); +/* + * Release secondary resources associated with the filter. + */ +static void +free_filter_resources(struct filter_entry *f) +{ - if (rc == 0) { - mtx_lock(&sc->tids.ftid_lock); - for (;;) { - if (f->pending == 0) { - rc = f->valid ? 0 : EIO; - break; - } + if (f->l2te) { + t4_l2t_release(f->l2te); + f->l2te = NULL; + } +} - if (mtx_sleep(&sc->tids.ftid_tab, &sc->tids.ftid_lock, - PCATCH, "t4setfw", 0)) { - rc = EINPROGRESS; - break; - } - } - mtx_unlock(&sc->tids.ftid_lock); +int +t4_filter_rpl(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_set_tcb_rpl *rpl = (const void *)(rss + 1); + u_int tid = GET_TID(rpl); + u_int rc, cleanup, idx; + struct filter_entry *f; + + KASSERT(m == NULL, ("%s: payload with opcode %02x", __func__, + rss->opcode)); + MPASS(is_ftid(sc, tid)); + + cleanup = 0; + idx = tid - sc->tids.ftid_base; + f = &sc->tids.ftid_tab[idx]; + rc = G_COOKIE(rpl->cookie); + + mtx_lock(&sc->tids.ftid_lock); + KASSERT(f->pending, ("%s: reply %d for filter[%u] that isn't pending.", + __func__, rc, idx)); + switch(rc) { + case FW_FILTER_WR_FLT_ADDED: + /* set-filter succeeded */ + f->valid = 1; + f->smtidx = (be64toh(rpl->oldval) >> 24) & 0xff; + break; + case FW_FILTER_WR_FLT_DELETED: + /* del-filter succeeded */ + MPASS(f->valid == 1); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Wed May 9 04:49:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BAD2CFA882C; Wed, 9 May 2018 04:49:51 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 292B971AD1; Wed, 9 May 2018 04:49:50 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from freyja.zeit4.iv.bundesimmobilien.de ([87.138.105.249]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M2nfO-1eQ5mm3MhS-00saqE; Wed, 09 May 2018 06:44:34 +0200 Date: Wed, 9 May 2018 06:44:26 +0200 From: "O. Hartmann" To: Peter Wemm Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333387 - head/usr.bin/svn Message-ID: <20180509064421.0e2d47f2@freyja.zeit4.iv.bundesimmobilien.de> In-Reply-To: <201805082101.w48L15jU053359@repo.freebsd.org> References: <201805082101.w48L15jU053359@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:pGFOVOxrn4sK/Je6wkdfv1ap9LOkrdfEIaNrHQLBohjhn39rCwu 9Bh5uZDlNqEwlnOwonmLMNplqYBChlxkF14zP268BUPXErpMBNu2H7F28fv1VYH6SfO0TBj lDeF/zvIIrme9AdL9HdlqmFnQj1MgRgSn+4V9cB9nhcYSXrMtnYAJTySIeeuvhXeJ27XY0O VPCw33O/zGNBRhoisGuxA== X-UI-Out-Filterresults: notjunk:1;V01:K0:x6dVT8EvFjU=:uQteZiC5nsLwnfIIZw9Fo/ yKNgh9zuQipi9ZouO5t7iE7TV2MCVcf1XigJ5Zs32WiPnpuBWKHD5QIlJaov/JY0xTH1kX6az 4JSv7J0dG738B7sPdm+HLnXVrJF1YK38ZyXNGmPsxcaKoB13tAVTXeAY/OZ1IvwxTdbdNAq9D 80wL1qxbHs/TSxP+KwjrlfQ5FM89iXYVIRITrGGG+jaZXFsjOw6l1/FcSmc/sYPxZ8jdtSgCo k6w5HyT0WmH2GwriUIPSZPdC1xzuEbuGdB5Fn1+LjP+ifR5xPhfgriV1XI9V4EEmeYahneBeh crsomXiXImdqrkFgDZQRTu5RjkvOjh9BG095zDtk1bSCV42e1pCnSsPORQHOCSgBDNm5ZmAnU swhFm9LGI3keasd0V/K70CB4nEZ/5KiMA6yXdJdQ3f8P1vtGSy8gK/2gDizODMtpf7oj2V9b4 dQISPs11p0niWxAnecT7aOqxfwCgB/ZUCN27UKCmG6fGVwXiSVEN/JxCpVAn7mBnXLFt5ORAb KuG/1JNlRIYv6c5tRdeHaX6aVZPnZ5lkFJIckTsWBS21LP7pbVzL8dHO1CY+rF+1uoXk6FEUK CuIEjKQ+f2pzCr9hHaapYqeZtVbLxeCdoyQFa1kWFUg4XPhml7kGOKOCsXpJi9NhjySI45rhG Xwzpcy5N/SlDFBY4PA/wPNZXinngtSviacpWhUhlyLFTXKDhs1+YWhDudw5pGz2vRGBV2iaib mdZ7ZZ/p0apaj84sf0Hz9sXJ+Y5ifZ9PSxJIatoRMWsWXur6uDeoN1XhAypjsI9FcXM3qBgSs v7WCJOy X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 04:49:52 -0000 On Tue, 8 May 2018 21:01:05 +0000 (UTC) Peter Wemm wrote: > Author: peter > Date: Tue May 8 21:01:04 2018 > New Revision: 333387 > URL: https://svnweb.freebsd.org/changeset/base/333387 > > Log: > Update svn_private_config.h - I misread an autoconf change. > SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL -> SVN_LIBSVN_RA_LINKS_RA_LOCAL > SVN_LIBSVN_CLIENT_LINKS_RA_SERF -> SVN_LIBSVN_RA_LINKS_RA_SERF > SVN_LIBSVN_CLIENT_LINKS_RA_SVN -> SVN_LIBSVN_RA_LINKS_RA_SVN > > Modified: > head/usr.bin/svn/svn_private_config.h > > Modified: head/usr.bin/svn/svn_private_config.h > ============================================================================== > --- head/usr.bin/svn/svn_private_config.h Tue May 8 20:39:35 > 2018 (r333386) +++ head/usr.bin/svn/svn_private_config.h Tue > May 8 21:01:04 2018 (r333387) @@ -154,6 +154,9 @@ > /* Defined if plaintext password/passphrase storage is disabled */ > /* #undef SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE */ > > +/* Shared library file name suffix format */ > +#undef SVN_DSO_SUFFIX_FMT > + > /* The desired major version for the Berkeley DB */ > #define SVN_FS_WANT_DB_MAJOR 4 > > @@ -175,12 +178,18 @@ > /* Is Mac OS KeyChain support enabled? */ > /* #undef SVN_HAVE_KEYCHAIN_SERVICES */ > > +/* Defined if KF5 available */ > +#undef SVN_HAVE_KF5 > + > /* Defined if KWallet support is enabled */ > /* #undef SVN_HAVE_KWALLET */ > > /* Defined if libmagic support is enabled */ > #define SVN_HAVE_LIBMAGIC 1 > > +/* Is libsecret support enabled? */ > +#undef SVN_HAVE_LIBSECRET > + > /* Is Mach-O low-level _dyld API available? */ > /* #undef SVN_HAVE_MACHO_ITERATE */ > > @@ -199,15 +208,6 @@ > /* Defined if support for Serf is enabled */ > #define SVN_HAVE_SERF 1 > > -/* Defined if libsvn_client should link against libsvn_ra_local */ > -#define SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL 1 > - > -/* Defined if libsvn_client should link against libsvn_ra_serf */ > -#define SVN_LIBSVN_CLIENT_LINKS_RA_SERF 1 > - > -/* Defined if libsvn_client should link against libsvn_ra_svn */ > -#define SVN_LIBSVN_CLIENT_LINKS_RA_SVN 1 > - > /* Defined if libsvn_fs should link against libsvn_fs_base */ > /* #undef SVN_LIBSVN_FS_LINKS_FS_BASE */ > > @@ -216,6 +216,15 @@ > > /* Defined if libsvn_fs should link against libsvn_fs_x */ > #define SVN_LIBSVN_FS_LINKS_FS_X 1 > + > +/* Defined if libsvn_ra should link against libsvn_ra_local */ > +#define SVN_LIBSVN_RA_LINKS_RA_LOCAL 1 > + > +/* Defined if libsvn_ra should link against libsvn_ra_serf */ > +#define SVN_LIBSVN_RA_LINKS_RA_SERF 1 > + > +/* Defined if libsvn_ra should link against libsvn_ra_svn */ > +#define SVN_LIBSVN_RA_LINKS_RA_SVN 1 > > /* Defined to be the path to the installed locale dirs */ > #define SVN_LOCALE_DIR "NONE/share/locale" > _______________________________________________ > 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" Hello. On boxes where I updates CURRENT to the most recent version (as of today), and where WITH_SVN= YES is set in /etc/src.conf and SVN_UPDATE= YES SVN= /usr/bin/svn SVNFLAGS= -r HEAD is set in /etc/make.conf, I can not update /usr/ports any more and receive Updating '.': svn: E170000: Unrecognized URL scheme for 'https://svn.freebsd.org/ports/head' In /usr/src this weird behaviour doesn't happen. Kind regards, Oliver From owner-svn-src-head@freebsd.org Wed May 9 07:46:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9413BFADC31; Wed, 9 May 2018 07:46:58 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3B999789FE; Wed, 9 May 2018 07:46:58 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 17CD768F3; Wed, 9 May 2018 07:46:58 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w497kvY4078467; Wed, 9 May 2018 07:46:57 GMT (envelope-from eadler@FreeBSD.org) Received: (from eadler@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w497kvjZ078465; Wed, 9 May 2018 07:46:57 GMT (envelope-from eadler@FreeBSD.org) Message-Id: <201805090746.w497kvjZ078465@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eadler set sender to eadler@FreeBSD.org using -f From: Eitan Adler Date: Wed, 9 May 2018 07:46:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333395 - head/usr.bin/enigma X-SVN-Group: head X-SVN-Commit-Author: eadler X-SVN-Commit-Paths: head/usr.bin/enigma X-SVN-Commit-Revision: 333395 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 07:46:58 -0000 Author: eadler Date: Wed May 9 07:46:57 2018 New Revision: 333395 URL: https://svnweb.freebsd.org/changeset/base/333395 Log: enigma(1) Remove reference to PGP; modernize a bit - the port was removed 2017-06-07 in r442847 - gnupg1 is the older version of gpg with legacy PGP support - remove unused macro - remove now-false statement about export restrictions Modified: head/usr.bin/enigma/enigma.1 head/usr.bin/enigma/enigma.c Modified: head/usr.bin/enigma/enigma.1 ============================================================================== --- head/usr.bin/enigma/enigma.1 Wed May 9 04:09:49 2018 (r333394) +++ head/usr.bin/enigma/enigma.1 Wed May 9 07:46:57 2018 (r333395) @@ -6,7 +6,7 @@ .\" .\" $FreeBSD$ .\" " -.Dd February 5, 2017 +.Dd May 8, 2018 .Dt ENIGMA 1 .Os .Sh NAME @@ -85,13 +85,8 @@ with other operating systems that also provide an impl there). For real encryption, refer to .Xr openssl 1 , -.Xr pgp 1 Pq Pa ports/security/pgp , or -.Xr gpg 1 Pq Pa ports/security/gnupg . -However, restrictions for exporting, -importing or using such tools might exist in some countries, so those -stronger programs are not being shipped as part of the operating -system by default. +.Xr gpg 1 Pq Pa security/gnupg1 . .Sh ENVIRONMENT .Bl -tag -offset indent -width ".Ev CrYpTkEy" .It Ev CrYpTkEy @@ -116,7 +111,6 @@ This displays the previously created file on the termi .Sh SEE ALSO .Xr gpg 1 , .Xr openssl 1 , -.Xr pgp 1 , .Xr ps 1 , .Xr getpass 3 .Sh HISTORY Modified: head/usr.bin/enigma/enigma.c ============================================================================== --- head/usr.bin/enigma/enigma.c Wed May 9 04:09:49 2018 (r333394) +++ head/usr.bin/enigma/enigma.c Wed May 9 07:46:57 2018 (r333395) @@ -22,7 +22,6 @@ __FBSDID("$FreeBSD$"); #define MINUSKVAR "CrYpTkEy" -#define ECHO 010 #define ROTORSZ 256 #define MASK 0377 static char t1[ROTORSZ]; From owner-svn-src-head@freebsd.org Wed May 9 08:50:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FE56FAFC4C; Wed, 9 May 2018 08:50: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D17D884791; Wed, 9 May 2018 08:50: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 B463373AF; Wed, 9 May 2018 08:50: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 w498ogZW008823; Wed, 9 May 2018 08:50:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w498ogTX008822; Wed, 9 May 2018 08:50:42 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201805090850.w498ogTX008822@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 9 May 2018 08:50:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333396 - head/sys/compat/linuxkpi/common/src X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/compat/linuxkpi/common/src X-SVN-Commit-Revision: 333396 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 08:50:43 -0000 Author: hselasky Date: Wed May 9 08:50:42 2018 New Revision: 333396 URL: https://svnweb.freebsd.org/changeset/base/333396 Log: Add myself to copyright in the LinuxKPI RCU support layer. Suggested by: mmacy@ Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/src/linux_rcu.c Modified: head/sys/compat/linuxkpi/common/src/linux_rcu.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_rcu.c Wed May 9 07:46:57 2018 (r333395) +++ head/sys/compat/linuxkpi/common/src/linux_rcu.c Wed May 9 08:50:42 2018 (r333396) @@ -1,5 +1,6 @@ /*- * Copyright (c) 2016 Matthew Macy (mmacy@mattmacy.io) + * Copyright (c) 2017 Hans Petter Selasky (hselasky@freebsd.org) * All rights reserved. * * Redistribution and use in source and binary forms, with or without From owner-svn-src-head@freebsd.org Wed May 9 10:28:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7636FB2677; Wed, 9 May 2018 10:28:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9C58979CF0; Wed, 9 May 2018 10:28:26 +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 7D5281032D; Wed, 9 May 2018 10:28:26 +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 w49ASQRf059073; Wed, 9 May 2018 10:28:26 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49ASPlp059067; Wed, 9 May 2018 10:28:25 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805091028.w49ASPlp059067@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 9 May 2018 10:28:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333397 - in head: lib/libc share/mk X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head: lib/libc share/mk X-SVN-Commit-Revision: 333397 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 10:28:27 -0000 Author: kib Date: Wed May 9 10:28:24 2018 New Revision: 333397 URL: https://svnweb.freebsd.org/changeset/base/333397 Log: Created static libc PIC/no-SSP library to be used by rtld. Rtld is not compatible with SSP, and since we link libc_pic.a to rtld to have the basic support like memory and string copy functions, we have to both carefully limit libc use, and to provide the ssp support shims. This change makes the libc use in rtld more straighforward but still limited, and allows to remove the shims, to be done in the next commit. Submitted by: Luis Pires Reviewed by: bdrewery, brooks Differential revision: https://reviews.freebsd.org/D15283 Modified: head/lib/libc/Makefile head/share/mk/bsd.README head/share/mk/bsd.dep.mk head/share/mk/bsd.lib.mk head/share/mk/meta.autodep.mk head/share/mk/src.libnames.mk Modified: head/lib/libc/Makefile ============================================================================== --- head/lib/libc/Makefile Wed May 9 08:50:42 2018 (r333396) +++ head/lib/libc/Makefile Wed May 9 10:28:24 2018 (r333397) @@ -43,6 +43,7 @@ CFLAGS+=-DNLS .endif CLEANFILES+=tags INSTALL_PIC_ARCHIVE= +BUILD_NOSSP_PIC_ARCHIVE= PRECIOUSLIB= .ifndef NO_THREAD_STACK_UNWIND Modified: head/share/mk/bsd.README ============================================================================== --- head/share/mk/bsd.README Wed May 9 08:50:42 2018 (r333396) +++ head/share/mk/bsd.README Wed May 9 10:28:24 2018 (r333397) @@ -115,6 +115,8 @@ the tree where the file gets installed. The profiled libraries are no longer built in a different directory than the regular libraries. A new suffix, ".po", is used to denote a profiled object, and ".pico" denotes a position-independent relocatable object. +".nossppico" denotes a position-independent relocatable object without +stack smashing protection. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Modified: head/share/mk/bsd.dep.mk ============================================================================== --- head/share/mk/bsd.dep.mk Wed May 9 08:50:42 2018 (r333396) +++ head/share/mk/bsd.dep.mk Wed May 9 10:28:24 2018 (r333397) @@ -160,11 +160,14 @@ ${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//} @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} .if defined(LIB) -CLEANFILES+= ${_D}.pico ${_D}.po +CLEANFILES+= ${_D}.pico ${_D}.po ${_D}.nossppico ${_D}.pico: ${_DSRC} ${SOBJS:S/^${_D}.pico$//} @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} ${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//} + @rm -f ${.TARGET} + ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} +${_D}.nossppico: ${_DSRC} ${SOBJS:S/^${_D}.nossppico$//} @rm -f ${.TARGET} ${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC:N*.h} .endif Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Wed May 9 08:50:42 2018 (r333396) +++ head/share/mk/bsd.lib.mk Wed May 9 10:28:24 2018 (r333397) @@ -21,9 +21,11 @@ LIB_PRIVATE= ${PRIVATELIB:Dprivate} # SHLIB_NAME will be defined only if we are to create a shared library. # SHLIB_LINK will be defined only if we are to create a link to it. # INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive. +# BUILD_NOSSP_PIC_ARCHIVE will be defined only if we are to create a PIC archive. .if defined(NO_PIC) .undef SHLIB_NAME .undef INSTALL_PIC_ARCHIVE +.undef BUILD_NOSSP_PIC_ARCHIVE .else .if !defined(SHLIB) && defined(LIB) SHLIB= ${LIB} @@ -78,7 +80,8 @@ CTFFLAGS+= -g # prefer .s to a .c, add .po, remove stuff not used in the BSD libraries # .pico used for PIC object files -.SUFFIXES: .out .o .bc .ll .po .pico .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln +# .nossppico used for NOSSP PIC object files +.SUFFIXES: .out .o .bc .ll .po .pico .nossppico .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln .if !defined(PICFLAG) .if ${MACHINE_CPUARCH} == "sparc64" @@ -98,12 +101,19 @@ PO_FLAG=-pg ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} +.c.nossppico: + ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS:C/^-fstack-protector.*$//} ${CFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + .cc.po .C.po .cpp.po .cxx.po: ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} .cc.pico .C.pico .cpp.pico .cxx.pico: ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} +.cc.nossppico .C.nossppico .cpp.nossppico .cxx.nossppico: + ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS:C/^-fstack-protector.*$//} ${CXXFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} + .f.po: ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} ${CTFCONVERT_CMD} @@ -112,7 +122,11 @@ PO_FLAG=-pg ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} ${CTFCONVERT_CMD} -.s.po .s.pico: +.f.nossppico: + ${FC} ${PICFLAG} -DPIC ${FFLAGS:C/^-fstack-protector.*$//} -o ${.TARGET} -c ${.IMPSRC} + ${CTFCONVERT_CMD} + +.s.po .s.pico .s.nossppico: ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} ${CTFCONVERT_CMD} @@ -126,6 +140,11 @@ PO_FLAG=-pg ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} +.asm.nossppico: + ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ + ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + .S.po: ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ -o ${.TARGET} @@ -136,6 +155,11 @@ PO_FLAG=-pg -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} +.S.nossppico: + ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} \ + -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + _LIBDIR:=${LIBDIR} _SHLIBDIR:=${SHLIBDIR} @@ -285,6 +309,19 @@ lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} ${RANLIB} ${RANLIBFLAGS} ${.TARGET} .endif +.if defined(BUILD_NOSSP_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) +NOSSPSOBJS+= ${OBJS:.o=.nossppico} +DEPENDOBJS+= ${NOSSPSOBJS} +CLEANFILES+= ${NOSSPSOBJS} +_LIBS+= lib${LIB_PRIVATE}${LIB}_nossp_pic.a + +lib${LIB_PRIVATE}${LIB}_nossp_pic.a: ${NOSSPSOBJS} + @${ECHO} building special nossp pic ${LIB} library + @rm -f ${.TARGET} + ${AR} ${ARFLAGS} ${.TARGET} ${NOSSPSOBJS} ${ARADD} + ${RANLIB} ${RANLIBFLAGS} ${.TARGET} +.endif + .endif # !defined(INTERNALLIB) .if defined(_SKIP_BUILD) @@ -423,6 +460,11 @@ OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.po+= $ defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) .for _S in ${SRCS:N*.[hly]} OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.pico+= ${_S} +.endfor +.endif +.if defined(BUILD_NOSSP_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) +.for _S in ${SRCS:N*.[hly]} +OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.nossppico+= ${_S} .endfor .endif Modified: head/share/mk/meta.autodep.mk ============================================================================== --- head/share/mk/meta.autodep.mk Wed May 9 08:50:42 2018 (r333396) +++ head/share/mk/meta.autodep.mk Wed May 9 10:28:24 2018 (r333397) @@ -23,7 +23,7 @@ __${_this}__: .NOTMAIN .if defined(SRCS) # it would be nice to be able to query .SUFFIXES -OBJ_EXTENSIONS+= .o .po .lo .pico +OBJ_EXTENSIONS+= .o .po .lo .pico .nossppico # explicit dependencies help short-circuit .SUFFIX searches SRCS_DEP_FILTER+= N*.[hly] @@ -179,7 +179,7 @@ DEPEND_SUFFIXES += .c .h .cpp .hpp .cxx .hxx .cc .hh @case "${.MAKE.META.FILES:T:M*.po.*}" in \ *.po.*) mv $@.${.MAKE.PID} $@;; \ *) { cat $@.${.MAKE.PID}; \ - sed 's,\.pico:,.o:,;s,\.o:,.po:,' $@.${.MAKE.PID}; } | sort -u > $@; \ + sed 's,\.nossppico:,.o:,;s,\.pico:,.o:,;s,\.o:,.po:,' $@.${.MAKE.PID}; } | sort -u > $@; \ rm -f $@.${.MAKE.PID};; \ esac .else Modified: head/share/mk/src.libnames.mk ============================================================================== --- head/share/mk/src.libnames.mk Wed May 9 08:50:42 2018 (r333396) +++ head/share/mk/src.libnames.mk Wed May 9 10:28:24 2018 (r333397) @@ -31,6 +31,7 @@ _PRIVATELIBS= \ _INTERNALLIBS= \ amu \ bsnmptools \ + c_nossp_pic \ cron \ elftc \ fifolog \ @@ -470,6 +471,9 @@ LIBAMU?= ${LIBAMUDIR}/libamu.a LIBPMCSTATDIR= ${OBJTOP}/lib/libpmcstat LIBPMCSTAT?= ${LIBPMCSTATDIR}/libpmcstat.a + +LIBC_NOSSP_PICDIR= ${OBJTOP}/lib/libc +LIBC_NOSSP_PIC?= ${LIBC_NOSSP_PICDIR}/libc_nossp_pic.a # Define a directory for each library. This is useful for adding -L in when # not using a --sysroot or for meta mode bootstrapping when there is no From owner-svn-src-head@freebsd.org Wed May 9 10:30:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D4EBFB2767; Wed, 9 May 2018 10:30:57 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4F3FE79ED5; Wed, 9 May 2018 10:30:57 +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 307D11035B; Wed, 9 May 2018 10:30:57 +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 w49AUvHA061449; Wed, 9 May 2018 10:30:57 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49AUuMi061447; Wed, 9 May 2018 10:30:56 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805091030.w49AUuMi061447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 9 May 2018 10:30:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333398 - 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: 333398 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 10:30:58 -0000 Author: kib Date: Wed May 9 10:30:56 2018 New Revision: 333398 URL: https://svnweb.freebsd.org/changeset/base/333398 Log: Make rtld use libc_nossp_pic.a. Remove SSP shims. Submitted by: Luis Pires Reviewed by: brooks Differential revision: https://reviews.freebsd.org/D15341 Modified: head/libexec/rtld-elf/Makefile head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/Makefile ============================================================================== --- head/libexec/rtld-elf/Makefile Wed May 9 10:28:24 2018 (r333397) +++ head/libexec/rtld-elf/Makefile Wed May 9 10:30:56 2018 (r333398) @@ -51,7 +51,7 @@ CFLAGS+= -fvisibility=hidden CFLAGS.reloc.c+=-fno-jump-tables .endif LDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs -LIBADD= c_pic +LIBADD= c_nossp_pic .if ${MK_TOOLCHAIN} == "no" LDFLAGS+= -L${LIBCDIR} .endif Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Wed May 9 10:28:24 2018 (r333397) +++ head/libexec/rtld-elf/rtld.c Wed May 9 10:30:56 2018 (r333398) @@ -238,8 +238,6 @@ void _rtld_error(const char *, ...) __exported; int npagesizes, osreldate; size_t *pagesizes; -long __stack_chk_guard[8] = {0, 0, 0, 0, 0, 0, 0, 0}; - static int stack_prot = PROT_READ | PROT_WRITE | RTLD_DEFAULT_STACK_EXEC; static int max_stack_flags; @@ -360,8 +358,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr char **argv, *argv0, **env, **envp, *kexecpath, *library_path_rpath; caddr_t imgentry; char buf[MAXPATHLEN]; - int argc, fd, i, mib[2], phnum, rtld_argc; - size_t len; + int argc, fd, i, phnum, rtld_argc; bool dir_enable, explicit_fd, search_in_path; /* @@ -399,27 +396,6 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr main_argc = argc; main_argv = argv; - if (aux_info[AT_CANARY] != NULL && - aux_info[AT_CANARY]->a_un.a_ptr != NULL) { - i = aux_info[AT_CANARYLEN]->a_un.a_val; - if (i > sizeof(__stack_chk_guard)) - i = sizeof(__stack_chk_guard); - memcpy(__stack_chk_guard, aux_info[AT_CANARY]->a_un.a_ptr, i); - } else { - mib[0] = CTL_KERN; - mib[1] = KERN_ARND; - - len = sizeof(__stack_chk_guard); - if (sysctl(mib, 2, __stack_chk_guard, &len, NULL, 0) == -1 || - len != sizeof(__stack_chk_guard)) { - /* If sysctl was unsuccessful, use the "terminator canary". */ - ((unsigned char *)(void *)__stack_chk_guard)[0] = 0; - ((unsigned char *)(void *)__stack_chk_guard)[1] = 0; - ((unsigned char *)(void *)__stack_chk_guard)[2] = '\n'; - ((unsigned char *)(void *)__stack_chk_guard)[3] = 255; - } - } - trust = !issetugid(); md_abi_variant_hook(aux_info); @@ -5535,23 +5511,6 @@ int _thread_autoinit_dummy_decl = 1; void __pthread_cxa_finalize(struct dl_phdr_info *a) { -} - -void -__stack_chk_fail(void) -{ - - _rtld_error("stack overflow detected; terminated"); - rtld_die(); -} -__weak_reference(__stack_chk_fail, __stack_chk_fail_local); - -void -__chk_fail(void) -{ - - _rtld_error("buffer overflow detected; terminated"); - rtld_die(); } const char * From owner-svn-src-head@freebsd.org Wed May 9 10:33:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3C4E1FB2A43; Wed, 9 May 2018 10:33:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E120A7A2A9; Wed, 9 May 2018 10:33:25 +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 C1504104C9; Wed, 9 May 2018 10:33:25 +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 w49AXPHi063805; Wed, 9 May 2018 10:33:25 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49AXPKX063804; Wed, 9 May 2018 10:33:25 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805091033.w49AXPKX063804@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 9 May 2018 10:33:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333399 - head/lib/libc X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/lib/libc X-SVN-Commit-Revision: 333399 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 10:33:26 -0000 Author: kib Date: Wed May 9 10:33:25 2018 New Revision: 333399 URL: https://svnweb.freebsd.org/changeset/base/333399 Log: Now that a special no-SSP libc is used for rtld, allow -fstack-protector-all for normal libc builds. Submitted by: Luis Pires Reviewed by: brooks Differential revision: https://reviews.freebsd.org/D15340 Modified: head/lib/libc/Makefile Modified: head/lib/libc/Makefile ============================================================================== --- head/lib/libc/Makefile Wed May 9 10:30:56 2018 (r333398) +++ head/lib/libc/Makefile Wed May 9 10:33:25 2018 (r333399) @@ -199,10 +199,6 @@ GENDIRDEPS_FILTER+= N${RELDIR:H}/msun # Disable warnings in contributed sources. CWARNFLAGS:= ${.IMPSRC:Ngdtoa_*.c:C/^.+$/${CWARNFLAGS}/:C/^$/-w/} -# XXX For now, we don't allow libc to be compiled with -# -fstack-protector-all because it breaks rtld. We may want to make a librtld -# in the future to circumvent this. -SSP_CFLAGS:= ${SSP_CFLAGS:S/^-fstack-protector-all$/-fstack-protector/} # Disable stack protection for SSP symbols. SSP_CFLAGS:= ${.IMPSRC:N*/stack_protector.c:C/^.+$/${SSP_CFLAGS}/} # Generate stack unwinding tables for cancellation points From owner-svn-src-head@freebsd.org Wed May 9 10:50:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB7F2FB3164; Wed, 9 May 2018 10:50:52 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5F0847D319; Wed, 9 May 2018 10:50:52 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4035F106B8; Wed, 9 May 2018 10:50:52 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49AoqCO071399; Wed, 9 May 2018 10:50:52 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Aoqqg071398; Wed, 9 May 2018 10:50:52 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201805091050.w49Aoqqg071398@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Wed, 9 May 2018 10:50:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333400 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333400 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 10:50:52 -0000 Author: ae Date: Wed May 9 10:50:51 2018 New Revision: 333400 URL: https://svnweb.freebsd.org/changeset/base/333400 Log: Add IFCAP_LINKSTATE support to if_loop(4). Reviewed by: wollman Obtained from: Yandex LLC MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D15278 Modified: head/sys/net/if_loop.c Modified: head/sys/net/if_loop.c ============================================================================== --- head/sys/net/if_loop.c Wed May 9 10:33:25 2018 (r333399) +++ head/sys/net/if_loop.c Wed May 9 10:50:51 2018 (r333400) @@ -136,7 +136,7 @@ lo_clone_create(struct if_clone *ifc, int unit, caddr_ ifp->if_output = looutput; ifp->if_snd.ifq_maxlen = ifqmaxlen; ifp->if_capabilities = ifp->if_capenable = - IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6; + IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6 | IFCAP_LINKSTATE; ifp->if_hwassist = LO_CSUM_FEATURES | LO_CSUM_FEATURES6; if_attach(ifp); bpfattach(ifp, DLT_NULL, sizeof(u_int32_t)); @@ -413,6 +413,8 @@ loioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCSIFFLAGS: + if_link_state_change(ifp, (ifp->if_flags & IFF_UP) ? + LINK_STATE_UP: LINK_STATE_DOWN); break; case SIOCSIFCAP: From owner-svn-src-head@freebsd.org Wed May 9 11:17:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A172AFB4248; Wed, 9 May 2018 11:17:02 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 464A9857F4; Wed, 9 May 2018 11:17:02 +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 28A5310BB7; Wed, 9 May 2018 11:17:02 +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 w49BH1NB086401; Wed, 9 May 2018 11:17:01 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49BH13T086399; Wed, 9 May 2018 11:17:01 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805091117.w49BH13T086399@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 9 May 2018 11:17:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333401 - in head: contrib/llvm/tools/lld/ELF lib/clang/include/lld/Common X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head: contrib/llvm/tools/lld/ELF lib/clang/include/lld/Common X-SVN-Commit-Revision: 333401 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 11:17:02 -0000 Author: emaste Date: Wed May 9 11:17:01 2018 New Revision: 333401 URL: https://svnweb.freebsd.org/changeset/base/333401 Log: lld: Omit PT_NOTE for SHT_NOTE without SHF_ALLOC A non-alloc note section should not have a PT_NOTE program header. Found while linking ghc (Haskell compiler) with lld on FreeBSD. Haskell emits a .debug-ghc-link-info note section (as the name suggests, it contains link info) as a SHT_NOTE section without SHF_ALLOC set. For this case ld.bfd does not emit a PT_NOTE segment for .debug-ghc-link-info. lld previously emitted a PT_NOTE with p_vaddr = 0 and FreeBSD's rtld segfaulted when trying to parse a note at address 0. LLVM PR: https://llvm.org/pr37361 LLVM review: https://reviews.llvm.org/D46623 PR: 226872 Reviewed by: dim Sponsored by: The FreeBSD Foundation Modified: head/contrib/llvm/tools/lld/ELF/Writer.cpp head/lib/clang/include/lld/Common/Version.inc Modified: head/contrib/llvm/tools/lld/ELF/Writer.cpp ============================================================================== --- head/contrib/llvm/tools/lld/ELF/Writer.cpp Wed May 9 10:50:51 2018 (r333400) +++ head/contrib/llvm/tools/lld/ELF/Writer.cpp Wed May 9 11:17:01 2018 (r333401) @@ -1708,7 +1708,7 @@ template std::vector Writer< // Create one PT_NOTE per a group of contiguous .note sections. PhdrEntry *Note = nullptr; for (OutputSection *Sec : OutputSections) { - if (Sec->Type == SHT_NOTE) { + if (Sec->Type == SHT_NOTE && (Sec->Flags & SHF_ALLOC)) { if (!Note || Sec->LMAExpr) Note = AddHdr(PT_NOTE, PF_R); Note->add(Sec); Modified: head/lib/clang/include/lld/Common/Version.inc ============================================================================== --- head/lib/clang/include/lld/Common/Version.inc Wed May 9 10:50:51 2018 (r333400) +++ head/lib/clang/include/lld/Common/Version.inc Wed May 9 11:17:01 2018 (r333401) @@ -7,4 +7,4 @@ #define LLD_REPOSITORY_STRING "FreeBSD" // - -#define LLD_REVISION_STRING "326565-1200001" +#define LLD_REVISION_STRING "326565-1200002" From owner-svn-src-head@freebsd.org Wed May 9 11:55:32 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61F8FFB52D6 for ; Wed, 9 May 2018 11:55:28 +0000 (UTC) (envelope-from as@talestogrow.com) Received: from relay03.clubedashistorias.com (ip15.ip-51-38-85.eu [51.38.85.15]) by mx1.freebsd.org (Postfix) with ESMTP id B787A6E317 for ; Wed, 9 May 2018 11:55:26 +0000 (UTC) (envelope-from as@talestogrow.com) Received: from localhost.localdomain (455862189uuo.maya-dns.net [45.58.62.189]) by relay03.clubedashistorias.com (Postfix) with ESMTP id 9F9502921BAE for ; Wed, 9 May 2018 11:48:49 +0000 (UTC) Date: Wed, 9 May 2018 12:48:48 +0100 To: svn-src-head@freebsd.org From: Stories for Everyone - AS8 Reply-to: Stories for Everyone - AS8 Subject: Joy of Reading - Invitation 1 Message-ID: <99d787372285f86a97b7a01b0b72afbb@localhost.localdomain> X-Priority: 3 X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net) MIME-Version: 1.0 Content-Type: text/plain; charset = "iso-8859-1" Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 11:55:32 -0000 _____________________________________ Pedagogical Project “The Joy of Reading” _____________________________________ Dear Sir/Madam, The team responsible for the Project "Joy of Reading" consists of a group of people dedicated to raise the joy of reading stories. For some years now, the team involved in the project has worked together with schools, libraries, and foster centres, as well as other places, to encourage the love of reading among people of all ages and to promote literacy. So we decided to share stories via email on a weekly basis with everyone who is interested in receiving them. The project consists of 2 weekly stories, sent by e-mail – one for a young and adult audience and another one shorter and more suitable for early ages. Each story is about values such as peace, solidarity, respect, gentleness, and responsibility, among others, while also working as a reflection on the fundamental ethical principles of the world we all live in. Below you can read 2 stories and take your time to enjoy them or you can read them in the PDF attachment where they are written in colourful fonts and with pictures. If you are interested in receiving 2 stories every week in your email, you will have to subscribe to it by replying to this email saying “I would like to subscribe to the Joy of Reading Project”. If you don’t subscribe until next week, you will stop receiving the story. The subscription is totally free of charge and you can unsubscribe when you want to. We also assure you that your email address will remain strictly confidential.  The Joy of Reading team   If you are interested in receiving the weekly story, click here. If you don’t want to receive the weekly story, click here.   _______________________________________________________ We have projects of exactly the same nature in French, German, Spanish and Portuguese. If you wish to receive two weekly stories for free in any of these languages, you can reply to this email expressing the one(s) of your preference. - French - Histoires à faire rêver - German - Mit Geschichten groß werden - Spanish - Cuentos para Crecer - Portuguese - Abrir as portas ao sonho e à reflexão _____________________________________ This week’s stories with PDF attachments: - The trouble tree - This is our house _____________________________________ The trouble tree   The carpenter I hired to help me restore an old farmhouse had just finished a rough first day on the job. A flat tire made him lose an hour of work, his electric saw quit, and now his ancient pickup truck refused to start. While I drove him home, he sat in stony silence.   On arriving, he invited me in to meet his family. As we walked toward the front door, he paused briefly at a small tree, touching the tips of the branches with both hands. When opening the door he underwent an amazing transformation. His tanned face was wreathed in smiles and he hugged his two small children and gave his wife a kiss. Afterward he walked me to the car. We passed the tree and my curiosity got the better of me. I asked him about what I had seen him do earlier. “Oh, that’s my trouble tree,” he replied. “I know I can’t help having troubles on the job, but one thing’s for sure, troubles don’t belong in the house with my wife and the children. So I just hang them on the tree every night when I come home. Then in the morning I pick them up again.” He paused. “Funny thing is,” he smiled, “when I come out in the morning to pick them up, there aren’t nearly as many as I remember hanging up the night before.”     Author unknown _____________________________________ This Is Our House   George was in the house. “This house is mine and no one else is coming in,” George said. “It’s not your house, George,” said Lindy. “It belongs to everybody.” “No, it doesn’t,” said George. “This house is all for me!” Lindy and Marly went for a walk over to the swings. “It’s not George’s house, is it?” said Lindy. “Of course it isn’t,” said Marly. Lindy and Marly looked in the window. “It’s not your house, George, and we’re coming in.” “Oh no, you’re not,” said George. “This house isn’t for girls.” Freddie was walking past with Rabbity. “I’ve come to put Rabbity to bed,” said Freddie. “You can’t,” said George. “This house isn’t for small people like you.” Freddie took Rabbity for a ride in the car. Charlene and Marlene fixed the front wheel. “George won’t let me and Rabbity in the house,” said Freddie. Charlene and Marlene, Freddie and Rabbity headed straight for the house.  “Stop right there,” said George. “We’re coming in to fix the fridge,” said Charlene and Marlene. “Oh, no you’re not,” said George. “This house isn’t for twins.” Luther’s jumbo jet landed in the house. He went to get it. “Where do you think you’re going?” said George. “Flight 505 has crashed,” said Luther, “and I’m coming in for the rescue. Fire! Fire! Wee-oo-wee-oo-wee-oo!” “You’re not coming in here,” said George. Luther radioded for help. “Calling Dr. Sophie. Calling Dr. Sophie.” “Can I help you?” said Sophie. “We can’t get at the plane, Doctor,” said Luther. “Leave it to me,” said Sophie. Sophie and Luther pushed through the crowd. “Make way for the doctor,” said Luther. “We’re coming in,” said Sophie. “Oh, no you’re not,” said George. “This house isn’t for people with glasses.” Rasheda had a plan. “I’m going to tunnel in.” She poked her head under the house. “Go away,” said George. “This is my house.” “Well, this is my tunnel,” said Rasheda. “Well, tunnel somewhere else,” said George. “This house isn’t for people who like tunnels.” It was getting very noisy around the house now. And hot. And George wanted to go to the bathroom. “I’m going to leave my house now,” said George. “AND NO ONE CAN GO IN IT WHEN I’M GONE.” George went to the bathroom. Lindy, Marly, Freddie, Rabbity, Marlene, Charlene, Luther, Sophie, and Rasheda went straight into the house. George came back. There was no room for George. “This house isn’t for people with red hair,” said Charlene. George started to shout. George started to cry. George started to stamp his feet and kick the wall. The he stopped. He looked. “This house IS for people with red hair,” said George, “… and for girls and small people and twins, and for people who wear glasses and like tunnels!” “Because…” shouted Lindy, Marly, Freddie, Marlene, Charlene, Luther, Sophie, and Rasheda, “THIS HOUSE IS FOR EVERYONE!”   Michael Rosen; Bob Graham This is our house Massachusetts, Candlewick Press, 2005 _________________________________________ stories4ev@gmail.com as@talestogrow.com   You can visit our Facebook and Blog where you can find more interesting stories about several different topics. Joy of Reading – stories on the Blog Stories for Everyone – stories on Facebook   If you wish to remove your email from our mailling list please click Here.      From owner-svn-src-head@freebsd.org Wed May 9 11:59:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 552DBFB549F; Wed, 9 May 2018 11:59:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 05ECE6FB66; Wed, 9 May 2018 11:59:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D6D4F11238; Wed, 9 May 2018 11:59:25 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49BxPY9006680; Wed, 9 May 2018 11:59:25 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49BxOid006671; Wed, 9 May 2018 11:59:24 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201805091159.w49BxOid006671@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Wed, 9 May 2018 11:59:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333403 - in head: sbin/ipfw sys/modules/ipfw_nat64 sys/netpfil/ipfw/nat64 X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: in head: sbin/ipfw sys/modules/ipfw_nat64 sys/netpfil/ipfw/nat64 X-SVN-Commit-Revision: 333403 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 11:59:26 -0000 Author: ae Date: Wed May 9 11:59:24 2018 New Revision: 333403 URL: https://svnweb.freebsd.org/changeset/base/333403 Log: Bring in some last changes in NAT64 implementation: o Modify ipfw(8) to be able set any prefix6 not just Well-Known, and also show configured prefix6; o relocate some definitions and macros into proper place; o convert nat64_debug and nat64_allow_private variables to be VNET-compatible; o add struct nat64_config that keeps generic configuration needed to NAT64 code; o add nat64_check_prefix6() function to check validness of specified by user IPv6 prefix according to RFC6052; o use nat64_check_private_ip4() and nat64_embed_ip4() functions instead of nat64_get_ip4() and nat64_set_ip4() macros. This allows to use any configured IPv6 prefixes that are allowed by RFC6052; o introduce NAT64_WKPFX flag, that is set when IPv6 prefix is Well-Known IPv6 prefix. It is used to reduce overhead to check this; o modify nat64lsn_cfg and nat64stl_cfg structures to use nat64_config structure. And respectivelly modify the rest of code; o remove now unused ro argument from nat64_output() function; o remove __FreeBSD_version ifdef, NAT64 was not merged to older versions; o add commented -DIPFIREWALL_NAT64_DIRECT_OUTPUT flag to module's Makefile as example. Obtained from: Yandex LLC MFC after: 1 month Sponsored by: Yandex LLC Modified: head/sbin/ipfw/ipfw2.h head/sbin/ipfw/nat64lsn.c head/sbin/ipfw/nat64stl.c head/sys/modules/ipfw_nat64/Makefile head/sys/netpfil/ipfw/nat64/ip_fw_nat64.c head/sys/netpfil/ipfw/nat64/ip_fw_nat64.h head/sys/netpfil/ipfw/nat64/nat64_translate.c head/sys/netpfil/ipfw/nat64/nat64_translate.h head/sys/netpfil/ipfw/nat64/nat64lsn.c head/sys/netpfil/ipfw/nat64/nat64lsn.h head/sys/netpfil/ipfw/nat64/nat64lsn_control.c head/sys/netpfil/ipfw/nat64/nat64stl.c head/sys/netpfil/ipfw/nat64/nat64stl.h head/sys/netpfil/ipfw/nat64/nat64stl_control.c Modified: head/sbin/ipfw/ipfw2.h ============================================================================== --- head/sbin/ipfw/ipfw2.h Wed May 9 11:47:05 2018 (r333402) +++ head/sbin/ipfw/ipfw2.h Wed May 9 11:59:24 2018 (r333403) @@ -384,6 +384,7 @@ void ipfw_nat64lsn_handler(int ac, char *av[]); void ipfw_nat64stl_handler(int ac, char *av[]); void ipfw_nptv6_handler(int ac, char *av[]); int ipfw_check_object_name(const char *name); +int ipfw_check_nat64prefix(const struct in6_addr *prefix, int length); #ifdef PF /* altq.c */ Modified: head/sbin/ipfw/nat64lsn.c ============================================================================== --- head/sbin/ipfw/nat64lsn.c Wed May 9 11:47:05 2018 (r333402) +++ head/sbin/ipfw/nat64lsn.c Wed May 9 11:59:24 2018 (r333403) @@ -428,13 +428,17 @@ nat64lsn_create(const char *name, uint8_t set, int ac, flags |= NAT64LSN_HAS_PREFIX4; ac--; av++; break; -#if 0 case TOK_PREFIX6: NEED1("IPv6 prefix required"); nat64lsn_parse_prefix(*av, AF_INET6, &cfg->prefix6, &cfg->plen6); + if (ipfw_check_nat64prefix(&cfg->prefix6, + cfg->plen6) != 0) + errx(EX_USAGE, "Bad prefix6 %s", *av); + ac--; av++; break; +#if 0 case TOK_AGG_LEN: NEED1("Aggregation prefix len required"); cfg->agg_prefix_len = nat64lsn_parse_int(*av, opt); @@ -767,10 +771,10 @@ nat64lsn_show_cb(ipfw_nat64lsn_cfg *cfg, const char *n if (co.use_set != 0 || cfg->set != 0) printf("set %u ", cfg->set); inet_ntop(AF_INET, &cfg->prefix4, abuf, sizeof(abuf)); - printf("nat64lsn %s prefix4 %s/%u ", cfg->name, abuf, cfg->plen4); -#if 0 + printf("nat64lsn %s prefix4 %s/%u", cfg->name, abuf, cfg->plen4); inet_ntop(AF_INET6, &cfg->prefix6, abuf, sizeof(abuf)); - printf("prefix6 %s/%u", abuf, cfg->plen6); + printf(" prefix6 %s/%u", abuf, cfg->plen6); +#if 0 printf("agg_len %u agg_count %u ", cfg->agg_prefix_len, cfg->agg_prefix_max); if (cfg->min_port != NAT64LSN_PORT_MIN || Modified: head/sbin/ipfw/nat64stl.c ============================================================================== --- head/sbin/ipfw/nat64stl.c Wed May 9 11:47:05 2018 (r333402) +++ head/sbin/ipfw/nat64stl.c Wed May 9 11:59:24 2018 (r333403) @@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$"); #include #include -static int nat64stl_check_prefix(struct in6_addr *prefix, int length); typedef int (nat64stl_cb_t)(ipfw_nat64stl_cfg *i, const char *name, uint8_t set); static int nat64stl_foreach(nat64stl_cb_t *f, const char *name, uint8_t set, @@ -80,13 +79,10 @@ static struct _s_x nat64cmds[] = { ((a)->__u6_addr.__u6_addr32[0] == IPV6_ADDR_INT32_WKPFX && \ (a)->__u6_addr.__u6_addr32[1] == 0 && \ (a)->__u6_addr.__u6_addr32[2] == 0) -static int -nat64stl_check_prefix(struct in6_addr *prefix, int length) +int +ipfw_check_nat64prefix(const struct in6_addr *prefix, int length) { - if (IN6_IS_ADDR_WKPFX(prefix) && length == 96) - return (0); -#if 0 switch (length) { case 32: case 40: @@ -95,21 +91,20 @@ nat64stl_check_prefix(struct in6_addr *prefix, int len case 64: /* Well-known prefix has 96 prefix length */ if (IN6_IS_ADDR_WKPFX(prefix)) - return (1); + return (EINVAL); /* FALLTHROUGH */ case 96: /* Bits 64 to 71 must be set to zero */ if (prefix->__u6_addr.__u6_addr8[8] != 0) - return (1); + return (EINVAL); /* XXX: looks incorrect */ if (IN6_IS_ADDR_MULTICAST(prefix) || IN6_IS_ADDR_UNSPECIFIED(prefix) || IN6_IS_ADDR_LOOPBACK(prefix)) - return (1); + return (EINVAL); return (0); } -#endif - return (1); + return (EINVAL); } static struct _s_x nat64statscmds[] = { @@ -255,7 +250,7 @@ nat64stl_create(const char *name, uint8_t set, int ac, errx(EX_USAGE, "Bad prefix: %s", *av); cfg->plen6 = strtol(p, NULL, 10); - if (nat64stl_check_prefix(&cfg->prefix6, + if (ipfw_check_nat64prefix(&cfg->prefix6, cfg->plen6) != 0) errx(EX_USAGE, "Bad prefix length: %s", p); @@ -439,6 +434,7 @@ nat64stl_reset_stats(const char *name, uint8_t set) static int nat64stl_show_cb(ipfw_nat64stl_cfg *cfg, const char *name, uint8_t set) { + char abuf[INET6_ADDRSTRLEN]; if (name != NULL && strcmp(cfg->name, name) != 0) return (ESRCH); @@ -448,8 +444,11 @@ nat64stl_show_cb(ipfw_nat64stl_cfg *cfg, const char *n if (co.use_set != 0 || cfg->set != 0) printf("set %u ", cfg->set); + printf("nat64stl %s table4 %s table6 %s", cfg->name, cfg->ntlv4.name, cfg->ntlv6.name); + inet_ntop(AF_INET6, &cfg->prefix6, abuf, sizeof(abuf)); + printf(" prefix6 %s/%u", abuf, cfg->plen6); if (cfg->flags & NAT64_LOG) printf(" log"); printf("\n"); Modified: head/sys/modules/ipfw_nat64/Makefile ============================================================================== --- head/sys/modules/ipfw_nat64/Makefile Wed May 9 11:47:05 2018 (r333402) +++ head/sys/modules/ipfw_nat64/Makefile Wed May 9 11:59:24 2018 (r333403) @@ -8,4 +8,6 @@ SRCS+= nat64lsn.c nat64lsn_control.c SRCS+= nat64stl.c nat64stl_control.c SRCS+= opt_ipfw.h +#CFLAGS+= -DIPFIREWALL_NAT64_DIRECT_OUTPUT + .include Modified: head/sys/netpfil/ipfw/nat64/ip_fw_nat64.c ============================================================================== --- head/sys/netpfil/ipfw/nat64/ip_fw_nat64.c Wed May 9 11:47:05 2018 (r333402) +++ head/sys/netpfil/ipfw/nat64/ip_fw_nat64.c Wed May 9 11:59:24 2018 (r333403) @@ -1,6 +1,6 @@ /*- - * Copyright (c) 2015-2016 Yandex LLC - * Copyright (c) 2015-2016 Andrey V. Elsukov + * Copyright (c) 2015-2018 Yandex LLC + * Copyright (c) 2015-2018 Andrey V. Elsukov * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -46,18 +46,17 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include +#include "ip_fw_nat64.h" -int nat64_debug = 0; -SYSCTL_DECL(_net_inet_ip_fw); -SYSCTL_INT(_net_inet_ip_fw, OID_AUTO, nat64_debug, CTLFLAG_RW, - &nat64_debug, 0, "Debug level for NAT64 module"); +VNET_DEFINE(int, nat64_debug) = 0; +VNET_DEFINE(int, nat64_allow_private) = 0; -int nat64_allow_private = 0; -SYSCTL_INT(_net_inet_ip_fw, OID_AUTO, nat64_allow_private, CTLFLAG_RW, - &nat64_allow_private, 0, +SYSCTL_DECL(_net_inet_ip_fw); +SYSCTL_INT(_net_inet_ip_fw, OID_AUTO, nat64_debug, CTLFLAG_VNET | CTLFLAG_RW, + &VNET_NAME(nat64_debug), 0, "Debug level for NAT64 module"); +SYSCTL_INT(_net_inet_ip_fw, OID_AUTO, nat64_allow_private, + CTLFLAG_VNET |CTLFLAG_RW, &VNET_NAME(nat64_allow_private), 0, "Allow use of non-global IPv4 addresses with NAT64"); static int Modified: head/sys/netpfil/ipfw/nat64/ip_fw_nat64.h ============================================================================== --- head/sys/netpfil/ipfw/nat64/ip_fw_nat64.h Wed May 9 11:47:05 2018 (r333402) +++ head/sys/netpfil/ipfw/nat64/ip_fw_nat64.h Wed May 9 11:59:24 2018 (r333403) @@ -1,6 +1,6 @@ /*- - * Copyright (c) 2015-2016 Yandex LLC - * Copyright (c) 2015-2016 Andrey V. Elsukov + * Copyright (c) 2015-2018 Yandex LLC + * Copyright (c) 2015-2018 Andrey V. Elsukov * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,7 +31,7 @@ #define _IP_FW_NAT64_H_ #define DPRINTF(mask, fmt, ...) \ - if (nat64_debug & (mask)) \ + if (V_nat64_debug & (mask)) \ printf("NAT64: %s: " fmt "\n", __func__, ## __VA_ARGS__) #define DP_GENERIC 0x0001 #define DP_OBJ 0x0002 @@ -39,79 +39,21 @@ #define DP_STATE 0x0008 #define DP_DROPS 0x0010 #define DP_ALL 0xFFFF -extern int nat64_debug; +VNET_DECLARE(int, nat64_debug); +VNET_DECLARE(int, nat64_allow_private); +#define V_nat64_debug VNET(nat64_debug) +#define V_nat64_allow_private VNET(nat64_allow_private) + #if 0 #define NAT64NOINLINE __noinline #else #define NAT64NOINLINE #endif -int nat64stl_init(struct ip_fw_chain *ch, int first); -void nat64stl_uninit(struct ip_fw_chain *ch, int last); -int nat64lsn_init(struct ip_fw_chain *ch, int first); -void nat64lsn_uninit(struct ip_fw_chain *ch, int last); +int nat64stl_init(struct ip_fw_chain *ch, int first); +void nat64stl_uninit(struct ip_fw_chain *ch, int last); +int nat64lsn_init(struct ip_fw_chain *ch, int first); +void nat64lsn_uninit(struct ip_fw_chain *ch, int last); -struct ip_fw_nat64_stats { - counter_u64_t opcnt64; /* 6to4 of packets translated */ - counter_u64_t opcnt46; /* 4to6 of packets translated */ - counter_u64_t ofrags; /* number of fragments generated */ - counter_u64_t ifrags; /* number of fragments received */ - counter_u64_t oerrors; /* number of output errors */ - counter_u64_t noroute4; - counter_u64_t noroute6; - counter_u64_t nomatch4; /* No addr/port match */ - counter_u64_t noproto; /* Protocol not supported */ - counter_u64_t nomem; /* mbufs allocation failed */ - counter_u64_t dropped; /* number of packets silently - * dropped due to some errors/ - * unsupported/etc. - */ - - counter_u64_t jrequests; /* number of jobs requests queued */ - counter_u64_t jcalls; /* number of jobs handler calls */ - counter_u64_t jhostsreq; /* number of hosts requests */ - counter_u64_t jportreq; - counter_u64_t jhostfails; - counter_u64_t jportfails; - counter_u64_t jmaxlen; - counter_u64_t jnomem; - counter_u64_t jreinjected; - - counter_u64_t screated; - counter_u64_t sdeleted; - counter_u64_t spgcreated; - counter_u64_t spgdeleted; -}; - -#define IPFW_NAT64_VERSION 1 -#define NAT64STATS (sizeof(struct ip_fw_nat64_stats) / sizeof(uint64_t)) -typedef struct _nat64_stats_block { - counter_u64_t stats[NAT64STATS]; -} nat64_stats_block; -#define NAT64STAT_ADD(s, f, v) \ - counter_u64_add((s)->stats[ \ - offsetof(struct ip_fw_nat64_stats, f) / sizeof(uint64_t)], (v)) -#define NAT64STAT_INC(s, f) NAT64STAT_ADD(s, f, 1) -#define NAT64STAT_FETCH(s, f) \ - counter_u64_fetch((s)->stats[ \ - offsetof(struct ip_fw_nat64_stats, f) / sizeof(uint64_t)]) - -#define L3HDR(_ip, _t) ((_t)((u_int32_t *)(_ip) + (_ip)->ip_hl)) -#define TCP(p) ((struct tcphdr *)(p)) -#define UDP(p) ((struct udphdr *)(p)) -#define ICMP(p) ((struct icmphdr *)(p)) -#define ICMP6(p) ((struct icmp6_hdr *)(p)) - -#define NAT64SKIP 0 -#define NAT64RETURN 1 -#define NAT64MFREE -1 - -/* Well-known prefix 64:ff9b::/96 */ -#define IPV6_ADDR_INT32_WKPFX htonl(0x64ff9b) -#define IN6_IS_ADDR_WKPFX(a) \ - ((a)->s6_addr32[0] == IPV6_ADDR_INT32_WKPFX && \ - (a)->s6_addr32[1] == 0 && (a)->s6_addr32[2] == 0) - -#endif - +#endif /* _IP_FW_NAT64_H_ */ Modified: head/sys/netpfil/ipfw/nat64/nat64_translate.c ============================================================================== --- head/sys/netpfil/ipfw/nat64/nat64_translate.c Wed May 9 11:47:05 2018 (r333402) +++ head/sys/netpfil/ipfw/nat64/nat64_translate.c Wed May 9 11:59:24 2018 (r333403) @@ -1,6 +1,6 @@ /*- - * Copyright (c) 2015-2016 Yandex LLC - * Copyright (c) 2015-2016 Andrey V. Elsukov + * Copyright (c) 2015-2018 Yandex LLC + * Copyright (c) 2015-2018 Andrey V. Elsukov * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -66,10 +66,11 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include #include +#include "ip_fw_nat64.h" +#include "nat64_translate.h" + static void nat64_log(struct pfloghdr *logdata, struct mbuf *m, sa_family_t family) { @@ -86,22 +87,21 @@ static NAT64NOINLINE int nat64_find_route6(struct nhop struct sockaddr_in6 *, struct mbuf *); static NAT64NOINLINE int -nat64_output(struct ifnet *ifp, struct mbuf *m, - struct sockaddr *dst, struct route *ro, nat64_stats_block *stats, - void *logdata) +nat64_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, + struct nat64_counters *stats, void *logdata) { int error; if (logdata != NULL) nat64_log(logdata, m, dst->sa_family); - error = (*ifp->if_output)(ifp, m, dst, ro); + error = (*ifp->if_output)(ifp, m, dst, NULL); if (error != 0) NAT64STAT_INC(stats, oerrors); return (error); } static NAT64NOINLINE int -nat64_output_one(struct mbuf *m, nat64_stats_block *stats, void *logdata) +nat64_output_one(struct mbuf *m, struct nat64_counters *stats, void *logdata) { struct nhop6_basic nh6; struct nhop4_basic nh4; @@ -155,9 +155,8 @@ nat64_output_one(struct mbuf *m, nat64_stats_block *st } #else /* !IPFIREWALL_NAT64_DIRECT_OUTPUT */ static NAT64NOINLINE int -nat64_output(struct ifnet *ifp, struct mbuf *m, - struct sockaddr *dst, struct route *ro, nat64_stats_block *stats, - void *logdata) +nat64_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, + struct nat64_counters *stats, void *logdata) { struct ip *ip4; int ret, af; @@ -187,50 +186,103 @@ nat64_output(struct ifnet *ifp, struct mbuf *m, } static NAT64NOINLINE int -nat64_output_one(struct mbuf *m, nat64_stats_block *stats, void *logdata) +nat64_output_one(struct mbuf *m, struct nat64_counters *stats, void *logdata) { - return (nat64_output(NULL, m, NULL, NULL, stats, logdata)); + return (nat64_output(NULL, m, NULL, stats, logdata)); } #endif /* !IPFIREWALL_NAT64_DIRECT_OUTPUT */ +/* + * Check the given IPv6 prefix and length according to RFC6052: + * The prefixes can only have one of the following lengths: + * 32, 40, 48, 56, 64, or 96 (The Well-Known Prefix is 96 bits long). + * Returns zero on success, otherwise EINVAL. + */ +int +nat64_check_prefix6(const struct in6_addr *prefix, int length) +{ -#if 0 -void print_ipv6_header(struct ip6_hdr *ip6, char *buf, size_t bufsize); + switch (length) { + case 32: + case 40: + case 48: + case 56: + case 64: + /* Well-known prefix has 96 prefix length */ + if (IN6_IS_ADDR_WKPFX(prefix)) + return (EINVAL); + /* FALLTHROUGH */ + case 96: + /* Bits 64 to 71 must be set to zero */ + if (prefix->__u6_addr.__u6_addr8[8] != 0) + return (EINVAL); + /* Some extra checks */ + if (IN6_IS_ADDR_MULTICAST(prefix) || + IN6_IS_ADDR_UNSPECIFIED(prefix) || + IN6_IS_ADDR_LOOPBACK(prefix)) + return (EINVAL); + return (0); + } + return (EINVAL); +} -void -print_ipv6_header(struct ip6_hdr *ip6, char *buf, size_t bufsize) +int +nat64_check_private_ip4(const struct nat64_config *cfg, in_addr_t ia) { - char sbuf[INET6_ADDRSTRLEN], dbuf[INET6_ADDRSTRLEN]; - inet_ntop(AF_INET6, &ip6->ip6_src, sbuf, sizeof(sbuf)); - inet_ntop(AF_INET6, &ip6->ip6_dst, dbuf, sizeof(dbuf)); - snprintf(buf, bufsize, "%s -> %s %d", sbuf, dbuf, ip6->ip6_nxt); + if (V_nat64_allow_private) + return (0); + + /* WKPFX must not be used to represent non-global IPv4 addresses */ + if (cfg->flags & NAT64_WKPFX) { + /* IN_PRIVATE */ + if ((ia & htonl(0xff000000)) == htonl(0x0a000000) || + (ia & htonl(0xfff00000)) == htonl(0xac100000) || + (ia & htonl(0xffff0000)) == htonl(0xc0a80000)) + return (1); + /* + * RFC 5735: + * 192.0.0.0/24 - reserved for IETF protocol assignments + * 192.88.99.0/24 - for use as 6to4 relay anycast addresses + * 198.18.0.0/15 - for use in benchmark tests + * 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 - for use + * in documentation and example code + */ + if ((ia & htonl(0xffffff00)) == htonl(0xc0000000) || + (ia & htonl(0xffffff00)) == htonl(0xc0586300) || + (ia & htonl(0xfffffe00)) == htonl(0xc6120000) || + (ia & htonl(0xffffff00)) == htonl(0xc0000200) || + (ia & htonl(0xfffffe00)) == htonl(0xc6336400) || + (ia & htonl(0xffffff00)) == htonl(0xcb007100)) + return (1); + } + return (0); } - -static NAT64NOINLINE int -nat64_embed_ip4(struct nat64_cfg *cfg, in_addr_t ia, struct in6_addr *ip6) +void +nat64_embed_ip4(const struct nat64_config *cfg, in_addr_t ia, + struct in6_addr *ip6) { - /* assume the prefix is properly filled with zeros */ - bcopy(&cfg->prefix, ip6, sizeof(*ip6)); - switch (cfg->plen) { + /* assume the prefix6 is properly filled with zeros */ + bcopy(&cfg->prefix6, ip6, sizeof(*ip6)); + switch (cfg->plen6) { case 32: case 96: - ip6->s6_addr32[cfg->plen / 32] = ia; + ip6->s6_addr32[cfg->plen6 / 32] = ia; break; case 40: case 48: case 56: #if BYTE_ORDER == BIG_ENDIAN - ip6->s6_addr32[1] = cfg->prefix.s6_addr32[1] | - (ia >> (cfg->plen % 32)); - ip6->s6_addr32[2] = ia << (24 - cfg->plen % 32); + ip6->s6_addr32[1] = cfg->prefix6.s6_addr32[1] | + (ia >> (cfg->plen6 % 32)); + ip6->s6_addr32[2] = ia << (24 - cfg->plen6 % 32); #elif BYTE_ORDER == LITTLE_ENDIAN - ip6->s6_addr32[1] = cfg->prefix.s6_addr32[1] | - (ia << (cfg->plen % 32)); - ip6->s6_addr32[2] = ia >> (24 - cfg->plen % 32); + ip6->s6_addr32[1] = cfg->prefix6.s6_addr32[1] | + (ia << (cfg->plen6 % 32)); + ip6->s6_addr32[2] = ia >> (24 - cfg->plen6 % 32); #endif break; case 64: @@ -243,14 +295,13 @@ nat64_embed_ip4(struct nat64_cfg *cfg, in_addr_t ia, s #endif break; default: - return (0); + panic("Wrong plen6"); }; ip6->s6_addr8[8] = 0; - return (1); } -static NAT64NOINLINE in_addr_t -nat64_extract_ip4(struct in6_addr *ip6, int plen) +in_addr_t +nat64_extract_ip4(const struct nat64_config *cfg, const struct in6_addr *ip6) { in_addr_t ia; @@ -261,7 +312,7 @@ nat64_extract_ip4(struct in6_addr *ip6, int plen) * The suffix bits are reserved for future extensions and SHOULD * be set to zero. */ - switch (plen) { + switch (cfg->plen6) { case 32: if (ip6->s6_addr32[3] != 0 || ip6->s6_addr32[2] != 0) goto badip6; @@ -285,20 +336,20 @@ nat64_extract_ip4(struct in6_addr *ip6, int plen) (ip6->s6_addr32[3] & htonl(0x00ffffff)) != 0) goto badip6; }; - switch (plen) { + switch (cfg->plen6) { case 32: case 96: - ia = ip6->s6_addr32[plen / 32]; + ia = ip6->s6_addr32[cfg->plen6 / 32]; break; case 40: case 48: case 56: #if BYTE_ORDER == BIG_ENDIAN - ia = (ip6->s6_addr32[1] << (plen % 32)) | - (ip6->s6_addr32[2] >> (24 - plen % 32)); + ia = (ip6->s6_addr32[1] << (cfg->plen6 % 32)) | + (ip6->s6_addr32[2] >> (24 - cfg->plen6 % 32)); #elif BYTE_ORDER == LITTLE_ENDIAN - ia = (ip6->s6_addr32[1] >> (plen % 32)) | - (ip6->s6_addr32[2] << (24 - plen % 32)); + ia = (ip6->s6_addr32[1] >> (cfg->plen6 % 32)) | + (ip6->s6_addr32[2] << (24 - cfg->plen6 % 32)); #endif break; case 64: @@ -312,18 +363,18 @@ nat64_extract_ip4(struct in6_addr *ip6, int plen) return (0); }; if (nat64_check_ip4(ia) != 0 || - nat64_check_private_ip4(ia) != 0) + nat64_check_private_ip4(cfg, ia) != 0) goto badip4; return (ia); badip4: - DPRINTF(DP_GENERIC, "invalid destination address: %08x", ia); + DPRINTF(DP_GENERIC | DP_DROPS, + "invalid destination address: %08x", ia); return (0); badip6: - DPRINTF(DP_GENERIC, "invalid IPv4-embedded IPv6 address"); + DPRINTF(DP_GENERIC | DP_DROPS, "invalid IPv4-embedded IPv6 address"); return (0); } -#endif /* * According to RFC 1624 the equation for incremental checksum update is: @@ -363,9 +414,6 @@ nat64_cksum_convert(struct ip6_hdr *ip6, struct ip *ip return (sum); } -#if __FreeBSD_version < 1100000 -#define ip_fillid(ip) (ip)->ip_id = ip_newid() -#endif static NAT64NOINLINE void nat64_init_ip4hdr(const struct ip6_hdr *ip6, const struct ip6_frag *frag, uint16_t plen, uint8_t proto, struct ip *ip) @@ -397,8 +445,9 @@ nat64_init_ip4hdr(const struct ip6_hdr *ip6, const str #define FRAGSZ(mtu) ((mtu) - sizeof(struct ip6_hdr) - sizeof(struct ip6_frag)) static NAT64NOINLINE int -nat64_fragment6(nat64_stats_block *stats, struct ip6_hdr *ip6, struct mbufq *mq, - struct mbuf *m, uint32_t mtu, uint16_t ip_id, uint16_t ip_off) +nat64_fragment6(struct nat64_counters *stats, struct ip6_hdr *ip6, + struct mbufq *mq, struct mbuf *m, uint32_t mtu, uint16_t ip_id, + uint16_t ip_off) { struct ip6_frag ip6f; struct mbuf *n; @@ -510,7 +559,7 @@ nat64_find_route6(struct nhop6_basic *pnh, struct sock #define NAT64_ICMP6_PLEN 64 static NAT64NOINLINE void nat64_icmp6_reflect(struct mbuf *m, uint8_t type, uint8_t code, uint32_t mtu, - nat64_stats_block *stats, void *logdata) + struct nat64_counters *stats, void *logdata) { struct icmp6_hdr *icmp6; struct ip6_hdr *ip6, *oip6; @@ -625,7 +674,7 @@ nat64_find_route4(struct nhop4_basic *pnh, struct sock #define NAT64_ICMP_PLEN 64 static NAT64NOINLINE void nat64_icmp_reflect(struct mbuf *m, uint8_t type, - uint8_t code, uint16_t mtu, nat64_stats_block *stats, void *logdata) + uint8_t code, uint16_t mtu, struct nat64_counters *stats, void *logdata) { struct icmp *icmp; struct ip *ip, *oip; @@ -734,7 +783,7 @@ nat64_icmp_handle_echo(struct ip6_hdr *ip6, struct icm static NAT64NOINLINE struct mbuf * nat64_icmp_translate(struct mbuf *m, struct ip6_hdr *ip6, uint16_t icmpid, - int offset, nat64_stats_block *stats) + int offset, struct nat64_config *cfg) { struct ip ip; struct icmp *icmp; @@ -749,7 +798,7 @@ nat64_icmp_translate(struct mbuf *m, struct ip6_hdr *i if (m->m_len < offset + ICMP_MINLEN) m = m_pullup(m, offset + ICMP_MINLEN); if (m == NULL) { - NAT64STAT_INC(stats, nomem); + NAT64STAT_INC(&cfg->stats, nomem); return (m); } mtu = 0; @@ -889,8 +938,8 @@ nat64_icmp_translate(struct mbuf *m, struct ip6_hdr *i hlen += ip.ip_hl << 2; /* Skip inner IP header */ if (nat64_check_ip4(ip.ip_src.s_addr) != 0 || nat64_check_ip4(ip.ip_dst.s_addr) != 0 || - nat64_check_private_ip4(ip.ip_src.s_addr) != 0 || - nat64_check_private_ip4(ip.ip_dst.s_addr) != 0) { + nat64_check_private_ip4(cfg, ip.ip_src.s_addr) != 0 || + nat64_check_private_ip4(cfg, ip.ip_dst.s_addr) != 0) { DPRINTF(DP_DROPS, "IP addresses checks failed %04x -> %04x", ntohl(ip.ip_src.s_addr), ntohl(ip.ip_dst.s_addr)); goto freeit; @@ -925,7 +974,7 @@ nat64_icmp_translate(struct mbuf *m, struct ip6_hdr *i plen = sizeof(struct icmp6_hdr) + sizeof(struct ip6_hdr) + len; n = m_get2(offset + plen + max_hdr, M_NOWAIT, MT_HEADER, M_PKTHDR); if (n == NULL) { - NAT64STAT_INC(stats, nomem); + NAT64STAT_INC(&cfg->stats, nomem); m_freem(m); return (NULL); } @@ -939,7 +988,7 @@ nat64_icmp_translate(struct mbuf *m, struct ip6_hdr *i eip6->ip6_src = ip6->ip6_dst; /* Use the fact that we have single /96 prefix for IPv4 map */ eip6->ip6_dst = ip6->ip6_src; - nat64_set_ip4(&eip6->ip6_dst, ip.ip_dst.s_addr); + nat64_embed_ip4(cfg, ip.ip_dst.s_addr, &eip6->ip6_dst); eip6->ip6_flow = htonl(ip.ip_tos << 20); eip6->ip6_vfc |= IPV6_VERSION; @@ -1009,7 +1058,7 @@ nat64_icmp_translate(struct mbuf *m, struct ip6_hdr *i return (n); freeit: m_freem(m); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NULL); } @@ -1057,7 +1106,7 @@ nat64_getlasthdr(struct mbuf *m, int *offset) int nat64_do_handle_ip4(struct mbuf *m, struct in6_addr *saddr, - struct in6_addr *daddr, uint16_t lport, nat64_stats_block *stats, + struct in6_addr *daddr, uint16_t lport, struct nat64_config *cfg, void *logdata) { struct nhop6_basic nh; @@ -1074,7 +1123,7 @@ nat64_do_handle_ip4(struct mbuf *m, struct in6_addr *s if (ip->ip_ttl <= IPTTLDEC) { nat64_icmp_reflect(m, ICMP_TIMXCEED, - ICMP_TIMXCEED_INTRANS, 0, stats, logdata); + ICMP_TIMXCEED_INTRANS, 0, &cfg->stats, logdata); return (NAT64RETURN); } @@ -1092,27 +1141,27 @@ nat64_do_handle_ip4(struct mbuf *m, struct in6_addr *s /* Fragment length must be multiple of 8 octets */ if ((ip->ip_off & htons(IP_MF)) != 0 && (plen & 0x7) != 0) { nat64_icmp_reflect(m, ICMP_PARAMPROB, - ICMP_PARAMPROB_LENGTH, 0, stats, logdata); + ICMP_PARAMPROB_LENGTH, 0, &cfg->stats, logdata); return (NAT64RETURN); } /* Fragmented ICMP is unsupported */ if (proto == IPPROTO_ICMP && ip_off != 0) { DPRINTF(DP_DROPS, "dropped due to fragmented ICMP"); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } dst.sin6_addr = ip6.ip6_dst; if (nat64_find_route6(&nh, &dst, m) != 0) { - NAT64STAT_INC(stats, noroute6); + NAT64STAT_INC(&cfg->stats, noroute6); nat64_icmp_reflect(m, ICMP_UNREACH, ICMP_UNREACH_HOST, 0, - stats, logdata); + &cfg->stats, logdata); return (NAT64RETURN); } if (nh.nh_mtu < plen + sizeof(ip6) && (ip->ip_off & htons(IP_DF)) != 0) { nat64_icmp_reflect(m, ICMP_UNREACH, ICMP_UNREACH_NEEDFRAG, - FRAGSZ(nh.nh_mtu) + sizeof(struct ip), stats, logdata); + FRAGSZ(nh.nh_mtu) + sizeof(struct ip), &cfg->stats, logdata); return (NAT64RETURN); } @@ -1147,19 +1196,19 @@ nat64_do_handle_ip4(struct mbuf *m, struct in6_addr *s *csum = cksum_add(*csum, ~nat64_cksum_convert(&ip6, ip)); break; case IPPROTO_ICMP: - m = nat64_icmp_translate(m, &ip6, lport, hlen, stats); + m = nat64_icmp_translate(m, &ip6, lport, hlen, cfg); if (m == NULL) /* stats already accounted */ return (NAT64RETURN); } m_adj(m, hlen); mbufq_init(&mq, 255); - nat64_fragment6(stats, &ip6, &mq, m, nh.nh_mtu, ip_id, ip_off); + nat64_fragment6(&cfg->stats, &ip6, &mq, m, nh.nh_mtu, ip_id, ip_off); while ((m = mbufq_dequeue(&mq)) != NULL) { if (nat64_output(nh.nh_ifp, m, (struct sockaddr *)&dst, - NULL, stats, logdata) != 0) + &cfg->stats, logdata) != 0) break; - NAT64STAT_INC(stats, opcnt46); + NAT64STAT_INC(&cfg->stats, opcnt46); } mbufq_drain(&mq); return (NAT64RETURN); @@ -1167,7 +1216,7 @@ nat64_do_handle_ip4(struct mbuf *m, struct in6_addr *s int nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t aaddr, uint16_t aport, - nat64_stats_block *stats, void *logdata) + struct nat64_config *cfg, void *logdata) { struct ip ip; struct icmp6_hdr *icmp6; @@ -1187,7 +1236,7 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t if (proto != IPPROTO_ICMPV6) { DPRINTF(DP_DROPS, "dropped due to mbuf isn't contigious"); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } } @@ -1217,7 +1266,7 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t DPRINTF(DP_DROPS, "Unsupported ICMPv6 type %d," " code %d", icmp6->icmp6_type, icmp6->icmp6_code); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } break; @@ -1229,7 +1278,7 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t DPRINTF(DP_DROPS, "Wrong MTU %d in ICMPv6 type %d," " code %d", mtu, icmp6->icmp6_type, icmp6->icmp6_code); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } /* @@ -1274,7 +1323,7 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t DPRINTF(DP_DROPS, "Unsupported ICMPv6 type %d," " code %d, pptr %d", icmp6->icmp6_type, icmp6->icmp6_code, mtu); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } case ICMP6_PARAMPROB_NEXTHEADER: @@ -1285,20 +1334,20 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t DPRINTF(DP_DROPS, "Unsupported ICMPv6 type %d," " code %d, pptr %d", icmp6->icmp6_type, icmp6->icmp6_code, ntohl(icmp6->icmp6_pptr)); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } break; default: DPRINTF(DP_DROPS, "Unsupported ICMPv6 type %d, code %d", icmp6->icmp6_type, icmp6->icmp6_code); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } hlen += sizeof(struct icmp6_hdr); if (m->m_pkthdr.len < hlen + sizeof(struct ip6_hdr) + ICMP_MINLEN) { - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); DPRINTF(DP_DROPS, "Message is too short %d", m->m_pkthdr.len); return (NAT64MFREE); @@ -1325,7 +1374,7 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t if (m->m_len < hlen + sizeof(struct ip6_hdr) + ICMP_MINLEN) m = m_pullup(m, hlen + sizeof(struct ip6_hdr) + ICMP_MINLEN); if (m == NULL) { - NAT64STAT_INC(stats, nomem); + NAT64STAT_INC(&cfg->stats, nomem); return (NAT64RETURN); } ip6 = mtod(m, struct ip6_hdr *); @@ -1364,7 +1413,7 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t /* Now we need to make a fake IPv4 packet to generate ICMP message */ ip.ip_dst.s_addr = aaddr; - ip.ip_src.s_addr = nat64_get_ip4(&ip6i->ip6_src); + ip.ip_src.s_addr = nat64_extract_ip4(cfg, &ip6i->ip6_src); /* XXX: Make fake ulp header */ #ifdef IPFIREWALL_NAT64_DIRECT_OUTPUT ip6i->ip6_hlim += IPV6_HLIMDEC; /* init_ip4hdr will decrement it */ @@ -1372,7 +1421,8 @@ nat64_handle_icmp6(struct mbuf *m, int hlen, uint32_t nat64_init_ip4hdr(ip6i, ip6f, plen, proto, &ip); m_adj(m, hlen - sizeof(struct ip)); bcopy(&ip, mtod(m, void *), sizeof(ip)); - nat64_icmp_reflect(m, type, code, (uint16_t)mtu, stats, logdata); + nat64_icmp_reflect(m, type, code, (uint16_t)mtu, &cfg->stats, + logdata); return (NAT64RETURN); fail: /* @@ -1380,13 +1430,13 @@ fail: * changed with m_pullup(). */ m_freem(m); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64RETURN); } int nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, uint16_t aport, - nat64_stats_block *stats, void *logdata) + struct nat64_config *cfg, void *logdata) { struct ip ip; struct nhop4_basic nh; @@ -1411,21 +1461,21 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui /* Starting from this point we must not return zero */ ip.ip_src.s_addr = aaddr; if (nat64_check_ip4(ip.ip_src.s_addr) != 0) { - DPRINTF(DP_GENERIC, "invalid source address: %08x", + DPRINTF(DP_GENERIC | DP_DROPS, "invalid source address: %08x", ip.ip_src.s_addr); - /* XXX: stats? */ + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } - ip.ip_dst.s_addr = nat64_get_ip4(&ip6->ip6_dst); + ip.ip_dst.s_addr = nat64_extract_ip4(cfg, &ip6->ip6_dst); if (ip.ip_dst.s_addr == 0) { - /* XXX: stats? */ + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } if (ip6->ip6_hlim <= IPV6_HLIMDEC) { nat64_icmp6_reflect(m, ICMP6_TIME_EXCEEDED, - ICMP6_TIME_EXCEED_TRANSIT, 0, stats, logdata); + ICMP6_TIME_EXCEED_TRANSIT, 0, &cfg->stats, logdata); return (NAT64RETURN); } @@ -1434,7 +1484,7 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui proto = nat64_getlasthdr(m, &hlen); if (proto < 0) { DPRINTF(DP_DROPS, "dropped due to mbuf isn't contigious"); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } frag = NULL; @@ -1443,7 +1493,7 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui if (m->m_len < hlen + sizeof(*frag)) { DPRINTF(DP_DROPS, "dropped due to mbuf isn't contigious"); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } frag = mtodo(m, hlen); @@ -1452,7 +1502,7 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui /* Fragmented ICMPv6 is unsupported */ if (proto == IPPROTO_ICMPV6) { DPRINTF(DP_DROPS, "dropped due to fragmented ICMPv6"); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } /* Fragment length must be multiple of 8 octets */ @@ -1460,7 +1510,7 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui ((plen + sizeof(struct ip6_hdr) - hlen) & 0x7) != 0) { nat64_icmp6_reflect(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, - offsetof(struct ip6_hdr, ip6_plen), stats, + offsetof(struct ip6_hdr, ip6_plen), &cfg->stats, logdata); return (NAT64RETURN); } @@ -1469,7 +1519,7 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui if (plen < 0 || m->m_pkthdr.len < plen + hlen) { DPRINTF(DP_DROPS, "plen %d, pkthdr.len %d, hlen %d", plen, m->m_pkthdr.len, hlen); - NAT64STAT_INC(stats, dropped); + NAT64STAT_INC(&cfg->stats, dropped); return (NAT64MFREE); } @@ -1479,18 +1529,18 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui if (icmp6->icmp6_type != ICMP6_ECHO_REQUEST && icmp6->icmp6_type != ICMP6_ECHO_REPLY) return (nat64_handle_icmp6(m, hlen, aaddr, aport, - stats, logdata)); + cfg, logdata)); } dst.sin_addr.s_addr = ip.ip_dst.s_addr; if (nat64_find_route4(&nh, &dst, m) != 0) { - NAT64STAT_INC(stats, noroute4); + NAT64STAT_INC(&cfg->stats, noroute4); nat64_icmp6_reflect(m, ICMP6_DST_UNREACH, - ICMP6_DST_UNREACH_NOROUTE, 0, stats, logdata); + ICMP6_DST_UNREACH_NOROUTE, 0, &cfg->stats, logdata); return (NAT64RETURN); } if (nh.nh_mtu < plen + sizeof(ip)) { nat64_icmp6_reflect(m, ICMP6_PACKET_TOO_BIG, 0, nh.nh_mtu, - stats, logdata); + &cfg->stats, logdata); return (NAT64RETURN); } nat64_init_ip4hdr(ip6, frag, plen, proto, &ip); @@ -1537,9 +1587,9 @@ nat64_do_handle_ip6(struct mbuf *m, uint32_t aaddr, ui m_adj(m, hlen - sizeof(ip)); bcopy(&ip, mtod(m, void *), sizeof(ip)); - if (nat64_output(nh.nh_ifp, m, (struct sockaddr *)&dst, NULL, - stats, logdata) == 0) - NAT64STAT_INC(stats, opcnt64); + if (nat64_output(nh.nh_ifp, m, (struct sockaddr *)&dst, + &cfg->stats, logdata) == 0) + NAT64STAT_INC(&cfg->stats, opcnt64); return (NAT64RETURN); } Modified: head/sys/netpfil/ipfw/nat64/nat64_translate.h ============================================================================== --- head/sys/netpfil/ipfw/nat64/nat64_translate.h Wed May 9 11:47:05 2018 (r333402) +++ head/sys/netpfil/ipfw/nat64/nat64_translate.h Wed May 9 11:59:24 2018 (r333403) @@ -30,6 +30,70 @@ #ifndef _IP_FW_NAT64_TRANSLATE_H_ #define _IP_FW_NAT64_TRANSLATE_H_ +struct nat64_stats { + uint64_t opcnt64; /* 6to4 of packets translated */ + uint64_t opcnt46; /* 4to6 of packets translated */ + uint64_t ofrags; /* number of fragments generated */ + uint64_t ifrags; /* number of fragments received */ + uint64_t oerrors; /* number of output errors */ + uint64_t noroute4; + uint64_t noroute6; + uint64_t nomatch4; /* No addr/port match */ + uint64_t noproto; /* Protocol not supported */ + uint64_t nomem; /* mbufs allocation failed */ + uint64_t dropped; /* number of packets silently + * dropped due to some errors/ + * unsupported/etc. + */ + + uint64_t jrequests; /* number of jobs requests queued */ + uint64_t jcalls; /* number of jobs handler calls */ + uint64_t jhostsreq; /* number of hosts requests */ + uint64_t jportreq; + uint64_t jhostfails; + uint64_t jportfails; + uint64_t jmaxlen; + uint64_t jnomem; + uint64_t jreinjected; + + uint64_t screated; + uint64_t sdeleted; + uint64_t spgcreated; + uint64_t spgdeleted; +}; + +#define IPFW_NAT64_VERSION 1 +#define NAT64STATS (sizeof(struct nat64_stats) / sizeof(uint64_t)) +struct nat64_counters { + counter_u64_t cnt[NAT64STATS]; +}; +#define NAT64STAT_ADD(s, f, v) \ + counter_u64_add((s)->cnt[ \ + offsetof(struct nat64_stats, f) / sizeof(uint64_t)], (v)) +#define NAT64STAT_INC(s, f) NAT64STAT_ADD(s, f, 1) +#define NAT64STAT_FETCH(s, f) \ + counter_u64_fetch((s)->cnt[ \ + offsetof(struct nat64_stats, f) / sizeof(uint64_t)]) + +#define L3HDR(_ip, _t) ((_t)((uint32_t *)(_ip) + (_ip)->ip_hl)) +#define TCP(p) ((struct tcphdr *)(p)) +#define UDP(p) ((struct udphdr *)(p)) +#define ICMP(p) ((struct icmphdr *)(p)) +#define ICMP6(p) ((struct icmp6_hdr *)(p)) + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Wed May 9 12:03:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDD9BFB61EE; Wed, 9 May 2018 12:03:41 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A1ED670342; Wed, 9 May 2018 12:03:41 +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 824E811401; Wed, 9 May 2018 12:03:41 +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 w49C3foF011501; Wed, 9 May 2018 12:03:41 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49C3fMX011500; Wed, 9 May 2018 12:03:41 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805091203.w49C3fMX011500@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 9 May 2018 12:03:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333404 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 333404 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 12:03:42 -0000 Author: kib Date: Wed May 9 12:03:40 2018 New Revision: 333404 URL: https://svnweb.freebsd.org/changeset/base/333404 Log: Remove PG_U from the recursive pte for kernel pmap' PML4 page. This PML4 page is never used for the userspace process, so there is no security implications. But the configuration trips SMAP check, which should be corrected. Reviewed by: alc, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Wed May 9 11:59:24 2018 (r333403) +++ head/sys/amd64/amd64/pmap.c Wed May 9 12:03:40 2018 (r333404) @@ -1060,7 +1060,7 @@ create_pagetables(vm_paddr_t *firstaddr) /* And recursively map PML4 to itself in order to get PTmap */ p4_p = (pml4_entry_t *)KPML4phys; p4_p[PML4PML4I] = KPML4phys; - p4_p[PML4PML4I] |= X86_PG_RW | X86_PG_V | PG_U | pg_nx; + p4_p[PML4PML4I] |= X86_PG_RW | X86_PG_V | pg_nx; /* Connect the Direct Map slot(s) up to the PML4. */ for (i = 0; i < ndmpdpphys; i++) { From owner-svn-src-head@freebsd.org Wed May 9 12:09:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB9B6FB6AA5; Wed, 9 May 2018 12:09:09 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4538A715E2; Wed, 9 May 2018 12:09:09 +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 22F0D11404; Wed, 9 May 2018 12:09:09 +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 w49C988p011733; Wed, 9 May 2018 12:09:08 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49C987J011732; Wed, 9 May 2018 12:09:08 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805091209.w49C987J011732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 9 May 2018 12:09:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333405 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 333405 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 12:09:10 -0000 Author: kib Date: Wed May 9 12:09:08 2018 New Revision: 333405 URL: https://svnweb.freebsd.org/changeset/base/333405 Log: Remove PG_U from the rest of the kernel pmap ptes. Supposedly, they PG_U bits there were set to easier making some kernel page accessible to userspace in-place. Since it was not used for the whole existence of the amd64 pmap.c and current design of the shared pages prefers double-mapping over the in-place access, remove PG_U both from the direct map and KVA slots. Reviewed by: alc, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Wed May 9 12:03:40 2018 (r333404) +++ head/sys/amd64/amd64/pmap.c Wed May 9 12:09:08 2018 (r333405) @@ -1011,8 +1011,7 @@ create_pagetables(vm_paddr_t *firstaddr) /* And connect up the PD to the PDP (leaving room for L4 pages) */ pdp_p = (pdp_entry_t *)(KPDPphys + ptoa(KPML4I - KPML4BASE)); for (i = 0; i < nkpdpe; i++) - pdp_p[i + KPDPI] = (KPDphys + ptoa(i)) | X86_PG_RW | X86_PG_V | - PG_U; + pdp_p[i + KPDPI] = (KPDphys + ptoa(i)) | X86_PG_RW | X86_PG_V; /* * Now, set up the direct map region using 2MB and/or 1GB pages. If @@ -1038,7 +1037,7 @@ create_pagetables(vm_paddr_t *firstaddr) } for (j = 0; i < ndmpdp; i++, j++) { pdp_p[i] = DMPDphys + ptoa(j); - pdp_p[i] |= X86_PG_RW | X86_PG_V | PG_U; + pdp_p[i] |= X86_PG_RW | X86_PG_V; } /* @@ -1054,7 +1053,7 @@ create_pagetables(vm_paddr_t *firstaddr) bootaddr_rwx(i << PDRSHIFT); for (i = 0; i < nkdmpde; i++) pdp_p[i] = (DMPDkernphys + ptoa(i)) | X86_PG_RW | - X86_PG_V | PG_U; + X86_PG_V; } /* And recursively map PML4 to itself in order to get PTmap */ @@ -1065,13 +1064,13 @@ create_pagetables(vm_paddr_t *firstaddr) /* Connect the Direct Map slot(s) up to the PML4. */ for (i = 0; i < ndmpdpphys; i++) { p4_p[DMPML4I + i] = DMPDPphys + ptoa(i); - p4_p[DMPML4I + i] |= X86_PG_RW | X86_PG_V | PG_U; + p4_p[DMPML4I + i] |= X86_PG_RW | X86_PG_V; } /* Connect the KVA slots up to the PML4 */ for (i = 0; i < NKPML4E; i++) { p4_p[KPML4BASE + i] = KPDPphys + ptoa(i); - p4_p[KPML4BASE + i] |= X86_PG_RW | X86_PG_V | PG_U; + p4_p[KPML4BASE + i] |= X86_PG_RW | X86_PG_V; } } @@ -2628,11 +2627,11 @@ pmap_pinit_pml4(vm_page_t pml4pg) /* Wire in kernel global address entries. */ for (i = 0; i < NKPML4E; i++) { pm_pml4[KPML4BASE + i] = (KPDPphys + ptoa(i)) | X86_PG_RW | - X86_PG_V | PG_U; + X86_PG_V; } for (i = 0; i < ndmpdpphys; i++) { pm_pml4[DMPML4I + i] = (DMPDPphys + ptoa(i)) | X86_PG_RW | - X86_PG_V | PG_U; + X86_PG_V; } /* install self-referential address mapping entry(s) */ From owner-svn-src-head@freebsd.org Wed May 9 12:25:25 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA0E9FB7591; Wed, 9 May 2018 12:25:24 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7E854760DD; Wed, 9 May 2018 12:25:24 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 45E4E11727; Wed, 9 May 2018 12:25:24 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49CPOYk021700; Wed, 9 May 2018 12:25:24 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49CPOro021699; Wed, 9 May 2018 12:25:24 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201805091225.w49CPOro021699@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Wed, 9 May 2018 12:25:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333406 - head/sbin/ipfw X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sbin/ipfw X-SVN-Commit-Revision: 333406 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 12:25:25 -0000 Author: ae Date: Wed May 9 12:25:23 2018 New Revision: 333406 URL: https://svnweb.freebsd.org/changeset/base/333406 Log: Update NAT64 documentation, now we support any IPv6 prefixes. MFC after: 1 month Modified: head/sbin/ipfw/ipfw.8 Modified: head/sbin/ipfw/ipfw.8 ============================================================================== --- head/sbin/ipfw/ipfw.8 Wed May 9 12:09:08 2018 (r333405) +++ head/sbin/ipfw/ipfw.8 Wed May 9 12:25:23 2018 (r333406) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 19, 2018 +.Dd May 9, 2018 .Dt IPFW 8 .Os .Sh NAME @@ -3048,13 +3048,6 @@ After translation NAT64 translator sends packets throu queue. Thus translator host should be configured as IPv4 and IPv6 router. .Pp -Currently both stateful and stateless NAT64 translators use Well-Known IPv6 -Prefix -.Ar 64:ff9b::/96 -to represent IPv4 addresses in the IPv6 address. -Thus DNS64 service and routing should be configured to use Well-Known IPv6 -Prefix. -.Pp The stateful NAT64 configuration command is the following: .Bd -ragged -offset indent .Bk -words @@ -3067,7 +3060,7 @@ The stateful NAT64 configuration command is the follow .Pp The following parameters can be configured: .Bl -tag -width indent -.It Cm prefix4 Ar ipv4_prefix/mask +.It Cm prefix4 Ar ipv4_prefix/plen The IPv4 prefix with mask defines the pool of IPv4 addresses used as source address after translation. Stateful NAT64 module translates IPv6 source address of client to one @@ -3075,6 +3068,12 @@ IPv4 address from this pool. Note that incoming IPv4 packets that don't have corresponding state entry in the states table will be dropped by translator. Make sure that translation rules handle packets, destined to configured prefix. +.It Cm prefix6 Ar ipv6_prefix/length +The IPv6 prefix defines IPv4-embedded IPv6 addresses used by translator +to represent IPv4 addresses. This IPv6 prefix should be configured in DNS64. +The translator implementation follows RFC6052, that restricts the length of +prefixes to one of following: 32, 40, 48, 56, 64, or 96. +The Well-Known IPv6 Prefix 64:ff9b:: must be 96 bits long. .It Cm max_ports Ar number Maximum number of ports reserved for upper level protocols to one IPv6 client. All reserved ports are divided into chunks between supported protocols. @@ -3174,6 +3173,9 @@ The stateless NAT64 configuration command is the follo .Pp The following parameters can be configured: .Bl -tag -width indent +.It Cm prefix6 Ar ipv6_prefix/length +The IPv6 prefix defines IPv4-embedded IPv6 addresses used by translator +to represent IPv4 addresses. This IPv6 prefix should be configured in DNS64. .It Cm table4 Ar table46 The lookup table .Ar table46 From owner-svn-src-head@freebsd.org Wed May 9 12:48:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD9BEFB7CD6; Wed, 9 May 2018 12:48:36 +0000 (UTC) (envelope-from thj@freebsd.org) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (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 69E2F7A4E2; Wed, 9 May 2018 12:48:36 +0000 (UTC) (envelope-from thj@freebsd.org) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id B54E720F62; Wed, 9 May 2018 08:48:35 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 09 May 2018 08:48:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=p8f57qLp8cuYulJFBihsq8a5GuY/s aHkuqaIMWTpRyc=; b=KcI8Es/TCzXRymPT60Yumf3VlXZ56dL2PRunb59VombBI dMDrAe19LRuenzKnTh8JvUKSVoEBrDqqJe6b7LIOcbUf6KTck8HKrTGXUDipX1it Vn8/B2KU5kPo8kOeDxiIgVC3IuEOGSYK6ohZOsZ+mdRixdreuiNtnaaf1WKmBY8G p/93IY9VxBMMiDQwEHGQqzz5VZAJv9vdCtb8C7Irq4YAbG/0MsCTac7PU5Aq5kLU 84KCJ2uhfDLEf2wi420qtKbr86XgCbvl+HhtGrCmT/xOAjRN+OOHy3stYqhGrUcE viTTCQhx6Dd1LK0j++mlTjpeb1QgGQ4xTbz8OttSw== X-ME-Sender: Received: from tom-desk.erg.abdn.ac.uk (tom-desk.erg.abdn.ac.uk [139.133.204.4]) by mail.messagingengine.com (Postfix) with ESMTPA id F310610285; Wed, 9 May 2018 08:48:34 -0400 (EDT) Date: Wed, 9 May 2018 13:48:20 +0100 From: Tom Jones To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333309 - in head/sys: net netinet netinet6 Message-ID: <20180509124820.GA34572@tom-desk.erg.abdn.ac.uk> References: <201805062034.w46KYDUY088148@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805062034.w46KYDUY088148@repo.freebsd.org> User-Agent: Mutt/1.9.4 (2018-02-28) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 12:48:37 -0000 On Sun, May 06, 2018 at 08:34:13PM +0000, Matt Macy wrote: > Author: mmacy > Date: Sun May 6 20:34:13 2018 > New Revision: 333309 > URL: https://svnweb.freebsd.org/changeset/base/333309 > > Log: > r333175 introduced deferred deletion of multicast addresses in order to permit the driver ioctl > to sleep on commands to the NIC when updating multicast filters. More generally this permitted > driver's to use an sx as a softc lock. Unfortunately this change introduced a race whereby a > a multicast update would still be queued for deletion when ifconfig deleted the interface > thus calling down in to _purgemaddrs and synchronously deleting _all_ of the multicast addresses > on the interface. > > Synchronously remove all external references to a multicast address before enqueueing for delete. > Hi Matt, I am getting periodic panics on a FreeBSD CURRENT guest running bhyve on a 11.1 Host. An idle guest will panic after about 5 minutes. Reverting this commit stops the panics. Fatal trap 9: general protection fault while in kernel mode cpuid = 0; apic id = 00 instruction pointer = 0x20:0xffffffff80db01ac stack pointer = 0x28:0xfffffe00121827d0 frame pointer = 0x28:0xfffffe0012182800 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 12 (swi4: clock (0)) [ thread pid 12 tid 100023 ] Stopped at in6m_disconnect+0x13c: cmpq %r13,(%rcx) db> bt Tracing pid 12 tid 100023 td 0xfffff8000322d000 in6m_disconnect() at in6m_disconnect+0x13c/frame 0xfffffe0012182800 mld_fasttimo() at mld_fasttimo+0x62b/frame 0xfffffe00121828d0 pffasttimo() at pffasttimo+0x54/frame 0xfffffe0012182900 softclock_call_cc() at softclock_call_cc+0x150/frame 0xfffffe00121829b0 softclock() at softclock+0x7c/frame 0xfffffe00121829e0 intr_event_execute_handlers() at intr_event_execute_handlers+0x99/frame 0xfffffe0012182a20 ithread_loop() at ithread_loop+0xb7/frame 0xfffffe0012182a70 fork_exit() at fork_exit+0x84/frame 0xfffffe0012182ab0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0012182ab0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- - [tj] From owner-svn-src-head@freebsd.org Wed May 9 13:44:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BAD3DFB93C2; Wed, 9 May 2018 13:44:55 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5B7D668348; Wed, 9 May 2018 13:44:55 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3CFDF12405; Wed, 9 May 2018 13:44:55 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49DitTk061910; Wed, 9 May 2018 13:44:55 GMT (envelope-from brd@FreeBSD.org) Received: (from brd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Dist5061908; Wed, 9 May 2018 13:44:54 GMT (envelope-from brd@FreeBSD.org) Message-Id: <201805091344.w49Dist5061908@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brd set sender to brd@FreeBSD.org using -f From: Brad Davis Date: Wed, 9 May 2018 13:44:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333407 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: brd X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 333407 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 13:44:56 -0000 Author: brd Date: Wed May 9 13:44:54 2018 New Revision: 333407 URL: https://svnweb.freebsd.org/changeset/base/333407 Log: Enable directory creation with FILESDIR. This is part of packaging base work. Reviewed by: will Approved by: bapt (mentor), allanjude (mentor) Differential Revision: https://reviews.freebsd.org/D15130 Modified: head/share/mk/bsd.files.mk head/share/mk/bsd.own.mk Modified: head/share/mk/bsd.files.mk ============================================================================== --- head/share/mk/bsd.files.mk Wed May 9 12:25:23 2018 (r333406) +++ head/share/mk/bsd.files.mk Wed May 9 13:44:54 2018 (r333407) @@ -67,7 +67,7 @@ STAGE_AS_${file:T}= ${${group}NAME_${file:T}} STAGE_DIR.${file:T}= ${STAGE_OBJTOP}${${group}DIR_${file:T}} stage_as.${file:T}: ${file} -installfiles-${group}: _${group}INS_${file:T} +installfiles-${group}: installdirs-${group} _${group}INS_${file:T} _${group}INS_${file:T}: ${file} ${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN_${.ALLSRC:T}} \ -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \ @@ -77,10 +77,24 @@ _${group}INS_${file:T}: ${file} _${group}FILES+= ${file} .endif .endfor + + +installdirs-${group}: + @echo installing dirs ${group}DIR ${${group}DIR} +.for dir in ${${group}DIR} +.if defined(NO_ROOT) + ${INSTALL} ${${group}TAG_ARGS} -d ${DESTDIR}${dir} +.else + ${INSTALL} ${${group}TAG_ARGS} -d -o ${DIROWN} -g ${DIRGRP} \ + -m ${DIRMODE} ${DESTDIR}${dir} +.endif +.endfor + + .if !empty(_${group}FILES) stage_files.${group}: ${_${group}FILES} -installfiles-${group}: _${group}INS +installfiles-${group}: installdirs-${group} _${group}INS _${group}INS: ${_${group}FILES} .if defined(${group}NAME) ${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN} -g ${${group}GRP} \ Modified: head/share/mk/bsd.own.mk ============================================================================== --- head/share/mk/bsd.own.mk Wed May 9 12:25:23 2018 (r333406) +++ head/share/mk/bsd.own.mk Wed May 9 13:44:54 2018 (r333407) @@ -75,6 +75,13 @@ # CONFMODE Configuration file mode. [644] # # +# DIROWN Directory owner. [root] +# +# DIRGRP Directory group. [wheel] +# +# DIRMODE Directory mode. [755] +# +# # DOCDIR Base path for system documentation (e.g. PSD, USD, # handbook, FAQ etc.). [${SHAREDIR}/doc] # @@ -185,6 +192,10 @@ MANDIR?= ${SHAREDIR}/man/man MANOWN?= ${SHAREOWN} MANGRP?= ${SHAREGRP} MANMODE?= ${NOBINMODE} + +DIROWN?= root +DIRGRP?= wheel +DIRMODE?= 755 DOCDIR?= ${SHAREDIR}/doc DOCOWN?= ${SHAREOWN} From owner-svn-src-head@freebsd.org Wed May 9 13:53:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C598EFB98C0; Wed, 9 May 2018 13:53:11 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7AC9268D37; Wed, 9 May 2018 13:53:11 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5CC5D125B6; Wed, 9 May 2018 13:53:11 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49DrBcn066869; Wed, 9 May 2018 13:53:11 GMT (envelope-from brd@FreeBSD.org) Received: (from brd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49DrBCR066868; Wed, 9 May 2018 13:53:11 GMT (envelope-from brd@FreeBSD.org) Message-Id: <201805091353.w49DrBCR066868@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brd set sender to brd@FreeBSD.org using -f From: Brad Davis Date: Wed, 9 May 2018 13:53:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333408 - head/share/examples X-SVN-Group: head X-SVN-Commit-Author: brd X-SVN-Commit-Paths: head/share/examples X-SVN-Commit-Revision: 333408 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 13:53:12 -0000 Author: brd Date: Wed May 9 13:53:10 2018 New Revision: 333408 URL: https://svnweb.freebsd.org/changeset/base/333408 Log: Convert share/examples/Makefile over to using FILES and FILESDIR. The goal is to avoid using install directly so we can make changes the affect how the entire system is installed, without having to touch many places. This is part of the packaging base work. Reviewed by: will Approved by: bapt (mentor), allanjude (mentor) Differential Revision: https://reviews.freebsd.org/D1513 Modified: head/share/examples/Makefile Modified: head/share/examples/Makefile ============================================================================== --- head/share/examples/Makefile Wed May 9 13:44:54 2018 (r333407) +++ head/share/examples/Makefile Wed May 9 13:53:10 2018 (r333408) @@ -7,12 +7,6 @@ PACKAGE=examples FILESDIR= ${SHAREDIR}/examples -.for _XFILE in ${XFILES} -FILESGROUPS+= ${_XFILE} -PACKAGE_${_XFILE}?=examples -${_XFILE}DIR= ${SHAREDIR}/examples/${_XFILE:H} -.endfor - LDIRS= BSD_daemon \ FreeBSD_version \ IPv6 \ @@ -40,236 +34,372 @@ LDIRS= BSD_daemon \ uefisign \ ypldap -XFILES= BSD_daemon/FreeBSD.pfa \ - BSD_daemon/README \ - BSD_daemon/beastie.eps \ - BSD_daemon/beastie.fig \ - BSD_daemon/eps.patch \ - BSD_daemon/poster.sh \ - FreeBSD_version/FreeBSD_version.c \ - FreeBSD_version/Makefile \ - FreeBSD_version/README \ - IPv6/USAGE \ - bootforth/README \ - bootforth/boot.4th \ - bootforth/frames.4th \ - bootforth/loader.rc \ - bootforth/menu.4th \ - bootforth/menuconf.4th \ - bootforth/screen.4th \ - csh/dot.cshrc \ - diskless/ME \ - diskless/README.BOOTP \ - diskless/README.TEMPLATING \ - diskless/clone_root \ - drivers/README \ - drivers/make_device_driver.sh \ - drivers/make_pseudo_driver.sh \ - etc/README.examples \ - etc/bsd-style-copyright \ - etc/make.conf \ - find_interface/Makefile \ - find_interface/README \ - find_interface/find_interface.c \ - ibcs2/README \ - ibcs2/hello.uu \ - indent/indent.pro \ - ipfw/change_rules.sh \ - jails/README \ - jails/VIMAGE \ - jails/jail.xxx.conf \ - jails/jib \ - jails/jng \ - jails/rc.conf.jails \ - jails/rcjail.xxx.conf \ - kld/Makefile \ - kld/cdev/Makefile \ - kld/cdev/README \ - kld/cdev/module/Makefile \ - kld/cdev/module/cdev.c \ - kld/cdev/module/cdev.h \ - kld/cdev/module/cdevmod.c \ - kld/cdev/test/Makefile \ - kld/cdev/test/testcdev.c \ - kld/dyn_sysctl/Makefile \ - kld/dyn_sysctl/README \ - kld/dyn_sysctl/dyn_sysctl.c \ - kld/firmware/Makefile \ - kld/firmware/README \ - kld/firmware/fwconsumer/Makefile \ - kld/firmware/fwconsumer/fw_consumer.c \ - kld/firmware/fwimage/Makefile \ - kld/firmware/fwimage/firmware.img.uu \ - kld/khelp/Makefile \ - kld/khelp/README \ - kld/khelp/h_example.c \ - kld/syscall/Makefile \ - kld/syscall/module/Makefile \ - kld/syscall/module/syscall.c \ - kld/syscall/test/Makefile \ - kld/syscall/test/call.c \ - libvgl/Makefile \ - libvgl/demo.c \ - mdoc/POSIX-copyright \ - mdoc/deshallify.sh \ - mdoc/example.1 \ - mdoc/example.3 \ - mdoc/example.4 \ - mdoc/example.9 \ - netgraph/ether.bridge \ - netgraph/frame_relay \ - netgraph/ngctl \ - netgraph/raw \ - netgraph/udp.tunnel \ - netgraph/virtual.chain \ - netgraph/virtual.lan \ - perfmon/Makefile \ - perfmon/README \ - perfmon/perfmon.c \ - ppi/Makefile \ - ppi/ppilcd.c \ - ppp/chap-auth \ - ppp/login-auth \ - ppp/ppp.conf.sample \ - ppp/ppp.conf.span-isp \ - ppp/ppp.conf.span-isp.working \ - ppp/ppp.linkdown.sample \ - ppp/ppp.linkdown.span-isp \ - ppp/ppp.linkdown.span-isp.working \ - ppp/ppp.linkup.sample \ - ppp/ppp.linkup.span-isp \ - ppp/ppp.linkup.span-isp.working \ - ppp/ppp.secret.sample \ - ppp/ppp.secret.span-isp \ - ppp/ppp.secret.span-isp.working \ - printing/diablo-if-net \ - printing/hpdf \ - printing/hpif \ - printing/hpof \ - printing/hprf \ - printing/hpvf \ - printing/if-simple \ - printing/if-simpleX \ - printing/ifhp \ - printing/make-ps-header \ - printing/netprint \ - printing/psdf \ - printing/psdfX \ - printing/psif \ - printing/pstf \ - printing/pstfX \ - ses/Makefile \ - ses/Makefile.inc \ - ses/getencstat/Makefile \ - ses/getencstat/getencstat.0 \ - ses/sesd/Makefile \ - ses/sesd/sesd.0 \ - ses/setencstat/Makefile \ - ses/setencstat/setencstat.0 \ - ses/setobjstat/Makefile \ - ses/setobjstat/setobjstat.0 \ - ses/srcs/chpmon.c \ - ses/srcs/eltsub.c \ - ses/srcs/eltsub.h \ - ses/srcs/getencstat.c \ - ses/srcs/getnobj.c \ - ses/srcs/getobjmap.c \ - ses/srcs/getobjstat.c \ - ses/srcs/inienc.c \ - ses/srcs/sesd.c \ - ses/srcs/setencstat.c \ - ses/srcs/setobjstat.c \ - scsi_target/Makefile \ - scsi_target/scsi_target.c \ - scsi_target/scsi_target.h \ - scsi_target/scsi_target.8 \ - scsi_target/scsi_cmds.c \ - sunrpc/Makefile \ - sunrpc/dir/Makefile \ - sunrpc/dir/dir.x \ - sunrpc/dir/dir_proc.c \ - sunrpc/dir/rls.c \ - sunrpc/msg/Makefile \ - sunrpc/msg/msg.x \ - sunrpc/msg/msg_proc.c \ - sunrpc/msg/printmsg.c \ - sunrpc/msg/rprintmsg.c \ - sunrpc/sort/Makefile \ - sunrpc/sort/rsort.c \ - sunrpc/sort/sort.x \ - sunrpc/sort/sort_proc.c \ - uefisign/uefikeys \ - ypldap/ypldap.conf -BINDIR= ${SHAREDIR}/examples +SE_DIRS+= BSD_daemon +SE_BSD_DAEMON= \ + FreeBSD.pfa \ + README \ + beastie.eps \ + beastie.fig \ + eps.patch \ + poster.sh +.if ${MACHINE_CPUARCH} == "amd64" +.if ${MK_BHYVE} != "no" +LDIRS+= bhyve +SE_DIRS+= bhyve +SE_BHYVE= vmrun.sh +PACKAGE_bhyve/vmrun.sh= bhyve +.endif +.endif + +SE_DIRS+= FreeBSD_version +SE_FREEBSD_VERSION= \ + FreeBSD_version.c \ + Makefile \ + README + +SE_DIRS+= IPv6 +SE_IPV6= USAGE + +SE_DIRS+= bootforth +SE_BOOTFORTH= \ + README \ + boot.4th \ + frames.4th \ + loader.rc \ + menu.4th \ + menuconf.4th \ + screen.4th + +SE_DIRS+= csh +SE_CSH= dot.cshrc + +SE_DIRS+= diskless +SE_DISKLESS= \ + ME \ + README.BOOTP \ + README.TEMPLATING \ + clone_root + +SE_DIRS+= drivers +SE_DRIVERS= \ + README \ + make_device_driver.sh \ + make_pseudo_driver.sh + +SE_DIRS+= etc +SE_ETC= \ + README.examples \ + bsd-style-copyright \ + make.conf + +SE_DIRS+= find_interface +SE_FIND_INTERFACE= \ + Makefile \ + README \ + find_interface.c + +SE_DIRS+= ibcs2 +SE_IBCS2= \ + README \ + hello.uu + +SE_DIRS+= indent +SE_INDENT= indent.pro + +.if ${MK_IPFILTER} != "no" +SUBDIR+= ipfilter +.endif + +SE_DIRS+= ipfw +SE_IPFW= change_rules.sh + +SE_DIRS+= jails +SE_JAILS= \ + README \ + VIMAGE \ + jail.xxx.conf \ + jib \ + jng \ + rc.conf.jails \ + rcjail.xxx.conf + +SE_DIRS+= kld +SE_KLD= Makefile + +SE_DIRS+= kld/cdev +SE_KLD_CDEV= \ + Makefile \ + README \ + +SE_DIRS+= kld/cdev/module +SE_KLD_CDEV_MODULE= \ + Makefile \ + cdev.c \ + cdev.h \ + cdevmod.c + +SE_DIRS+= kld/cdev/test +SE_KLD_CDEV_TEST= \ + Makefile \ + testcdev.c + +SE_DIRS+= kld/dyn_sysctl +SE_KLD_DYN_SYSCTL= \ + Makefile \ + README \ + dyn_sysctl.c + +SE_DIRS+= kld/firmware +SE_KLD_FIRMWARE= \ + Makefile \ + README + +SE_DIRS+= kld/firmware/fwconsumer +SE_KLD_FIRMWARE_FWCONSUMER= \ + Makefile \ + fw_consumer.c + +SE_DIRS+= kld/firmware/fwimage +SE_KLD_FIRMWARE_FWIMAGE= \ + Makefile \ + firmware.img.uu + +SE_DIRS+= kld/khelp +SE_KLD_KHELP= \ + Makefile \ + README \ + h_example.c + +SE_DIRS+= kld/syscall +SE_KLD_SYSCALL= Makefile + +SE_DIRS+= kld/syscall/module +SE_KLD_SYSCALL_MODULE= \ + Makefile \ + syscall.c + +SE_DIRS+= kld/syscall/test +SE_KLD_SYSCALL_TEST= \ + Makefile \ + call.c + +SE_DIRS+= libvgl +SE_LIBVGL= \ + Makefile \ + demo.c + +SE_DIRS+= mdoc +SE_MDOC= \ + POSIX-copyright \ + deshallify.sh \ + example.1 \ + example.3 \ + example.4 \ + example.9 + +SE_DIRS+= netgraph +SE_NETGRAPH= \ + ether.bridge \ + frame_relay \ + ngctl \ + raw \ + udp.tunnel \ + virtual.chain \ + virtual.lan \ + +SE_DIRS+= perfmon +SE_PERFMON= \ + Makefile \ + README \ + perfmon.c \ + +.if ${MK_PF} != "no" +SE_DIRS+= pf +SE_PF= \ + ackpri \ + faq-example1 \ + faq-example2 \ + faq-example3 \ + pf.conf \ + queue1 \ + queue2 \ + queue3 \ + queue4 \ + spamd +.endif + +SE_DIRS+= ppi +SE_PPI= \ + Makefile \ + ppilcd.c + +SE_DIRS+= ppp +SE_PPP= \ + chap-auth \ + login-auth \ + ppp.conf.sample \ + ppp.conf.span-isp \ + ppp.conf.span-isp.working \ + ppp.linkdown.sample \ + ppp.linkdown.span-isp \ + ppp.linkdown.span-isp.working \ + ppp.linkup.sample \ + ppp.linkup.span-isp \ + ppp.linkup.span-isp.working \ + ppp.secret.sample \ + ppp.secret.span-isp \ + ppp.secret.span-isp.working + +SE_DIRS+= printing +SE_PRINTING= \ + diablo-if-net \ + hpdf \ + hpif \ + hpof \ + hprf \ + hpvf \ + if-simple \ + if-simpleX \ + ifhp \ + make-ps-header \ + netprint \ + psdf \ + psdfX \ + psif \ + pstf \ + pstfX + +SE_DIRS+= ses +SE_SES= \ + Makefile \ + Makefile.inc + +SE_DIRS+= ses/getencstat +SE_SES_GETENCSTAT= \ + Makefile \ + getencstat.0 + +SE_DIRS+= ses/sesd +SE_SES_SESD= \ + Makefile \ + sesd.0 + +SE_DIRS+= ses/setencstat +SE_SES_SETENCSTAT= \ + Makefile \ + setencstat.0 + +SE_DIRS+= ses/setobjstat +SE_SES_SETOBJSTAT= \ + Makefile \ + setobjstat.0 + +SE_DIRS+= ses/srcs +SE_SES_SRCS= \ + chpmon.c \ + eltsub.c \ + eltsub.h \ + getencstat.c \ + getnobj.c \ + getobjmap.c \ + getobjstat.c \ + inienc.c \ + sesd.c \ + setencstat.c \ + setobjstat.c + +SE_DIRS+= scsi_target +SE_SCSI_TARGET= \ + Makefile \ + scsi_target.c \ + scsi_target.h \ + scsi_target.8 \ + scsi_cmds.c + +SE_DIRS+= sunrpc +SE_SUNRPC= Makefile + +SE_DIRS+= sunrpc/dir +SE_SUNRPC_DIR= \ + Makefile \ + dir.x \ + dir_proc.c \ + rls.c + +SE_DIRS+= sunrpc/msg +SE_SUNRPC_MSG= \ + Makefile \ + msg.x \ + msg_proc.c \ + printmsg.c \ + rprintmsg.c + +SE_DIRS+= sunrpc/sort +SE_SUNRPC_SORT= \ + Makefile \ + rsort.c \ + sort.x \ + sort_proc.c + +SE_DIRS+= uefisign +SE_UEFISIGN= uefikeys + +SE_DIRS+= ypldap +SE_YPLDAP= ypldap.conf + .if ${MK_HAST} != "no" LDIRS+= hast -XFILES+= hast/ucarp.sh \ - hast/ucarp_down.sh \ - hast/ucarp_up.sh \ - hast/vip-down.sh \ - hast/vip-up.sh +SE_DIRS+= hast +SE_HAST= ucarp.sh \ + ucarp_down.sh \ + ucarp_up.sh \ + vip-down.sh \ + vip-up.sh .endif .if ${MK_USB} != "no" LDIRS+= libusb20 -XFILES+= libusb20/Makefile \ - libusb20/README \ - libusb20/util.c \ - libusb20/util.h \ - libusb20/bulk.c \ - libusb20/control.c +SE_DIRS+= libusb20 +SE_LIBUSB20= \ + Makefile \ + README \ + util.c \ + util.h \ + bulk.c \ + control.c .endif -.if ${MACHINE_CPUARCH} == "amd64" -.if ${MK_BHYVE} != "no" -LDIRS+= bhyve -XFILES+= bhyve/vmrun.sh -PACKAGE_bhyve/vmrun.sh= bhyve -.endif -.endif -# Define SHARED to indicate whether you want symbolic links to the system -# source (``symlinks''), or a separate copy (``copies''); (latter useful -# in environments where it's not possible to keep /sys publicly readable) -SHARED?= copies +# Setup the FILES_GROUPS for all DIRS variables above. +# The variables are prefixed by 'SE_' to prevent variable collision in +# other parts of the system +.for d in ${SE_DIRS} +.for f in ${SE_${d:tu:C/\//_/g}} +SER_${d:tu:C/\//_/g}+= ${d}/${f} +.endfor +FILESGROUPS+= SER_${d:tu:C/\//_/g} +SER_${d:tu:C/\//_/g}DIR+= ${SHAREDIR}/examples/${d} +.endfor -beforeinstall: ${SHARED} etc-examples -META_TARGETS+= copies symlinks -.ORDER: ${SHARED} etc-examples +BINDIR= ${SHAREDIR}/examples +beforeinstall: copies etc-examples +META_TARGETS+= copies +.ORDER: etc-examples + copies: .for i in ${LDIRS} if [ -L ${DESTDIR}${BINDIR}/$i ]; then \ rm -f ${DESTDIR}${BINDIR}/$i; \ fi .endfor -.for file in ${XFILES} - ${INSTALL} -T package=${PACKAGE_${file}:Uexamples} -o ${SHAREOWN} -g ${SHAREGRP} -m ${SHAREMODE} \ - ${.CURDIR}/${file} ${DESTDIR}${BINDIR}/${file} -.endfor -symlinks: -.for i in ${LDIRS} - rm -rf ${DESTDIR}${BINDIR}/$i - ${INSTALL} ${TAG_ARGS} -l s ${.CURDIR}/$i ${DESTDIR}${BINDIR}/$i -.endfor - etc-examples: -.if ${SHARED} != "symlinks" ${_+_}(cd ${SRCTOP}/etc; ${MAKE} etc-examples) -.endif -.if ${SHARED} != "symlinks" -SUBDIR= smbfs -.if ${MK_IPFILTER} != "no" -SUBDIR+=ipfilter -.endif -.if ${MK_PF} != "no" -SUBDIR+=pf -.endif -.endif +SUBDIR+= smbfs HAS_TESTS= SUBDIR.${MK_TESTS}+= tests From owner-svn-src-head@freebsd.org Wed May 9 14:01:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79B43FBB3A4; Wed, 9 May 2018 14:01:57 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (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 250E96A47F; Wed, 9 May 2018 14:01:56 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 0C46322B12; Wed, 9 May 2018 10:01:56 -0400 (EDT) Received: from web6 ([10.202.2.216]) by compute5.internal (MEProxy); Wed, 09 May 2018 10:01:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=2/Rqux 4uHWETdzg8CurrBpu4Fgx3jjzm7XadcSErCKo=; b=hCtqjOS2SHojC0Na37Vxrw wlTIpmjPMArwkltyEeA3TF0maiKPz7y/kvf4+u96vdrRZUO1GusRlbRyV339mv5m zydKfF9d9CL8cczD/lHeofg+UJwqtKN1Cjmrh7rpBuXRdrLC0+BMlc68mLnNQ/uy JgBiylbfZm6V/Ot1RKFUHHRjoxSpmIeIkJiBBvWd74u+yLRLrNjwTYAXtZKpPJ/X hERmEtlg16Ze3CYwI77rOR8O47vDWskcuRYuCqoPpOjXtEOhXi+Xqg4q7Z9olshu +QvZJ5frQrrHWm4zVNsgd0oHEXQQ4MLKKlIfMgYfSxIqAm8aYIQP+rmraGGPuJzA == X-ME-Sender: Received: by mailuser.nyi.internal (Postfix, from userid 99) id D4B74412B; Wed, 9 May 2018 10:01:55 -0400 (EDT) Message-Id: <1525874515.2186111.1366186400.099C668B@webmail.messagingengine.com> From: Brad Davis To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" X-Mailer: MessagingEngine.com Webmail Interface - ajax-29fe4c42 References: <201805091344.w49Dist5061908@repo.freebsd.org> In-Reply-To: <201805091344.w49Dist5061908@repo.freebsd.org> Subject: Re: svn commit: r333407 - head/share/mk Date: Wed, 09 May 2018 08:01:55 -0600 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 14:01:57 -0000 On Wed, May 9, 2018, at 7:44 AM, Brad Davis wrote: > Author: brd > Date: Wed May 9 13:44:54 2018 > New Revision: 333407 > URL: https://svnweb.freebsd.org/changeset/base/333407 > > Log: > Enable directory creation with FILESDIR. I forgot to note that this work was largely done by will@ and I just made some small tweaks. Regards, Brad Davis From owner-svn-src-head@freebsd.org Wed May 9 14:11:37 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50747FBBA14; Wed, 9 May 2018 14:11:37 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 02BEF6C827; Wed, 9 May 2018 14:11:37 +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 D9193127B8; Wed, 9 May 2018 14:11:36 +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 w49EBa2w073116; Wed, 9 May 2018 14:11:36 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49EBaa6073113; Wed, 9 May 2018 14:11:36 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805091411.w49EBaa6073113@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 May 2018 14:11:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333409 - in head/sys: netinet sys X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: netinet sys X-SVN-Commit-Revision: 333409 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 14:11:37 -0000 Author: imp Date: Wed May 9 14:11:35 2018 New Revision: 333409 URL: https://svnweb.freebsd.org/changeset/base/333409 Log: Minor style nits Use full copyright year. Remove 'All Rights Reserved' from new file (rights holder OK'd) Minor #ifdef motion and #endif tagging Remove __FBSDID macro from comments Sponsored by: Netflix OK'd by: rrs@ Modified: head/sys/netinet/tcp_hpts.c head/sys/netinet/tcp_hpts.h head/sys/sys/kern_prefetch.h Modified: head/sys/netinet/tcp_hpts.c ============================================================================== --- head/sys/netinet/tcp_hpts.c Wed May 9 13:53:10 2018 (r333408) +++ head/sys/netinet/tcp_hpts.c Wed May 9 14:11:35 2018 (r333409) @@ -1,6 +1,5 @@ /*- - * Copyright (c) 2016-8 - * Netflix Inc. All rights reserved. + * Copyright (c) 2016-2018 Netflix Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/netinet/tcp_hpts.h ============================================================================== --- head/sys/netinet/tcp_hpts.h Wed May 9 13:53:10 2018 (r333408) +++ head/sys/netinet/tcp_hpts.h Wed May 9 14:11:35 2018 (r333409) @@ -1,8 +1,5 @@ -#ifndef __tcp_hpts_h__ -#define __tcp_hpts_h__ /*- - * Copyright (c) 2016-8 - * Netflix Inc. All rights reserved. + * Copyright (c) 2016-18 Netflix Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -25,9 +22,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * __FBSDID("$FreeBSD$") + * $FreeBSD$ */ +#ifndef __tcp_hpts_h__ +#define __tcp_hpts_h__ + /* * The hpts uses a 102400 wheel. The wheel * defines the time in 10 usec increments (102400 x 10). @@ -300,5 +300,5 @@ tcp_get_usecs(struct timeval *tv) return (tcp_tv_to_usectick(tv)); } -#endif -#endif +#endif /* _KERNEL */ +#endif /* __tcp_hpts_h__ */ Modified: head/sys/sys/kern_prefetch.h ============================================================================== --- head/sys/sys/kern_prefetch.h Wed May 9 13:53:10 2018 (r333408) +++ head/sys/sys/kern_prefetch.h Wed May 9 14:11:35 2018 (r333409) @@ -1,7 +1,5 @@ -#ifndef __kern_prefetch_h__ /*- - * Copyright (c) 2016-8 - * Netflix Inc. All rights reserved. + * Copyright (c) 2016-2018 Netflix Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -24,8 +22,9 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * __FBSDID("$FreeBSD$") + * $FreeBSD$ */ +#ifndef __kern_prefetch_h__ #define __kern_prefetch_h__ #ifdef _KERNEL @@ -39,5 +38,5 @@ kern_prefetch(const volatile void *addr, void* before) #endif } -#endif -#endif +#endif /* _KERNEL */ +#endif /* __kern_prefetch_h__ */ From owner-svn-src-head@freebsd.org Wed May 9 14:39:25 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99B5AFBEAE9; Wed, 9 May 2018 14:39:25 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BABD7368E; Wed, 9 May 2018 14:39:25 +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 2D62712C7D; Wed, 9 May 2018 14:39:25 +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 w49EdPKI087563; Wed, 9 May 2018 14:39:25 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49EdObK087561; Wed, 9 May 2018 14:39:24 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805091439.w49EdObK087561@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 9 May 2018 14:39:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333411 - in head/sys: amd64/amd64 kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: amd64/amd64 kern X-SVN-Commit-Revision: 333411 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 14:39:25 -0000 Author: kib Date: Wed May 9 14:39:24 2018 New Revision: 333411 URL: https://svnweb.freebsd.org/changeset/base/333411 Log: Avoid calls to bzero() before ireloc. Evaluate cpu_stdext_feature early to have moved link_elf_ireloc() see correct flags, most important is SMAP. Tested by: mjg Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D15367 Modified: head/sys/amd64/amd64/machdep.c head/sys/kern/link_elf.c Modified: head/sys/amd64/amd64/machdep.c ============================================================================== --- head/sys/amd64/amd64/machdep.c Wed May 9 14:38:07 2018 (r333410) +++ head/sys/amd64/amd64/machdep.c Wed May 9 14:39:24 2018 (r333411) @@ -1556,19 +1556,24 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) TSRAW(&thread0, TS_ENTER, __func__, NULL); - /* - * This may be done better later if it gets more high level - * components in it. If so just link td->td_proc here. - */ - proc_linkup0(&proc0, &thread0); - kmdp = init_ops.parse_preload_data(modulep); identify_cpu1(); identify_hypervisor(); + /* + * hw.cpu_stdext_disable is ignored by the call, it will be + * re-evaluted by the below call to finishidentcpu(). + */ + identify_cpu2(); - /* link_elf_ireloc(kmdp); */ + link_elf_ireloc(kmdp); + /* + * This may be done better later if it gets more high level + * components in it. If so just link td->td_proc here. + */ + proc_linkup0(&proc0, &thread0); + /* Init basic tunables, hz etc */ init_param1(); @@ -1753,7 +1758,6 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) cninit(); amd64_kdb_init(); } - link_elf_ireloc(kmdp); getmemsize(kmdp, physfree); init_param2(physmem); Modified: head/sys/kern/link_elf.c ============================================================================== --- head/sys/kern/link_elf.c Wed May 9 14:38:07 2018 (r333410) +++ head/sys/kern/link_elf.c Wed May 9 14:39:24 2018 (r333411) @@ -1692,9 +1692,15 @@ link_elf_ireloc(caddr_t kmdp) { struct elf_file eff; elf_file_t ef; + volatile char *c; + size_t i; ef = &eff; - bzero(ef, sizeof(*ef)); + + /* Do not use bzero/memset before ireloc is done. */ + for (c = (char *)ef, i = 0; i < sizeof(*ef); i++) + c[i] = 0; + ef->modptr = kmdp; ef->dynamic = (Elf_Dyn *)&_DYNAMIC; parse_dynamic(ef); From owner-svn-src-head@freebsd.org Wed May 9 15:16:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F886FC092E; Wed, 9 May 2018 15:16:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 140717C0F2; Wed, 9 May 2018 15:16: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 E4C0A1332C; Wed, 9 May 2018 15:16:25 +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 w49FGPVP007532; Wed, 9 May 2018 15:16:25 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49FGPhQ007531; Wed, 9 May 2018 15:16:25 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805091516.w49FGPhQ007531@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 9 May 2018 15:16:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333413 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 333413 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 15:16:26 -0000 Author: mjg Date: Wed May 9 15:16:25 2018 New Revision: 333413 URL: https://svnweb.freebsd.org/changeset/base/333413 Log: amd64: depessimize bcmp for small buffers Adapt assembly generated by clang for memcmp and use it for <= 64 sized compares (which are the vast majority). Sample result of doing stats on Broadwell (% of samples): before: 4.0 kernel bcmp cache_lookup after : 0.7 kernel bcmp cache_lookup The routine is most definitely still not optimal. Anyone interested in spending time improving it is welcome to take over. Reviewed by: kib Modified: head/sys/amd64/amd64/support.S Modified: head/sys/amd64/amd64/support.S ============================================================================== --- head/sys/amd64/amd64/support.S Wed May 9 14:50:32 2018 (r333412) +++ head/sys/amd64/amd64/support.S Wed May 9 15:16:25 2018 (r333413) @@ -98,17 +98,40 @@ END(sse2_pagezero) ENTRY(bcmp) PUSH_FRAME_POINTER + test %rdx,%rdx + je 1f + cmpq $64,%rdx + jg 4f + + xor %ecx,%ecx +2: + movzbl (%rdi,%rcx,1),%eax + movzbl (%rsi,%rcx,1),%r8d + cmp %r8b,%al + jne 3f + add $0x1,%rcx + cmp %rcx,%rdx + jne 2b +1: + xor %eax,%eax + POP_FRAME_POINTER + retq +3: + mov $1,%eax + POP_FRAME_POINTER + retq +4: movq %rdx,%rcx shrq $3,%rcx repe cmpsq - jne 1f + jne 5f movq %rdx,%rcx andq $7,%rcx repe cmpsb -1: +5: setne %al movsbl %al,%eax POP_FRAME_POINTER From owner-svn-src-head@freebsd.org Wed May 9 15:20:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E0267FC0A38; Wed, 9 May 2018 15:20:39 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8DA037C439; Wed, 9 May 2018 15:20:39 +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 6FD1C13345; Wed, 9 May 2018 15:20:39 +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 w49FKd0a007926; Wed, 9 May 2018 15:20:39 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49FKdMM007925; Wed, 9 May 2018 15:20:39 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201805091520.w49FKdMM007925@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 9 May 2018 15:20:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333414 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 333414 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 15:20:40 -0000 Author: jhb Date: Wed May 9 15:20:39 2018 New Revision: 333414 URL: https://svnweb.freebsd.org/changeset/base/333414 Log: Recognize the base/gcc compiler as GCC. The existing patterns for 'cc --version' output do not work for GCC built from the base/gcc port. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D15357 Modified: head/share/mk/bsd.compiler.mk Modified: head/share/mk/bsd.compiler.mk ============================================================================== --- head/share/mk/bsd.compiler.mk Wed May 9 15:16:25 2018 (r333413) +++ head/share/mk/bsd.compiler.mk Wed May 9 15:20:39 2018 (r333414) @@ -157,7 +157,7 @@ ${X_}COMPILER_TYPE:= gcc ${X_}COMPILER_TYPE:= clang . elif ${_v:Mgcc} ${X_}COMPILER_TYPE:= gcc -. elif ${_v:M\(GCC\)} +. elif ${_v:M\(GCC\)} || ${_v:M*GNU} ${X_}COMPILER_TYPE:= gcc . elif ${_v:Mclang} || ${_v:M(clang-*.*.*)} ${X_}COMPILER_TYPE:= clang From owner-svn-src-head@freebsd.org Wed May 9 15:25:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC887FC0DF2; Wed, 9 May 2018 15:25:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9E22F7F084; Wed, 9 May 2018 15:25:26 +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 7AE21134D0; Wed, 9 May 2018 15:25: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 w49FPQDI012811; Wed, 9 May 2018 15:25:26 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49FPQn6012810; Wed, 9 May 2018 15:25:26 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201805091525.w49FPQn6012810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 9 May 2018 15:25:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333416 - head/sys/sparc64/sparc64 X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/sparc64/sparc64 X-SVN-Commit-Revision: 333416 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 15:25:27 -0000 Author: jhb Date: Wed May 9 15:25:26 2018 New Revision: 333416 URL: https://svnweb.freebsd.org/changeset/base/333416 Log: Report TRAP_BRKPT for breakpoint traps on sparc64. Reviewed by: marius MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D15190 Modified: head/sys/sparc64/sparc64/trap.c Modified: head/sys/sparc64/sparc64/trap.c ============================================================================== --- head/sys/sparc64/sparc64/trap.c Wed May 9 15:22:40 2018 (r333415) +++ head/sys/sparc64/sparc64/trap.c Wed May 9 15:25:26 2018 (r333416) @@ -257,7 +257,7 @@ trap(struct trapframe *tf) struct thread *td; struct proc *p; int error; - int sig; + int sig, ucode; register_t addr; ksiginfo_t ksi; @@ -277,6 +277,7 @@ trap(struct trapframe *tf) td->td_pticks = 0; td->td_frame = tf; addr = tf->tf_tpc; + ucode = (int)tf->tf_type; /* XXX not POSIX */ if (td->td_cowgen != p->p_cowgen) thread_cow_update(td); @@ -300,6 +301,10 @@ trap(struct trapframe *tf) case T_CORRECTED_ECC_ERROR: sig = trap_cecc(); break; + case T_BREAKPOINT: + sig = SIGTRAP; + ucode = TRAP_BRKPT; + break; default: if (tf->tf_type > T_MAX) panic("trap: bad trap type %#lx (user)", @@ -322,7 +327,7 @@ trap(struct trapframe *tf) kdb_enter(KDB_WHY_TRAPSIG, "trapsig"); ksiginfo_init_trap(&ksi); ksi.ksi_signo = sig; - ksi.ksi_code = (int)tf->tf_type; /* XXX not POSIX */ + ksi.ksi_code = ucode; ksi.ksi_addr = (void *)addr; ksi.ksi_trapno = (int)tf->tf_type; trapsignal(td, &ksi); From owner-svn-src-head@freebsd.org Wed May 9 15:58:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41685FC39ED; Wed, 9 May 2018 15:58:11 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E4B3585908; Wed, 9 May 2018 15:58:10 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id A9845AD92; Wed, 9 May 2018 15:58:10 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: Cy Schubert Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet Date: Wed, 09 May 2018 07:58:14 -0700 Message-ID: <4065288.o9QKfFzp22@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201805090207.w49279t8006603@repo.freebsd.org> References: <201805090207.w49279t8006603@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 15:58:11 -0000 On Wednesday, May 09, 2018 02:07:09 AM Cy Schubert wrote: > Author: cy > Date: Wed May 9 02:07:09 2018 > New Revision: 333393 > URL: https://svnweb.freebsd.org/changeset/base/333393 > > Log: > Document intentional fallthrough. (CID 976535) > > MFC after: 1 week > > Modified: > head/sys/contrib/ipfilter/netinet/fil.c > > Modified: head/sys/contrib/ipfilter/netinet/fil.c > ============================================================================== > --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 2018 (r333392) > +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 2018 (r333393) > @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) > } > } > #endif > + /* fallthrough is intentional */ > case ICMP_SOURCEQUENCH : > case ICMP_REDIRECT : > case ICMP_TIMXCEED : Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there are three other instances of that style in ipfilter already (and none others using this comment style). -- John Baldwin From owner-svn-src-head@freebsd.org Wed May 9 16:02:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1175DFC3D18 for ; Wed, 9 May 2018 16:02:10 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x230.google.com (mail-it0-x230.google.com [IPv6:2607:f8b0:4001:c0b::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8D6F787003 for ; Wed, 9 May 2018 16:02:09 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x230.google.com with SMTP id 70-v6so21252784ity.2 for ; Wed, 09 May 2018 09:02:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=ddWT+QN1yRtZXW2gbguEB4oCw2rsLUNhbOxLMa3NstM=; b=riCwccItWoLg/sNaKy7yM0ZOcQuh2QXVnPDI5ajAIX4UMses92jxbFfQs/9hGq1xpV WIomaUxWxMFsAo1Poie+OvjUxTUTnX2BMdM+4xXW9klfdVhmvsa4m99nddz8Lqqp5H1a QWbws22Tmi4yj4gjZbnbv5rksL/ustNe+49R/Fu4AJgKdWu+MTjimTZpSI/rTup+Ilq0 jsOpoLe3BNSxSuQYC846arUtPYlURNPF5Zv/8uEMujbUW6SsPhIl7v4wuKX6p4qYJpeJ R0itzzSyaEIDpQpGjKiCJGE6cN2MAhlQgKa21tU1kM87YdVP7PnZYeyVoNQtyHMHjaYi bmtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=ddWT+QN1yRtZXW2gbguEB4oCw2rsLUNhbOxLMa3NstM=; b=aDDOY/KDnYo4gZX2HTr8xzX1zyjlq9zE2tAOodpmxdNYNmTq2ugK8Arg+7qBvhSN6A 2179eedHBiOSZvnMayZFq3glvAR6A2yd++aMmMCeVOFy0Xr187PD8uNzjZ4F8XxmRWWv hEPCKJxybBol4q7NfNRUJJzHjvmd3eWyA0xxDc1YWTteAWsNFpQPrrYvNyKxQuWf4SVg d5KggtLQXw8ZDZF4gD80hufgXfGDERRIS57zJHpBo83Wchn6InGtyERFGxmSVab1Ox70 /YLZW/VNgsrKccqYDSG9nEuhQ3E0pSsN1emKpUpzZuxui/ifdgIO3H8C8C/LAtdWo1O+ FaTg== X-Gm-Message-State: ALKqPwdXZL23Ixjjq1x3+BQ4SV9ParRvwUNFbYUmI6YNNOYasxjduxOl aSZ9rDKPsyl2a4sxpbKqgChaGB39icAsTLay/KlQZg== X-Google-Smtp-Source: AB8JxZqUA/sp+KfMMjlOQEcW7dM4eHFSuDvmhPckpKxXFcKsbDX7cugbxxosR9UJcziH4OfUIB3Qi5cvZwx7CLta3xY= X-Received: by 2002:a24:e983:: with SMTP id f125-v6mr10543159ith.36.1525881727735; Wed, 09 May 2018 09:02:07 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Wed, 9 May 2018 09:02:06 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <4065288.o9QKfFzp22@ralph.baldwin.cx> References: <201805090207.w49279t8006603@repo.freebsd.org> <4065288.o9QKfFzp22@ralph.baldwin.cx> From: Warner Losh Date: Wed, 9 May 2018 10:02:06 -0600 X-Google-Sender-Auth: zxtqYUfhu0iiTRNerk_A6DrXd1o Message-ID: Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet To: John Baldwin Cc: Cy Schubert , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 16:02:10 -0000 On Wed, May 9, 2018 at 8:58 AM, John Baldwin wrote: > On Wednesday, May 09, 2018 02:07:09 AM Cy Schubert wrote: > > Author: cy > > Date: Wed May 9 02:07:09 2018 > > New Revision: 333393 > > URL: https://svnweb.freebsd.org/changeset/base/333393 > > > > Log: > > Document intentional fallthrough. (CID 976535) > > > > MFC after: 1 week > > > > Modified: > > head/sys/contrib/ipfilter/netinet/fil.c > > > > Modified: head/sys/contrib/ipfilter/netinet/fil.c > > ============================================================ > ================== > > --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 2018 > (r333392) > > +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 2018 > (r333393) > > @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) > > } > > } > > #endif > > + /* fallthrough is intentional */ > > case ICMP_SOURCEQUENCH : > > case ICMP_REDIRECT : > > case ICMP_TIMXCEED : > > Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there are > three other instances of that style in ipfilter already (and none others > using this comment style). > /* FALLTHROUGH */ is actually an old-school lint directive that other tools have picked up. Warner From owner-svn-src-head@freebsd.org Wed May 9 16:44:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26521FC4CFA; Wed, 9 May 2018 16:44: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CE72270ACD; Wed, 9 May 2018 16:44:23 +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 AB98E141E5; Wed, 9 May 2018 16:44:23 +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 w49GiNOX053255; Wed, 9 May 2018 16:44:23 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49GiJmt053235; Wed, 9 May 2018 16:44:19 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201805091644.w49GiJmt053235@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 9 May 2018 16:44:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333418 - in head: share/man/man4 share/man/man9 stand/lua sys/arm/allwinner sys/arm/allwinner/clkng sys/dev/extres/syscon usr.bin/grep/tests X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: share/man/man4 share/man/man9 stand/lua sys/arm/allwinner sys/arm/allwinner/clkng sys/dev/extres/syscon usr.bin/grep/tests X-SVN-Commit-Revision: 333418 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 16:44:24 -0000 Author: kevans Date: Wed May 9 16:44:19 2018 New Revision: 333418 URL: https://svnweb.freebsd.org/changeset/base/333418 Log: Remove "All Rights Reserved" on files that I hold sole copyright on See r333391 for more detail; in summary: it holds no weight and may be removed. Modified: head/share/man/man4/aw_sid.4 head/share/man/man4/aw_syscon.4 head/share/man/man9/style.lua.9 head/stand/lua/cli.lua head/stand/lua/core.lua.8 head/stand/lua/hook.lua head/stand/lua/logo-beastie.lua head/stand/lua/logo-beastiebw.lua head/stand/lua/logo-fbsdbw.lua head/stand/lua/logo-orb.lua head/stand/lua/logo-orbbw.lua head/stand/lua/menu.lua.8 head/sys/arm/allwinner/aw_syscon.c head/sys/arm/allwinner/clkng/ccu_a83t.c head/sys/arm/allwinner/clkng/ccu_a83t.h head/sys/dev/extres/syscon/syscon.c head/sys/dev/extres/syscon/syscon.h head/sys/dev/extres/syscon/syscon_generic.h head/usr.bin/grep/tests/grep_freebsd_test.sh Modified: head/share/man/man4/aw_sid.4 ============================================================================== --- head/share/man/man4/aw_sid.4 Wed May 9 16:14:12 2018 (r333417) +++ head/share/man/man4/aw_sid.4 Wed May 9 16:44:19 2018 (r333418) @@ -1,6 +1,5 @@ .\"- .\" Copyright (c) 2018 Kyle Evans -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/share/man/man4/aw_syscon.4 ============================================================================== --- head/share/man/man4/aw_syscon.4 Wed May 9 16:14:12 2018 (r333417) +++ head/share/man/man4/aw_syscon.4 Wed May 9 16:44:19 2018 (r333418) @@ -1,6 +1,5 @@ .\"- .\" Copyright (c) 2018 Kyle Evans -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/share/man/man9/style.lua.9 ============================================================================== --- head/share/man/man9/style.lua.9 Wed May 9 16:14:12 2018 (r333417) +++ head/share/man/man9/style.lua.9 Wed May 9 16:44:19 2018 (r333418) @@ -1,6 +1,5 @@ .\"- .\" Copyright (c) 2018 Kyle Evans -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/stand/lua/cli.lua ============================================================================== --- head/stand/lua/cli.lua Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/cli.lua Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- -- Copyright (c) 2018 Kyle Evans --- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions Modified: head/stand/lua/core.lua.8 ============================================================================== --- head/stand/lua/core.lua.8 Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/core.lua.8 Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ .\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD .\" .\" Copyright (c) 2018 Kyle Evans -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/stand/lua/hook.lua ============================================================================== --- head/stand/lua/hook.lua Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/hook.lua Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- -- Copyright (c) 2018 Kyle Evans --- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions Modified: head/stand/lua/logo-beastie.lua ============================================================================== --- head/stand/lua/logo-beastie.lua Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/logo-beastie.lua Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- -- Copyright (c) 2018 Kyle Evans --- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions Modified: head/stand/lua/logo-beastiebw.lua ============================================================================== --- head/stand/lua/logo-beastiebw.lua Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/logo-beastiebw.lua Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- -- Copyright (c) 2018 Kyle Evans --- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions Modified: head/stand/lua/logo-fbsdbw.lua ============================================================================== --- head/stand/lua/logo-fbsdbw.lua Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/logo-fbsdbw.lua Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- -- Copyright (c) 2018 Kyle Evans --- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions Modified: head/stand/lua/logo-orb.lua ============================================================================== --- head/stand/lua/logo-orb.lua Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/logo-orb.lua Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- -- Copyright (c) 2018 Kyle Evans --- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions Modified: head/stand/lua/logo-orbbw.lua ============================================================================== --- head/stand/lua/logo-orbbw.lua Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/logo-orbbw.lua Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- -- Copyright (c) 2018 Kyle Evans --- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions Modified: head/stand/lua/menu.lua.8 ============================================================================== --- head/stand/lua/menu.lua.8 Wed May 9 16:14:12 2018 (r333417) +++ head/stand/lua/menu.lua.8 Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ .\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD .\" .\" Copyright (c) 2018 Kyle Evans -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/sys/arm/allwinner/aw_syscon.c ============================================================================== --- head/sys/arm/allwinner/aw_syscon.c Wed May 9 16:14:12 2018 (r333417) +++ head/sys/arm/allwinner/aw_syscon.c Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2018 Kyle Evans - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/arm/allwinner/clkng/ccu_a83t.c ============================================================================== --- head/sys/arm/allwinner/clkng/ccu_a83t.c Wed May 9 16:14:12 2018 (r333417) +++ head/sys/arm/allwinner/clkng/ccu_a83t.c Wed May 9 16:44:19 2018 (r333418) @@ -1,6 +1,5 @@ /*- * Copyright (c) 2017 Kyle Evans - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/arm/allwinner/clkng/ccu_a83t.h ============================================================================== --- head/sys/arm/allwinner/clkng/ccu_a83t.h Wed May 9 16:14:12 2018 (r333417) +++ head/sys/arm/allwinner/clkng/ccu_a83t.h Wed May 9 16:44:19 2018 (r333418) @@ -1,6 +1,5 @@ /*- * Copyright (c) 2017 Kyle Evans - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/dev/extres/syscon/syscon.c ============================================================================== --- head/sys/dev/extres/syscon/syscon.c Wed May 9 16:14:12 2018 (r333417) +++ head/sys/dev/extres/syscon/syscon.c Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2017 Kyle Evans - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/dev/extres/syscon/syscon.h ============================================================================== --- head/sys/dev/extres/syscon/syscon.h Wed May 9 16:14:12 2018 (r333417) +++ head/sys/dev/extres/syscon/syscon.h Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2017 Kyle Evans - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/dev/extres/syscon/syscon_generic.h ============================================================================== --- head/sys/dev/extres/syscon/syscon_generic.h Wed May 9 16:14:12 2018 (r333417) +++ head/sys/dev/extres/syscon/syscon_generic.h Wed May 9 16:44:19 2018 (r333418) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2018 Kyle Evans - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/usr.bin/grep/tests/grep_freebsd_test.sh ============================================================================== --- head/usr.bin/grep/tests/grep_freebsd_test.sh Wed May 9 16:14:12 2018 (r333417) +++ head/usr.bin/grep/tests/grep_freebsd_test.sh Wed May 9 16:44:19 2018 (r333418) @@ -1,6 +1,5 @@ # # Copyright (c) 2017 Kyle Evans -# All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Wed May 9 16:52:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0BDE9FC5341; Wed, 9 May 2018 16:52:31 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B0883718C9; Wed, 9 May 2018 16:52:30 +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 9197014385; Wed, 9 May 2018 16:52:30 +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 w49GqUP0058448; Wed, 9 May 2018 16:52:30 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49GqSPw058441; Wed, 9 May 2018 16:52:28 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201805091652.w49GqSPw058441@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 9 May 2018 16:52:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333419 - in head: share/man/man4 share/man/man9 sys/arm/allwinner/clkng usr.bin/grep/tests usr.bin/hexdump/tests X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: share/man/man4 share/man/man9 sys/arm/allwinner/clkng usr.bin/grep/tests usr.bin/hexdump/tests X-SVN-Commit-Revision: 333419 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 16:52:31 -0000 Author: kevans Date: Wed May 9 16:52:28 2018 New Revision: 333419 URL: https://svnweb.freebsd.org/changeset/base/333419 Log: Standardize SPDX tag on files I've added Modified: head/share/man/man4/aw_sid.4 head/share/man/man4/aw_syscon.4 head/share/man/man9/style.lua.9 head/sys/arm/allwinner/clkng/ccu_a83t.c head/sys/arm/allwinner/clkng/ccu_a83t.h head/usr.bin/grep/tests/grep_freebsd_test.sh head/usr.bin/hexdump/tests/hexdump_test.sh head/usr.bin/hexdump/tests/od_test.sh Modified: head/share/man/man4/aw_sid.4 ============================================================================== --- head/share/man/man4/aw_sid.4 Wed May 9 16:44:19 2018 (r333418) +++ head/share/man/man4/aw_sid.4 Wed May 9 16:52:28 2018 (r333419) @@ -1,4 +1,6 @@ .\"- +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" .\" Copyright (c) 2018 Kyle Evans .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/share/man/man4/aw_syscon.4 ============================================================================== --- head/share/man/man4/aw_syscon.4 Wed May 9 16:44:19 2018 (r333418) +++ head/share/man/man4/aw_syscon.4 Wed May 9 16:52:28 2018 (r333419) @@ -1,4 +1,6 @@ .\"- +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" .\" Copyright (c) 2018 Kyle Evans .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/share/man/man9/style.lua.9 ============================================================================== --- head/share/man/man9/style.lua.9 Wed May 9 16:44:19 2018 (r333418) +++ head/share/man/man9/style.lua.9 Wed May 9 16:52:28 2018 (r333419) @@ -1,4 +1,6 @@ .\"- +.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD +.\" .\" Copyright (c) 2018 Kyle Evans .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/sys/arm/allwinner/clkng/ccu_a83t.c ============================================================================== --- head/sys/arm/allwinner/clkng/ccu_a83t.c Wed May 9 16:44:19 2018 (r333418) +++ head/sys/arm/allwinner/clkng/ccu_a83t.c Wed May 9 16:52:28 2018 (r333419) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2017 Kyle Evans * * Redistribution and use in source and binary forms, with or without Modified: head/sys/arm/allwinner/clkng/ccu_a83t.h ============================================================================== --- head/sys/arm/allwinner/clkng/ccu_a83t.h Wed May 9 16:44:19 2018 (r333418) +++ head/sys/arm/allwinner/clkng/ccu_a83t.h Wed May 9 16:52:28 2018 (r333419) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2017 Kyle Evans * * Redistribution and use in source and binary forms, with or without Modified: head/usr.bin/grep/tests/grep_freebsd_test.sh ============================================================================== --- head/usr.bin/grep/tests/grep_freebsd_test.sh Wed May 9 16:44:19 2018 (r333418) +++ head/usr.bin/grep/tests/grep_freebsd_test.sh Wed May 9 16:52:28 2018 (r333419) @@ -1,4 +1,6 @@ # +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# # Copyright (c) 2017 Kyle Evans # # Redistribution and use in source and binary forms, with or without Modified: head/usr.bin/hexdump/tests/hexdump_test.sh ============================================================================== --- head/usr.bin/hexdump/tests/hexdump_test.sh Wed May 9 16:44:19 2018 (r333418) +++ head/usr.bin/hexdump/tests/hexdump_test.sh Wed May 9 16:52:28 2018 (r333419) @@ -1,6 +1,7 @@ # +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# # Copyright (c) 2017 Kyle Evans -# All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/usr.bin/hexdump/tests/od_test.sh ============================================================================== --- head/usr.bin/hexdump/tests/od_test.sh Wed May 9 16:44:19 2018 (r333418) +++ head/usr.bin/hexdump/tests/od_test.sh Wed May 9 16:52:28 2018 (r333419) @@ -1,3 +1,4 @@ +# # SPDX-License-Identifier: BSD-2-Clause-FreeBSD # # Copyright 2018 (C) Yuri Pankov From owner-svn-src-head@freebsd.org Wed May 9 17:06:53 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF8FCFC5948; Wed, 9 May 2018 17:06:53 +0000 (UTC) (envelope-from zeising@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 700F574F76; Wed, 9 May 2018 17:06:53 +0000 (UTC) (envelope-from zeising@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BF581452D; Wed, 9 May 2018 17:06:53 +0000 (UTC) (envelope-from zeising@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49H6rng063526; Wed, 9 May 2018 17:06:53 GMT (envelope-from zeising@FreeBSD.org) Received: (from zeising@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49H6qPN063523; Wed, 9 May 2018 17:06:52 GMT (envelope-from zeising@FreeBSD.org) Message-Id: <201805091706.w49H6qPN063523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zeising set sender to zeising@FreeBSD.org using -f From: Niclas Zeising Date: Wed, 9 May 2018 17:06:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333420 - in head: lib/libc/string usr.sbin/ipfwpcap X-SVN-Group: head X-SVN-Commit-Author: zeising X-SVN-Commit-Paths: in head: lib/libc/string usr.sbin/ipfwpcap X-SVN-Commit-Revision: 333420 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 17:06:53 -0000 Author: zeising (doc,ports committer) Date: Wed May 9 17:06:52 2018 New Revision: 333420 URL: https://svnweb.freebsd.org/changeset/base/333420 Log: Remove "all rights reserved" on files where I have copyright. According to r333391 it is not needed any more. Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D15370 Modified: head/lib/libc/string/strchrnul.c head/usr.sbin/ipfwpcap/ipfwpcap.8 Modified: head/lib/libc/string/strchrnul.c ============================================================================== --- head/lib/libc/string/strchrnul.c Wed May 9 16:52:28 2018 (r333419) +++ head/lib/libc/string/strchrnul.c Wed May 9 17:06:52 2018 (r333420) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2013 Niclas Zeising - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/usr.sbin/ipfwpcap/ipfwpcap.8 ============================================================================== --- head/usr.sbin/ipfwpcap/ipfwpcap.8 Wed May 9 16:52:28 2018 (r333419) +++ head/usr.sbin/ipfwpcap/ipfwpcap.8 Wed May 9 17:06:52 2018 (r333420) @@ -1,5 +1,4 @@ .\" Copyright (c) 2006 Niclas Zeising -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Wed May 9 17:15:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49471FC5C74; Wed, 9 May 2018 17:15:55 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id D32EB773A2; Wed, 9 May 2018 17:15:54 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.55.3]) by phk.freebsd.dk (Postfix) with ESMTP id DE14114882; Wed, 9 May 2018 17:09:57 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.15.2/8.15.2) with ESMTPS id w49H9uOS027447 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 9 May 2018 17:09:56 GMT (envelope-from phk@critter.freebsd.dk) Received: (from phk@localhost) by critter.freebsd.dk (8.15.2/8.15.2/Submit) id w49H9u28027446; Wed, 9 May 2018 17:09:56 GMT (envelope-from phk) To: John Baldwin cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet In-reply-to: <4065288.o9QKfFzp22@ralph.baldwin.cx> From: "Poul-Henning Kamp" References: <201805090207.w49279t8006603@repo.freebsd.org> <4065288.o9QKfFzp22@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <27444.1525885796.1@critter.freebsd.dk> Date: Wed, 09 May 2018 17:09:56 +0000 Message-ID: <27445.1525885796@critter.freebsd.dk> X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 17:15:55 -0000 -------- In message <4065288.o9QKfFzp22@ralph.baldwin.cx>, John Baldwin writes: >Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there are >three other instances of that style in ipfilter already (and none others >using this comment style). Not to mention that code analysis tools like lint, FlexeLint, Coverity etc expect /* FALLTHROUGH */ comments. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-svn-src-head@freebsd.org Wed May 9 17:47:19 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01B7CFC66FE; Wed, 9 May 2018 17:47:19 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A0ADC7DDEF; Wed, 9 May 2018 17:47:18 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f54.google.com (mail-it0-f54.google.com [209.85.214.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 6986DB8B3; Wed, 9 May 2018 17:47:18 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f54.google.com with SMTP id q72-v6so11509929itc.0; Wed, 09 May 2018 10:47:18 -0700 (PDT) X-Gm-Message-State: ALKqPwdMsrEVIbd6c4/y+yvDCNrQuk+LCZ0689J1KrybOYqXNc3XK+Ch jjJ4UcXL1zfMCRLkndFCqB5V3frZbq9EsVk9eiw= X-Google-Smtp-Source: AB8JxZq71la03saaMgZyQrQU+s20N8+72Hp+SMH1daCTWZt89uHMtaQkT/h/EFxxJcFUO9RYNMT6YUuSa6jL9nL+O6o= X-Received: by 2002:a24:4455:: with SMTP id o82-v6mr10802043ita.4.1525888037736; Wed, 09 May 2018 10:47:17 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:b0c3:0:0:0:0:0 with HTTP; Wed, 9 May 2018 10:47:17 -0700 (PDT) In-Reply-To: <20180509124820.GA34572@tom-desk.erg.abdn.ac.uk> References: <201805062034.w46KYDUY088148@repo.freebsd.org> <20180509124820.GA34572@tom-desk.erg.abdn.ac.uk> From: Matthew Macy Date: Wed, 9 May 2018 10:47:17 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333309 - in head/sys: net netinet netinet6 To: Tom Jones Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 17:47:19 -0000 Can you tell me anything more about your workload? On Wed, May 9, 2018 at 5:48 AM, Tom Jones wrote: > On Sun, May 06, 2018 at 08:34:13PM +0000, Matt Macy wrote: >> Author: mmacy >> Date: Sun May 6 20:34:13 2018 >> New Revision: 333309 >> URL: https://svnweb.freebsd.org/changeset/base/333309 >> >> Log: >> r333175 introduced deferred deletion of multicast addresses in order to permit the driver ioctl >> to sleep on commands to the NIC when updating multicast filters. More generally this permitted >> driver's to use an sx as a softc lock. Unfortunately this change introduced a race whereby a >> a multicast update would still be queued for deletion when ifconfig deleted the interface >> thus calling down in to _purgemaddrs and synchronously deleting _all_ of the multicast addresses >> on the interface. >> >> Synchronously remove all external references to a multicast address before enqueueing for delete. >> > > Hi Matt, > > I am getting periodic panics on a FreeBSD CURRENT guest running bhyve on > a 11.1 Host. An idle guest will panic after about 5 minutes. Reverting > this commit stops the panics. > > Fatal trap 9: general protection fault while in kernel mode > cpuid = 0; apic id = 00 > instruction pointer = 0x20:0xffffffff80db01ac > stack pointer = 0x28:0xfffffe00121827d0 > frame pointer = 0x28:0xfffffe0012182800 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, long 1, def32 0, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 12 (swi4: clock (0)) > [ thread pid 12 tid 100023 ] > Stopped at in6m_disconnect+0x13c: cmpq %r13,(%rcx) > db> bt > Tracing pid 12 tid 100023 td 0xfffff8000322d000 > in6m_disconnect() at in6m_disconnect+0x13c/frame 0xfffffe0012182800 > mld_fasttimo() at mld_fasttimo+0x62b/frame 0xfffffe00121828d0 > pffasttimo() at pffasttimo+0x54/frame 0xfffffe0012182900 > softclock_call_cc() at softclock_call_cc+0x150/frame 0xfffffe00121829b0 > softclock() at softclock+0x7c/frame 0xfffffe00121829e0 > intr_event_execute_handlers() at intr_event_execute_handlers+0x99/frame 0xfffffe0012182a20 > ithread_loop() at ithread_loop+0xb7/frame 0xfffffe0012182a70 > fork_exit() at fork_exit+0x84/frame 0xfffffe0012182ab0 > fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0012182ab0 > --- trap 0, rip = 0, rsp = 0, rbp = 0 --- > > - [tj] > From owner-svn-src-head@freebsd.org Wed May 9 17:48:53 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3095FC67A1; Wed, 9 May 2018 17:48:53 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 509947ED7A; Wed, 9 May 2018 17:48:53 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E73714BAC; Wed, 9 May 2018 17:48:53 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49HmrKY083727; Wed, 9 May 2018 17:48:53 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Hmrsn083726; Wed, 9 May 2018 17:48:53 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805091748.w49Hmrsn083726@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Wed, 9 May 2018 17:48:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333421 - head/sys/dev/e1000 X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/dev/e1000 X-SVN-Commit-Revision: 333421 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 17:48:53 -0000 Author: mmacy Date: Wed May 9 17:48:52 2018 New Revision: 333421 URL: https://svnweb.freebsd.org/changeset/base/333421 Log: Remove bogus panic r333345 added a panic to the default case statement on the incorrect premise that it should "never happen" when in fact it is simply a different adapter version. Reported by: markj Approved by: sbruno Modified: head/sys/dev/e1000/e1000_82571.c Modified: head/sys/dev/e1000/e1000_82571.c ============================================================================== --- head/sys/dev/e1000/e1000_82571.c Wed May 9 17:06:52 2018 (r333420) +++ head/sys/dev/e1000/e1000_82571.c Wed May 9 17:48:52 2018 (r333421) @@ -1000,7 +1000,7 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) e1000_put_hw_semaphore_82574(hw); break; default: - panic("unknown mac type %x\n", hw->mac.type); + /* we didn't get the semaphore no need to put it */ break; } From owner-svn-src-head@freebsd.org Wed May 9 18:03:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1EBEFC7326; Wed, 9 May 2018 18:03:40 +0000 (UTC) (envelope-from thj@freebsd.org) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (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 4686F82EAC; Wed, 9 May 2018 18:03:39 +0000 (UTC) (envelope-from thj@freebsd.org) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 66D4620FED; Wed, 9 May 2018 14:03:39 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 09 May 2018 14:03:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=FjJxVlSeeWYa9W6CbWQv5AMpVDHKE FlTHY30pQ4nXwc=; b=YgJ50tQUERwT9yKqYQCvPY2wCoESVM+Jqx9ITz/dhGmhi dsjc/vfCLu4/tXQkXEt3IOwsFWginzark7mfvuA8pYVe5zbww1JedlJ64ueplBQy cTJJicpYk3uuFV3+TQx6cvzuAdepV4hR8JqKlS2UUNSVEo2bjAofIm4dx9k5+mhi YGKWD02X+HcSRdtjTd5QAr1FkvIY1SoK+cKupabHSDGVovOchxGLr5UoQT2Lncbn 9d6RMrKqpxd2Wo/zNAR8rPc/+QKe3aF0PJZ5OJEtzL957o0sbZoACQkckqm3eTiE Ya0vsbjRTn+zcuru9WbMi5FMKpZsL1ljy2eHo7OOg== X-ME-Sender: Received: from tom-desk.erg.abdn.ac.uk (tom-desk.erg.abdn.ac.uk [139.133.204.4]) by mail.messagingengine.com (Postfix) with ESMTPA id 85EF310252; Wed, 9 May 2018 14:03:38 -0400 (EDT) Date: Wed, 9 May 2018 19:03:23 +0100 From: Tom Jones To: Matthew Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333309 - in head/sys: net netinet netinet6 Message-ID: <20180509180323.GA35218@tom-desk.erg.abdn.ac.uk> References: <201805062034.w46KYDUY088148@repo.freebsd.org> <20180509124820.GA34572@tom-desk.erg.abdn.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 18:03:40 -0000 On Wed, May 09, 2018 at 10:47:17AM -0700, Matthew Macy wrote: > Can you tell me anything more about your workload? Running the VM snapshot based on r333209, with kernels built today. VM will panic sitting idle. Network has some light v6 multicast. root@freebsd:~ # cat /etc/rc.conf hostname="freebsd" ifconfig_DEFAULT="DHCP inet6 accept_rtadv" sshd_enable="YES" Single tap interface bridged with an igb interface. - [tj] From owner-svn-src-head@freebsd.org Wed May 9 18:10:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5F23FC748D; Wed, 9 May 2018 18:10:41 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (unknown [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 58F4B83236; Wed, 9 May 2018 18:10:41 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f47.google.com (mail-it0-f47.google.com [209.85.214.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 1DB53BAA7; Wed, 9 May 2018 18:10:41 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f47.google.com with SMTP id c3-v6so21753078itj.4; Wed, 09 May 2018 11:10:41 -0700 (PDT) X-Gm-Message-State: ALKqPweanMzY39zOJcsfH0Ps+3aoQf95gnHF+j1kulOKhDwlepDBnZEb oKCLCXj3dX9Wl6BXiaZtSWgj25JUUHaX935JsMc= X-Google-Smtp-Source: AB8JxZp1idTvDwXiuwyWS6DAHGyEpUExF9kxK4Fi/+z7mzh9JGjjuB7OpKY4EJSpHZ9hCShfQDKkR7//JT8Vg0mYhZo= X-Received: by 2002:a24:4455:: with SMTP id o82-v6mr10893860ita.4.1525889440641; Wed, 09 May 2018 11:10:40 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:b0c3:0:0:0:0:0 with HTTP; Wed, 9 May 2018 11:10:40 -0700 (PDT) In-Reply-To: <20180509180323.GA35218@tom-desk.erg.abdn.ac.uk> References: <201805062034.w46KYDUY088148@repo.freebsd.org> <20180509124820.GA34572@tom-desk.erg.abdn.ac.uk> <20180509180323.GA35218@tom-desk.erg.abdn.ac.uk> From: Matthew Macy Date: Wed, 9 May 2018 11:10:40 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333309 - in head/sys: net netinet netinet6 To: Tom Jones Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 18:10:41 -0000 On Wed, May 9, 2018 at 11:03 AM, Tom Jones wrote: > On Wed, May 09, 2018 at 10:47:17AM -0700, Matthew Macy wrote: >> Can you tell me anything more about your workload? > > Running the VM snapshot based on r333209, with kernels built today. VM > will panic sitting idle. Network has some light v6 multicast. > > root@freebsd:~ # cat /etc/rc.conf > hostname="freebsd" > ifconfig_DEFAULT="DHCP inet6 accept_rtadv" Thanks. Will try to reproduce and then fix ASAP. -M From owner-svn-src-head@freebsd.org Wed May 9 18:41:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6D35FC7DF5; Wed, 9 May 2018 18:41:05 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8B13E6A74C; Wed, 9 May 2018 18:41:05 +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 6D866153F0; Wed, 9 May 2018 18:41:05 +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 w49If5mT009960; Wed, 9 May 2018 18:41:05 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49If5vg009959; Wed, 9 May 2018 18:41:05 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805091841.w49If5vg009959@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 May 2018 18:41:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333424 - head/sbin/camcontrol X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sbin/camcontrol X-SVN-Commit-Revision: 333424 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 18:41:06 -0000 Author: imp Date: Wed May 9 18:41:04 2018 New Revision: 333424 URL: https://svnweb.freebsd.org/changeset/base/333424 Log: nda protocol rate reporting Report the NVMe spec, number of lanes (and max) as well as the PCIe generation we're negotiated at (and max) for the camcontrol rate command. Reviewed by: scottl (the output, not the code) Sponsored by: Netflix Modified: head/sbin/camcontrol/camcontrol.c Modified: head/sbin/camcontrol/camcontrol.c ============================================================================== --- head/sbin/camcontrol/camcontrol.c Wed May 9 18:39:31 2018 (r333423) +++ head/sbin/camcontrol/camcontrol.c Wed May 9 18:41:04 2018 (r333424) @@ -5167,7 +5167,22 @@ cts_print(struct cam_device *device, struct ccb_trans_ "enabled" : "disabled"); } } + if (cts->protocol == PROTO_NVME) { + struct ccb_trans_settings_nvme *nvmex = + &cts->xport_specific.nvme; + if (nvmex->valid & CTS_NVME_VALID_SPEC) { + fprintf(stdout, "%sNVMe Spec: %d.%d\n", pathstr, + NVME_MAJOR(nvmex->spec), + NVME_MINOR(nvmex->spec)); + } + if (nvmex->valid & CTS_NVME_VALID_LINK) { + fprintf(stdout, "%sPCIe lanes: %d (%d max)\n", pathstr, + nvmex->lanes, nvmex->max_lanes); + fprintf(stdout, "%sPCIe Generation: %d (%d max)\n", pathstr, + nvmex->speed, nvmex->max_speed); + } + } } /* From owner-svn-src-head@freebsd.org Wed May 9 18:47:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7BFBFC80D1; Wed, 9 May 2018 18:47:29 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 576306D159; Wed, 9 May 2018 18:47:29 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 33B9F15566; Wed, 9 May 2018 18:47:29 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49IlTkF014639; Wed, 9 May 2018 18:47:29 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49IlPPa014617; Wed, 9 May 2018 18:47:25 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805091847.w49IlPPa014617@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Wed, 9 May 2018 18:47:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333425 - in head/sys: cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs compat/cloudabi compat/linux compat/linuxkpi/common/include/linux dev/filemon dev/hwpmc fs/... X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs compat/cloudabi compat/linux compat/linuxkpi/common/include/linux dev/filemon dev/hwpmc fs/fdescfs fs/fuse kern nets... X-SVN-Commit-Revision: 333425 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 18:47:30 -0000 Author: mmacy Date: Wed May 9 18:47:24 2018 New Revision: 333425 URL: https://svnweb.freebsd.org/changeset/base/333425 Log: Eliminate the overhead of gratuitous repeated reinitialization of cap_rights - Add macros to allow preinitialization of cap_rights_t. - Convert most commonly used code paths to use preinitialized cap_rights_t. A 3.6% speedup in fstat was measured with this change. Reported by: mjg Reviewed by: oshogbo Approved by: sbruno MFC after: 1 month Modified: head/sys/cddl/compat/opensolaris/sys/file.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c head/sys/compat/cloudabi/cloudabi_file.c head/sys/compat/linux/linux_event.c head/sys/compat/linux/linux_file.c head/sys/compat/linux/linux_ioctl.c head/sys/compat/linux/linux_mmap.c head/sys/compat/linux/linux_socket.c head/sys/compat/linux/linux_stats.c head/sys/compat/linuxkpi/common/include/linux/file.h head/sys/dev/filemon/filemon.c head/sys/dev/hwpmc/hwpmc_logging.c head/sys/fs/fdescfs/fdesc_vnops.c head/sys/fs/fuse/fuse_vfsops.c head/sys/kern/kern_descrip.c head/sys/kern/kern_event.c head/sys/kern/kern_exec.c head/sys/kern/kern_sendfile.c head/sys/kern/kern_sig.c head/sys/kern/subr_capability.c head/sys/kern/sys_generic.c head/sys/kern/sys_procdesc.c head/sys/kern/uipc_mqueue.c head/sys/kern/uipc_sem.c head/sys/kern/uipc_syscalls.c head/sys/kern/vfs_aio.c head/sys/kern/vfs_syscalls.c head/sys/netsmb/smb_dev.c head/sys/sys/capsicum.h Modified: head/sys/cddl/compat/opensolaris/sys/file.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/file.h Wed May 9 18:41:04 2018 (r333424) +++ head/sys/cddl/compat/opensolaris/sys/file.h Wed May 9 18:47:24 2018 (r333425) @@ -52,10 +52,9 @@ static __inline void releasef(int fd) { struct file *fp; - cap_rights_t rights; /* No CAP_ rights required, as we're only releasing. */ - if (fget(curthread, fd, cap_rights_init(&rights), &fp) == 0) { + if (fget(curthread, fd, &cap_no_rights, &fp) == 0) { fdrop(fp, curthread); fdrop(fp, curthread); } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 9 18:47:24 2018 (r333425) @@ -4446,7 +4446,6 @@ zfs_ioc_recv(zfs_cmd_t *zc) char *origin = NULL; char *tosnap; char tofs[ZFS_MAX_DATASET_NAME_LEN]; - cap_rights_t rights; boolean_t first_recvd_props = B_FALSE; if (dataset_namecheck(zc->zc_value, NULL, NULL) != 0 || @@ -4467,7 +4466,7 @@ zfs_ioc_recv(zfs_cmd_t *zc) #ifdef illumos fp = getf(fd); #else - fget_read(curthread, fd, cap_rights_init(&rights, CAP_PREAD), &fp); + fget_read(curthread, fd, &cap_pread_rights, &fp); #endif if (fp == NULL) { nvlist_free(props); @@ -4744,13 +4743,11 @@ zfs_ioc_send(zfs_cmd_t *zc) dsl_pool_rele(dp, FTAG); } else { file_t *fp; - cap_rights_t rights; #ifdef illumos fp = getf(zc->zc_cookie); #else - fget_write(curthread, zc->zc_cookie, - cap_rights_init(&rights, CAP_WRITE), &fp); + fget_write(curthread, zc->zc_cookie, &cap_write_rights, &fp); #endif if (fp == NULL) return (SET_ERROR(EBADF)); @@ -5387,15 +5384,13 @@ static int zfs_ioc_diff(zfs_cmd_t *zc) { file_t *fp; - cap_rights_t rights; offset_t off; int error; #ifdef illumos fp = getf(zc->zc_cookie); #else - fget_write(curthread, zc->zc_cookie, - cap_rights_init(&rights, CAP_WRITE), &fp); + fget_write(curthread, zc->zc_cookie, &cap_write_rights, &fp); #endif if (fp == NULL) return (SET_ERROR(EBADF)); @@ -5787,7 +5782,6 @@ zfs_ioc_unjail(zfs_cmd_t *zc) static int zfs_ioc_send_new(const char *snapname, nvlist_t *innvl, nvlist_t *outnvl) { - cap_rights_t rights; file_t *fp; int error; offset_t off; @@ -5815,7 +5809,7 @@ zfs_ioc_send_new(const char *snapname, nvlist_t *innvl #ifdef illumos file_t *fp = getf(fd); #else - fget_write(curthread, fd, cap_rights_init(&rights, CAP_WRITE), &fp); + fget_write(curthread, fd, &cap_write_rights, &fp); #endif if (fp == NULL) return (SET_ERROR(EBADF)); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c Wed May 9 18:47:24 2018 (r333425) @@ -126,7 +126,7 @@ zfs_onexit_fd_hold(int fd, minor_t *minorp) void *data; int error; - fp = getf(fd, cap_rights_init(&rights)); + fp = getf(fd, &cap_no_rights); if (fp == NULL) return (SET_ERROR(EBADF)); Modified: head/sys/compat/cloudabi/cloudabi_file.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_file.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/cloudabi/cloudabi_file.c Wed May 9 18:47:24 2018 (r333425) @@ -390,12 +390,11 @@ cloudabi_sys_file_readdir(struct thread *td, struct file *fp; struct vnode *vp; void *readbuf; - cap_rights_t rights; cloudabi_dircookie_t offset; int error; /* Obtain directory vnode. */ - error = getvnode(td, uap->fd, cap_rights_init(&rights, CAP_READ), &fp); + error = getvnode(td, uap->fd, &cap_read_rights, &fp); if (error != 0) { if (error == EINVAL) return (ENOTDIR); @@ -559,14 +558,13 @@ cloudabi_sys_file_stat_fget(struct thread *td, struct stat sb; cloudabi_filestat_t csb; struct file *fp; - cap_rights_t rights; cloudabi_filetype_t filetype; int error; memset(&csb, 0, sizeof(csb)); /* Fetch file descriptor attributes. */ - error = fget(td, uap->fd, cap_rights_init(&rights, CAP_FSTAT), &fp); + error = fget(td, uap->fd, &cap_fstat_rights, &fp); if (error != 0) return (error); error = fo_stat(fp, &sb, td->td_ucred, td); Modified: head/sys/compat/linux/linux_event.c ============================================================================== --- head/sys/compat/linux/linux_event.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/linux/linux_event.c Wed May 9 18:47:24 2018 (r333425) @@ -1190,14 +1190,13 @@ linux_timerfd_curval(struct timerfd *tfd, struct itime int linux_timerfd_gettime(struct thread *td, struct linux_timerfd_gettime_args *args) { - cap_rights_t rights; struct l_itimerspec lots; struct itimerspec ots; struct timerfd *tfd; struct file *fp; int error; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_READ), &fp); + error = fget(td, args->fd, &cap_read_rights, &fp); if (error != 0) return (error); tfd = fp->f_data; @@ -1225,7 +1224,6 @@ linux_timerfd_settime(struct thread *td, struct linux_ struct l_itimerspec lots; struct itimerspec nts, ots; struct timespec cts, ts; - cap_rights_t rights; struct timerfd *tfd; struct timeval tv; struct file *fp; @@ -1241,7 +1239,7 @@ linux_timerfd_settime(struct thread *td, struct linux_ if (error != 0) return (error); - error = fget(td, args->fd, cap_rights_init(&rights, CAP_WRITE), &fp); + error = fget(td, args->fd, &cap_write_rights, &fp); if (error != 0) return (error); tfd = fp->f_data; Modified: head/sys/compat/linux/linux_file.c ============================================================================== --- head/sys/compat/linux/linux_file.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/linux/linux_file.c Wed May 9 18:47:24 2018 (r333425) @@ -89,7 +89,6 @@ linux_creat(struct thread *td, struct linux_creat_args static int linux_common_open(struct thread *td, int dirfd, char *path, int l_flags, int mode) { - cap_rights_t rights; struct proc *p = td->td_proc; struct file *fp; int fd; @@ -144,7 +143,7 @@ linux_common_open(struct thread *td, int dirfd, char * * checking below. */ fd = td->td_retval[0]; - if (fget(td, fd, cap_rights_init(&rights, CAP_IOCTL), &fp) == 0) { + if (fget(td, fd, &cap_ioctl_rights, &fp) == 0) { if (fp->f_type != DTYPE_VNODE) { fdrop(fp, td); goto done; @@ -263,13 +262,12 @@ linux_llseek(struct thread *td, struct linux_llseek_ar static int linux_getdents_error(struct thread *td, int fd, int err) { - cap_rights_t rights; struct vnode *vp; struct file *fp; int error; /* Linux return ENOTDIR in case when fd is not a directory. */ - error = getvnode(td, fd, cap_rights_init(&rights, CAP_READ), &fp); + error = getvnode(td, fd, &cap_read_rights, &fp); if (error != 0) return (error); vp = fp->f_vnode; @@ -985,15 +983,13 @@ linux_fdatasync(td, uap) int linux_pread(struct thread *td, struct linux_pread_args *uap) { - cap_rights_t rights; struct vnode *vp; int error; error = kern_pread(td, uap->fd, uap->buf, uap->nbyte, uap->offset); if (error == 0) { /* This seems to violate POSIX but Linux does it. */ - error = fgetvp(td, uap->fd, - cap_rights_init(&rights, CAP_PREAD), &vp); + error = fgetvp(td, uap->fd, &cap_pread_rights, &vp); if (error != 0) return (error); if (vp->v_type == VDIR) { @@ -1275,7 +1271,6 @@ fcntl_common(struct thread *td, struct linux_fcntl_arg { struct l_flock linux_flock; struct flock bsd_flock; - cap_rights_t rights; struct file *fp; long arg; int error, result; @@ -1379,7 +1374,7 @@ fcntl_common(struct thread *td, struct linux_fcntl_arg * pipes under Linux-2.2.35 at least). */ error = fget(td, args->fd, - cap_rights_init(&rights, CAP_FCNTL), &fp); + &cap_fcntl_rights, &fp); if (error) return (error); if (fp->f_type == DTYPE_PIPE) { Modified: head/sys/compat/linux/linux_ioctl.c ============================================================================== --- head/sys/compat/linux/linux_ioctl.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/linux/linux_ioctl.c Wed May 9 18:47:24 2018 (r333425) @@ -194,13 +194,12 @@ struct linux_hd_big_geometry { static int linux_ioctl_hdio(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; int error; u_int sectorsize, fwcylinders, fwheads, fwsectors; off_t mediasize, bytespercyl; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); switch (args->cmd & 0xffff) { @@ -278,13 +277,12 @@ linux_ioctl_hdio(struct thread *td, struct linux_ioctl static int linux_ioctl_disk(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; int error; u_int sectorsize; off_t mediasize; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); switch (args->cmd & 0xffff) { @@ -717,11 +715,10 @@ linux_ioctl_termio(struct thread *td, struct linux_ioc struct termios bios; struct linux_termios lios; struct linux_termio lio; - cap_rights_t rights; struct file *fp; int error; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); @@ -1461,11 +1458,10 @@ bsd_to_linux_dvd_authinfo(struct dvd_authinfo *bp, l_d static int linux_ioctl_cdrom(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; int error; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); switch (args->cmd & 0xffff) { @@ -1998,11 +1994,10 @@ linux_ioctl_sound(struct thread *td, struct linux_ioct static int linux_ioctl_console(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; int error; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); switch (args->cmd & 0xffff) { @@ -2411,7 +2406,6 @@ static int linux_ioctl_socket(struct thread *td, struct linux_ioctl_args *args) { char lifname[LINUX_IFNAMSIZ], ifname[IFNAMSIZ]; - cap_rights_t rights; struct ifnet *ifp; struct file *fp; int error, type; @@ -2419,7 +2413,7 @@ linux_ioctl_socket(struct thread *td, struct linux_ioc ifp = NULL; error = 0; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); type = fp->f_type; @@ -2649,11 +2643,10 @@ linux_ioctl_socket(struct thread *td, struct linux_ioc static int linux_ioctl_private(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; int error, type; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); type = fp->f_type; @@ -2685,11 +2678,10 @@ linux_ioctl_sg_io(struct thread *td, struct linux_ioct { struct sg_io_hdr io; struct sg_io_hdr32 io32; - cap_rights_t rights; struct file *fp; int error; - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) { printf("sg_linux_ioctl: fget returned %d\n", error); return (error); @@ -2997,7 +2989,6 @@ linux_v4l_cliplist_copy(struct l_video_window *lvw, st static int linux_ioctl_v4l(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; int error; struct video_tuner vtun; @@ -3016,7 +3007,7 @@ linux_ioctl_v4l(struct thread *td, struct linux_ioctl_ case LINUX_VIDIOCGTUNER: error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = copyin((void *) args->arg, &l_vtun, sizeof(l_vtun)); @@ -3036,7 +3027,7 @@ linux_ioctl_v4l(struct thread *td, struct linux_ioctl_ case LINUX_VIDIOCSTUNER: error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = copyin((void *) args->arg, &l_vtun, sizeof(l_vtun)); @@ -3055,7 +3046,7 @@ linux_ioctl_v4l(struct thread *td, struct linux_ioctl_ case LINUX_VIDIOCGWIN: error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = fo_ioctl(fp, VIDIOCGWIN, &vwin, td->td_ucred, td); @@ -3069,7 +3060,7 @@ linux_ioctl_v4l(struct thread *td, struct linux_ioctl_ case LINUX_VIDIOCSWIN: error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = copyin((void *) args->arg, &l_vwin, sizeof(l_vwin)); @@ -3094,7 +3085,7 @@ linux_ioctl_v4l(struct thread *td, struct linux_ioctl_ case LINUX_VIDIOCGFBUF: error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = fo_ioctl(fp, VIDIOCGFBUF, &vbuf, td->td_ucred, td); @@ -3108,7 +3099,7 @@ linux_ioctl_v4l(struct thread *td, struct linux_ioctl_ case LINUX_VIDIOCSFBUF: error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = copyin((void *) args->arg, &l_vbuf, sizeof(l_vbuf)); @@ -3138,7 +3129,7 @@ linux_ioctl_v4l(struct thread *td, struct linux_ioctl_ case LINUX_VIDIOCSMICROCODE: error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = copyin((void *) args->arg, &l_vcode, sizeof(l_vcode)); @@ -3302,7 +3293,6 @@ bsd_to_linux_v4l2_format(struct v4l2_format *vf, struc static int linux_ioctl_v4l2(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; int error; struct v4l2_format vformat; @@ -3395,7 +3385,7 @@ linux_ioctl_v4l2(struct thread *td, struct linux_ioctl if (error) return (error); error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error) return (error); if (linux_to_bsd_v4l2_format(&l_vformat, &vformat) != 0) @@ -3420,7 +3410,7 @@ linux_ioctl_v4l2(struct thread *td, struct linux_ioctl return (error); linux_to_bsd_v4l2_standard(&l_vstd, &vstd); error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error) return (error); error = fo_ioctl(fp, VIDIOC_ENUMSTD, (caddr_t)&vstd, @@ -3444,7 +3434,7 @@ linux_ioctl_v4l2(struct thread *td, struct linux_ioctl if (error != 0) return (error); error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); error = fo_ioctl(fp, VIDIOC_ENUMINPUT, (caddr_t)&vinp, @@ -3465,7 +3455,7 @@ linux_ioctl_v4l2(struct thread *td, struct linux_ioctl if (error) return (error); error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error) return (error); linux_to_bsd_v4l2_buffer(&l_vbuf, &vbuf); @@ -3640,7 +3630,6 @@ linux_ioctl_fbsd_usb(struct thread *td, struct linux_i static int linux_ioctl_evdev(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; clockid_t clock; int error; @@ -3668,7 +3657,7 @@ linux_ioctl_evdev(struct thread *td, struct linux_ioct return (error); error = fget(td, args->fd, - cap_rights_init(&rights, CAP_IOCTL), &fp); + &cap_ioctl_rights, &fp); if (error != 0) return (error); @@ -3694,7 +3683,6 @@ linux_ioctl_evdev(struct thread *td, struct linux_ioct int linux_ioctl(struct thread *td, struct linux_ioctl_args *args) { - cap_rights_t rights; struct file *fp; struct handler_element *he; int error, cmd; @@ -3705,7 +3693,7 @@ linux_ioctl(struct thread *td, struct linux_ioctl_args (unsigned long)args->cmd); #endif - error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp); + error = fget(td, args->fd, &cap_ioctl_rights, &fp); if (error != 0) return (error); if ((fp->f_flag & (FREAD|FWRITE)) == 0) { Modified: head/sys/compat/linux/linux_mmap.c ============================================================================== --- head/sys/compat/linux/linux_mmap.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/linux/linux_mmap.c Wed May 9 18:47:24 2018 (r333425) @@ -72,7 +72,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); @@ -126,7 +125,7 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s * protection options specified. */ - error = fget(td, fd, cap_rights_init(&rights, CAP_MMAP), &fp); + error = fget(td, fd, &cap_mmap_rights, &fp); if (error != 0) return (error); if (fp->f_type != DTYPE_VNODE && fp->f_type != DTYPE_DEV) { Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/linux/linux_socket.c Wed May 9 18:47:24 2018 (r333425) @@ -766,7 +766,6 @@ linux_bind(struct thread *td, struct linux_bind_args * int linux_connect(struct thread *td, struct linux_connect_args *args) { - cap_rights_t rights; struct socket *so; struct sockaddr *sa; struct file *fp; @@ -788,7 +787,7 @@ linux_connect(struct thread *td, struct linux_connect_ * when on a non-blocking socket. Instead it returns the * error getsockopt(SOL_SOCKET, SO_ERROR) would return on BSD. */ - error = getsock_cap(td, args->s, cap_rights_init(&rights, CAP_CONNECT), + error = getsock_cap(td, args->s, &cap_connect_rights, &fp, &fflag, NULL); if (error != 0) return (error); @@ -824,7 +823,6 @@ linux_accept_common(struct thread *td, int s, l_uintpt socklen_t * __restrict anamelen; int flags; } */ bsd_args; - cap_rights_t rights; struct socket *so; struct file *fp; int error, error1; @@ -842,8 +840,7 @@ linux_accept_common(struct thread *td, int s, l_uintpt if (error == EFAULT && namelen != sizeof(struct sockaddr_in)) return (EINVAL); if (error == EINVAL) { - error1 = getsock_cap(td, s, - cap_rights_init(&rights, CAP_ACCEPT), &fp, NULL, NULL); + error1 = getsock_cap(td, s, &cap_accept_rights, &fp, NULL, NULL); if (error1 != 0) return (error1); so = fp->f_data; Modified: head/sys/compat/linux/linux_stats.c ============================================================================== --- head/sys/compat/linux/linux_stats.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/linux/linux_stats.c Wed May 9 18:47:24 2018 (r333425) @@ -103,14 +103,13 @@ translate_fd_major_minor(struct thread *td, int fd, st { struct file *fp; struct vnode *vp; - cap_rights_t rights; int major, minor; /* * No capability rights required here. */ if ((!S_ISCHR(buf->st_mode) && !S_ISBLK(buf->st_mode)) || - fget(td, fd, cap_rights_init(&rights), &fp) != 0) + fget(td, fd, &cap_no_rights, &fp) != 0) return; vp = fp->f_vnode; if (vp != NULL && vp->v_rdev != NULL && @@ -680,12 +679,11 @@ linux_newfstatat(struct thread *td, struct linux_newfs int linux_syncfs(struct thread *td, struct linux_syncfs_args *args) { - cap_rights_t rights; struct mount *mp; struct vnode *vp; int error, save; - error = fgetvp(td, args->fd, cap_rights_init(&rights, CAP_FSYNC), &vp); + error = fgetvp(td, args->fd, &cap_fsync_rights, &vp); if (error != 0) /* * Linux syncfs() returns only EBADF, however fgetvp() Modified: head/sys/compat/linuxkpi/common/include/linux/file.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/file.h Wed May 9 18:41:04 2018 (r333424) +++ head/sys/compat/linuxkpi/common/include/linux/file.h Wed May 9 18:47:24 2018 (r333425) @@ -50,12 +50,11 @@ extern struct fileops linuxfileops; static inline struct linux_file * linux_fget(unsigned int fd) { - cap_rights_t rights; struct file *file; /* lookup file pointer by file descriptor index */ if (fget_unlocked(curthread->td_proc->p_fd, fd, - cap_rights_init(&rights), &file, NULL) != 0) + &cap_no_rights, &file, NULL) != 0) return (NULL); /* check if file handle really belongs to us */ @@ -88,11 +87,10 @@ file_count(struct linux_file *filp) static inline void put_unused_fd(unsigned int fd) { - cap_rights_t rights; struct file *file; if (fget_unlocked(curthread->td_proc->p_fd, fd, - cap_rights_init(&rights), &file, NULL) != 0) { + &cap_no_rights, &file, NULL) != 0) { return; } /* @@ -109,11 +107,10 @@ put_unused_fd(unsigned int fd) static inline void fd_install(unsigned int fd, struct linux_file *filp) { - cap_rights_t rights; struct file *file; if (fget_unlocked(curthread->td_proc->p_fd, fd, - cap_rights_init(&rights), &file, NULL) != 0) { + &cap_no_rights, &file, NULL) != 0) { filp->_file = NULL; } else { filp->_file = file; Modified: head/sys/dev/filemon/filemon.c ============================================================================== --- head/sys/dev/filemon/filemon.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/dev/filemon/filemon.c Wed May 9 18:47:24 2018 (r333425) @@ -361,7 +361,6 @@ filemon_ioctl(struct cdev *dev, u_long cmd, caddr_t da int error = 0; struct filemon *filemon; struct proc *p; - cap_rights_t rights; if ((error = devfs_get_cdevpriv((void **) &filemon)) != 0) return (error); @@ -377,7 +376,7 @@ filemon_ioctl(struct cdev *dev, u_long cmd, caddr_t da } error = fget_write(td, *(int *)data, - cap_rights_init(&rights, CAP_PWRITE), + &cap_pwrite_rights, &filemon->fp); if (error == 0) /* Write the file header. */ Modified: head/sys/dev/hwpmc/hwpmc_logging.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_logging.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/dev/hwpmc/hwpmc_logging.c Wed May 9 18:47:24 2018 (r333425) @@ -638,7 +638,6 @@ int pmclog_configure_log(struct pmc_mdep *md, struct pmc_owner *po, int logfd) { struct proc *p; - cap_rights_t rights; int error; sx_assert(&pmc_sx, SA_XLOCKED); @@ -655,8 +654,7 @@ pmclog_configure_log(struct pmc_mdep *md, struct pmc_o po->po_file)); /* get a reference to the file state */ - error = fget_write(curthread, logfd, - cap_rights_init(&rights, CAP_WRITE), &po->po_file); + error = fget_write(curthread, logfd, &cap_write_rights, &po->po_file); if (error) goto error; Modified: head/sys/fs/fdescfs/fdesc_vnops.c ============================================================================== --- head/sys/fs/fdescfs/fdesc_vnops.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/fs/fdescfs/fdesc_vnops.c Wed May 9 18:47:24 2018 (r333425) @@ -286,7 +286,6 @@ fdesc_lookup(struct vop_lookup_args *ap) struct thread *td = cnp->cn_thread; struct file *fp; struct fdesc_get_ino_args arg; - cap_rights_t rights; int nlen = cnp->cn_namelen; u_int fd, fd1; int error; @@ -331,7 +330,7 @@ fdesc_lookup(struct vop_lookup_args *ap) /* * No rights to check since 'fp' isn't actually used. */ - if ((error = fget(td, fd, cap_rights_init(&rights), &fp)) != 0) + if ((error = fget(td, fd, &cap_no_rights, &fp)) != 0) goto bad; /* Check if we're looking up ourselves. */ @@ -613,7 +612,6 @@ static int fdesc_readlink(struct vop_readlink_args *va) { struct vnode *vp, *vn; - cap_rights_t rights; struct thread *td; struct uio *uio; struct file *fp; @@ -631,7 +629,7 @@ fdesc_readlink(struct vop_readlink_args *va) VOP_UNLOCK(vn, 0); td = curthread; - error = fget_cap(td, fd_fd, cap_rights_init(&rights), &fp, NULL); + error = fget_cap(td, fd_fd, &cap_no_rights, &fp, NULL); if (error != 0) goto out; Modified: head/sys/fs/fuse/fuse_vfsops.c ============================================================================== --- head/sys/fs/fuse/fuse_vfsops.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/fs/fuse/fuse_vfsops.c Wed May 9 18:47:24 2018 (r333425) @@ -222,7 +222,6 @@ fuse_vfsop_mount(struct mount *mp) struct file *fp, *fptmp; char *fspec, *subtype; struct vfsoptlist *opts; - cap_rights_t rights; subtype = NULL; max_read_set = 0; @@ -292,7 +291,7 @@ fuse_vfsop_mount(struct mount *mp) FS_DEBUG2G("mntopts 0x%jx\n", (uintmax_t)mntopts); - err = fget(td, fd, cap_rights_init(&rights, CAP_READ), &fp); + err = fget(td, fd, &cap_read_rights, &fp); if (err != 0) { FS_DEBUG("invalid or not opened device: data=%p\n", data); goto out; Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/kern/kern_descrip.c Wed May 9 18:47:24 2018 (r333425) @@ -490,7 +490,6 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ struct filedescent *fde; struct proc *p; struct vnode *vp; - cap_rights_t rights; int error, flg, tmp; uint64_t bsize; off_t foffset; @@ -548,8 +547,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ break; case F_GETFL: - error = fget_fcntl(td, fd, - cap_rights_init(&rights, CAP_FCNTL), F_GETFL, &fp); + error = fget_fcntl(td, fd, &cap_fcntl_rights, F_GETFL, &fp); if (error != 0) break; td->td_retval[0] = OFLAGS(fp->f_flag); @@ -557,8 +555,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ break; case F_SETFL: - error = fget_fcntl(td, fd, - cap_rights_init(&rights, CAP_FCNTL), F_SETFL, &fp); + error = fget_fcntl(td, fd, &cap_fcntl_rights, F_SETFL, &fp); if (error != 0) break; do { @@ -585,8 +582,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ break; case F_GETOWN: - error = fget_fcntl(td, fd, - cap_rights_init(&rights, CAP_FCNTL), F_GETOWN, &fp); + error = fget_fcntl(td, fd, &cap_fcntl_rights, F_GETOWN, &fp); if (error != 0) break; error = fo_ioctl(fp, FIOGETOWN, &tmp, td->td_ucred, td); @@ -596,8 +592,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ break; case F_SETOWN: - error = fget_fcntl(td, fd, - cap_rights_init(&rights, CAP_FCNTL), F_SETOWN, &fp); + error = fget_fcntl(td, fd, &cap_fcntl_rights, F_SETOWN, &fp); if (error != 0) break; tmp = arg; @@ -618,8 +613,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ case F_SETLK: do_setlk: - cap_rights_init(&rights, CAP_FLOCK); - error = fget_unlocked(fdp, fd, &rights, &fp, NULL); + error = fget_unlocked(fdp, fd, &cap_flock_rights, &fp, NULL); if (error != 0) break; if (fp->f_type != DTYPE_VNODE) { @@ -711,7 +705,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ * that the closing thread was a bit slower and that the * advisory lock succeeded before the close. */ - error = fget_unlocked(fdp, fd, &rights, &fp2, NULL); + error = fget_unlocked(fdp, fd, &cap_no_rights, &fp2, NULL); if (error != 0) { fdrop(fp, td); break; @@ -729,8 +723,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ break; case F_GETLK: - error = fget_unlocked(fdp, fd, - cap_rights_init(&rights, CAP_FLOCK), &fp, NULL); + error = fget_unlocked(fdp, fd, &cap_flock_rights, &fp, NULL); if (error != 0) break; if (fp->f_type != DTYPE_VNODE) { @@ -767,8 +760,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ arg = arg ? 128 * 1024: 0; /* FALLTHROUGH */ case F_READAHEAD: - error = fget_unlocked(fdp, fd, - cap_rights_init(&rights), &fp, NULL); + error = fget_unlocked(fdp, fd, &cap_no_rights, &fp, NULL); if (error != 0) break; if (fp->f_type != DTYPE_VNODE) { @@ -1363,12 +1355,11 @@ int kern_fstat(struct thread *td, int fd, struct stat *sbp) { struct file *fp; - cap_rights_t rights; int error; AUDIT_ARG_FD(fd); - error = fget(td, fd, cap_rights_init(&rights, CAP_FSTAT), &fp); + error = fget(td, fd, &cap_fstat_rights, &fp); if (error != 0) return (error); @@ -1445,10 +1436,9 @@ kern_fpathconf(struct thread *td, int fd, int name, lo { struct file *fp; struct vnode *vp; - cap_rights_t rights; int error; - error = fget(td, fd, cap_rights_init(&rights, CAP_FPATHCONF), &fp); + error = fget(td, fd, &cap_fpathconf_rights, &fp); if (error != 0) return (error); @@ -2982,10 +2972,9 @@ sys_flock(struct thread *td, struct flock_args *uap) struct file *fp; struct vnode *vp; struct flock lf; - cap_rights_t rights; int error; - error = fget(td, uap->fd, cap_rights_init(&rights, CAP_FLOCK), &fp); + error = fget(td, uap->fd, &cap_flock_rights, &fp); if (error != 0) return (error); if (fp->f_type != DTYPE_VNODE) { @@ -3633,7 +3622,7 @@ kern_proc_filedesc_out(struct proc *p, struct sbuf *s #ifdef CAPABILITIES rights = *cap_rights(fdp, i); #else /* !CAPABILITIES */ - cap_rights_init(&rights); + rights = cap_no_rights; #endif /* * Create sysctl entry. It is OK to drop the filedesc Modified: head/sys/kern/kern_event.c ============================================================================== --- head/sys/kern/kern_event.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/kern/kern_event.c Wed May 9 18:47:24 2018 (r333425) @@ -1286,7 +1286,6 @@ kqueue_register(struct kqueue *kq, struct kevent *kev, struct file *fp; struct knote *kn, *tkn; struct knlist *knl; - cap_rights_t rights; int error, filt, event; int haskqglobal, filedesc_unlock; @@ -1322,8 +1321,7 @@ findkn: if (kev->ident > INT_MAX) error = EBADF; else - error = fget(td, kev->ident, - cap_rights_init(&rights, CAP_EVENT), &fp); + error = fget(td, kev->ident, &cap_event_rights, &fp); if (error) goto done; Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/kern/kern_exec.c Wed May 9 18:47:24 2018 (r333425) @@ -374,7 +374,6 @@ do_execve(struct thread *td, struct image_args *args, struct ucred *tracecred = NULL; #endif struct vnode *oldtextvp = NULL, *newtextvp; - cap_rights_t rights; int credential_changing; int textset; #ifdef MAC @@ -455,8 +454,7 @@ interpret: /* * Descriptors opened only with O_EXEC or O_RDONLY are allowed. */ - error = fgetvp_exec(td, args->fd, - cap_rights_init(&rights, CAP_FEXECVE), &newtextvp); + error = fgetvp_exec(td, args->fd, &cap_fexecve_rights, &newtextvp); if (error) goto exec_fail; vn_lock(newtextvp, LK_EXCLUSIVE | LK_RETRY); Modified: head/sys/kern/kern_sendfile.c ============================================================================== --- head/sys/kern/kern_sendfile.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/kern/kern_sendfile.c Wed May 9 18:47:24 2018 (r333425) @@ -511,7 +511,6 @@ static int sendfile_getsock(struct thread *td, int s, struct file **sock_fp, struct socket **so) { - cap_rights_t rights; int error; *sock_fp = NULL; @@ -520,7 +519,7 @@ sendfile_getsock(struct thread *td, int s, struct file /* * The socket must be a stream socket and connected. */ - error = getsock_cap(td, s, cap_rights_init(&rights, CAP_SEND), + error = getsock_cap(td, s, &cap_send_rights, sock_fp, NULL, NULL); if (error != 0) return (error); @@ -949,7 +948,6 @@ sendfile(struct thread *td, struct sendfile_args *uap, struct sf_hdtr hdtr; struct uio *hdr_uio, *trl_uio; struct file *fp; - cap_rights_t rights; off_t sbytes; int error; @@ -1000,10 +998,8 @@ sendfile(struct thread *td, struct sendfile_args *uap, * sendfile(2) can start at any offset within a file so we require * CAP_READ+CAP_SEEK = CAP_PREAD. */ - if ((error = fget_read(td, uap->fd, - cap_rights_init(&rights, CAP_PREAD), &fp)) != 0) { + if ((error = fget_read(td, uap->fd, &cap_pread_rights, &fp)) != 0) goto out; - } error = fo_sendfile(fp, uap->s, hdr_uio, trl_uio, uap->offset, uap->nbytes, &sbytes, uap->flags, td); Modified: head/sys/kern/kern_sig.c ============================================================================== --- head/sys/kern/kern_sig.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/kern/kern_sig.c Wed May 9 18:47:24 2018 (r333425) @@ -1789,7 +1789,6 @@ int sys_pdkill(struct thread *td, struct pdkill_args *uap) { struct proc *p; - cap_rights_t rights; int error; AUDIT_ARG_SIGNUM(uap->signum); @@ -1797,8 +1796,7 @@ sys_pdkill(struct thread *td, struct pdkill_args *uap) if ((u_int)uap->signum > _SIG_MAXSIG) return (EINVAL); - error = procdesc_find(td, uap->fd, - cap_rights_init(&rights, CAP_PDKILL), &p); + error = procdesc_find(td, uap->fd, &cap_pdkill_rights, &p); if (error) return (error); AUDIT_ARG_PROCESS(p); Modified: head/sys/kern/subr_capability.c ============================================================================== --- head/sys/kern/subr_capability.c Wed May 9 18:41:04 2018 (r333424) +++ head/sys/kern/subr_capability.c Wed May 9 18:47:24 2018 (r333425) @@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$"); #ifdef _KERNEL #include - +#include #include #else /* !_KERNEL */ #include @@ -53,6 +53,38 @@ __FBSDID("$FreeBSD$"); #ifdef _KERNEL #define assert(exp) KASSERT((exp), ("%s:%u", __func__, __LINE__)) + +CAP_RIGHTS_DEFINE1(cap_accept_rights, CAP_ACCEPT); +CAP_RIGHTS_DEFINE1(cap_bind_rights, CAP_BIND); +CAP_RIGHTS_DEFINE1(cap_connect_rights, CAP_CONNECT); +CAP_RIGHTS_DEFINE1(cap_event_rights, CAP_EVENT); +CAP_RIGHTS_DEFINE1(cap_fchdir_rights, CAP_FCHDIR); +CAP_RIGHTS_DEFINE1(cap_fcntl_rights, CAP_FCNTL); +CAP_RIGHTS_DEFINE1(cap_fexecve_rights, CAP_FEXECVE); +CAP_RIGHTS_DEFINE1(cap_flock_rights, CAP_FLOCK); +CAP_RIGHTS_DEFINE1(cap_fpathconf_rights, CAP_FPATHCONF); +CAP_RIGHTS_DEFINE1(cap_fstat_rights, CAP_FSTAT); +CAP_RIGHTS_DEFINE1(cap_fsync_rights, CAP_FSYNC); +CAP_RIGHTS_DEFINE1(cap_ftruncate_rights, CAP_FTRUNCATE); +CAP_RIGHTS_DEFINE1(cap_getpeername_rights, CAP_GETPEERNAME); +CAP_RIGHTS_DEFINE1(cap_getsockname_rights, CAP_GETSOCKNAME); +CAP_RIGHTS_DEFINE1(cap_getsockopt_rights, CAP_GETSOCKOPT); +CAP_RIGHTS_DEFINE1(cap_ioctl_rights, CAP_IOCTL); +CAP_RIGHTS_DEFINE1(cap_listen_rights, CAP_LISTEN); +CAP_RIGHTS_DEFINE1(cap_mmap_rights, CAP_MMAP); +CAP_RIGHTS_DEFINE1(cap_pdgetpid_rights, CAP_PDGETPID); +CAP_RIGHTS_DEFINE1(cap_pdkill_rights, CAP_PDKILL); +CAP_RIGHTS_DEFINE1(cap_pread_rights, CAP_PREAD); +CAP_RIGHTS_DEFINE1(cap_pwrite_rights, CAP_PWRITE); +CAP_RIGHTS_DEFINE1(cap_read_rights, CAP_READ); +CAP_RIGHTS_DEFINE1(cap_recv_rights, CAP_RECV); +CAP_RIGHTS_DEFINE1(cap_send_rights, CAP_SEND); +CAP_RIGHTS_DEFINE1(cap_setsockopt_rights, CAP_SETSOCKOPT); +CAP_RIGHTS_DEFINE1(cap_shutdown_rights, CAP_SHUTDOWN); +CAP_RIGHTS_DEFINE1(cap_write_rights, CAP_WRITE); + +__read_mostly cap_rights_t cap_no_rights; +CAP_RIGHTS_SYSINIT0(cap_no_rights, cap_no_rights); #endif #define CAPARSIZE_MIN (CAP_RIGHTS_VERSION_00 + 2) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Wed May 9 18:51:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 87913FC82CF; Wed, 9 May 2018 18:51:36 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2CCAE6DAC4; Wed, 9 May 2018 18:51:36 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0F1B3155B9; Wed, 9 May 2018 18:51:36 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49IpZqX017836; Wed, 9 May 2018 18:51:35 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49IpZQ5017834; Wed, 9 May 2018 18:51:35 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805091851.w49IpZQ5017834@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Wed, 9 May 2018 18:51:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333426 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 333426 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 18:51:36 -0000 Author: mmacy Date: Wed May 9 18:51:35 2018 New Revision: 333426 URL: https://svnweb.freebsd.org/changeset/base/333426 Log: Add taskqgroup_config_gtask_deinit to support teardown after taskqgroup_config_gtask_init. Approved by: sbruno Modified: head/sys/kern/subr_gtaskqueue.c head/sys/sys/gtaskqueue.h Modified: head/sys/kern/subr_gtaskqueue.c ============================================================================== --- head/sys/kern/subr_gtaskqueue.c Wed May 9 18:47:24 2018 (r333425) +++ head/sys/kern/subr_gtaskqueue.c Wed May 9 18:51:35 2018 (r333426) @@ -987,3 +987,9 @@ taskqgroup_config_gtask_init(void *ctx, struct groupta GROUPTASK_INIT(gtask, 0, fn, ctx); taskqgroup_attach(qgroup_config, gtask, gtask, -1, name); } + +void +taskqgroup_config_gtask_deinit(struct grouptask *gtask) +{ + taskqgroup_detach(qgroup_config, gtask); +} Modified: head/sys/sys/gtaskqueue.h ============================================================================== --- head/sys/sys/gtaskqueue.h Wed May 9 18:47:24 2018 (r333425) +++ head/sys/sys/gtaskqueue.h Wed May 9 18:51:35 2018 (r333426) @@ -63,6 +63,7 @@ void taskqgroup_destroy(struct taskqgroup *qgroup); int taskqgroup_adjust(struct taskqgroup *qgroup, int cnt, int stride); void taskqgroup_config_gtask_init(void *ctx, struct grouptask *gtask, gtask_fn_t *fn, const char *name); +void taskqgroup_config_gtask_deinit(struct grouptask *gtask); #define TASK_ENQUEUED 0x1 #define TASK_SKIP_WAKEUP 0x2 From owner-svn-src-head@freebsd.org Wed May 9 19:05:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9653AFC8860; Wed, 9 May 2018 19:05:28 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48A2672D54; Wed, 9 May 2018 19:05:28 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 243191588D; Wed, 9 May 2018 19:05:28 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49J5RUO024654; Wed, 9 May 2018 19:05:27 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49J5Rjj024653; Wed, 9 May 2018 19:05:27 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201805091905.w49J5Rjj024653@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 9 May 2018 19:05:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333427 - head/sys/contrib/ipfilter/netinet X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/sys/contrib/ipfilter/netinet X-SVN-Commit-Revision: 333427 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 19:05:28 -0000 Author: cy Date: Wed May 9 19:05:27 2018 New Revision: 333427 URL: https://svnweb.freebsd.org/changeset/base/333427 Log: Fix style error introduced in r333393. Reported by: jhb, imp, phk MFC after: 6 days X-MFC with: r333393 Modified: head/sys/contrib/ipfilter/netinet/fil.c Modified: head/sys/contrib/ipfilter/netinet/fil.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 18:51:35 2018 (r333426) +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 19:05:27 2018 (r333427) @@ -1299,7 +1299,7 @@ ipf_pr_icmp(fin) } } #endif - /* fallthrough is intentional */ + /* FALLTHROUGH */ case ICMP_SOURCEQUENCH : case ICMP_REDIRECT : case ICMP_TIMXCEED : From owner-svn-src-head@freebsd.org Wed May 9 19:08:01 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6853EFC8B7F; Wed, 9 May 2018 19:08:01 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.9]) (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 9496173047; Wed, 9 May 2018 19:08:00 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id GURKfMjyCuYopGURLf4JRC; Wed, 09 May 2018 13:07:52 -0600 X-Authority-Analysis: v=2.3 cv=GopsBH9C c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=VUJBJC2UJ8kA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=nvwLtNBOv7apgak8wIsA:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id 2EAF732E; Wed, 9 May 2018 12:07:50 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id w49J7YxG003672; Wed, 9 May 2018 12:07:34 -0700 (PDT) (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 w49J7Y0L003669; Wed, 9 May 2018 12:07:34 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201805091907.w49J7Y0L003669@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 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: John Baldwin cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet In-Reply-To: Message from John Baldwin of "Wed, 09 May 2018 07:58:14 -0700." <4065288.o9QKfFzp22@ralph.baldwin.cx> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 09 May 2018 12:07:34 -0700 X-CMAE-Envelope: MS4wfGcJX3ojBLJZMrpCKBJ71eR+X99Aphm6RSxt+PE9MykEfd3VnrPPMxp/o1wOznEf20/Mm6snfbsqgXhOYsD+A+EMNF11zewhGFAquy7en+T4BJXhK1OZ jE2NC8HcJW3ToQlcuH2iBCCCSi+XABweidW8zA4ysuycQfZEym+iS2C8fBF7MksjcCaS1lXPFc98wYBDxOzm6MxxMqEo1W4fY+w5GCUx/ZjV4rHeeP2fB2PJ u1RudVMen/8NDLAXJggwEoYuMw+/3PwOsmBnC8PDGhpemvomApm7o7T8R7dNusxDJwGi+3m/t2WslxWHC6GwUzLcf1hupe05jnPsiBGKsNo= X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 19:08:01 -0000 In message <4065288.o9QKfFzp22@ralph.baldwin.cx>, John Baldwin writes: > On Wednesday, May 09, 2018 02:07:09 AM Cy Schubert wrote: > > Author: cy > > Date: Wed May 9 02:07:09 2018 > > New Revision: 333393 > > URL: https://svnweb.freebsd.org/changeset/base/333393 > > > > Log: > > Document intentional fallthrough. (CID 976535) > > > > MFC after: 1 week > > > > Modified: > > head/sys/contrib/ipfilter/netinet/fil.c > > > > Modified: head/sys/contrib/ipfilter/netinet/fil.c > > =========================================================================== > === > > --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 2018 > (r333392) > > +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 2018 > (r333393) > > @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) > > } > > } > > #endif > > + /* fallthrough is intentional */ > > case ICMP_SOURCEQUENCH : > > case ICMP_REDIRECT : > > case ICMP_TIMXCEED : > > Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there are > three other instances of that style in ipfilter already (and none others > using this comment style). Thanks John. It's been fixed in r333393. -- 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-head@freebsd.org Wed May 9 19:09:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E8707FC8C3C; Wed, 9 May 2018 19:09:33 +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 38343731B2; Wed, 9 May 2018 19:09:32 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id GUQHfoPpwSzNNGUQJfE2VR; Wed, 09 May 2018 13:06:48 -0600 X-Authority-Analysis: v=2.3 cv=KuxjJ1eN c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=VUJBJC2UJ8kA:10 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=LiUY94_sdSCVOa8-Wv0A:9 a=CjuIK1q_8ugA:10 a=SgE0gsHR3q8A:10 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id 9E76932D; Wed, 9 May 2018 12:06:45 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id w49J6Tnr003658; Wed, 9 May 2018 12:06:29 -0700 (PDT) (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 w49J6TKd003655; Wed, 9 May 2018 12:06:29 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201805091906.w49J6TKd003655@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 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: "Poul-Henning Kamp" cc: John Baldwin , Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet In-Reply-To: Message from "Poul-Henning Kamp" of "Wed, 09 May 2018 17:09:56 -0000." <27445.1525885796@critter.freebsd.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 09 May 2018 12:06:29 -0700 X-CMAE-Envelope: MS4wfOW9mrMXsog4Fo8RTrAuIqVizgcW7faDW3njT6o1+O39QRI/u0vLcgR8nk6h6Fx10vkLljivo12vzNzwYkOP1oVAa//5ZpsQTz6Cy7BbUjOYqanX6BOF u7Qe7rs089UZKDVFi6h+i6ogjVEhf3MVQIiSx/0ZBJ5ebrz4kJxFOd8KYQmyJ1AkhuDUJPAZ8E4cqlKxWANx4AQ/3AnHrGRwzXcXplZ0Czjn9Sfc/K3ORWjt bskhvE2CgbfnYOagANomOOOGZgb6guNx5MI9JDWOKLFXOvzi4UsObJSz2onkorpca4mzO96DwvKa1nNMbfSHls7v4KBjhmFmyyPepaekrHc= X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 19:09:34 -0000 In message <27445.1525885796@critter.freebsd.dk>, "Poul-Henning Kamp" writes: > -------- > In message <4065288.o9QKfFzp22@ralph.baldwin.cx>, John Baldwin writes: > > >Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there are > >three other instances of that style in ipfilter already (and none others > >using this comment style). > > Not to mention that code analysis tools like lint, FlexeLint, Coverity etc > expect /* FALLTHROUGH */ comments. Thanks everyone. Just fixed in r333427. -- 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-head@freebsd.org Wed May 9 19:13:32 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC740FC8F1E; Wed, 9 May 2018 19:13:32 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.12]) (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 EEEF27360E; Wed, 9 May 2018 19:13:31 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id GUWhfMmNnuYopGUWjf4KjZ; Wed, 09 May 2018 13:13:25 -0600 X-Authority-Analysis: v=2.3 cv=GopsBH9C c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=VUJBJC2UJ8kA:10 a=VxmjJ2MpAAAA:8 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=L-z-6Hhc_PHMCk-cKloA:9 a=CjuIK1q_8ugA:10 a=SgE0gsHR3q8A:10 a=7gXAzLPJhVmCkEl4_tsf:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy8 [10.2.2.6]) by spqr.komquats.com (Postfix) with ESMTPS id 2854034B; Wed, 9 May 2018 12:13:23 -0700 (PDT) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id w49JD7AV017696; Wed, 9 May 2018 12:13:07 -0700 (PDT) (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 w49JD7oE017688; Wed, 9 May 2018 12:13:07 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201805091913.w49JD7oE017688@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 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: Cy Schubert cc: John Baldwin , Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet In-Reply-To: Message from Cy Schubert of "Wed, 09 May 2018 12:07:34 -0700." <201805091907.w49J7Y0L003669@slippy.cwsent.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 09 May 2018 12:13:07 -0700 X-CMAE-Envelope: MS4wfPtz642UAUZYAnveHdHMH9jFXoReXbKPhMYVxe9L+G9I4cbiMtjOcdxN8sr5jrN1aRlGG9i8xWTIiCZkkxt5oTb9UsPaaNrtT046XnVUHNo4EsgAEQsk qdwbPIiJ3rsfkT11shYrSXG5ZULr4aoK+AE2Oy+v4pwh2u/qgbthWgn8IAsaPF8N7FOXa1Ocf5kcqF1g0XoDXsdGDcie/MqS5ImaGXonWWAX90Yf3GY/Tucj SOhjm5q6Mu5jX3pGKWIZxMXiXDnXRxCFFu8muy5+ef0p+l7s5tnqVipnTNxgKFKGcZCQYYMm8qHQLd/V93kMjdPZy5c1eXyDD/CzzTfU3dk= X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 19:13:32 -0000 In message <201805091907.w49J7Y0L003669@slippy.cwsent.com>, Cy Schubert writes: > In message <4065288.o9QKfFzp22@ralph.baldwin.cx>, John Baldwin writes: > > On Wednesday, May 09, 2018 02:07:09 AM Cy Schubert wrote: > > > Author: cy > > > Date: Wed May 9 02:07:09 2018 > > > New Revision: 333393 > > > URL: https://svnweb.freebsd.org/changeset/base/333393 > > > > > > Log: > > > Document intentional fallthrough. (CID 976535) > > > > > > MFC after: 1 week > > > > > > Modified: > > > head/sys/contrib/ipfilter/netinet/fil.c > > > > > > Modified: head/sys/contrib/ipfilter/netinet/fil.c > > > ========================================================================= > == > > === > > > --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 201 > 8 > > (r333392) > > > +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 201 > 8 > > (r333393) > > > @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) > > > } > > > } > > > #endif > > > + /* fallthrough is intentional */ > > > case ICMP_SOURCEQUENCH : > > > case ICMP_REDIRECT : > > > case ICMP_TIMXCEED : > > > > Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there are > > three other instances of that style in ipfilter already (and none others > > using this comment style). > > Thanks John. It's been fixed in r333393. s/r333393/r333427/ -- 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-head@freebsd.org Wed May 9 19:54:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1D07FCA0D0; Wed, 9 May 2018 19:54:35 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 543D47C2C7; Wed, 9 May 2018 19:54:35 +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 31874160BA; Wed, 9 May 2018 19:54:35 +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 w49JsZS3050148; Wed, 9 May 2018 19:54:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49JsZic050147; Wed, 9 May 2018 19:54:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805091954.w49JsZic050147@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 9 May 2018 19:54:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333429 - head/sys/dev/bxe X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/bxe X-SVN-Commit-Revision: 333429 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 19:54:35 -0000 Author: markj Date: Wed May 9 19:54:34 2018 New Revision: 333429 URL: https://svnweb.freebsd.org/changeset/base/333429 Log: Fix bxe(4) netdump rx polling. Reviewed by: cem, rstone X-MFC with: r333287 Sponsored by: Dell EMC Isilon Modified: head/sys/dev/bxe/bxe.c Modified: head/sys/dev/bxe/bxe.c ============================================================================== --- head/sys/dev/bxe/bxe.c Wed May 9 19:52:33 2018 (r333428) +++ head/sys/dev/bxe/bxe.c Wed May 9 19:54:34 2018 (r333429) @@ -19240,7 +19240,7 @@ bxe_netdump_poll(struct ifnet *ifp, int count) return (ENOENT); for (i = 0; i < sc->num_queues; i++) - (void)bxe_rxeof(sc, &sc->fp[0]); + (void)bxe_rxeof(sc, &sc->fp[i]); (void)bxe_txeof(sc, &sc->fp[0]); return (0); } From owner-svn-src-head@freebsd.org Wed May 9 20:05:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB735FCA580 for ; Wed, 9 May 2018 20:05:39 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-yb0-x236.google.com (mail-yb0-x236.google.com [IPv6:2607:f8b0:4002:c09::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 59F677F04C for ; Wed, 9 May 2018 20:05:39 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-yb0-x236.google.com with SMTP id f138-v6so5144807yba.6 for ; Wed, 09 May 2018 13:05:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vcs+ihY+Qt0eB5wvX87g5s/aqvGpbT5mEV3lp6RzxGo=; b=IWAej0qPUxw/mtWIQz9AShOJehOYQVQt7rQ+Q9G7sD9GZpjD43uiD9z4AxSDhHfvRu mDF6LSe7//2KsfXKJfPA166fKn2r22xXsLPtJ/8w+NF1KtNUnPOgNcsg9L6Xvc6oUW/L SPZBe4rsQpMbL1JpwCP3MpUAadgUdT+9OQ5uXVIyzZuxsGFAlaG/72VBGLZJ3Te5VLcL FaFMwXQF9zi40iuzZGZV3v/wu49zsOdqfDM1FNippVEudW84s8X/0bkKlCWTAgMHPZ48 9XZG93h7Rn3TYuhUEPJzNODPET0h2TpqnIkWtTLleRJuNZiRbUdv8u12hoYu8UbvIIv0 4oEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vcs+ihY+Qt0eB5wvX87g5s/aqvGpbT5mEV3lp6RzxGo=; b=qiqPlmjpxeBwSWphSDjgbKmh8asGUfuPwxPwhGbYEJQZvTSeM844ALC/4CTeoezvkR iH+ibyMEdFcUYRMG/pa8Za9sC23bDw/FL+sUNI9oD0y+HZuwAmUyk5rLW4PWIn5t0FEP anwJPbzTwAF/5p+Sny7IUYg7s6CGlCzYs66sj95P7E1Rf+NQDwQ6Q2SD5KqKvd8q2RAo p6UsPp1lclxqMFqWOZCCI/clYpKhUj+oMNsA/HF2hXpQbOwpnpTsdsV0YJNFGMpiY8J8 GB0oftkpR++4rMsTo1LVHYnTbleaHjgSQgjg1QJ39OeHOQXdfT8RVUE4UsLVZTF4VrCQ F3uw== X-Gm-Message-State: ALKqPwfdGrKiI/MMoa7lXsSQvadfPb/1ol8kDE/ayaqBrpUuYR/9ytD8 Zi5ZcpUdqfyo9koIqMXMhG8BA7JP0S8w/oJdLz2fbg== X-Google-Smtp-Source: AB8JxZpdd0xUnsgKHnAKD65tCFniAKXm4AlkVL9lGLzIG38SDLuB8gv1cVFRUKu3B2PWRQs1enKyP5isra5DSneE+1A= X-Received: by 2002:a25:2e04:: with SMTP id u4-v6mr7767550ybu.199.1525896338549; Wed, 09 May 2018 13:05:38 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:3894:0:0:0:0:0 with HTTP; Wed, 9 May 2018 13:05:38 -0700 (PDT) In-Reply-To: <201805091411.w49EBaa6073113@repo.freebsd.org> References: <201805091411.w49EBaa6073113@repo.freebsd.org> From: Oliver Pinter Date: Wed, 9 May 2018 22:05:38 +0200 Message-ID: Subject: Re: svn commit: r333409 - in head/sys: netinet sys To: Warner Losh Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:05:40 -0000 On Wednesday, May 9, 2018, Warner Losh wrote: > Author: imp > Date: Wed May 9 14:11:35 2018 > New Revision: 333409 > URL: https://svnweb.freebsd.org/changeset/base/333409 > > Log: > Minor style nits > > Use full copyright year. > Remove 'All Rights Reserved' from new file (rights holder OK'd) > Minor #ifdef motion and #endif tagging > Remove __FBSDID macro from comments > > Sponsored by: Netflix > OK'd by: rrs@ > > Modified: > head/sys/netinet/tcp_hpts.c > head/sys/netinet/tcp_hpts.h > head/sys/sys/kern_prefetch.h > > Modified: head/sys/netinet/tcp_hpts.c > ============================================================ > ================== > --- head/sys/netinet/tcp_hpts.c Wed May 9 13:53:10 2018 (r333408) > +++ head/sys/netinet/tcp_hpts.c Wed May 9 14:11:35 2018 (r333409) > @@ -1,6 +1,5 @@ > /*- > - * Copyright (c) 2016-8 > - * Netflix Inc. All rights reserved. > + * Copyright (c) 2016-2018 Netflix Inc. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > > Modified: head/sys/netinet/tcp_hpts.h > ============================================================ > ================== > --- head/sys/netinet/tcp_hpts.h Wed May 9 13:53:10 2018 (r333408) > +++ head/sys/netinet/tcp_hpts.h Wed May 9 14:11:35 2018 (r333409) > @@ -1,8 +1,5 @@ > -#ifndef __tcp_hpts_h__ > -#define __tcp_hpts_h__ > /*- > - * Copyright (c) 2016-8 > - * Netflix Inc. All rights reserved. > + * Copyright (c) 2016-18 Netflix Inc. Hi! Could you please use full year here, same as in the other parts of this patch? > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > @@ -25,9 +22,12 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * __FBSDID("$FreeBSD$") > + * $FreeBSD$ > */ > > +#ifndef __tcp_hpts_h__ > +#define __tcp_hpts_h__ > + > /* > * The hpts uses a 102400 wheel. The wheel > * defines the time in 10 usec increments (102400 x 10). > @@ -300,5 +300,5 @@ tcp_get_usecs(struct timeval *tv) > return (tcp_tv_to_usectick(tv)); > } > > -#endif > -#endif > +#endif /* _KERNEL */ > +#endif /* __tcp_hpts_h__ */ > > Modified: head/sys/sys/kern_prefetch.h > ============================================================ > ================== > --- head/sys/sys/kern_prefetch.h Wed May 9 13:53:10 2018 > (r333408) > +++ head/sys/sys/kern_prefetch.h Wed May 9 14:11:35 2018 > (r333409) > @@ -1,7 +1,5 @@ > -#ifndef __kern_prefetch_h__ > /*- > - * Copyright (c) 2016-8 > - * Netflix Inc. All rights reserved. > + * Copyright (c) 2016-2018 Netflix Inc. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > @@ -24,8 +22,9 @@ > * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * > - * __FBSDID("$FreeBSD$") > + * $FreeBSD$ > */ > +#ifndef __kern_prefetch_h__ > #define __kern_prefetch_h__ > #ifdef _KERNEL > > @@ -39,5 +38,5 @@ kern_prefetch(const volatile void *addr, void* before) > #endif > } > > -#endif > -#endif > +#endif /* _KERNEL */ > +#endif /* __kern_prefetch_h__ */ > _______________________________________________ > 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" > From owner-svn-src-head@freebsd.org Wed May 9 20:11:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4E24FCA74C; Wed, 9 May 2018 20:11:04 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 58D80819FC; Wed, 9 May 2018 20:11:04 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 2459AC7A7; Wed, 9 May 2018 20:11:04 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: Warner Losh Cc: Cy Schubert , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet Date: Wed, 09 May 2018 09:52:59 -0700 Message-ID: <1872360.cC9XDcqkuS@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: References: <201805090207.w49279t8006603@repo.freebsd.org> <4065288.o9QKfFzp22@ralph.baldwin.cx> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:11:04 -0000 On Wednesday, May 09, 2018 10:02:06 AM Warner Losh wrote: > On Wed, May 9, 2018 at 8:58 AM, John Baldwin wrote: > > > On Wednesday, May 09, 2018 02:07:09 AM Cy Schubert wrote: > > > Author: cy > > > Date: Wed May 9 02:07:09 2018 > > > New Revision: 333393 > > > URL: https://svnweb.freebsd.org/changeset/base/333393 > > > > > > Log: > > > Document intentional fallthrough. (CID 976535) > > > > > > MFC after: 1 week > > > > > > Modified: > > > head/sys/contrib/ipfilter/netinet/fil.c > > > > > > Modified: head/sys/contrib/ipfilter/netinet/fil.c > > > ============================================================ > > ================== > > > --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 2018 > > (r333392) > > > +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 2018 > > (r333393) > > > @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) > > > } > > > } > > > #endif > > > + /* fallthrough is intentional */ > > > case ICMP_SOURCEQUENCH : > > > case ICMP_REDIRECT : > > > case ICMP_TIMXCEED : > > > > Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there are > > three other instances of that style in ipfilter already (and none others > > using this comment style). > > > > /* FALLTHROUGH */ is actually an old-school lint directive that other tools > have picked up. Yes, but it is still the dominant style in the tree even if it has come from lint. -- John Baldwin From owner-svn-src-head@freebsd.org Wed May 9 20:13:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 736F7FCA98D; Wed, 9 May 2018 20:13:00 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 24D7081E0F; Wed, 9 May 2018 20:13:00 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 05F4B163E4; Wed, 9 May 2018 20:13:00 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49KCx6O060341; Wed, 9 May 2018 20:12:59 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49KCxHD060340; Wed, 9 May 2018 20:12:59 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <201805092012.w49KCxHD060340@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Wed, 9 May 2018 20:12:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333430 - in head/lib/libc: sys tests/iconv X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: in head/lib/libc: sys tests/iconv X-SVN-Commit-Revision: 333430 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:13:00 -0000 Author: vangyzen Date: Wed May 9 20:12:59 2018 New Revision: 333430 URL: https://svnweb.freebsd.org/changeset/base/333430 Log: Remove 'All rights reserved' from my files See r333391 for the rationale. Approved by: emaste (for the Foundation copyright) Sponsored by: Dell EMC Modified: head/lib/libc/sys/clock_nanosleep.c head/lib/libc/tests/iconv/iconvctl_test.c Modified: head/lib/libc/sys/clock_nanosleep.c ============================================================================== --- head/lib/libc/sys/clock_nanosleep.c Wed May 9 19:54:34 2018 (r333429) +++ head/lib/libc/sys/clock_nanosleep.c Wed May 9 20:12:59 2018 (r333430) @@ -1,7 +1,6 @@ /* * Copyright (c) 2017 Eric van Gyzen * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. * * Portions of this software were developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. Modified: head/lib/libc/tests/iconv/iconvctl_test.c ============================================================================== --- head/lib/libc/tests/iconv/iconvctl_test.c Wed May 9 19:54:34 2018 (r333429) +++ head/lib/libc/tests/iconv/iconvctl_test.c Wed May 9 20:12:59 2018 (r333430) @@ -1,6 +1,5 @@ /*- * Copyright (c) 2016 Eric van Gyzen - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Wed May 9 20:26:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A85FFFCB2AD; Wed, 9 May 2018 20:26:38 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5B77884FDA; Wed, 9 May 2018 20:26:38 +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 3C9F61657A; Wed, 9 May 2018 20:26:38 +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 w49KQcRX065813; Wed, 9 May 2018 20:26:38 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49KQcio065812; Wed, 9 May 2018 20:26:38 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805092026.w49KQcio065812@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 May 2018 20:26:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333433 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 333433 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:26:38 -0000 Author: imp Date: Wed May 9 20:26:37 2018 New Revision: 333433 URL: https://svnweb.freebsd.org/changeset/base/333433 Log: Use the full year, for real this time. Modified: head/sys/netinet/tcp_hpts.h Modified: head/sys/netinet/tcp_hpts.h ============================================================================== --- head/sys/netinet/tcp_hpts.h Wed May 9 20:22:09 2018 (r333432) +++ head/sys/netinet/tcp_hpts.h Wed May 9 20:26:37 2018 (r333433) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2016-18 Netflix Inc. + * Copyright (c) 2016-2018 Netflix Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Wed May 9 20:27:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC4CCFCB376 for ; Wed, 9 May 2018 20:27:53 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x22e.google.com (mail-it0-x22e.google.com [IPv6:2607:f8b0:4001:c0b::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 61C238517B for ; Wed, 9 May 2018 20:27:53 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x22e.google.com with SMTP id n64-v6so489251itb.3 for ; Wed, 09 May 2018 13:27:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=OqaHnmYNgJi+IzCGFD+gFU4uP0r1H66ieeWLk09sCqA=; b=bX8kGodEk61ynujZo/+dR7j3okb1q9YOXE9xpiHDtao90JUUol08ALKehe8X1vPefS wQnX8aEV69cqUU5RMcxybkug6uRX8bWxdb5NTeVokpfjw7ryQ4kr79DCR1U+BK0x4j7M fEpmzkOD+z845kRJZJj1oaYKWyWNAdWQ6mjW2ywl5bqM4oWI+nmt1a9LaDeZyFl5NXaU x3AuIpEl2C9FtHcy6VySvDapRvnQzlq3WLlKurkQQEXzuRw0U0MgW75xzInve7bKxFf0 FAo5A09QBDoMMdfW6RHdgrE202eZw9QLAelQUjraAVbwJXhX5QyhjPV0CxmI0CpFHzoN yOhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=OqaHnmYNgJi+IzCGFD+gFU4uP0r1H66ieeWLk09sCqA=; b=f5rEVQ2xQ/wdUfPFdqyUWuvK/TJK+Ba+ICtg6scRs/3b5bvLxN/MjeXRPaXU7sUBSC hU613VRZlzj946TtOJYvKywLNkYqjV2JUp3MGnEPTVV/MKdarjMEVffUGLOHy0qlYFLg gaA2QKKBWJMxmDfLJSjTvdlF4SPufIFhT1QcicVWJ3XCgjLf8vz/4fyC7ctwgQ24PhXq I5anq6Cm43drPVR4bSzBaQxCLKj+k6UOu30Se+M8HnadeZJPWeo9oHS76CL1ZrA10k70 KQA7UhNMwnPZTbG+RIVhYrYU6JpFQahspqfIf40ameo6altgkSjTglhZdzFAAclhIk3l bDWw== X-Gm-Message-State: ALKqPwcQWtLQN+pBtwFjz55jZ6UFyKM0K2vsFG76AhwCkka7chPHAnBS l2t+fOi+nEXPtYMnZ8rlgeeTmhyGy31NdKSC+cmSctoi X-Google-Smtp-Source: AB8JxZrrFVCaA0SeJyzZ/86PbNKHI+79Ogeq66zXRrQP7NmxUrWOQfZuWLLu2RfSfWbczIptsYqI72fHkV2HhjAHvVI= X-Received: by 2002:a24:4c55:: with SMTP id a82-v6mr11227249itb.1.1525897672668; Wed, 09 May 2018 13:27:52 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Wed, 9 May 2018 13:27:51 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: References: <201805091411.w49EBaa6073113@repo.freebsd.org> From: Warner Losh Date: Wed, 9 May 2018 14:27:51 -0600 X-Google-Sender-Auth: jbQ2DwxcPa3uo8-1GuBApK6tFCo Message-ID: Subject: Re: svn commit: r333409 - in head/sys: netinet sys To: Oliver Pinter Cc: Warner Losh , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:27:54 -0000 On Wed, May 9, 2018 at 2:05 PM, Oliver Pinter wrote: > > > On Wednesday, May 9, 2018, Warner Losh wrote: > >> Author: imp >> Date: Wed May 9 14:11:35 2018 >> New Revision: 333409 >> URL: https://svnweb.freebsd.org/changeset/base/333409 >> >> Log: >> Minor style nits >> >> Use full copyright year. >> Remove 'All Rights Reserved' from new file (rights holder OK'd) >> Minor #ifdef motion and #endif tagging >> Remove __FBSDID macro from comments >> >> Sponsored by: Netflix >> OK'd by: rrs@ >> >> Modified: >> head/sys/netinet/tcp_hpts.c >> head/sys/netinet/tcp_hpts.h >> head/sys/sys/kern_prefetch.h >> >> Modified: head/sys/netinet/tcp_hpts.c >> ============================================================ >> ================== >> --- head/sys/netinet/tcp_hpts.c Wed May 9 13:53:10 2018 (r333408) >> +++ head/sys/netinet/tcp_hpts.c Wed May 9 14:11:35 2018 (r333409) >> @@ -1,6 +1,5 @@ >> /*- >> - * Copyright (c) 2016-8 >> - * Netflix Inc. All rights reserved. >> + * Copyright (c) 2016-2018 Netflix Inc. >> * >> * Redistribution and use in source and binary forms, with or without >> * modification, are permitted provided that the following conditions >> >> Modified: head/sys/netinet/tcp_hpts.h >> ============================================================ >> ================== >> --- head/sys/netinet/tcp_hpts.h Wed May 9 13:53:10 2018 (r333408) >> +++ head/sys/netinet/tcp_hpts.h Wed May 9 14:11:35 2018 (r333409) >> @@ -1,8 +1,5 @@ >> -#ifndef __tcp_hpts_h__ >> -#define __tcp_hpts_h__ >> /*- >> - * Copyright (c) 2016-8 >> - * Netflix Inc. All rights reserved. >> + * Copyright (c) 2016-18 Netflix Inc. > > > Hi! > > Could you please use full year here, same as in the other parts of this > patch? > Doh! I fixed that before the commit. I was sure.... Anyway, fixed now in r333433. Warner * >> * Redistribution and use in source and binary forms, with or without >> * modification, are permitted provided that the following conditions >> @@ -25,9 +22,12 @@ >> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF >> * SUCH DAMAGE. >> * >> - * __FBSDID("$FreeBSD$") >> + * $FreeBSD$ >> */ >> >> +#ifndef __tcp_hpts_h__ >> +#define __tcp_hpts_h__ >> + >> /* >> * The hpts uses a 102400 wheel. The wheel >> * defines the time in 10 usec increments (102400 x 10). >> @@ -300,5 +300,5 @@ tcp_get_usecs(struct timeval *tv) >> return (tcp_tv_to_usectick(tv)); >> } >> >> -#endif >> -#endif >> +#endif /* _KERNEL */ >> +#endif /* __tcp_hpts_h__ */ >> >> Modified: head/sys/sys/kern_prefetch.h >> ============================================================ >> ================== >> --- head/sys/sys/kern_prefetch.h Wed May 9 13:53:10 2018 >> (r333408) >> +++ head/sys/sys/kern_prefetch.h Wed May 9 14:11:35 2018 >> (r333409) >> @@ -1,7 +1,5 @@ >> -#ifndef __kern_prefetch_h__ >> /*- >> - * Copyright (c) 2016-8 >> - * Netflix Inc. All rights reserved. >> + * Copyright (c) 2016-2018 Netflix Inc. >> * >> * Redistribution and use in source and binary forms, with or without >> * modification, are permitted provided that the following conditions >> @@ -24,8 +22,9 @@ >> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF >> * SUCH DAMAGE. >> * >> - * __FBSDID("$FreeBSD$") >> + * $FreeBSD$ >> */ >> +#ifndef __kern_prefetch_h__ >> #define __kern_prefetch_h__ >> #ifdef _KERNEL >> >> @@ -39,5 +38,5 @@ kern_prefetch(const volatile void *addr, void* before) >> #endif >> } >> >> -#endif >> -#endif >> +#endif /* _KERNEL */ >> +#endif /* __kern_prefetch_h__ */ >> _______________________________________________ >> 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" >> > From owner-svn-src-head@freebsd.org Wed May 9 20:29:07 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D8A24FCB439 for ; Wed, 9 May 2018 20:29:06 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x234.google.com (mail-it0-x234.google.com [IPv6:2607:f8b0:4001:c0b::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 60C9E853D8 for ; Wed, 9 May 2018 20:29:06 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x234.google.com with SMTP id z6-v6so485755iti.4 for ; Wed, 09 May 2018 13:29:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=QGfGg+vV8nzIcw/n+loR05qrF7nWZpdCg2GcMDdUYQ8=; b=1YkDSbV3dM9n8humA1I9pEjCAhf26GfnLRs0eAuvcr2OjTH0KQ+5O47Iq580hJnT0C yN1Q9bXW0YgD+qpeLrhPDcJubO5MoGNU77YMTRT/ww4d5hwmTpycbDVurCWXPeFxvtPi +jMwNnQ1LRrU2JiKMArewdCfGqbKBVUCTKGCBd9lIc7wOArXKLMA98z7vY0+Q2rQWunG gmg2uBZe503Seltl5hNvqZjkT6KuGqdGHhOjNvPsxQwy1jD/oy1phzuKitzbKHBwCMsB YG9bCiLzr+Fw9IX+fa6Uexpd6/uMTJllIBtgLcWK6B2JUnNA0YNBWmqf+o7ziMjmz/ka FW/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=QGfGg+vV8nzIcw/n+loR05qrF7nWZpdCg2GcMDdUYQ8=; b=O4kpWldOopMNYvpZLSdNM2Re2+ZmakDwt95aa0l7kC+K9g7xEDFLAR6uBJKabMX0im tN15sIx4Orl2bLTHXBKGFanmC1P5G5INMwV+Ly9+SXyBj5EQZGkvDJU0IIJ5+TvkWYbw +bHqPOUxQr1loHOVkuro+OeuU8pBB98hNYUq8Fqbst3UMFtK0oE/bK3BDLCDqcwhKX/t Ehoe66ranYhkzlGvZnfZWcLEaIXA+XqoqMW2usNCXeUSJPUmlFpMUa7qdyzLB3Ni5q82 THZlsZLy6sBayJVvBEeYj7R2F6oGzHg0l8icqLFXL90uaOTDBDEsZctPviM7KtaWGMoH irnQ== X-Gm-Message-State: ALKqPwdb/tQkOlupjkWcYNKnPkSv7JI9mL/QJ1I/uFZ6BVJklvTOEDJQ PGu565AaVFtnNJzACkc2fiyJyUR5+QHMvOTX52OdYw== X-Google-Smtp-Source: AB8JxZrK58hFtgihCHm4yszKqUqoO3mVaWfwO4ggrs3cxSYAByUS7zBMCphqkScnQfSB8zjSFhP8V4py8UR8dxQJdN8= X-Received: by 2002:a24:e983:: with SMTP id f125-v6mr11513240ith.36.1525897745730; Wed, 09 May 2018 13:29:05 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Wed, 9 May 2018 13:29:05 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <1872360.cC9XDcqkuS@ralph.baldwin.cx> References: <201805090207.w49279t8006603@repo.freebsd.org> <4065288.o9QKfFzp22@ralph.baldwin.cx> <1872360.cC9XDcqkuS@ralph.baldwin.cx> From: Warner Losh Date: Wed, 9 May 2018 14:29:05 -0600 X-Google-Sender-Auth: lKJsa5i1Ye6CuB8IYgHGXFqIrus Message-ID: Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet To: John Baldwin Cc: Cy Schubert , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:29:07 -0000 On Wed, May 9, 2018 at 10:52 AM, John Baldwin wrote: > On Wednesday, May 09, 2018 10:02:06 AM Warner Losh wrote: > > On Wed, May 9, 2018 at 8:58 AM, John Baldwin wrote: > > > > > On Wednesday, May 09, 2018 02:07:09 AM Cy Schubert wrote: > > > > Author: cy > > > > Date: Wed May 9 02:07:09 2018 > > > > New Revision: 333393 > > > > URL: https://svnweb.freebsd.org/changeset/base/333393 > > > > > > > > Log: > > > > Document intentional fallthrough. (CID 976535) > > > > > > > > MFC after: 1 week > > > > > > > > Modified: > > > > head/sys/contrib/ipfilter/netinet/fil.c > > > > > > > > Modified: head/sys/contrib/ipfilter/netinet/fil.c > > > > ============================================================ > > > ================== > > > > --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 > 2018 > > > (r333392) > > > > +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 > 2018 > > > (r333393) > > > > @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) > > > > } > > > > } > > > > #endif > > > > + /* fallthrough is intentional */ > > > > case ICMP_SOURCEQUENCH : > > > > case ICMP_REDIRECT : > > > > case ICMP_TIMXCEED : > > > > > > Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there > are > > > three other instances of that style in ipfilter already (and none > others > > > using this comment style). > > > > > > > /* FALLTHROUGH */ is actually an old-school lint directive that other > tools > > have picked up. > > Yes, but it is still the dominant style in the tree even if it has come > from > lint. > Agreed. I wasn't arguing, just saying it has a long history and everybody does it today even though lint's relevance has faded. Warner From owner-svn-src-head@freebsd.org Wed May 9 20:32:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D5710FCB703; Wed, 9 May 2018 20:32:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C834086168; Wed, 9 May 2018 20:32:25 +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 8CBD51671B; Wed, 9 May 2018 20:32:25 +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 w49KWPlw071051; Wed, 9 May 2018 20:32:25 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49KWOGb071013; Wed, 9 May 2018 20:32:24 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805092032.w49KWOGb071013@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 May 2018 20:32:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333434 - in head/sys: cam cam/nvme dev/nvme X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: cam cam/nvme dev/nvme X-SVN-Commit-Revision: 333434 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:32:27 -0000 Author: imp Date: Wed May 9 20:32:23 2018 New Revision: 333434 URL: https://svnweb.freebsd.org/changeset/base/333434 Log: Remove the 'All Rights Reserved' clause from some of the stuff I've done for Netflix, since I'm in the neighborhood. Modified: head/sys/cam/cam_iosched.c head/sys/cam/cam_iosched.h head/sys/cam/nvme/nvme_all.c head/sys/cam/nvme/nvme_all.h head/sys/cam/nvme/nvme_da.c head/sys/cam/nvme/nvme_xpt.c head/sys/dev/nvme/nvme_sim.c Modified: head/sys/cam/cam_iosched.c ============================================================================== --- head/sys/cam/cam_iosched.c Wed May 9 20:26:37 2018 (r333433) +++ head/sys/cam/cam_iosched.c Wed May 9 20:32:23 2018 (r333434) @@ -4,7 +4,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2015 Netflix, Inc. - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/cam/cam_iosched.h ============================================================================== --- head/sys/cam/cam_iosched.h Wed May 9 20:26:37 2018 (r333433) +++ head/sys/cam/cam_iosched.h Wed May 9 20:32:23 2018 (r333434) @@ -4,7 +4,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2015 Netflix, Inc. - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/cam/nvme/nvme_all.c ============================================================================== --- head/sys/cam/nvme/nvme_all.c Wed May 9 20:26:37 2018 (r333433) +++ head/sys/cam/nvme/nvme_all.c Wed May 9 20:32:23 2018 (r333434) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2015 Netflix, Inc - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/cam/nvme/nvme_all.h ============================================================================== --- head/sys/cam/nvme/nvme_all.h Wed May 9 20:26:37 2018 (r333433) +++ head/sys/cam/nvme/nvme_all.h Wed May 9 20:32:23 2018 (r333434) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2015 Netflix, Inc - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/cam/nvme/nvme_da.c ============================================================================== --- head/sys/cam/nvme/nvme_da.c Wed May 9 20:26:37 2018 (r333433) +++ head/sys/cam/nvme/nvme_da.c Wed May 9 20:32:23 2018 (r333434) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2015 Netflix, Inc - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/cam/nvme/nvme_xpt.c ============================================================================== --- head/sys/cam/nvme/nvme_xpt.c Wed May 9 20:26:37 2018 (r333433) +++ head/sys/cam/nvme/nvme_xpt.c Wed May 9 20:32:23 2018 (r333434) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2015 Netflix, Inc. - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/dev/nvme/nvme_sim.c ============================================================================== --- head/sys/dev/nvme/nvme_sim.c Wed May 9 20:26:37 2018 (r333433) +++ head/sys/dev/nvme/nvme_sim.c Wed May 9 20:32:23 2018 (r333434) @@ -1,6 +1,5 @@ /*- * Copyright (c) 2016 Netflix, Inc - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Wed May 9 20:41:09 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C5869FCB946; Wed, 9 May 2018 20:41:08 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 783966856E; Wed, 9 May 2018 20:41:08 +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 3FA8C1674A; Wed, 9 May 2018 20:41:08 +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 w49Kf8JC071525; Wed, 9 May 2018 20:41:08 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Kf3QO071503; Wed, 9 May 2018 20:41:03 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805092041.w49Kf3QO071503@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 May 2018 20:41:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333435 - in head/tools/tools/nanobsd: . dhcpd embedded X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/tools/tools/nanobsd: . dhcpd embedded X-SVN-Commit-Revision: 333435 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:41:09 -0000 Author: imp Date: Wed May 9 20:41:03 2018 New Revision: 333435 URL: https://svnweb.freebsd.org/changeset/base/333435 Log: Remove 'All Rights Reserved' Remove this from some of the iXsystems stuff I did. OK'd by kmoore at iXsystems Modified: head/tools/tools/nanobsd/dhcpd/common head/tools/tools/nanobsd/dhcpd/os-base head/tools/tools/nanobsd/embedded/beaglebone.cfg head/tools/tools/nanobsd/embedded/common head/tools/tools/nanobsd/embedded/i386.cfg head/tools/tools/nanobsd/embedded/pandaboard.cfg head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg head/tools/tools/nanobsd/embedded/qemu-amd64.cfg head/tools/tools/nanobsd/embedded/qemu-armv7.cfg head/tools/tools/nanobsd/embedded/qemu-i386.cfg head/tools/tools/nanobsd/embedded/qemu-mips.cfg head/tools/tools/nanobsd/embedded/qemu-mips64.cfg head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg head/tools/tools/nanobsd/embedded/rpi.cfg head/tools/tools/nanobsd/embedded/rpi2.cfg head/tools/tools/nanobsd/embedded/rpi3.cfg head/tools/tools/nanobsd/embedded/sam9260ek.cfg head/tools/tools/nanobsd/embedded/sam9g20ek.cfg head/tools/tools/nanobsd/mtree-dedup.awk Modified: head/tools/tools/nanobsd/dhcpd/common ============================================================================== --- head/tools/tools/nanobsd/dhcpd/common Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/dhcpd/common Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2014 M. Warner Losh. -# Copyright (c) 2010 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/dhcpd/os-base ============================================================================== --- head/tools/tools/nanobsd/dhcpd/os-base Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/dhcpd/os-base Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2014 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/beaglebone.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/beaglebone.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/beaglebone.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/common ============================================================================== --- head/tools/tools/nanobsd/embedded/common Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/common Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/i386.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/i386.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/i386.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/pandaboard.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/pandaboard.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/pandaboard.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2016 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-amd64-uefi-bios.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-amd64-uefi.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-amd64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-amd64.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-amd64.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-armv7.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-armv7.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-armv7.cfg Wed May 9 20:41:03 2018 (r333435) @@ -3,7 +3,7 @@ #- # Copyright (c) 2016 Andrew Turner. All Rights Reserved. # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-i386.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-i386.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-i386.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-mips.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-mips.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-mips.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-mips64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-mips64.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-mips64.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-powerpc.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-powerpc64.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/qemu-sparc64.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/rpi.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/rpi.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/rpi.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/rpi2.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/rpi2.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/rpi2.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/rpi3.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/rpi3.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/rpi3.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/sam9260ek.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/sam9260ek.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/sam9260ek.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/embedded/sam9g20ek.cfg ============================================================================== --- head/tools/tools/nanobsd/embedded/sam9g20ek.cfg Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/embedded/sam9g20ek.cfg Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,7 @@ #- # Copyright (c) 2015 M. Warner Losh. -# Copyright (c) 2010-2011 iXsystems, Inc., All rights reserved. +# Copyright (c) 2010-2011 iXsystems, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/tools/tools/nanobsd/mtree-dedup.awk ============================================================================== --- head/tools/tools/nanobsd/mtree-dedup.awk Wed May 9 20:32:23 2018 (r333434) +++ head/tools/tools/nanobsd/mtree-dedup.awk Wed May 9 20:41:03 2018 (r333435) @@ -2,7 +2,6 @@ # # Copyright (c) 2015 M. Warner Losh. -# All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Wed May 9 20:49:03 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3A966FCBC2B; Wed, 9 May 2018 20:49:03 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D7AC16A579; Wed, 9 May 2018 20:49:02 +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 B005D168B6; Wed, 9 May 2018 20:49:02 +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 w49Kn2S3076824; Wed, 9 May 2018 20:49:02 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Kn1QT076817; Wed, 9 May 2018 20:49:01 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805092049.w49Kn1QT076817@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Wed, 9 May 2018 20:49:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333436 - in head/etc: etc.aarch64 etc.amd64 etc.arm etc.i386 etc.powerpc etc.riscv etc.sparc64 X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/etc: etc.aarch64 etc.amd64 etc.arm etc.i386 etc.powerpc etc.riscv etc.sparc64 X-SVN-Commit-Revision: 333436 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:49:03 -0000 Author: imp Date: Wed May 9 20:49:00 2018 New Revision: 333436 URL: https://svnweb.freebsd.org/changeset/base/333436 Log: For video consoles, only launch a getty if the device exists. Differential Revision: https://reviews.freebsd.org/D15169 Modified: head/etc/etc.aarch64/ttys head/etc/etc.amd64/ttys head/etc/etc.arm/ttys head/etc/etc.i386/ttys head/etc/etc.powerpc/ttys head/etc/etc.riscv/ttys head/etc/etc.sparc64/ttys Modified: head/etc/etc.aarch64/ttys ============================================================================== --- head/etc/etc.aarch64/ttys Wed May 9 20:41:03 2018 (r333435) +++ head/etc/etc.aarch64/ttys Wed May 9 20:49:00 2018 (r333436) @@ -29,16 +29,16 @@ # when going to single-user mode. console none unknown off secure # -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" xterm off secure -ttyv2 "/usr/libexec/getty Pc" xterm off secure -ttyv3 "/usr/libexec/getty Pc" xterm off secure -ttyv4 "/usr/libexec/getty Pc" xterm off secure -ttyv5 "/usr/libexec/getty Pc" xterm off secure -ttyv6 "/usr/libexec/getty Pc" xterm off secure -ttyv7 "/usr/libexec/getty Pc" xterm off secure -#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure +#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm onifexists secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure Modified: head/etc/etc.amd64/ttys ============================================================================== --- head/etc/etc.amd64/ttys Wed May 9 20:41:03 2018 (r333435) +++ head/etc/etc.amd64/ttys Wed May 9 20:49:00 2018 (r333436) @@ -29,15 +29,15 @@ # when going to single-user mode. console none unknown off secure # -ttyv0 "/usr/libexec/getty Pc" xterm on secure +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" xterm on secure -ttyv2 "/usr/libexec/getty Pc" xterm on secure -ttyv3 "/usr/libexec/getty Pc" xterm on secure -ttyv4 "/usr/libexec/getty Pc" xterm on secure -ttyv5 "/usr/libexec/getty Pc" xterm on secure -ttyv6 "/usr/libexec/getty Pc" xterm on secure -ttyv7 "/usr/libexec/getty Pc" xterm on secure +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. Modified: head/etc/etc.arm/ttys ============================================================================== --- head/etc/etc.arm/ttys Wed May 9 20:41:03 2018 (r333435) +++ head/etc/etc.arm/ttys Wed May 9 20:49:00 2018 (r333436) @@ -29,15 +29,15 @@ # when going to single-user mode. console none unknown off secure # -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" xterm off secure -ttyv2 "/usr/libexec/getty Pc" xterm off secure -ttyv3 "/usr/libexec/getty Pc" xterm off secure -ttyv4 "/usr/libexec/getty Pc" xterm off secure -ttyv5 "/usr/libexec/getty Pc" xterm off secure -ttyv6 "/usr/libexec/getty Pc" xterm off secure -ttyv7 "/usr/libexec/getty Pc" xterm off secure +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure #ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. Modified: head/etc/etc.i386/ttys ============================================================================== --- head/etc/etc.i386/ttys Wed May 9 20:41:03 2018 (r333435) +++ head/etc/etc.i386/ttys Wed May 9 20:49:00 2018 (r333436) @@ -29,15 +29,15 @@ # when going to single-user mode. console none unknown off secure # -ttyv0 "/usr/libexec/getty Pc" xterm on secure +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" xterm on secure -ttyv2 "/usr/libexec/getty Pc" xterm on secure -ttyv3 "/usr/libexec/getty Pc" xterm on secure -ttyv4 "/usr/libexec/getty Pc" xterm on secure -ttyv5 "/usr/libexec/getty Pc" xterm on secure -ttyv6 "/usr/libexec/getty Pc" xterm on secure -ttyv7 "/usr/libexec/getty Pc" xterm on secure +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. Modified: head/etc/etc.powerpc/ttys ============================================================================== --- head/etc/etc.powerpc/ttys Wed May 9 20:41:03 2018 (r333435) +++ head/etc/etc.powerpc/ttys Wed May 9 20:49:00 2018 (r333436) @@ -29,15 +29,15 @@ # when going to single-user mode. console none unknown off secure # -ttyv0 "/usr/libexec/getty Pc" xterm on secure +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" xterm on secure -ttyv2 "/usr/libexec/getty Pc" xterm on secure -ttyv3 "/usr/libexec/getty Pc" xterm on secure -ttyv4 "/usr/libexec/getty Pc" xterm on secure -ttyv5 "/usr/libexec/getty Pc" xterm on secure -ttyv6 "/usr/libexec/getty Pc" xterm on secure -ttyv7 "/usr/libexec/getty Pc" xterm on secure +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure #ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. Modified: head/etc/etc.riscv/ttys ============================================================================== --- head/etc/etc.riscv/ttys Wed May 9 20:41:03 2018 (r333435) +++ head/etc/etc.riscv/ttys Wed May 9 20:49:00 2018 (r333436) @@ -29,16 +29,16 @@ # when going to single-user mode. console none unknown off secure # -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" xterm off secure -ttyv2 "/usr/libexec/getty Pc" xterm off secure -ttyv3 "/usr/libexec/getty Pc" xterm off secure -ttyv4 "/usr/libexec/getty Pc" xterm off secure -ttyv5 "/usr/libexec/getty Pc" xterm off secure -ttyv6 "/usr/libexec/getty Pc" xterm off secure -ttyv7 "/usr/libexec/getty Pc" xterm off secure -#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure +#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm onifexists secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure Modified: head/etc/etc.sparc64/ttys ============================================================================== --- head/etc/etc.sparc64/ttys Wed May 9 20:41:03 2018 (r333435) +++ head/etc/etc.sparc64/ttys Wed May 9 20:49:00 2018 (r333436) @@ -33,15 +33,15 @@ screen "/usr/libexec/getty Pc" vt100 off secure ttya "/usr/libexec/getty 3wire.9600" vt100 off secure ttyb "/usr/libexec/getty 3wire.9600" vt100 off secure # syscons(4) -ttyv0 "/usr/libexec/getty Pc" xterm on secure +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" xterm on secure -ttyv2 "/usr/libexec/getty Pc" xterm on secure -ttyv3 "/usr/libexec/getty Pc" xterm on secure -ttyv4 "/usr/libexec/getty Pc" xterm on secure -ttyv5 "/usr/libexec/getty Pc" xterm on secure -ttyv6 "/usr/libexec/getty Pc" xterm on secure -ttyv7 "/usr/libexec/getty Pc" xterm on secure +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure # Serial terminals # The 'dialup' keyword identifies dialin lines to login, fingerd etc. From owner-svn-src-head@freebsd.org Wed May 9 20:51:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79D27FCBD7F; Wed, 9 May 2018 20:51:17 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2EBBF6B634; Wed, 9 May 2018 20:51:17 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EBCD0169E2; Wed, 9 May 2018 20:51:16 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49KpGvk079240; Wed, 9 May 2018 20:51:16 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49KpGZm079239; Wed, 9 May 2018 20:51:16 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <201805092051.w49KpGZm079239@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Wed, 9 May 2018 20:51:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333438 - head/sbin/geom/class/eli X-SVN-Group: head X-SVN-Commit-Author: oshogbo X-SVN-Commit-Paths: head/sbin/geom/class/eli X-SVN-Commit-Revision: 333438 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:51:17 -0000 Author: oshogbo Date: Wed May 9 20:51:16 2018 New Revision: 333438 URL: https://svnweb.freebsd.org/changeset/base/333438 Log: Change option dry-run from 'n' to 'C' in geli attach command. 'n' is used in other commands to define the key index. We should be consistent with that. 'C' option is used by patch(1) to perform dryrun so lets use that. Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D15308 Modified: head/sbin/geom/class/eli/geli.8 head/sbin/geom/class/eli/geom_eli.c Modified: head/sbin/geom/class/eli/geli.8 ============================================================================== --- head/sbin/geom/class/eli/geli.8 Wed May 9 20:49:50 2018 (r333437) +++ head/sbin/geom/class/eli/geli.8 Wed May 9 20:51:16 2018 (r333438) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 10, 2018 +.Dd May 9, 2018 .Dt GELI 8 .Os .Sh NAME @@ -67,7 +67,7 @@ utility: .Cm init .Nm .Cm attach -.Op Fl dnprv +.Op Fl Cdprv .Op Fl j Ar passfile .Op Fl k Ar keyfile .Ar prov @@ -393,6 +393,9 @@ suffix. .Pp Additional options include: .Bl -tag -width ".Fl j Ar passfile" +.It Fl C +Do a dry-run decryption. +This is useful to verify passphrase and keyfile without decrypting the device. .It Fl d If specified, a decrypted provider will be detached automatically on last close. This can help with scarce memory so the user does not have to remember to detach the @@ -420,9 +423,6 @@ For more information see the description of the option for the .Cm init subcommand. -.It Fl n -Do a dry-run decryption. -This is useful to verify passphrase and keyfile without decrypting the device. .It Fl p Do not use a passphrase as a component of the User Key. Cannot be combined with the Modified: head/sbin/geom/class/eli/geom_eli.c ============================================================================== --- head/sbin/geom/class/eli/geom_eli.c Wed May 9 20:49:50 2018 (r333437) +++ head/sbin/geom/class/eli/geom_eli.c Wed May 9 20:51:16 2018 (r333438) @@ -86,7 +86,7 @@ static int eli_backup_create(struct gctl_req *req, con * * init [-bdgPTv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-J newpassfile] [-K newkeyfile] [-s sectorsize] [-V version] prov * label - alias for 'init' - * attach [-dprv] [-j passfile] [-k keyfile] prov + * attach [-Cdprv] [-j passfile] [-k keyfile] prov * detach [-fl] prov ... * stop - alias for 'detach' * onetime [-d] [-a aalgo] [-e ealgo] [-l keylen] prov @@ -145,15 +145,15 @@ struct g_command class_commands[] = { }, { "attach", G_FLAG_VERBOSE | G_FLAG_LOADKLD, eli_main, { + { 'C', "dryrun", NULL, G_TYPE_BOOL }, { 'd', "detach", NULL, G_TYPE_BOOL }, { 'j', "passfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI }, { 'k', "keyfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI }, - { 'n', "dryrun", NULL, G_TYPE_BOOL }, { 'p', "nopassphrase", NULL, G_TYPE_BOOL }, { 'r', "readonly", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - "[-dnprv] [-j passfile] [-k keyfile] prov" + "[-Cdprv] [-j passfile] [-k keyfile] prov" }, { "detach", 0, NULL, { From owner-svn-src-head@freebsd.org Wed May 9 20:53:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4E3E6FCBFC8; Wed, 9 May 2018 20:53:40 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F062D6B93C; Wed, 9 May 2018 20:53:39 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D17AE16A59; Wed, 9 May 2018 20:53:39 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49KrdAo081543; Wed, 9 May 2018 20:53:39 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Krc3S081535; Wed, 9 May 2018 20:53:38 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <201805092053.w49Krc3S081535@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Wed, 9 May 2018 20:53:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333439 - in head: sbin/geom/class/eli stand/geli sys/geom/eli X-SVN-Group: head X-SVN-Commit-Author: oshogbo X-SVN-Commit-Paths: in head: sbin/geom/class/eli stand/geli sys/geom/eli X-SVN-Commit-Revision: 333439 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:53:40 -0000 Author: oshogbo Date: Wed May 9 20:53:38 2018 New Revision: 333439 URL: https://svnweb.freebsd.org/changeset/base/333439 Log: Introduce the 'n' flag for the geli attach command. If the 'n' flag is provided the provided key number will be used to decrypt device. This can be used combined with dryrun to verify if the key is set correctly. This can be also used to determine which key slot we want to change on already attached device. Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D15309 Modified: head/sbin/geom/class/eli/geli.8 head/sbin/geom/class/eli/geom_eli.c head/stand/geli/geliboot.c head/sys/geom/eli/g_eli.c head/sys/geom/eli/g_eli.h head/sys/geom/eli/g_eli_ctl.c head/sys/geom/eli/g_eli_key.c Modified: head/sbin/geom/class/eli/geli.8 ============================================================================== --- head/sbin/geom/class/eli/geli.8 Wed May 9 20:51:16 2018 (r333438) +++ head/sbin/geom/class/eli/geli.8 Wed May 9 20:53:38 2018 (r333439) @@ -68,6 +68,7 @@ utility: .Nm .Cm attach .Op Fl Cdprv +.Op Fl n Ar keyno .Op Fl j Ar passfile .Op Fl k Ar keyfile .Ar prov @@ -407,6 +408,9 @@ Probably a better choice is the option for the .Cm detach subcommand. +.It Fl n Ar keyno +Specifies the index number of the Master Key copy to use (could be 0 or 1). +If the index number is not provided all keys will be tested. .It Fl j Ar passfile Specifies a file which contains the passphrase component of the User Key (or part of it). Modified: head/sbin/geom/class/eli/geom_eli.c ============================================================================== --- head/sbin/geom/class/eli/geom_eli.c Wed May 9 20:51:16 2018 (r333438) +++ head/sbin/geom/class/eli/geom_eli.c Wed May 9 20:53:38 2018 (r333439) @@ -86,7 +86,7 @@ static int eli_backup_create(struct gctl_req *req, con * * init [-bdgPTv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-J newpassfile] [-K newkeyfile] [-s sectorsize] [-V version] prov * label - alias for 'init' - * attach [-Cdprv] [-j passfile] [-k keyfile] prov + * attach [-Cdprv] [-n keyno] [-j passfile] [-k keyfile] prov * detach [-fl] prov ... * stop - alias for 'detach' * onetime [-d] [-a aalgo] [-e ealgo] [-l keylen] prov @@ -149,11 +149,12 @@ struct g_command class_commands[] = { { 'd', "detach", NULL, G_TYPE_BOOL }, { 'j', "passfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI }, { 'k', "keyfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI }, + { 'n', "keyno", "-1", G_TYPE_NUMBER }, { 'p', "nopassphrase", NULL, G_TYPE_BOOL }, { 'r', "readonly", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - "[-Cdprv] [-j passfile] [-k keyfile] prov" + "[-Cdprv] [-n keyno] [-j passfile] [-k keyfile] prov" }, { "detach", 0, NULL, { @@ -1129,7 +1130,7 @@ eli_setkey_detached(struct gctl_req *req, const char * } /* Decrypt Master Key. */ - error = g_eli_mkey_decrypt(md, key, mkey, &nkey); + error = g_eli_mkey_decrypt_any(md, key, mkey, &nkey); bzero(key, sizeof(key)); if (error != 0) { bzero(md, sizeof(*md)); Modified: head/stand/geli/geliboot.c ============================================================================== --- head/stand/geli/geliboot.c Wed May 9 20:51:16 2018 (r333438) +++ head/stand/geli/geliboot.c Wed May 9 20:53:38 2018 (r333439) @@ -121,14 +121,14 @@ geli_findkey(struct geli_entry *ge, struct dsk *dskp, int i; if (ge->keybuf_slot >= 0) { - if (g_eli_mkey_decrypt(&ge->md, saved_keys[ge->keybuf_slot], + if (g_eli_mkey_decrypt_any(&ge->md, saved_keys[ge->keybuf_slot], mkey, &keynum) == 0) { return (0); } } for (i = 0; i < nsaved_keys; i++) { - if (g_eli_mkey_decrypt(&ge->md, saved_keys[i], mkey, + if (g_eli_mkey_decrypt_any(&ge->md, saved_keys[i], mkey, &keynum) == 0) { ge->keybuf_slot = i; return (0); @@ -266,7 +266,7 @@ geli_attach(struct geli_entry *ge, struct dsk *dskp, c g_eli_crypto_hmac_final(&ctx, key, 0); - error = g_eli_mkey_decrypt(&geli_e->md, key, mkey, &keynum); + error = g_eli_mkey_decrypt_any(&geli_e->md, key, mkey, &keynum); if (error == -1) { explicit_bzero(mkey, sizeof(mkey)); explicit_bzero(key, sizeof(key)); Modified: head/sys/geom/eli/g_eli.c ============================================================================== --- head/sys/geom/eli/g_eli.c Wed May 9 20:51:16 2018 (r333438) +++ head/sys/geom/eli/g_eli.c Wed May 9 20:53:38 2018 (r333439) @@ -1086,7 +1086,7 @@ g_eli_taste(struct g_class *mp, struct g_provider *pp, memcpy(key, keybuf->kb_ents[i].ke_data, sizeof(key)); - if (g_eli_mkey_decrypt(&md, key, + if (g_eli_mkey_decrypt_any(&md, key, mkey, &nkey) == 0 ) { explicit_bzero(key, sizeof(key)); goto have_key; @@ -1161,7 +1161,7 @@ g_eli_taste(struct g_class *mp, struct g_provider *pp, /* * Decrypt Master-Key. */ - error = g_eli_mkey_decrypt(&md, key, mkey, &nkey); + error = g_eli_mkey_decrypt_any(&md, key, mkey, &nkey); bzero(key, sizeof(key)); if (error == -1) { if (i == tries) { Modified: head/sys/geom/eli/g_eli.h ============================================================================== --- head/sys/geom/eli/g_eli.h Wed May 9 20:51:16 2018 (r333438) +++ head/sys/geom/eli/g_eli.h Wed May 9 20:53:38 2018 (r333439) @@ -688,6 +688,8 @@ void g_eli_crypto_ivgen(struct g_eli_softc *sc, off_t void g_eli_mkey_hmac(unsigned char *mkey, const unsigned char *key); int g_eli_mkey_decrypt(const struct g_eli_metadata *md, + const unsigned char *key, unsigned char *mkey, unsigned keyp); +int g_eli_mkey_decrypt_any(const struct g_eli_metadata *md, const unsigned char *key, unsigned char *mkey, unsigned *nkeyp); int g_eli_mkey_encrypt(unsigned algo, const unsigned char *key, unsigned keylen, unsigned char *mkey); Modified: head/sys/geom/eli/g_eli_ctl.c ============================================================================== --- head/sys/geom/eli/g_eli_ctl.c Wed May 9 20:51:16 2018 (r333438) +++ head/sys/geom/eli/g_eli_ctl.c Wed May 9 20:53:38 2018 (r333439) @@ -60,8 +60,8 @@ g_eli_ctl_attach(struct gctl_req *req, struct g_class const char *name; u_char *key, mkey[G_ELI_DATAIVKEYLEN]; int *nargs, *detach, *readonly, *dryrun; - int keysize, error; - u_int nkey; + int keysize, error, nkey; + intmax_t *valp; g_topology_assert(); @@ -81,6 +81,17 @@ g_eli_ctl_attach(struct gctl_req *req, struct g_class return; } + valp = gctl_get_paraml(req, "keyno", sizeof(*valp)); + if (valp == NULL) { + gctl_error(req, "No '%s' argument.", "keyno"); + return; + } + nkey = *valp; + if (nkey < -1 || nkey >= G_ELI_MAXMKEYS) { + gctl_error(req, "Invalid '%s' argument.", "keyno"); + return; + } + readonly = gctl_get_paraml(req, "readonly", sizeof(*readonly)); if (readonly == NULL) { gctl_error(req, "No '%s' argument.", "readonly"); @@ -129,7 +140,10 @@ g_eli_ctl_attach(struct gctl_req *req, struct g_class return; } - error = g_eli_mkey_decrypt(&md, key, mkey, &nkey); + if (nkey == -1) + error = g_eli_mkey_decrypt_any(&md, key, mkey, &nkey); + else + error = g_eli_mkey_decrypt(&md, key, mkey, nkey); explicit_bzero(key, keysize); if (error == -1) { explicit_bzero(&md, sizeof(md)); @@ -981,7 +995,7 @@ g_eli_ctl_resume(struct gctl_req *req, struct g_class return; } - error = g_eli_mkey_decrypt(&md, key, mkey, &nkey); + error = g_eli_mkey_decrypt_any(&md, key, mkey, &nkey); explicit_bzero(key, keysize); if (error == -1) { explicit_bzero(&md, sizeof(md)); Modified: head/sys/geom/eli/g_eli_key.c ============================================================================== --- head/sys/geom/eli/g_eli_key.c Wed May 9 20:51:16 2018 (r333438) +++ head/sys/geom/eli/g_eli_key.c Wed May 9 20:53:38 2018 (r333439) @@ -103,52 +103,77 @@ g_eli_mkey_hmac(unsigned char *mkey, const unsigned ch } /* - * Find and decrypt Master Key encrypted with 'key'. - * Return decrypted Master Key number in 'nkeyp' if not NULL. + * Find and decrypt Master Key encrypted with 'key' at slot 'nkey'. * Return 0 on success, > 0 on failure, -1 on bad key. */ int g_eli_mkey_decrypt(const struct g_eli_metadata *md, const unsigned char *key, - unsigned char *mkey, unsigned *nkeyp) + unsigned char *mkey, unsigned nkey) { unsigned char tmpmkey[G_ELI_MKEYLEN]; unsigned char enckey[SHA512_MDLEN]; /* Key for encryption. */ const unsigned char *mmkey; - int bit, error, nkey; + int bit, error; - if (nkeyp != NULL) - *nkeyp = -1; + if (nkey > G_ELI_MKEYLEN) + return (-1); /* * The key for encryption is: enckey = HMAC_SHA512(Derived-Key, 1) */ g_eli_crypto_hmac(key, G_ELI_USERKEYLEN, "\x01", 1, enckey, 0); - mmkey = md->md_mkeys; - for (nkey = 0; nkey < G_ELI_MAXMKEYS; nkey++, mmkey += G_ELI_MKEYLEN) { - bit = (1 << nkey); - if (!(md->md_keys & bit)) - continue; - bcopy(mmkey, tmpmkey, G_ELI_MKEYLEN); - error = g_eli_crypto_decrypt(md->md_ealgo, tmpmkey, - G_ELI_MKEYLEN, enckey, md->md_keylen); - if (error != 0) { - explicit_bzero(tmpmkey, sizeof(tmpmkey)); - explicit_bzero(enckey, sizeof(enckey)); - return (error); - } - if (g_eli_mkey_verify(tmpmkey, key)) { - bcopy(tmpmkey, mkey, G_ELI_DATAIVKEYLEN); - explicit_bzero(tmpmkey, sizeof(tmpmkey)); - explicit_bzero(enckey, sizeof(enckey)); - if (nkeyp != NULL) - *nkeyp = nkey; - return (0); - } + mmkey = md->md_mkeys + G_ELI_MKEYLEN * nkey; + bit = (1 << nkey); + if (!(md->md_keys & bit)) + return (-1); + bcopy(mmkey, tmpmkey, G_ELI_MKEYLEN); + error = g_eli_crypto_decrypt(md->md_ealgo, tmpmkey, + G_ELI_MKEYLEN, enckey, md->md_keylen); + if (error != 0) { + explicit_bzero(tmpmkey, sizeof(tmpmkey)); + explicit_bzero(enckey, sizeof(enckey)); + return (error); } + if (g_eli_mkey_verify(tmpmkey, key)) { + bcopy(tmpmkey, mkey, G_ELI_DATAIVKEYLEN); + explicit_bzero(tmpmkey, sizeof(tmpmkey)); + explicit_bzero(enckey, sizeof(enckey)); + return (0); + } explicit_bzero(enckey, sizeof(enckey)); explicit_bzero(tmpmkey, sizeof(tmpmkey)); + return (-1); +} + +/* + * Find and decrypt Master Key encrypted with 'key'. + * Return decrypted Master Key number in 'nkeyp' if not NULL. + * Return 0 on success, > 0 on failure, -1 on bad key. + */ +int +g_eli_mkey_decrypt_any(const struct g_eli_metadata *md, + const unsigned char *key, unsigned char *mkey, unsigned *nkeyp) +{ + int error, nkey; + + if (nkeyp != NULL) + *nkeyp = -1; + + error = -1; + for (nkey = 0; nkey < G_ELI_MAXMKEYS; nkey++) { + error = g_eli_mkey_decrypt(md, key, mkey, nkey); + if (error == 0) { + if (nkeyp != NULL) + *nkeyp = nkey; + break; + } else if (error > 0) { + break; + } + } + + return (error); } /* From owner-svn-src-head@freebsd.org Wed May 9 20:57:19 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78123FCC1A5; Wed, 9 May 2018 20:57:19 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2B2386BBBB; Wed, 9 May 2018 20:57:19 +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 0CF7516A6E; Wed, 9 May 2018 20:57:19 +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 w49KvIjF081756; Wed, 9 May 2018 20:57:18 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49KvIND081754; Wed, 9 May 2018 20:57:18 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805092057.w49KvIND081754@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 9 May 2018 20:57:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333440 - in head/sys/compat/linuxkpi/common: include/linux src X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head/sys/compat/linuxkpi/common: include/linux src X-SVN-Commit-Revision: 333440 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:57:19 -0000 Author: markj Date: Wed May 9 20:57:18 2018 New Revision: 333440 URL: https://svnweb.freebsd.org/changeset/base/333440 Log: Remove "All rights reserved" from my files. See r333391 for the rationale. MFC after: 1 week Modified: head/sys/compat/linuxkpi/common/include/linux/hrtimer.h head/sys/compat/linuxkpi/common/src/linux_hrtimer.c Modified: head/sys/compat/linuxkpi/common/include/linux/hrtimer.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/hrtimer.h Wed May 9 20:53:38 2018 (r333439) +++ head/sys/compat/linuxkpi/common/include/linux/hrtimer.h Wed May 9 20:57:18 2018 (r333440) @@ -1,6 +1,5 @@ /*- * Copyright (c) 2017 Mark Johnston - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/sys/compat/linuxkpi/common/src/linux_hrtimer.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_hrtimer.c Wed May 9 20:53:38 2018 (r333439) +++ head/sys/compat/linuxkpi/common/src/linux_hrtimer.c Wed May 9 20:57:18 2018 (r333440) @@ -1,6 +1,5 @@ /*- * Copyright (c) 2017 Mark Johnston - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Wed May 9 20:58:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DD5DFCC25D for ; Wed, 9 May 2018 20:58:34 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-yb0-x242.google.com (mail-yb0-x242.google.com [IPv6:2607:f8b0:4002:c09::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E08836BDED for ; Wed, 9 May 2018 20:58:33 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-yb0-x242.google.com with SMTP id j143-v6so3710048ybg.2 for ; Wed, 09 May 2018 13:58:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=CEmnw2Y7PbaPo1cN3aD2Jn8ZOv43pwNUWluZDcOhIyU=; b=KyqbduokcW5g8j1vvGVcGDUKNrAGL2qQSg7dLfawSIf5GhmF5FMZ49d6kAuIUWx7Q9 B4QTXB/+T73GlruFfqErYdVnmoqzCTlqYfEB16siSKz0gjKl8L3F8WhnGYfVSURq226c DxykdKPQYoT56nn1QUQn6Y25mwch5o8q4E2KenlOxUsi/5gQx3ziGguo0F2VZtVAzTKy bvFGN6RRlqNNoLU0CU3ARwNmP8iIqiVeI956iEO3yCzDUpFNY6NnEeVfGL01qLE9fYBU YRLwXye7kTwmis03dOKp2P4C1JOoaOBKXVjvlVRshcBz7pxsaThFGL7db8vB/ouY/myo R0Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=CEmnw2Y7PbaPo1cN3aD2Jn8ZOv43pwNUWluZDcOhIyU=; b=kwstcBwQt9i1wsf3c+jgMRTcV+IHAc3euIny1MGWLbGmSij2oONlDqobE/kkGDL1G/ FX3CbBPXsUPKKz10O/qDj7qExYvqJGtYL305QyJStQprse8iL5XsOepIzblO/ZUqGLsY w/3Jj+ehllS+GIaolkXSYVupSuIAodZz64XD9HreBjj7ZYLmolbFasAr7v8BcmfRsr66 FWmddwSchFSnIZtetqy9SbuYK7nwURv8ev5Hz5zRv5x3ws5svI7bRBb2kga9CRiZm0a2 BwIchzVR62dx7pqWBY8R/ePoT/vNlKuDS/m8o/kmZfa5fttT5hJcEzNzDMJ7/EWQ6TQp RH/Q== X-Gm-Message-State: ALKqPweU2UKzbktAPPZQEIL6O1xoWk+8dpqHzPY6/QK/q+nFven8Ddh/ /hgJ03NhA6TF7XGsgafHcw2JV5bMYHtO7J70BGc/9w== X-Google-Smtp-Source: AB8JxZrtGvyC5FpBQIzEBnya3m86BsilK9tSrh4anQsVT7gK/oezqyDAq+bLiVxf7Jh5gxvN9S5vQB75RTNDYi53APA= X-Received: by 2002:a25:dcc4:: with SMTP id y187-v6mr9858416ybe.331.1525899513233; Wed, 09 May 2018 13:58:33 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:3894:0:0:0:0:0 with HTTP; Wed, 9 May 2018 13:58:32 -0700 (PDT) In-Reply-To: <201805092051.w49KpGZm079239@repo.freebsd.org> References: <201805092051.w49KpGZm079239@repo.freebsd.org> From: Oliver Pinter Date: Wed, 9 May 2018 22:58:32 +0200 Message-ID: Subject: Re: svn commit: r333438 - head/sbin/geom/class/eli To: Mariusz Zaborski Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 20:58:34 -0000 On Wednesday, May 9, 2018, Mariusz Zaborski wrote: > Author: oshogbo > Date: Wed May 9 20:51:16 2018 > New Revision: 333438 > URL: https://svnweb.freebsd.org/changeset/base/333438 > > Log: > Change option dry-run from 'n' to 'C' in geli attach command. > > 'n' is used in other commands to define the key index. > We should be consistent with that. > 'C' option is used by patch(1) to perform dryrun so lets use that. > > Reviewed by: allanjude > Differential Revision: https://reviews.freebsd.org/D15308 Relnotes: yes > > Modified: > head/sbin/geom/class/eli/geli.8 > head/sbin/geom/class/eli/geom_eli.c > > Modified: head/sbin/geom/class/eli/geli.8 > ============================================================ > ================== > --- head/sbin/geom/class/eli/geli.8 Wed May 9 20:49:50 2018 > (r333437) > +++ head/sbin/geom/class/eli/geli.8 Wed May 9 20:51:16 2018 > (r333438) > @@ -24,7 +24,7 @@ > .\" > .\" $FreeBSD$ > .\" > -.Dd April 10, 2018 > +.Dd May 9, 2018 > .Dt GELI 8 > .Os > .Sh NAME > @@ -67,7 +67,7 @@ utility: > .Cm init > .Nm > .Cm attach > -.Op Fl dnprv > +.Op Fl Cdprv > .Op Fl j Ar passfile > .Op Fl k Ar keyfile > .Ar prov > @@ -393,6 +393,9 @@ suffix. > .Pp > Additional options include: > .Bl -tag -width ".Fl j Ar passfile" > +.It Fl C > +Do a dry-run decryption. > +This is useful to verify passphrase and keyfile without decrypting the > device. > .It Fl d > If specified, a decrypted provider will be detached automatically on last > close. > This can help with scarce memory so the user does not have to remember to > detach the > @@ -420,9 +423,6 @@ For more information see the description of the > option for the > .Cm init > subcommand. > -.It Fl n > -Do a dry-run decryption. > -This is useful to verify passphrase and keyfile without decrypting the > device. > .It Fl p > Do not use a passphrase as a component of the User Key. > Cannot be combined with the > > Modified: head/sbin/geom/class/eli/geom_eli.c > ============================================================ > ================== > --- head/sbin/geom/class/eli/geom_eli.c Wed May 9 20:49:50 2018 > (r333437) > +++ head/sbin/geom/class/eli/geom_eli.c Wed May 9 20:51:16 2018 > (r333438) > @@ -86,7 +86,7 @@ static int eli_backup_create(struct gctl_req *req, con > * > * init [-bdgPTv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] > [-l keylen] [-J newpassfile] [-K newkeyfile] [-s sectorsize] [-V version] > prov > * label - alias for 'init' > - * attach [-dprv] [-j passfile] [-k keyfile] prov > + * attach [-Cdprv] [-j passfile] [-k keyfile] prov > * detach [-fl] prov ... > * stop - alias for 'detach' > * onetime [-d] [-a aalgo] [-e ealgo] [-l keylen] prov > @@ -145,15 +145,15 @@ struct g_command class_commands[] = { > }, > { "attach", G_FLAG_VERBOSE | G_FLAG_LOADKLD, eli_main, > { > + { 'C', "dryrun", NULL, G_TYPE_BOOL }, > { 'd', "detach", NULL, G_TYPE_BOOL }, > { 'j', "passfile", G_VAL_OPTIONAL, G_TYPE_STRING | > G_TYPE_MULTI }, > { 'k', "keyfile", G_VAL_OPTIONAL, G_TYPE_STRING | > G_TYPE_MULTI }, > - { 'n', "dryrun", NULL, G_TYPE_BOOL }, > { 'p', "nopassphrase", NULL, G_TYPE_BOOL }, > { 'r', "readonly", NULL, G_TYPE_BOOL }, > G_OPT_SENTINEL > }, > - "[-dnprv] [-j passfile] [-k keyfile] prov" > + "[-Cdprv] [-j passfile] [-k keyfile] prov" > }, > { "detach", 0, NULL, > { > _______________________________________________ > 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" > From owner-svn-src-head@freebsd.org Wed May 9 21:05:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2BB42FCC491; Wed, 9 May 2018 21:05:10 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BA9526E929; Wed, 9 May 2018 21:05:09 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from helicon.physics.ucla.edu (helicon.physics.ucla.edu [169.232.156.253]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id w49KsRQr029793 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 9 May 2018 13:54:28 -0700 Subject: Re: svn commit: r333436 - in head/etc: etc.aarch64 etc.amd64 etc.arm etc.i386 etc.powerpc etc.riscv etc.sparc64 To: Warner Losh , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201805092049.w49Kn1QT076817@repo.freebsd.org> From: Nathan Whitehorn Message-ID: <688d1720-f1a1-0592-5807-3417d6dc6095@freebsd.org> Date: Wed, 9 May 2018 13:54:27 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <201805092049.w49Kn1QT076817@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Sonic-CAuth: UmFuZG9tSVZOYxYpkZwsTfsk7IawoYEeu3+MN2MnyOh0bSwG8QUDPNyqdgT6xLUn6X2Xmy2BVd7gcJ198c3AwofAHNfm+zqeKN8K3RLentk= X-Sonic-ID: C;GCyYKctT6BG9ePMiNyVX4g== M;ktPpKctT6BG9ePMiNyVX4g== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 21:05:10 -0000 Thanks! At this point, these files only differ from each other in white space, comments, and whether they have video console lines at all, which is made unnecessary by this commit --- with the exception of sparc64, which has a few extra off-by-default console options. Any reason not to unify them? Or is that a follow-up commit? -Nathan On 05/09/18 13:49, Warner Losh wrote: > Author: imp > Date: Wed May 9 20:49:00 2018 > New Revision: 333436 > URL: https://svnweb.freebsd.org/changeset/base/333436 > > Log: > For video consoles, only launch a getty if the device exists. > > Differential Revision: https://reviews.freebsd.org/D15169 > > Modified: > head/etc/etc.aarch64/ttys > head/etc/etc.amd64/ttys > head/etc/etc.arm/ttys > head/etc/etc.i386/ttys > head/etc/etc.powerpc/ttys > head/etc/etc.riscv/ttys > head/etc/etc.sparc64/ttys > > Modified: head/etc/etc.aarch64/ttys > ============================================================================== > --- head/etc/etc.aarch64/ttys Wed May 9 20:41:03 2018 (r333435) > +++ head/etc/etc.aarch64/ttys Wed May 9 20:49:00 2018 (r333436) > @@ -29,16 +29,16 @@ > # when going to single-user mode. > console none unknown off secure > # > -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure > +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure > # Virtual terminals > -ttyv1 "/usr/libexec/getty Pc" xterm off secure > -ttyv2 "/usr/libexec/getty Pc" xterm off secure > -ttyv3 "/usr/libexec/getty Pc" xterm off secure > -ttyv4 "/usr/libexec/getty Pc" xterm off secure > -ttyv5 "/usr/libexec/getty Pc" xterm off secure > -ttyv6 "/usr/libexec/getty Pc" xterm off secure > -ttyv7 "/usr/libexec/getty Pc" xterm off secure > -#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure > +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure > +#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm onifexists secure > # Serial terminals > # The 'dialup' keyword identifies dialin lines to login, fingerd etc. > ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure > > Modified: head/etc/etc.amd64/ttys > ============================================================================== > --- head/etc/etc.amd64/ttys Wed May 9 20:41:03 2018 (r333435) > +++ head/etc/etc.amd64/ttys Wed May 9 20:49:00 2018 (r333436) > @@ -29,15 +29,15 @@ > # when going to single-user mode. > console none unknown off secure > # > -ttyv0 "/usr/libexec/getty Pc" xterm on secure > +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure > # Virtual terminals > -ttyv1 "/usr/libexec/getty Pc" xterm on secure > -ttyv2 "/usr/libexec/getty Pc" xterm on secure > -ttyv3 "/usr/libexec/getty Pc" xterm on secure > -ttyv4 "/usr/libexec/getty Pc" xterm on secure > -ttyv5 "/usr/libexec/getty Pc" xterm on secure > -ttyv6 "/usr/libexec/getty Pc" xterm on secure > -ttyv7 "/usr/libexec/getty Pc" xterm on secure > +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure > ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure > # Serial terminals > # The 'dialup' keyword identifies dialin lines to login, fingerd etc. > > Modified: head/etc/etc.arm/ttys > ============================================================================== > --- head/etc/etc.arm/ttys Wed May 9 20:41:03 2018 (r333435) > +++ head/etc/etc.arm/ttys Wed May 9 20:49:00 2018 (r333436) > @@ -29,15 +29,15 @@ > # when going to single-user mode. > console none unknown off secure > # > -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure > +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure > # Virtual terminals > -ttyv1 "/usr/libexec/getty Pc" xterm off secure > -ttyv2 "/usr/libexec/getty Pc" xterm off secure > -ttyv3 "/usr/libexec/getty Pc" xterm off secure > -ttyv4 "/usr/libexec/getty Pc" xterm off secure > -ttyv5 "/usr/libexec/getty Pc" xterm off secure > -ttyv6 "/usr/libexec/getty Pc" xterm off secure > -ttyv7 "/usr/libexec/getty Pc" xterm off secure > +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure > #ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure > # Serial terminals > # The 'dialup' keyword identifies dialin lines to login, fingerd etc. > > Modified: head/etc/etc.i386/ttys > ============================================================================== > --- head/etc/etc.i386/ttys Wed May 9 20:41:03 2018 (r333435) > +++ head/etc/etc.i386/ttys Wed May 9 20:49:00 2018 (r333436) > @@ -29,15 +29,15 @@ > # when going to single-user mode. > console none unknown off secure > # > -ttyv0 "/usr/libexec/getty Pc" xterm on secure > +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure > # Virtual terminals > -ttyv1 "/usr/libexec/getty Pc" xterm on secure > -ttyv2 "/usr/libexec/getty Pc" xterm on secure > -ttyv3 "/usr/libexec/getty Pc" xterm on secure > -ttyv4 "/usr/libexec/getty Pc" xterm on secure > -ttyv5 "/usr/libexec/getty Pc" xterm on secure > -ttyv6 "/usr/libexec/getty Pc" xterm on secure > -ttyv7 "/usr/libexec/getty Pc" xterm on secure > +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure > ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure > # Serial terminals > # The 'dialup' keyword identifies dialin lines to login, fingerd etc. > > Modified: head/etc/etc.powerpc/ttys > ============================================================================== > --- head/etc/etc.powerpc/ttys Wed May 9 20:41:03 2018 (r333435) > +++ head/etc/etc.powerpc/ttys Wed May 9 20:49:00 2018 (r333436) > @@ -29,15 +29,15 @@ > # when going to single-user mode. > console none unknown off secure > # > -ttyv0 "/usr/libexec/getty Pc" xterm on secure > +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure > # Virtual terminals > -ttyv1 "/usr/libexec/getty Pc" xterm on secure > -ttyv2 "/usr/libexec/getty Pc" xterm on secure > -ttyv3 "/usr/libexec/getty Pc" xterm on secure > -ttyv4 "/usr/libexec/getty Pc" xterm on secure > -ttyv5 "/usr/libexec/getty Pc" xterm on secure > -ttyv6 "/usr/libexec/getty Pc" xterm on secure > -ttyv7 "/usr/libexec/getty Pc" xterm on secure > +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure > #ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure > # Serial terminals > # The 'dialup' keyword identifies dialin lines to login, fingerd etc. > > Modified: head/etc/etc.riscv/ttys > ============================================================================== > --- head/etc/etc.riscv/ttys Wed May 9 20:41:03 2018 (r333435) > +++ head/etc/etc.riscv/ttys Wed May 9 20:49:00 2018 (r333436) > @@ -29,16 +29,16 @@ > # when going to single-user mode. > console none unknown off secure > # > -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure > +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure > # Virtual terminals > -ttyv1 "/usr/libexec/getty Pc" xterm off secure > -ttyv2 "/usr/libexec/getty Pc" xterm off secure > -ttyv3 "/usr/libexec/getty Pc" xterm off secure > -ttyv4 "/usr/libexec/getty Pc" xterm off secure > -ttyv5 "/usr/libexec/getty Pc" xterm off secure > -ttyv6 "/usr/libexec/getty Pc" xterm off secure > -ttyv7 "/usr/libexec/getty Pc" xterm off secure > -#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure > +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure > +#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm onifexists secure > # Serial terminals > # The 'dialup' keyword identifies dialin lines to login, fingerd etc. > ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure > > Modified: head/etc/etc.sparc64/ttys > ============================================================================== > --- head/etc/etc.sparc64/ttys Wed May 9 20:41:03 2018 (r333435) > +++ head/etc/etc.sparc64/ttys Wed May 9 20:49:00 2018 (r333436) > @@ -33,15 +33,15 @@ screen "/usr/libexec/getty Pc" vt100 off secure > ttya "/usr/libexec/getty 3wire.9600" vt100 off secure > ttyb "/usr/libexec/getty 3wire.9600" vt100 off secure > # syscons(4) > -ttyv0 "/usr/libexec/getty Pc" xterm on secure > +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure > # Virtual terminals > -ttyv1 "/usr/libexec/getty Pc" xterm on secure > -ttyv2 "/usr/libexec/getty Pc" xterm on secure > -ttyv3 "/usr/libexec/getty Pc" xterm on secure > -ttyv4 "/usr/libexec/getty Pc" xterm on secure > -ttyv5 "/usr/libexec/getty Pc" xterm on secure > -ttyv6 "/usr/libexec/getty Pc" xterm on secure > -ttyv7 "/usr/libexec/getty Pc" xterm on secure > +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure > +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure > ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure > # Serial terminals > # The 'dialup' keyword identifies dialin lines to login, fingerd etc. > From owner-svn-src-head@freebsd.org Wed May 9 21:05:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1FCFFCC4E3 for ; Wed, 9 May 2018 21:05:52 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (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 3EC7A6EC80 for ; Wed, 9 May 2018 21:05:52 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: bf9ba917-53cc-11e8-96f1-bf4d417d1def 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 outbound1.ore.mailhop.org (Halon) with ESMTPSA id bf9ba917-53cc-11e8-96f1-bf4d417d1def; Wed, 09 May 2018 21:05:49 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id w49L5h0J062032; Wed, 9 May 2018 15:05:43 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1525899943.35372.42.camel@freebsd.org> Subject: Re: svn commit: r333438 - head/sbin/geom/class/eli From: Ian Lepore To: Mariusz Zaborski , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Wed, 09 May 2018 15:05:43 -0600 In-Reply-To: <201805092051.w49KpGZm079239@repo.freebsd.org> References: <201805092051.w49KpGZm079239@repo.freebsd.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 21:05:52 -0000 On Wed, 2018-05-09 at 20:51 +0000, Mariusz Zaborski wrote: > Author: oshogbo > Date: Wed May  9 20:51:16 2018 > New Revision: 333438 > URL: https://svnweb.freebsd.org/changeset/base/333438 > > Log: >   Change option dry-run from 'n' to 'C' in geli attach command. >    >   'n' is used in other commands to define the key index. >   We should be consistent with that. >   'C' option is used by patch(1) to perform dryrun so lets use that. This seems like a dangerous change. Today I am begining to write new product image creation scripts that involve geli, and I'm going to do so under the assumption that the commands and arguments are not going to suddenly change their meaning on some future OS update. Hopefully the new meaning of -n implies an argument which is validated as being either 0 or 1, so that any existing scripts that contain -n to mean "dry run" will very likely fail the validation and not silently misbehave. At the very least, it seems like an entry in UPDATING is required. -- Ian From owner-svn-src-head@freebsd.org Wed May 9 21:08:01 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AECCFCC5B2 for ; Wed, 9 May 2018 21:08:01 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x22b.google.com (mail-it0-x22b.google.com [IPv6:2607:f8b0:4001:c0b::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CE26E6EE54 for ; Wed, 9 May 2018 21:08:00 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x22b.google.com with SMTP id y189-v6so629496itb.2 for ; Wed, 09 May 2018 14:08:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=twDhg6vipeXEkYejEgBBBRMg0crYdGLvU+toDZWJiD4=; b=N8vQkl5iPWbG/L1H3pQH+WXxP4ztPMzpxoUjuNNwID60OPc3XHgC+LTisX67vzj0NV PgjIwyegHqF31ThhcbHsKQMNt9nJELjsWtqJu/Hh8MesJ9i1Ir5WX1AfQbCJPI2hbU8v XbOeYjS8rsiGCo80qn1P8dxCOY2OlY9DwscfcthqYJ99IE9P1H0k0fxiZzLXlLiMC0qs rzGsiDXNTYf2NSdRFKfUumkr5wOfsLjoBHX1TJcQVXp5842kQeFIGWfkyRgKjW8wm1TI 6XHgaOssL3BpqKx6lVVlJISpQ3IUCfo/X3BwOD36VtFRsn1qSis+l+SNfcamCbfIW5Yv rqDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=twDhg6vipeXEkYejEgBBBRMg0crYdGLvU+toDZWJiD4=; b=IcDxT0KtgbCxgoLwokTSSQSH5Bo0NTpdyciazvuiKip0q5Jt2O7121OE4938IWnNip g7KiFXaTV8n0D6Zokalkf1fwSv/JdOZUQ9h6qbxufP+mYKIDZgK8xfSEvR6Hkwx5eTIw bP69dRubhkU9fDRkta9kXwAsjkydFDgHOFZyEo1j9hBJgPQMB9EGB1D7fWafGWfG5ONH t2+nXGWlWZ9yyZ+9L/NWClynhDZrrw+Kk2g7rxjGZMOrUoOmzaHoKHXkQQdHTsHNJtmy nXCCf3PwHv+0f+y9kbOoykX9AwZHQV9DAAHfuDX7DJ8DFXXUYBbNlxNslhLedFDbCKdC hUnA== X-Gm-Message-State: ALKqPweTzEP1DxniGiQ2D5KdQ+8gEKxh3LW0wW4PDQc/WY6cTucYpa2f NY4XqY2ThVVJJ6xG06rdzKQwWdZkBi/gxerC0BL02g== X-Google-Smtp-Source: AB8JxZqZYY5Ked9ylO7Avr7JypPP+rvsmH5YUfSUdBKyvkZv5C7WbIftbH/XrPuqdGufX/tykR5uCXg/a/sa4UiXPfg= X-Received: by 2002:a24:42c6:: with SMTP id i189-v6mr11575266itb.73.1525900079945; Wed, 09 May 2018 14:07:59 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Wed, 9 May 2018 14:07:59 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <688d1720-f1a1-0592-5807-3417d6dc6095@freebsd.org> References: <201805092049.w49Kn1QT076817@repo.freebsd.org> <688d1720-f1a1-0592-5807-3417d6dc6095@freebsd.org> From: Warner Losh Date: Wed, 9 May 2018 15:07:59 -0600 X-Google-Sender-Auth: xSI5GNcHJylAjGBaObx-Q-9A3Dw Message-ID: Subject: Re: svn commit: r333436 - in head/etc: etc.aarch64 etc.amd64 etc.arm etc.i386 etc.powerpc etc.riscv etc.sparc64 To: Nathan Whitehorn Cc: Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 21:08:01 -0000 I plan on unifying them as far as I can. The devil is in the details, so that will be a followup commit. Warner On Wed, May 9, 2018 at 2:54 PM, Nathan Whitehorn wrote: > Thanks! > > At this point, these files only differ from each other in white space, > comments, and whether they have video console lines at all, which is made > unnecessary by this commit --- with the exception of sparc64, which has a > few extra off-by-default console options. Any reason not to unify them? Or > is that a follow-up commit? > -Nathan > > > On 05/09/18 13:49, Warner Losh wrote: > >> Author: imp >> Date: Wed May 9 20:49:00 2018 >> New Revision: 333436 >> URL: https://svnweb.freebsd.org/changeset/base/333436 >> >> Log: >> For video consoles, only launch a getty if the device exists. >> Differential Revision: https://reviews.freebsd.org/D15169 >> >> Modified: >> head/etc/etc.aarch64/ttys >> head/etc/etc.amd64/ttys >> head/etc/etc.arm/ttys >> head/etc/etc.i386/ttys >> head/etc/etc.powerpc/ttys >> head/etc/etc.riscv/ttys >> head/etc/etc.sparc64/ttys >> >> Modified: head/etc/etc.aarch64/ttys >> ============================================================ >> ================== >> --- head/etc/etc.aarch64/ttys Wed May 9 20:41:03 2018 (r333435) >> +++ head/etc/etc.aarch64/ttys Wed May 9 20:49:00 2018 (r333436) >> @@ -29,16 +29,16 @@ >> # when going to single-user mode. >> console none unknown off secure >> # >> -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure >> +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure >> # Virtual terminals >> -ttyv1 "/usr/libexec/getty Pc" xterm off secure >> -ttyv2 "/usr/libexec/getty Pc" xterm off secure >> -ttyv3 "/usr/libexec/getty Pc" xterm off secure >> -ttyv4 "/usr/libexec/getty Pc" xterm off secure >> -ttyv5 "/usr/libexec/getty Pc" xterm off secure >> -ttyv6 "/usr/libexec/getty Pc" xterm off secure >> -ttyv7 "/usr/libexec/getty Pc" xterm off secure >> -#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure >> +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure >> +#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm onifexists secure >> # Serial terminals >> # The 'dialup' keyword identifies dialin lines to login, fingerd etc. >> ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure >> >> Modified: head/etc/etc.amd64/ttys >> ============================================================ >> ================== >> --- head/etc/etc.amd64/ttys Wed May 9 20:41:03 2018 (r333435) >> +++ head/etc/etc.amd64/ttys Wed May 9 20:49:00 2018 (r333436) >> @@ -29,15 +29,15 @@ >> # when going to single-user mode. >> console none unknown off secure >> # >> -ttyv0 "/usr/libexec/getty Pc" xterm on secure >> +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure >> # Virtual terminals >> -ttyv1 "/usr/libexec/getty Pc" xterm on secure >> -ttyv2 "/usr/libexec/getty Pc" xterm on secure >> -ttyv3 "/usr/libexec/getty Pc" xterm on secure >> -ttyv4 "/usr/libexec/getty Pc" xterm on secure >> -ttyv5 "/usr/libexec/getty Pc" xterm on secure >> -ttyv6 "/usr/libexec/getty Pc" xterm on secure >> -ttyv7 "/usr/libexec/getty Pc" xterm on secure >> +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure >> ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure >> # Serial terminals >> # The 'dialup' keyword identifies dialin lines to login, fingerd etc. >> >> Modified: head/etc/etc.arm/ttys >> ============================================================ >> ================== >> --- head/etc/etc.arm/ttys Wed May 9 20:41:03 2018 (r333435) >> +++ head/etc/etc.arm/ttys Wed May 9 20:49:00 2018 (r333436) >> @@ -29,15 +29,15 @@ >> # when going to single-user mode. >> console none unknown off secure >> # >> -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure >> +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure >> # Virtual terminals >> -ttyv1 "/usr/libexec/getty Pc" xterm off secure >> -ttyv2 "/usr/libexec/getty Pc" xterm off secure >> -ttyv3 "/usr/libexec/getty Pc" xterm off secure >> -ttyv4 "/usr/libexec/getty Pc" xterm off secure >> -ttyv5 "/usr/libexec/getty Pc" xterm off secure >> -ttyv6 "/usr/libexec/getty Pc" xterm off secure >> -ttyv7 "/usr/libexec/getty Pc" xterm off secure >> +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure >> #ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure >> # Serial terminals >> # The 'dialup' keyword identifies dialin lines to login, fingerd etc. >> >> Modified: head/etc/etc.i386/ttys >> ============================================================ >> ================== >> --- head/etc/etc.i386/ttys Wed May 9 20:41:03 2018 (r333435) >> +++ head/etc/etc.i386/ttys Wed May 9 20:49:00 2018 (r333436) >> @@ -29,15 +29,15 @@ >> # when going to single-user mode. >> console none unknown off secure >> # >> -ttyv0 "/usr/libexec/getty Pc" xterm on secure >> +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure >> # Virtual terminals >> -ttyv1 "/usr/libexec/getty Pc" xterm on secure >> -ttyv2 "/usr/libexec/getty Pc" xterm on secure >> -ttyv3 "/usr/libexec/getty Pc" xterm on secure >> -ttyv4 "/usr/libexec/getty Pc" xterm on secure >> -ttyv5 "/usr/libexec/getty Pc" xterm on secure >> -ttyv6 "/usr/libexec/getty Pc" xterm on secure >> -ttyv7 "/usr/libexec/getty Pc" xterm on secure >> +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure >> ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure >> # Serial terminals >> # The 'dialup' keyword identifies dialin lines to login, fingerd etc. >> >> Modified: head/etc/etc.powerpc/ttys >> ============================================================ >> ================== >> --- head/etc/etc.powerpc/ttys Wed May 9 20:41:03 2018 (r333435) >> +++ head/etc/etc.powerpc/ttys Wed May 9 20:49:00 2018 (r333436) >> @@ -29,15 +29,15 @@ >> # when going to single-user mode. >> console none unknown off secure >> # >> -ttyv0 "/usr/libexec/getty Pc" xterm on secure >> +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure >> # Virtual terminals >> -ttyv1 "/usr/libexec/getty Pc" xterm on secure >> -ttyv2 "/usr/libexec/getty Pc" xterm on secure >> -ttyv3 "/usr/libexec/getty Pc" xterm on secure >> -ttyv4 "/usr/libexec/getty Pc" xterm on secure >> -ttyv5 "/usr/libexec/getty Pc" xterm on secure >> -ttyv6 "/usr/libexec/getty Pc" xterm on secure >> -ttyv7 "/usr/libexec/getty Pc" xterm on secure >> +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure >> #ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure >> # Serial terminals >> # The 'dialup' keyword identifies dialin lines to login, fingerd etc. >> >> Modified: head/etc/etc.riscv/ttys >> ============================================================ >> ================== >> --- head/etc/etc.riscv/ttys Wed May 9 20:41:03 2018 (r333435) >> +++ head/etc/etc.riscv/ttys Wed May 9 20:49:00 2018 (r333436) >> @@ -29,16 +29,16 @@ >> # when going to single-user mode. >> console none unknown off secure >> # >> -ttyv0 "/usr/libexec/getty Pc" xterm onifconsole secure >> +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure >> # Virtual terminals >> -ttyv1 "/usr/libexec/getty Pc" xterm off secure >> -ttyv2 "/usr/libexec/getty Pc" xterm off secure >> -ttyv3 "/usr/libexec/getty Pc" xterm off secure >> -ttyv4 "/usr/libexec/getty Pc" xterm off secure >> -ttyv5 "/usr/libexec/getty Pc" xterm off secure >> -ttyv6 "/usr/libexec/getty Pc" xterm off secure >> -ttyv7 "/usr/libexec/getty Pc" xterm off secure >> -#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure >> +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure >> +#ttyv8 "/usr/local/bin/xdm -nodaemon" xterm onifexists secure >> # Serial terminals >> # The 'dialup' keyword identifies dialin lines to login, fingerd etc. >> ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure >> >> Modified: head/etc/etc.sparc64/ttys >> ============================================================ >> ================== >> --- head/etc/etc.sparc64/ttys Wed May 9 20:41:03 2018 (r333435) >> +++ head/etc/etc.sparc64/ttys Wed May 9 20:49:00 2018 (r333436) >> @@ -33,15 +33,15 @@ screen "/usr/libexec/getty Pc" vt100 >> off secure >> ttya "/usr/libexec/getty 3wire.9600" vt100 off secure >> ttyb "/usr/libexec/getty 3wire.9600" vt100 off secure >> # syscons(4) >> -ttyv0 "/usr/libexec/getty Pc" xterm on secure >> +ttyv0 "/usr/libexec/getty Pc" xterm onifexists secure >> # Virtual terminals >> -ttyv1 "/usr/libexec/getty Pc" xterm on secure >> -ttyv2 "/usr/libexec/getty Pc" xterm on secure >> -ttyv3 "/usr/libexec/getty Pc" xterm on secure >> -ttyv4 "/usr/libexec/getty Pc" xterm on secure >> -ttyv5 "/usr/libexec/getty Pc" xterm on secure >> -ttyv6 "/usr/libexec/getty Pc" xterm on secure >> -ttyv7 "/usr/libexec/getty Pc" xterm on secure >> +ttyv1 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv2 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv3 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv4 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv5 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv6 "/usr/libexec/getty Pc" xterm onifexists secure >> +ttyv7 "/usr/libexec/getty Pc" xterm onifexists secure >> ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure >> # Serial terminals >> # The 'dialup' keyword identifies dialin lines to login, fingerd etc. >> >> > From owner-svn-src-head@freebsd.org Wed May 9 21:12:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9235FCC80C; Wed, 9 May 2018 21:12:26 +0000 (UTC) (envelope-from oshogbo.vx@gmail.com) Received: from mail-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5CE277002C; Wed, 9 May 2018 21:12:26 +0000 (UTC) (envelope-from oshogbo.vx@gmail.com) Received: by mail-lf0-x243.google.com with SMTP id x7-v6so17976425lff.13; Wed, 09 May 2018 14:12:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Bv/GWVnleopESpbDF1LmWArTItN82hdldpYv0R0sZpE=; b=I728j5SQwHTdrfvfpW7H7hFFF903yh90863QrvsozFzuDN0dS16xa6QyrBMIYR0u9O LpxgRuN2QAqdy3fIg3M5xq7vbziPpKC1tDETbZunjYo90YQQJdLu8V+c06Ky3xWkKQ5g +604V87zHRYPDGfYq8DsR0ckkOzwoT/QbpstSDNghG7xRbyj6H8Pf+U1PHQ22AN1c/vG sw2Dx/iV2TR0HXKwV/5nM4LhtgbpKDrA3Eo/Zv++Z36JEMDKLLkAI/HYirm8MHvNulp+ +ChChjOFpXxar/5wkrAypRzfyvC3I5y/pqi3LNeNfA09M886pDE0ucOGXakf8Xse8b3S h4EA== 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 :references:mime-version:content-disposition:in-reply-to:user-agent; bh=Bv/GWVnleopESpbDF1LmWArTItN82hdldpYv0R0sZpE=; b=b59LMQy9BM4xsm3DkI3Dk8MnAKQLiydzi22SzNJj+hq5yEJDQ/8WmzxOAV+CO6nk9u W4p5V8bJhSjZYL8eaPSzYcH38JUwja+v2sTd6/2NfwuenTBXOaKpT3LOG8uuVw9gzh/H Z6iDWdB3RgB/0UG4FDyTbEJbrLnTf/eqnSj8Thg2FUszpuTBdJw+V1tBbuzrdOqarJ+U g2Nis6czAeJwZ7rRzZ1+ncQlGoXMyhHSFl3IriTVZUHKgZHEpNS01bLvEru6Fqur5gvP TjcKY1b0urwJBNaK61KcOFIl611AV9iugr4jRogdtl6Y3jaMKBcUZLyulkb/J1RPrkBz /1BQ== X-Gm-Message-State: ALQs6tDsbSfVCNjrmsoEEFhy32ZB6oMdCrZkBPd5JOEBEvO0gN1t7H4U vbKwGqthpMstFPyesvubnllPmXBc X-Google-Smtp-Source: AB8JxZpw1epa65qDZJVjFoig+KNQfY/2yHvwqe3n6198NOOuIlU2HKdNcgLY+Lo7sk7Zc7RbUxNxyg== X-Received: by 2002:a19:930f:: with SMTP id v15-v6mr13825668lfd.83.1525900344598; Wed, 09 May 2018 14:12:24 -0700 (PDT) Received: from x-wing (87-206-170-77.dynamic.chello.pl. [87.206.170.77]) by smtp.gmail.com with ESMTPSA id b5-v6sm4466920ljj.73.2018.05.09.14.12.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 May 2018 14:12:23 -0700 (PDT) Sender: Mariusz Zaborski Date: Thu, 10 May 2018 00:13:12 +0200 From: Mariusz Zaborski To: Ian Lepore Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333438 - head/sbin/geom/class/eli Message-ID: <20180509221312.GA27592@x-wing> References: <201805092051.w49KpGZm079239@repo.freebsd.org> <1525899943.35372.42.camel@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5vNYLRcllDrimb99" Content-Disposition: inline In-Reply-To: <1525899943.35372.42.camel@freebsd.org> User-Agent: Mutt/1.9.5 (2018-04-13) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 21:12:27 -0000 --5vNYLRcllDrimb99 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, May 09, 2018 at 03:05:43PM -0600, Ian Lepore wrote: > On Wed, 2018-05-09 at 20:51 +0000, Mariusz Zaborski wrote: > > Author: oshogbo > > Date: Wed May=A0=A09 20:51:16 2018 > > New Revision: 333438 > > URL: https://svnweb.freebsd.org/changeset/base/333438 > >=20 > > Log: > > =A0 Change option dry-run from 'n' to 'C' in geli attach command. > > =A0=A0 > > =A0 'n' is used in other commands to define the key index. > > =A0 We should be consistent with that. > > =A0 'C' option is used by patch(1) to perform dryrun so lets use that. >=20 > This seems like a dangerous change. Today I am begining to write new > product image creation scripts that involve geli, and I'm going to do > so under the assumption that the commands and arguments are not going > to suddenly change their meaning on some future OS update. >=20 > Hopefully the new meaning of -n implies an argument which is validated > as being either 0 or 1, so that any existing scripts that contain -n to > mean "dry run" will very likely fail the validation and not silently > misbehave. >=20 > At the very least, it seems like an entry in UPDATING is required. Oliver, Ian - thank you for noticing this. I wasn't sure if we need to add UPDATING or release notes because I added '= n' option couple weeks ago and wasn't integrated to any stable/release branch. Considering that should we still update UPDATING? Thanks, --=20 Mariusz Zaborski oshogbo//vx | http://oshogbo.vexillium.org FreeBSD commiter | https://freebsd.org Software developer | http://wheelsystems.com If it's not broken, let's fix it till it is!!1 --5vNYLRcllDrimb99 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEkD1x0xkJXVVY1Gwf38KEGuLGxWQFAlrzcmoACgkQ38KEGuLG xWSl/w/+KmElVSTFKE1NpcRlG2ozz/TbzMl0s6OGb2JpOMEHVT+tsQUsdJFA+wgD OQOHhwHgKkp/4IosU3HdwfcvuqjuHDcfQLLvl0bue0HwdjiRc1BvNBFyx9AVgCzr pVv/W/Ymp6PjuyT7lKMpX4UQ7RZV3BCVPq0nGnzkJ/sf5VPnaQId/S3IupaaRpTg juyJ2vgdT/hG8+jRlpk2YeBXsiOBf2dQo8iQEn7EjG36RSQQq9pSA9SV3Q3H74b+ or/Td9b9IuWzBLZdmb9DVImwrI20ICV9SA4QvEmqtD2dct+eaiIlESn26Pj2Q+3Y KK2BhZxupY2Oq6p2wRV2SBvtDS0iYKH76EJHzehFq5ZfL0p2lKCs5bDO5i4BMsZb zj4lFz2uC1MwUNPwAVdv+cGTB/vKUUrttK4pWMdFH9394dOhoTaI+r89QrU2GINg HUt3Ld+45beR1xjYsVmil+On7qN/Is22QiWQMdvZh0pddRTcvX4oXQ+bXGLnWNdD RVSiYK2s6pzAYTxz//8pmxImg+ACJ1tZfhB6gIYrrLfGygwjG0Ey2Z2F4IiDyhnY 2Dco6Dhq3zbiIg5Ds3VSCUA3XbBobyzfKAQSQOkDzJbpOXd4qresaLQFfNIUvuvZ UJLMYo9v3pEvdbDmMM4YpCVFfEkKYNDpSRGzycmNoBWkMWTFB1I= =fK5p -----END PGP SIGNATURE----- --5vNYLRcllDrimb99-- From owner-svn-src-head@freebsd.org Wed May 9 21:21:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D54F7FCC995; Wed, 9 May 2018 21:21:51 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5505E7256A; Wed, 9 May 2018 21:21:51 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 1DFA0CD94; Wed, 9 May 2018 21:21:51 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: Warner Losh Cc: Cy Schubert , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333393 - head/sys/contrib/ipfilter/netinet Date: Wed, 09 May 2018 14:13:37 -0700 Message-ID: <1843086.zoJA0hnD5f@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: References: <201805090207.w49279t8006603@repo.freebsd.org> <1872360.cC9XDcqkuS@ralph.baldwin.cx> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 21:21:52 -0000 On Wednesday, May 09, 2018 02:29:05 PM Warner Losh wrote: > On Wed, May 9, 2018 at 10:52 AM, John Baldwin wrote: > > > On Wednesday, May 09, 2018 10:02:06 AM Warner Losh wrote: > > > On Wed, May 9, 2018 at 8:58 AM, John Baldwin wrote: > > > > > > > On Wednesday, May 09, 2018 02:07:09 AM Cy Schubert wrote: > > > > > Author: cy > > > > > Date: Wed May 9 02:07:09 2018 > > > > > New Revision: 333393 > > > > > URL: https://svnweb.freebsd.org/changeset/base/333393 > > > > > > > > > > Log: > > > > > Document intentional fallthrough. (CID 976535) > > > > > > > > > > MFC after: 1 week > > > > > > > > > > Modified: > > > > > head/sys/contrib/ipfilter/netinet/fil.c > > > > > > > > > > Modified: head/sys/contrib/ipfilter/netinet/fil.c > > > > > ============================================================ > > > > ================== > > > > > --- head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:02:58 > > 2018 > > > > (r333392) > > > > > +++ head/sys/contrib/ipfilter/netinet/fil.c Wed May 9 02:07:09 > > 2018 > > > > (r333393) > > > > > @@ -1299,6 +1299,7 @@ ipf_pr_icmp(fin) > > > > > } > > > > > } > > > > > #endif > > > > > + /* fallthrough is intentional */ > > > > > case ICMP_SOURCEQUENCH : > > > > > case ICMP_REDIRECT : > > > > > case ICMP_TIMXCEED : > > > > > > > > Hmm, normal FreeBSD style here is to use /* FALLTHROUGH */, and there > > are > > > > three other instances of that style in ipfilter already (and none > > others > > > > using this comment style). > > > > > > > > > > /* FALLTHROUGH */ is actually an old-school lint directive that other > > tools > > > have picked up. > > > > Yes, but it is still the dominant style in the tree even if it has come > > from > > lint. > > > > Agreed. I wasn't arguing, just saying it has a long history and everybody > does it today even though lint's relevance has faded. I do think that clang and gcc will look for 'fallthrough' (case insensitive) for their built-in warnings. C has also added a [[fallthrough]] attribute apparently? -- John Baldwin From owner-svn-src-head@freebsd.org Wed May 9 21:27:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B3DCFCCE65 for ; Wed, 9 May 2018 21:27:11 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (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 2399F742BC for ; Wed, 9 May 2018 21:27:10 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: bf53de34-53cf-11e8-b234-5d9545c6b53f 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 outbound2.ore.mailhop.org (Halon) with ESMTPSA id bf53de34-53cf-11e8-b234-5d9545c6b53f; Wed, 09 May 2018 21:27:17 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id w49LR2bv062077; Wed, 9 May 2018 15:27:02 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1525901222.35372.48.camel@freebsd.org> Subject: Re: svn commit: r333438 - head/sbin/geom/class/eli From: Ian Lepore To: Mariusz Zaborski Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Wed, 09 May 2018 15:27:02 -0600 In-Reply-To: <20180509221312.GA27592@x-wing> References: <201805092051.w49KpGZm079239@repo.freebsd.org> <1525899943.35372.42.camel@freebsd.org> <20180509221312.GA27592@x-wing> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 21:27:11 -0000 On Thu, 2018-05-10 at 00:13 +0200, Mariusz Zaborski wrote: > On Wed, May 09, 2018 at 03:05:43PM -0600, Ian Lepore wrote: > > > > On Wed, 2018-05-09 at 20:51 +0000, Mariusz Zaborski wrote: > > > > > > Author: oshogbo > > > Date: Wed May  9 20:51:16 2018 > > > New Revision: 333438 > > > URL: https://svnweb.freebsd.org/changeset/base/333438 > > > > > > Log: > > >   Change option dry-run from 'n' to 'C' in geli attach command. > > >    > > >   'n' is used in other commands to define the key index. > > >   We should be consistent with that. > > >   'C' option is used by patch(1) to perform dryrun so lets use that. > > This seems like a dangerous change. Today I am begining to write new > > product image creation scripts that involve geli, and I'm going to do > > so under the assumption that the commands and arguments are not going > > to suddenly change their meaning on some future OS update. > > > > Hopefully the new meaning of -n implies an argument which is validated > > as being either 0 or 1, so that any existing scripts that contain -n to > > mean "dry run" will very likely fail the validation and not silently > > misbehave. > > > > At the very least, it seems like an entry in UPDATING is required. > Oliver, Ian - thank you for noticing this. > I wasn't sure if we need to add UPDATING or release notes because I added 'n' > option couple weeks ago and wasn't integrated to any stable/release branch. > Considering that should we still update UPDATING? Oh, I didn't realize the -n was that new. In that case, I think this change is probably safe and doesn't need an UPDATING entry. For release notes, maybe just a note that the attach command now lets you select the key index. -- Ian From owner-svn-src-head@freebsd.org Thu May 10 00:04:16 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06DBCFCFCA2; Thu, 10 May 2018 00:04:16 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AD5CD75B7B; Thu, 10 May 2018 00:04:15 +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 8FF5B18963; Thu, 10 May 2018 00:04:15 +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 w4A04Fnr080772; Thu, 10 May 2018 00:04:15 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A04FXL080770; Thu, 10 May 2018 00:04:15 GMT (envelope-from np@FreeBSD.org) Message-Id: <201805100004.w4A04FXL080770@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 10 May 2018 00:04:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333442 - in head/sys/dev/cxgbe: . common X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: in head/sys/dev/cxgbe: . common X-SVN-Commit-Revision: 333442 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 00:04:16 -0000 Author: np Date: Thu May 10 00:04:14 2018 New Revision: 333442 URL: https://svnweb.freebsd.org/changeset/base/333442 Log: cxgbe(4): Determine whether the firmware supports the FILTER2 work request, which can be used to configure hardware NAT and swapmac. All firmwares released after Jan 2017 support this work request. Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/common/common.h head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/common/common.h ============================================================================== --- head/sys/dev/cxgbe/common/common.h Wed May 9 21:50:20 2018 (r333441) +++ head/sys/dev/cxgbe/common/common.h Thu May 10 00:04:14 2018 (r333442) @@ -371,6 +371,7 @@ struct adapter_params { unsigned int bypass:1; /* this is a bypass card */ unsigned int ethoffload:1; unsigned int hash_filter:1; + unsigned int filter2_wr_support:1; unsigned int ofldq_wr_cred; unsigned int eo_wr_cred; Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Wed May 9 21:50:20 2018 (r333441) +++ head/sys/dev/cxgbe/t4_main.c Thu May 10 00:04:14 2018 (r333442) @@ -3631,6 +3631,18 @@ get_params__post_init(struct adapter *sc) else sc->params.mps_bg_map = 0; + /* + * Determine whether the firmware supports the filter2 work request. + * This is queried separately for the same reason as MPSBGMAP above. + */ + param[0] = FW_PARAM_DEV(FILTER2_WR); + val[0] = 0; + rc = -t4_query_params(sc, sc->mbox, sc->pf, 0, 1, param, val); + if (rc == 0) + sc->params.filter2_wr_support = val[0] != 0; + else + sc->params.filter2_wr_support = 0; + /* get capabilites */ bzero(&caps, sizeof(caps)); caps.op_to_write = htobe32(V_FW_CMD_OP(FW_CAPS_CONFIG_CMD) | From owner-svn-src-head@freebsd.org Thu May 10 02:31:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1B00FD52AF; Thu, 10 May 2018 02:31:39 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 76ED273069; Thu, 10 May 2018 02:31:39 +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 599A11A2FD; Thu, 10 May 2018 02:31:39 +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 w4A2Vdap054271; Thu, 10 May 2018 02:31:39 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A2VcZi054268; Thu, 10 May 2018 02:31:38 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805100231.w4A2VcZi054268@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 10 May 2018 02:31:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333443 - in head/sys: conf libkern powerpc/powerpc X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: conf libkern powerpc/powerpc X-SVN-Commit-Revision: 333443 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 02:31:40 -0000 Author: imp Date: Thu May 10 02:31:38 2018 New Revision: 333443 URL: https://svnweb.freebsd.org/changeset/base/333443 Log: Move MI-ish bcopy routine to libkern riscv and powerpc have nearly identical bcopy.c that's supposed to be mostly MI. Move it to the MI libkern. Differential Revision: https://reviews.freebsd.org/D15374 Added: head/sys/libkern/bcopy.c (contents, props changed) - copied, changed from r333436, head/sys/powerpc/powerpc/bcopy.c Deleted: head/sys/powerpc/powerpc/bcopy.c Modified: head/sys/conf/files.powerpc head/sys/conf/files.riscv Modified: head/sys/conf/files.powerpc ============================================================================== --- head/sys/conf/files.powerpc Thu May 10 00:04:14 2018 (r333442) +++ head/sys/conf/files.powerpc Thu May 10 02:31:38 2018 (r333443) @@ -85,6 +85,7 @@ kern/subr_sfbuf.c standard libkern/ashldi3.c optional powerpc | powerpcspe libkern/ashrdi3.c optional powerpc | powerpcspe libkern/bcmp.c standard +libkern/bcopy.c standard libkern/cmpdi2.c optional powerpc | powerpcspe libkern/divdi3.c optional powerpc | powerpcspe libkern/ffs.c standard @@ -195,7 +196,6 @@ powerpc/powernv/powernv_centaur.c optional powernv powerpc/powernv/powernv_xscom.c optional powernv powerpc/powerpc/altivec.c optional powerpc | powerpc64 powerpc/powerpc/autoconf.c standard -powerpc/powerpc/bcopy.c standard powerpc/powerpc/bus_machdep.c standard powerpc/powerpc/busdma_machdep.c standard powerpc/powerpc/clock.c standard Modified: head/sys/conf/files.riscv ============================================================================== --- head/sys/conf/files.riscv Thu May 10 00:04:14 2018 (r333442) +++ head/sys/conf/files.riscv Thu May 10 02:31:38 2018 (r333443) @@ -12,6 +12,7 @@ kern/kern_clocksource.c standard kern/subr_devmap.c standard kern/subr_dummy_vdso_tc.c standard libkern/bcmp.c standard +libkern/bcopy.c standard libkern/ffs.c standard libkern/ffsl.c standard libkern/ffsll.c standard @@ -21,7 +22,6 @@ libkern/flsll.c standard libkern/memmove.c standard libkern/memset.c standard riscv/riscv/autoconf.c standard -riscv/riscv/bcopy.c standard riscv/riscv/bus_machdep.c standard riscv/riscv/bus_space_asm.S standard riscv/riscv/busdma_machdep.c standard Copied and modified: head/sys/libkern/bcopy.c (from r333436, head/sys/powerpc/powerpc/bcopy.c) ============================================================================== From owner-svn-src-head@freebsd.org Thu May 10 02:31:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D32EFD52CE; Thu, 10 May 2018 02:31:50 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E06447317D; Thu, 10 May 2018 02:31:49 +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 C0D981A308; Thu, 10 May 2018 02:31:49 +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 w4A2Vndv054327; Thu, 10 May 2018 02:31:49 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A2VnS0054324; Thu, 10 May 2018 02:31:49 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805100231.w4A2VnS0054324@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 10 May 2018 02:31:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333444 - in head/sys: conf libkern X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: conf libkern X-SVN-Commit-Revision: 333444 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 02:31:50 -0000 Author: imp Date: Thu May 10 02:31:48 2018 New Revision: 333444 URL: https://svnweb.freebsd.org/changeset/base/333444 Log: Simplify things a little Rather than include a copy for memmove to call bcopy to call memcpy (which handles overlapping copies), make memmove a strong reference to memcpy to save the two calls. Differential Revision: https://reviews.freebsd.org/D15374 Modified: head/sys/conf/files.powerpc head/sys/conf/files.riscv head/sys/libkern/bcopy.c Modified: head/sys/conf/files.powerpc ============================================================================== --- head/sys/conf/files.powerpc Thu May 10 02:31:38 2018 (r333443) +++ head/sys/conf/files.powerpc Thu May 10 02:31:48 2018 (r333444) @@ -95,7 +95,6 @@ libkern/fls.c standard libkern/flsl.c standard libkern/flsll.c standard libkern/lshrdi3.c optional powerpc | powerpcspe -libkern/memmove.c standard libkern/memset.c standard libkern/moddi3.c optional powerpc | powerpcspe libkern/qdivrem.c optional powerpc | powerpcspe Modified: head/sys/conf/files.riscv ============================================================================== --- head/sys/conf/files.riscv Thu May 10 02:31:38 2018 (r333443) +++ head/sys/conf/files.riscv Thu May 10 02:31:48 2018 (r333444) @@ -19,7 +19,6 @@ libkern/ffsll.c standard libkern/fls.c standard libkern/flsl.c standard libkern/flsll.c standard -libkern/memmove.c standard libkern/memset.c standard riscv/riscv/autoconf.c standard riscv/riscv/bus_machdep.c standard Modified: head/sys/libkern/bcopy.c ============================================================================== --- head/sys/libkern/bcopy.c Thu May 10 02:31:38 2018 (r333443) +++ head/sys/libkern/bcopy.c Thu May 10 02:31:48 2018 (r333444) @@ -50,6 +50,10 @@ __FBSDID("$FreeBSD$"); #include #endif +#undef memcpy +#undef memmove +#undef bcopy + /* * sizeof(word) MUST BE A POWER OF TWO * SO THAT wmask BELOW IS ALL ONES @@ -141,6 +145,8 @@ memcpy(void *dst0, const void *src0, size_t length) done: return (dst0); } + +__strong_reference(memcpy, memmove); void (bcopy)(const void *src0, void *dst0, size_t length) From owner-svn-src-head@freebsd.org Thu May 10 02:31:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6788FD52ED; Thu, 10 May 2018 02:31:56 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 27AE5731F3; Thu, 10 May 2018 02:31:55 +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 C40181A30F; Thu, 10 May 2018 02:31: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 w4A2VsIp054382; Thu, 10 May 2018 02:31:54 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A2VsAa054380; Thu, 10 May 2018 02:31:54 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805100231.w4A2VsAa054380@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 10 May 2018 02:31:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333445 - in head/sys/i386: i386 include X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys/i386: i386 include X-SVN-Commit-Revision: 333445 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 02:31:56 -0000 Author: imp Date: Thu May 10 02:31:54 2018 New Revision: 333445 URL: https://svnweb.freebsd.org/changeset/base/333445 Log: Remove unused bcopyb. Differential Revision: https://reviews.freebsd.org/D15374 Modified: head/sys/i386/i386/support.s head/sys/i386/include/md_var.h Modified: head/sys/i386/i386/support.s ============================================================================== --- head/sys/i386/i386/support.s Thu May 10 02:31:48 2018 (r333444) +++ head/sys/i386/i386/support.s Thu May 10 02:31:54 2018 (r333445) @@ -145,37 +145,6 @@ ENTRY(fillw) ret END(fillw) -ENTRY(bcopyb) - pushl %esi - pushl %edi - movl 12(%esp),%esi - movl 16(%esp),%edi - movl 20(%esp),%ecx - movl %edi,%eax - subl %esi,%eax - cmpl %ecx,%eax /* overlapping && src < dst? */ - jb 1f - rep - movsb - popl %edi - popl %esi - ret - - ALIGN_TEXT -1: - addl %ecx,%edi /* copy backwards. */ - addl %ecx,%esi - decl %edi - decl %esi - std - rep - movsb - popl %edi - popl %esi - cld - ret -END(bcopyb) - /* * bcopy(src, dst, cnt) * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 Modified: head/sys/i386/include/md_var.h ============================================================================== --- head/sys/i386/include/md_var.h Thu May 10 02:31:48 2018 (r333444) +++ head/sys/i386/include/md_var.h Thu May 10 02:31:54 2018 (r333445) @@ -54,7 +54,6 @@ extern uintptr_t setidt_disp; struct segment_descriptor; union savefpu; -void bcopyb(const void *from, void *to, size_t len); int cp_slow0(vm_offset_t uva, size_t len, bool write, void (*f)(vm_offset_t, void *), void *arg); void cpu_switch_load_gs(void) __asm(__STRING(cpu_switch_load_gs)); From owner-svn-src-head@freebsd.org Thu May 10 03:50:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 696C1FAD127; Thu, 10 May 2018 03:50:22 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1174A84882; Thu, 10 May 2018 03:50:22 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E55C21B015; Thu, 10 May 2018 03:50:21 +0000 (UTC) (envelope-from araujo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4A3oLSK095141; Thu, 10 May 2018 03:50:21 GMT (envelope-from araujo@FreeBSD.org) Received: (from araujo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A3oKBe095134; Thu, 10 May 2018 03:50:20 GMT (envelope-from araujo@FreeBSD.org) Message-Id: <201805100350.w4A3oKBe095134@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: araujo set sender to araujo@FreeBSD.org using -f From: Marcelo Araujo Date: Thu, 10 May 2018 03:50:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333446 - in head: sys/cam/ctl sys/sys usr.sbin/ctladm usr.sbin/ctld X-SVN-Group: head X-SVN-Commit-Author: araujo X-SVN-Commit-Paths: in head: sys/cam/ctl sys/sys usr.sbin/ctladm usr.sbin/ctld X-SVN-Commit-Revision: 333446 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 03:50:22 -0000 Author: araujo Date: Thu May 10 03:50:20 2018 New Revision: 333446 URL: https://svnweb.freebsd.org/changeset/base/333446 Log: Rework CTL frontend & backend options to use nv(3), allow creating multiple ioctl frontend ports. This revision introduces two changes to CTL: - Changes the way options are passed to CTL_LUN_REQ and CTL_PORT_REQ ioctls. Removes ctl_be_arg structure and associated logic and replaces it with nv(3)-based logic for passing in and out arguments. - Allows creating multiple ioctl frontend ports using either ctladm(8) or ctld(8). New frontend ports are represented by /dev/cam/ctl. nodes, eg /dev/cam/ctl5.3. Those device nodes respond only to CTL_IO ioctl. New command-line options for ctladm: # creates new ioctl frontend port with using free pp and vp=0 ctladm port -c # creates new ioctl frontend port with pp=10 and vp=0 ctladm port -c -O pp=10 # creates new ioctl frontend port with pp=11 and vp=12 ctladm port -c -O pp=11 -O vp=12 # removes port with number 4 (it's a "targ_port" number, not pp number) ctladm port -r -p 4 New syntax for ctl.conf: target ... { port ioctl/ ... } target ... { port ioctl// ... Note: Most of this work was made by jceel@, thank you. Submitted by: jceel Reworked by: myself Reviewed by: mav (earlier versions and recently during the rework) Obtained from: FreeNAS and TrueOS Relnotes: Yes Sponsored by: iXsystems Inc. Differential Revision: https://reviews.freebsd.org/D9299 Modified: head/sys/cam/ctl/ctl.c head/sys/cam/ctl/ctl.h head/sys/cam/ctl/ctl_backend.c head/sys/cam/ctl/ctl_backend.h head/sys/cam/ctl/ctl_backend_block.c head/sys/cam/ctl/ctl_backend_ramdisk.c head/sys/cam/ctl/ctl_frontend.c head/sys/cam/ctl/ctl_frontend.h head/sys/cam/ctl/ctl_frontend_ioctl.c head/sys/cam/ctl/ctl_frontend_iscsi.c head/sys/cam/ctl/ctl_ioctl.h head/sys/cam/ctl/ctl_tpc.c head/sys/sys/param.h head/usr.sbin/ctladm/Makefile head/usr.sbin/ctladm/ctladm.8 head/usr.sbin/ctladm/ctladm.c head/usr.sbin/ctld/Makefile head/usr.sbin/ctld/ctld.c head/usr.sbin/ctld/ctld.h head/usr.sbin/ctld/kernel.c head/usr.sbin/ctld/parse.y head/usr.sbin/ctld/uclparse.c Modified: head/sys/cam/ctl/ctl.c ============================================================================== --- head/sys/cam/ctl/ctl.c Thu May 10 02:31:54 2018 (r333445) +++ head/sys/cam/ctl/ctl.c Thu May 10 03:50:20 2018 (r333446) @@ -4,6 +4,8 @@ * Copyright (c) 2003-2009 Silicon Graphics International Corp. * Copyright (c) 2012 The FreeBSD Foundation * Copyright (c) 2014-2017 Alexander Motin + * Copyright (c) 2017 Jakub Wojciech Klama + * Copyright (c) 2018 Marcelo Araujo * All rights reserved. * * Portions of this software were developed by Edward Tomasz Napierala @@ -65,6 +67,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include @@ -1869,6 +1873,7 @@ ctl_init(void) args.mda_gid = GID_OPERATOR; args.mda_mode = 0600; args.mda_si_drv1 = softc; + args.mda_si_drv2 = NULL; error = make_dev_s(&args, &softc->dev, "cam/ctl"); if (error != 0) { free(softc, M_DEVBUF); @@ -2468,105 +2473,6 @@ ctl_copyin_alloc(void *user_addr, unsigned int len, ch return (kptr); } -static void -ctl_free_args(int num_args, struct ctl_be_arg *args) -{ - int i; - - if (args == NULL) - return; - - for (i = 0; i < num_args; i++) { - free(args[i].kname, M_CTL); - free(args[i].kvalue, M_CTL); - } - - free(args, M_CTL); -} - -static struct ctl_be_arg * -ctl_copyin_args(int num_args, struct ctl_be_arg *uargs, - char *error_str, size_t error_str_len) -{ - struct ctl_be_arg *args; - int i; - - args = ctl_copyin_alloc(uargs, num_args * sizeof(*args), - error_str, error_str_len); - - if (args == NULL) - goto bailout; - - for (i = 0; i < num_args; i++) { - args[i].kname = NULL; - args[i].kvalue = NULL; - } - - for (i = 0; i < num_args; i++) { - uint8_t *tmpptr; - - if (args[i].namelen == 0) { - snprintf(error_str, error_str_len, "Argument %d " - "name length is zero", i); - goto bailout; - } - - args[i].kname = ctl_copyin_alloc(args[i].name, - args[i].namelen, error_str, error_str_len); - if (args[i].kname == NULL) - goto bailout; - - if (args[i].kname[args[i].namelen - 1] != '\0') { - snprintf(error_str, error_str_len, "Argument %d " - "name is not NUL-terminated", i); - goto bailout; - } - - if (args[i].flags & CTL_BEARG_RD) { - if (args[i].vallen == 0) { - snprintf(error_str, error_str_len, "Argument %d " - "value length is zero", i); - goto bailout; - } - - tmpptr = ctl_copyin_alloc(args[i].value, - args[i].vallen, error_str, error_str_len); - if (tmpptr == NULL) - goto bailout; - - if ((args[i].flags & CTL_BEARG_ASCII) - && (tmpptr[args[i].vallen - 1] != '\0')) { - snprintf(error_str, error_str_len, "Argument " - "%d value is not NUL-terminated", i); - free(tmpptr, M_CTL); - goto bailout; - } - args[i].kvalue = tmpptr; - } else { - args[i].kvalue = malloc(args[i].vallen, - M_CTL, M_WAITOK | M_ZERO); - } - } - - return (args); -bailout: - - ctl_free_args(num_args, args); - - return (NULL); -} - -static void -ctl_copyout_args(int num_args, struct ctl_be_arg *args) -{ - int i; - - for (i = 0; i < num_args; i++) { - if (args[i].flags & CTL_BEARG_WR) - copyout(args[i].kvalue, args[i].value, args[i].vallen); - } -} - /* * Escape characters that are illegal or not recommended in XML. */ @@ -3038,8 +2944,12 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, case CTL_LUN_REQ: { struct ctl_lun_req *lun_req; struct ctl_backend_driver *backend; + void *packed; + nvlist_t *tmp_args_nvl; + size_t packed_len; lun_req = (struct ctl_lun_req *)addr; + tmp_args_nvl = lun_req->args_nvl; backend = ctl_backend_find(lun_req->backend); if (backend == NULL) { @@ -3050,32 +2960,68 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, lun_req->backend); break; } - if (lun_req->num_be_args > 0) { - lun_req->kern_be_args = ctl_copyin_args( - lun_req->num_be_args, - lun_req->be_args, - lun_req->error_str, - sizeof(lun_req->error_str)); - if (lun_req->kern_be_args == NULL) { + + if (lun_req->args != NULL) { + lun_req->args_nvl = nvlist_unpack(lun_req->args, + lun_req->args_len, 0); + + if (lun_req->args_nvl == NULL) { lun_req->status = CTL_LUN_ERROR; + snprintf(lun_req->error_str, sizeof(lun_req->error_str), + "Cannot unpack args nvlist."); break; } - } + } else + lun_req->args_nvl = nvlist_create(0); retval = backend->ioctl(dev, cmd, addr, flag, td); + nvlist_destroy(lun_req->args_nvl); + lun_req->args_nvl = tmp_args_nvl; - if (lun_req->num_be_args > 0) { - ctl_copyout_args(lun_req->num_be_args, - lun_req->kern_be_args); - ctl_free_args(lun_req->num_be_args, - lun_req->kern_be_args); + if (lun_req->result_nvl != NULL) { + if (lun_req->result != NULL) { + packed = nvlist_pack(lun_req->result_nvl, + &packed_len); + if (packed == NULL) { + lun_req->status = CTL_LUN_ERROR; + snprintf(lun_req->error_str, + sizeof(lun_req->error_str), + "Cannot pack result nvlist."); + break; + } + + if (packed_len > lun_req->result_len) { + lun_req->status = CTL_LUN_ERROR; + snprintf(lun_req->error_str, + sizeof(lun_req->error_str), + "Result nvlist too large."); + free(packed, M_NVLIST); + break; + } + + if (copyout(packed, lun_req->result, packed_len)) { + lun_req->status = CTL_LUN_ERROR; + snprintf(lun_req->error_str, + sizeof(lun_req->error_str), + "Cannot copyout() the result."); + free(packed, M_NVLIST); + break; + } + + lun_req->result_len = packed_len; + free(packed, M_NVLIST); + } + + nvlist_destroy(lun_req->result_nvl); } break; } case CTL_LUN_LIST: { struct sbuf *sb; struct ctl_lun_list *list; - struct ctl_option *opt; + const char *name, *value; + void *cookie; + int type; list = (struct ctl_lun_list *)addr; @@ -3201,11 +3147,20 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, if (retval != 0) break; } - STAILQ_FOREACH(opt, &lun->be_lun->options, links) { - retval = sbuf_printf(sb, "\t<%s>%s\n", - opt->name, opt->value, opt->name); - if (retval != 0) - break; + + cookie = NULL; + while ((name = nvlist_next(lun->be_lun->options, &type, + &cookie)) != NULL) { + sbuf_printf(sb, "\t<%s>", name); + + if (type == NV_TYPE_STRING) { + value = dnvlist_get_string( + lun->be_lun->options, name, NULL); + if (value != NULL) + sbuf_printf(sb, "%s", value); + } + + sbuf_printf(sb, "\n", name); } retval = sbuf_printf(sb, "\n"); @@ -3259,8 +3214,12 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, case CTL_PORT_REQ: { struct ctl_req *req; struct ctl_frontend *fe; + void *packed; + nvlist_t *tmp_args_nvl; + size_t packed_len; req = (struct ctl_req *)addr; + tmp_args_nvl = req->args_nvl; fe = ctl_frontend_find(req->driver); if (fe == NULL) { @@ -3269,23 +3228,63 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, "Frontend \"%s\" not found.", req->driver); break; } - if (req->num_args > 0) { - req->kern_args = ctl_copyin_args(req->num_args, - req->args, req->error_str, sizeof(req->error_str)); - if (req->kern_args == NULL) { + + if (req->args != NULL) { + req->args_nvl = nvlist_unpack(req->args, + req->args_len, 0); + + if (req->args_nvl == NULL) { req->status = CTL_LUN_ERROR; + snprintf(req->error_str, sizeof(req->error_str), + "Cannot unpack args nvlist."); break; } - } + } else + req->args_nvl = nvlist_create(0); if (fe->ioctl) retval = fe->ioctl(dev, cmd, addr, flag, td); else retval = ENODEV; - if (req->num_args > 0) { - ctl_copyout_args(req->num_args, req->kern_args); - ctl_free_args(req->num_args, req->kern_args); + nvlist_destroy(req->args_nvl); + req->args_nvl = tmp_args_nvl; + + if (req->result_nvl != NULL) { + if (req->result != NULL) { + packed = nvlist_pack(req->result_nvl, + &packed_len); + if (packed == NULL) { + req->status = CTL_LUN_ERROR; + snprintf(req->error_str, + sizeof(req->error_str), + "Cannot pack result nvlist."); + break; + } + + if (packed_len > req->result_len) { + req->status = CTL_LUN_ERROR; + snprintf(req->error_str, + sizeof(req->error_str), + "Result nvlist too large."); + free(packed, M_NVLIST); + break; + } + + if (copyout(packed, req->result, packed_len)) { + req->status = CTL_LUN_ERROR; + snprintf(req->error_str, + sizeof(req->error_str), + "Cannot copyout() the result."); + free(packed, M_NVLIST); + break; + } + + req->result_len = packed_len; + free(packed, M_NVLIST); + } + + nvlist_destroy(req->result_nvl); } break; } @@ -3293,8 +3292,9 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, struct sbuf *sb; struct ctl_port *port; struct ctl_lun_list *list; - struct ctl_option *opt; - int j; + const char *name, *value; + void *cookie; + int j, type; uint32_t plun; list = (struct ctl_lun_list *)addr; @@ -3369,11 +3369,20 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, if (retval != 0) break; } - STAILQ_FOREACH(opt, &port->options, links) { - retval = sbuf_printf(sb, "\t<%s>%s\n", - opt->name, opt->value, opt->name); - if (retval != 0) - break; + + cookie = NULL; + while ((name = nvlist_next(port->options, &type, + &cookie)) != NULL) { + sbuf_printf(sb, "\t<%s>", name); + + if (type == NV_TYPE_STRING) { + value = dnvlist_get_string(port->options, + name, NULL); + if (value != NULL) + sbuf_printf(sb, "%s", value); + } + + sbuf_printf(sb, "\n", name); } if (port->lun_map != NULL) { @@ -4180,8 +4189,8 @@ ctl_init_page_index(struct ctl_lun *lun) CTL_PAGE_DEFAULT]; scsi_ulto3b(cylinders, rigid_disk_page->cylinders); - if ((value = ctl_get_opt(&lun->be_lun->options, - "rpm")) != NULL) { + if ((value = dnvlist_get_string(lun->be_lun->options, + "rpm", NULL)) != NULL) { scsi_ulto2b(strtol(value, NULL, 0), rigid_disk_page->rotation_rate); } @@ -4234,10 +4243,12 @@ ctl_init_page_index(struct ctl_lun *lun) sizeof(caching_page_default)); caching_page = &lun->mode_pages.caching_page[ CTL_PAGE_SAVED]; - value = ctl_get_opt(&lun->be_lun->options, "writecache"); + value = dnvlist_get_string(lun->be_lun->options, + "writecache", NULL); if (value != NULL && strcmp(value, "off") == 0) caching_page->flags1 &= ~SCP_WCE; - value = ctl_get_opt(&lun->be_lun->options, "readcache"); + value = dnvlist_get_string(lun->be_lun->options, + "readcache", NULL); if (value != NULL && strcmp(value, "off") == 0) caching_page->flags1 |= SCP_RCD; memcpy(&lun->mode_pages.caching_page[CTL_PAGE_CURRENT], @@ -4266,8 +4277,8 @@ ctl_init_page_index(struct ctl_lun *lun) sizeof(control_page_default)); control_page = &lun->mode_pages.control_page[ CTL_PAGE_SAVED]; - value = ctl_get_opt(&lun->be_lun->options, - "reordering"); + value = dnvlist_get_string(lun->be_lun->options, + "reordering", NULL); if (value != NULL && strcmp(value, "unrestricted") == 0) { control_page->queue_flags &= @@ -4342,8 +4353,8 @@ ctl_init_page_index(struct ctl_lun *lun) &lbp_page_default, sizeof(lbp_page_default)); page = &lun->mode_pages.lbp_page[CTL_PAGE_SAVED]; - value = ctl_get_opt(&lun->be_lun->options, - "avail-threshold"); + value = dnvlist_get_string(lun->be_lun->options, + "avail-threshold", NULL); if (value != NULL && ctl_expand_number(value, &ival) == 0) { page->descr[0].flags |= SLBPPD_ENABLED | @@ -4355,8 +4366,8 @@ ctl_init_page_index(struct ctl_lun *lun) scsi_ulto4b(ival >> CTL_LBP_EXPONENT, page->descr[0].count); } - value = ctl_get_opt(&lun->be_lun->options, - "used-threshold"); + value = dnvlist_get_string(lun->be_lun->options, + "used-threshold", NULL); if (value != NULL && ctl_expand_number(value, &ival) == 0) { page->descr[1].flags |= SLBPPD_ENABLED | @@ -4368,8 +4379,8 @@ ctl_init_page_index(struct ctl_lun *lun) scsi_ulto4b(ival >> CTL_LBP_EXPONENT, page->descr[1].count); } - value = ctl_get_opt(&lun->be_lun->options, - "pool-avail-threshold"); + value = dnvlist_get_string(lun->be_lun->options, + "pool-avail-threshold", NULL); if (value != NULL && ctl_expand_number(value, &ival) == 0) { page->descr[2].flags |= SLBPPD_ENABLED | @@ -4381,8 +4392,8 @@ ctl_init_page_index(struct ctl_lun *lun) scsi_ulto4b(ival >> CTL_LBP_EXPONENT, page->descr[2].count); } - value = ctl_get_opt(&lun->be_lun->options, - "pool-used-threshold"); + value = dnvlist_get_string(lun->be_lun->options, + "pool-used-threshold", NULL); if (value != NULL && ctl_expand_number(value, &ival) == 0) { page->descr[3].flags |= SLBPPD_ENABLED | @@ -4581,20 +4592,20 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_ strnlen(be_lun->device_id, CTL_DEVID_LEN)); idlen1 = sizeof(*t10id) + devidlen; len = sizeof(struct scsi_vpd_id_descriptor) + idlen1; - scsiname = ctl_get_opt(&be_lun->options, "scsiname"); + scsiname = dnvlist_get_string(be_lun->options, "scsiname", NULL); if (scsiname != NULL) { idlen2 = roundup2(strlen(scsiname) + 1, 4); len += sizeof(struct scsi_vpd_id_descriptor) + idlen2; } - eui = ctl_get_opt(&be_lun->options, "eui"); + eui = dnvlist_get_string(be_lun->options, "eui", NULL); if (eui != NULL) { len += sizeof(struct scsi_vpd_id_descriptor) + 16; } - naa = ctl_get_opt(&be_lun->options, "naa"); + naa = dnvlist_get_string(be_lun->options, "naa", NULL); if (naa != NULL) { len += sizeof(struct scsi_vpd_id_descriptor) + 16; } - uuid = ctl_get_opt(&be_lun->options, "uuid"); + uuid = dnvlist_get_string(be_lun->options, "uuid", NULL); if (uuid != NULL) { len += sizeof(struct scsi_vpd_id_descriptor) + 18; } @@ -4606,7 +4617,7 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_ desc->length = idlen1; t10id = (struct scsi_vpd_id_t10 *)&desc->identifier[0]; memset(t10id->vendor, ' ', sizeof(t10id->vendor)); - if ((vendor = ctl_get_opt(&be_lun->options, "vendor")) == NULL) { + if ((vendor = dnvlist_get_string(be_lun->options, "vendor", NULL)) == NULL) { strncpy((char *)t10id->vendor, CTL_VENDOR, sizeof(t10id->vendor)); } else { strncpy(t10id->vendor, vendor, @@ -4719,7 +4730,7 @@ fail: if (be_lun->flags & CTL_LUN_FLAG_PRIMARY) lun->flags |= CTL_LUN_PRIMARY_SC; - value = ctl_get_opt(&be_lun->options, "removable"); + value = dnvlist_get_string(be_lun->options, "removable", NULL); if (value != NULL) { if (strcmp(value, "on") == 0) lun->flags |= CTL_LUN_REMOVABLE; @@ -9772,6 +9783,7 @@ ctl_inquiry_evpd_block_limits(struct ctl_scsiio *ctsio { struct ctl_lun *lun = CTL_LUN(ctsio); struct scsi_vpd_block_limits *bl_ptr; + const char *val; uint64_t ival; ctsio->kern_data_ptr = malloc(sizeof(*bl_ptr), M_CTL, M_WAITOK | M_ZERO); @@ -9801,12 +9813,16 @@ ctl_inquiry_evpd_block_limits(struct ctl_scsiio *ctsio scsi_ulto4b(lun->be_lun->opttxferlen, bl_ptr->opt_txfer_len); if (lun->be_lun->flags & CTL_LUN_FLAG_UNMAP) { ival = 0xffffffff; - ctl_get_opt_number(&lun->be_lun->options, - "unmap_max_lba", &ival); + val = dnvlist_get_string(lun->be_lun->options, + "unmap_max_lba", NULL); + if (val != NULL) + ctl_expand_number(val, &ival); scsi_ulto4b(ival, bl_ptr->max_unmap_lba_cnt); ival = 0xffffffff; - ctl_get_opt_number(&lun->be_lun->options, - "unmap_max_descr", &ival); + val = dnvlist_get_string(lun->be_lun->options, + "unmap_max_descr", NULL); + if (val != NULL) + ctl_expand_number(val, &ival); scsi_ulto4b(ival, bl_ptr->max_unmap_blk_cnt); if (lun->be_lun->ublockexp != 0) { scsi_ulto4b((1 << lun->be_lun->ublockexp), @@ -9822,7 +9838,10 @@ ctl_inquiry_evpd_block_limits(struct ctl_scsiio *ctsio scsi_ulto4b(0, bl_ptr->max_atomic_transfer_length_with_atomic_boundary); scsi_ulto4b(0, bl_ptr->max_atomic_boundary_size); ival = UINT64_MAX; - ctl_get_opt_number(&lun->be_lun->options, "write_same_max_lba", &ival); + val = dnvlist_get_string(lun->be_lun->options, + "write_same_max_lba", NULL); + if (val != NULL) + ctl_expand_number(val, &ival); scsi_u64to8b(ival, bl_ptr->max_write_same_length); } @@ -9861,13 +9880,13 @@ ctl_inquiry_evpd_bdc(struct ctl_scsiio *ctsio, int all bdc_ptr->page_code = SVPD_BDC; scsi_ulto2b(sizeof(*bdc_ptr) - 4, bdc_ptr->page_length); if (lun != NULL && - (value = ctl_get_opt(&lun->be_lun->options, "rpm")) != NULL) + (value = dnvlist_get_string(lun->be_lun->options, "rpm", NULL)) != NULL) i = strtol(value, NULL, 0); else i = CTL_DEFAULT_ROTATION_RATE; scsi_ulto2b(i, bdc_ptr->medium_rotation_rate); if (lun != NULL && - (value = ctl_get_opt(&lun->be_lun->options, "formfactor")) != NULL) + (value = dnvlist_get_string(lun->be_lun->options, "formfactor", NULL)) != NULL) i = strtol(value, NULL, 0); else i = 0; @@ -9912,7 +9931,8 @@ ctl_inquiry_evpd_lbp(struct ctl_scsiio *ctsio, int all if (lun != NULL && lun->be_lun->flags & CTL_LUN_FLAG_UNMAP) { lbp_ptr->flags = SVPD_LBP_UNMAP | SVPD_LBP_WS16 | SVPD_LBP_WS10 | SVPD_LBP_RZ | SVPD_LBP_ANC_SUP; - value = ctl_get_opt(&lun->be_lun->options, "provisioning_type"); + value = dnvlist_get_string(lun->be_lun->options, + "provisioning_type", NULL); if (value != NULL) { if (strcmp(value, "resource") == 0) lbp_ptr->prov_type = SVPD_LBP_RESOURCE; @@ -10006,7 +10026,7 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio) struct ctl_lun *lun = CTL_LUN(ctsio); struct scsi_inquiry_data *inq_ptr; struct scsi_inquiry *cdb; - char *val; + const char *val; uint32_t alloc_len, data_len; ctl_port_type port_type; @@ -10084,8 +10104,8 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio) * We have 8 bytes for the vendor name, and 16 bytes for the device * name and 4 bytes for the revision. */ - if (lun == NULL || (val = ctl_get_opt(&lun->be_lun->options, - "vendor")) == NULL) { + if (lun == NULL || (val = dnvlist_get_string(lun->be_lun->options, + "vendor", NULL)) == NULL) { strncpy(inq_ptr->vendor, CTL_VENDOR, sizeof(inq_ptr->vendor)); } else { memset(inq_ptr->vendor, ' ', sizeof(inq_ptr->vendor)); @@ -10095,7 +10115,8 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio) if (lun == NULL) { strncpy(inq_ptr->product, CTL_DIRECT_PRODUCT, sizeof(inq_ptr->product)); - } else if ((val = ctl_get_opt(&lun->be_lun->options, "product")) == NULL) { + } else if ((val = dnvlist_get_string(lun->be_lun->options, "product", + NULL)) == NULL) { switch (lun->be_lun->lun_type) { case T_DIRECT: strncpy(inq_ptr->product, CTL_DIRECT_PRODUCT, @@ -10124,8 +10145,8 @@ ctl_inquiry_std(struct ctl_scsiio *ctsio) * XXX make this a macro somewhere so it automatically gets * incremented when we make changes. */ - if (lun == NULL || (val = ctl_get_opt(&lun->be_lun->options, - "revision")) == NULL) { + if (lun == NULL || (val = dnvlist_get_string(lun->be_lun->options, + "revision", NULL)) == NULL) { strncpy(inq_ptr->revision, "0001", sizeof(inq_ptr->revision)); } else { memset(inq_ptr->revision, ' ', sizeof(inq_ptr->revision)); Modified: head/sys/cam/ctl/ctl.h ============================================================================== --- head/sys/cam/ctl/ctl.h Thu May 10 02:31:54 2018 (r333445) +++ head/sys/cam/ctl/ctl.h Thu May 10 03:50:20 2018 (r333446) @@ -196,24 +196,6 @@ void ctl_isc_announce_iid(struct ctl_port *port, int i void ctl_isc_announce_mode(struct ctl_lun *lun, uint32_t initidx, uint8_t page, uint8_t subpage); -/* - * KPI to manipulate LUN/port options - */ - -struct ctl_option { - STAILQ_ENTRY(ctl_option) links; - char *name; - char *value; -}; -typedef STAILQ_HEAD(ctl_options, ctl_option) ctl_options_t; - -struct ctl_be_arg; -void ctl_init_opts(ctl_options_t *opts, int num_args, struct ctl_be_arg *args); -void ctl_update_opts(ctl_options_t *opts, int num_args, - struct ctl_be_arg *args); -void ctl_free_opts(ctl_options_t *opts); -char * ctl_get_opt(ctl_options_t *opts, const char *name); -int ctl_get_opt_number(ctl_options_t *opts, const char *name, uint64_t *num); int ctl_expand_number(const char *buf, uint64_t *num); #endif /* _KERNEL */ Modified: head/sys/cam/ctl/ctl_backend.c ============================================================================== --- head/sys/cam/ctl/ctl_backend.c Thu May 10 02:31:54 2018 (r333445) +++ head/sys/cam/ctl/ctl_backend.c Thu May 10 03:50:20 2018 (r333446) @@ -141,93 +141,3 @@ ctl_backend_find(char *backend_name) return (NULL); } -void -ctl_init_opts(ctl_options_t *opts, int num_args, struct ctl_be_arg *args) -{ - struct ctl_option *opt; - int i; - - STAILQ_INIT(opts); - for (i = 0; i < num_args; i++) { - if ((args[i].flags & CTL_BEARG_RD) == 0) - continue; - if ((args[i].flags & CTL_BEARG_ASCII) == 0) - continue; - opt = malloc(sizeof(*opt), M_CTL, M_WAITOK); - opt->name = strdup(args[i].kname, M_CTL); - opt->value = strdup(args[i].kvalue, M_CTL); - STAILQ_INSERT_TAIL(opts, opt, links); - } -} - -void -ctl_update_opts(ctl_options_t *opts, int num_args, struct ctl_be_arg *args) -{ - struct ctl_option *opt; - int i; - - for (i = 0; i < num_args; i++) { - if ((args[i].flags & CTL_BEARG_RD) == 0) - continue; - if ((args[i].flags & CTL_BEARG_ASCII) == 0) - continue; - STAILQ_FOREACH(opt, opts, links) { - if (strcmp(opt->name, args[i].kname) == 0) - break; - } - if (args[i].kvalue != NULL && - ((char *)args[i].kvalue)[0] != 0) { - if (opt) { - free(opt->value, M_CTL); - opt->value = strdup(args[i].kvalue, M_CTL); - } else { - opt = malloc(sizeof(*opt), M_CTL, M_WAITOK); - opt->name = strdup(args[i].kname, M_CTL); - opt->value = strdup(args[i].kvalue, M_CTL); - STAILQ_INSERT_TAIL(opts, opt, links); - } - } else if (opt) { - STAILQ_REMOVE(opts, opt, ctl_option, links); - free(opt->name, M_CTL); - free(opt->value, M_CTL); - free(opt, M_CTL); - } - } -} - -void -ctl_free_opts(ctl_options_t *opts) -{ - struct ctl_option *opt; - - while ((opt = STAILQ_FIRST(opts)) != NULL) { - STAILQ_REMOVE_HEAD(opts, links); - free(opt->name, M_CTL); - free(opt->value, M_CTL); - free(opt, M_CTL); - } -} - -char * -ctl_get_opt(ctl_options_t *opts, const char *name) -{ - struct ctl_option *opt; - - STAILQ_FOREACH(opt, opts, links) { - if (strcmp(opt->name, name) == 0) { - return (opt->value); - } - } - return (NULL); -} - -int -ctl_get_opt_number(ctl_options_t *opts, const char *name, uint64_t *val) -{ - const char *value; - - value = ctl_get_opt(opts, name); - if (value == NULL) - return (-2); - return (ctl_expand_number(value, val)); -} Modified: head/sys/cam/ctl/ctl_backend.h ============================================================================== --- head/sys/cam/ctl/ctl_backend.h Thu May 10 02:31:54 2018 (r333445) +++ head/sys/cam/ctl/ctl_backend.h Thu May 10 03:50:20 2018 (r333446) @@ -43,6 +43,7 @@ #define _CTL_BACKEND_H_ #include +#include typedef enum { CTL_LUN_SERSEQ_OFF, @@ -175,7 +176,7 @@ struct ctl_be_lun { be_lun_config_t lun_config_status; /* passed to CTL */ struct ctl_backend_driver *be; /* passed to CTL */ void *ctl_lun; /* used by CTL */ - ctl_options_t options; /* passed to CTL */ + nvlist_t *options; /* passed to CTL */ STAILQ_ENTRY(ctl_be_lun) links; /* used by CTL */ }; Modified: head/sys/cam/ctl/ctl_backend_block.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_block.c Thu May 10 02:31:54 2018 (r333445) +++ head/sys/cam/ctl/ctl_backend_block.c Thu May 10 03:50:20 2018 (r333446) @@ -78,6 +78,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include @@ -1817,7 +1819,7 @@ ctl_be_block_open_file(struct ctl_be_block_lun *be_lun struct ctl_be_lun *cbe_lun; struct ctl_be_block_filedata *file_data; struct ctl_lun_create_params *params; - char *value; + const char *value; struct vattr vattr; off_t ps, pss, po, pos, us, uss, uo, uos; int error; @@ -1867,10 +1869,10 @@ ctl_be_block_open_file(struct ctl_be_block_lun *be_lun us = ps = vattr.va_blocksize; uo = po = 0; - value = ctl_get_opt(&cbe_lun->options, "pblocksize"); + value = dnvlist_get_string(cbe_lun->options, "pblocksize", NULL); if (value != NULL) ctl_expand_number(value, &ps); - value = ctl_get_opt(&cbe_lun->options, "pblockoffset"); + value = dnvlist_get_string(cbe_lun->options, "pblockoffset", NULL); if (value != NULL) ctl_expand_number(value, &po); pss = ps / cbe_lun->blocksize; @@ -1881,10 +1883,10 @@ ctl_be_block_open_file(struct ctl_be_block_lun *be_lun cbe_lun->pblockoff = (pss - pos) % pss; } - value = ctl_get_opt(&cbe_lun->options, "ublocksize"); + value = dnvlist_get_string(cbe_lun->options, "ublocksize", NULL); if (value != NULL) ctl_expand_number(value, &us); - value = ctl_get_opt(&cbe_lun->options, "ublockoffset"); + value = dnvlist_get_string(cbe_lun->options, "ublockoffset", NULL); if (value != NULL) ctl_expand_number(value, &uo); uss = us / cbe_lun->blocksize; @@ -1917,7 +1919,7 @@ ctl_be_block_open_dev(struct ctl_be_block_lun *be_lun, struct ctl_lun_create_params *params; struct cdevsw *csw; struct cdev *dev; - char *value; + const char *value; int error, atomic, maxio, ref, unmap, tmp; off_t ps, pss, po, pos, us, uss, uo, uos, otmp; @@ -2033,10 +2035,10 @@ ctl_be_block_open_dev(struct ctl_be_block_lun *be_lun, us = ps; uo = po; - value = ctl_get_opt(&cbe_lun->options, "pblocksize"); + value = dnvlist_get_string(cbe_lun->options, "pblocksize", NULL); if (value != NULL) ctl_expand_number(value, &ps); - value = ctl_get_opt(&cbe_lun->options, "pblockoffset"); + value = dnvlist_get_string(cbe_lun->options, "pblockoffset", NULL); if (value != NULL) ctl_expand_number(value, &po); pss = ps / cbe_lun->blocksize; @@ -2047,10 +2049,10 @@ ctl_be_block_open_dev(struct ctl_be_block_lun *be_lun, cbe_lun->pblockoff = (pss - pos) % pss; } - value = ctl_get_opt(&cbe_lun->options, "ublocksize"); + value = dnvlist_get_string(cbe_lun->options, "ublocksize", NULL); if (value != NULL) ctl_expand_number(value, &us); - value = ctl_get_opt(&cbe_lun->options, "ublockoffset"); + value = dnvlist_get_string(cbe_lun->options, "ublockoffset", NULL); if (value != NULL) ctl_expand_number(value, &uo); uss = us / cbe_lun->blocksize; @@ -2075,7 +2077,7 @@ ctl_be_block_open_dev(struct ctl_be_block_lun *be_lun, curthread); unmap = (error == 0) ? arg.value.i : 0; } - value = ctl_get_opt(&cbe_lun->options, "unmap"); + value = dnvlist_get_string(cbe_lun->options, "unmap", NULL); if (value != NULL) unmap = (strcmp(value, "on") == 0); if (unmap) @@ -2125,7 +2127,7 @@ ctl_be_block_open(struct ctl_be_block_lun *be_lun, str { struct ctl_be_lun *cbe_lun = &be_lun->cbe_lun; struct nameidata nd; - char *value; + const char *value; int error, flags; error = 0; @@ -2136,7 +2138,7 @@ ctl_be_block_open(struct ctl_be_block_lun *be_lun, str } pwd_ensure_dirs(); - value = ctl_get_opt(&cbe_lun->options, "file"); + value = dnvlist_get_string(cbe_lun->options, "file", NULL); if (value == NULL) { snprintf(req->error_str, sizeof(req->error_str), "no file argument specified"); @@ -2146,7 +2148,7 @@ ctl_be_block_open(struct ctl_be_block_lun *be_lun, str be_lun->dev_path = strdup(value, M_CTLBLK); flags = FREAD; - value = ctl_get_opt(&cbe_lun->options, "readonly"); + value = dnvlist_get_string(cbe_lun->options, "readonly", NULL); if (value != NULL) { if (strcmp(value, "on") != 0) flags |= FWRITE; @@ -2205,7 +2207,7 @@ again: cbe_lun->serseq = CTL_LUN_SERSEQ_OFF; if (be_lun->dispatch != ctl_be_block_dispatch_dev) cbe_lun->serseq = CTL_LUN_SERSEQ_READ; - value = ctl_get_opt(&cbe_lun->options, "serseq"); + value = dnvlist_get_string(cbe_lun->options, "serseq", NULL); if (value != NULL && strcmp(value, "on") == 0) cbe_lun->serseq = CTL_LUN_SERSEQ_ON; else if (value != NULL && strcmp(value, "read") == 0) @@ -2223,7 +2225,7 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, struct ctl_lun_create_params *params; char num_thread_str[16]; char tmpstr[32]; - char *value; + const char *value; int retval, num_threads; int tmp_num_threads; @@ -2243,8 +2245,7 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, sprintf(be_lun->lunname, "cblk%d", softc->num_luns); mtx_init(&be_lun->io_lock, "cblk io lock", NULL, MTX_DEF); mtx_init(&be_lun->queue_lock, "cblk queue lock", NULL, MTX_DEF); - ctl_init_opts(&cbe_lun->options, - req->num_be_args, req->kern_be_args); + cbe_lun->options = nvlist_clone(req->args_nvl); be_lun->lun_zone = uma_zcreate(be_lun->lunname, CTLBLK_MAX_SEG, NULL, NULL, NULL, NULL, /*align*/ 0, /*flags*/0); if (be_lun->lun_zone == NULL) { @@ -2259,7 +2260,7 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, cbe_lun->lun_type = T_DIRECT; be_lun->flags = CTL_BE_BLOCK_LUN_UNCONFIGURED; cbe_lun->flags = 0; - value = ctl_get_opt(&cbe_lun->options, "ha_role"); + value = dnvlist_get_string(cbe_lun->options, "ha_role", NULL); if (value != NULL) { if (strcmp(value, "primary") == 0) cbe_lun->flags |= CTL_LUN_FLAG_PRIMARY; @@ -2292,7 +2293,7 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, num_threads = 1; } - value = ctl_get_opt(&cbe_lun->options, "num_threads"); + value = dnvlist_get_string(cbe_lun->options, "num_threads", NULL); if (value != NULL) { tmp_num_threads = strtol(value, NULL, 0); @@ -2457,7 +2458,7 @@ bailout_error: free(be_lun->dev_path, M_CTLBLK); if (be_lun->lun_zone != NULL) uma_zdestroy(be_lun->lun_zone); - ctl_free_opts(&cbe_lun->options); + nvlist_destroy(cbe_lun->options); mtx_destroy(&be_lun->queue_lock); mtx_destroy(&be_lun->io_lock); free(be_lun, M_CTLBLK); @@ -2541,7 +2542,7 @@ ctl_be_block_rm(struct ctl_be_block_softc *softc, stru uma_zdestroy(be_lun->lun_zone); - ctl_free_opts(&cbe_lun->options); + nvlist_destroy(cbe_lun->options); free(be_lun->dev_path, M_CTLBLK); mtx_destroy(&be_lun->queue_lock); mtx_destroy(&be_lun->io_lock); @@ -2561,7 +2562,7 @@ ctl_be_block_modify(struct ctl_be_block_softc *softc, struct ctl_lun_modify_params *params; struct ctl_be_block_lun *be_lun; struct ctl_be_lun *cbe_lun; - char *value; + const char *value; uint64_t oldsize; int error, wasprim; @@ -2583,10 +2584,12 @@ ctl_be_block_modify(struct ctl_be_block_softc *softc, if (params->lun_size_bytes != 0) be_lun->params.lun_size_bytes = params->lun_size_bytes; - ctl_update_opts(&cbe_lun->options, req->num_be_args, req->kern_be_args); + nvlist_destroy(cbe_lun->options); + cbe_lun->options = nvlist_clone(req->args_nvl); + wasprim = (cbe_lun->flags & CTL_LUN_FLAG_PRIMARY); - value = ctl_get_opt(&cbe_lun->options, "ha_role"); + value = dnvlist_get_string(cbe_lun->options, "ha_role", NULL); if (value != NULL) { if (strcmp(value, "primary") == 0) cbe_lun->flags |= CTL_LUN_FLAG_PRIMARY; Modified: head/sys/cam/ctl/ctl_backend_ramdisk.c ============================================================================== --- head/sys/cam/ctl/ctl_backend_ramdisk.c Thu May 10 02:31:54 2018 (r333445) +++ head/sys/cam/ctl/ctl_backend_ramdisk.c Thu May 10 03:50:20 2018 (r333446) @@ -62,6 +62,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include @@ -956,7 +958,7 @@ ctl_backend_ramdisk_rm(struct ctl_be_ramdisk_softc *so if (retval == 0) { taskqueue_drain_all(be_lun->io_taskqueue); taskqueue_free(be_lun->io_taskqueue); - ctl_free_opts(&be_lun->cbe_lun.options); + nvlist_destroy(be_lun->cbe_lun.options); free(be_lun->zero_page, M_RAMDISK); ctl_backend_ramdisk_freeallpages(be_lun->pages, be_lun->indir); sx_destroy(&be_lun->page_lock); @@ -979,7 +981,7 @@ ctl_backend_ramdisk_create(struct ctl_be_ramdisk_softc struct ctl_be_ramdisk_lun *be_lun; struct ctl_be_lun *cbe_lun; struct ctl_lun_create_params *params; - char *value; + const char *value; char tmpstr[32]; uint64_t t; int retval; @@ -990,10 +992,10 @@ ctl_backend_ramdisk_create(struct ctl_be_ramdisk_softc be_lun = malloc(sizeof(*be_lun), M_RAMDISK, M_ZERO | M_WAITOK); cbe_lun = &be_lun->cbe_lun; cbe_lun->be_lun = be_lun; + cbe_lun->options = nvlist_clone(req->args_nvl); be_lun->params = req->reqdata.create; be_lun->softc = softc; sprintf(be_lun->lunname, "cram%d", softc->num_luns); - ctl_init_opts(&cbe_lun->options, req->num_be_args, req->kern_be_args); if (params->flags & CTL_LUN_FLAG_DEV_TYPE) cbe_lun->lun_type = params->device_type; @@ -1001,7 +1003,7 @@ ctl_backend_ramdisk_create(struct ctl_be_ramdisk_softc *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Thu May 10 03:59:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4ED53FADCAE; Thu, 10 May 2018 03:59:50 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F1168873AD; Thu, 10 May 2018 03:59: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 D2BC91B1BC; Thu, 10 May 2018 03:59: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 w4A3xnSe099890; Thu, 10 May 2018 03:59:49 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A3xnpY099886; Thu, 10 May 2018 03:59:49 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201805100359.w4A3xnpY099886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 10 May 2018 03:59:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333447 - in head/sys: ddb powerpc/include powerpc/pseries X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: in head/sys: ddb powerpc/include powerpc/pseries X-SVN-Commit-Revision: 333447 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 03:59:50 -0000 Author: jhibbits Date: Thu May 10 03:59:48 2018 New Revision: 333447 URL: https://svnweb.freebsd.org/changeset/base/333447 Log: Fix PPC symbol resolution Summary: There were 2 issues that were preventing correct symbol resolution on PowerPC/pseries: 1- memory corruption at chrp_attach() - this caused the inital part of the symbol table to become zeroed, which would cause the kernel linker to fail to parse it. (this was probably zeroing out other memory parts as well) 2- DDB symbol resolution wasn't working because symtab contained not relocated addresses but it was given relocated offsets. Although relocating the symbol table fixed this, it broke the linker, that already handled this case. Thus, the fix for this consists in adding a new DDB macro: DB_STOFFS(offs) that converts a (potentially) relocated offset into one that can be compared with symbol table values. PR: 227093 Submitted by: Leandro Lupori Differential Revision: https://reviews.freebsd.org/D15372 Modified: head/sys/ddb/db_main.c head/sys/ddb/ddb.h head/sys/powerpc/include/db_machdep.h head/sys/powerpc/pseries/platform_chrp.c Modified: head/sys/ddb/db_main.c ============================================================================== --- head/sys/ddb/db_main.c Thu May 10 03:50:20 2018 (r333446) +++ head/sys/ddb/db_main.c Thu May 10 03:59:48 2018 (r333447) @@ -100,6 +100,7 @@ X_db_search_symbol(db_symtab_t *symtab, db_addr_t off, c_linker_sym_t lsym; Elf_Sym *sym, *match; unsigned long diff; + db_addr_t stoffs; if (symtab->private == NULL) { if (!linker_ddb_search_symbol((caddr_t)off, &lsym, &diff)) { @@ -111,19 +112,20 @@ X_db_search_symbol(db_symtab_t *symtab, db_addr_t off, diff = ~0UL; match = NULL; + stoffs = DB_STOFFS(off); for (sym = (Elf_Sym*)symtab->start; (char*)sym < symtab->end; sym++) { if (sym->st_name == 0 || sym->st_shndx == SHN_UNDEF) continue; - if (off < sym->st_value) + if (stoffs < sym->st_value) continue; if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT && ELF_ST_TYPE(sym->st_info) != STT_FUNC && ELF_ST_TYPE(sym->st_info) != STT_NOTYPE) continue; - if ((off - sym->st_value) > diff) + if ((stoffs - sym->st_value) > diff) continue; - if ((off - sym->st_value) < diff) { - diff = off - sym->st_value; + if ((stoffs - sym->st_value) < diff) { + diff = stoffs - sym->st_value; match = sym; } else { if (match == NULL) Modified: head/sys/ddb/ddb.h ============================================================================== --- head/sys/ddb/ddb.h Thu May 10 03:50:20 2018 (r333446) +++ head/sys/ddb/ddb.h Thu May 10 03:59:48 2018 (r333447) @@ -72,6 +72,10 @@ SYSCTL_DECL(_debug_ddb); #define DB_MAXSCRIPTRECURSION 3 #endif +#ifndef DB_STOFFS +#define DB_STOFFS(offs) (offs) +#endif + #ifndef DB_CALL #define DB_CALL db_fncall_generic #else Modified: head/sys/powerpc/include/db_machdep.h ============================================================================== --- head/sys/powerpc/include/db_machdep.h Thu May 10 03:50:20 2018 (r333446) +++ head/sys/powerpc/include/db_machdep.h Thu May 10 03:59:48 2018 (r333447) @@ -85,4 +85,8 @@ typedef intptr_t db_expr_t; /* expression - signed */ #define inst_load(ins) 0 #define inst_store(ins) 0 +#ifdef __powerpc64__ +#define DB_STOFFS(offs) ((offs) & ~DMAP_BASE_ADDRESS) +#endif + #endif /* _POWERPC_DB_MACHDEP_H_ */ Modified: head/sys/powerpc/pseries/platform_chrp.c ============================================================================== --- head/sys/powerpc/pseries/platform_chrp.c Thu May 10 03:50:20 2018 (r333446) +++ head/sys/powerpc/pseries/platform_chrp.c Thu May 10 03:59:48 2018 (r333447) @@ -146,7 +146,7 @@ chrp_attach(platform_t plat) /* Set up important VPA fields */ for (i = 0; i < MAXCPU; i++) { - bzero(splpar_vpa[i], sizeof(splpar_vpa)); + bzero(splpar_vpa[i], sizeof(splpar_vpa[i])); /* First two: VPA size */ splpar_vpa[i][4] = (uint8_t)((sizeof(splpar_vpa[i]) >> 8) & 0xff); From owner-svn-src-head@freebsd.org Thu May 10 06:33:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21322FB43A6; Thu, 10 May 2018 06:33:55 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C37DD858B4; Thu, 10 May 2018 06:33:54 +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 A1EC21CBF9; Thu, 10 May 2018 06:33:54 +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 w4A6XsL5080708; Thu, 10 May 2018 06:33:54 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A6Xskp080707; Thu, 10 May 2018 06:33:54 GMT (envelope-from np@FreeBSD.org) Message-Id: <201805100633.w4A6Xskp080707@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 10 May 2018 06:33:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333448 - head/sys/dev/cxgbe X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: head/sys/dev/cxgbe X-SVN-Commit-Revision: 333448 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 06:33:55 -0000 Author: np Date: Thu May 10 06:33:54 2018 New Revision: 333448 URL: https://svnweb.freebsd.org/changeset/base/333448 Log: cxgbe(4): Disable write-combined doorbells by default. This had been the default behavior but was changed accidentally as part of the recent iw_cxgbe+OFED overhaul. Fix another bug in that change while here: the global knob affects all the adapters in the system and should be left alone by per-adapter code. MFC after: 3 days Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Thu May 10 03:59:48 2018 (r333447) +++ head/sys/dev/cxgbe/t4_main.c Thu May 10 06:33:54 2018 (r333448) @@ -455,7 +455,7 @@ TUNABLE_INT("hw.cxgbe.iscsicaps_allowed", &t4_iscsicap static int t4_fcoecaps_allowed = 0; TUNABLE_INT("hw.cxgbe.fcoecaps_allowed", &t4_fcoecaps_allowed); -static int t5_write_combine = 1; +static int t5_write_combine = 0; TUNABLE_INT("hw.cxl.write_combine", &t5_write_combine); static int t4_num_vis = 1; @@ -2292,7 +2292,6 @@ t4_map_bar_2(struct adapter *sc) setbit(&sc->doorbells, DOORBELL_WCWR); setbit(&sc->doorbells, DOORBELL_UDBWC); } else { - t5_write_combine = 0; device_printf(sc->dev, "couldn't enable write combining: %d\n", rc); @@ -2302,11 +2301,9 @@ t4_map_bar_2(struct adapter *sc) t4_write_reg(sc, A_SGE_STAT_CFG, V_STATSOURCE_T5(7) | mode); } -#else - t5_write_combine = 0; #endif - sc->iwt.wc_en = t5_write_combine; } + sc->iwt.wc_en = isset(&sc->doorbells, DOORBELL_UDBWC) ? 1 : 0; return (0); } From owner-svn-src-head@freebsd.org Thu May 10 06:41:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BBDE5FB46FF; Thu, 10 May 2018 06:41:12 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6B79568329; Thu, 10 May 2018 06:41:12 +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 4DA881CC34; Thu, 10 May 2018 06:41:12 +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 w4A6fCtT083959; Thu, 10 May 2018 06:41:12 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A6f9Ur083940; Thu, 10 May 2018 06:41:09 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201805100641.w4A6f9Ur083940@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 10 May 2018 06:41:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333449 - in head: etc/rc.d lib/libc/db/mpool lib/libc/gen lib/libc/string lib/libc/sys lib/libz share/man/man3 share/man/man5 sys/libkern usr.bin/gzip usr.bin/ident usr.sbin/fstyp usr.... X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in head: etc/rc.d lib/libc/db/mpool lib/libc/gen lib/libc/string lib/libc/sys lib/libz share/man/man3 share/man/man5 sys/libkern usr.bin/gzip usr.bin/ident usr.sbin/fstyp usr.sbin/portsnap/phttpget X-SVN-Commit-Revision: 333449 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 06:41:13 -0000 Author: delphij Date: Thu May 10 06:41:08 2018 New Revision: 333449 URL: https://svnweb.freebsd.org/changeset/base/333449 Log: Remove "All rights reserved" from my files. See r333391 for the rationale. MFC after: 1 week Modified: head/etc/rc.d/hostid head/etc/rc.d/static_arp head/etc/rc.d/static_ndp head/lib/libc/db/mpool/mpool-compat.c head/lib/libc/gen/libc_dlopen.c head/lib/libc/string/strlen.c head/lib/libc/sys/rtprio.2 head/lib/libz/zopen.3 head/share/man/man3/pthread_affinity_np.3 head/share/man/man3/pthread_attr_affinity_np.3 head/share/man/man5/tmpfs.5 head/sys/libkern/strlen.c head/usr.bin/gzip/unpack.c head/usr.bin/ident/ident.c head/usr.sbin/fstyp/zfs.c head/usr.sbin/portsnap/phttpget/phttpget.8 Modified: head/etc/rc.d/hostid ============================================================================== --- head/etc/rc.d/hostid Thu May 10 06:33:54 2018 (r333448) +++ head/etc/rc.d/hostid Thu May 10 06:41:08 2018 (r333449) @@ -2,7 +2,6 @@ # # Copyright (c) 2007 Pawel Jakub Dawidek # Copyright (c) 2015 Xin LI -# All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/etc/rc.d/static_arp ============================================================================== --- head/etc/rc.d/static_arp Thu May 10 06:33:54 2018 (r333448) +++ head/etc/rc.d/static_arp Thu May 10 06:41:08 2018 (r333449) @@ -1,7 +1,6 @@ #!/bin/sh # # Copyright (c) 2009 Xin LI -# All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/etc/rc.d/static_ndp ============================================================================== --- head/etc/rc.d/static_ndp Thu May 10 06:33:54 2018 (r333448) +++ head/etc/rc.d/static_ndp Thu May 10 06:41:08 2018 (r333449) @@ -1,7 +1,6 @@ #!/bin/sh # -# Copyright (c) 2011 Xin Li -# All rights reserved. +# Copyright (c) 2011 Xin LI # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions Modified: head/lib/libc/db/mpool/mpool-compat.c ============================================================================== --- head/lib/libc/db/mpool/mpool-compat.c Thu May 10 06:33:54 2018 (r333448) +++ head/lib/libc/db/mpool/mpool-compat.c Thu May 10 06:41:08 2018 (r333449) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2009 Xin LI - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/lib/libc/gen/libc_dlopen.c ============================================================================== --- head/lib/libc/gen/libc_dlopen.c Thu May 10 06:33:54 2018 (r333448) +++ head/lib/libc/gen/libc_dlopen.c Thu May 10 06:41:08 2018 (r333449) @@ -1,8 +1,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2011 Xin Li - * All rights reserved. + * Copyright (c) 2011 Xin LI * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/lib/libc/string/strlen.c ============================================================================== --- head/lib/libc/string/strlen.c Thu May 10 06:33:54 2018 (r333448) +++ head/lib/libc/string/strlen.c Thu May 10 06:41:08 2018 (r333449) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2009, 2010 Xin LI - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/lib/libc/sys/rtprio.2 ============================================================================== --- head/lib/libc/sys/rtprio.2 Thu May 10 06:33:54 2018 (r333448) +++ head/lib/libc/sys/rtprio.2 Thu May 10 06:41:08 2018 (r333449) @@ -29,7 +29,6 @@ .\" SUCH DAMAGE. .\"- .\" Copyright (c) 2011 Xin LI -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/libz/zopen.3 ============================================================================== --- head/lib/libz/zopen.3 Thu May 10 06:33:54 2018 (r333448) +++ head/lib/libz/zopen.3 Thu May 10 06:41:08 2018 (r333449) @@ -1,5 +1,4 @@ -.\" Copyright (c) 2014 Xin Li -.\" All rights reserved. +.\" Copyright (c) 2014 Xin LI .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/share/man/man3/pthread_affinity_np.3 ============================================================================== --- head/share/man/man3/pthread_affinity_np.3 Thu May 10 06:33:54 2018 (r333448) +++ head/share/man/man3/pthread_affinity_np.3 Thu May 10 06:41:08 2018 (r333449) @@ -1,6 +1,5 @@ .\"- .\" Copyright (c) 2010 Xin LI -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/share/man/man3/pthread_attr_affinity_np.3 ============================================================================== --- head/share/man/man3/pthread_attr_affinity_np.3 Thu May 10 06:33:54 2018 (r333448) +++ head/share/man/man3/pthread_attr_affinity_np.3 Thu May 10 06:41:08 2018 (r333449) @@ -1,6 +1,5 @@ .\"- .\" Copyright (c) 2010 Xin LI -.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/share/man/man5/tmpfs.5 ============================================================================== --- head/share/man/man5/tmpfs.5 Thu May 10 06:33:54 2018 (r333448) +++ head/share/man/man5/tmpfs.5 Thu May 10 06:41:08 2018 (r333449) @@ -1,7 +1,6 @@ .\"- .\" Copyright (c) 2007 Xin LI .\" Copyright (c) 2017 The FreeBSD Foundation, Inc. -.\" All rights reserved. .\" .\" Part of this documentation was written by .\" Konstantin Belousov under sponsorship Modified: head/sys/libkern/strlen.c ============================================================================== --- head/sys/libkern/strlen.c Thu May 10 06:33:54 2018 (r333448) +++ head/sys/libkern/strlen.c Thu May 10 06:41:08 2018 (r333449) @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2009, 2010 Xin LI - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/usr.bin/gzip/unpack.c ============================================================================== --- head/usr.bin/gzip/unpack.c Thu May 10 06:33:54 2018 (r333448) +++ head/usr.bin/gzip/unpack.c Thu May 10 06:41:08 2018 (r333449) @@ -5,7 +5,6 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2009 Xin LI - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/usr.bin/ident/ident.c ============================================================================== --- head/usr.bin/ident/ident.c Thu May 10 06:33:54 2018 (r333448) +++ head/usr.bin/ident/ident.c Thu May 10 06:41:08 2018 (r333449) @@ -1,7 +1,6 @@ /*- * Copyright (c) 2015 Baptiste Daroussin * Copyright (c) 2015 Xin LI - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/usr.sbin/fstyp/zfs.c ============================================================================== --- head/usr.sbin/fstyp/zfs.c Thu May 10 06:33:54 2018 (r333448) +++ head/usr.sbin/fstyp/zfs.c Thu May 10 06:41:08 2018 (r333449) @@ -1,7 +1,6 @@ /*- * Copyright (c) 2015 Allan Jude * Copyright (c) 2015 Xin LI - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions Modified: head/usr.sbin/portsnap/phttpget/phttpget.8 ============================================================================== --- head/usr.sbin/portsnap/phttpget/phttpget.8 Thu May 10 06:33:54 2018 (r333448) +++ head/usr.sbin/portsnap/phttpget/phttpget.8 Thu May 10 06:41:08 2018 (r333449) @@ -1,6 +1,5 @@ .\"- -.\" Copyright (c) 2015 Xin Li -.\" All rights reserved. +.\" Copyright (c) 2015 Xin LI .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions From owner-svn-src-head@freebsd.org Thu May 10 09:06:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 273B2FB99A3; Thu, 10 May 2018 09:06:22 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CD6FF86511; Thu, 10 May 2018 09:06:21 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B00041E478; Thu, 10 May 2018 09:06:21 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4A96Lps057504; Thu, 10 May 2018 09:06:21 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A96LaD057503; Thu, 10 May 2018 09:06:21 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201805100906.w4A96LaD057503@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Thu, 10 May 2018 09:06:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333450 - head/sys/dev/ena X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: head/sys/dev/ena X-SVN-Commit-Revision: 333450 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 09:06:22 -0000 Author: mw Date: Thu May 10 09:06:21 2018 New Revision: 333450 URL: https://svnweb.freebsd.org/changeset/base/333450 Log: Upgrade ENA version to v0.8.1 Submitted by: Michal Krawczyk Obtained from: Semihalf Sponsored by: Amazon, Inc. Modified: head/sys/dev/ena/ena.h Modified: head/sys/dev/ena/ena.h ============================================================================== --- head/sys/dev/ena/ena.h Thu May 10 06:41:08 2018 (r333449) +++ head/sys/dev/ena/ena.h Thu May 10 09:06:21 2018 (r333450) @@ -41,7 +41,7 @@ #define DRV_MODULE_VER_MAJOR 0 #define DRV_MODULE_VER_MINOR 8 -#define DRV_MODULE_VER_SUBMINOR 0 +#define DRV_MODULE_VER_SUBMINOR 1 #define DRV_MODULE_NAME "ena" From owner-svn-src-head@freebsd.org Thu May 10 09:25:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8DDD6FBEB53; Thu, 10 May 2018 09:25:52 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3B90669BE1; Thu, 10 May 2018 09:25:52 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1CB4E1E7C5; Thu, 10 May 2018 09:25:52 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4A9Pp4o067684; Thu, 10 May 2018 09:25:51 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A9PpS3067683; Thu, 10 May 2018 09:25:51 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201805100925.w4A9PpS3067683@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Thu, 10 May 2018 09:25:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333453 - head/sys/contrib/ena-com X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: head/sys/contrib/ena-com X-SVN-Commit-Revision: 333453 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 09:25:52 -0000 Author: mw Date: Thu May 10 09:25:51 2018 New Revision: 333453 URL: https://svnweb.freebsd.org/changeset/base/333453 Log: Apply fixes in ena-com * Change ena-com BIT macro to work on unsigned value. To make the shifting operations safer, they should be working on unsigned values. * Fix a mutex not owned ASSERT panic in ENA control path. A thread calling cv_broadcast()/cv_signal() must hold the mutex used for cv_wait(). Fix the ENA control path code that has this problem. Submitted by: Krishna Yenduri Reviewed by: Michal Krawczyk Tested by: Michal Krawczyk Modified: head/sys/contrib/ena-com/ena_plat.h Directory Properties: head/sys/contrib/ena-com/ (props changed) Modified: head/sys/contrib/ena-com/ena_plat.h ============================================================================== --- head/sys/contrib/ena-com/ena_plat.h Thu May 10 09:21:49 2018 (r333452) +++ head/sys/contrib/ena-com/ena_plat.h Thu May 10 09:25:51 2018 (r333453) @@ -165,7 +165,7 @@ static inline long PTR_ERR(const void *ptr) #define GENMASK(h, l) (((1U << ((h) - (l) + 1)) - 1) << (l)) #define GENMASK_ULL(h, l) (((~0ULL) << (l)) & (~0ULL >> (64 - 1 - (h)))) -#define BIT(x) (1 << (x)) +#define BIT(x) (1UL << (x)) #define ENA_ABORT() BUG() #define BUG() panic("ENA BUG") @@ -244,7 +244,12 @@ static inline long PTR_ERR(const void *ptr) timeout_us * hz / 1000 / 1000 ); \ mtx_unlock(&((waitqueue).mtx)); \ } while (0) -#define ENA_WAIT_EVENT_SIGNAL(waitqueue) cv_broadcast(&((waitqueue).wq)) +#define ENA_WAIT_EVENT_SIGNAL(waitqueue) \ + do { \ + mtx_lock(&((waitqueue).mtx)); \ + cv_broadcast(&((waitqueue).wq)); \ + mtx_unlock(&((waitqueue).mtx)); \ + } while (0) #define dma_addr_t bus_addr_t #define u8 uint8_t From owner-svn-src-head@freebsd.org Thu May 10 09:33:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E080FBEF40; Thu, 10 May 2018 09:33:00 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C16336C7EE; Thu, 10 May 2018 09:32:59 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9CFD51E95A; Thu, 10 May 2018 09:32:59 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4A9WxXa072656; Thu, 10 May 2018 09:32:59 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A9WxvQ072655; Thu, 10 May 2018 09:32:59 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201805100932.w4A9WxvQ072655@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Thu, 10 May 2018 09:32:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333454 - head/sys/dev/ena X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: head/sys/dev/ena X-SVN-Commit-Revision: 333454 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 09:33:00 -0000 Author: mw Date: Thu May 10 09:32:59 2018 New Revision: 333454 URL: https://svnweb.freebsd.org/changeset/base/333454 Log: Skip setting the MTU for ENA if it is not changing On AWS, a network interface can get reinitialized every 30 minutes due to the MTU being (re)set when a new DHCP lease is obtained. This can cause packet drop, along with annoying syslog messages. Skip setting the MTU in the ena driver if the new MTU is the same as the old MTU. Note this fix is already in the netfront driver. Testing: Verified ena up/down messages do not appear every 30 min in /var/log/messages with the fix in place. Submitted by: Krishna Yenduri Reviewed by: Michal Krawczyk Modified: head/sys/dev/ena/ena.c Modified: head/sys/dev/ena/ena.c ============================================================================== --- head/sys/dev/ena/ena.c Thu May 10 09:25:51 2018 (r333453) +++ head/sys/dev/ena/ena.c Thu May 10 09:32:59 2018 (r333454) @@ -2368,6 +2368,8 @@ ena_ioctl(if_t ifp, u_long command, caddr_t data) rc = 0; switch (command) { case SIOCSIFMTU: + if (ifp->if_mtu == ifr->ifr_mtu) + break; sx_xlock(&adapter->ioctl_sx); ena_down(adapter); From owner-svn-src-head@freebsd.org Thu May 10 09:37:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1551FFC0107; Thu, 10 May 2018 09:37:52 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BA3706CA96; Thu, 10 May 2018 09:37:51 +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 9B2EC1E960; Thu, 10 May 2018 09:37:51 +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 w4A9bpAv073030; Thu, 10 May 2018 09:37:51 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A9bpT5073028; Thu, 10 May 2018 09:37:51 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805100937.w4A9bpT5073028@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 10 May 2018 09:37:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333455 - head/sys/arm64/conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/conf X-SVN-Commit-Revision: 333455 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 09:37:52 -0000 Author: manu Date: Thu May 10 09:37:50 2018 New Revision: 333455 URL: https://svnweb.freebsd.org/changeset/base/333455 Log: arm64: Add ALT_BREAK_TO_DEBUGGER to GENERIC It is useful to enter kdb with an escape sequence. While here move the USB_DEBUG with the others debug options and define nooptions USB_DEBUG for GENERIC-NODEBUG Modified: head/sys/arm64/conf/GENERIC head/sys/arm64/conf/GENERIC-NODEBUG Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Thu May 10 09:32:59 2018 (r333454) +++ head/sys/arm64/conf/GENERIC Thu May 10 09:37:50 2018 (r333455) @@ -90,6 +90,8 @@ options INVARIANT_SUPPORT # Extra sanity checks of in options WITNESS # Enable checks to detect deadlocks and cycles options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones +options ALT_BREAK_TO_DEBUGGER # Enter debugger on keyboard escape sequence +options USB_DEBUG # enable debug msgs # SoC support options SOC_ALLWINNER_A64 @@ -162,7 +164,6 @@ device uart_snps device pl011 # USB support -options USB_DEBUG # enable debug msgs device aw_ehci # Allwinner EHCI USB interface (USB 2.0) device aw_usbphy # Allwinner USB PHY device dwcotg # DWC OTG controller Modified: head/sys/arm64/conf/GENERIC-NODEBUG ============================================================================== --- head/sys/arm64/conf/GENERIC-NODEBUG Thu May 10 09:32:59 2018 (r333454) +++ head/sys/arm64/conf/GENERIC-NODEBUG Thu May 10 09:37:50 2018 (r333455) @@ -37,4 +37,4 @@ nooptions WITNESS_SKIPSPIN nooptions BUF_TRACKING nooptions DEADLKRES nooptions FULL_BUF_TRACKING - +nooptions USB_DEBUG From owner-svn-src-head@freebsd.org Thu May 10 09:37:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D4A9FC011E; Thu, 10 May 2018 09:37:55 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C190D6CAA1; Thu, 10 May 2018 09:37:54 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A2C661E961; Thu, 10 May 2018 09:37:54 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4A9bsbw073077; Thu, 10 May 2018 09:37:54 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4A9bsKc073076; Thu, 10 May 2018 09:37:54 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201805100937.w4A9bsKc073076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Thu, 10 May 2018 09:37:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333456 - head/sys/dev/ena X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: head/sys/dev/ena X-SVN-Commit-Revision: 333456 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 09:37:55 -0000 Author: mw Date: Thu May 10 09:37:54 2018 New Revision: 333456 URL: https://svnweb.freebsd.org/changeset/base/333456 Log: Do not pass header length to the ENA controller Header length is optional hint for the ENA device. Because It is not guaranteed that every packet header will be in the first mbuf segment, it is better to skip passing any information. If the header length will be indicating invalid value (different than 0), then the packet will be dropped. This kind situation can appear, when the UDP packet will be fragmented by the stack in the ip_fragment() function. Submitted by: Michal Krawczyk Reported by: Krishna Yenduri Obtained from: Semihalf Sponsored by: Amazon, Inc. Modified: head/sys/dev/ena/ena.c Modified: head/sys/dev/ena/ena.c ============================================================================== --- head/sys/dev/ena/ena.c Thu May 10 09:37:50 2018 (r333455) +++ head/sys/dev/ena/ena.c Thu May 10 09:37:54 2018 (r333456) @@ -2742,7 +2742,7 @@ ena_xmit_mbuf(struct ena_ring *tx_ring, struct mbuf ** uint16_t req_id; uint16_t push_len; uint16_t ena_qid; - uint32_t len, nsegs, header_len; + uint32_t nsegs, header_len; int i, rc; int nb_hw_desc; @@ -2766,12 +2766,18 @@ ena_xmit_mbuf(struct ena_ring *tx_ring, struct mbuf ** tx_info->num_of_bufs = 0; ena_buf = tx_info->bufs; - len = (*mbuf)->m_len; ena_trace(ENA_DBG | ENA_TXPTH, "Tx: %d bytes", (*mbuf)->m_pkthdr.len); push_len = 0; - header_len = min_t(uint32_t, len, tx_ring->tx_max_header_size); + /* + * header_len is just a hint for the device. Because FreeBSD is not + * giving us information about packet header length and it is not + * guaranteed that all packet headers will be in the 1st mbuf, setting + * header_len to 0 is making the device ignore this value and resolve + * header on it's own. + */ + header_len = 0; push_hdr = NULL; rc = bus_dmamap_load_mbuf_sg(adapter->tx_buf_tag, tx_info->map, From owner-svn-src-head@freebsd.org Thu May 10 11:36:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 657CAFC5C14; Thu, 10 May 2018 11:36:17 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 147C086AED; Thu, 10 May 2018 11:36:17 +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 E31021FDDA; Thu, 10 May 2018 11:36: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 w4ABaGgA034275; Thu, 10 May 2018 11:36:16 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4ABaG7G034274; Thu, 10 May 2018 11:36:16 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805101136.w4ABaG7G034274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 10 May 2018 11:36:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333457 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333457 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 11:36:17 -0000 Author: emaste Date: Thu May 10 11:36:16 2018 New Revision: 333457 URL: https://svnweb.freebsd.org/changeset/base/333457 Log: ANSIfy sys_generic.c Modified: head/sys/kern/sys_generic.c Modified: head/sys/kern/sys_generic.c ============================================================================== --- head/sys/kern/sys_generic.c Thu May 10 09:37:54 2018 (r333456) +++ head/sys/kern/sys_generic.c Thu May 10 11:36:16 2018 (r333457) @@ -188,9 +188,7 @@ struct read_args { }; #endif int -sys_read(td, uap) - struct thread *td; - struct read_args *uap; +sys_read(struct thread *td, struct read_args *uap) { struct uio auio; struct iovec aiov; @@ -319,11 +317,7 @@ sys_preadv(struct thread *td, struct preadv_args *uap) } int -kern_preadv(td, fd, auio, offset) - struct thread *td; - int fd; - struct uio *auio; - off_t offset; +kern_preadv(struct thread *td, int fd, struct uio *auio, off_t offset) { struct file *fp; int error; @@ -347,13 +341,8 @@ kern_preadv(td, fd, auio, offset) * from a file using the passed in uio, offset, and flags. */ static int -dofileread(td, fd, fp, auio, offset, flags) - struct thread *td; - int fd; - struct file *fp; - struct uio *auio; - off_t offset; - int flags; +dofileread(struct thread *td, int fd, struct file *fp, struct uio *auio, + off_t offset, int flags) { ssize_t cnt; int error; @@ -400,9 +389,7 @@ struct write_args { }; #endif int -sys_write(td, uap) - struct thread *td; - struct write_args *uap; +sys_write(struct thread *td, struct write_args *uap) { struct uio auio; struct iovec aiov; @@ -532,11 +519,7 @@ sys_pwritev(struct thread *td, struct pwritev_args *ua } int -kern_pwritev(td, fd, auio, offset) - struct thread *td; - struct uio *auio; - int fd; - off_t offset; +kern_pwritev(struct thread *td, struct uio *auio, int fd, off_t offset) { struct file *fp; int error; @@ -560,13 +543,8 @@ kern_pwritev(td, fd, auio, offset) * a file using the passed in uio, offset, and flags. */ static int -dofilewrite(td, fd, fp, auio, offset, flags) - struct thread *td; - int fd; - struct file *fp; - struct uio *auio; - off_t offset; - int flags; +dofilewrite(struct thread *td, int fd, struct file *fp, struct uio *auio, + off_t offset, int flags) { ssize_t cnt; int error; @@ -615,10 +593,7 @@ dofilewrite(td, fd, fp, auio, offset, flags) * descriptor isn't writable. */ int -kern_ftruncate(td, fd, length) - struct thread *td; - int fd; - off_t length; +kern_ftruncate(struct thread *td, int fd, off_t length) { struct file *fp; int error; @@ -647,9 +622,7 @@ struct ftruncate_args { }; #endif int -sys_ftruncate(td, uap) - struct thread *td; - struct ftruncate_args *uap; +sys_ftruncate(struct thread *td, struct ftruncate_args *uap) { return (kern_ftruncate(td, uap->fd, uap->length)); @@ -663,9 +636,7 @@ struct oftruncate_args { }; #endif int -oftruncate(td, uap) - struct thread *td; - struct oftruncate_args *uap; +oftruncate(struct thread *td, struct oftruncate_args *uap) { return (kern_ftruncate(td, uap->fd, uap->length)); @@ -1281,10 +1252,7 @@ selrescan(struct thread *td, fd_mask **ibits, fd_mask * each selinfo. */ static int -selscan(td, ibits, obits, nfd) - struct thread *td; - fd_mask **ibits, **obits; - int nfd; +selscan(struct thread *td, fd_mask **ibits, fd_mask **obits, int nfd) { struct filedesc *fdp; struct file *fp; @@ -1511,11 +1479,7 @@ pollrescan(struct thread *td) static int -pollout(td, fds, ufds, nfd) - struct thread *td; - struct pollfd *fds; - struct pollfd *ufds; - u_int nfd; +pollout(struct thread *td, struct pollfd *fds, struct pollfd *ufds, u_int nfd) { int error = 0; u_int i = 0; @@ -1536,10 +1500,7 @@ pollout(td, fds, ufds, nfd) } static int -pollscan(td, fds, nfd) - struct thread *td; - struct pollfd *fds; - u_int nfd; +pollscan(struct thread *td, struct pollfd *fds, u_int nfd) { struct filedesc *fdp = td->td_proc->p_fd; struct file *fp; @@ -1682,8 +1643,7 @@ selfdfree(struct seltd *stp, struct selfd *sfp) /* Drain the waiters tied to all the selfd belonging the specified selinfo. */ void -seldrain(sip) - struct selinfo *sip; +seldrain(struct selinfo *sip) { /* @@ -1701,9 +1661,7 @@ seldrain(sip) * Record a select request. */ void -selrecord(selector, sip) - struct thread *selector; - struct selinfo *sip; +selrecord(struct thread *selector, struct selinfo *sip) { struct selfd *sfp; struct seltd *stp; @@ -1752,17 +1710,14 @@ selrecord(selector, sip) /* Wake up a selecting thread. */ void -selwakeup(sip) - struct selinfo *sip; +selwakeup(struct selinfo *sip) { doselwakeup(sip, -1); } /* Wake up a selecting thread, and set its priority. */ void -selwakeuppri(sip, pri) - struct selinfo *sip; - int pri; +selwakeuppri(struct selinfo *sip, int pri) { doselwakeup(sip, pri); } @@ -1771,9 +1726,7 @@ selwakeuppri(sip, pri) * Do a wakeup when a selectable event occurs. */ static void -doselwakeup(sip, pri) - struct selinfo *sip; - int pri; +doselwakeup(struct selinfo *sip, int pri) { struct selfd *sfp; struct selfd *sfn; From owner-svn-src-head@freebsd.org Thu May 10 12:25:03 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8E19BFC7C0F; Thu, 10 May 2018 12:25:02 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2760670A09; Thu, 10 May 2018 12:25:02 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 099BE205D2; Thu, 10 May 2018 12:25:02 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4ACP1Gx059202; Thu, 10 May 2018 12:25:01 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4ACP1ER059201; Thu, 10 May 2018 12:25:01 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201805101225.w4ACP1ER059201@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 10 May 2018 12:25:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333458 - head/sbin/ipfw X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sbin/ipfw X-SVN-Commit-Revision: 333458 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 12:25:03 -0000 Author: ae Date: Thu May 10 12:25:01 2018 New Revision: 333458 URL: https://svnweb.freebsd.org/changeset/base/333458 Log: Fix the printing of rule comments. Change uint8_t type of opcode argument to int in the print_opcode() function. Use negative value to print the rest of opcodes, because zero value is O_NOP, and it can't be uses for this purpose. Reported by: lev MFC after: 1 week Modified: head/sbin/ipfw/ipfw2.c Modified: head/sbin/ipfw/ipfw2.c ============================================================================== --- head/sbin/ipfw/ipfw2.c Thu May 10 11:36:16 2018 (r333457) +++ head/sbin/ipfw/ipfw2.c Thu May 10 12:25:01 2018 (r333458) @@ -1708,7 +1708,7 @@ print_instruction(struct buf_pr *bp, const struct form static ipfw_insn * print_opcode(struct buf_pr *bp, struct format_opts *fo, - struct show_state *state, uint8_t opcode) + struct show_state *state, int opcode) { ipfw_insn *cmd; int l; @@ -1716,7 +1716,7 @@ print_opcode(struct buf_pr *bp, struct format_opts *fo for (l = state->rule->act_ofs, cmd = state->rule->cmd; l > 0; l -= F_LEN(cmd), cmd += F_LEN(cmd)) { /* We use zero opcode to print the rest of options */ - if (opcode != 0 && cmd->opcode != opcode) + if (opcode >= 0 && cmd->opcode != opcode) continue; /* * Skip O_NOP, when we printing the rest @@ -2192,7 +2192,7 @@ show_static_rule(struct cmdline_opts *co, struct forma O_IP_DSTPORT, HAVE_DSTIP); /* Print the rest of options */ - while (print_opcode(bp, fo, &state, 0)) + while (print_opcode(bp, fo, &state, -1)) ; end: /* Print comment at the end */ From owner-svn-src-head@freebsd.org Thu May 10 13:19:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC42DFC9192; Thu, 10 May 2018 13:19:43 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62FCD7C351; Thu, 10 May 2018 13:19:43 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3DD9120DBF; Thu, 10 May 2018 13:19:43 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4ADJhhc084556; Thu, 10 May 2018 13:19:43 GMT (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4ADJhxo084555; Thu, 10 May 2018 13:19:43 GMT (envelope-from gallatin@FreeBSD.org) Message-Id: <201805101319.w4ADJhxo084555@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gallatin set sender to gallatin@FreeBSD.org using -f From: Andrew Gallatin Date: Thu, 10 May 2018 13:19:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333459 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: gallatin X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333459 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 13:19:43 -0000 Author: gallatin Date: Thu May 10 13:19:42 2018 New Revision: 333459 URL: https://svnweb.freebsd.org/changeset/base/333459 Log: Fix the build after r333457 In r333457, the arguments to kern_pwritev() were accidentally re-ordered as part of ANSIfication, breaking the build. Modified: head/sys/kern/sys_generic.c Modified: head/sys/kern/sys_generic.c ============================================================================== --- head/sys/kern/sys_generic.c Thu May 10 12:25:01 2018 (r333458) +++ head/sys/kern/sys_generic.c Thu May 10 13:19:42 2018 (r333459) @@ -519,7 +519,7 @@ sys_pwritev(struct thread *td, struct pwritev_args *ua } int -kern_pwritev(struct thread *td, struct uio *auio, int fd, off_t offset) +kern_pwritev(struct thread *td, int fd, struct uio *auio, off_t offset) { struct file *fp; int error; From owner-svn-src-head@freebsd.org Thu May 10 13:27:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CFB06FC95F5; Thu, 10 May 2018 13:27:55 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) (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 716147DB20; Thu, 10 May 2018 13:27:55 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from [192.168.200.3] (c-73-216-227-39.hsd1.va.comcast.net [73.216.227.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: gallatin) by duke.cs.duke.edu (Postfix) with ESMTPSA id AFED527001DB; Thu, 10 May 2018 09:18:05 -0400 (EDT) DMARC-Filter: OpenDMARC Filter v1.3.1 duke.cs.duke.edu AFED527001DB Authentication-Results: duke.cs.duke.edu; dmarc=none header.from=cs.duke.edu DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cs.duke.edu; s=mail0816; t=1525958285; bh=CjHbqIepk+9d/E9zOVr847iDvBuoa4Ixjj4Qi9OIcec=; h=Subject:To:From:Date:From; b=i0/gxZyKhjjYY5da0Hn6FZw1I/bfNJmPYuvU0TkpWNUfJs8YqEozyb/WmPwDj4Okn 1v3eh2eB5Flrh667hlHm5fzNVLyYzReIPr3gprYciiQJ4uAq2kd9JDFej0/YCkZ7OC oyr4Ockdr7SZI2MeMXovZDOmrDQS68gmbEd5MMXt9TTMCErnLuDGQ0qRBh4C1x3DYs phMJLapm020mb+9vhA8RY5BPzmzaMAF575m9SZFm0EVHMP348wVzByWTulnKu+TTZ8 lFH4cCEbwoHzkRXUr/e/uEsT0GvpsnSJTRmeG4aDCU7hgKFRUrMT/ocPQtXKSPyqB1 Yj5ob75W1SiJA== Subject: Re: svn commit: r333457 - head/sys/kern To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201805101136.w4ABaG7G034274@repo.freebsd.org> From: Andrew Gallatin Message-ID: Date: Thu, 10 May 2018 09:18:04 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <201805101136.w4ABaG7G034274@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 13:27:56 -0000 On 05/10/18 07:36, Ed Maste wrote: > Author: emaste > Date: Thu May 10 11:36:16 2018 > New Revision: 333457 > URL: https://urldefense.proofpoint.com/v2/url?u=https-3A__svnweb.freebsd.org_changeset_base_333457&d=DwIDaQ&c=imBPVzF25OnBgGmVOlcsiEgHoG1i6YHLR0Sj_gZ4adc&r=Ed-falealxPeqc22ehgAUCLh8zlZbibZLSMWJeZro4A&m=Y7TkuLso5vnwZN5ypgs4eLKVEdMOSRgvhZZz1iAMdyU&s=-shrydFGkcYwmYlaG3W1nMyk2hg7rbKzCPfHI8_6GYM&e= > > Log: > ANSIfy sys_generic.c > > Modified: > head/sys/kern/sys_generic.c > > Modified: head/sys/kern/sys_generic.c > ============================================================================== > --- head/sys/kern/sys_generic.c Thu May 10 09:37:54 2018 (r333456) > +++ head/sys/kern/sys_generic.c Thu May 10 11:36:16 2018 (r333457) <..> > @@ -532,11 +519,7 @@ sys_pwritev(struct thread *td, struct pwritev_args *ua > } > > int > -kern_pwritev(td, fd, auio, offset) > - struct thread *td; > - struct uio *auio; > - int fd; > - off_t offset; > +kern_pwritev(struct thread *td, struct uio *auio, int fd, off_t offset) > { > struct file *fp; > int error; This breaks the kernel build: /usr/src/sys/kern/sys_generic.c:522:1: error: conflicting types for 'kern_pwritev' kern_pwritev(struct thread *td, struct uio *auio, int fd, off_t offset) ^ /usr/src/sys/sys/syscallsubr.h:212:5: note: previous declaration is here int kern_pwritev(struct thread *td, int fd, struct uio *auio, off_t offset); ^ 1 error generated. *** [sys_generic.o] Error code 1 I think the problem was that the non-ansi args were enumerated in a different order than their type declarations. Drew From owner-svn-src-head@freebsd.org Thu May 10 13:52:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE6CDFCA3A6; Thu, 10 May 2018 13:52:53 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 75AFD83C4A; Thu, 10 May 2018 13:52:53 +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 55D6E214B4; Thu, 10 May 2018 13:52:53 +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 w4ADqrKZ005163; Thu, 10 May 2018 13:52:53 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4ADqr7N005162; Thu, 10 May 2018 13:52:53 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805101352.w4ADqr7N005162@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 10 May 2018 13:52:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333460 - head/tools/test/popss X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/tools/test/popss X-SVN-Commit-Revision: 333460 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 13:52:54 -0000 Author: kib Date: Thu May 10 13:52:52 2018 New Revision: 333460 URL: https://svnweb.freebsd.org/changeset/base/333460 Log: Add the test program to examine CPU behaviour for pop ss issue CVE-2018-8897. Requested by: emaste Sponsored by: The FreeBSD Foundation MFC after: 3 days Added: head/tools/test/popss/ head/tools/test/popss/popss.c (contents, props changed) Added: head/tools/test/popss/popss.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/test/popss/popss.c Thu May 10 13:52:52 2018 (r333460) @@ -0,0 +1,183 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * 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. + * + * $Id: popss.c,v 1.28 2018/05/09 21:35:29 kostik Exp kostik $ + * $FreeBSD$ + * + * cc -m32 -Wall -Wextra -O2 -g -o popss popss.c + * Use as "popss ", where instruction is one of + * bound, into, int1, int3, int80, syscall, sysenter. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static u_long *stk; + +#define ITERATIONS 4 + +static void +setup(pid_t child) +{ + struct reg r; + struct dbreg dbr; + int error, i, status; + + error = waitpid(child, &status, WTRAPPED | WEXITED); + if (error == -1) + err(1, "waitpid 1"); + error = ptrace(PT_GETREGS, child, (caddr_t)&r, 0); + if (error == -1) + err(1, "ptrace PT_GETREGS"); + printf("child %d stopped eip %#x esp %#x\n", child, r.r_eip, r.r_esp); + + error = ptrace(PT_GETDBREGS, child, (caddr_t)&dbr, 0); + if (error != 0) + err(1, "ptrace PT_GETDBREGS"); + dbr.dr[7] &= ~DBREG_DR7_MASK(0); + dbr.dr[7] |= DBREG_DR7_SET(0, DBREG_DR7_LEN_4, DBREG_DR7_RDWR, + DBREG_DR7_LOCAL_ENABLE | DBREG_DR7_GLOBAL_ENABLE); + dbr.dr[0] = (uintptr_t)stk; + error = ptrace(PT_SETDBREGS, child, (caddr_t)&dbr, 0); + if (error != 0) + err(1, "ptrace PT_SETDBREGS"); + error = ptrace(PT_CONTINUE, child, (caddr_t)1, 0); + if (error != 0) + err(1, "ptrace PT_CONTINUE fire"); + + for (i = 0; i < ITERATIONS; i++) { + error = waitpid(child, &status, WTRAPPED | WEXITED); + if (error == -1) + err(1, "waitpid 2"); + if (WIFEXITED(status)) + break; + error = ptrace(PT_GETREGS, child, (caddr_t)&r, 0); + if (error == -1) + err(1, "ptrace PT_GETREGS"); + error = ptrace(PT_GETDBREGS, child, (caddr_t)&dbr, 0); + if (error != 0) + err(1, "ptrace PT_GETDBREGS"); + printf("child %d stopped eip %#x esp %#x dr0 %#x " + "dr6 %#x dr7 %#x\n", child, r.r_eip, r.r_esp, + dbr.dr[0], dbr.dr[6], dbr.dr[7]); + error = ptrace(PT_CONTINUE, child, (caddr_t)1, 0); + if (error == -1) + err(1, "ptrace PT_CONTINUE tail"); + } + if (i == ITERATIONS) { + kill(child, SIGKILL); + ptrace(PT_DETACH, child, NULL, 0); + } +} + +static u_long tmpstk[1024 * 128]; + +static u_int +read_ss(void) +{ + u_int res; + + __asm volatile("movl\t%%ss,%0" : "=r" (res)); + return (res); +} + +#define PROLOGUE "int3;movl\t%0,%%esp;popl\t%%ss;" + +static void +act(const char *cmd) +{ + int error; + static const int boundx[2] = {0, 1}; + + printf("child pid %d, stk at %p\n", getpid(), stk); + *stk = read_ss(); + + error = ptrace(PT_TRACE_ME, 0, NULL, 0); + if (error != 0) + err(1, "ptrace PT_TRACE_ME"); + + if (strcmp(cmd, "bound") == 0) { + /* XXX BOUND args order clang ias bug */ + __asm volatile("int3;movl\t$11,%%eax;" + "movl\t%0,%%esp;popl\t%%ss;bound\t%1,%%eax" + : : "r" (stk), "m" (boundx) : "memory"); + } else if (strcmp(cmd, "int1") == 0) { + __asm volatile(PROLOGUE ".byte 0xf1" + : : "r" (stk) : "memory"); + } else if (strcmp(cmd, "int3") == 0) { + __asm volatile(PROLOGUE "int3" + : : "r" (stk) : "memory"); + } else if (strcmp(cmd, "into") == 0) { + __asm volatile("int3;movl\t$0x80000000,%%eax;" + "addl\t%%eax,%%eax;movl\t%0,%%esp;popl\t%%ss;into" + : : "r" (stk) : "memory"); + } else if (strcmp(cmd, "int80") == 0) { + __asm volatile(PROLOGUE "int\t$0x80" + : : "r" (stk) : "memory"); + } else if (strcmp(cmd, "syscall") == 0) { + __asm volatile(PROLOGUE "syscall" + : : "r" (stk) : "memory"); + } else if (strcmp(cmd, "sysenter") == 0) { + __asm volatile(PROLOGUE "sysenter" + : : "r" (stk) : "memory"); + } else { + fprintf(stderr, "unknown instruction\n"); + exit(1); + } + printf("ho\n"); +} + +int +main(int argc, char *argv[]) +{ + int child; + + if (argc != 2) { + printf( + "Usage: popss [bound|int1|int3|into|int80|syscall|sysenter]\n"); + exit(1); + } + stk = &tmpstk[nitems(tmpstk) - 1]; + child = fork(); + if (child == -1) + err(1, "fork"); + if (child == 0) + act(argv[1]); + else + setup(child); +} From owner-svn-src-head@freebsd.org Thu May 10 13:57:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25622FCA5AE; Thu, 10 May 2018 13:57:35 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-it0-x22f.google.com (mail-it0-x22f.google.com [IPv6:2607:f8b0:4001:c0b::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A867385494; Thu, 10 May 2018 13:57:34 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-it0-x22f.google.com with SMTP id y189-v6so3196446itb.2; Thu, 10 May 2018 06:57:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=q8U75OimIoQntFCqVQGIRM1JyLx+5mwnPldgpXsGIUA=; b=qCjISwd9w0f/esnUz/MDvHpjCdjTs20toSNP4TCKqJq4LTyqpPCOZqjIPal0j7y0RZ D+bkYEQejMDQ/hcNOJnGv9r8sagFk75F7yf6A4j9fw5oizH5zrBg38MG77+gg9IT2Rwe 5ppfUDYTb36nTuVl2+YD1qlXk1RB0b9Iahc6qz4exFu1cO/u3dOKxH7LomqzVPmJfkSK JjRaSqbHZeyDJWwcp3M0vZvebTztdUu5tgOV06wtiEtmfaY6Bx6ctQsisEQ7+/OPIiMN bDERGnWIjswxDwAVSGJhRvkfa5ZoJklQx0K9JpjLLX/7bOhdzRQKdeWloRiesrTZg47e VjIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=q8U75OimIoQntFCqVQGIRM1JyLx+5mwnPldgpXsGIUA=; b=DmH6FnvgT0egVkjyvu3YzU1V+C4hCeILMI9f8z8TlLFBLnvxec6sBgSlgeYpqspd7O Iz3cwc2QLS17kX167i8WT/tuuLdQ+hi8hbmTEYi5l/vj57U+Ero1P1QVA5gZ5Zrq54oN 9LddYezFiCI89/ykpPeuDdpDVR+hdr9+za/jlLIlp1hJgaS6Wk5DygIMIuRb6s3H+QoM Ysm29j88Te1Zxz059SkeJ0HTcOoYoxsN3kV+moLVxMiJxWtoSbQKZ+0qQCo9whaJ50cU 9breP5qCnrMxaHlw9pBkIYitTCNlGIEbb6EuLwhrHEPamBoGK6HoCSlF9Jqq7GV/Bgjl 3WbQ== X-Gm-Message-State: ALKqPwdF0L7iv/M1QFTuE+ZNg6xyDXpVKHWBGLuSLQzjQ56cwd8H+tkM N8iYAeRpjMNPDxm1n4srgAZPy4C/NRhfcnQnDc680w== X-Google-Smtp-Source: AB8JxZr6164v5+wyKpa9I7SAbDQG4sKUQ/Pftav6erL7ucl7ISKWM2H/Pig7BVnBtsyuZGPXaDgmdYkuMokAJWXPlKc= X-Received: by 2002:a24:2fce:: with SMTP id j197-v6mr1732761itj.52.1525960653684; Thu, 10 May 2018 06:57:33 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.130.167 with HTTP; Thu, 10 May 2018 06:57:13 -0700 (PDT) In-Reply-To: References: <201805101136.w4ABaG7G034274@repo.freebsd.org> From: Ed Maste Date: Thu, 10 May 2018 09:57:13 -0400 X-Google-Sender-Auth: biVd3rgpePq7QvMtFYeOyVGfq2c Message-ID: Subject: Re: svn commit: r333457 - head/sys/kern To: Andrew Gallatin Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 13:57:35 -0000 On 10 May 2018 at 09:18, Andrew Gallatin wrote: > On 05/10/18 07:36, Ed Maste wrote: >> >> Author: emaste >> Date: Thu May 10 11:36:16 2018 >> New Revision: 333457 >> URL: ... >> >> Log: >> ANSIfy sys_generic.c > > This breaks the kernel build: > > /usr/src/sys/kern/sys_generic.c:522:1: error: conflicting types for > 'kern_pwritev' > kern_pwritev(struct thread *td, struct uio *auio, int fd, off_t offset) > ^ > /usr/src/sys/sys/syscallsubr.h:212:5: note: previous declaration is here > int kern_pwritev(struct thread *td, int fd, struct uio *auio, off_t > offset); > ^ > 1 error generated. > *** [sys_generic.o] Error code 1 Sorry about the breakage, and thanks for reporting and fixing. I merged from FreeBSD to my WIP tree, and was reminded that I had this change because r333425 included an adjacent change. When making the change in svn I accidentally reintroduced the misordering. From owner-svn-src-head@freebsd.org Thu May 10 15:01:45 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1D91FCC6F7; Thu, 10 May 2018 15:01:44 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 840DC6B93F; Thu, 10 May 2018 15:01:44 +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 65FE521FDC; Thu, 10 May 2018 15:01:44 +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 w4AF1iFm039083; Thu, 10 May 2018 15:01:44 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AF1iI0039082; Thu, 10 May 2018 15:01:44 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805101501.w4AF1iI0039082@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 10 May 2018 15:01:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333461 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 333461 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 15:01:45 -0000 Author: kib Date: Thu May 10 15:01:43 2018 New Revision: 333461 URL: https://svnweb.freebsd.org/changeset/base/333461 Log: Make fpusave() and fpurestore() on amd64 ifuncs. From now on, linking amd64 kernel requires either lld or newer ld.bfd. Reviewed by: jhb (as part of the large patch) Discussed with: emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D13838 Modified: head/sys/amd64/amd64/fpu.c Modified: head/sys/amd64/amd64/fpu.c ============================================================================== --- head/sys/amd64/amd64/fpu.c Thu May 10 13:52:52 2018 (r333460) +++ head/sys/amd64/amd64/fpu.c Thu May 10 15:01:43 2018 (r333461) @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include /* * Floating point support. @@ -151,26 +152,60 @@ struct xsave_area_elm_descr { u_int size; } *xsave_area_desc; -void -fpusave(void *addr) +static void +fpusave_xsave(void *addr) { - if (use_xsave) - xsave((char *)addr, xsave_mask); - else - fxsave((char *)addr); + xsave((char *)addr, xsave_mask); } -void -fpurestore(void *addr) +static void +fpurestore_xrstor(void *addr) { + xrstor((char *)addr, xsave_mask); +} + +static void +fpusave_fxsave(void *addr) +{ + + fxsave((char *)addr); +} + +static void +fpurestore_fxrstor(void *addr) +{ + + fxrstor((char *)addr); +} + +static void +init_xsave(void) +{ + if (use_xsave) - xrstor((char *)addr, xsave_mask); - else - fxrstor((char *)addr); + return; + if ((cpu_feature2 & CPUID2_XSAVE) == 0) + return; + use_xsave = 1; + TUNABLE_INT_FETCH("hw.use_xsave", &use_xsave); } +DEFINE_IFUNC(, void, fpusave, (void *), static) +{ + + init_xsave(); + return (use_xsave ? fpusave_xsave : fpusave_fxsave); +} + +DEFINE_IFUNC(, void, fpurestore, (void *), static) +{ + + init_xsave(); + return (use_xsave ? fpurestore_xrstor : fpurestore_fxrstor); +} + void fpususpend(void *addr) { @@ -207,13 +242,8 @@ fpuinit_bsp1(void) uint64_t xsave_mask_user; bool old_wp; - if ((cpu_feature2 & CPUID2_XSAVE) != 0) { - use_xsave = 1; - TUNABLE_INT_FETCH("hw.use_xsave", &use_xsave); - } if (!use_xsave) return; - cpuid_count(0xd, 0x0, cp); xsave_mask = XFEATURE_ENABLED_X87 | XFEATURE_ENABLED_SSE; if ((cp[0] & xsave_mask) != xsave_mask) From owner-svn-src-head@freebsd.org Thu May 10 16:19:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 607BEFCF067; Thu, 10 May 2018 16:19:42 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 08FA17FA3A; Thu, 10 May 2018 16:19:42 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D4CD922B92; Thu, 10 May 2018 16:19:41 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4AGJfic077983; Thu, 10 May 2018 16:19:41 GMT (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AGJf78077982; Thu, 10 May 2018 16:19:41 GMT (envelope-from gallatin@FreeBSD.org) Message-Id: <201805101619.w4AGJf78077982@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gallatin set sender to gallatin@FreeBSD.org using -f From: Andrew Gallatin Date: Thu, 10 May 2018 16:19:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333462 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: gallatin X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 333462 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 16:19:42 -0000 Author: gallatin Date: Thu May 10 16:19:41 2018 New Revision: 333462 URL: https://svnweb.freebsd.org/changeset/base/333462 Log: Fix a panic in the IPv6 multicast code. Use LIST_FOREACH_SAFE in in6m_disconnect() since we're deleting and freeing item from the membership list while traversing the list. Reviewed by: mmacy Sponsored by: Netflix Modified: head/sys/netinet6/in6_mcast.c Modified: head/sys/netinet6/in6_mcast.c ============================================================================== --- head/sys/netinet6/in6_mcast.c Thu May 10 15:01:43 2018 (r333461) +++ head/sys/netinet6/in6_mcast.c Thu May 10 16:19:41 2018 (r333462) @@ -581,7 +581,7 @@ in6m_disconnect(struct in6_multi *inm) struct ifnet *ifp; struct ifaddr *ifa; struct in6_ifaddr *ifa6; - struct in6_multi_mship *imm; + struct in6_multi_mship *imm, *imm_tmp; struct ifmultiaddr *ifma, *ll_ifma; ifp = inm->in6m_ifp; @@ -607,7 +607,8 @@ in6m_disconnect(struct in6_multi *inm) if (ifa->ifa_addr->sa_family != AF_INET6) continue; ifa6 = (void *)ifa; - LIST_FOREACH(imm, &ifa6->ia6_memberships, i6mm_chain) { + LIST_FOREACH_SAFE(imm, &ifa6->ia6_memberships, + i6mm_chain, imm_tmp) { if (inm == imm->i6mm_maddr) { LIST_REMOVE(imm, i6mm_chain); free(imm, M_IP6MADDR); From owner-svn-src-head@freebsd.org Thu May 10 16:41:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC370FCFD1F; Thu, 10 May 2018 16:41:47 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A008A83809; Thu, 10 May 2018 16:41:47 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8145D2301A; Thu, 10 May 2018 16:41:47 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4AGfl0s093192; Thu, 10 May 2018 16:41:47 GMT (envelope-from dumbbell@FreeBSD.org) Received: (from dumbbell@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AGflMU093191; Thu, 10 May 2018 16:41:47 GMT (envelope-from dumbbell@FreeBSD.org) Message-Id: <201805101641.w4AGflMU093191@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dumbbell set sender to dumbbell@FreeBSD.org using -f From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= Date: Thu, 10 May 2018 16:41:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333463 - head/sys/dev/vt/colors X-SVN-Group: head X-SVN-Commit-Author: dumbbell X-SVN-Commit-Paths: head/sys/dev/vt/colors X-SVN-Commit-Revision: 333463 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 16:41:48 -0000 Author: dumbbell Date: Thu May 10 16:41:47 2018 New Revision: 333463 URL: https://svnweb.freebsd.org/changeset/base/333463 Log: vt(4): Put for() loop outside switch() in vt_generate_cons_palette() This makes it more logical: 1. It checks the requested color format 2. It fills the palette accordingly Also vt_palette_init() is only called when needed (i.e. when the format is `COLOR_FORMAT_RGB`). Modified: head/sys/dev/vt/colors/vt_termcolors.c Modified: head/sys/dev/vt/colors/vt_termcolors.c ============================================================================== --- head/sys/dev/vt/colors/vt_termcolors.c Thu May 10 16:19:41 2018 (r333462) +++ head/sys/dev/vt/colors/vt_termcolors.c Thu May 10 16:41:47 2018 (r333463) @@ -171,21 +171,21 @@ vt_generate_cons_palette(uint32_t *palette, int format { int i; - vt_palette_init(); - -#define CF(_f, _i) ((_f ## max * color_def[(_i)]._f / 100) << _f ## offset) - for (i = 0; i < NCOLORS; i++) { - switch (format) { - case COLOR_FORMAT_VGA: + switch (format) { + case COLOR_FORMAT_VGA: + for (i = 0; i < NCOLORS; i++) palette[i] = cons_to_vga_colors[i]; - break; - case COLOR_FORMAT_RGB: + break; + case COLOR_FORMAT_RGB: + vt_palette_init(); +#define CF(_f, _i) ((_f ## max * color_def[(_i)]._f / 100) << _f ## offset) + for (i = 0; i < NCOLORS; i++) palette[i] = CF(r, i) | CF(g, i) | CF(b, i); - break; - default: - return (ENODEV); - } - } #undef CF + break; + default: + return (ENODEV); + } + return (0); } From owner-svn-src-head@freebsd.org Thu May 10 17:00:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D33DEFD05A6; Thu, 10 May 2018 17:00:34 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 81170692DC; Thu, 10 May 2018 17:00:34 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5DFFD23216; Thu, 10 May 2018 17:00:34 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4AH0Y7k098567; Thu, 10 May 2018 17:00:34 GMT (envelope-from dumbbell@FreeBSD.org) Received: (from dumbbell@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AH0XQ3098564; Thu, 10 May 2018 17:00:33 GMT (envelope-from dumbbell@FreeBSD.org) Message-Id: <201805101700.w4AH0XQ3098564@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dumbbell set sender to dumbbell@FreeBSD.org using -f From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= Date: Thu, 10 May 2018 17:00:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333464 - in head/sys/dev/vt: colors hw/vga X-SVN-Group: head X-SVN-Commit-Author: dumbbell X-SVN-Commit-Paths: in head/sys/dev/vt: colors hw/vga X-SVN-Commit-Revision: 333464 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 17:00:35 -0000 Author: dumbbell Date: Thu May 10 17:00:33 2018 New Revision: 333464 URL: https://svnweb.freebsd.org/changeset/base/333464 Log: vt(4): Use default VGA palette Before this change, the VGA palette was configured to match the shell palette (e.g. color #1 was red). There was one glitch early in boot when the vt(4)'s VGA palette was loaded: the loader's logo would switch from red to blue. Likewise for the "Booting..." message switching from blue to red. That's because the loader's logo was drawed with the default VGA palette where a few colors are swapped compared to the shell palette (e.g. blue <-> red). This change configures the default VGA palette during initialization and converts input's colors from shell to VGA palette index. There should be no visible changes, except the loader's logo which will keep its original color. Reviewed by: eadler Modified: head/sys/dev/vt/colors/vt_termcolors.c head/sys/dev/vt/colors/vt_termcolors.h head/sys/dev/vt/hw/vga/vt_vga.c Modified: head/sys/dev/vt/colors/vt_termcolors.c ============================================================================== --- head/sys/dev/vt/colors/vt_termcolors.c Thu May 10 16:41:47 2018 (r333463) +++ head/sys/dev/vt/colors/vt_termcolors.c Thu May 10 17:00:33 2018 (r333464) @@ -38,8 +38,6 @@ __FBSDID("$FreeBSD$"); #include -#define NCOLORS 16 - static struct { unsigned char r; /* Red percentage value. */ unsigned char g; /* Green percentage value. */ @@ -62,16 +60,6 @@ static struct { {100, 0, 100}, /* light magenta */ {0, 100, 100}, /* light cyan */ {100, 100, 100}, /* white */ -}; - -/* - * Between console's palette and VGA's one: - * - blue and red are swapped (1 <-> 4) - * - yellow ad cyan are swapped (3 <-> 6) - */ -static const int cons_to_vga_colors[NCOLORS] = { - 0, 4, 2, 6, 1, 5, 3, 7, - 0, 4, 2, 6, 1, 5, 3, 7 }; static int Modified: head/sys/dev/vt/colors/vt_termcolors.h ============================================================================== --- head/sys/dev/vt/colors/vt_termcolors.h Thu May 10 16:41:47 2018 (r333463) +++ head/sys/dev/vt/colors/vt_termcolors.h Thu May 10 17:00:33 2018 (r333464) @@ -46,7 +46,18 @@ enum vt_color_format { COLOR_FORMAT_MAX = 15, }; +#define NCOLORS 16 + +/* + * Between console's palette and VGA's one: + * - blue and red are swapped (1 <-> 4) + * - yellow and cyan are swapped (3 <-> 6) + */ +static const int cons_to_vga_colors[NCOLORS] = { + 0, 4, 2, 6, 1, 5, 3, 7, + 8, 12, 10, 14, 9, 13, 11, 15 +}; + /* Helper to fill color map used by driver */ int vt_generate_cons_palette(uint32_t *palette, int format, uint32_t rmax, int roffset, uint32_t gmax, int goffset, uint32_t bmax, int boffset); - Modified: head/sys/dev/vt/hw/vga/vt_vga.c ============================================================================== --- head/sys/dev/vt/hw/vga/vt_vga.c Thu May 10 16:41:47 2018 (r333463) +++ head/sys/dev/vt/hw/vga/vt_vga.c Thu May 10 17:00:33 2018 (r333464) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -152,7 +153,7 @@ vga_setfg(struct vt_device *vd, term_color_t color) return; REG_WRITE1(sc, VGA_GC_ADDRESS, VGA_GC_SET_RESET); - REG_WRITE1(sc, VGA_GC_DATA, color); + REG_WRITE1(sc, VGA_GC_DATA, cons_to_vga_colors[color]); sc->vga_curfg = color; } @@ -167,7 +168,7 @@ vga_setbg(struct vt_device *vd, term_color_t color) return; REG_WRITE1(sc, VGA_GC_ADDRESS, VGA_GC_SET_RESET); - REG_WRITE1(sc, VGA_GC_DATA, color); + REG_WRITE1(sc, VGA_GC_DATA, cons_to_vga_colors[color]); /* * Write 8 pixels using the background color to an off-screen @@ -888,7 +889,9 @@ vga_bitblt_text_txtmode(struct vt_device *vd, const st ch = vga_get_cp437(TCHAR_CHARACTER(c)); /* Convert colors to VGA attributes. */ - attr = bg << 4 | fg; + attr = + cons_to_vga_colors[bg] << 4 | + cons_to_vga_colors[fg]; MEM_WRITE1(sc, (row * 80 + col) * 2 + 0, ch); @@ -1114,43 +1117,45 @@ vga_initialize(struct vt_device *vd, int textmode) REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(0)); REG_WRITE1(sc, VGA_AC_WRITE, 0); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(1)); - REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_R); + REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_B); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(2)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_G); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(3)); - REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SG | VGA_AC_PAL_R); + REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_G | VGA_AC_PAL_B); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(4)); - REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_B); + REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_R); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(5)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_R | VGA_AC_PAL_B); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(6)); - REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_G | VGA_AC_PAL_B); + REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SG | VGA_AC_PAL_R); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(7)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_R | VGA_AC_PAL_G | VGA_AC_PAL_B); + REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(8)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | VGA_AC_PAL_SB); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(9)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | - VGA_AC_PAL_SB | VGA_AC_PAL_R); + VGA_AC_PAL_SB | VGA_AC_PAL_B); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(10)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | VGA_AC_PAL_SB | VGA_AC_PAL_G); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(11)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | - VGA_AC_PAL_SB | VGA_AC_PAL_R | VGA_AC_PAL_G); + VGA_AC_PAL_SB | VGA_AC_PAL_G | VGA_AC_PAL_B); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(12)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | - VGA_AC_PAL_SB | VGA_AC_PAL_B); + VGA_AC_PAL_SB | VGA_AC_PAL_R); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(13)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | VGA_AC_PAL_SB | VGA_AC_PAL_R | VGA_AC_PAL_B); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(14)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | - VGA_AC_PAL_SB | VGA_AC_PAL_G | VGA_AC_PAL_B); + VGA_AC_PAL_SB | VGA_AC_PAL_R | VGA_AC_PAL_G); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PALETTE(15)); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_PAL_SR | VGA_AC_PAL_SG | VGA_AC_PAL_SB | VGA_AC_PAL_R | VGA_AC_PAL_G | VGA_AC_PAL_B); + REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_OVERSCAN_COLOR); REG_WRITE1(sc, VGA_AC_WRITE, 0); REG_WRITE1(sc, VGA_AC_WRITE, VGA_AC_COLOR_PLANE_ENABLE); From owner-svn-src-head@freebsd.org Thu May 10 17:22:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15DFEFD0EFA; Thu, 10 May 2018 17:22:05 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B84DF6F036; Thu, 10 May 2018 17:22:04 +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 98FDA236BF; Thu, 10 May 2018 17:22:04 +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 w4AHM44L012505; Thu, 10 May 2018 17:22:04 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AHM4AU012504; Thu, 10 May 2018 17:22:04 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <201805101722.w4AHM4AU012504@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Thu, 10 May 2018 17:22:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333465 - head/sys/cam/ctl X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/sys/cam/ctl X-SVN-Commit-Revision: 333465 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 17:22:05 -0000 Author: lwhsu (ports committer) Date: Thu May 10 17:22:04 2018 New Revision: 333465 URL: https://svnweb.freebsd.org/changeset/base/333465 Log: Fix build for platforms using GCC: - Remove unused or dead store variable - Remove unused function ctl_copyin_alloc - Add missing curly brackets, this seems a regression in r287720 Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D15383 Modified: head/sys/cam/ctl/ctl.c Modified: head/sys/cam/ctl/ctl.c ============================================================================== --- head/sys/cam/ctl/ctl.c Thu May 10 17:00:33 2018 (r333464) +++ head/sys/cam/ctl/ctl.c Thu May 10 17:22:04 2018 (r333465) @@ -2454,25 +2454,6 @@ ctl_ioctl_fill_ooa(struct ctl_lun *lun, uint32_t *cur_ mtx_unlock(&lun->lun_lock); } -static void * -ctl_copyin_alloc(void *user_addr, unsigned int len, char *error_str, - size_t error_str_len) -{ - void *kptr; - - kptr = malloc(len, M_CTL, M_WAITOK | M_ZERO); - - if (copyin(user_addr, kptr, len) != 0) { - snprintf(error_str, error_str_len, "Error copying %d bytes " - "from user address %p to kernel address %p", len, - user_addr, kptr); - free(kptr, M_CTL); - return (NULL); - } - - return (kptr); -} - /* * Escape characters that are illegal or not recommended in XML. */ @@ -5070,11 +5051,9 @@ ctl_lun_secondary(struct ctl_be_lun *be_lun) int ctl_invalidate_lun(struct ctl_be_lun *be_lun) { - struct ctl_softc *softc; struct ctl_lun *lun; lun = (struct ctl_lun *)be_lun->ctl_lun; - softc = lun->ctl_softc; mtx_lock(&lun->lun_lock); @@ -6270,7 +6249,7 @@ ctl_mode_select(struct ctl_scsiio *ctsio) { struct ctl_lun *lun = CTL_LUN(ctsio); union ctl_modepage_info *modepage_info; - int bd_len, i, header_size, param_len, pf, rtd, sp; + int bd_len, i, header_size, param_len, rtd; uint32_t initidx; initidx = ctl_get_initindex(&ctsio->io_hdr.nexus); @@ -6280,9 +6259,7 @@ ctl_mode_select(struct ctl_scsiio *ctsio) cdb = (struct scsi_mode_select_6 *)ctsio->cdb; - pf = (cdb->byte2 & SMS_PF) ? 1 : 0; rtd = (cdb->byte2 & SMS_RTD) ? 1 : 0; - sp = (cdb->byte2 & SMS_SP) ? 1 : 0; param_len = cdb->length; header_size = sizeof(struct scsi_mode_header_6); break; @@ -6292,9 +6269,7 @@ ctl_mode_select(struct ctl_scsiio *ctsio) cdb = (struct scsi_mode_select_10 *)ctsio->cdb; - pf = (cdb->byte2 & SMS_PF) ? 1 : 0; rtd = (cdb->byte2 & SMS_RTD) ? 1 : 0; - sp = (cdb->byte2 & SMS_SP) ? 1 : 0; param_len = scsi_2btoul(cdb->length); header_size = sizeof(struct scsi_mode_header_10); break; @@ -6417,13 +6392,12 @@ int ctl_mode_sense(struct ctl_scsiio *ctsio) { struct ctl_lun *lun = CTL_LUN(ctsio); - int pc, page_code, dbd, llba, subpage; + int pc, page_code, dbd, subpage; int alloc_len, page_len, header_len, total_len; struct scsi_mode_block_descr *block_desc; struct ctl_page_index *page_index; dbd = 0; - llba = 0; block_desc = NULL; CTL_DEBUG_PRINT(("ctl_mode_sense\n")); @@ -6457,8 +6431,6 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) dbd = 1; else header_len += sizeof(struct scsi_mode_block_descr); - if (cdb->byte2 & SMS10_LLBAA) - llba = 1; pc = (cdb->page & SMS_PAGE_CTRL_MASK) >> 6; page_code = cdb->page & SMS_PAGE_CODE; subpage = cdb->subpage; @@ -8631,10 +8603,11 @@ ctl_hndl_per_res_out_on_other_sc(union ctl_io *io) if (lun->pr_res_type != SPR_TYPE_EX_AC && lun->pr_res_type != SPR_TYPE_WR_EX && (lun->MODE_CTRL.queue_flags & SCP_NUAR) == 0) { - for (i = softc->init_min; i < softc->init_max; i++) + for (i = softc->init_min; i < softc->init_max; i++) { if (i == residx || ctl_get_prkey(lun, i) == 0) continue; ctl_est_ua(lun, i, CTL_UA_RES_RELEASE); + } } lun->flags &= ~CTL_LUN_PR_RESERVED; @@ -10452,7 +10425,6 @@ ctl_get_event_status(struct ctl_scsiio *ctsio) struct scsi_get_event_status_header *hdr; struct scsi_get_event_status *cdb; uint32_t alloc_len, data_len; - int notif_class; cdb = (struct scsi_get_event_status *)ctsio->cdb; if ((cdb->byte2 & SGESN_POLLED) == 0) { @@ -10461,7 +10433,6 @@ ctl_get_event_status(struct ctl_scsiio *ctsio) ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); } - notif_class = cdb->notif_class; alloc_len = scsi_2btoul(cdb->length); data_len = sizeof(struct scsi_get_event_status_header); From owner-svn-src-head@freebsd.org Thu May 10 17:31:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 58F00FD1623; Thu, 10 May 2018 17:31:56 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 98C516FA1E; Thu, 10 May 2018 17:31:55 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id 2C273424814; Fri, 11 May 2018 03:31:47 +1000 (AEST) Date: Fri, 11 May 2018 03:31:46 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Konstantin Belousov cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 In-Reply-To: <201805101501.w4AF1iI0039082@repo.freebsd.org> Message-ID: <20180511012309.V3949@besplex.bde.org> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=cIaQihWN c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=VEp1mD_9WxY-5FT3oJsA:9 a=dqOK8clpalB_RD_S:21 a=AIzsK_yzptf1LuMC:21 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 17:31:56 -0000 On Thu, 10 May 2018, Konstantin Belousov wrote: > Log: > Make fpusave() and fpurestore() on amd64 ifuncs. > > From now on, linking amd64 kernel requires either lld or newer ld.bfd. This breaks building with gcc: XX cc1: warnings being treated as errors XX ../../../amd64/amd64/fpu.c:195: warning: 'ifunc' attribute directive ignored [-Wattributes] XX ../../../amd64/amd64/fpu.c:195: warning: redundant redeclaration of 'fpusave' [-Wredundant-decls] XX ./machine/fpu.h:64: warning: previous declaration of 'fpusave' was here XX ../../../amd64/amd64/fpu.c:202: warning: 'ifunc' attribute directive ignored [-Wattributes] XX ../../../amd64/amd64/fpu.c:202: warning: redundant redeclaration of 'fpurestore' [-Wredundant-decls] XX ./machine/fpu.h:62: warning: previous declaration of 'fpurestore' was here After building fpu.o with clang, linking doesn't reqire a newer ld, but booting does -- after linking with an older ld, the boot panics with a page fault near fork(). I used the current as and ld with old gcc until early this year. This is a bit fragile and regressed with lld. The regression was minor -- lld expanded the bss in the data section, giving a few MB of bloat. Now the bloat relative to old ld is only 29K in the text section. Debugging and presumably profiling is also broken: XX db> x/ia fpusususpend,20 XX fpususpend: pushq %rbp XX fpususpend+0x1: movq %rsp,%rbp XX fpususpend+0x4: pushq %rbx XX fpususpend+0x5: pushq %rax XX fpususpend+0x6: movl %cr0,%ebx XX fpususpend+0x9: clts XX fpususpend+0xb: call 0xffffffff80299960 XX fpususpend+0x10: movl %ebx,%cr0 XX fpususpend+0x13: addq $0x8,%rsp XX fpususpend+0x17: popq %rbx XX fpususpend+0x18: popq %rbp XX fpususpend+0x19: ret XX db> x/ia 0xffffffff80299960 XX 0xffffffff80299960: jmpl *0x56769a(%rip) ddb still doesn't understand pc-relative offsets. Decoding this with "p/x 0xffffffff80299960+6" gives brwsection+0x1000. At this address is a pointer to fpusave_xsave since the hardware supports xsave. This looks like a small or null pessimization. The branch in the old version is probably faster. The following simple test on Haswell shows that all reasonable versions have almost the same speed when cached: XX #include XX XX #ifndef FUNC XX #define FUNC cfoo XX #endif XX XX int FUNC(void); XX XX int asmifunctargfoo(void); XX int (*ifuncaddr)(void) = asmifunctargfoo; XX int xsave = 1; XX XX int XX cfoo(void) XX { XX return (xsave != 0 ? 2 : 1); XX } XX XX __asm(".text; asmbranchfoo: cmpl $0,xsave(%rip); je 1f; movl $2,%eax; ret; 1: movl $1,%eax; ret"); XX __asm(".text; asmnobranchfoo: cmpl $0,xsave(%rip); setne %al; movzbl %al,%eax; ret"); XX __asm(".text; asmifuncfoo: jmp *ifuncaddr(%rip)"); XX __asm(".text; asmifunctargfoo: movl $2,%eax; ret"); /* for xsave != 0 */ XX XX int XX main(void) XX { XX volatile int i, res;; XX XX res = 0; XX for (i = 0; i < 1000000000; i++) XX res += FUNC(); XX return (0); XX } Compile this with gcc -o foo foo.c -O -FUNC={cfoo,asmbranchfoo,asmnobranchfoo, asmifuncfoo). cfoo, asmnobranchfoo and asmifuncfoo take 1.71-1.72 seconds (~7 cycles at 4.08 Ghz) on Haswell. Only asmnobranchfoo is slower -- it takes about 1.78 seconds. That is a whole quarter of a cycle longer (7.25 cycles). The uncached case is hard to test. This loop runs in parallel with itself as far as possible, so the main limit is the number of dependencies and latency for branch prediction might not matter provided it is less than the loop time of 7 cycles. In normal use, probably nothing stays cached because it is rarely called. This also means that optimizations are in the noise. I think the direct branch can be statically predicted better than the indirect branch, and it is easy to arrange using excessive __predict_* optimizations that it is right on some hardware. Bruce From owner-svn-src-head@freebsd.org Thu May 10 17:55:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50EA9FD1E80; Thu, 10 May 2018 17:55:28 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F1A18755D8; Thu, 10 May 2018 17:55:27 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D27ED23C16; Thu, 10 May 2018 17:55:27 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4AHtR6M028912; Thu, 10 May 2018 17:55:27 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AHtPRt028900; Thu, 10 May 2018 17:55:25 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805101755.w4AHtPRt028900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Thu, 10 May 2018 17:55:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333466 - in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch X-SVN-Commit-Revision: 333466 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 17:55:28 -0000 Author: mmacy Date: Thu May 10 17:55:24 2018 New Revision: 333466 URL: https://svnweb.freebsd.org/changeset/base/333466 Log: Add simple preempt safe epoch API Read locking is over used in the kernel to guarantee liveness. This API makes it easy to provide livenes guarantees without atomics. Includes epoch_test kernel module to stress test the API. Documentation will follow initial use case. Test case and improvements to preemption handling in response to discussion with mjg@ Reviewed by: imp@, shurd@ Approved by: sbruno@ Added: head/sys/kern/subr_epoch.c (contents, props changed) head/sys/modules/epoch_test/ head/sys/modules/epoch_test/Makefile (contents, props changed) head/sys/sys/epoch.h (contents, props changed) head/sys/tests/epoch/ head/sys/tests/epoch/epoch_test.c (contents, props changed) Modified: head/contrib/bmake/job.c head/sys/conf/files head/sys/conf/kern.pre.mk head/sys/kern/kern_malloc.c head/sys/kern/kern_synch.c head/sys/kern/subr_trap.c head/sys/kern/subr_turnstile.c head/sys/sys/proc.h head/sys/sys/turnstile.h Modified: head/contrib/bmake/job.c ============================================================================== --- head/contrib/bmake/job.c Thu May 10 17:22:04 2018 (r333465) +++ head/contrib/bmake/job.c Thu May 10 17:55:24 2018 (r333466) @@ -2121,13 +2121,15 @@ Job_CatchOutput(void) { int nready; Job *job; - int i; + int i, pollToken; (void)fflush(stdout); + pollToken = 0; + /* The first fd in the list is the job token pipe */ do { - nready = poll(fds + 1 - wantToken, nfds - 1 + wantToken, POLL_MSEC); + nready = poll(fds + 1 - pollToken, nfds - 1 + pollToken, POLL_MSEC); } while (nready < 0 && errno == EINTR); if (nready < 0) Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Thu May 10 17:22:04 2018 (r333465) +++ head/sys/conf/files Thu May 10 17:55:24 2018 (r333466) @@ -3891,6 +3891,7 @@ kern/subr_compressor.c standard \ kern/subr_counter.c standard kern/subr_devstat.c standard kern/subr_disk.c standard +kern/subr_epoch.c standard kern/subr_eventhandler.c standard kern/subr_fattime.c standard kern/subr_firmware.c optional firmware Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Thu May 10 17:22:04 2018 (r333465) +++ head/sys/conf/kern.pre.mk Thu May 10 17:55:24 2018 (r333466) @@ -77,7 +77,7 @@ COPTFLAGS+= ${_CPUCFLAGS} .endif NOSTDINC= -nostdinc -INCLUDES= ${NOSTDINC} ${INCLMAGIC} -I. -I$S +INCLUDES= ${NOSTDINC} ${INCLMAGIC} -I. -I$S -I$S/contrib/ck/include CFLAGS= ${COPTFLAGS} ${DEBUG} CFLAGS+= ${INCLUDES} -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h Modified: head/sys/kern/kern_malloc.c ============================================================================== --- head/sys/kern/kern_malloc.c Thu May 10 17:22:04 2018 (r333465) +++ head/sys/kern/kern_malloc.c Thu May 10 17:55:24 2018 (r333466) @@ -514,9 +514,12 @@ malloc_dbg(caddr_t *vap, size_t *sizep, struct malloc_ } } #endif - if (flags & M_WAITOK) + if (flags & M_WAITOK) { KASSERT(curthread->td_intr_nesting_level == 0, ("malloc(M_WAITOK) in interrupt context")); + KASSERT(curthread->td_epochnest == 0, + ("malloc(M_WAITOK) in epoch context")); + } KASSERT(curthread->td_critnest == 0 || SCHEDULER_STOPPED(), ("malloc: called with spinlock or critical section held")); Modified: head/sys/kern/kern_synch.c ============================================================================== --- head/sys/kern/kern_synch.c Thu May 10 17:22:04 2018 (r333465) +++ head/sys/kern/kern_synch.c Thu May 10 17:55:24 2018 (r333466) @@ -147,6 +147,7 @@ _sleep(void *ident, struct lock_object *lock, int prio ("sleeping without a lock")); KASSERT(ident != NULL, ("_sleep: NULL ident")); KASSERT(TD_IS_RUNNING(td), ("_sleep: curthread not running")); + KASSERT(td->td_epochnest == 0, ("sleeping in an epoch section")); if (priority & PDROP) KASSERT(lock != NULL && lock != &Giant.lock_object, ("PDROP requires a non-Giant lock")); Added: head/sys/kern/subr_epoch.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/kern/subr_epoch.c Thu May 10 17:55:24 2018 (r333466) @@ -0,0 +1,508 @@ +/*- + * Copyright (c) 2018, Matthew Macy + * + * 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. Neither the name of Matthew Macy nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +MALLOC_DEFINE(M_EPOCH, "epoch", "epoch based reclamation"); + +/* arbitrary --- needs benchmarking */ +#define MAX_ADAPTIVE_SPIN 5000 + +SYSCTL_NODE(_kern, OID_AUTO, epoch, CTLFLAG_RW, 0, "epoch information"); +SYSCTL_NODE(_kern_epoch, OID_AUTO, stats, CTLFLAG_RW, 0, "epoch stats"); + +/* Stats. */ +static counter_u64_t block_count; +SYSCTL_COUNTER_U64(_kern_epoch_stats, OID_AUTO, nblocked, CTLFLAG_RW, + &block_count, "# of times a thread was in an epoch when epoch_wait was called"); +static counter_u64_t migrate_count; +SYSCTL_COUNTER_U64(_kern_epoch_stats, OID_AUTO, migrations, CTLFLAG_RW, + &migrate_count, "# of times thread was migrated to another CPU in epoch_wait"); +static counter_u64_t turnstile_count; +SYSCTL_COUNTER_U64(_kern_epoch_stats, OID_AUTO, ncontended, CTLFLAG_RW, + &turnstile_count, "# of times a thread was blocked on a lock in an epoch during an epoch_wait"); +static counter_u64_t switch_count; +SYSCTL_COUNTER_U64(_kern_epoch_stats, OID_AUTO, switches, CTLFLAG_RW, + &switch_count, "# of times a thread voluntarily context switched in epoch_wait"); + +typedef struct epoch_cb { + void (*ec_callback)(epoch_context_t); + STAILQ_ENTRY(epoch_cb) ec_link; +} *epoch_cb_t; + +TAILQ_HEAD(threadlist, thread); + +typedef struct epoch_record { + ck_epoch_record_t er_record; + volatile struct threadlist er_tdlist; + uint32_t er_cpuid; +} *epoch_record_t; + +struct epoch_pcpu_state { + struct epoch_record eps_record; + volatile int eps_waiters; +} __aligned(CACHE_LINE_SIZE); + +struct epoch { + struct ck_epoch e_epoch; + struct mtx e_lock; + struct grouptask e_gtask; + STAILQ_HEAD(, epoch_cb) e_cblist; + struct epoch_pcpu_state *e_pcpu_dom[MAXMEMDOM]; + struct epoch_pcpu_state *e_pcpu[0]; +}; + +static __read_mostly int domcount[MAXMEMDOM]; +static __read_mostly int domoffsets[MAXMEMDOM]; +static __read_mostly int inited; + +static void epoch_call_task(void *context); +static bool usedomains = true; + +static void +epoch_init(void *arg __unused) +{ + int domain, count; + + count = domain = 0; + domoffsets[0] = 0; + for (domain = 0; domain < vm_ndomains; domain++) { + domcount[domain] = CPU_COUNT(&cpuset_domain[domain]); + if (bootverbose) + printf("domcount[%d] %d\n", domain, domcount[domain]); + } + for (domain = 1; domain < vm_ndomains; domain++) + domoffsets[domain] = domoffsets[domain-1] + domcount[domain-1]; + + for (domain = 0; domain < vm_ndomains; domain++) { + if (domcount[domain] == 0) { + usedomains = false; + break; + } + } + + block_count = counter_u64_alloc(M_WAITOK); + migrate_count = counter_u64_alloc(M_WAITOK); + turnstile_count = counter_u64_alloc(M_WAITOK); + switch_count = counter_u64_alloc(M_WAITOK); + inited = 1; +} +SYSINIT(epoch, SI_SUB_CPU + 1, SI_ORDER_FIRST, epoch_init, NULL); + +static void +epoch_init_numa(epoch_t epoch) +{ + int domain, cpu_offset; + struct epoch_pcpu_state *eps; + epoch_record_t er; + + for (domain = 0; domain < vm_ndomains; domain++) { + eps = malloc_domain(sizeof(*eps)*domcount[domain], M_EPOCH, + domain, M_ZERO|M_WAITOK); + epoch->e_pcpu_dom[domain] = eps; + cpu_offset = domoffsets[domain]; + for (int i = 0; i < domcount[domain]; i++, eps++) { + epoch->e_pcpu[cpu_offset + i] = eps; + er = &eps->eps_record; + ck_epoch_register(&epoch->e_epoch, &er->er_record, NULL); + TAILQ_INIT((struct threadlist *)(uintptr_t)&er->er_tdlist); + er->er_cpuid = cpu_offset + i; + } + } +} + +static void +epoch_init_legacy(epoch_t epoch) +{ + struct epoch_pcpu_state *eps; + epoch_record_t er; + + eps = malloc(sizeof(*eps)*mp_ncpus, M_EPOCH, M_ZERO|M_WAITOK); + epoch->e_pcpu_dom[0] = eps; + for (int i = 0; i < mp_ncpus; i++, eps++) { + epoch->e_pcpu[i] = eps; + er = &eps->eps_record; + ck_epoch_register(&epoch->e_epoch, &er->er_record, NULL); + TAILQ_INIT((struct threadlist *)(uintptr_t)&er->er_tdlist); + er->er_cpuid = i; + } +} + +epoch_t +epoch_alloc(void) +{ + epoch_t epoch; + + if (__predict_false(!inited)) + panic("%s called too early in boot", __func__); + epoch = malloc(sizeof(struct epoch) + mp_ncpus*sizeof(void*), + M_EPOCH, M_ZERO|M_WAITOK); + ck_epoch_init(&epoch->e_epoch); + mtx_init(&epoch->e_lock, "epoch cblist", NULL, MTX_DEF); + STAILQ_INIT(&epoch->e_cblist); + taskqgroup_config_gtask_init(epoch, &epoch->e_gtask, epoch_call_task, "epoch call task"); + if (usedomains) + epoch_init_numa(epoch); + else + epoch_init_legacy(epoch); + return (epoch); +} + +void +epoch_free(epoch_t epoch) +{ + int domain; +#ifdef INVARIANTS + struct epoch_pcpu_state *eps; + int cpu; + + CPU_FOREACH(cpu) { + eps = epoch->e_pcpu[cpu]; + MPASS(TAILQ_EMPTY(&eps->eps_record.er_tdlist)); + } +#endif + mtx_destroy(&epoch->e_lock); + taskqgroup_config_gtask_deinit(&epoch->e_gtask); + if (usedomains) + for (domain = 0; domain < vm_ndomains; domain++) + free_domain(epoch->e_pcpu_dom[domain], M_EPOCH); + else + free(epoch->e_pcpu_dom[0], M_EPOCH); + free(epoch, M_EPOCH); +} + +#define INIT_CHECK(epoch) \ + do { \ + if (__predict_false((epoch) == NULL)) \ + return; \ + } while (0) + +void +epoch_enter(epoch_t epoch) +{ + struct epoch_pcpu_state *eps; + struct thread *td; + + INIT_CHECK(epoch); + + td = curthread; + critical_enter(); + eps = epoch->e_pcpu[curcpu]; + td->td_epochnest++; + MPASS(td->td_epochnest < UCHAR_MAX - 2); + if (td->td_epochnest == 1) + TAILQ_INSERT_TAIL(&eps->eps_record.er_tdlist, td, td_epochq); +#ifdef INVARIANTS + if (td->td_epochnest > 1) { + struct thread *curtd; + int found = 0; + + TAILQ_FOREACH(curtd, &eps->eps_record.er_tdlist, td_epochq) + if (curtd == td) + found = 1; + KASSERT(found, ("recursing on a second epoch")); + } +#endif + sched_pin(); + ck_epoch_begin(&eps->eps_record.er_record, NULL); + critical_exit(); +} + +void +epoch_enter_nopreempt(epoch_t epoch) +{ + struct epoch_pcpu_state *eps; + + INIT_CHECK(epoch); + critical_enter(); + eps = epoch->e_pcpu[curcpu]; + curthread->td_epochnest++; + MPASS(curthread->td_epochnest < UCHAR_MAX - 2); + ck_epoch_begin(&eps->eps_record.er_record, NULL); +} + +void +epoch_exit(epoch_t epoch) +{ + struct epoch_pcpu_state *eps; + struct thread *td; + + td = curthread; + INIT_CHECK(epoch); + critical_enter(); + eps = epoch->e_pcpu[curcpu]; + sched_unpin(); + ck_epoch_end(&eps->eps_record.er_record, NULL); + td->td_epochnest--; + if (td->td_epochnest == 0) + TAILQ_REMOVE(&eps->eps_record.er_tdlist, td, td_epochq); + critical_exit(); +} + +void +epoch_exit_nopreempt(epoch_t epoch) +{ + struct epoch_pcpu_state *eps; + + INIT_CHECK(epoch); + MPASS(curthread->td_critnest); + eps = epoch->e_pcpu[curcpu]; + ck_epoch_end(&eps->eps_record.er_record, NULL); + curthread->td_epochnest--; + critical_exit(); +} + +/* + * epoch_block_handler is a callback from the ck code when another thread is + * currently in an epoch section. + */ +static void +epoch_block_handler(struct ck_epoch *global __unused, ck_epoch_record_t *cr, + void *arg __unused) +{ + epoch_record_t record; + struct epoch_pcpu_state *eps; + struct thread *td, *tdwait, *owner; + struct turnstile *ts; + struct lock_object *lock; + u_char prio; + int spincount; + + eps = arg; + record = __containerof(cr, struct epoch_record, er_record); + td = curthread; + spincount = 0; + counter_u64_add(block_count, 1); + if (record->er_cpuid != curcpu) { + /* + * If the head of the list is running, we can wait for it + * to remove itself from the list and thus save us the + * overhead of a migration + */ + if ((tdwait = TAILQ_FIRST(&record->er_tdlist)) != NULL && + TD_IS_RUNNING(tdwait)) { + while (tdwait == TAILQ_FIRST(&record->er_tdlist) && + TD_IS_RUNNING(tdwait) && spincount++ < MAX_ADAPTIVE_SPIN) { + cpu_spinwait(); + } + return; + } + + /* + * Being on the same CPU as that of the record on which + * we need to wait allows us access to the thread + * list associated with that CPU. We can then examine the + * oldest thread in the queue and wait on its turnstile + * until it resumes and so on until a grace period + * elapses. + * + */ + counter_u64_add(migrate_count, 1); + sched_bind(td, record->er_cpuid); + /* + * At this point we need to return to the ck code + * to scan to see if a grace period has elapsed. + * We can't move on to check the thread list, because + * in the meantime new threads may have arrived that + * in fact belong to a different epoch. + */ + return; + } + /* + * Try to find a thread in an epoch section on this CPU + * waiting on a turnstile. Otherwise find the lowest + * priority thread (highest prio value) and drop our priority + * to match to allow it to run. + */ + prio = 0; + TAILQ_FOREACH(tdwait, &record->er_tdlist, td_epochq) { + if (td->td_priority > prio) + prio = td->td_priority; + if (TD_IS_INHIBITED(tdwait) && TD_ON_LOCK(tdwait) && + ((ts = tdwait->td_blocked) != NULL)) { + /* + * We unlock td to allow turnstile_wait to reacquire the + * the thread lock. Before unlocking it we enter a critical + * section to prevent preemption after we reenable interrupts + * by dropping the thread lock in order to prevent tdwait + * from getting to run. + */ + critical_enter(); + thread_unlock(td); + owner = turnstile_lock(ts, &lock); + /* + * The owner pointer indicates that the lock succeeded. Only + * in case we hold the lock and the turnstile we locked is still + * the one that tdwait is blocked on can we continue. Otherwise + * The turnstile pointer has been changed out from underneath + * us, as in the case where the lock holder has signalled tdwait, + * and we need to continue. + */ + if (owner != NULL && ts == tdwait->td_blocked) { + MPASS(TD_IS_INHIBITED(tdwait) && TD_ON_LOCK(tdwait)); + critical_exit(); + turnstile_wait(ts, owner, tdwait->td_tsqueue); + counter_u64_add(turnstile_count, 1); + thread_lock(td); + return; + } else if (owner != NULL) + turnstile_unlock(ts, lock); + thread_lock(td); + critical_exit(); + KASSERT(td->td_locks == 0, + ("%d locks held", td->td_locks)); + } + } + /* + * We didn't find any threads actually blocked on a lock + * we have nothing to do except set our priority to match + * that of the lowest value on the queue and context switch + * away. + */ + counter_u64_add(switch_count, 1); + sched_prio(td, prio); + mi_switch(SW_VOL | SWT_RELINQUISH, NULL); + + /* + * Release the thread lock while yielding to + * allow other threads to acquire the lock + * pointed to by TDQ_LOCKPTR(td). Else a + * deadlock like situation might happen. (HPS) + */ + thread_unlock(td); + thread_lock(td); +} + +void +epoch_wait(epoch_t epoch) +{ + struct thread *td; + int was_bound; + int old_cpu; + int old_pinned; + u_char old_prio; + + INIT_CHECK(epoch); + + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, + "epoch_wait() can sleep"); + + td = curthread; + KASSERT(td->td_epochnest == 0, ("epoch_wait() in the middle of an epoch section")); + thread_lock(td); + + DROP_GIANT(); + + old_cpu = PCPU_GET(cpuid); + old_pinned = td->td_pinned; + old_prio = td->td_priority; + was_bound = sched_is_bound(td); + sched_unbind(td); + td->td_pinned = 0; + sched_bind(td, old_cpu); + + ck_epoch_synchronize_wait(&epoch->e_epoch, epoch_block_handler, NULL); + + /* restore CPU binding, if any */ + if (was_bound != 0) { + sched_bind(td, old_cpu); + } else { + /* get thread back to initial CPU, if any */ + if (old_pinned != 0) + sched_bind(td, old_cpu); + sched_unbind(td); + } + /* restore pinned after bind */ + td->td_pinned = old_pinned; + + /* restore thread priority */ + sched_prio(td, old_prio); + thread_unlock(td); + + PICKUP_GIANT(); +} + +void +epoch_call(epoch_t epoch, epoch_context_t ctx, void (*callback) (epoch_context_t)) +{ + epoch_cb_t cb; + + cb = (void *)ctx; + cb->ec_callback = callback; + mtx_lock(&epoch->e_lock); + STAILQ_INSERT_TAIL(&epoch->e_cblist, cb, ec_link); + GROUPTASK_ENQUEUE(&epoch->e_gtask); + mtx_unlock(&epoch->e_lock); +} + +static void +epoch_call_task(void *context) +{ + epoch_t epoch; + epoch_cb_t cb; + STAILQ_HEAD(, epoch_cb) tmp_head; + + epoch = context; + STAILQ_INIT(&tmp_head); + + mtx_lock(&epoch->e_lock); + STAILQ_CONCAT(&tmp_head, &epoch->e_cblist); + mtx_unlock(&epoch->e_lock); + + epoch_wait(epoch); + + while ((cb = STAILQ_FIRST(&tmp_head)) != NULL) + cb->ec_callback((void*)cb); +} + +int +in_epoch(void) +{ + return (curthread->td_epochnest != 0); +} Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Thu May 10 17:22:04 2018 (r333465) +++ head/sys/kern/subr_trap.c Thu May 10 17:55:24 2018 (r333466) @@ -161,6 +161,8 @@ userret(struct thread *td, struct trapframe *frame) WITNESS_WARN(WARN_PANIC, NULL, "userret: returning"); KASSERT(td->td_critnest == 0, ("userret: Returning in a critical section")); + KASSERT(td->td_epochnest == 0, + ("userret: Returning in an epoch section")); KASSERT(td->td_locks == 0, ("userret: Returning with %d locks held", td->td_locks)); KASSERT(td->td_rw_rlocks == 0, Modified: head/sys/kern/subr_turnstile.c ============================================================================== --- head/sys/kern/subr_turnstile.c Thu May 10 17:22:04 2018 (r333465) +++ head/sys/kern/subr_turnstile.c Thu May 10 17:55:24 2018 (r333466) @@ -566,6 +566,45 @@ turnstile_trywait(struct lock_object *lock) return (ts); } +struct thread * +turnstile_lock(struct turnstile *ts, struct lock_object **lockp) +{ + struct turnstile_chain *tc; + struct lock_object *lock; + + if ((lock = ts->ts_lockobj) == NULL) + return (NULL); + tc = TC_LOOKUP(lock); + mtx_lock_spin(&tc->tc_lock); + mtx_lock_spin(&ts->ts_lock); + if (__predict_false(lock != ts->ts_lockobj)) { + mtx_unlock_spin(&tc->tc_lock); + mtx_unlock_spin(&ts->ts_lock); + return (NULL); + } + *lockp = lock; + return (ts->ts_owner); +} + +void +turnstile_unlock(struct turnstile *ts, struct lock_object *lock) +{ + struct turnstile_chain *tc; + + mtx_assert(&ts->ts_lock, MA_OWNED); + mtx_unlock_spin(&ts->ts_lock); + if (ts == curthread->td_turnstile) + ts->ts_lockobj = NULL; + tc = TC_LOOKUP(lock); + mtx_unlock_spin(&tc->tc_lock); +} + +void +turnstile_assert(struct turnstile *ts) +{ + MPASS(ts->ts_lockobj == NULL); +} + void turnstile_cancel(struct turnstile *ts) { Added: head/sys/modules/epoch_test/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/epoch_test/Makefile Thu May 10 17:55:24 2018 (r333466) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/tests/epoch +KMOD= epoch_test +SRCS= epoch_test.c + +.include Added: head/sys/sys/epoch.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/sys/epoch.h Thu May 10 17:55:24 2018 (r333466) @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2018, Matthew Macy + * + * 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. Neither the name of Matthew Macy nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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 _SYS_EPOCH_H_ +#define _SYS_EPOCH_H_ + +struct epoch; +typedef struct epoch *epoch_t; + +struct epoch_context { + void *data[2]; +} __aligned(sizeof(void *)); + +typedef struct epoch_context *epoch_context_t; + +epoch_t epoch_alloc(void); +void epoch_free(epoch_t epoch); +void epoch_enter(epoch_t epoch); +void epoch_exit(epoch_t epoch); +void epoch_enter_nopreempt(epoch_t epoch); +void epoch_exit_nopreempt(epoch_t epoch); +void epoch_wait(epoch_t epoch); +void epoch_call(epoch_t epoch, epoch_context_t ctx, void (*callback) (epoch_context_t)); +int in_epoch(void); + +#endif Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Thu May 10 17:22:04 2018 (r333465) +++ head/sys/sys/proc.h Thu May 10 17:55:24 2018 (r333466) @@ -243,6 +243,7 @@ struct thread { /* Cleared during fork1() */ #define td_startzero td_flags + u_char td_epochnest; /* (k) Private thread epoch nest counter */ int td_flags; /* (t) TDF_* flags. */ int td_inhibitors; /* (t) Why can not run. */ int td_pflags; /* (k) Private thread (TDP_*) flags. */ @@ -355,6 +356,7 @@ struct thread { int td_lastcpu; /* (t) Last cpu we were on. */ int td_oncpu; /* (t) Which cpu we are on. */ void *td_lkpi_task; /* LinuxKPI task struct pointer */ + TAILQ_ENTRY(thread) td_epochq; /* (t) Epoch queue. */ }; struct thread0_storage { Modified: head/sys/sys/turnstile.h ============================================================================== --- head/sys/sys/turnstile.h Thu May 10 17:22:04 2018 (r333465) +++ head/sys/sys/turnstile.h Thu May 10 17:55:24 2018 (r333466) @@ -104,6 +104,8 @@ int turnstile_signal(struct turnstile *, int); struct turnstile *turnstile_trywait(struct lock_object *); void turnstile_unpend(struct turnstile *, int); void turnstile_wait(struct turnstile *, struct thread *, int); - +struct thread *turnstile_lock(struct turnstile *, struct lock_object **); +void turnstile_unlock(struct turnstile *, struct lock_object *); +void turnstile_assert(struct turnstile *); #endif /* _KERNEL */ #endif /* _SYS_TURNSTILE_H_ */ Added: head/sys/tests/epoch/epoch_test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/tests/epoch/epoch_test.c Thu May 10 17:55:24 2018 (r333466) @@ -0,0 +1,211 @@ +/*- + * Copyright (c) 2018, Matthew Macy + * + * 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. Neither the name of Matthew Macy nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +struct epoch_test_instance { + int threadid; +}; + +static int inited; +static int iterations; +#define ET_EXITING 0x1 +static volatile int state_flags; +static struct mtx state_mtx __aligned(CACHE_LINE_SIZE*2); +MTX_SYSINIT(state_mtx, &state_mtx, "epoch state mutex", MTX_DEF); +static struct mtx mutexA __aligned(CACHE_LINE_SIZE*2); +MTX_SYSINIT(mutexA, &mutexA, "epoch mutexA", MTX_DEF); +static struct mtx mutexB __aligned(CACHE_LINE_SIZE*2); +MTX_SYSINIT(mutexB, &mutexB, "epoch mutexB", MTX_DEF); +epoch_t test_epoch; + +static void +epoch_testcase1(struct epoch_test_instance *eti) +{ + int i, startticks; + struct mtx *mtxp; + + startticks = ticks; + i = 0; + if (eti->threadid & 0x1) + mtxp = &mutexA; + else + mtxp = &mutexB; + + while (i < iterations) { + epoch_enter(test_epoch); + mtx_lock(mtxp); + i++; + mtx_unlock(mtxp); + epoch_exit(test_epoch); + epoch_wait(test_epoch); + } + printf("test1: thread: %d took %d ticks to complete %d iterations\n", + eti->threadid, ticks - startticks, iterations); +} + +static void +epoch_testcase2(struct epoch_test_instance *eti) +{ + int i, startticks; + struct mtx *mtxp; + + startticks = ticks; + i = 0; + mtxp = &mutexA; + + while (i < iterations) { + epoch_enter(test_epoch); + mtx_lock(mtxp); + DELAY(1); + i++; + mtx_unlock(mtxp); + epoch_exit(test_epoch); + epoch_wait(test_epoch); + } + printf("test2: thread: %d took %d ticks to complete %d iterations\n", + eti->threadid, ticks - startticks, iterations); +} + +static void +testloop(void *arg) { + + mtx_lock(&state_mtx); + while ((state_flags & ET_EXITING) == 0) { + msleep(&state_mtx, &state_mtx, 0, "epoch start wait", 0); + if (state_flags & ET_EXITING) + goto out; + mtx_unlock(&state_mtx); + epoch_testcase2(arg); + pause("W", 500); + epoch_testcase1(arg); + mtx_lock(&state_mtx); + } + out: + mtx_unlock(&state_mtx); + kthread_exit(); +} + +static struct thread *testthreads[MAXCPU]; +static struct epoch_test_instance etilist[MAXCPU]; + +static int +test_modinit(void) +{ + int i, error; + + test_epoch = epoch_alloc(); + for (i = 0; i < mp_ncpus; i++) { + etilist[i].threadid = i; + error = kthread_add(testloop, &etilist[i], NULL, &testthreads[i], + 0, 0, "epoch_test_%d", i); + if (error) { + printf("%s: kthread_add(epoch_test): error %d", __func__, + error); + } + } + inited = 1; + return (0); +} + +static int +epochtest_execute(SYSCTL_HANDLER_ARGS) +{ + int error, v; + + if (inited == 0) + return (ENOENT); + + v = 0; + error = sysctl_handle_int(oidp, &v, 0, req); + if (error) + return (error); + if (req->newptr == NULL) + return (error); + if (v == 0) + return (0); + mtx_lock(&state_mtx); + iterations = v; + wakeup(&state_mtx); + mtx_unlock(&state_mtx); + + return (0); +} + +SYSCTL_NODE(_kern, OID_AUTO, epochtest, CTLFLAG_RW, 0, "Epoch Test Framework"); +SYSCTL_PROC(_kern_epochtest, OID_AUTO, runtest, (CTLTYPE_INT | CTLFLAG_RW), + 0, 0, epochtest_execute, "I", "Execute an epoch test"); + +static int +epoch_test_module_event_handler(module_t mod, int what, void *arg __unused) +{ + int err; + + switch (what) { + case MOD_LOAD: + if ((err = test_modinit()) != 0) + return (err); + break; + case MOD_UNLOAD: + mtx_lock(&state_mtx); + state_flags = ET_EXITING; + wakeup(&state_mtx); + mtx_unlock(&state_mtx); + /* yes --- gross */ + pause("epoch unload", 3*hz); + break; + default: + return (EOPNOTSUPP); + } + + return (0); +} + +static moduledata_t epoch_test_moduledata = { + "epoch_test", + epoch_test_module_event_handler, + NULL +}; + +MODULE_VERSION(epoch_test, 1); +DECLARE_MODULE(epoch_test, epoch_test_moduledata, SI_SUB_PSEUDO, SI_ORDER_ANY); From owner-svn-src-head@freebsd.org Thu May 10 17:57:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB38EFD1FA1; Thu, 10 May 2018 17:57:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6B3087684D; Thu, 10 May 2018 17:57:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BFB223C18; Thu, 10 May 2018 17:57:47 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4AHvlg4029043; Thu, 10 May 2018 17:57:47 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AHvlwq029042; Thu, 10 May 2018 17:57:47 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805101757.w4AHvlwq029042@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Thu, 10 May 2018 17:57:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333467 - head/contrib/bmake X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/contrib/bmake X-SVN-Commit-Revision: 333467 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 17:57:47 -0000 Author: mmacy Date: Thu May 10 17:57:46 2018 New Revision: 333467 URL: https://svnweb.freebsd.org/changeset/base/333467 Log: Revert accidentally commited local change to bmake to prevent debilitating excess system time from poor API usage. Approved by: sbruno@ Modified: head/contrib/bmake/job.c Modified: head/contrib/bmake/job.c ============================================================================== --- head/contrib/bmake/job.c Thu May 10 17:55:24 2018 (r333466) +++ head/contrib/bmake/job.c Thu May 10 17:57:46 2018 (r333467) @@ -2121,15 +2121,13 @@ Job_CatchOutput(void) { int nready; Job *job; - int i, pollToken; + int i; (void)fflush(stdout); - pollToken = 0; - /* The first fd in the list is the job token pipe */ do { - nready = poll(fds + 1 - pollToken, nfds - 1 + pollToken, POLL_MSEC); + nready = poll(fds + 1 - wantToken, nfds - 1 + wantToken, POLL_MSEC); } while (nready < 0 && errno == EINTR); if (nready < 0) From owner-svn-src-head@freebsd.org Thu May 10 19:13:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48679FD3C89; Thu, 10 May 2018 19:13:02 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F094E86EC5; Thu, 10 May 2018 19:13:01 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D11DE24967; Thu, 10 May 2018 19:13:01 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4AJD1WT069112; Thu, 10 May 2018 19:13:01 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AJD1vO069109; Thu, 10 May 2018 19:13:01 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805101913.w4AJD1vO069109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Thu, 10 May 2018 19:13:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333469 - in head/sys: conf net X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: conf net X-SVN-Commit-Revision: 333469 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 19:13:02 -0000 Author: mmacy Date: Thu May 10 19:13:00 2018 New Revision: 333469 URL: https://svnweb.freebsd.org/changeset/base/333469 Log: Allocate epoch for networking at startup Additionally add CK to include paths for modules Approved by: sbruno@ Modified: head/sys/conf/kmod.mk head/sys/net/if.c head/sys/net/if_var.h Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Thu May 10 18:53:39 2018 (r333468) +++ head/sys/conf/kmod.mk Thu May 10 19:13:00 2018 (r333469) @@ -122,7 +122,7 @@ CFLAGS+= -DHAVE_KERNEL_OPTION_HEADERS -include ${KERNB # Add -I paths for system headers. Individual module makefiles don't # need any -I paths for this. Similar defaults for .PATH can't be # set because there are no standard paths for non-headers. -CFLAGS+= -I. -I${SYSDIR} +CFLAGS+= -I. -I${SYSDIR} -I${SYSDIR}/contrib/ck/include CFLAGS.gcc+= -finline-limit=${INLINE_LIMIT} CFLAGS.gcc+= -fms-extensions Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Thu May 10 18:53:39 2018 (r333468) +++ head/sys/net/if.c Thu May 10 19:13:00 2018 (r333469) @@ -104,6 +104,7 @@ _Static_assert(sizeof(((struct ifreq *)0)->ifr_name) == offsetof(struct ifreq, ifr_ifru), "gap between ifr_name and ifr_ifru"); +epoch_t net_epoch; #ifdef COMPAT_FREEBSD32 #include #include @@ -903,6 +904,7 @@ if_attachdomain(void *dummy) { struct ifnet *ifp; + net_epoch = epoch_alloc(); TAILQ_FOREACH(ifp, &V_ifnet, if_link) if_attachdomain1(ifp); } Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Thu May 10 18:53:39 2018 (r333468) +++ head/sys/net/if_var.h Thu May 10 19:13:00 2018 (r333469) @@ -76,6 +76,8 @@ struct netdump_methods; #include /* ifqueue only? */ #include #include +#include +#include #endif /* _KERNEL */ #include #include /* XXX */ @@ -104,6 +106,7 @@ VNET_DECLARE(struct hhook_head *, ipsec_hhh_in[HHOOK_I VNET_DECLARE(struct hhook_head *, ipsec_hhh_out[HHOOK_IPSEC_COUNT]); #define V_ipsec_hhh_in VNET(ipsec_hhh_in) #define V_ipsec_hhh_out VNET(ipsec_hhh_out) +extern epoch_t net_epoch; #endif /* _KERNEL */ typedef enum { From owner-svn-src-head@freebsd.org Thu May 10 19:38:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C543FD46FD; Thu, 10 May 2018 19:38:29 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 7657A6A51F; Thu, 10 May 2018 19:38:28 +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 w4AJcG2J003766 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 10 May 2018 22:38:19 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua w4AJcG2J003766 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id w4AJcGb8003765; Thu, 10 May 2018 22:38:16 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 10 May 2018 22:38:16 +0300 From: Konstantin Belousov To: Bruce Evans Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 Message-ID: <20180510193816.GF6887@kib.kiev.ua> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> <20180511012309.V3949@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180511012309.V3949@besplex.bde.org> User-Agent: Mutt/1.9.5 (2018-04-13) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 19:38:29 -0000 On Fri, May 11, 2018 at 03:31:46AM +1000, Bruce Evans wrote: > On Thu, 10 May 2018, Konstantin Belousov wrote: > > > Log: > > Make fpusave() and fpurestore() on amd64 ifuncs. > > > > From now on, linking amd64 kernel requires either lld or newer ld.bfd. > > This breaks building with gcc: > > XX cc1: warnings being treated as errors > XX ../../../amd64/amd64/fpu.c:195: warning: 'ifunc' attribute directive ignored [-Wattributes] > XX ../../../amd64/amd64/fpu.c:195: warning: redundant redeclaration of 'fpusave' [-Wredundant-decls] > XX ./machine/fpu.h:64: warning: previous declaration of 'fpusave' was here > XX ../../../amd64/amd64/fpu.c:202: warning: 'ifunc' attribute directive ignored [-Wattributes] > XX ../../../amd64/amd64/fpu.c:202: warning: redundant redeclaration of 'fpurestore' [-Wredundant-decls] > XX ./machine/fpu.h:62: warning: previous declaration of 'fpurestore' was here Yes. Nothing unexpected. > > After building fpu.o with clang, linking doesn't reqire a newer ld, but > booting does -- after linking with an older ld, the boot panics with a > page fault near fork(). Yes. I noted this in the commit message. emaste will commit the check shortly which would prevent using inadequate linker for building kernel. > > I used the current as and ld with old gcc until early this year. This is > a bit fragile and regressed with lld. The regression was minor -- lld > expanded the bss in the data section, giving a few MB of bloat. Now the > bloat relative to old ld is only 29K in the text section. > > Debugging and presumably profiling is also broken: > > XX db> x/ia fpusususpend,20 > XX fpususpend: pushq %rbp > XX fpususpend+0x1: movq %rsp,%rbp > XX fpususpend+0x4: pushq %rbx > XX fpususpend+0x5: pushq %rax > XX fpususpend+0x6: movl %cr0,%ebx > XX fpususpend+0x9: clts > XX fpususpend+0xb: call 0xffffffff80299960 > XX fpususpend+0x10: movl %ebx,%cr0 > XX fpususpend+0x13: addq $0x8,%rsp > XX fpususpend+0x17: popq %rbx > XX fpususpend+0x18: popq %rbp > XX fpususpend+0x19: ret > XX db> x/ia 0xffffffff80299960 > XX 0xffffffff80299960: jmpl *0x56769a(%rip) > > ddb still doesn't understand pc-relative offsets. Decoding this with > "p/x 0xffffffff80299960+6" gives brwsection+0x1000. At this address > is a pointer to fpusave_xsave since the hardware supports xsave. > > This looks like a small or null pessimization. The branch in the old > version is probably faster. The following simple test on Haswell shows > that all reasonable versions have almost the same speed when cached: Yes, I already noted and mjg noted that ifuncs are directed through PLT. I remember that it was not the case when I did it the first time, but then both compiler and linker were different. I tried a quick experiment with adding -fvisibility=hidden to the kernel compilation, but it still leaves ifunc relocations on PLT (and PLT correctly consists only of ifuncs). I might look some more on it later. Anyway, there are more uses, and SMAP plus pmap applications of ifunc are more clear. I selected amd64/fpu.c for the initial commit to check toolchain in wild since this case is simplest and easy to diagnose if failing, I hope. > > XX #include > XX > XX #ifndef FUNC > XX #define FUNC cfoo > XX #endif > XX > XX int FUNC(void); > XX > XX int asmifunctargfoo(void); > XX int (*ifuncaddr)(void) = asmifunctargfoo; > XX int xsave = 1; > XX > XX int > XX cfoo(void) > XX { > XX return (xsave != 0 ? 2 : 1); > XX } > XX > XX __asm(".text; asmbranchfoo: cmpl $0,xsave(%rip); je 1f; movl $2,%eax; ret; 1: movl $1,%eax; ret"); > XX __asm(".text; asmnobranchfoo: cmpl $0,xsave(%rip); setne %al; movzbl %al,%eax; ret"); > XX __asm(".text; asmifuncfoo: jmp *ifuncaddr(%rip)"); > XX __asm(".text; asmifunctargfoo: movl $2,%eax; ret"); /* for xsave != 0 */ > XX > XX int > XX main(void) > XX { > XX volatile int i, res;; > XX > XX res = 0; > XX for (i = 0; i < 1000000000; i++) > XX res += FUNC(); > XX return (0); > XX } > > Compile this with gcc -o foo foo.c -O -FUNC={cfoo,asmbranchfoo,asmnobranchfoo, > asmifuncfoo). > > cfoo, asmnobranchfoo and asmifuncfoo take 1.71-1.72 seconds (~7 cycles at > 4.08 Ghz) on Haswell. Only asmnobranchfoo is slower -- it takes about > 1.78 seconds. That is a whole quarter of a cycle longer (7.25 cycles). > > The uncached case is hard to test. This loop runs in parallel with itself > as far as possible, so the main limit is the number of dependencies and > latency for branch prediction might not matter provided it is less than > the loop time of 7 cycles. In normal use, probably nothing stays cached > because it is rarely called. This also means that optimizations are in > the noise. > > I think the direct branch can be statically predicted better than the > indirect branch, and it is easy to arrange using excessive __predict_* > optimizations that it is right on some hardware. > > Bruce From owner-svn-src-head@freebsd.org Thu May 10 20:10:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E943AFD5642; Thu, 10 May 2018 20:10:03 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9D3FF730A5; Thu, 10 May 2018 20:10:03 +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 7E54125195; Thu, 10 May 2018 20:10:03 +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 w4AKA3QY094770; Thu, 10 May 2018 20:10:03 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AKA3Ww094768; Thu, 10 May 2018 20:10:03 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805102010.w4AKA3Ww094768@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 10 May 2018 20:10:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333470 - in head: share/mk sys/conf X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head: share/mk sys/conf X-SVN-Commit-Revision: 333470 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 20:10:04 -0000 Author: emaste Date: Thu May 10 20:10:02 2018 New Revision: 333470 URL: https://svnweb.freebsd.org/changeset/base/333470 Log: Error out on attempt to link amd64 kernel with old binutils linker As of r333461 we require ifunc support to link a working amd64 kernel. The default in-tree bootstrap linker is lld and it has the required support, as does any modern out-of-tree binutils linker. The in-tree GNU ld is from binutils 2.17.50 and it does not have ifunc support, so produce an error rather than a broken kernel. Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D15378 Modified: head/share/mk/bsd.linker.mk head/sys/conf/kern.pre.mk Modified: head/share/mk/bsd.linker.mk ============================================================================== --- head/share/mk/bsd.linker.mk Thu May 10 19:13:00 2018 (r333469) +++ head/share/mk/bsd.linker.mk Thu May 10 20:10:02 2018 (r333470) @@ -71,6 +71,7 @@ ${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \ ${X_}LINKER_FEATURES= .if ${${X_}LINKER_TYPE} != "bfd" || ${${X_}LINKER_VERSION} > 21750 ${X_}LINKER_FEATURES+= build-id +${X_}LINKER_FEATURES+= ifunc .endif .if ${${X_}LINKER_TYPE} != "lld" || ${${X_}LINKER_VERSION} >= 50000 ${X_}LINKER_FEATURES+= filter Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Thu May 10 19:13:00 2018 (r333469) +++ head/sys/conf/kern.pre.mk Thu May 10 20:10:02 2018 (r333470) @@ -121,6 +121,9 @@ LDFLAGS+= -Wl,--build-id=sha1 .endif .if ${MACHINE_CPUARCH} == "amd64" +.if defined(LINKER_FEATURES) && ${LINKER_FEATURES:Mifunc} == "" +.error amd64 kernel requires linker ifunc support +.endif LDFLAGS+= -Wl,-z max-page-size=2097152 -Wl,-z common-page-size=4096 .endif From owner-svn-src-head@freebsd.org Thu May 10 20:27:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70895FD6150; Thu, 10 May 2018 20:27:13 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0960B7696B; Thu, 10 May 2018 20:27:13 +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 DCDE2254BE; Thu, 10 May 2018 20:27:12 +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 w4AKRCfw005810; Thu, 10 May 2018 20:27:12 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AKRCKE005809; Thu, 10 May 2018 20:27:12 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805102027.w4AKRCKE005809@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 10 May 2018 20:27:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333471 - head/stand/common X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/stand/common X-SVN-Commit-Revision: 333471 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 20:27:13 -0000 Author: imp Date: Thu May 10 20:27:12 2018 New Revision: 333471 URL: https://svnweb.freebsd.org/changeset/base/333471 Log: Revert r333365 Even though we don't use it, it appears something else requires it to be != 0 to work. This breaks tftp boot in loader.efi, so revert until that can be sorted out. Modified: head/stand/common/dev_net.c Modified: head/stand/common/dev_net.c ============================================================================== --- head/stand/common/dev_net.c Thu May 10 20:10:02 2018 (r333470) +++ head/stand/common/dev_net.c Thu May 10 20:27:12 2018 (r333471) @@ -190,6 +190,7 @@ net_open(struct open_file *f, ...) } netdev_opens++; + f->f_devdata = &netdev_sock; return (error); } @@ -201,6 +202,9 @@ net_close(struct open_file *f) if (debug) printf("net_close: opens=%d\n", netdev_opens); #endif + + f->f_devdata = NULL; + return (0); } From owner-svn-src-head@freebsd.org Thu May 10 20:39:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F031FD6963; Thu, 10 May 2018 20:39:05 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 02754799D7; Thu, 10 May 2018 20:39:05 +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 D73102566F; Thu, 10 May 2018 20:39:04 +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 w4AKd4md010900; Thu, 10 May 2018 20:39:04 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4AKd4x7010899; Thu, 10 May 2018 20:39:04 GMT (envelope-from np@FreeBSD.org) Message-Id: <201805102039.w4AKd4x7010899@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 10 May 2018 20:39:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333472 - head/sys/dev/cxgbe X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: head/sys/dev/cxgbe X-SVN-Commit-Revision: 333472 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 20:39:05 -0000 Author: np Date: Thu May 10 20:39:04 2018 New Revision: 333472 URL: https://svnweb.freebsd.org/changeset/base/333472 Log: cxgbe(4): Add fields to support configuration of hardware NAT and swapmac (SMAC/DMAC switcheroo) from userspace. Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/t4_ioctl.h Modified: head/sys/dev/cxgbe/t4_ioctl.h ============================================================================== --- head/sys/dev/cxgbe/t4_ioctl.h Thu May 10 20:27:12 2018 (r333471) +++ head/sys/dev/cxgbe/t4_ioctl.h Thu May 10 20:39:04 2018 (r333472) @@ -160,12 +160,23 @@ enum { RSS subtable */ }; +enum { + NAT_MODE_NONE = 0, /* No NAT performed */ + NAT_MODE_DIP, /* NAT on Dst IP */ + NAT_MODE_DIP_DP, /* NAT on Dst IP, Dst Port */ + NAT_MODE_DIP_DP_SIP, /* NAT on Dst IP, Dst Port and Src IP */ + NAT_MODE_DIP_DP_SP, /* NAT on Dst IP, Dst Port and Src Port */ + NAT_MODE_SIP_SP, /* NAT on Src IP and Src Port */ + NAT_MODE_DIP_SIP_SP, /* NAT on Dst IP, Src IP and Src Port */ + NAT_MODE_ALL /* NAT on entire 4-tuple */ +}; + struct t4_filter_tuple { /* * These are always available. */ uint8_t sip[16]; /* source IP address (IPv4 in [3:0]) */ - uint8_t dip[16]; /* destinatin IP address (IPv4 in [3:0]) */ + uint8_t dip[16]; /* destination IP address (IPv4 in [3:0]) */ uint16_t sport; /* source port */ uint16_t dport; /* destination port */ @@ -210,10 +221,19 @@ struct t4_filter_specification { uint32_t eport:2; /* egress port to switch packet out */ uint32_t newdmac:1; /* rewrite destination MAC address */ uint32_t newsmac:1; /* rewrite source MAC address */ + uint32_t swapmac:1; /* swap SMAC/DMAC for loopback packet */ uint32_t newvlan:2; /* rewrite VLAN Tag */ + uint32_t nat_mode:3; /* NAT operation mode */ + uint32_t nat_flag_chk:1;/* check TCP flags before NAT'ing */ + uint32_t nat_seq_chk; /* sequence value to use for NAT check*/ uint8_t dmac[ETHER_ADDR_LEN]; /* new destination MAC address */ uint8_t smac[ETHER_ADDR_LEN]; /* new source MAC address */ uint16_t vlan; /* VLAN Tag to insert */ + + uint8_t nat_dip[16]; /* destination IP to use after NAT'ing */ + uint8_t nat_sip[16]; /* source IP to use after NAT'ing */ + uint16_t nat_dport; /* destination port to use after NAT'ing */ + uint16_t nat_sport; /* source port to use after NAT'ing */ /* * Filter rule value/mask pairs. From owner-svn-src-head@freebsd.org Thu May 10 21:46:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08D19FD8024; Thu, 10 May 2018 21:46:59 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A0E9468797; Thu, 10 May 2018 21:46:58 +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 83143261E7; Thu, 10 May 2018 21:46:58 +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 w4ALkw2I046723; Thu, 10 May 2018 21:46:58 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4ALkwib046722; Thu, 10 May 2018 21:46:58 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201805102146.w4ALkwib046722@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 10 May 2018 21:46:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333473 - head/release X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/release X-SVN-Commit-Revision: 333473 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 21:46:59 -0000 Author: gjb Date: Thu May 10 21:46:58 2018 New Revision: 333473 URL: https://svnweb.freebsd.org/changeset/base/333473 Log: Add a special GCE_LICENSE variable to Makefile.gce, which when set, will include license metadata in the resultant GCE image. GCE_LICENSE is unset by default, as it primarily pertains to images produced by the FreeBSD Project, but for downstream FreeBSD consumers, it can be set in the make(1) environment in the format of: --licenses="projects/PROJECT_ID/global/licenses/LICENSE_NAME" The "license" is not a license, per se, but required metadata that is required by the GCE marketplace. For the FreeBSD Project, the license name is simply 'freebsd', with the description of 'FreeBSD'. MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/release/Makefile.gce Modified: head/release/Makefile.gce ============================================================================== --- head/release/Makefile.gce Thu May 10 20:39:04 2018 (r333472) +++ head/release/Makefile.gce Thu May 10 21:46:58 2018 (r333473) @@ -17,6 +17,7 @@ GCE_UPLOAD_TGTS= gce-do-login CLEANFILES+= ${GCE_UPLOAD_TGTS} GCE_BUCKET?= +GCE_LICENSE?= .if !defined(GCE_FAMILY) || empty(GCE_FAMILY) GCE_FAMILY= ${TYPE:tl}-${REVISION:S,.,-,} @@ -70,7 +71,7 @@ gce-do-upload: /usr/local/bin/gsutil cp ${.OBJDIR}/${GCE_TARGET}.tar.gz \ gs://${GCE_BUCKET}/ /usr/local/bin/gcloud compute images create ${GCE_TARGET} \ - --family=${GCE_FAMILY}${GCE_FAMILY_SUFX} \ + --family=${GCE_FAMILY}${GCE_FAMILY_SUFX} ${GCE_LICENSE} \ --source-uri gs://${GCE_BUCKET}/${GCE_TARGET}.tar.gz touch ${.OBJDIR}/${.TARGET} From owner-svn-src-head@freebsd.org Thu May 10 22:19:37 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDCB4FD8E5D; Thu, 10 May 2018 22:19:36 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mail.made4.biz (mail.made4.biz [195.154.164.132]) (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 5B63470441; Thu, 10 May 2018 22:19:36 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=freebsd.org ; s=20170531; h=Content-Type:In-Reply-To:MIME-Version:Date:Message-ID: References:To:From:Subject:Sender:Reply-To:Cc:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=2ESDUSUgusIKhlvJOgjbqQhMzFwhH1e92ay7K9AaXzk=; b=VL5vVXmiBSU2rZ5YcyKB/qRf7Q U1MvayP1x/QT+LlRtcOEhbJVgsQuADL4hexP4RpFULVwRF3Q4y6/vPdNpJPOqr3AAqdYejwC7mkw+ q7jfwEdKSC1CbxCht+VjB7g3OZ0ijjzlOVwIeuEm4ISyFNLZrq176eC+Ss8ZKqfsi71k=; Received: from 2a02-8428-011a-ed01-346b-9034-356d-8437.rev.sfr.net ([2a02:8428:11a:ed01:346b:9034:356d:8437] helo=cassini.dumbbell.fr) by mail.made4.biz with esmtpa (Exim 4.90_1 (FreeBSD)) (envelope-from ) id 1fGtPj-000AmZ-GJ; Thu, 10 May 2018 23:47:51 +0200 Subject: Re: svn commit: r333464 - in head/sys/dev/vt: colors hw/vga From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201805101700.w4AH0XQ3098564@repo.freebsd.org> Openpgp: preference=signencrypt Autocrypt: addr=dumbbell@FreeBSD.org; prefer-encrypt=mutual; keydata= xsFNBFLVuqcBEADJ1gT22qIjHl/i5wD6n6Bx38BU3YxhoJKLFMtf10+hDgvttdVlRskqw5Kd hixPFbpsWPNhd09vR2He1M8+jUybsQwZulcE63+Mz7z7TVpBcepy8ejHFoQ5eT6cOfKosZZ4 5fEIZiZKSzMncIkyhUFpbpXl/MQRvCEBQEmg6NAjXmaClGcGB4J9deKrib3UvrClYGNuVPiZ 21YLrG/dOiaSWoh+367bqA8bLUIU4G3sgGCYlj9V4UGOu8belQKF1urxp87qSB3KFhVxJTCn n6+rBPYgFLfJ6UT39NwsFsfcdwq16hyIdr4lZOitTtH6WJBDRDlcxOoLcobDLEOg0xntAXEN 1X3sKhpyChmsLU0wGaCSZXTkP60UONkTAi1xCaOwq1/R/vBDWh7b/DKqg194ymZWzilEwE/x jQVT+R85EKbqW1faZrrAQWPnekw4Kl/Ozow6cgTGa96oYTmIO/nGRqRwMhyyuQMG9DUnGZvB Gy5Nub64/i2/TBWN/iiM8g+400Tkz7KUJd/6+fFKdza2i6/3vQJ+MAS3WNp7fFY4tsX1fM03 zqD2KfNE9Xt6GZEwpaUMjGkHNoi+by6CcA/saggrRZQHFp9aFde2ivCLq4n9yh2Zy9yFGklq dhyvI+iBSxt46pGlihNeTX79Yris30WR/BvLxR+z1Y6YEO6eZQARAQABzTtKZWFuLVPDqWJh c3RpZW4gUMOpZHJvbiA8amVhbi1zZWJhc3RpZW4ucGVkcm9uQGR1bWJiZWxsLmZyPsLBlwQT AQoAQQIbAwULCQgHAwUVCgkICwUWAwIBAAIeAQIXgAIZARYhBNcvS4RwmJJEIOYrk9k4+cho FpgcBQJYdnydBQkJYyj2AAoJENk4+choFpgcHzAP/3cbgHofr0qk7DF5Ch+3dIapxbLbbf44 af30RdML9lmFarN7nYxkTlJMSdd8d8FfkL9XuGBZWrd5zxToDJ71xcvW6zbj6DwEsuCis6Np DYX5+cjGRuyIw2/stwWGmAaqHIUAwVNFd3p8A/ZDiBbnZXMFOiJCbogMhQlFuOlgjk1DfrE+ 3rfkTt+obfIe9c7ExjkCM85K3Iud2XbmXMJ+fU0PbaH2FVRly71vH6+y/puB2SQvXQ/MKT1Y cUjKph8+koJRwLuzlmbh2UmrxVhKW/cFx5VU0xEBNY2/ysgxndKlO2Q97sedAEuVzfaAJIQx plDKhoDBWVBoleExoJyyD8QfI3ACvHKxorh+dd4wyMuU1OfWExqlEhkYa/v3S9xeWy6hyA7J wrZtuVgafJfJK3qTj98E1yXeuvAACECQtcNHuZP1TuscBztNXvzGGutPnq3MniHOITm2xdJl +zQyheAe+NbxByCtbtyp6Y+OxTXJCRoEb5eiyvhLNdhGZkyYMJ44kPosc8dOm9aNiapeZWYJ bksTKJSeXaJMP1BBDHc3kugTK+f0bkoiR/vqGNUqIGD4/7KArssRvOBHub1G1Erbkj7YoiGE iLx2mrGFM7n/JoZowlw5fvvJS+RB39u3SGiXzAIuNl2VK9tRcHSpvAzYstyQRCGYUdE6xLVy 6PZMzsFNBFLVuqcBEADNXJ6T/nh6ZuNjqULb/WVL2KUStzw9ynAazw+rz74GxH6me1oURIvV u2YKWXgTydSLNzo8bDLde0PT1si1CsKHIYiFIglmG6LEXfYj/P2xwC6IFQD4rsbtphXUkaLa 6npUgqbqhSK0NItuJGyv7ODfmkvCX1Unto+eamES3S8wil8u3Azs0qe/Q/gDGAEZTQM/Uq76 Vwp37mN4c1nGCKePZJtywtAg9vUD/Lx7uRWIjGTR95gTBY5AUeX5VGeBiomUgGnG7nI3HoiZ hWu/KdmYfSzjYYj9739uGCzdpSyR/fAL9NWa6XeVpNm4QUPJAn1Gr556l6yiE6m118RNjuI8 5+z9ABCCSAdI+XS8qyFGc+8q7phpSTNjmSrVT1qzyoeNfrdv1kgTBolSzyCnawu8MjzZ7llj DuUqiF3huIjLu5BVBq+6f0UEC0LpYohZ2KGoN1y5oSEcHN0pmXKFglYrqG4zF3SCOve+/1DK 63L8zun1PGbza/h/Cjicv7qHNhprjNEHr4Bvbq+ibKjpRClxOcLWLv5+lhc1owHSdKQp5ylC EmIxgt9Xu8SYV5pwIQam4MUV2zPN5j/Rj26F4QNNQWmXvbF2qQjutHb6YdnYdEYDjF4b86JT 1h2WBhInB6CL1EyV3dkcin4PkKpJQIEzhmIuD9NxcMxqBYZRsigU4wARAQABwsF8BBgBCgAm AhsMFiEE1y9LhHCYkkQg5iuT2Tj5yGgWmBwFAlh2fO0FCQljKUYACgkQ2Tj5yGgWmBySsQ/+ Iuxc9Q0R5BeR7o4JXbXGlCn6FqgugMfYvZ/fNxPJ5Sn9SiPOezho00jswjQC3w26SwPhGQ8L v+y4ZNWk7zsrS2Y+1m3r278rm8hr59fmbV/EjthfG4rtYlAeiWYxmg2xsFGqb9VQhj5i0Aze SbGnZ8namMU/+zfYNc4/LGGatG245lCvLMZcgGxEk2E1IVHh2g0nAC0nQ+xlmfvrNshLz4WY hrZS0t3Q4VDsL6bmywcdtFvURYKadyZ9H0UAkkg+H+QEwfH5HLhwai/5uZNfSllbQfJosy0Y KdzzMTjPYp21tKVvUIBmw5NREb5E23IzQZB1FR7nwBE2mx7O6BkVrpfo4mUqDZYuJsp9R9V5 EeMvFS9cbax8g9zCOps+rzLkz/Ab6NWdvydIZIqR+f/55o8VliNF5qANwLKcHfDdr8HljaCo tS3OnV9KdnW50/rORGvy1WXVvcKcqbPSArcjR2PZW/jPJo/2JVu9dfLT3x7U+E/jT2mYQtY2 99mVduvdNTbG30AeXfMAGikNXn9Sc3nFWTMUoiniLmYvNTwl0AhUdtXT52b+8c3hjBx2Mq9r D4PUVBn8wXqIMqQBPg633mFM9X3fAPQGvrJEpc3INv84f9DsNO65YQkS6uUEuQFMKwXIs9zl KCX0cFBuqlnaE/YLB+L4IJMyan8Jk9NDa0A= Organization: The FreeBSD Project Message-ID: <9c4475db-8d8e-40d3-7ec6-ca598b8f2374@FreeBSD.org> Date: Thu, 10 May 2018 23:47:47 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <201805101700.w4AH0XQ3098564@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="EotUrHJwQ2MLpQy7HLOMFKjIWcPIOyDoN" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 22:19:37 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --EotUrHJwQ2MLpQy7HLOMFKjIWcPIOyDoN Content-Type: multipart/mixed; boundary="yXYzOrI3oc7CtTEGSRoHChuPwHmxuJcF7"; protected-headers="v1" From: =?UTF-8?Q?Jean-S=c3=a9bastien_P=c3=a9dron?= To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <9c4475db-8d8e-40d3-7ec6-ca598b8f2374@FreeBSD.org> Subject: Re: svn commit: r333464 - in head/sys/dev/vt: colors hw/vga References: <201805101700.w4AH0XQ3098564@repo.freebsd.org> In-Reply-To: <201805101700.w4AH0XQ3098564@repo.freebsd.org> --yXYzOrI3oc7CtTEGSRoHChuPwHmxuJcF7 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 10.05.2018 19:00, Jean-S=C3=A9bastien P=C3=A9dron wrote: > Author: dumbbell > Date: Thu May 10 17:00:33 2018 > New Revision: 333464 > URL: https://svnweb.freebsd.org/changeset/base/333464 >=20 > Log: > vt(4): Use default VGA palette > =20 > ... > =20 > Reviewed by: eadler Oops, sorry, the patch was reviewed by emaste. --=20 Jean-S=C3=A9bastien P=C3=A9dron The FreeBSD Project --yXYzOrI3oc7CtTEGSRoHChuPwHmxuJcF7-- --EotUrHJwQ2MLpQy7HLOMFKjIWcPIOyDoN Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEZwh/0a6uDhLbxqbwOemXYaX9lMwFAlr0vgMACgkQOemXYaX9 lMz/gBAAokq9+B+FZN25atJdVB/p8x2J4O97qcLLXmpnqM1lwg4gPQAs9nj0lWY/ JRrF1Ld/RC6PMnVYsF/ZfKvjsNbDZxO1DAe3Y1Opz8IwAHp9QRwYH1Ffm9wB+96G +mtABGdPXGHoPmmRiy0bLSi/TowHmSR7iuBc4tDCsPUSzpwH6pGIYouVgBs/Hb3a UeNGWCRbb19GaeJ+pQbMB9GfpNvCevqPFWsQoWHScHJsqzYjaYRzAaP5QgjWUJiE rLdq3VWlW1IZLOXTFc4M+llr0AqzAVrUinAbPHvgblpqBDUIenKWV9WwX2Li7CkJ DBFZPd3SCdPVoiC3lbXrnc3xcBf62NMBLUczSae/tZzOzlANzvvNtHIp79xUTKvq 1mdwaOlQ2o9ZU0UoPqh626qnnSduZtGi14imUwp6zU/LJPrG2v5Q/W4FMQDQl+if fS6KFlO04FDjM+eyaMckWYXWLIUQOHCvcbwED/FRgKCOyhynqKwYl8iFbiT91cl8 2o1hnJUd5bSA+k/LmUZ1vM2WIxTSaJnvQgwWaAP+XW8H3oojjYtjlKCso/rtnMLq RQyGJsIQ6T/b+AsWTR8DPxKveXeUnfyi2ctz/RDphqZXuq8xlj6JX0UQ2T8+2tXD CWxmJ6CmEPFetton3WJP16yjnOxMB+7SW1YfyaK1Sn8N+ytw5YI= =LBUo -----END PGP SIGNATURE----- --EotUrHJwQ2MLpQy7HLOMFKjIWcPIOyDoN-- From owner-svn-src-head@freebsd.org Thu May 10 22:24:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 43DC1FD9107; Thu, 10 May 2018 22:24:04 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) (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 E555A70EDA; Thu, 10 May 2018 22:24:03 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from [192.168.200.3] (c-73-216-227-39.hsd1.va.comcast.net [73.216.227.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: gallatin) by duke.cs.duke.edu (Postfix) with ESMTPSA id DA40627000E3; Thu, 10 May 2018 18:24:02 -0400 (EDT) DMARC-Filter: OpenDMARC Filter v1.3.1 duke.cs.duke.edu DA40627000E3 Authentication-Results: duke.cs.duke.edu; dmarc=none header.from=cs.duke.edu DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cs.duke.edu; s=mail0816; t=1525991043; bh=9Jk4zu++MTafrSIOJNFGfnWWrCNSJsQb0WJgmENuLbY=; h=Subject:To:From:Date:From; b=RyNZSkQDpRMaQQgR0fVMMuZ9fRQSFG8ktfLb5yE5nOE22iBqw3yZUBhsuRGxrm3v4 9zbqEd4OeN4fxtywkKQrWTPdMKTqzJ6nI0bBnkVtWc+Hx7wiPN7U+AAjmm5w4EGE2t q5Hu5vDfy5jSlTDBqL0bJB5IaPui83q7RR2UKdBUHO2p8zNRJ2iWDDGMm9AJMEyRUJ v8pjhSmgmNmjLUNKUeUc/QKHxSZr1yUlJc5sDjhwoa0B6FJod5AROJ5/XFKLxLZcQc bbgVo0VPm8Rgmx2PG00d5N0JzVS7mxjpWYeO5PgM5UxQMRYFdSvvnjcYeyqeIOXXey niYnqVXGuuxUg== Subject: Re: svn commit: r333470 - in head: share/mk sys/conf To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Konstantin Belousov References: <201805102010.w4AKA3Ww094768@repo.freebsd.org> From: Andrew Gallatin Message-ID: <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> Date: Thu, 10 May 2018 18:24:02 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <201805102010.w4AKA3Ww094768@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 22:24:04 -0000 On 05/10/18 16:10, Ed Maste wrote: > Author: emaste > Date: Thu May 10 20:10:02 2018 > New Revision: 333470 > URL: https://urldefense.proofpoint.com/v2/url?u=https-3A__svnweb.freebsd.org_changeset_base_333470&d=DwIDaQ&c=imBPVzF25OnBgGmVOlcsiEgHoG1i6YHLR0Sj_gZ4adc&r=Ed-falealxPeqc22ehgAUCLh8zlZbibZLSMWJeZro4A&m=rex4ilVMckTDXNGV-XhKnQ02pSuAJ0JPojwMYmZ6d9U&s=OfKJ8mXeldmYLNTK2NE1g9kYsBPeucarY_F6p-A3e0g&e= > > Log: > Error out on attempt to link amd64 kernel with old binutils linker > I lost the better part of a day due to the issue of the build using the wrong linker. Rather than erroring out, we please just use the appropriate linker? My workflow is that of the typical dinosaur: config -g GENERIC cd ../compile/GENERIC make cleandepend && make depend && make -j64 Thanks, Drew From owner-svn-src-head@freebsd.org Thu May 10 23:14:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78282FDA51E; Thu, 10 May 2018 23:14:39 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-it0-x22b.google.com (mail-it0-x22b.google.com [IPv6:2607:f8b0:4001:c0b::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AA94E7E484; Thu, 10 May 2018 23:14:37 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-it0-x22b.google.com with SMTP id c3-v6so8604itj.4; Thu, 10 May 2018 16:14:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=RH2fPlRoRVUFi3mqFn7ol0RoC5Dfes+7Hi3Ey5SUHAA=; b=hmN1n/5wXCEHa5OS6f3jwEaVHapJYGN1VtjR2GbH7eD2YGUTGdBXje4/O8Cmfp/3dV RM/8cY3Tu8v+yNfaZfkB91FZQrzWvdqpI9oj9SHFYkL7WX56XITjLsCJUkDTbwflw1f0 HpwxmSCemfbhTTcDaZvgR8Yax0PST9PXLlPw6CzsVJU/by7tvitP8a9xC0U3Q0gYL8L3 LJxIo/dTXe7airP8P5N+pVeViacKZj2vd5JZau3rQ9BfcG/bf4CaRUVhxCYLGzRLhrqw fXpNoBbERCw5Q7v5CK0TWwDA8Uazo14IUsS+9PtbiTswIAOFvY8pR/DD2UUaF79OYz9M 1eSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=RH2fPlRoRVUFi3mqFn7ol0RoC5Dfes+7Hi3Ey5SUHAA=; b=mwl5j5uaBxDVKBXKkeRLHREWm1K2Ljd9E9yXQEjhdPw8IOnAWuo7dQS+SQDegGWvvb rRB0t886FWbPL2Oo64cIDQhStZIVFyrd75Ug0IYy7WQsgHtGT6AMv++HobGstiJSyUc1 1x8u8U/Di9prwatkpYvCKwA32NNxC9Qq/EIV+c1QiepS7lCePcnWXgx3TMV+A8MrjEaW OWMqKeJcn3XY4Bekv2fkF3tcotRUggCgce+jP2xlXPplLM+S0iYDrylhYPdbt+znvwMV LiO/+qwy0sEJ72CNCRhs95L209WBbAaA1tA/txSC6oJ9bHCM6bTTiN1X96th1e31pKAE zb4Q== X-Gm-Message-State: ALKqPwdbkw5v3Ue3Mp+e3zHCHuAkq2m4HRVXDoS0n8cDnSVzLPmV26ix WrazohwaU3uqsOPbsYRhxkXmHNIcnqzhQD9rI81RqA== X-Google-Smtp-Source: AB8JxZoD8MksnNFVx7BFwaNULKb61skJ7fIFkP3pJ9ureMeoOgeYb/Fr7HMXOwD9XcGSlduRrt75yOS2WDu0yhJIW5k= X-Received: by 2002:a24:4293:: with SMTP id i141-v6mr971149itb.54.1525994076511; Thu, 10 May 2018 16:14:36 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.130.167 with HTTP; Thu, 10 May 2018 16:14:16 -0700 (PDT) In-Reply-To: <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> References: <201805102010.w4AKA3Ww094768@repo.freebsd.org> <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> From: Ed Maste Date: Thu, 10 May 2018 19:14:16 -0400 X-Google-Sender-Auth: 1NYFhxCsLiFuk_l-NxF4Q87yy0Y Message-ID: Subject: Re: svn commit: r333470 - in head: share/mk sys/conf To: Andrew Gallatin Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org, Konstantin Belousov Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 23:14:39 -0000 On 10 May 2018 at 18:24, Andrew Gallatin wrote: > Rather than erroring out, we please just use the appropriate linker? That's my goal, but it's a bit of an involved change and will take some time to make sure we don't introduce new corner cases. I'm sorry that I didn't catch this before the first ifunc use went in -- lld has been the default bootstrap linker (via buildworld or kernel-toolchain) since mid-Jan and this problem slipped my mind. I added the error in the meantime to avoid the silently broken kernel case that you unfortunately encountered. The low-friction method of getting past this in the interim is to just use ld.lld as the system linker: # ln -fs ld.lld /usr/bin/ld I'm just waiting on an update to the lang/ghc port and another exp-run before that becomes the default. From owner-svn-src-head@freebsd.org Fri May 11 00:00:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5FF6CFABEBF; Fri, 11 May 2018 00:00:35 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) (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 0B2D06ABB7; Fri, 11 May 2018 00:00:35 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from [192.168.200.3] (c-73-216-227-39.hsd1.va.comcast.net [73.216.227.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: gallatin) by duke.cs.duke.edu (Postfix) with ESMTPSA id 12A642700136; Thu, 10 May 2018 20:00:34 -0400 (EDT) DMARC-Filter: OpenDMARC Filter v1.3.1 duke.cs.duke.edu 12A642700136 Authentication-Results: duke.cs.duke.edu; dmarc=none header.from=cs.duke.edu DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cs.duke.edu; s=mail0816; t=1525996834; bh=L3BbdUr/DTsC7Ckkp2znfUAkkc55iwxMxsqB3o0hP9o=; h=Subject:To:From:Date:From; b=k247aBpNdkKnSbSNozTyP3yK5qwhvWtSn24hz5PyPgstZ6J+GccHHbrRYDt/sL+mn mRDQM0Lu+stwkDzbfNB+PNgnNT24J/KN6cUmoyiinfu53a4x1MMwHwgh+aGlvYpfV7 BcyJ8ItgCNbPO/Sbyv25iiEmZRawdUYz8ttGmnOgPZieky5+48stfgyrW02kom/92O 5myjgWUvZt9TZGijxT5VJm7E+L1SYckNE+nViM92VeDWtOvqKGBD8M+1lhehjBpOP/ vcfYNgd+yiLERpAgMwxMX+fsw679SFkhD4MAVF7mK4IleK+OscxeAk44wkSRRQUzbW 31vqMpY4GdmeQ== Subject: Re: svn commit: r333470 - in head: share/mk sys/conf To: Ed Maste Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org, Konstantin Belousov References: <201805102010.w4AKA3Ww094768@repo.freebsd.org> <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> From: Andrew Gallatin Message-ID: <31075786-70ed-10b9-fbc5-127996f87b1b@cs.duke.edu> Date: Thu, 10 May 2018 20:00:33 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 00:00:35 -0000 On 05/10/18 19:14, Ed Maste wrote: > On 10 May 2018 at 18:24, Andrew Gallatin wrote: >> Rather than erroring out, we please just use the appropriate linker? > > That's my goal, but it's a bit of an involved change and will take > some time to make sure we don't introduce new corner cases. I'm sorry > that I didn't catch this before the first ifunc use went in -- lld has > been the default bootstrap linker (via buildworld or kernel-toolchain) > since mid-Jan and this problem slipped my mind. I added the error in > the meantime to avoid the silently broken kernel case that you > unfortunately encountered. > > The low-friction method of getting past this in the interim is to just > use ld.lld as the system linker: > # ln -fs ld.lld /usr/bin/ld > I'm just waiting on an update to the lang/ghc port and another exp-run > before that becomes the default. > Thanks! Unfortunately, it looks like this method will get blown away by an installworld: <7:57pm>thing1/gallatin:src>ls -li /usr/bin/ld* 12038400 lrwxr-xr-x 1 root wheel 15 May 10 19:21 /usr/bin/ld@ -> /usr/bin/ld.lld 32386537 -r-xr-xr-x 1 root wheel 1911384 May 10 09:13 /usr/bin/ld.bfd* 32387059 -r-xr-xr-x 1 root wheel 40449288 May 10 09:13 /usr/bin/ld.lld* 32386878 -r-xr-xr-x 1 root wheel 19352 May 10 09:13 /usr/bin/ldd* 32387816 -r-xr-xr-x 1 root wheel 26872 May 10 09:14 /usr/bin/ldd32* <7:57pm>thing1/gallatin:src>sudo make -j32 installworld >& log <7:58pm>thing1/gallatin:src>!ls ls -li /usr/bin/ld* 32347218 -r-xr-xr-x 2 root wheel 1911384 May 10 19:58 /usr/bin/ld* 32347218 -r-xr-xr-x 2 root wheel 1911384 May 10 19:58 /usr/bin/ld.bfd* 32348085 -r-xr-xr-x 1 root wheel 40449288 May 10 19:58 /usr/bin/ld.lld* 32347538 -r-xr-xr-x 1 root wheel 19352 May 10 19:58 /usr/bin/ldd* 32348365 -r-xr-xr-x 1 root wheel 26872 May 10 19:58 /usr/bin/ldd32* Would it make sense to just set LD=ld.lld in my and root's .cshrc? Thanks, Drew From owner-svn-src-head@freebsd.org Fri May 11 00:01:45 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26273FAC032; Fri, 11 May 2018 00:01:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C66C76AF81; Fri, 11 May 2018 00:01:44 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A7EA527773; Fri, 11 May 2018 00:01:44 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B01i4Z019436; Fri, 11 May 2018 00:01:44 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B01hqD019430; Fri, 11 May 2018 00:01:43 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805110001.w4B01hqD019430@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 11 May 2018 00:01:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333475 - in head: lib/libkvm lib/libmemstat sys/sys usr.bin/systat usr.sbin/route6d usr.sbin/rtadvd X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: lib/libkvm lib/libmemstat sys/sys usr.bin/systat usr.sbin/route6d usr.sbin/rtadvd X-SVN-Commit-Revision: 333475 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 00:01:45 -0000 Author: des Date: Fri May 11 00:01:43 2018 New Revision: 333475 URL: https://svnweb.freebsd.org/changeset/base/333475 Log: Reduce pollution. While includes unconditionally, it is only actually used in code which is conditional on _KERNEL. Make the #include itself conditional as well, and fix userland code that uses for other purposes but relied on to bring it in. MFC after: 1 week Modified: head/lib/libkvm/kvm_getswapinfo.c head/lib/libmemstat/memstat.c head/sys/sys/sysctl.h head/usr.bin/systat/ifstat.c head/usr.bin/systat/tcp.c head/usr.sbin/route6d/route6d.c head/usr.sbin/rtadvd/rrenum.c Modified: head/lib/libkvm/kvm_getswapinfo.c ============================================================================== --- head/lib/libkvm/kvm_getswapinfo.c Thu May 10 23:58:33 2018 (r333474) +++ head/lib/libkvm/kvm_getswapinfo.c Fri May 11 00:01:43 2018 (r333475) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/lib/libmemstat/memstat.c ============================================================================== --- head/lib/libmemstat/memstat.c Thu May 10 23:58:33 2018 (r333474) +++ head/lib/libmemstat/memstat.c Fri May 11 00:01:43 2018 (r333475) @@ -29,6 +29,7 @@ */ #include +#include #include #include Modified: head/sys/sys/sysctl.h ============================================================================== --- head/sys/sys/sysctl.h Thu May 10 23:58:33 2018 (r333474) +++ head/sys/sys/sysctl.h Fri May 11 00:01:43 2018 (r333475) @@ -38,7 +38,9 @@ #ifndef _SYS_SYSCTL_H_ #define _SYS_SYSCTL_H_ +#ifdef _KERNEL #include +#endif struct thread; /* Modified: head/usr.bin/systat/ifstat.c ============================================================================== --- head/usr.bin/systat/ifstat.c Thu May 10 23:58:33 2018 (r333474) +++ head/usr.bin/systat/ifstat.c Fri May 11 00:01:43 2018 (r333475) @@ -32,6 +32,7 @@ #include #include +#include #include #include #include Modified: head/usr.bin/systat/tcp.c ============================================================================== --- head/usr.bin/systat/tcp.c Thu May 10 23:58:33 2018 (r333474) +++ head/usr.bin/systat/tcp.c Fri May 11 00:01:43 2018 (r333475) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/usr.sbin/route6d/route6d.c ============================================================================== --- head/usr.sbin/route6d/route6d.c Thu May 10 23:58:33 2018 (r333474) +++ head/usr.sbin/route6d/route6d.c Fri May 11 00:01:43 2018 (r333475) @@ -39,6 +39,7 @@ static const char _rcsid[] = "$KAME: route6d.c,v 1.104 #include #include #include +#include #include #include #include Modified: head/usr.sbin/rtadvd/rrenum.c ============================================================================== --- head/usr.sbin/rtadvd/rrenum.c Thu May 10 23:58:33 2018 (r333474) +++ head/usr.sbin/rtadvd/rrenum.c Fri May 11 00:01:43 2018 (r333475) @@ -34,6 +34,7 @@ #include #include #include +#include #include #include From owner-svn-src-head@freebsd.org Fri May 11 00:11:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C613DFAC4C7; Fri, 11 May 2018 00:11:24 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x234.google.com (mail-io0-x234.google.com [IPv6:2607:f8b0:4001:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 56D0A6B946; Fri, 11 May 2018 00:11:24 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x234.google.com with SMTP id f21-v6so5071366iob.13; Thu, 10 May 2018 17:11:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=VNSn4XImX2lkGKJ77h9HLo9l4NjLgmMyVi1aw+8fyco=; b=qJu4BD/XNcPcCI0p8AlNOU9+AveYIMvQP1W/8XWncvRgH9+/Sma4KJbz+IZDHexwE0 HPK8lrUepL03NMKdiPPkjpDLljdASnywpAhJNyg+JvyD5wkTHDUfDAFf+WTwXEqKOSEy wpJCOQ5ypvFheq+gF2ZFASFv0DI+BipNp6KDvUT5DR11l2qXiurtsWYjz5tOAceTjzWm ETCTN0dnwGm4hpUWOWStwULsr12382jeKp6tbaozji58e95gMED4fqx9woi3oKvh6f4H riNKBJ9T7Y/PeaqHI4syTva58bFex3QRENRikNRDNhf5tPpKFi92AylZPyaAdDQNIfqx +M2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=VNSn4XImX2lkGKJ77h9HLo9l4NjLgmMyVi1aw+8fyco=; b=GTaPdpCMO1IIArc3lNuCn70kRbmqyMytWWaHpzG8455BmiNDQv5TBvZlPXiABM/I9F ghHkcfymFXFFqISkkGJcc3o2hCU8fbK+AOTs487J5SRPnzS42D84Tdp++4kMoH0aJ5NO J2W45s29ICr6DG9a/APVO910XLYEB/MI12xBLPwnUISulJIL2O56maQr0bjYc5jPICZ7 1Wt/XQQfvX3gkn+ETtOooUKGM+aNmeSSt3IGVOhBKlknQ6zu3y6DlD5ymnaaU10r9Pm4 CHJVzvqnuramDGmfMG6yf6ZRyGrVvrQlWCOjYvtOuQBPf0RVYaFWjqS2AvxTqltWRVT3 t33w== X-Gm-Message-State: ALKqPwchQ28vg+fl37+XRu8p9X0yFi4gvQPiWotZmRuzpRUUFsJCPNjk Xk16tnjAsscPkVR0uKS7vvVjJ09+/OA5gFFYUkbCqA== X-Google-Smtp-Source: AB8JxZoz3Vo0mxJp1n0b24NlnD7pXCK+WxWnl+t4M6B8c4rVaq9eEsGMjNhliq7a6K6uyhvW6aszCYNqr+5+Z+8K/cY= X-Received: by 2002:a6b:2fe8:: with SMTP id v101-v6mr3808123iov.239.1525997483676; Thu, 10 May 2018 17:11:23 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.130.167 with HTTP; Thu, 10 May 2018 17:11:02 -0700 (PDT) In-Reply-To: <31075786-70ed-10b9-fbc5-127996f87b1b@cs.duke.edu> References: <201805102010.w4AKA3Ww094768@repo.freebsd.org> <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> <31075786-70ed-10b9-fbc5-127996f87b1b@cs.duke.edu> From: Ed Maste Date: Thu, 10 May 2018 20:11:02 -0400 X-Google-Sender-Auth: qhd6R5OyFkDjEr31O3781ET187U Message-ID: Subject: Re: svn commit: r333470 - in head: share/mk sys/conf To: Andrew Gallatin Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org, Konstantin Belousov Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 00:11:25 -0000 On 10 May 2018 at 20:00, Andrew Gallatin wrote: > > Unfortunately, it looks like this method will get blown away by an > installworld: Ah. You can set WITH_LLD_IS_LD in /etc/src.conf and installworld will install ld as a symlink to ld.lld, > Would it make sense to just set LD=ld.lld in my and root's .cshrc? but I think this should work too. From owner-svn-src-head@freebsd.org Fri May 11 00:13:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F35CBFAC6E9; Fri, 11 May 2018 00:13:21 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) (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 958426CC96; Fri, 11 May 2018 00:13:21 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from [192.168.200.3] (c-73-216-227-39.hsd1.va.comcast.net [73.216.227.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: gallatin) by duke.cs.duke.edu (Postfix) with ESMTPSA id B1ECF2700052; Thu, 10 May 2018 20:13:20 -0400 (EDT) DMARC-Filter: OpenDMARC Filter v1.3.1 duke.cs.duke.edu B1ECF2700052 Authentication-Results: duke.cs.duke.edu; dmarc=none header.from=cs.duke.edu DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cs.duke.edu; s=mail0816; t=1525997600; bh=i/HUDKozWsyXzVli+RKPp08lK2Fo5ufiaOkSfyzBWjU=; h=Subject:To:From:Date:From; b=U5UA6OPmiuIrjrTC5bBCBsHhWNqFtYVN8rxCxySiPEDFwITH+0+w8na+R9F967Vs/ rhkVruAINRHXLm0XbHOXXnxmnISTfuQ/Ouldvgb802E9STOc4iUCraA5PJeFdzRhLs nvekoodfngaVeAvF+9tqXOvAzGIkS1LRAE2Slgm8u07zSuE9xzXsVUcYlFtzTpNm/A SlNukttVgxI57s9JYRzS2WDMaDREwcM4aNLKWko40gpNTjWkJJ7GxN/KZITCxGf5ta ANYaDmJyOcnUkZy6Bf4y3PIh72ta7qowgJmtE9OOd8hnlk527ji2xkJdMu6chBDf9x bvgqxUZa0f6AQ== Subject: Re: svn commit: r333470 - in head: share/mk sys/conf To: Ed Maste Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org, Konstantin Belousov References: <201805102010.w4AKA3Ww094768@repo.freebsd.org> <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> <31075786-70ed-10b9-fbc5-127996f87b1b@cs.duke.edu> From: Andrew Gallatin Message-ID: <58b76dcb-b081-869b-8e05-dc0c4e7aa3be@cs.duke.edu> Date: Thu, 10 May 2018 20:13:20 -0400 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 00:13:22 -0000 On 05/10/18 20:11, Ed Maste wrote: > On 10 May 2018 at 20:00, Andrew Gallatin wrote: >> >> Unfortunately, it looks like this method will get blown away by an >> installworld: > > Ah. You can set WITH_LLD_IS_LD in /etc/src.conf and installworld will > install ld as a symlink to ld.lld, > Super! That's the answer that I was looking for, and what should get me back to building kernels like it's 1999 :) Thanks, Drew From owner-svn-src-head@freebsd.org Fri May 11 00:19:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF704FAC8AC; Fri, 11 May 2018 00:19:49 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 922616E129; Fri, 11 May 2018 00:19:49 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 72A4927A66; Fri, 11 May 2018 00:19:49 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B0JnLB026501; Fri, 11 May 2018 00:19:49 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B0Jn0X026500; Fri, 11 May 2018 00:19:49 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805110019.w4B0Jn0X026500@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 11 May 2018 00:19:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333476 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333476 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 00:19:50 -0000 Author: des Date: Fri May 11 00:19:49 2018 New Revision: 333476 URL: https://svnweb.freebsd.org/changeset/base/333476 Log: Slight cleanup of interface event logging. Make if_printf() use vlog() instead of vprintf(). This means it can no longer return the number of characters printed, as it used to, but every single call to if_printf() in the entire kernel ignores the return value anyway; just return 0 so we don't have to change the prototype. Consistently use if_printf() throughout sys/net/if.c, instead of a mixture of if_printf() and log(). In ifa_maintain_loopback_route(), don't needlessly log an error if we either failed to add a route because it already existed or failed to remove one because it did not. We still return an error code, though. MFC after: 1 week Modified: head/sys/net/if.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Fri May 11 00:01:43 2018 (r333475) +++ head/sys/net/if.c Fri May 11 00:19:49 2018 (r333476) @@ -1832,9 +1832,10 @@ ifa_maintain_loopback_route(int cmd, const char *otype error = rtrequest1_fib(cmd, &info, NULL, ifp->if_fib); - if (error != 0) - log(LOG_DEBUG, "%s: %s failed for interface %s: %u\n", - __func__, otype, if_name(ifp), error); + if (error != 0 && + !(cmd == RTM_ADD && error == EEXIST) && + !(cmd == RTM_DELETE && error == ENOENT)) + if_printf(ifp, "%s failed: %d\n", otype, error); return (error); } @@ -2328,7 +2329,7 @@ do_link_state_change(void *arg, int pending) if (pending > 1) if_printf(ifp, "%d link states coalesced\n", pending); if (log_link_state_change) - log(LOG_NOTICE, "%s: link state changed to %s\n", ifp->if_xname, + if_printf(ifp, "link state changed to %s\n", (link_state == LINK_STATE_UP) ? "UP" : "DOWN" ); EVENTHANDLER_INVOKE(ifnet_link_event, ifp, link_state); CURVNET_RESTORE(); @@ -2631,8 +2632,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, else if (ifp->if_pcount == 0) ifp->if_flags &= ~IFF_PROMISC; if (log_promisc_mode_change) - log(LOG_INFO, "%s: permanently promiscuous mode %s\n", - ifp->if_xname, + if_printf(ifp, "permanently promiscuous mode %s\n", ((new_flags & IFF_PPROMISC) ? "enabled" : "disabled")); } @@ -2695,8 +2695,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, rt_ifannouncemsg(ifp, IFAN_DEPARTURE); EVENTHANDLER_INVOKE(ifnet_departure_event, ifp); - log(LOG_INFO, "%s: changing name to '%s'\n", - ifp->if_xname, new_name); + if_printf(ifp, "changing name to '%s'\n", new_name); IF_ADDR_WLOCK(ifp); strlcpy(ifp->if_xname, new_name, sizeof(ifp->if_xname)); @@ -3199,8 +3198,7 @@ ifpromisc(struct ifnet *ifp, int pswitch) /* If promiscuous mode status has changed, log a message */ if (error == 0 && ((ifp->if_flags ^ oldflags) & IFF_PROMISC) && log_promisc_mode_change) - log(LOG_INFO, "%s: promiscuous mode %s\n", - ifp->if_xname, + if_printf(ifp, "promiscuous mode %s\n", (ifp->if_flags & IFF_PROMISC) ? "enabled" : "disabled"); return (error); } @@ -3905,16 +3903,16 @@ if_initname(struct ifnet *ifp, const char *name, int u } int -if_printf(struct ifnet *ifp, const char * fmt, ...) +if_printf(struct ifnet *ifp, const char *fmt, ...) { + char if_fmt[256]; va_list ap; - int retval; - retval = printf("%s: ", ifp->if_xname); + snprintf(if_fmt, sizeof(if_fmt), "%s: %s", ifp->if_xname, fmt); va_start(ap, fmt); - retval += vprintf(fmt, ap); + vlog(LOG_INFO, if_fmt, ap); va_end(ap); - return (retval); + return (0); } void From owner-svn-src-head@freebsd.org Fri May 11 00:32:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B7F8FACF7C; Fri, 11 May 2018 00:32:35 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E193A70FC9; Fri, 11 May 2018 00:32:34 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C273127D91; Fri, 11 May 2018 00:32:34 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B0WYSE036020; Fri, 11 May 2018 00:32:34 GMT (envelope-from jasone@FreeBSD.org) Received: (from jasone@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B0WWbf036006; Fri, 11 May 2018 00:32:32 GMT (envelope-from jasone@FreeBSD.org) Message-Id: <201805110032.w4B0WWbf036006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jasone set sender to jasone@FreeBSD.org using -f From: Jason Evans Date: Fri, 11 May 2018 00:32:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333477 - in head: contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/include/jemalloc contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src lib/libc/stdlib/jemalloc X-SVN-Group: head X-SVN-Commit-Author: jasone X-SVN-Commit-Paths: in head: contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/include/jemalloc contrib/jemalloc/include/jemalloc/internal contrib/jemalloc/src lib/libc/stdlib/jemalloc X-SVN-Commit-Revision: 333477 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 00:32:35 -0000 Author: jasone Date: Fri May 11 00:32:31 2018 New Revision: 333477 URL: https://svnweb.freebsd.org/changeset/base/333477 Log: Update jemalloc to version 5.1.0. Added: head/contrib/jemalloc/include/jemalloc/internal/arena_stats.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/bin.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/bin_stats.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/cache_bin.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/div.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/emitter.h (contents, props changed) head/contrib/jemalloc/include/jemalloc/internal/log.h (contents, props changed) head/contrib/jemalloc/src/bin.c (contents, props changed) head/contrib/jemalloc/src/div.c (contents, props changed) head/contrib/jemalloc/src/log.c (contents, props changed) Deleted: head/contrib/jemalloc/include/jemalloc/internal/stats_tsd.h Modified: head/contrib/jemalloc/COPYING head/contrib/jemalloc/ChangeLog head/contrib/jemalloc/FREEBSD-Xlist head/contrib/jemalloc/FREEBSD-diffs head/contrib/jemalloc/VERSION head/contrib/jemalloc/doc/jemalloc.3 head/contrib/jemalloc/include/jemalloc/internal/arena_externs.h head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_a.h head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_b.h head/contrib/jemalloc/include/jemalloc/internal/arena_structs_b.h head/contrib/jemalloc/include/jemalloc/internal/arena_types.h head/contrib/jemalloc/include/jemalloc/internal/background_thread_externs.h head/contrib/jemalloc/include/jemalloc/internal/background_thread_structs.h head/contrib/jemalloc/include/jemalloc/internal/base_externs.h head/contrib/jemalloc/include/jemalloc/internal/base_inlines.h head/contrib/jemalloc/include/jemalloc/internal/base_structs.h head/contrib/jemalloc/include/jemalloc/internal/base_types.h head/contrib/jemalloc/include/jemalloc/internal/ctl.h head/contrib/jemalloc/include/jemalloc/internal/extent_externs.h head/contrib/jemalloc/include/jemalloc/internal/extent_inlines.h head/contrib/jemalloc/include/jemalloc/internal/extent_structs.h head/contrib/jemalloc/include/jemalloc/internal/extent_types.h head/contrib/jemalloc/include/jemalloc/internal/hash.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_decls.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_defs.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_a.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_c.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_macros.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_types.h head/contrib/jemalloc/include/jemalloc/internal/jemalloc_preamble.h head/contrib/jemalloc/include/jemalloc/internal/malloc_io.h head/contrib/jemalloc/include/jemalloc/internal/mutex_prof.h head/contrib/jemalloc/include/jemalloc/internal/pages.h head/contrib/jemalloc/include/jemalloc/internal/private_namespace.h head/contrib/jemalloc/include/jemalloc/internal/prof_inlines_a.h head/contrib/jemalloc/include/jemalloc/internal/prof_inlines_b.h head/contrib/jemalloc/include/jemalloc/internal/rtree.h head/contrib/jemalloc/include/jemalloc/internal/rtree_tsd.h head/contrib/jemalloc/include/jemalloc/internal/spin.h head/contrib/jemalloc/include/jemalloc/internal/stats.h head/contrib/jemalloc/include/jemalloc/internal/sz.h head/contrib/jemalloc/include/jemalloc/internal/tcache_externs.h head/contrib/jemalloc/include/jemalloc/internal/tcache_inlines.h head/contrib/jemalloc/include/jemalloc/internal/tcache_structs.h head/contrib/jemalloc/include/jemalloc/internal/tcache_types.h head/contrib/jemalloc/include/jemalloc/internal/ticker.h head/contrib/jemalloc/include/jemalloc/internal/tsd.h head/contrib/jemalloc/include/jemalloc/internal/tsd_tls.h head/contrib/jemalloc/include/jemalloc/internal/witness.h head/contrib/jemalloc/include/jemalloc/jemalloc.h head/contrib/jemalloc/src/arena.c head/contrib/jemalloc/src/background_thread.c head/contrib/jemalloc/src/base.c head/contrib/jemalloc/src/ctl.c head/contrib/jemalloc/src/extent.c head/contrib/jemalloc/src/extent_dss.c head/contrib/jemalloc/src/jemalloc.c head/contrib/jemalloc/src/malloc_io.c head/contrib/jemalloc/src/mutex.c head/contrib/jemalloc/src/pages.c head/contrib/jemalloc/src/prof.c head/contrib/jemalloc/src/stats.c head/contrib/jemalloc/src/sz.c head/contrib/jemalloc/src/tcache.c head/contrib/jemalloc/src/tsd.c head/lib/libc/stdlib/jemalloc/Makefile.inc Modified: head/contrib/jemalloc/COPYING ============================================================================== --- head/contrib/jemalloc/COPYING Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/COPYING Fri May 11 00:32:31 2018 (r333477) @@ -1,10 +1,10 @@ Unless otherwise specified, files in the jemalloc source distribution are subject to the following license: -------------------------------------------------------------------------------- -Copyright (C) 2002-2017 Jason Evans . +Copyright (C) 2002-2018 Jason Evans . All rights reserved. Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved. -Copyright (C) 2009-2017 Facebook, Inc. All rights reserved. +Copyright (C) 2009-2018 Facebook, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Modified: head/contrib/jemalloc/ChangeLog ============================================================================== --- head/contrib/jemalloc/ChangeLog Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/ChangeLog Fri May 11 00:32:31 2018 (r333477) @@ -4,6 +4,123 @@ brevity. Much more detail can be found in the git rev https://github.com/jemalloc/jemalloc +* 5.1.0 (May 4th, 2018) + + This release is primarily about fine-tuning, ranging from several new features + to numerous notable performance and portability enhancements. The release and + prior dev versions have been running in multiple large scale applications for + months, and the cumulative improvements are substantial in many cases. + + Given the long and successful production runs, this release is likely a good + candidate for applications to upgrade, from both jemalloc 5.0 and before. For + performance-critical applications, the newly added TUNING.md provides + guidelines on jemalloc tuning. + + New features: + - Implement transparent huge page support for internal metadata. (@interwq) + - Add opt.thp to allow enabling / disabling transparent huge pages for all + mappings. (@interwq) + - Add maximum background thread count option. (@djwatson) + - Allow prof_active to control opt.lg_prof_interval and prof.gdump. + (@interwq) + - Allow arena index lookup based on allocation addresses via mallctl. + (@lionkov) + - Allow disabling initial-exec TLS model. (@davidtgoldblatt, @KenMacD) + - Add opt.lg_extent_max_active_fit to set the max ratio between the size of + the active extent selected (to split off from) and the size of the requested + allocation. (@interwq, @davidtgoldblatt) + - Add retain_grow_limit to set the max size when growing virtual address + space. (@interwq) + - Add mallctl interfaces: + + arena..retain_grow_limit (@interwq) + + arenas.lookup (@lionkov) + + max_background_threads (@djwatson) + + opt.lg_extent_max_active_fit (@interwq) + + opt.max_background_threads (@djwatson) + + opt.metadata_thp (@interwq) + + opt.thp (@interwq) + + stats.metadata_thp (@interwq) + + Portability improvements: + - Support GNU/kFreeBSD configuration. (@paravoid) + - Support m68k, nios2 and SH3 architectures. (@paravoid) + - Fall back to FD_CLOEXEC when O_CLOEXEC is unavailable. (@zonyitoo) + - Fix symbol listing for cross-compiling. (@tamird) + - Fix high bits computation on ARM. (@davidtgoldblatt, @paravoid) + - Disable the CPU_SPINWAIT macro for Power. (@davidtgoldblatt, @marxin) + - Fix MSVC 2015 & 2017 builds. (@rustyx) + - Improve RISC-V support. (@EdSchouten) + - Set name mangling script in strict mode. (@nicolov) + - Avoid MADV_HUGEPAGE on ARM. (@marxin) + - Modify configure to determine return value of strerror_r. + (@davidtgoldblatt, @cferris1000) + - Make sure CXXFLAGS is tested with CPP compiler. (@nehaljwani) + - Fix 32-bit build on MSVC. (@rustyx) + - Fix external symbol on MSVC. (@maksqwe) + - Avoid a printf format specifier warning. (@jasone) + - Add configure option --disable-initial-exec-tls which can allow jemalloc to + be dynamically loaded after program startup. (@davidtgoldblatt, @KenMacD) + - AArch64: Add ILP32 support. (@cmuellner) + - Add --with-lg-vaddr configure option to support cross compiling. + (@cmuellner, @davidtgoldblatt) + + Optimizations and refactors: + - Improve active extent fit with extent_max_active_fit. This considerably + reduces fragmentation over time and improves virtual memory and metadata + usage. (@davidtgoldblatt, @interwq) + - Eagerly coalesce large extents to reduce fragmentation. (@interwq) + - sdallocx: only read size info when page aligned (i.e. possibly sampled), + which speeds up the sized deallocation path significantly. (@interwq) + - Avoid attempting new mappings for in place expansion with retain, since + it rarely succeeds in practice and causes high overhead. (@interwq) + - Refactor OOM handling in newImpl. (@wqfish) + - Add internal fine-grained logging functionality for debugging use. + (@davidtgoldblatt) + - Refactor arena / tcache interactions. (@davidtgoldblatt) + - Refactor extent management with dumpable flag. (@davidtgoldblatt) + - Add runtime detection of lazy purging. (@interwq) + - Use pairing heap instead of red-black tree for extents_avail. (@djwatson) + - Use sysctl on startup in FreeBSD. (@trasz) + - Use thread local prng state instead of atomic. (@djwatson) + - Make decay to always purge one more extent than before, because in + practice large extents are usually the ones that cross the decay threshold. + Purging the additional extent helps save memory as well as reduce VM + fragmentation. (@interwq) + - Fast division by dynamic values. (@davidtgoldblatt) + - Improve the fit for aligned allocation. (@interwq, @edwinsmith) + - Refactor extent_t bitpacking. (@rkmisra) + - Optimize the generated assembly for ticker operations. (@davidtgoldblatt) + - Convert stats printing to use a structured text emitter. (@davidtgoldblatt) + - Remove preserve_lru feature for extents management. (@djwatson) + - Consolidate two memory loads into one on the fast deallocation path. + (@davidtgoldblatt, @interwq) + + Bug fixes (most of the issues are only relevant to jemalloc 5.0): + - Fix deadlock with multithreaded fork in OS X. (@davidtgoldblatt) + - Validate returned file descriptor before use. (@zonyitoo) + - Fix a few background thread initialization and shutdown issues. (@interwq) + - Fix an extent coalesce + decay race by taking both coalescing extents off + the LRU list. (@interwq) + - Fix potentially unbound increase during decay, caused by one thread keep + stashing memory to purge while other threads generating new pages. The + number of pages to purge is checked to prevent this. (@interwq) + - Fix a FreeBSD bootstrap assertion. (@strejda, @interwq) + - Handle 32 bit mutex counters. (@rkmisra) + - Fix a indexing bug when creating background threads. (@davidtgoldblatt, + @binliu19) + - Fix arguments passed to extent_init. (@yuleniwo, @interwq) + - Fix addresses used for ordering mutexes. (@rkmisra) + - Fix abort_conf processing during bootstrap. (@interwq) + - Fix include path order for out-of-tree builds. (@cmuellner) + + Incompatible changes: + - Remove --disable-thp. (@interwq) + - Remove mallctl interfaces: + + config.thp (@interwq) + + Documentation: + - Add TUNING.md. (@interwq, @davidtgoldblatt, @djwatson) + * 5.0.1 (July 1, 2017) This bugfix release fixes several issues, most of which are obscure enough @@ -515,7 +632,7 @@ brevity. Much more detail can be found in the git rev these fixes, xallocx() now tries harder to partially fulfill requests for optional extra space. Note that a couple of minor heap profiling optimizations are included, but these are better thought of as performance - fixes that were integral to disovering most of the other bugs. + fixes that were integral to discovering most of the other bugs. Optimizations: - Avoid a chunk metadata read in arena_prof_tctx_set(), since it is in the Modified: head/contrib/jemalloc/FREEBSD-Xlist ============================================================================== --- head/contrib/jemalloc/FREEBSD-Xlist Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/FREEBSD-Xlist Fri May 11 00:32:31 2018 (r333477) @@ -7,6 +7,7 @@ FREEBSD-* INSTALL.md Makefile* README +TUNING.md autogen.sh autom4te.cache/ bin/ Modified: head/contrib/jemalloc/FREEBSD-diffs ============================================================================== --- head/contrib/jemalloc/FREEBSD-diffs Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/FREEBSD-diffs Fri May 11 00:32:31 2018 (r333477) @@ -1,5 +1,5 @@ diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in -index 21e401ac..c26f9f4a 100644 +index 1e12fd3a..c42a7e10 100644 --- a/doc/jemalloc.xml.in +++ b/doc/jemalloc.xml.in @@ -53,11 +53,22 @@ @@ -26,7 +26,7 @@ index 21e401ac..c26f9f4a 100644 Standard API -@@ -3252,4 +3263,18 @@ malloc_conf = "narenas:1";]]> +@@ -3376,4 +3387,18 @@ malloc_conf = "narenas:1";]]> The posix_memalign() function conforms to IEEE Std 1003.1-2001 (POSIX.1). @@ -64,7 +64,7 @@ index cd49afcb..85e2a991 100644 #define _Unwind_Backtrace JEMALLOC_HOOK(_Unwind_Backtrace, hooks_libc_hook) diff --git a/include/jemalloc/internal/jemalloc_internal_decls.h b/include/jemalloc/internal/jemalloc_internal_decls.h -index 1efdb56b..12a7e5a8 100644 +index be70df51..84cd70da 100644 --- a/include/jemalloc/internal/jemalloc_internal_decls.h +++ b/include/jemalloc/internal/jemalloc_internal_decls.h @@ -1,6 +1,9 @@ @@ -78,7 +78,7 @@ index 1efdb56b..12a7e5a8 100644 #ifdef _WIN32 # include diff --git a/include/jemalloc/internal/jemalloc_preamble.h.in b/include/jemalloc/internal/jemalloc_preamble.h.in -index 18539a09..c8af8683 100644 +index e621fbc8..dbdd5d6b 100644 --- a/include/jemalloc/internal/jemalloc_preamble.h.in +++ b/include/jemalloc/internal/jemalloc_preamble.h.in @@ -8,6 +8,9 @@ @@ -91,7 +91,7 @@ index 18539a09..c8af8683 100644 #define JEMALLOC_NO_DEMANGLE #ifdef JEMALLOC_JET # undef JEMALLOC_IS_MALLOC -@@ -68,13 +71,7 @@ static const bool config_fill = +@@ -79,13 +82,7 @@ static const bool config_fill = false #endif ; @@ -128,9 +128,23 @@ index 6520c251..0013cbe9 100644 bool malloc_mutex_boot(void); void malloc_mutex_prof_data_reset(tsdn_t *tsdn, malloc_mutex_t *mutex); +diff --git a/include/jemalloc/internal/tsd.h b/include/jemalloc/internal/tsd.h +index 0b9841aa..f03eee61 100644 +--- a/include/jemalloc/internal/tsd.h ++++ b/include/jemalloc/internal/tsd.h +@@ -122,7 +122,8 @@ struct tsd_s { + t use_a_getter_or_setter_instead_##n; + MALLOC_TSD + #undef O +-}; ++/* AddressSanitizer requires TLS data to be aligned to at least 8 bytes. */ ++} JEMALLOC_ALIGNED(16); + + /* + * Wrapper around tsd_t that makes it possible to avoid implicit conversion diff --git a/include/jemalloc/jemalloc_FreeBSD.h b/include/jemalloc/jemalloc_FreeBSD.h new file mode 100644 -index 00000000..355b565c +index 00000000..b752b0e7 --- /dev/null +++ b/include/jemalloc/jemalloc_FreeBSD.h @@ -0,0 +1,185 @@ @@ -203,7 +217,7 @@ index 00000000..355b565c +# define LG_VADDR 32 +# define LG_SIZEOF_PTR 2 +#endif -+#ifdef __riscv__ ++#ifdef __riscv +# define LG_VADDR 64 +# define LG_SIZEOF_PTR 3 +#endif @@ -331,10 +345,10 @@ index f9438912..47d032c1 100755 +#include "jemalloc_FreeBSD.h" EOF diff --git a/src/jemalloc.c b/src/jemalloc.c -index 52c86aa6..868c9e86 100644 +index f93c16fa..e0ad297b 100644 --- a/src/jemalloc.c +++ b/src/jemalloc.c -@@ -20,6 +20,10 @@ +@@ -21,6 +21,10 @@ /******************************************************************************/ /* Data. */ @@ -345,7 +359,7 @@ index 52c86aa6..868c9e86 100644 /* Runtime configuration options. */ const char *je_malloc_conf #ifndef _WIN32 -@@ -2981,6 +2985,103 @@ je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr) { +@@ -3160,6 +3164,103 @@ je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr) { */ /******************************************************************************/ /* @@ -449,7 +463,7 @@ index 52c86aa6..868c9e86 100644 * The following functions are used by threading libraries for protection of * malloc during fork(). */ -@@ -3141,4 +3242,11 @@ jemalloc_postfork_child(void) { +@@ -3323,4 +3424,11 @@ jemalloc_postfork_child(void) { ctl_postfork_child(tsd_tsdn(tsd)); } @@ -462,10 +476,10 @@ index 52c86aa6..868c9e86 100644 + /******************************************************************************/ diff --git a/src/malloc_io.c b/src/malloc_io.c -index 6b99afcd..4363cb83 100644 +index 7bdc13f9..c8802c70 100644 --- a/src/malloc_io.c +++ b/src/malloc_io.c -@@ -88,6 +88,20 @@ wrtmessage(void *cbopaque, const char *s) { +@@ -75,6 +75,20 @@ wrtmessage(void *cbopaque, const char *s) { JEMALLOC_EXPORT void (*je_malloc_message)(void *, const char *s); @@ -487,10 +501,10 @@ index 6b99afcd..4363cb83 100644 * Wrapper around malloc_message() that avoids the need for * je_malloc_message(...) throughout the code. diff --git a/src/mutex.c b/src/mutex.c -index a528ef0c..820af613 100644 +index 30222b3e..b2c36283 100644 --- a/src/mutex.c +++ b/src/mutex.c -@@ -40,6 +40,17 @@ pthread_create(pthread_t *__restrict thread, +@@ -41,6 +41,17 @@ pthread_create(pthread_t *__restrict thread, #ifdef JEMALLOC_MUTEX_INIT_CB JEMALLOC_EXPORT int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, void *(calloc_cb)(size_t, size_t)); @@ -508,7 +522,7 @@ index a528ef0c..820af613 100644 #endif void -@@ -130,6 +141,16 @@ mutex_addr_comp(const witness_t *witness1, void *mutex1, +@@ -131,6 +142,16 @@ mutex_addr_comp(const witness_t *witness1, void *mutex1, } bool Modified: head/contrib/jemalloc/VERSION ============================================================================== --- head/contrib/jemalloc/VERSION Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/VERSION Fri May 11 00:32:31 2018 (r333477) @@ -1 +1 @@ -5.0.1-0-g896ed3a8b3f41998d4fb4d625d30ac63ef2d51fb +5.1.0-0-g61efbda7098de6fe64c362d309824864308c36d4 Modified: head/contrib/jemalloc/doc/jemalloc.3 ============================================================================== --- head/contrib/jemalloc/doc/jemalloc.3 Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/doc/jemalloc.3 Fri May 11 00:32:31 2018 (r333477) @@ -2,12 +2,12 @@ .\" Title: JEMALLOC .\" Author: Jason Evans .\" Generator: DocBook XSL Stylesheets v1.76.1 -.\" Date: 07/01/2017 +.\" Date: 05/08/2018 .\" Manual: User Manual -.\" Source: jemalloc 5.0.1-0-g896ed3a8b3f41998d4fb4d625d30ac63ef2d51fb +.\" Source: jemalloc 5.1.0-0-g61efbda7098de6fe64c362d309824864308c36d4 .\" Language: English .\" -.TH "JEMALLOC" "3" "07/01/2017" "jemalloc 5.0.1-0-g896ed3a8b3f4" "User Manual" +.TH "JEMALLOC" "3" "05/08/2018" "jemalloc 5.1.0-0-g61efbda7098d" "User Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -31,7 +31,7 @@ jemalloc \- general purpose memory allocation functions .SH "LIBRARY" .PP -This manual describes jemalloc 5\&.0\&.1\-0\-g896ed3a8b3f41998d4fb4d625d30ac63ef2d51fb\&. More information can be found at the +This manual describes jemalloc 5\&.1\&.0\-0\-g61efbda7098de6fe64c362d309824864308c36d4\&. More information can be found at the \m[blue]\fBjemalloc website\fR\m[]\&\s-2\u[1]\d\s+2\&. .PP The following configuration options are enabled in libc\*(Aqs built\-in jemalloc: @@ -741,6 +741,13 @@ opt\&.background_thread can be used to set the default option\&. This option is only available on selected pthread\-based platforms\&. .RE .PP +max_background_threads (\fBsize_t\fR) rw +.RS 4 +Maximum number of background worker threads that will be created\&. This value is capped at +opt\&.max_background_threads +at startup\&. +.RE +.PP config\&.cache_oblivious (\fBbool\fR) r\- .RS 4 \fB\-\-enable\-cache\-oblivious\fR @@ -796,12 +803,6 @@ config\&.stats (\fBbool\fR) r\- was specified during build configuration\&. .RE .PP -config\&.thp (\fBbool\fR) r\- -.RS 4 -\fB\-\-disable\-thp\fR -was not specified during build configuration, and the system supports transparent huge page manipulation\&. -.RE -.PP config\&.utrace (\fBbool\fR) r\- .RS 4 \fB\-\-enable\-utrace\fR @@ -834,6 +835,17 @@ in these cases\&. This option is disabled by default u is specified during configuration, in which case it is enabled by default\&. .RE .PP +opt\&.metadata_thp (\fBconst char *\fR) r\- +.RS 4 +Controls whether to allow jemalloc to use transparent huge page (THP) for internal metadata (see +stats\&.metadata)\&. +\(lqalways\(rq +allows such usage\&. +\(lqauto\(rq +uses no THP initially, but may begin to do so when metadata usage reaches certain level\&. The default is +\(lqdisabled\(rq\&. +.RE +.PP opt\&.retain (\fBbool\fR) r\- .RS 4 If true, retain unused virtual memory for later reuse rather than discarding it by calling @@ -883,11 +895,18 @@ setting uses one arena per physical CPU, which means t .PP opt\&.background_thread (\fBconst bool\fR) r\- .RS 4 -Internal background worker threads enabled/disabled\&. See +Internal background worker threads enabled/disabled\&. Because of potential circular dependencies, enabling background thread using this option may cause crash or deadlock during initialization\&. For a reliable way to use this feature, see background_thread for dynamic control options and details\&. This option is disabled by default\&. .RE .PP +opt\&.max_background_threads (\fBconst size_t\fR) r\- +.RS 4 +Maximum number of background threads that will be created if +background_thread +is set\&. Defaults to number of cpus\&. +.RE +.PP opt\&.dirty_decay_ms (\fBssize_t\fR) r\- .RS 4 Approximate time in milliseconds from the creation of a set of unused dirty pages until an equivalent set of unused dirty pages is purged (i\&.e\&. converted to muzzy via e\&.g\&. @@ -895,7 +914,7 @@ madvise(\fI\&.\&.\&.\fR\fI\fBMADV_FREE\fR\fR) if supported by the operating system, or converted to clean otherwise) and/or reused\&. Dirty pages are defined as previously having been potentially written to by the application, and therefore consuming physical memory, yet having no current use\&. The pages are incrementally purged according to a sigmoidal decay curve that starts and ends with zero purge rate\&. A decay time of 0 causes all unused dirty pages to be purged immediately upon creation\&. A decay time of \-1 disables purging\&. The default decay time is 10 seconds\&. See arenas\&.dirty_decay_ms and -arena\&.\&.muzzy_decay_ms +arena\&.\&.dirty_decay_ms for related dynamic control options\&. See opt\&.muzzy_decay_ms for a description of muzzy pages\&. @@ -911,6 +930,11 @@ arena\&.\&.muzzy_decay_ms for related dynamic control options\&. .RE .PP +opt\&.lg_extent_max_active_fit (\fBsize_t\fR) r\- +.RS 4 +When reusing dirty extents, this determines the (log base 2 of the) maximum ratio between the size of the active extent selected (to split off from) and the size of the requested allocation\&. This prevents the splitting of large active extents for smaller allocations, which can reduce fragmentation over the long run (especially for non\-active extents)\&. Lower value may reduce fragmentation, at the cost of extra active extents\&. The default value is 6, which gives a maximum ratio of 64 (2^6)\&. +.RE +.PP opt\&.stats_print (\fBbool\fR) r\- .RS 4 Enable/disable statistics printing at exit\&. If enabled, the @@ -1008,6 +1032,15 @@ opt\&.lg_tcache_max (\fBsize_t\fR) r\- Maximum size class (log base 2) to cache in the thread\-specific cache (tcache)\&. At a minimum, all small size classes are cached, and at a maximum all large size classes are cached\&. The default maximum is 32 KiB (2^15)\&. .RE .PP +opt\&.thp (\fBconst char *\fR) r\- +.RS 4 +Transparent hugepage (THP) mode\&. Settings "always", "never" and "default" are available if THP is supported by the operating system\&. The "always" setting enables transparent hugepage for all user memory mappings with +\fI\fBMADV_HUGEPAGE\fR\fR; "never" ensures no transparent hugepage with +\fI\fBMADV_NOHUGEPAGE\fR\fR; the default setting "default" makes no changes\&. Note that: this option does not affect THP for jemalloc internal metadata (see +opt\&.metadata_thp); in addition, for arenas with customized +extent_hooks, this option is bypassed as it is implemented as part of the default extent hooks\&. +.RE +.PP opt\&.prof (\fBbool\fR) r\- [\fB\-\-enable\-prof\fR] .RS 4 Memory profiling enabled/disabled\&. If enabled, profile memory allocation activity\&. See the @@ -1248,6 +1281,14 @@ opt\&.muzzy_decay_ms for additional information\&. .RE .PP +arena\&.\&.retain_grow_limit (\fBsize_t\fR) rw +.RS 4 +Maximum size to grow retained region (only relevant when +opt\&.retain +is enabled)\&. This controls the maximum increment to expand virtual memory, or allocation through +arena\&.extent_hooks\&. In particular, if customized extent hooks reserve physical memory (e\&.g\&. 1G huge pages), this is useful to control the allocation hook\*(Aqs input size\&. The default is no limit\&. +.RE +.PP arena\&.\&.extent_hooks (\fBextent_hooks_t *\fR) rw .RS 4 Get or set the extent management hook functions for arena \&. The functions must be capable of operating on all extant extents associated with arena , usually by passing unknown extents to the replaced functions\&. In practice, it is feasible to control allocation for arenas explicitly created via @@ -1278,7 +1319,7 @@ struct extent_hooks_s { The \fBextent_hooks_t\fR structure comprises function pointers which are described individually below\&. jemalloc uses these functions to manage extent lifetime, which starts off with allocation of mapped committed memory, in the simplest case followed by deallocation\&. However, there are performance and platform reasons to retain extents for later reuse\&. Cleanup attempts cascade from deallocation to decommit to forced purging to lazy purging, which gives the extent management functions opportunities to reject the most permanent cleanup operations in favor of less permanent (and often less costly) operations\&. All operations except allocation can be universally opted out of by setting the hook pointers to -\fBNULL\fR, or selectively opted out of by returning failure\&. +\fBNULL\fR, or selectively opted out of by returning failure\&. Note that once the extent hook is set, the structure is accessed directly by the associated arenas, so it must remain valid for the entire lifetime of the arenas\&. .HP \w'typedef\ void\ *(extent_alloc_t)('u .BI "typedef void *(extent_alloc_t)(extent_hooks_t\ *" "extent_hooks" ", void\ *" "new_addr" ", size_t\ " "size" ", size_t\ " "alignment" ", bool\ *" "zero" ", bool\ *" "commit" ", unsigned\ " "arena_ind" ");" .sp @@ -1572,6 +1613,11 @@ arenas\&.create (\fBunsigned\fR, \fBextent_hooks_t *\f Explicitly create a new arena outside the range of automatically managed arenas, with optionally specified extent hooks, and return the new arena index\&. .RE .PP +arenas\&.lookup (\fBunsigned\fR, \fBvoid*\fR) rw +.RS 4 +Index of the arena to which an allocation belongs to\&. +.RE +.PP prof\&.thread_active_init (\fBbool\fR) rw [\fB\-\-enable\-prof\fR] .RS 4 Control the initial setting for @@ -1648,9 +1694,18 @@ stats\&.metadata (\fBsize_t\fR) r\- [\fB\-\-enable\-st .RS 4 Total number of bytes dedicated to metadata, which comprise base allocations used for bootstrap\-sensitive allocator metadata structures (see stats\&.arenas\&.\&.base) and internal allocations (see -stats\&.arenas\&.\&.internal)\&. +stats\&.arenas\&.\&.internal)\&. Transparent huge page (enabled with +opt\&.metadata_thp) usage is not considered\&. .RE .PP +stats\&.metadata_thp (\fBsize_t\fR) r\- [\fB\-\-enable\-stats\fR] +.RS 4 +Number of transparent huge pages (THP) used for metadata\&. See +stats\&.metadata +and +opt\&.metadata_thp) for details\&. +.RE +.PP stats\&.resident (\fBsize_t\fR) r\- [\fB\-\-enable\-stats\fR] .RS 4 Maximum number of bytes in physically resident data pages mapped by the allocator, comprising all pages dedicated to allocator metadata, pages backing active allocations, and unused dirty pages\&. This is a maximum rather than precise because pages may not actually be physically resident if they correspond to demand\-zeroed virtual memory that has not yet been touched\&. This is a multiple of the page size, and is larger than @@ -1829,6 +1884,13 @@ Number of bytes dedicated to bootstrap\-sensitive allo stats\&.arenas\&.\&.internal (\fBsize_t\fR) r\- [\fB\-\-enable\-stats\fR] .RS 4 Number of bytes dedicated to internal allocations\&. Internal allocations differ from application\-originated allocations in that they are for internal use, and that they are omitted from heap profiles\&. +.RE +.PP +stats\&.arenas\&.\&.metadata_thp (\fBsize_t\fR) r\- [\fB\-\-enable\-stats\fR] +.RS 4 +Number of transparent huge pages (THP) used for metadata\&. See +opt\&.metadata_thp +for details\&. .RE .PP stats\&.arenas\&.\&.resident (\fBsize_t\fR) r\- [\fB\-\-enable\-stats\fR] Modified: head/contrib/jemalloc/include/jemalloc/internal/arena_externs.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/arena_externs.h Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/include/jemalloc/internal/arena_externs.h Fri May 11 00:32:31 2018 (r333477) @@ -1,6 +1,7 @@ #ifndef JEMALLOC_INTERNAL_ARENA_EXTERNS_H #define JEMALLOC_INTERNAL_ARENA_EXTERNS_H +#include "jemalloc/internal/bin.h" #include "jemalloc/internal/extent_dss.h" #include "jemalloc/internal/pages.h" #include "jemalloc/internal/size_classes.h" @@ -9,25 +10,19 @@ extern ssize_t opt_dirty_decay_ms; extern ssize_t opt_muzzy_decay_ms; -extern const arena_bin_info_t arena_bin_info[NBINS]; - extern percpu_arena_mode_t opt_percpu_arena; extern const char *percpu_arena_mode_names[]; extern const uint64_t h_steps[SMOOTHSTEP_NSTEPS]; extern malloc_mutex_t arenas_lock; -void arena_stats_large_nrequests_add(tsdn_t *tsdn, arena_stats_t *arena_stats, - szind_t szind, uint64_t nrequests); -void arena_stats_mapped_add(tsdn_t *tsdn, arena_stats_t *arena_stats, - size_t size); void arena_basic_stats_merge(tsdn_t *tsdn, arena_t *arena, unsigned *nthreads, const char **dss, ssize_t *dirty_decay_ms, ssize_t *muzzy_decay_ms, size_t *nactive, size_t *ndirty, size_t *nmuzzy); void arena_stats_merge(tsdn_t *tsdn, arena_t *arena, unsigned *nthreads, const char **dss, ssize_t *dirty_decay_ms, ssize_t *muzzy_decay_ms, size_t *nactive, size_t *ndirty, size_t *nmuzzy, arena_stats_t *astats, - malloc_bin_stats_t *bstats, malloc_large_stats_t *lstats); + bin_stats_t *bstats, arena_stats_large_t *lstats); void arena_extents_dirty_dalloc(tsdn_t *tsdn, arena_t *arena, extent_hooks_t **r_extent_hooks, extent_t *extent); #ifdef JEMALLOC_JET @@ -50,11 +45,11 @@ void arena_decay(tsdn_t *tsdn, arena_t *arena, bool is void arena_reset(tsd_t *tsd, arena_t *arena); void arena_destroy(tsd_t *tsd, arena_t *arena); void arena_tcache_fill_small(tsdn_t *tsdn, arena_t *arena, tcache_t *tcache, - tcache_bin_t *tbin, szind_t binind, uint64_t prof_accumbytes); -void arena_alloc_junk_small(void *ptr, const arena_bin_info_t *bin_info, + cache_bin_t *tbin, szind_t binind, uint64_t prof_accumbytes); +void arena_alloc_junk_small(void *ptr, const bin_info_t *bin_info, bool zero); -typedef void (arena_dalloc_junk_small_t)(void *, const arena_bin_info_t *); +typedef void (arena_dalloc_junk_small_t)(void *, const bin_info_t *); extern arena_dalloc_junk_small_t *JET_MUTABLE arena_dalloc_junk_small; void *arena_malloc_hard(tsdn_t *tsdn, arena_t *arena, size_t size, @@ -77,6 +72,8 @@ ssize_t arena_dirty_decay_ms_default_get(void); bool arena_dirty_decay_ms_default_set(ssize_t decay_ms); ssize_t arena_muzzy_decay_ms_default_get(void); bool arena_muzzy_decay_ms_default_set(ssize_t decay_ms); +bool arena_retain_grow_limit_get_set(tsd_t *tsd, arena_t *arena, + size_t *old_limit, size_t *new_limit); unsigned arena_nthreads_get(arena_t *arena, bool internal); void arena_nthreads_inc(arena_t *arena, bool internal); void arena_nthreads_dec(arena_t *arena, bool internal); Modified: head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_a.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_a.h Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_a.h Fri May 11 00:32:31 2018 (r333477) @@ -25,7 +25,7 @@ static inline bool arena_prof_accum(tsdn_t *tsdn, arena_t *arena, uint64_t accumbytes) { cassert(config_prof); - if (likely(prof_interval == 0)) { + if (likely(prof_interval == 0 || !prof_active_get_unlocked())) { return false; } Modified: head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_b.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_b.h Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/include/jemalloc/internal/arena_inlines_b.h Fri May 11 00:32:31 2018 (r333477) @@ -8,13 +8,6 @@ #include "jemalloc/internal/sz.h" #include "jemalloc/internal/ticker.h" -static inline szind_t -arena_bin_index(arena_t *arena, arena_bin_t *bin) { - szind_t binind = (szind_t)(bin - arena->bins); - assert(binind < NBINS); - return binind; -} - JEMALLOC_ALWAYS_INLINE prof_tctx_t * arena_prof_tctx_get(tsdn_t *tsdn, const void *ptr, alloc_ctx_t *alloc_ctx) { cassert(config_prof); @@ -35,7 +28,7 @@ arena_prof_tctx_get(tsdn_t *tsdn, const void *ptr, all } JEMALLOC_ALWAYS_INLINE void -arena_prof_tctx_set(tsdn_t *tsdn, const void *ptr, size_t usize, +arena_prof_tctx_set(tsdn_t *tsdn, const void *ptr, UNUSED size_t usize, alloc_ctx_t *alloc_ctx, prof_tctx_t *tctx) { cassert(config_prof); assert(ptr != NULL); @@ -54,7 +47,7 @@ arena_prof_tctx_set(tsdn_t *tsdn, const void *ptr, siz } static inline void -arena_prof_tctx_reset(tsdn_t *tsdn, const void *ptr, prof_tctx_t *tctx) { +arena_prof_tctx_reset(tsdn_t *tsdn, const void *ptr, UNUSED prof_tctx_t *tctx) { cassert(config_prof); assert(ptr != NULL); Added: head/contrib/jemalloc/include/jemalloc/internal/arena_stats.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/jemalloc/include/jemalloc/internal/arena_stats.h Fri May 11 00:32:31 2018 (r333477) @@ -0,0 +1,237 @@ +#ifndef JEMALLOC_INTERNAL_ARENA_STATS_H +#define JEMALLOC_INTERNAL_ARENA_STATS_H + +#include "jemalloc/internal/atomic.h" +#include "jemalloc/internal/mutex.h" +#include "jemalloc/internal/mutex_prof.h" +#include "jemalloc/internal/size_classes.h" + +/* + * In those architectures that support 64-bit atomics, we use atomic updates for + * our 64-bit values. Otherwise, we use a plain uint64_t and synchronize + * externally. + */ +#ifdef JEMALLOC_ATOMIC_U64 +typedef atomic_u64_t arena_stats_u64_t; +#else +/* Must hold the arena stats mutex while reading atomically. */ +typedef uint64_t arena_stats_u64_t; +#endif + +typedef struct arena_stats_large_s arena_stats_large_t; +struct arena_stats_large_s { + /* + * Total number of allocation/deallocation requests served directly by + * the arena. + */ + arena_stats_u64_t nmalloc; + arena_stats_u64_t ndalloc; + + /* + * Number of allocation requests that correspond to this size class. + * This includes requests served by tcache, though tcache only + * periodically merges into this counter. + */ + arena_stats_u64_t nrequests; /* Partially derived. */ + + /* Current number of allocations of this size class. */ + size_t curlextents; /* Derived. */ +}; + +typedef struct arena_stats_decay_s arena_stats_decay_t; +struct arena_stats_decay_s { + /* Total number of purge sweeps. */ + arena_stats_u64_t npurge; + /* Total number of madvise calls made. */ + arena_stats_u64_t nmadvise; + /* Total number of pages purged. */ + arena_stats_u64_t purged; +}; + +/* + * Arena stats. Note that fields marked "derived" are not directly maintained + * within the arena code; rather their values are derived during stats merge + * requests. + */ +typedef struct arena_stats_s arena_stats_t; +struct arena_stats_s { +#ifndef JEMALLOC_ATOMIC_U64 + malloc_mutex_t mtx; +#endif + + /* Number of bytes currently mapped, excluding retained memory. */ + atomic_zu_t mapped; /* Partially derived. */ + + /* + * Number of unused virtual memory bytes currently retained. Retained + * bytes are technically mapped (though always decommitted or purged), + * but they are excluded from the mapped statistic (above). + */ + atomic_zu_t retained; /* Derived. */ + + arena_stats_decay_t decay_dirty; + arena_stats_decay_t decay_muzzy; + + atomic_zu_t base; /* Derived. */ + atomic_zu_t internal; + atomic_zu_t resident; /* Derived. */ + atomic_zu_t metadata_thp; + + atomic_zu_t allocated_large; /* Derived. */ + arena_stats_u64_t nmalloc_large; /* Derived. */ + arena_stats_u64_t ndalloc_large; /* Derived. */ + arena_stats_u64_t nrequests_large; /* Derived. */ + + /* Number of bytes cached in tcache associated with this arena. */ + atomic_zu_t tcache_bytes; /* Derived. */ + + mutex_prof_data_t mutex_prof_data[mutex_prof_num_arena_mutexes]; + + /* One element for each large size class. */ + arena_stats_large_t lstats[NSIZES - NBINS]; + + /* Arena uptime. */ + nstime_t uptime; +}; + +static inline bool +arena_stats_init(UNUSED tsdn_t *tsdn, arena_stats_t *arena_stats) { + if (config_debug) { + for (size_t i = 0; i < sizeof(arena_stats_t); i++) { + assert(((char *)arena_stats)[i] == 0); + } + } +#ifndef JEMALLOC_ATOMIC_U64 + if (malloc_mutex_init(&arena_stats->mtx, "arena_stats", + WITNESS_RANK_ARENA_STATS, malloc_mutex_rank_exclusive)) { + return true; + } +#endif + /* Memory is zeroed, so there is no need to clear stats. */ + return false; +} + +static inline void +arena_stats_lock(tsdn_t *tsdn, arena_stats_t *arena_stats) { +#ifndef JEMALLOC_ATOMIC_U64 + malloc_mutex_lock(tsdn, &arena_stats->mtx); +#endif +} + +static inline void +arena_stats_unlock(tsdn_t *tsdn, arena_stats_t *arena_stats) { +#ifndef JEMALLOC_ATOMIC_U64 + malloc_mutex_unlock(tsdn, &arena_stats->mtx); +#endif +} + +static inline uint64_t +arena_stats_read_u64(tsdn_t *tsdn, arena_stats_t *arena_stats, + arena_stats_u64_t *p) { +#ifdef JEMALLOC_ATOMIC_U64 + return atomic_load_u64(p, ATOMIC_RELAXED); +#else + malloc_mutex_assert_owner(tsdn, &arena_stats->mtx); + return *p; +#endif +} + +static inline void +arena_stats_add_u64(tsdn_t *tsdn, arena_stats_t *arena_stats, + arena_stats_u64_t *p, uint64_t x) { +#ifdef JEMALLOC_ATOMIC_U64 + atomic_fetch_add_u64(p, x, ATOMIC_RELAXED); +#else + malloc_mutex_assert_owner(tsdn, &arena_stats->mtx); + *p += x; +#endif +} + +UNUSED static inline void +arena_stats_sub_u64(tsdn_t *tsdn, arena_stats_t *arena_stats, + arena_stats_u64_t *p, uint64_t x) { +#ifdef JEMALLOC_ATOMIC_U64 + UNUSED uint64_t r = atomic_fetch_sub_u64(p, x, ATOMIC_RELAXED); + assert(r - x <= r); +#else + malloc_mutex_assert_owner(tsdn, &arena_stats->mtx); + *p -= x; + assert(*p + x >= *p); +#endif +} + +/* + * Non-atomically sets *dst += src. *dst needs external synchronization. + * This lets us avoid the cost of a fetch_add when its unnecessary (note that + * the types here are atomic). + */ +static inline void +arena_stats_accum_u64(arena_stats_u64_t *dst, uint64_t src) { +#ifdef JEMALLOC_ATOMIC_U64 + uint64_t cur_dst = atomic_load_u64(dst, ATOMIC_RELAXED); + atomic_store_u64(dst, src + cur_dst, ATOMIC_RELAXED); +#else + *dst += src; +#endif +} + +static inline size_t +arena_stats_read_zu(tsdn_t *tsdn, arena_stats_t *arena_stats, atomic_zu_t *p) { +#ifdef JEMALLOC_ATOMIC_U64 + return atomic_load_zu(p, ATOMIC_RELAXED); +#else + malloc_mutex_assert_owner(tsdn, &arena_stats->mtx); + return atomic_load_zu(p, ATOMIC_RELAXED); +#endif +} + +static inline void +arena_stats_add_zu(tsdn_t *tsdn, arena_stats_t *arena_stats, atomic_zu_t *p, + size_t x) { +#ifdef JEMALLOC_ATOMIC_U64 + atomic_fetch_add_zu(p, x, ATOMIC_RELAXED); +#else + malloc_mutex_assert_owner(tsdn, &arena_stats->mtx); + size_t cur = atomic_load_zu(p, ATOMIC_RELAXED); + atomic_store_zu(p, cur + x, ATOMIC_RELAXED); +#endif +} + +static inline void +arena_stats_sub_zu(tsdn_t *tsdn, arena_stats_t *arena_stats, atomic_zu_t *p, + size_t x) { +#ifdef JEMALLOC_ATOMIC_U64 + UNUSED size_t r = atomic_fetch_sub_zu(p, x, ATOMIC_RELAXED); + assert(r - x <= r); +#else + malloc_mutex_assert_owner(tsdn, &arena_stats->mtx); + size_t cur = atomic_load_zu(p, ATOMIC_RELAXED); + atomic_store_zu(p, cur - x, ATOMIC_RELAXED); +#endif +} + +/* Like the _u64 variant, needs an externally synchronized *dst. */ +static inline void +arena_stats_accum_zu(atomic_zu_t *dst, size_t src) { + size_t cur_dst = atomic_load_zu(dst, ATOMIC_RELAXED); + atomic_store_zu(dst, src + cur_dst, ATOMIC_RELAXED); +} + +static inline void +arena_stats_large_nrequests_add(tsdn_t *tsdn, arena_stats_t *arena_stats, + szind_t szind, uint64_t nrequests) { + arena_stats_lock(tsdn, arena_stats); + arena_stats_add_u64(tsdn, arena_stats, &arena_stats->lstats[szind - + NBINS].nrequests, nrequests); + arena_stats_unlock(tsdn, arena_stats); +} + +static inline void +arena_stats_mapped_add(tsdn_t *tsdn, arena_stats_t *arena_stats, size_t size) { + arena_stats_lock(tsdn, arena_stats); + arena_stats_add_zu(tsdn, arena_stats, &arena_stats->mapped, size); + arena_stats_unlock(tsdn, arena_stats); +} + + +#endif /* JEMALLOC_INTERNAL_ARENA_STATS_H */ Modified: head/contrib/jemalloc/include/jemalloc/internal/arena_structs_b.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/arena_structs_b.h Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/include/jemalloc/internal/arena_structs_b.h Fri May 11 00:32:31 2018 (r333477) @@ -1,7 +1,9 @@ #ifndef JEMALLOC_INTERNAL_ARENA_STRUCTS_B_H #define JEMALLOC_INTERNAL_ARENA_STRUCTS_B_H +#include "jemalloc/internal/arena_stats.h" #include "jemalloc/internal/atomic.h" +#include "jemalloc/internal/bin.h" #include "jemalloc/internal/bitmap.h" #include "jemalloc/internal/extent_dss.h" #include "jemalloc/internal/jemalloc_internal_types.h" @@ -10,45 +12,8 @@ #include "jemalloc/internal/ql.h" #include "jemalloc/internal/size_classes.h" #include "jemalloc/internal/smoothstep.h" -#include "jemalloc/internal/stats.h" #include "jemalloc/internal/ticker.h" -/* - * Read-only information associated with each element of arena_t's bins array - * is stored separately, partly to reduce memory usage (only one copy, rather - * than one per arena), but mainly to avoid false cacheline sharing. - * - * Each slab has the following layout: - * - * /--------------------\ - * | region 0 | - * |--------------------| - * | region 1 | - * |--------------------| - * | ... | - * | ... | - * | ... | - * |--------------------| - * | region nregs-1 | - * \--------------------/ - */ -struct arena_bin_info_s { - /* Size of regions in a slab for this bin's size class. */ - size_t reg_size; - - /* Total size of a slab for this bin's size class. */ - size_t slab_size; - - /* Total number of regions in a slab for this bin's size class. */ - uint32_t nregs; - - /* - * Metadata used to manipulate bitmaps for slabs associated with this - * bin. - */ - bitmap_info_t bitmap_info; -}; - struct arena_decay_s { /* Synchronizes all non-atomic fields. */ malloc_mutex_t mtx; @@ -104,37 +69,11 @@ struct arena_decay_s { * arena and ctl code. * * Synchronization: Same as associated arena's stats field. */ - decay_stats_t *stats; + arena_stats_decay_t *stats; /* Peak number of pages in associated extents. Used for debug only. */ uint64_t ceil_npages; }; -struct arena_bin_s { - /* All operations on arena_bin_t fields require lock ownership. */ - malloc_mutex_t lock; - - /* - * Current slab being used to service allocations of this bin's size - * class. slabcur is independent of slabs_{nonfull,full}; whenever - * slabcur is reassigned, the previous slab must be deallocated or - * inserted into slabs_{nonfull,full}. - */ - extent_t *slabcur; - - /* - * Heap of non-full slabs. This heap is used to assure that new - * allocations come from the non-full slab that is oldest/lowest in - * memory. - */ - extent_heap_t slabs_nonfull; - - /* List used to track full slabs. */ - extent_list_t slabs_full; - - /* Bin statistics. */ - malloc_bin_stats_t stats; -}; - struct arena_s { /* * Number of threads currently assigned to this arena. Each thread has @@ -162,14 +101,15 @@ struct arena_s { arena_stats_t stats; /* - * List of tcaches for extant threads associated with this arena. - * Stats from these are merged incrementally, and at exit if - * opt_stats_print is enabled. + * Lists of tcaches and cache_bin_array_descriptors for extant threads + * associated with this arena. Stats from these are merged + * incrementally, and at exit if opt_stats_print is enabled. * * Synchronization: tcache_ql_mtx. */ - ql_head(tcache_t) tcache_ql; - malloc_mutex_t tcache_ql_mtx; + ql_head(tcache_t) tcache_ql; + ql_head(cache_bin_array_descriptor_t) cache_bin_array_descriptor_ql; + malloc_mutex_t tcache_ql_mtx; /* Synchronization: internal. */ prof_accum_t prof_accum; @@ -239,9 +179,14 @@ struct arena_s { * be effective even if multiple arenas' extent allocation requests are * highly interleaved. * + * retain_grow_limit is the max allowed size ind to expand (unless the + * required size is greater). Default is no limit, and controlled + * through mallctl only. + * * Synchronization: extent_grow_mtx */ pszind_t extent_grow_next; + pszind_t retain_grow_limit; malloc_mutex_t extent_grow_mtx; /* @@ -258,7 +203,7 @@ struct arena_s { * * Synchronization: internal. */ - arena_bin_t bins[NBINS]; + bin_t bins[NBINS]; /* * Base allocator, from which arena metadata are allocated. Modified: head/contrib/jemalloc/include/jemalloc/internal/arena_types.h ============================================================================== --- head/contrib/jemalloc/include/jemalloc/internal/arena_types.h Fri May 11 00:19:49 2018 (r333476) +++ head/contrib/jemalloc/include/jemalloc/internal/arena_types.h Fri May 11 00:32:31 2018 (r333477) @@ -12,9 +12,7 @@ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Fri May 11 00:38:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E125FAD111 for ; Fri, 11 May 2018 00:38:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x236.google.com (mail-it0-x236.google.com [IPv6:2607:f8b0:4001:c0b::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 25BF3711D0 for ; Fri, 11 May 2018 00:38:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x236.google.com with SMTP id 70-v6so205264ity.2 for ; Thu, 10 May 2018 17:38:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=nzAdnD/XEREzxbEOvZ6IGydDT9bm3TPJjJwMcMZKukQ=; b=zWu5euUMOtYKx/MGznbFcRuDumhZNnGBUqUqyOEE8eWSObq2N8ujvfirsMovOlPTO3 QxBkkFy1udbC8urKYE6G3mbz/2/jLNGtVhP+lIJntJIwNCTLQloxqvBicAevIjDlvl7M rRuknuUb1KQEuOMFgeOoxYoQWPf9s9JJxrng4WGiOxifoU14KU44sPjSxn7cfMjZbHKC Hl17SnNj3b7bYm42RDtrs1of8xl2H/H7HiJCMtHHOVn++uYugyASETIzhwhb/XHSKgLb fFyb5CV1E0fat1Ce7M4ZxeO5TMwYnk4/ZO1yLOpNEDIOyUrdHjhCOSoRE/6ylVd/+vCP ouzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=nzAdnD/XEREzxbEOvZ6IGydDT9bm3TPJjJwMcMZKukQ=; b=j3NvE2v3ajs+5vq8MmDw51q8jRo0QV42T9prwzdE9XuLOVcYEGjIzO4eR7psJhh80b /DkCGxa52ZsyzFjd/FAAKwS6XwqRuIDv8CUhVzLFKQD3jQ/N9NH+amU/Xnyf+pVQwnnn HG1VeuTNI1Pvk2TLfInkkrjGrnHATEb8ZjCAush/w42QBWxKzUSqRlj+pGClyafsIhYD 0e77qXllUhdnTZVAoTqEamNuLbqyXMntgZrDvpDL/KBVOWbKCCPe6hB873fqzafShX7w czqx0eXqvI1EHOLU3+z/rbZmK6G5PbU136/fH/1SlL3qJLMywXl64k0tI0Qc98TZiYdO S/Tg== X-Gm-Message-State: ALKqPwfPR5we6yCxNSLPESHjlJ6bqKSc9v6GYoeWAeCBoaY3+UM2SFnL cqoGmMK1M9ie27gKmydfTWLYkjTsZ/vkMl8OUOkd5Q== X-Google-Smtp-Source: AB8JxZpH1+IawHOSY0o16nRtFF275WSDchtbbtn7DjAZ9MILFbp+8aZLI4MjQs7QQt3v7kBhWsazVR5zdh0ORrWze+E= X-Received: by 2002:a24:42c6:: with SMTP id i189-v6mr1147333itb.73.1525999123200; Thu, 10 May 2018 17:38:43 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Thu, 10 May 2018 17:38:42 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <58b76dcb-b081-869b-8e05-dc0c4e7aa3be@cs.duke.edu> References: <201805102010.w4AKA3Ww094768@repo.freebsd.org> <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> <31075786-70ed-10b9-fbc5-127996f87b1b@cs.duke.edu> <58b76dcb-b081-869b-8e05-dc0c4e7aa3be@cs.duke.edu> From: Warner Losh Date: Thu, 10 May 2018 18:38:42 -0600 X-Google-Sender-Auth: XYX7OnZ7Z-qy2b6yte7R65Sij_o Message-ID: Subject: Re: svn commit: r333470 - in head: share/mk sys/conf To: Andrew Gallatin Cc: Ed Maste , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org, Konstantin Belousov Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 00:38:44 -0000 On Thu, May 10, 2018 at 6:13 PM, Andrew Gallatin wrote: > On 05/10/18 20:11, Ed Maste wrote: > >> On 10 May 2018 at 20:00, Andrew Gallatin wrote: >> >>> >>> Unfortunately, it looks like this method will get blown away by an >>> installworld: >>> >> >> Ah. You can set WITH_LLD_IS_LD in /etc/src.conf and installworld will >> install ld as a symlink to ld.lld, >> >> > Super! That's the answer that I was looking for, and what should > get me back to building kernels like it's 1999 :) > It's a shame we can't get a link-time error if a too-old ld is used rather than silent failure. Warner From owner-svn-src-head@freebsd.org Fri May 11 01:02:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A1ECFADD83; Fri, 11 May 2018 01:02:00 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 9827676E75; Fri, 11 May 2018 01:01:59 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4B11mA7072995; Thu, 10 May 2018 18:01:48 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4B11m6w072994; Thu, 10 May 2018 18:01:48 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805110101.w4B11m6w072994@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333476 - head/sys/net In-Reply-To: <201805110019.w4B0Jn0X026500@repo.freebsd.org> To: =?UTF-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Date: Thu, 10 May 2018 18:01:48 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 01:02:00 -0000 > Author: des > Date: Fri May 11 00:19:49 2018 > New Revision: 333476 > URL: https://svnweb.freebsd.org/changeset/base/333476 > > Log: > Slight cleanup of interface event logging. > > Make if_printf() use vlog() instead of vprintf(). This means it can no > longer return the number of characters printed, as it used to, but every > single call to if_printf() in the entire kernel ignores the return value > anyway; just return 0 so we don't have to change the prototype. > > Consistently use if_printf() throughout sys/net/if.c, instead of a > mixture of if_printf() and log(). > > In ifa_maintain_loopback_route(), don't needlessly log an error if we > either failed to add a route because it already existed or failed to > remove one because it did not. We still return an error code, though. Those are the only conditions under which I have ever seen this code log anything. These usually occur for me when a tunX device is going down, the route gets ripped out long before maintain_loopback ever has a chance to remove it. I still feel this whole maintain_loopback_route() is a implementaton of a hardcoded route policy in the kernel that we do not need, or want. > MFC after: 1 week > > Modified: > head/sys/net/if.c > > Modified: head/sys/net/if.c > ============================================================================== > --- head/sys/net/if.c Fri May 11 00:01:43 2018 (r333475) > +++ head/sys/net/if.c Fri May 11 00:19:49 2018 (r333476) > @@ -1832,9 +1832,10 @@ ifa_maintain_loopback_route(int cmd, const char *otype > > error = rtrequest1_fib(cmd, &info, NULL, ifp->if_fib); > > - if (error != 0) > - log(LOG_DEBUG, "%s: %s failed for interface %s: %u\n", > - __func__, otype, if_name(ifp), error); > + if (error != 0 && > + !(cmd == RTM_ADD && error == EEXIST) && > + !(cmd == RTM_DELETE && error == ENOENT)) > + if_printf(ifp, "%s failed: %d\n", otype, error); > > return (error); > } > @@ -2328,7 +2329,7 @@ do_link_state_change(void *arg, int pending) > if (pending > 1) > if_printf(ifp, "%d link states coalesced\n", pending); > if (log_link_state_change) > - log(LOG_NOTICE, "%s: link state changed to %s\n", ifp->if_xname, > + if_printf(ifp, "link state changed to %s\n", > (link_state == LINK_STATE_UP) ? "UP" : "DOWN" ); > EVENTHANDLER_INVOKE(ifnet_link_event, ifp, link_state); > CURVNET_RESTORE(); > @@ -2631,8 +2632,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, > else if (ifp->if_pcount == 0) > ifp->if_flags &= ~IFF_PROMISC; > if (log_promisc_mode_change) > - log(LOG_INFO, "%s: permanently promiscuous mode %s\n", > - ifp->if_xname, > + if_printf(ifp, "permanently promiscuous mode %s\n", > ((new_flags & IFF_PPROMISC) ? > "enabled" : "disabled")); > } > @@ -2695,8 +2695,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, > rt_ifannouncemsg(ifp, IFAN_DEPARTURE); > EVENTHANDLER_INVOKE(ifnet_departure_event, ifp); > > - log(LOG_INFO, "%s: changing name to '%s'\n", > - ifp->if_xname, new_name); > + if_printf(ifp, "changing name to '%s'\n", new_name); > > IF_ADDR_WLOCK(ifp); > strlcpy(ifp->if_xname, new_name, sizeof(ifp->if_xname)); > @@ -3199,8 +3198,7 @@ ifpromisc(struct ifnet *ifp, int pswitch) > /* If promiscuous mode status has changed, log a message */ > if (error == 0 && ((ifp->if_flags ^ oldflags) & IFF_PROMISC) && > log_promisc_mode_change) > - log(LOG_INFO, "%s: promiscuous mode %s\n", > - ifp->if_xname, > + if_printf(ifp, "promiscuous mode %s\n", > (ifp->if_flags & IFF_PROMISC) ? "enabled" : "disabled"); > return (error); > } > @@ -3905,16 +3903,16 @@ if_initname(struct ifnet *ifp, const char *name, int u > } > > int > -if_printf(struct ifnet *ifp, const char * fmt, ...) > +if_printf(struct ifnet *ifp, const char *fmt, ...) > { > + char if_fmt[256]; > va_list ap; > - int retval; > > - retval = printf("%s: ", ifp->if_xname); > + snprintf(if_fmt, sizeof(if_fmt), "%s: %s", ifp->if_xname, fmt); > va_start(ap, fmt); > - retval += vprintf(fmt, ap); > + vlog(LOG_INFO, if_fmt, ap); > va_end(ap); > - return (retval); > + return (0); > } > > void > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Fri May 11 01:21:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 800F5FAEB38; Fri, 11 May 2018 01:21:49 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 18F717BFF1; Fri, 11 May 2018 01:21:48 +0000 (UTC) (envelope-from des@des.no) Received: from next.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 0FD9DB2BF; Fri, 11 May 2018 01:21:48 +0000 (UTC) Received: by next.des.no (Postfix, from userid 1001) id 5163480BA; Fri, 11 May 2018 03:21:46 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: "Rodney W. Grimes" Cc: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333476 - head/sys/net In-Reply-To: <201805110101.w4B11m6w072994@pdx.rh.CN85.dnsmgr.net> (Rodney W. Grimes's message of "Thu, 10 May 2018 18:01:48 -0700 (PDT)") References: <201805110101.w4B11m6w072994@pdx.rh.CN85.dnsmgr.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (berkeley-unix) Date: Fri, 11 May 2018 03:21:46 +0200 Message-ID: <86po23vvf9.fsf@next.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 01:21:49 -0000 "Rodney W. Grimes" writes: > "Dag-Erling Sm=C3=B8rgrav" writes: > > In ifa_maintain_loopback_route(), don't needlessly log an error if we > > either failed to add a route because it already existed or failed to > > remove one because it did not. We still return an error code, though. > Those are the only conditions under which I have ever seen this code > log anything. These usually occur for me when a tunX device is going > down, the route gets ripped out long before maintain_loopback ever has > a chance to remove it. I have a few routers with hundreds of dynamically configured vlan interfaces, so I get a *lot* of these... DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@freebsd.org Fri May 11 01:26:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1553BFAED72; Fri, 11 May 2018 01:26:50 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io0-x22f.google.com (mail-io0-x22f.google.com [IPv6:2607:f8b0:4001:c06::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9738D7CB02; Fri, 11 May 2018 01:26:49 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io0-x22f.google.com with SMTP id g1-v6so5257126iob.2; Thu, 10 May 2018 18:26:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=P0xUteSJdznPNDdg3R5IXjh9nvE3jZBxmnUPjhxbik4=; b=YAbfADwTIcRN2kElgeEMd3h/2EYVtOOE57JiuMWC1d4pWS7zaQVHwGkd2xF87iL9X1 j1Rfw10K42DB80aWLsvBHsGZwg+dK/pvArdebj15r1ATLoAj1TjIbiLSRdaFnY2naTXr J0731XXMa9+lnUAv2bQjKPOFVrWgF+uAOjgOtbHG4dqFGQVG9p+Oix9VbDu76CeEMIX3 w0gKw1SD0gAUZbawgwW/LMVqeDfrLlc6mvWl9yEOFuvgajUVcbJbTsmsBDMWI7yWVXUo swoOJ8E0WlohmfWkXKx34XI5M3D04ykQrJHY30J+4twdDZjt79fOuJX+EWukhrSU5Ez8 fR1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=P0xUteSJdznPNDdg3R5IXjh9nvE3jZBxmnUPjhxbik4=; b=GreCHKn6h1A7aQ7StasAs5dLN3CRM1LXYszv/2zz6UIczx3izJx/gu8WQs5yYcyjaF sgBV+yB/o1agJBj8INq8qzL/p+8gDglIpTmjZJZrUfTGEIsc7cu9ZRmd1tLIa/hhmqHh rrh0wF63hgO7zT80midxuz2Uw8tOt0RWjvgY9cb9tNq/elw0nFt7DbkfAhhU7eDK1/kO hNAwvW0MNaDTaULw2f+5t2bYptHEug+0tyEbkivbMyAIVon57Gt9wmwY9B/qYY5gqNwO vaOrT+VIr+XmhkuPxWrm1j3SoFT/XFenbFjxTSLnQ9bVV9Jo03VvBA83+d2bfcgJ+6QB 0cnA== X-Gm-Message-State: ALKqPwe/RBBreyaREMdDtpMKbfLMqC5SeYo0RhntOHoyMg/FH9H3oPVh D5aknMfzttjm5dx6o+9J8LmpXd0Jogauf9KGuFA= X-Google-Smtp-Source: AB8JxZqaDJXQwUX55K2awp/ya2Kqw+3o6KG2xBmFuaAgdAS0k3JA0PQDHjV5cGfYFoczkr1jMOvnNzpWfT3ZeKxYkEg= X-Received: by 2002:a6b:298f:: with SMTP id p137-v6mr4006557iop.288.1526002009043; Thu, 10 May 2018 18:26:49 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.130.167 with HTTP; Thu, 10 May 2018 18:26:28 -0700 (PDT) In-Reply-To: References: <201805102010.w4AKA3Ww094768@repo.freebsd.org> <788634f4-7a63-36c9-2ebd-5842d464f324@cs.duke.edu> <31075786-70ed-10b9-fbc5-127996f87b1b@cs.duke.edu> <58b76dcb-b081-869b-8e05-dc0c4e7aa3be@cs.duke.edu> From: Ed Maste Date: Thu, 10 May 2018 21:26:28 -0400 X-Google-Sender-Auth: p1BTdjaejilxHOFGMzIfEWdOwAA Message-ID: Subject: Re: svn commit: r333470 - in head: share/mk sys/conf To: Warner Losh Cc: Andrew Gallatin , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org, Konstantin Belousov Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 01:26:50 -0000 On 10 May 2018 at 20:38, Warner Losh wrote: > > It's a shame we can't get a link-time error if a too-old ld is used rather > than silent failure. That's what this commit does: +.if defined(LINKER_FEATURES) && ${LINKER_FEATURES:Mifunc} == "" +.error amd64 kernel requires linker ifunc support +.endif Making ld.bfd itself error out (e.g., if it encounters STT_GNU_IFUNC as an unknown symbol type) could be done but would require that the patched ld.bfd be installed, defeating the purpose. The test has a possible false negative (producing a broken kernel instead of an error), if LINKER_FEATURES is not defined due to some unusual configuration. We could just drop the defined(LINKER_FEATURES) to avoid that, and introduce a possible false positive error. From owner-svn-src-head@freebsd.org Fri May 11 01:27:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 97304FAEE4B; Fri, 11 May 2018 01:27:57 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 0DB697D5C8; Fri, 11 May 2018 01:27:56 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4B1Ro2Q073115; Thu, 10 May 2018 18:27:50 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4B1RoUT073114; Thu, 10 May 2018 18:27:50 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805110127.w4B1RoUT073114@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333476 - head/sys/net In-Reply-To: <86po23vvf9.fsf@next.des.no> To: =?UTF-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Date: Thu, 10 May 2018 18:27:50 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 01:27:57 -0000 [ Charset UTF-8 unsupported, converting... ] > "Rodney W. Grimes" writes: > > "Dag-Erling Sm?rgrav" writes: > > > In ifa_maintain_loopback_route(), don't needlessly log an error if we > > > either failed to add a route because it already existed or failed to > > > remove one because it did not. We still return an error code, though. > > Those are the only conditions under which I have ever seen this code > > log anything. These usually occur for me when a tunX device is going > > down, the route gets ripped out long before maintain_loopback ever has > > a chance to remove it. > > I have a few routers with hundreds of dynamically configured vlan > interfaces, so I get a *lot* of these... So do I, and the thing I found best is to just totally rip out the ifa_maintain_loopback code and let bird deal with my routes. I do no need or want these routes created by this mechanism on my FreeBSD based routers, they only ever existed originally to use the MTU of the lo0 interface for things that wrongly open an IP address of an interface rather than 127.0.0.1. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Fri May 11 01:38:33 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99552FAF424; Fri, 11 May 2018 01:38:33 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id DD748807E1; Fri, 11 May 2018 01:38:32 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id CDEE542B500; Fri, 11 May 2018 11:38:29 +1000 (AEST) Date: Fri, 11 May 2018 11:38:29 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Konstantin Belousov cc: Bruce Evans , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 In-Reply-To: <20180510193816.GF6887@kib.kiev.ua> Message-ID: <20180511103724.O887@besplex.bde.org> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> <20180511012309.V3949@besplex.bde.org> <20180510193816.GF6887@kib.kiev.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=VJytp5HX c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=LREGYs_JFxRwAGW_iygA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 01:38:33 -0000 On Thu, 10 May 2018, Konstantin Belousov wrote: > On Fri, May 11, 2018 at 03:31:46AM +1000, Bruce Evans wrote: >> On Thu, 10 May 2018, Konstantin Belousov wrote: >> >>> Log: >>> Make fpusave() and fpurestore() on amd64 ifuncs. >>> >>> From now on, linking amd64 kernel requires either lld or newer ld.bfd. >> >> This breaks building with gcc: >> >> XX cc1: warnings being treated as errors >> XX ../../../amd64/amd64/fpu.c:195: warning: 'ifunc' attribute directive ignored [-Wattributes] >> ... >> XX ./machine/fpu.h:62: warning: previous declaration of 'fpurestore' was here > Yes. Nothing unexpected. Thus it is not suitable for commit. >> After building fpu.o with clang, linking doesn't reqire a newer ld, but >> booting does -- after linking with an older ld, the boot panics with a >> page fault near fork(). > Yes. I noted this in the commit message. > > emaste will commit the check shortly which would prevent using inadequate > linker for building kernel. Now it is broken even for clang: XX make: "../../../conf/../../../conf/kern.pre.mk" line 125: amd64 kernel requires linker ifunc support This uses a LINKER_FEATURES, but LINKER_FEATURES is not defined anywhere in the sys tree. It is defined in the src amd host tree in bsd.linker.mk. Kernel makefiles have been broken by adding a lot of dependencies on files not in the sys tree, but bsd.linker.mk doesn't seem to be included. Even "make -V LINKER_FEATURES" to determine what LINKER_FEATURES is is broken (it gives the above error). After backing out r333470, "make -V LINKER_FEATURES" works and gives " build-id filter retpoline" with both clang and gcc. LINKER_FEATURES seems to be hard-coded somewhere. Only the ld that will be used by the build knows its features. The ld is hard to find. My gcc is a shell script with lots of -B paths that eventually find ld. Links should be done by ${CC} to find this ld. But the kernel uses ${LD}. When this became incompatible earlier this year after working for about 15 years despite its logical incompatibility, I worked around the problem by adding "makeoptions LD=". My ld was pre-lld until yesterday. For this test, it is a symlink to the host's ld. This supports ifuncs, but LINKER_FEATURES says that it doesn't. The host (freefall) also doesn't support ifuncs according to "make -V LINKER_FEATURES" in src/bin/cat. Only bsd.pre.mk was broken in r333470. kern.mk doesn't have this check. It is a layering bug to not put such checks in kern.mk. >> ... >> This looks like a small or null pessimization. The branch in the old >> version is probably faster. The following simple test on Haswell shows >> that all reasonable versions have almost the same speed when cached: > Yes, I already noted and mjg noted that ifuncs are directed through PLT. > I remember that it was not the case when I did it the first time, but then > both compiler and linker were different. The test failed to explain why the branch-free version worked slower only when written in asm (7.25 cycles instead of 7). It was because I changed the return value from (xsave ? 1 : 0) to (xsave ? 2 : 1) to better match some asm versions. gcc -O only produces branch-free code for '1 : 0', and that is what I first tested for the C version (before that, I had forgotten that brranch-free cide might be better). gcc -O2 produces branch-free code for '2 : 1'. It generates the same code as for '1 : 0', then increments this. Neither -O nor -O2 uses cmov for some reason. The increment is 1 more instruction, but doesn't increase the time of 7 cycles. This is all with gcc-3.3.3. gcc-4.2.1 -O is "smarter" and generates "sbb %eax,%eax; add $2, %eax" to generate '2 : 1'. This also desn't change the time of 7 cycles. > I tried a quick experiment with adding -fvisibility=hidden to the kernel > compilation, but it still leaves ifunc relocations on PLT (and PLT correctly > consists only of ifuncs). > > I might look some more on it later. Anyway, there are more uses, and SMAP > plus pmap applications of ifunc are more clear. I selected amd64/fpu.c > for the initial commit to check toolchain in wild since this case is > simplest and easy to diagnose if failing, I hope. You need to find about 16 million uses per second at 4 GHz for this to give a 1% optimization ("this" = 0.25 cycles). -O2 and other optimizations give an improvement in this range, but break debugging so I turn them off. Except for clang, the -finline* flags for turning off some optimizations don't even work. A typical stack trace for clang usually has for almost all values even for debuggers that should be able to find the values in registers. ifuncs might also give . Debugging is already very broken by inlining small functions -- stack traces don't show the small functions or their args, but who a caller several layers high. All for optimizations in the 1-5% range for kernels, or a small fraction of that for total time. Bruce From owner-svn-src-head@freebsd.org Fri May 11 02:04:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE89AFAFD95; Fri, 11 May 2018 02:04:02 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5965C86F28; Fri, 11 May 2018 02:04:02 +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 3A01ECE1; Fri, 11 May 2018 02:04:02 +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 w4B242X1081197; Fri, 11 May 2018 02:04:02 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B242hH081196; Fri, 11 May 2018 02:04:02 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201805110204.w4B242hH081196@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Fri, 11 May 2018 02:04:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333478 - head/sys/powerpc/pseries X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/pseries X-SVN-Commit-Revision: 333478 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 02:04:02 -0000 Author: jhibbits Date: Fri May 11 02:04:01 2018 New Revision: 333478 URL: https://svnweb.freebsd.org/changeset/base/333478 Log: No need to bzero splpar_vpa entries splpar_vpa is in the BSS, so is already zeroed when the kernel starts up. Tested by: Leandro Lupori Modified: head/sys/powerpc/pseries/platform_chrp.c Modified: head/sys/powerpc/pseries/platform_chrp.c ============================================================================== --- head/sys/powerpc/pseries/platform_chrp.c Fri May 11 00:32:31 2018 (r333477) +++ head/sys/powerpc/pseries/platform_chrp.c Fri May 11 02:04:01 2018 (r333478) @@ -146,7 +146,6 @@ chrp_attach(platform_t plat) /* Set up important VPA fields */ for (i = 0; i < MAXCPU; i++) { - bzero(splpar_vpa[i], sizeof(splpar_vpa[i])); /* First two: VPA size */ splpar_vpa[i][4] = (uint8_t)((sizeof(splpar_vpa[i]) >> 8) & 0xff); From owner-svn-src-head@freebsd.org Fri May 11 02:07:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30455FB006B; Fri, 11 May 2018 02:07:14 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id BDB178720B; Fri, 11 May 2018 02:07:13 +0000 (UTC) (envelope-from des@des.no) Received: from next.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id 1CB60B3AC; Fri, 11 May 2018 02:07:13 +0000 (UTC) Received: by next.des.no (Postfix, from userid 1001) id 7037F80BE; Fri, 11 May 2018 04:07:11 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: "Rodney W. Grimes" Cc: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333476 - head/sys/net In-Reply-To: <201805110127.w4B1RoUT073114@pdx.rh.CN85.dnsmgr.net> (Rodney W. Grimes's message of "Thu, 10 May 2018 18:27:50 -0700 (PDT)") References: <201805110127.w4B1RoUT073114@pdx.rh.CN85.dnsmgr.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (berkeley-unix) Date: Fri, 11 May 2018 04:07:11 +0200 Message-ID: <86h8nfvtbk.fsf@next.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 02:07:14 -0000 "Rodney W. Grimes" writes: > I do no need or want these routes created by this mechanism on my > FreeBSD based routers, they only ever existed originally to use the > MTU of the lo0 interface for things that wrongly open an IP address of > an interface rather than 127.0.0.1. I'm not sure I understand enough of this to make an informed decision. Are you saying they serve no practical purpose ever on current systems? These are the entries that route all traffic to any of our own addresses over lo0, right? Like the bottom four here? des@hive ~% netstat -4rn | grep -w lo0 127.0.0.1 link#2 UH lo0 192.168.144.15 link#1 UHS lo0 192.168.144.16 link#1 UHS lo0 192.168.144.19 link#1 UHS lo0 192.168.144.30 link#1 UHS lo0 I'm going to try a kernel with that code #ifdefed out... DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@freebsd.org Fri May 11 02:17:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6D000FB0580; Fri, 11 May 2018 02:17:27 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-it0-x244.google.com (mail-it0-x244.google.com [IPv6:2607:f8b0:4001:c0b::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0810D69E1D; Fri, 11 May 2018 02:17:26 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-it0-x244.google.com with SMTP id n202-v6so397526ita.1; Thu, 10 May 2018 19:17:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=Env5SUrPEHf14ri4QpKkqeJk+KCR2sALi8iYIU8RC3w=; b=WDwA15GNrE/E9llfg6ANTMeNf/sq8OfmazpG5XbRzbBWPxUdYMjDtRxGa3wb2ckN1/ j7ruUFfVkF2/cmskODLdqavnT4KCqvj9BLuLpVNEebZLBGMJ/UwpkV42V/BnO80vlg3B WCtJowofo3PKIAZuLVZV0rpZg+DUwMVJFCxfES7Rn9Au7RWLN/anFvsOy09BJvsMuUkS kPUsaNIP94+fSIoUX8Khi+L38ZE4oE8m+kBAvSdKycu1GyRIaN1lanEnb43zMHKtSNUO kRHv5H77bN7ODFPfa23xN+xjUvmzQcupw+8NICJ4QZqjFZXLlFOf8NFI7gFzpH8G9RSL U5jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=Env5SUrPEHf14ri4QpKkqeJk+KCR2sALi8iYIU8RC3w=; b=hPf1VlVd6UDJYJwJaicAd5BREAAg8LsPm6TEcZHDUu65p9Pc31Wh92A0X0GQjA0e4A yyhWDxJvIJic2mN6HW+bHr/Wd4924lHZ7Wowz9Xy4G0HE/4gnzu45+/J7Ia9e0q40qgn EqkCZuFadGCmQrnijxPqwotBQRRzzMeao4C1CudVhAPK/xO290V6pCu2DDwssVgCfLTx JE48tIzYxrYwaHDx5Pwn4/VZQVh2rkNbn2em/UXOzImSHhB6mi3zDDaFpn14SYw70XkS N3BKQM8pxIg6euptGOuo4u06w2IAwJhSfqBgXeT0OqLhm2dETOaByQBH8xmfmEGFFGiU p5YA== X-Gm-Message-State: ALKqPwdUHyMa1GqRhlOerbggaUImtnXZBoY+FZcqncMrHIQKzT7rC4pV HeYxIk9cWdnHO5knpFg1Dk/nsoYAVrkra0d5nSM= X-Google-Smtp-Source: AB8JxZrK0NEeLuwGnlNUWRu2GW+e7GeSQHs1v1rC7614aykEI7HC7rUFPZUzPJWvTPdwG3iXTnOlcA5sJLMYx2y7R8Q= X-Received: by 2002:a24:3555:: with SMTP id k82-v6mr1335495ita.49.1526005046490; Thu, 10 May 2018 19:17:26 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.130.167 with HTTP; Thu, 10 May 2018 19:17:06 -0700 (PDT) In-Reply-To: <20180510193816.GF6887@kib.kiev.ua> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> <20180511012309.V3949@besplex.bde.org> <20180510193816.GF6887@kib.kiev.ua> From: Ed Maste Date: Thu, 10 May 2018 22:17:06 -0400 X-Google-Sender-Auth: I2mFA-KC1AD1FBWbo5uTSHgZWkI Message-ID: Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 To: Konstantin Belousov Cc: Bruce Evans , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 02:17:27 -0000 On 10 May 2018 at 15:38, Konstantin Belousov wrote: > > Yes, I already noted and mjg noted that ifuncs are directed through PLT. > I remember that it was not the case when I did it the first time, but then > both compiler and linker were different. I'm trying to find evidence of non-PLT ifuncs, but have been unsuccessful so far. >From ifunc.txt at https://sites.google.com/site/x32abi/documents: | All references to a STT_GNU_IFUNC symbol, including function call and | function pointer, will go through a PLT slot, which jumps to the address | stored in the GOT entry. If the STT_GNU_IFUNC symbol is locally defined, | a R_*_IRELATIVE relocation will be applied to the GOT entry at load time. | Otherwise, dynamic linker will lookup the symbol at the first call to the | function and update the GOT entry. This applies to all usages of | STT_GNU_IFUNC symbols in shared library, dynamic executable and static | executable. From owner-svn-src-head@freebsd.org Fri May 11 03:03:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A34CEFB1A1E; Fri, 11 May 2018 03:03:56 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it0-f51.google.com (mail-it0-f51.google.com [209.85.214.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 39FC17511B; Fri, 11 May 2018 03:03:56 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it0-f51.google.com with SMTP id n64-v6so475625itb.3; Thu, 10 May 2018 20:03:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=yPlDjEdNuyQeC8357+TDcXP1kXEo9lIT3N67jKIq4pA=; b=OrMOVl7ODlScomgyJI3B/ef7HiaI/1BEwodI4QXnkIiuP+n00ouPOABA4cDq6zQ9L+ 1UJfzsLU5uJZWX1tftv5+WVw7dakOrr1778U8cW24Qqe11+DQAUX4STEes1dlK11yMOk oHr0UyAmCujnNK4eaFZr+oO65EiuuHKlDnSBqMrwjxybXeq4bB4cBYHXvj3nWAHkiHCh lcH/abruNOJLkCFA1hBjXoNhEvrE8qrj1H0dDyDq9PeUsoRoNlep+vyVOxY5rf+zVr+F S98fSR7fF2Wf2K+i94FAW51bIHnvZTNRUdsu8YEos/JpNQXHnx2X6ssUi6urjMJYx4Xl s4Qg== X-Gm-Message-State: ALKqPwdRwrlctpnSA1ee9cy/9lJ1EF/7pg0hdyD3exqnJQEokvSZOrBg yS/OBCuGT/azpu27LiPOFJ2GDBPE X-Google-Smtp-Source: AB8JxZqH0AShzMtyoEXAcyWKs/nx9br/bHPcvwIu0nSOLbGaGE1Zu0kMfntFC3BfFaenarrtdL9KNQ== X-Received: by 2002:a24:cc83:: with SMTP id x125-v6mr1512268itf.120.1526007424838; Thu, 10 May 2018 19:57:04 -0700 (PDT) Received: from mail-io0-f172.google.com (mail-io0-f172.google.com. [209.85.223.172]) by smtp.gmail.com with ESMTPSA id q31-v6sm1082228ioi.37.2018.05.10.19.57.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 May 2018 19:57:04 -0700 (PDT) Received: by mail-io0-f172.google.com with SMTP id e12-v6so5407921iob.8; Thu, 10 May 2018 19:57:04 -0700 (PDT) X-Received: by 2002:a6b:a867:: with SMTP id r100-v6mr3920661ioe.143.1526007423975; Thu, 10 May 2018 19:57:03 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 2002:a02:a40b:0:0:0:0:0 with HTTP; Thu, 10 May 2018 19:57:03 -0700 (PDT) In-Reply-To: <201805101501.w4AF1iI0039082@repo.freebsd.org> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> From: Conrad Meyer Date: Thu, 10 May 2018 19:57:03 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 To: Konstantin Belousov , Ed Maste Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 03:03:56 -0000 On Thu, May 10, 2018 at 8:01 AM, Konstantin Belousov wrote: > Author: kib > Date: Thu May 10 15:01:43 2018 > New Revision: 333461 > URL: https://svnweb.freebsd.org/changeset/base/333461 > > Log: > Make fpusave() and fpurestore() on amd64 ifuncs. > > From now on, linking amd64 kernel requires either lld or newer ld.bfd. Hi, This commit seems to break amd64-gcc cross toolchain build (note, this is a cc error, not ld): In file included from /usr/src/sys/amd64/amd64/fpu.c:64:0: /usr/src/sys/amd64/amd64/fpu.c:195:22: error: ifunc is not supported on this target DEFINE_IFUNC(, void, fpusave, (void *), static) ^ ./x86/ifunc.h:55:19: note: in definition of macro 'DEFINE_IFUNC' qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \ ^~~~ /usr/src/sys/amd64/amd64/fpu.c:202:22: error: ifunc is not supported on this target DEFINE_IFUNC(, void, fpurestore, (void *), static) ^ ./x86/ifunc.h:55:19: note: in definition of macro 'DEFINE_IFUNC' qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \ ^~~~ --- fpu.o --- *** [fpu.o] Error code 1 Best, Conrad From owner-svn-src-head@freebsd.org Fri May 11 03:19:25 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9314CFB2199; Fri, 11 May 2018 03:19:25 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 E975077F22; Fri, 11 May 2018 03:19:24 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4B3JGLd073463; Thu, 10 May 2018 20:19:16 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4B3JGBv073462; Thu, 10 May 2018 20:19:16 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805110319.w4B3JGBv073462@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333476 - head/sys/net In-Reply-To: <86h8nfvtbk.fsf@next.des.no> To: =?UTF-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Date: Thu, 10 May 2018 20:19:16 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 03:19:25 -0000 [ Charset UTF-8 unsupported, converting... ] > "Rodney W. Grimes" writes: > > I do no need or want these routes created by this mechanism on my > > FreeBSD based routers, they only ever existed originally to use the > > MTU of the lo0 interface for things that wrongly open an IP address of > > an interface rather than 127.0.0.1. > > I'm not sure I understand enough of this to make an informed decision. > Are you saying they serve no practical purpose ever on current systems? > > These are the entries that route all traffic to any of our own addresses > over lo0, right? Like the bottom four here? Correct. > des@hive ~% netstat -4rn | grep -w lo0 > 127.0.0.1 link#2 UH lo0 > 192.168.144.15 link#1 UHS lo0 > 192.168.144.16 link#1 UHS lo0 > 192.168.144.19 link#1 UHS lo0 > 192.168.144.30 link#1 UHS lo0 > > I'm going to try a kernel with that code #ifdefed out... We did this back in the day so if you make a connection to your own IP (your 4 addresses above) then you use the MTU of lo0, which is usually 16k, instead of the MTU of the interface, which is usually 1500, or back in the day of SLIP was often 296. Eugene Grosbein says there is some use case for it where he has lots of tunX devices, but I just can not seem to understand why or what it is that he is doing that requires these routes. IIRC Linux has never had these routes. If you go back in the history of svn and read whey this was originally added it was to compensate for the fact that you lost the /etc/rc installed route if you did an if down/up, which is actually expected behavior, you loose ALL routes associtated with the IP of an interface if you down it. The CURRENT code makes it possible for you to ping the IP of a DOWNED interface due to this now silly lo0 route, just more demonstration of how wrong this idea is. This was caused by the addition of pinning these routes so that they stay in effect even when you down the interface. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Fri May 11 04:47:06 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C720FFB5426; Fri, 11 May 2018 04:47:06 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 746F56ADAC; Fri, 11 May 2018 04:47:06 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5644127E9; Fri, 11 May 2018 04:47:06 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B4l66A063047; Fri, 11 May 2018 04:47:06 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B4l69i063046; Fri, 11 May 2018 04:47:06 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805110447.w4B4l69i063046@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Fri, 11 May 2018 04:47:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333479 - head/sys/tests/epoch X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/tests/epoch X-SVN-Commit-Revision: 333479 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 04:47:07 -0000 Author: mmacy Date: Fri May 11 04:47:05 2018 New Revision: 333479 URL: https://svnweb.freebsd.org/changeset/base/333479 Log: Test priority handling in epoch test. - Double the number of test threads to mp_ncpu*2 - Give each thread a different scheduling priority Modified: head/sys/tests/epoch/epoch_test.c Modified: head/sys/tests/epoch/epoch_test.c ============================================================================== --- head/sys/tests/epoch/epoch_test.c Fri May 11 02:04:01 2018 (r333478) +++ head/sys/tests/epoch/epoch_test.c Fri May 11 04:47:05 2018 (r333479) @@ -38,6 +38,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include @@ -132,16 +134,24 @@ static struct epoch_test_instance etilist[MAXCPU]; static int test_modinit(void) { - int i, error; + struct thread *td; + int i, error, pri_range, pri_off; + pri_range = PRI_MIN_TIMESHARE - PRI_MIN_REALTIME; test_epoch = epoch_alloc(); - for (i = 0; i < mp_ncpus; i++) { + for (i = 0; i < mp_ncpus*2; i++) { etilist[i].threadid = i; error = kthread_add(testloop, &etilist[i], NULL, &testthreads[i], 0, 0, "epoch_test_%d", i); if (error) { printf("%s: kthread_add(epoch_test): error %d", __func__, error); + } else { + pri_off = (i*4)%pri_range; + td = testthreads[i]; + thread_lock(td); + sched_prio(td, PRI_MIN_REALTIME + pri_off); + thread_unlock(td); } } inited = 1; From owner-svn-src-head@freebsd.org Fri May 11 04:54:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4C27FB581E; Fri, 11 May 2018 04:54:13 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 53B9F6CF57; Fri, 11 May 2018 04:54:13 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3029D2987; Fri, 11 May 2018 04:54:13 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B4sDBk067947; Fri, 11 May 2018 04:54:13 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B4sDpx067946; Fri, 11 May 2018 04:54:13 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805110454.w4B4sDpx067946@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Fri, 11 May 2018 04:54:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333480 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333480 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 04:54:14 -0000 Author: mmacy Date: Fri May 11 04:54:12 2018 New Revision: 333480 URL: https://svnweb.freebsd.org/changeset/base/333480 Log: epoch(9): fix priority handling, make callback lists pcpu, and other fixes - Lend priority to preempted threads in epoch_wait to handle the case in which we've had priority lent to us. Previously we borrowed the priority of the lowest priority preempted thread. (pointed out by mjg@) - Don't attempt allocate memory per-domain on powerpc, we don't currently handle empty sockets (as is the case on jhibbits Talos' board). - Handle deferred callbacks as pcpu lists and poll the lists periodically. Currently the interval is 1/hz. - Drop the thread lock when adaptive spinning. Holding the lock starves other threads and can even lead to lockups. - Keep a generation count pcpu so that we don't keep spining if a thread has left and re-entered an epoch section. - Actually removed the callback from the callback list so that we don't double free. Sigh ... Approved by: sbruno@ Modified: head/sys/kern/subr_epoch.c Modified: head/sys/kern/subr_epoch.c ============================================================================== --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) +++ head/sys/kern/subr_epoch.c Fri May 11 04:54:12 2018 (r333480) @@ -54,9 +54,19 @@ MALLOC_DEFINE(M_EPOCH, "epoch", "epoch based reclamati /* arbitrary --- needs benchmarking */ #define MAX_ADAPTIVE_SPIN 5000 +#define EPOCH_EXITING 0x1 +#ifdef __amd64__ +#define EPOCH_ALIGN CACHE_LINE_SIZE*2 +#else +#define EPOCH_ALIGN CACHE_LINE_SIZE +#endif + SYSCTL_NODE(_kern, OID_AUTO, epoch, CTLFLAG_RW, 0, "epoch information"); SYSCTL_NODE(_kern_epoch, OID_AUTO, stats, CTLFLAG_RW, 0, "epoch stats"); +static int poll_intvl; +SYSCTL_INT(_kern_epoch, OID_AUTO, poll_intvl, CTLFLAG_RWTUN, + &poll_intvl, 0, "# of ticks to wait between garbage collecting deferred frees"); /* Stats. */ static counter_u64_t block_count; SYSCTL_COUNTER_U64(_kern_epoch_stats, OID_AUTO, nblocked, CTLFLAG_RW, @@ -81,20 +91,23 @@ TAILQ_HEAD(threadlist, thread); typedef struct epoch_record { ck_epoch_record_t er_record; volatile struct threadlist er_tdlist; + volatile uint32_t er_gen; uint32_t er_cpuid; } *epoch_record_t; struct epoch_pcpu_state { struct epoch_record eps_record; - volatile int eps_waiters; -} __aligned(CACHE_LINE_SIZE); + STAILQ_HEAD(, epoch_cb) eps_cblist; +} __aligned(EPOCH_ALIGN); struct epoch { - struct ck_epoch e_epoch; - struct mtx e_lock; + struct ck_epoch e_epoch __aligned(EPOCH_ALIGN); struct grouptask e_gtask; - STAILQ_HEAD(, epoch_cb) e_cblist; - struct epoch_pcpu_state *e_pcpu_dom[MAXMEMDOM]; + struct callout e_timer; + struct mtx e_lock; + int e_flags; + /* make sure that immutable data doesn't overlap with the gtask, callout, and mutex*/ + struct epoch_pcpu_state *e_pcpu_dom[MAXMEMDOM] __aligned(EPOCH_ALIGN); struct epoch_pcpu_state *e_pcpu[0]; }; @@ -103,13 +116,26 @@ static __read_mostly int domoffsets[MAXMEMDOM]; static __read_mostly int inited; static void epoch_call_task(void *context); -static bool usedomains = true; +#if defined(__powerpc64__) || defined(__powerpc__) +static bool usedomains = false; +#else +static bool usedomains = true; +#endif static void epoch_init(void *arg __unused) { int domain, count; + if (poll_intvl == 0) + poll_intvl = hz; + + block_count = counter_u64_alloc(M_WAITOK); + migrate_count = counter_u64_alloc(M_WAITOK); + turnstile_count = counter_u64_alloc(M_WAITOK); + switch_count = counter_u64_alloc(M_WAITOK); + if (usedomains == false) + return; count = domain = 0; domoffsets[0] = 0; for (domain = 0; domain < vm_ndomains; domain++) { @@ -127,10 +153,6 @@ epoch_init(void *arg __unused) } } - block_count = counter_u64_alloc(M_WAITOK); - migrate_count = counter_u64_alloc(M_WAITOK); - turnstile_count = counter_u64_alloc(M_WAITOK); - switch_count = counter_u64_alloc(M_WAITOK); inited = 1; } SYSINIT(epoch, SI_SUB_CPU + 1, SI_ORDER_FIRST, epoch_init, NULL); @@ -170,10 +192,22 @@ epoch_init_legacy(epoch_t epoch) er = &eps->eps_record; ck_epoch_register(&epoch->e_epoch, &er->er_record, NULL); TAILQ_INIT((struct threadlist *)(uintptr_t)&er->er_tdlist); + STAILQ_INIT(&eps->eps_cblist); er->er_cpuid = i; } } +static void +epoch_callout(void *arg) +{ + epoch_t epoch; + + epoch = arg; + GROUPTASK_ENQUEUE(&epoch->e_gtask); + if ((epoch->e_flags & EPOCH_EXITING) == 0) + callout_reset(&epoch->e_timer, poll_intvl, epoch_callout, epoch); +} + epoch_t epoch_alloc(void) { @@ -184,13 +218,14 @@ epoch_alloc(void) epoch = malloc(sizeof(struct epoch) + mp_ncpus*sizeof(void*), M_EPOCH, M_ZERO|M_WAITOK); ck_epoch_init(&epoch->e_epoch); - mtx_init(&epoch->e_lock, "epoch cblist", NULL, MTX_DEF); - STAILQ_INIT(&epoch->e_cblist); + mtx_init(&epoch->e_lock, "epoch callout", NULL, MTX_DEF); + callout_init_mtx(&epoch->e_timer, &epoch->e_lock, 0); taskqgroup_config_gtask_init(epoch, &epoch->e_gtask, epoch_call_task, "epoch call task"); if (usedomains) epoch_init_numa(epoch); else epoch_init_legacy(epoch); + callout_reset(&epoch->e_timer, poll_intvl, epoch_callout, epoch); return (epoch); } @@ -207,6 +242,15 @@ epoch_free(epoch_t epoch) MPASS(TAILQ_EMPTY(&eps->eps_record.er_tdlist)); } #endif + mtx_lock(&epoch->e_lock); + epoch->e_flags |= EPOCH_EXITING; + mtx_unlock(&epoch->e_lock); + /* + * Execute any lingering callbacks + */ + GROUPTASK_ENQUEUE(&epoch->e_gtask); + gtaskqueue_drain(epoch->e_gtask.gt_taskqueue, &epoch->e_gtask.gt_task); + callout_drain(&epoch->e_timer); mtx_destroy(&epoch->e_lock); taskqgroup_config_gtask_deinit(&epoch->e_gtask); if (usedomains) @@ -282,6 +326,7 @@ epoch_exit(epoch_t epoch) td->td_epochnest--; if (td->td_epochnest == 0) TAILQ_REMOVE(&eps->eps_record.er_tdlist, td, td_epochq); + eps->eps_record.er_gen++; critical_exit(); } @@ -311,8 +356,7 @@ epoch_block_handler(struct ck_epoch *global __unused, struct thread *td, *tdwait, *owner; struct turnstile *ts; struct lock_object *lock; - u_char prio; - int spincount; + int spincount, gen; eps = arg; record = __containerof(cr, struct epoch_record, er_record); @@ -327,10 +371,14 @@ epoch_block_handler(struct ck_epoch *global __unused, */ if ((tdwait = TAILQ_FIRST(&record->er_tdlist)) != NULL && TD_IS_RUNNING(tdwait)) { - while (tdwait == TAILQ_FIRST(&record->er_tdlist) && - TD_IS_RUNNING(tdwait) && spincount++ < MAX_ADAPTIVE_SPIN) { + gen = record->er_gen; + thread_unlock(td); + do { cpu_spinwait(); - } + } while (tdwait == TAILQ_FIRST(&record->er_tdlist) && + gen == record->er_gen && TD_IS_RUNNING(tdwait) && + spincount++ < MAX_ADAPTIVE_SPIN); + thread_lock(td); return; } @@ -360,10 +408,17 @@ epoch_block_handler(struct ck_epoch *global __unused, * priority thread (highest prio value) and drop our priority * to match to allow it to run. */ - prio = 0; TAILQ_FOREACH(tdwait, &record->er_tdlist, td_epochq) { - if (td->td_priority > prio) - prio = td->td_priority; + /* + * Propagate our priority to any other waiters to prevent us + * from starving them. They will have their original priority + * restore on exit from epoch_wait(). + */ + if (!TD_IS_INHIBITED(tdwait) && tdwait->td_priority > td->td_priority) { + thread_lock(tdwait); + sched_prio(tdwait, td->td_priority); + thread_unlock(tdwait); + } if (TD_IS_INHIBITED(tdwait) && TD_ON_LOCK(tdwait) && ((ts = tdwait->td_blocked) != NULL)) { /* @@ -401,12 +456,9 @@ epoch_block_handler(struct ck_epoch *global __unused, } /* * We didn't find any threads actually blocked on a lock - * we have nothing to do except set our priority to match - * that of the lowest value on the queue and context switch - * away. + * so we have nothing to do except context switch away. */ counter_u64_add(switch_count, 1); - sched_prio(td, prio); mi_switch(SW_VOL | SWT_RELINQUISH, NULL); /* @@ -464,41 +516,58 @@ epoch_wait(epoch_t epoch) /* restore thread priority */ sched_prio(td, old_prio); thread_unlock(td); - + KASSERT(td->td_locks == 0, + ("%d locks held", td->td_locks)); PICKUP_GIANT(); } void epoch_call(epoch_t epoch, epoch_context_t ctx, void (*callback) (epoch_context_t)) { + struct epoch_pcpu_state *eps; epoch_cb_t cb; cb = (void *)ctx; + + MPASS(cb->ec_callback == NULL); + MPASS(cb->ec_link.stqe_next == NULL); + MPASS(epoch); + MPASS(callback); cb->ec_callback = callback; - mtx_lock(&epoch->e_lock); - STAILQ_INSERT_TAIL(&epoch->e_cblist, cb, ec_link); - GROUPTASK_ENQUEUE(&epoch->e_gtask); - mtx_unlock(&epoch->e_lock); + critical_enter(); + eps = epoch->e_pcpu[curcpu]; + STAILQ_INSERT_HEAD(&eps->eps_cblist, cb, ec_link); + critical_exit(); } static void epoch_call_task(void *context) { + struct epoch_pcpu_state *eps; epoch_t epoch; epoch_cb_t cb; + struct thread *td; + int cpu; STAILQ_HEAD(, epoch_cb) tmp_head; epoch = context; STAILQ_INIT(&tmp_head); - - mtx_lock(&epoch->e_lock); - STAILQ_CONCAT(&tmp_head, &epoch->e_cblist); - mtx_unlock(&epoch->e_lock); - + td = curthread; + thread_lock(td); + CPU_FOREACH(cpu) { + sched_bind(td, cpu); + eps = epoch->e_pcpu[cpu]; + if (!STAILQ_EMPTY(&eps->eps_cblist)) + STAILQ_CONCAT(&tmp_head, &eps->eps_cblist); + } + sched_unbind(td); + thread_unlock(td); epoch_wait(epoch); - while ((cb = STAILQ_FIRST(&tmp_head)) != NULL) + while ((cb = STAILQ_FIRST(&tmp_head)) != NULL) { + STAILQ_REMOVE_HEAD(&tmp_head, ec_link); cb->ec_callback((void*)cb); + } } int From owner-svn-src-head@freebsd.org Fri May 11 05:00:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4C5BFB59C4; Fri, 11 May 2018 05:00:41 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 985D76E352; Fri, 11 May 2018 05:00:41 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7956E29A4; Fri, 11 May 2018 05:00:41 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B50fJK068286; Fri, 11 May 2018 05:00:41 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B50eA1068281; Fri, 11 May 2018 05:00:40 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805110500.w4B50eA1068281@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Fri, 11 May 2018 05:00:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333481 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333481 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 05:00:42 -0000 Author: mmacy Date: Fri May 11 05:00:40 2018 New Revision: 333481 URL: https://svnweb.freebsd.org/changeset/base/333481 Log: Allow different bridge types to coexist if_bridge has a lot of limitations that make it scale poorly to higher data rates. In my projects/VPC branch I leverage the bridge interface between layers for my high speed soft switch as well as for purposes of stacking in general. Reviewed by: sbruno@ Approved by: sbruno@ Differential Revision: https://reviews.freebsd.org/D15344 Modified: head/sys/net/if.c head/sys/net/if_bridge.c head/sys/net/if_bridgevar.h head/sys/net/if_ethersubr.c head/sys/net/if_var.h Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Fri May 11 04:54:12 2018 (r333480) +++ head/sys/net/if.c Fri May 11 05:00:40 2018 (r333481) @@ -221,7 +221,6 @@ static MALLOC_DEFINE(M_IFDESCR, "ifdescr", "ifnet desc static struct sx ifdescr_sx; SX_SYSINIT(ifdescr_sx, &ifdescr_sx, "ifnet descr"); -void (*bridge_linkstate_p)(struct ifnet *ifp); void (*ng_ether_link_state_p)(struct ifnet *ifp, int state); void (*lagg_linkstate_p)(struct ifnet *ifp, int state); /* These are external hooks for CARP. */ @@ -2318,7 +2317,7 @@ do_link_state_change(void *arg, int pending) if (ifp->if_carp) (*carp_linkstate_p)(ifp); if (ifp->if_bridge) - (*bridge_linkstate_p)(ifp); + ifp->if_bridge_linkstate(ifp); if (ifp->if_lagg) (*lagg_linkstate_p)(ifp, link_state); Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Fri May 11 04:54:12 2018 (r333480) +++ head/sys/net/if_bridge.c Fri May 11 05:00:40 2018 (r333481) @@ -340,7 +340,6 @@ static int bridge_fragment(struct ifnet *, struct mbuf static void bridge_linkstate(struct ifnet *ifp); static void bridge_linkcheck(struct bridge_softc *sc); -extern void (*bridge_linkstate_p)(struct ifnet *ifp); /* The default bridge vlan is 1 (IEEE 802.1Q-2003 Table 9-2) */ #define VLANTAGOF(_m) \ @@ -556,10 +555,7 @@ bridge_modevent(module_t mod, int type, void *data) bridge_rtnode_zone = uma_zcreate("bridge_rtnode", sizeof(struct bridge_rtnode), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); - bridge_input_p = bridge_input; - bridge_output_p = bridge_output; bridge_dn_p = bridge_dummynet; - bridge_linkstate_p = bridge_linkstate; bridge_detach_cookie = EVENTHANDLER_REGISTER( ifnet_departure_event, bridge_ifdetach, NULL, EVENTHANDLER_PRI_ANY); @@ -568,10 +564,7 @@ bridge_modevent(module_t mod, int type, void *data) EVENTHANDLER_DEREGISTER(ifnet_departure_event, bridge_detach_cookie); uma_zdestroy(bridge_rtnode_zone); - bridge_input_p = NULL; - bridge_output_p = NULL; bridge_dn_p = NULL; - bridge_linkstate_p = NULL; break; default: return (EOPNOTSUPP); @@ -1041,6 +1034,9 @@ bridge_delete_member(struct bridge_softc *sc, struct b KASSERT(bif->bif_addrcnt == 0, ("%s: %d bridge routes referenced", __func__, bif->bif_addrcnt)); + ifs->if_bridge_output = NULL; + ifs->if_bridge_input = NULL; + ifs->if_bridge_linkstate = NULL; BRIDGE_UNLOCK(sc); if (!gone) { switch (ifs->if_type) { @@ -1198,6 +1194,9 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) } ifs->if_bridge = sc; + ifs->if_bridge_output = bridge_output; + ifs->if_bridge_input = bridge_input; + ifs->if_bridge_linkstate = bridge_linkstate; bstp_create(&sc->sc_stp, &bif->bif_stp, bif->bif_ifp); /* * XXX: XLOCK HERE!?! Modified: head/sys/net/if_bridgevar.h ============================================================================== --- head/sys/net/if_bridgevar.h Fri May 11 04:54:12 2018 (r333480) +++ head/sys/net/if_bridgevar.h Fri May 11 05:00:40 2018 (r333481) @@ -309,23 +309,20 @@ struct ifbpstpconf { (_sc)->sc_iflist_xcnt--; \ } while (0) -#define BRIDGE_INPUT(_ifp, _m) do { \ - KASSERT(bridge_input_p != NULL, \ +#define BRIDGE_INPUT(_ifp, _m) do { \ + KASSERT((_ifp)->if_bridge_input != NULL, \ ("%s: if_bridge not loaded!", __func__)); \ - _m = (*bridge_input_p)(_ifp, _m); \ + _m = (*(_ifp)->if_bridge_input)(_ifp, _m); \ if (_m != NULL) \ _ifp = _m->m_pkthdr.rcvif; \ } while (0) #define BRIDGE_OUTPUT(_ifp, _m, _err) do { \ - KASSERT(bridge_output_p != NULL, \ + KASSERT((_ifp)->if_bridge_output != NULL, \ ("%s: if_bridge not loaded!", __func__)); \ - _err = (*bridge_output_p)(_ifp, _m, NULL, NULL); \ + _err = (*(_ifp)->if_bridge_output)(_ifp, _m, NULL, NULL); \ } while (0) -extern struct mbuf *(*bridge_input_p)(struct ifnet *, struct mbuf *); -extern int (*bridge_output_p)(struct ifnet *, struct mbuf *, - struct sockaddr *, struct rtentry *); extern void (*bridge_dn_p)(struct mbuf *, struct ifnet *); #endif /* _KERNEL */ Modified: head/sys/net/if_ethersubr.c ============================================================================== --- head/sys/net/if_ethersubr.c Fri May 11 04:54:12 2018 (r333480) +++ head/sys/net/if_ethersubr.c Fri May 11 05:00:40 2018 (r333481) @@ -102,9 +102,6 @@ void (*ng_ether_detach_p)(struct ifnet *ifp); void (*vlan_input_p)(struct ifnet *, struct mbuf *); /* if_bridge(4) support */ -struct mbuf *(*bridge_input_p)(struct ifnet *, struct mbuf *); -int (*bridge_output_p)(struct ifnet *, struct mbuf *, - struct sockaddr *, struct rtentry *); void (*bridge_dn_p)(struct mbuf *, struct ifnet *); /* if_lagg(4) support */ Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Fri May 11 04:54:12 2018 (r333480) +++ head/sys/net/if_var.h Fri May 11 05:00:40 2018 (r333481) @@ -321,6 +321,10 @@ struct ifnet { struct route *); void (*if_input) /* input routine (from h/w driver) */ (struct ifnet *, struct mbuf *); + struct mbuf *(*if_bridge_input)(struct ifnet *, struct mbuf *); + int (*if_bridge_output)(struct ifnet *, struct mbuf *, struct sockaddr *, + struct rtentry *); + void (*if_bridge_linkstate)(struct ifnet *ifp); if_start_fn_t if_start; /* initiate output routine */ if_ioctl_fn_t if_ioctl; /* ioctl routine */ if_init_fn_t if_init; /* Init routine */ From owner-svn-src-head@freebsd.org Fri May 11 05:26:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33C14FB73C1; Fri, 11 May 2018 05:26:27 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D945773D59; Fri, 11 May 2018 05:26:26 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1033) id B8B3E220B0; Fri, 11 May 2018 05:26:26 +0000 (UTC) Date: Fri, 11 May 2018 05:26:26 +0000 From: Alexey Dokuchaev To: Jason Evans Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333477 - 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: <20180511052626.GA17584@FreeBSD.org> References: <201805110032.w4B0WWbf036006@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805110032.w4B0WWbf036006@repo.freebsd.org> User-Agent: Mutt/1.9.5 (2018-04-13) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 05:26:27 -0000 On Fri, May 11, 2018 at 12:32:32AM +0000, Jason Evans wrote: > New Revision: 333477 > URL: https://svnweb.freebsd.org/changeset/base/333477 > > Log: > Update jemalloc to version 5.1.0. > > [...] > + Bug fixes (most of the issues are only relevant to jemalloc 5.0): > + - Fix a few background thread initialization and shutdown issues. > + - Fix a FreeBSD bootstrap assertion. > + - Handle 32 bit mutex counters. > + - Fix a indexing bug when creating background threads. Interesting. May I remind you of PR 220767 which describes a hang that exhibited by some programs after jemalloc 5.0.0 update? (I've tried to reach out for you before but never got any reply.) https://lists.freebsd.org/pipermail/svn-src-head/2018-January/108351.html https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220767 ./danfe From owner-svn-src-head@freebsd.org Fri May 11 06:55:03 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7733FB9E1A; Fri, 11 May 2018 06:55:03 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 88775878AB; Fri, 11 May 2018 06:55:03 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6538F4171; Fri, 11 May 2018 06:55:03 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B6t3eA032477; Fri, 11 May 2018 06:55:03 GMT (envelope-from eadler@FreeBSD.org) Received: (from eadler@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B6t3sH032476; Fri, 11 May 2018 06:55:03 GMT (envelope-from eadler@FreeBSD.org) Message-Id: <201805110655.w4B6t3sH032476@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eadler set sender to eadler@FreeBSD.org using -f From: Eitan Adler Date: Fri, 11 May 2018 06:55:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333482 - head/usr.bin/expand X-SVN-Group: head X-SVN-Commit-Author: eadler X-SVN-Commit-Paths: head/usr.bin/expand X-SVN-Commit-Revision: 333482 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 06:55:04 -0000 Author: eadler Date: Fri May 11 06:55:02 2018 New Revision: 333482 URL: https://svnweb.freebsd.org/changeset/base/333482 Log: [expand] add __dead2 annotation to usage Modified: head/usr.bin/expand/expand.c Modified: head/usr.bin/expand/expand.c ============================================================================== --- head/usr.bin/expand/expand.c Fri May 11 05:00:40 2018 (r333481) +++ head/usr.bin/expand/expand.c Fri May 11 06:55:02 2018 (r333482) @@ -59,7 +59,7 @@ static int nstops; static int tabstops[100]; static void getstops(char *); -static void usage(void); +static void usage(void) __dead2; int main(int argc, char *argv[]) From owner-svn-src-head@freebsd.org Fri May 11 06:59:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45613FC3089; Fri, 11 May 2018 06:59:55 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E8E7268817; Fri, 11 May 2018 06:59:54 +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 CBC594176; Fri, 11 May 2018 06:59:54 +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 w4B6xsP3032677; Fri, 11 May 2018 06:59:54 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B6xsan032676; Fri, 11 May 2018 06:59:54 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805110659.w4B6xsan032676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 11 May 2018 06:59:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333483 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333483 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 06:59:55 -0000 Author: mjg Date: Fri May 11 06:59:54 2018 New Revision: 333483 URL: https://svnweb.freebsd.org/changeset/base/333483 Log: rmlock: partially depessimize lock/unlock fastpath Previusly the slow path was folded in and partially jumped over in the common case. Modified: head/sys/kern/kern_rmlock.c Modified: head/sys/kern/kern_rmlock.c ============================================================================== --- head/sys/kern/kern_rmlock.c Fri May 11 06:55:02 2018 (r333482) +++ head/sys/kern/kern_rmlock.c Fri May 11 06:59:54 2018 (r333483) @@ -344,7 +344,7 @@ rm_sysinit(void *arg) rm_init_flags(args->ra_rm, args->ra_desc, args->ra_flags); } -static int +static __noinline int _rm_rlock_hard(struct rmlock *rm, struct rm_priotracker *tracker, int trylock) { struct pcpu *pc; @@ -459,15 +459,15 @@ _rm_rlock(struct rmlock *rm, struct rm_priotracker *tr * Fast path to combine two common conditions into a single * conditional jump. */ - if (0 == (td->td_owepreempt | - CPU_ISSET(pc->pc_cpuid, &rm->rm_writecpus))) + if (__predict_true(0 == (td->td_owepreempt | + CPU_ISSET(pc->pc_cpuid, &rm->rm_writecpus)))) return (1); /* We do not have a read token and need to acquire one. */ return _rm_rlock_hard(rm, tracker, trylock); } -static void +static __noinline void _rm_unlock_hard(struct thread *td,struct rm_priotracker *tracker) { @@ -518,7 +518,7 @@ _rm_runlock(struct rmlock *rm, struct rm_priotracker * if (rm->lock_object.lo_flags & LO_SLEEPABLE) THREAD_SLEEPING_OK(); - if (0 == (td->td_owepreempt | tracker->rmp_flags)) + if (__predict_true(0 == (td->td_owepreempt | tracker->rmp_flags))) return; _rm_unlock_hard(td, tracker); From owner-svn-src-head@freebsd.org Fri May 11 07:04:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7CDEFC34AF; Fri, 11 May 2018 07:04: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 642CA6A7B6; Fri, 11 May 2018 07:04: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 444824320; Fri, 11 May 2018 07:04: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 w4B74wGY037310; Fri, 11 May 2018 07:04:58 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B74wA2037309; Fri, 11 May 2018 07:04:58 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805110704.w4B74wA2037309@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 11 May 2018 07:04:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333484 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 333484 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:04:59 -0000 Author: mjg Date: Fri May 11 07:04:57 2018 New Revision: 333484 URL: https://svnweb.freebsd.org/changeset/base/333484 Log: uma: increase alignment to 128 bytes on amd64 Current UMA internals are not suited for efficient operation in multi-socket environments. In particular there is very common use of MAXCPU arrays and other fields which are not always properly aligned and are not local for target threads (apart from the first node of course). Turns out the existing UMA_ALIGN macro can be used to mostly work around the problem until the code get fixed. The current setting of 64 bytes runs into trouble when adjacent cache line prefetcher gets to work. An example 128-way benchmark doing a lot of malloc/frees has the following instruction samples: before: kernel`lf_advlockasync+0x43b 32940 kernel`malloc+0xe5 42380 kernel`bzero+0x19 47798 kernel`spinlock_exit+0x26 60423 kernel`0xffffffff80 78238 0x0 136947 kernel`uma_zfree_arg+0x46 159594 kernel`uma_zalloc_arg+0x672 180556 kernel`uma_zfree_arg+0x2a 459923 kernel`uma_zalloc_arg+0x5ec 489910 after: kernel`bzero+0xd 46115 kernel`lf_advlockasync+0x25f 46134 kernel`lf_advlockasync+0x38a 49078 kernel`fget_unlocked+0xd1 49942 kernel`lf_advlockasync+0x43b 55392 kernel`copyin+0x4a 56963 kernel`bzero+0x19 81983 kernel`spinlock_exit+0x26 91889 kernel`0xffffffff80 136357 0x0 239424 See the review for more details. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D15346 Modified: head/sys/vm/uma_int.h Modified: head/sys/vm/uma_int.h ============================================================================== --- head/sys/vm/uma_int.h Fri May 11 06:59:54 2018 (r333483) +++ head/sys/vm/uma_int.h Fri May 11 07:04:57 2018 (r333484) @@ -177,7 +177,7 @@ struct uma_hash { * align field or structure to cache line */ #if defined(__amd64__) -#define UMA_ALIGN __aligned(CACHE_LINE_SIZE) +#define UMA_ALIGN __aligned(128) #else #define UMA_ALIGN #endif From owner-svn-src-head@freebsd.org Fri May 11 07:24:30 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41F76FC3FFE; Fri, 11 May 2018 07:24:30 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay01.pair.com (relay01.pair.com [209.68.5.15]) (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 D2C266FAE7; Fri, 11 May 2018 07:24:29 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay01.pair.com (Postfix) with ESMTP id 9E778D010B3; Fri, 11 May 2018 03:18:56 -0400 (EDT) Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.9/8.14.9) with ESMTP id w4B7IsxF035547 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 11 May 2018 09:18:54 +0200 (CEST) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.9/8.14.9/Submit) id w4B7IsKm035546; Fri, 11 May 2018 09:18:54 +0200 (CEST) (envelope-from pho) Date: Fri, 11 May 2018 09:18:54 +0200 From: Peter Holm To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333480 - head/sys/kern Message-ID: <20180511071854.GA35451@x2.osted.lan> References: <201805110454.w4B4sDpx067946@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805110454.w4B4sDpx067946@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:24:30 -0000 On Fri, May 11, 2018 at 04:54:13AM +0000, Matt Macy wrote: > Author: mmacy > Date: Fri May 11 04:54:12 2018 > New Revision: 333480 > URL: https://svnweb.freebsd.org/changeset/base/333480 > > Log: > epoch(9): fix priority handling, make callback lists pcpu, and other fixes > > - Lend priority to preempted threads in epoch_wait to handle the case > in which we've had priority lent to us. Previously we borrowed the > priority of the lowest priority preempted thread. (pointed out by mjg@) > > - Don't attempt allocate memory per-domain on powerpc, we don't currently > handle empty sockets (as is the case on jhibbits Talos' board). > > - Handle deferred callbacks as pcpu lists and poll the lists periodically. > Currently the interval is 1/hz. > > - Drop the thread lock when adaptive spinning. Holding the lock starves > other threads and can even lead to lockups. > > - Keep a generation count pcpu so that we don't keep spining if a thread > has left and re-entered an epoch section. > > - Actually removed the callback from the callback list so that we don't > double free. Sigh ... > > Approved by: sbruno@ > > Modified: > head/sys/kern/subr_epoch.c > > Modified: head/sys/kern/subr_epoch.c > ============================================================================== > --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) Could this be yours? cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed WARNING: WITNESS option enabled, expect reduced performance. WARNING: DIAGNOSTIC option enabled, expect reduced performance. Trying to mount root from ufs:/dev/da0p2 [rw]... Expensive timeout(9) function: 0xffffffff809f20d0(0xffffffff81af5140) 0.006730830 s uhub1: 4 ports with 4 removable, self powered kernel trap 12 with interrupts disabled Fatal trap 12: page fault while in kernel mode cpuid = 12; apic id = 20 fault virtual address = 0x100 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff80bb68db stack pointer = 0x0:0xfffffe00004e19b0 frame pointer = 0x0:0xfffffe00004e19f0 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = resume, IOPL = 0 current process = 0 (config_0) [ thread pid 0 tid 100081 ] Stopped at epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx db> show registers cs 0x20 ds 0x3b ll+0x1a es 0x3b ll+0x1a fs 0x13 gs 0x1b ss 0 rax 0 rcx 0x858 ll+0x837 rdx 0xffffffff812f6968 rbx 0xc rsp 0xfffffe00004e19b0 rbp 0xfffffe00004e19f0 rsi 0x14 rdi 0 r8 0xfffff800038f3000 r9 0xffffffff81ff1620 vmspace0+0x130 r10 0xfffff800038f3000 r11 0x40 ll+0x1f r12 0xfffffe00004e19b8 r13 0xc r14 0xfffff8001f0ed400 r15 0xfffff800038f3000 rip 0xffffffff80bb68db epoch_call_task+0x7b rflags 0x10086 epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx db> bt Tracing pid 0 tid 100081 td 0xfffff800038f3000 epoch_call_task() at epoch_call_task+0x7b/frame 0xfffffe00004e19f0 gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe00004e1a40 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00004e1a70 fork_exit() at fork_exit+0x84/frame 0xfffffe00004e1ab0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004e1ab0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- db> x/s version version: FreeBSD 12.0-CURRENT #0 r333481: Fri May 11 09:08:40 CEST 2018\012 pho@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 db> - Peter From owner-svn-src-head@freebsd.org Fri May 11 07:29:32 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B070CFC5424; Fri, 11 May 2018 07:29:32 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (unknown [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 600617070B; Fri, 11 May 2018 07:29:32 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-io0-f179.google.com (mail-io0-f179.google.com [209.85.223.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 2542119AD5; Fri, 11 May 2018 07:29:32 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-io0-f179.google.com with SMTP id e20-v6so5990100iof.4; Fri, 11 May 2018 00:29:32 -0700 (PDT) X-Gm-Message-State: ALKqPwdgwi/i4fNDgcrTWeuXLaqXGxi8Lb/Xm3lOl9xafZ2cDj/Ruk2s qYcqn4Sar5LumLygSmBbnES8oe163Pm9iMQ3LJg= X-Google-Smtp-Source: AB8JxZravO3N1cc3H/4qSlBHOQZIQd+nbu794tQBNZTPiO+Wsp4MvKEhBARTuWEfgLm9SFCI0f1N/PXpnTHB4g2Olis= X-Received: by 2002:a6b:3b42:: with SMTP id i63-v6mr4617759ioa.133.1526023771272; Fri, 11 May 2018 00:29:31 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:3e4a:0:0:0:0:0 with HTTP; Fri, 11 May 2018 00:29:30 -0700 (PDT) In-Reply-To: <20180511071854.GA35451@x2.osted.lan> References: <201805110454.w4B4sDpx067946@repo.freebsd.org> <20180511071854.GA35451@x2.osted.lan> From: Matthew Macy Date: Fri, 11 May 2018 00:29:30 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333480 - head/sys/kern To: Peter Holm Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:29:32 -0000 Yes. Can you give me the line number for epoch_call_task+0x7b On Fri, May 11, 2018 at 12:18 AM, Peter Holm wrote: > On Fri, May 11, 2018 at 04:54:13AM +0000, Matt Macy wrote: >> Author: mmacy >> Date: Fri May 11 04:54:12 2018 >> New Revision: 333480 >> URL: https://svnweb.freebsd.org/changeset/base/333480 >> >> Log: >> epoch(9): fix priority handling, make callback lists pcpu, and other fixes >> >> - Lend priority to preempted threads in epoch_wait to handle the case >> in which we've had priority lent to us. Previously we borrowed the >> priority of the lowest priority preempted thread. (pointed out by mjg@) >> >> - Don't attempt allocate memory per-domain on powerpc, we don't currently >> handle empty sockets (as is the case on jhibbits Talos' board). >> >> - Handle deferred callbacks as pcpu lists and poll the lists periodically. >> Currently the interval is 1/hz. >> >> - Drop the thread lock when adaptive spinning. Holding the lock starves >> other threads and can even lead to lockups. >> >> - Keep a generation count pcpu so that we don't keep spining if a thread >> has left and re-entered an epoch section. >> >> - Actually removed the callback from the callback list so that we don't >> double free. Sigh ... >> >> Approved by: sbruno@ >> >> Modified: >> head/sys/kern/subr_epoch.c >> >> Modified: head/sys/kern/subr_epoch.c >> ============================================================================== >> --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) > > Could this be yours? > > cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed > WARNING: WITNESS option enabled, expect reduced performance. > WARNING: DIAGNOSTIC option enabled, expect reduced performance. > Trying to mount root from ufs:/dev/da0p2 [rw]... > Expensive timeout(9) function: 0xffffffff809f20d0(0xffffffff81af5140) 0.006730830 s > uhub1: 4 ports with 4 removable, self powered > kernel trap 12 with interrupts disabled > > > Fatal trap 12: page fault while in kernel mode > cpuid = 12; apic id = 20 > fault virtual address = 0x100 > fault code = supervisor read data, page not present > instruction pointer = 0x20:0xffffffff80bb68db > stack pointer = 0x0:0xfffffe00004e19b0 > frame pointer = 0x0:0xfffffe00004e19f0 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, long 1, def32 0, gran 1 > processor eflags = resume, IOPL = 0 > current process = 0 (config_0) > [ thread pid 0 tid 100081 ] > Stopped at epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx > db> show registers > cs 0x20 > ds 0x3b ll+0x1a > es 0x3b ll+0x1a > fs 0x13 > gs 0x1b > ss 0 > rax 0 > rcx 0x858 ll+0x837 > rdx 0xffffffff812f6968 > rbx 0xc > rsp 0xfffffe00004e19b0 > rbp 0xfffffe00004e19f0 > rsi 0x14 > rdi 0 > r8 0xfffff800038f3000 > r9 0xffffffff81ff1620 vmspace0+0x130 > r10 0xfffff800038f3000 > r11 0x40 ll+0x1f > r12 0xfffffe00004e19b8 > r13 0xc > r14 0xfffff8001f0ed400 > r15 0xfffff800038f3000 > rip 0xffffffff80bb68db epoch_call_task+0x7b > rflags 0x10086 > epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx > db> bt > Tracing pid 0 tid 100081 td 0xfffff800038f3000 > epoch_call_task() at epoch_call_task+0x7b/frame 0xfffffe00004e19f0 > gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe00004e1a40 > gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00004e1a70 > fork_exit() at fork_exit+0x84/frame 0xfffffe00004e1ab0 > fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004e1ab0 > --- trap 0, rip = 0, rsp = 0, rbp = 0 --- > db> x/s version > version: FreeBSD 12.0-CURRENT #0 r333481: Fri May 11 09:08:40 CEST 2018\012 pho@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 > db> > > - Peter From owner-svn-src-head@freebsd.org Fri May 11 07:36:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 388C1FC584F; Fri, 11 May 2018 07:36:42 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DCF2B72CDF; Fri, 11 May 2018 07:36:41 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-io0-f180.google.com (mail-io0-f180.google.com [209.85.223.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 9D26D19BCF; Fri, 11 May 2018 07:36:41 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-io0-f180.google.com with SMTP id e78-v6so6005645iod.0; Fri, 11 May 2018 00:36:41 -0700 (PDT) X-Gm-Message-State: ALKqPwdHVHfc5S5yTm9oKGhzbAO0oQmVrU2hYy1F78WqLZVA7/0JH/0n GvaVqCq6Dm3i5wytalbLLlY/wuyhFk/yfxptQwY= X-Google-Smtp-Source: AB8JxZqs3z8rQhjZKATxw7vsxRdOhxMmMSPUJd3fv2qSGJt93qAp8FZoIBNdft/4W+81V1v1Ikc5ug8Z/E5jaExsIGE= X-Received: by 2002:a6b:5009:: with SMTP id e9-v6mr4679229iob.5.1526024201021; Fri, 11 May 2018 00:36:41 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:3e4a:0:0:0:0:0 with HTTP; Fri, 11 May 2018 00:36:40 -0700 (PDT) In-Reply-To: References: <201805110454.w4B4sDpx067946@repo.freebsd.org> <20180511071854.GA35451@x2.osted.lan> From: Matthew Macy Date: Fri, 11 May 2018 00:36:40 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333480 - head/sys/kern To: Peter Holm Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:36:42 -0000 - How many cores? How many sockets? - Any special config options other than DIAGNOSTIC? On Fri, May 11, 2018 at 12:29 AM, Matthew Macy wrote: > Yes. Can you give me the line number for epoch_call_task+0x7b > > > On Fri, May 11, 2018 at 12:18 AM, Peter Holm wrote: >> On Fri, May 11, 2018 at 04:54:13AM +0000, Matt Macy wrote: >>> Author: mmacy >>> Date: Fri May 11 04:54:12 2018 >>> New Revision: 333480 >>> URL: https://svnweb.freebsd.org/changeset/base/333480 >>> >>> Log: >>> epoch(9): fix priority handling, make callback lists pcpu, and other fixes >>> >>> - Lend priority to preempted threads in epoch_wait to handle the case >>> in which we've had priority lent to us. Previously we borrowed the >>> priority of the lowest priority preempted thread. (pointed out by mjg@) >>> >>> - Don't attempt allocate memory per-domain on powerpc, we don't currently >>> handle empty sockets (as is the case on jhibbits Talos' board). >>> >>> - Handle deferred callbacks as pcpu lists and poll the lists periodically. >>> Currently the interval is 1/hz. >>> >>> - Drop the thread lock when adaptive spinning. Holding the lock starves >>> other threads and can even lead to lockups. >>> >>> - Keep a generation count pcpu so that we don't keep spining if a thread >>> has left and re-entered an epoch section. >>> >>> - Actually removed the callback from the callback list so that we don't >>> double free. Sigh ... >>> >>> Approved by: sbruno@ >>> >>> Modified: >>> head/sys/kern/subr_epoch.c >>> >>> Modified: head/sys/kern/subr_epoch.c >>> ============================================================================== >>> --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) >> >> Could this be yours? >> >> cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed >> WARNING: WITNESS option enabled, expect reduced performance. >> WARNING: DIAGNOSTIC option enabled, expect reduced performance. >> Trying to mount root from ufs:/dev/da0p2 [rw]... >> Expensive timeout(9) function: 0xffffffff809f20d0(0xffffffff81af5140) 0.006730830 s >> uhub1: 4 ports with 4 removable, self powered >> kernel trap 12 with interrupts disabled >> >> >> Fatal trap 12: page fault while in kernel mode >> cpuid = 12; apic id = 20 >> fault virtual address = 0x100 >> fault code = supervisor read data, page not present >> instruction pointer = 0x20:0xffffffff80bb68db >> stack pointer = 0x0:0xfffffe00004e19b0 >> frame pointer = 0x0:0xfffffe00004e19f0 >> code segment = base 0x0, limit 0xfffff, type 0x1b >> = DPL 0, pres 1, long 1, def32 0, gran 1 >> processor eflags = resume, IOPL = 0 >> current process = 0 (config_0) >> [ thread pid 0 tid 100081 ] >> Stopped at epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx >> db> show registers >> cs 0x20 >> ds 0x3b ll+0x1a >> es 0x3b ll+0x1a >> fs 0x13 >> gs 0x1b >> ss 0 >> rax 0 >> rcx 0x858 ll+0x837 >> rdx 0xffffffff812f6968 >> rbx 0xc >> rsp 0xfffffe00004e19b0 >> rbp 0xfffffe00004e19f0 >> rsi 0x14 >> rdi 0 >> r8 0xfffff800038f3000 >> r9 0xffffffff81ff1620 vmspace0+0x130 >> r10 0xfffff800038f3000 >> r11 0x40 ll+0x1f >> r12 0xfffffe00004e19b8 >> r13 0xc >> r14 0xfffff8001f0ed400 >> r15 0xfffff800038f3000 >> rip 0xffffffff80bb68db epoch_call_task+0x7b >> rflags 0x10086 >> epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx >> db> bt >> Tracing pid 0 tid 100081 td 0xfffff800038f3000 >> epoch_call_task() at epoch_call_task+0x7b/frame 0xfffffe00004e19f0 >> gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe00004e1a40 >> gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00004e1a70 >> fork_exit() at fork_exit+0x84/frame 0xfffffe00004e1ab0 >> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004e1ab0 >> --- trap 0, rip = 0, rsp = 0, rbp = 0 --- >> db> x/s version >> version: FreeBSD 12.0-CURRENT #0 r333481: Fri May 11 09:08:40 CEST 2018\012 pho@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 >> db> >> >> - Peter From owner-svn-src-head@freebsd.org Fri May 11 07:42:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30EE0FC5D5A; Fri, 11 May 2018 07:42:36 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay01.pair.com (relay01.pair.com [209.68.5.15]) (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 CCDDA73B67; Fri, 11 May 2018 07:42:35 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay01.pair.com (Postfix) with ESMTP id 0CCD5D010CC; Fri, 11 May 2018 03:42:34 -0400 (EDT) Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.9/8.14.9) with ESMTP id w4B7gXI5036094 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 11 May 2018 09:42:33 +0200 (CEST) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.9/8.14.9/Submit) id w4B7gX1M036093; Fri, 11 May 2018 09:42:33 +0200 (CEST) (envelope-from pho) Date: Fri, 11 May 2018 09:42:33 +0200 From: Peter Holm To: Matthew Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333480 - head/sys/kern Message-ID: <20180511074233.GA35914@x2.osted.lan> References: <201805110454.w4B4sDpx067946@repo.freebsd.org> <20180511071854.GA35451@x2.osted.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:42:36 -0000 On Fri, May 11, 2018 at 12:29:30AM -0700, Matthew Macy wrote: > Yes. Can you give me the line number for epoch_call_task+0x7b > (kgdb) l *epoch_call_task+0x7b 0xffffffff80bb68db is in epoch_call_task (/usr/src/sys/kern/subr_epoch.c:560). 555 td = curthread; 556 thread_lock(td); 557 CPU_FOREACH(cpu) { 558 sched_bind(td, cpu); 559 eps = epoch->e_pcpu[cpu]; 560 if (!STAILQ_EMPTY(&eps->eps_cblist)) 561 STAILQ_CONCAT(&tmp_head, &eps->eps_cblist); 562 } 563 sched_unbind(td); 564 thread_unlock(td); (kgdb) - Peter > > On Fri, May 11, 2018 at 12:18 AM, Peter Holm wrote: > > On Fri, May 11, 2018 at 04:54:13AM +0000, Matt Macy wrote: > >> Author: mmacy > >> Date: Fri May 11 04:54:12 2018 > >> New Revision: 333480 > >> URL: https://svnweb.freebsd.org/changeset/base/333480 > >> > >> Log: > >> epoch(9): fix priority handling, make callback lists pcpu, and other fixes > >> > >> - Lend priority to preempted threads in epoch_wait to handle the case > >> in which we've had priority lent to us. Previously we borrowed the > >> priority of the lowest priority preempted thread. (pointed out by mjg@) > >> > >> - Don't attempt allocate memory per-domain on powerpc, we don't currently > >> handle empty sockets (as is the case on jhibbits Talos' board). > >> > >> - Handle deferred callbacks as pcpu lists and poll the lists periodically. > >> Currently the interval is 1/hz. > >> > >> - Drop the thread lock when adaptive spinning. Holding the lock starves > >> other threads and can even lead to lockups. > >> > >> - Keep a generation count pcpu so that we don't keep spining if a thread > >> has left and re-entered an epoch section. > >> > >> - Actually removed the callback from the callback list so that we don't > >> double free. Sigh ... > >> > >> Approved by: sbruno@ > >> > >> Modified: > >> head/sys/kern/subr_epoch.c > >> > >> Modified: head/sys/kern/subr_epoch.c > >> ============================================================================== > >> --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) > > > > Could this be yours? > > > > cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed > > WARNING: WITNESS option enabled, expect reduced performance. > > WARNING: DIAGNOSTIC option enabled, expect reduced performance. > > Trying to mount root from ufs:/dev/da0p2 [rw]... > > Expensive timeout(9) function: 0xffffffff809f20d0(0xffffffff81af5140) 0.006730830 s > > uhub1: 4 ports with 4 removable, self powered > > kernel trap 12 with interrupts disabled > > > > > > Fatal trap 12: page fault while in kernel mode > > cpuid = 12; apic id = 20 > > fault virtual address = 0x100 > > fault code = supervisor read data, page not present > > instruction pointer = 0x20:0xffffffff80bb68db > > stack pointer = 0x0:0xfffffe00004e19b0 > > frame pointer = 0x0:0xfffffe00004e19f0 > > code segment = base 0x0, limit 0xfffff, type 0x1b > > = DPL 0, pres 1, long 1, def32 0, gran 1 > > processor eflags = resume, IOPL = 0 > > current process = 0 (config_0) > > [ thread pid 0 tid 100081 ] > > Stopped at epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx > > db> show registers > > cs 0x20 > > ds 0x3b ll+0x1a > > es 0x3b ll+0x1a > > fs 0x13 > > gs 0x1b > > ss 0 > > rax 0 > > rcx 0x858 ll+0x837 > > rdx 0xffffffff812f6968 > > rbx 0xc > > rsp 0xfffffe00004e19b0 > > rbp 0xfffffe00004e19f0 > > rsi 0x14 > > rdi 0 > > r8 0xfffff800038f3000 > > r9 0xffffffff81ff1620 vmspace0+0x130 > > r10 0xfffff800038f3000 > > r11 0x40 ll+0x1f > > r12 0xfffffe00004e19b8 > > r13 0xc > > r14 0xfffff8001f0ed400 > > r15 0xfffff800038f3000 > > rip 0xffffffff80bb68db epoch_call_task+0x7b > > rflags 0x10086 > > epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx > > db> bt > > Tracing pid 0 tid 100081 td 0xfffff800038f3000 > > epoch_call_task() at epoch_call_task+0x7b/frame 0xfffffe00004e19f0 > > gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe00004e1a40 > > gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00004e1a70 > > fork_exit() at fork_exit+0x84/frame 0xfffffe00004e1ab0 > > fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004e1ab0 > > --- trap 0, rip = 0, rsp = 0, rbp = 0 --- > > db> x/s version > > version: FreeBSD 12.0-CURRENT #0 r333481: Fri May 11 09:08:40 CEST 2018\012 pho@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 > > db> > > > > - Peter From owner-svn-src-head@freebsd.org Fri May 11 07:49:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DBCA1FC71EF; Fri, 11 May 2018 07:49:26 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay01.pair.com (relay01.pair.com [209.68.5.15]) (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 8B35675D14; Fri, 11 May 2018 07:49:26 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay01.pair.com (Postfix) with ESMTP id 6D048D00B97; Fri, 11 May 2018 03:49:25 -0400 (EDT) Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.9/8.14.9) with ESMTP id w4B7nN8o036268 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 11 May 2018 09:49:24 +0200 (CEST) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.9/8.14.9/Submit) id w4B7nNhA036267; Fri, 11 May 2018 09:49:23 +0200 (CEST) (envelope-from pho) Date: Fri, 11 May 2018 09:49:23 +0200 From: Peter Holm To: Matthew Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333480 - head/sys/kern Message-ID: <20180511074923.GA36228@x2.osted.lan> References: <201805110454.w4B4sDpx067946@repo.freebsd.org> <20180511071854.GA35451@x2.osted.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:49:27 -0000 On Fri, May 11, 2018 at 12:36:40AM -0700, Matthew Macy wrote: > - How many cores? How many sockets? > - Any special config options other than DIAGNOSTIC? > CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (1995.24-MHz K8-class CPU) Origin="GenuineIntel" Id=0x206d7 Family=0x6 Model=0x2d Stepping=7 Features=0xbfebfbff Features2=0x1fbee3ff AMD Features=0x2c100800 AMD Features2=0x1 XSAVE Features=0x1 VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID TSC: P-state invariant, performance statistics real memory = 68719476736 (65536 MB) avail memory = 66740162560 (63648 MB) Event timer "LAPIC" quality 600 ACPI APIC Table: FreeBSD/SMP: Multiprocessor System Detected: 24 CPUs FreeBSD/SMP: 2 package(s) x 6 core(s) x 2 hardware threads $ sed '/^#/d; /^$/d' < /usr/src/sys/amd64/conf/PHO include GENERIC ident PHO-GENERIC options ALT_BREAK_TO_DEBUGGER options SW_WATCHDOG options DEBUG_LOCKS options DEBUG_VFS_LOCKS options DIAGNOSTIC nooptions DEADLKRES # watchdogd handles this options UFS_EXTATTR options UFS_EXTATTR_AUTOSTART $ - Peter > On Fri, May 11, 2018 at 12:29 AM, Matthew Macy wrote: > > Yes. Can you give me the line number for epoch_call_task+0x7b > > > > > > On Fri, May 11, 2018 at 12:18 AM, Peter Holm wrote: > >> On Fri, May 11, 2018 at 04:54:13AM +0000, Matt Macy wrote: > >>> Author: mmacy > >>> Date: Fri May 11 04:54:12 2018 > >>> New Revision: 333480 > >>> URL: https://svnweb.freebsd.org/changeset/base/333480 > >>> > >>> Log: > >>> epoch(9): fix priority handling, make callback lists pcpu, and other fixes > >>> > >>> - Lend priority to preempted threads in epoch_wait to handle the case > >>> in which we've had priority lent to us. Previously we borrowed the > >>> priority of the lowest priority preempted thread. (pointed out by mjg@) > >>> > >>> - Don't attempt allocate memory per-domain on powerpc, we don't currently > >>> handle empty sockets (as is the case on jhibbits Talos' board). > >>> > >>> - Handle deferred callbacks as pcpu lists and poll the lists periodically. > >>> Currently the interval is 1/hz. > >>> > >>> - Drop the thread lock when adaptive spinning. Holding the lock starves > >>> other threads and can even lead to lockups. > >>> > >>> - Keep a generation count pcpu so that we don't keep spining if a thread > >>> has left and re-entered an epoch section. > >>> > >>> - Actually removed the callback from the callback list so that we don't > >>> double free. Sigh ... > >>> > >>> Approved by: sbruno@ > >>> > >>> Modified: > >>> head/sys/kern/subr_epoch.c > >>> > >>> Modified: head/sys/kern/subr_epoch.c > >>> ============================================================================== > >>> --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) > >> > >> Could this be yours? > >> > >> cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed > >> WARNING: WITNESS option enabled, expect reduced performance. > >> WARNING: DIAGNOSTIC option enabled, expect reduced performance. > >> Trying to mount root from ufs:/dev/da0p2 [rw]... > >> Expensive timeout(9) function: 0xffffffff809f20d0(0xffffffff81af5140) 0.006730830 s > >> uhub1: 4 ports with 4 removable, self powered > >> kernel trap 12 with interrupts disabled > >> > >> > >> Fatal trap 12: page fault while in kernel mode > >> cpuid = 12; apic id = 20 > >> fault virtual address = 0x100 > >> fault code = supervisor read data, page not present > >> instruction pointer = 0x20:0xffffffff80bb68db > >> stack pointer = 0x0:0xfffffe00004e19b0 > >> frame pointer = 0x0:0xfffffe00004e19f0 > >> code segment = base 0x0, limit 0xfffff, type 0x1b > >> = DPL 0, pres 1, long 1, def32 0, gran 1 > >> processor eflags = resume, IOPL = 0 > >> current process = 0 (config_0) > >> [ thread pid 0 tid 100081 ] > >> Stopped at epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx > >> db> show registers > >> cs 0x20 > >> ds 0x3b ll+0x1a > >> es 0x3b ll+0x1a > >> fs 0x13 > >> gs 0x1b > >> ss 0 > >> rax 0 > >> rcx 0x858 ll+0x837 > >> rdx 0xffffffff812f6968 > >> rbx 0xc > >> rsp 0xfffffe00004e19b0 > >> rbp 0xfffffe00004e19f0 > >> rsi 0x14 > >> rdi 0 > >> r8 0xfffff800038f3000 > >> r9 0xffffffff81ff1620 vmspace0+0x130 > >> r10 0xfffff800038f3000 > >> r11 0x40 ll+0x1f > >> r12 0xfffffe00004e19b8 > >> r13 0xc > >> r14 0xfffff8001f0ed400 > >> r15 0xfffff800038f3000 > >> rip 0xffffffff80bb68db epoch_call_task+0x7b > >> rflags 0x10086 > >> epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx > >> db> bt > >> Tracing pid 0 tid 100081 td 0xfffff800038f3000 > >> epoch_call_task() at epoch_call_task+0x7b/frame 0xfffffe00004e19f0 > >> gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe00004e1a40 > >> gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00004e1a70 > >> fork_exit() at fork_exit+0x84/frame 0xfffffe00004e1ab0 > >> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004e1ab0 > >> --- trap 0, rip = 0, rsp = 0, rbp = 0 --- > >> db> x/s version > >> version: FreeBSD 12.0-CURRENT #0 r333481: Fri May 11 09:08:40 CEST 2018\012 pho@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 > >> db> > >> > >> - Peter From owner-svn-src-head@freebsd.org Fri May 11 07:52:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 66D86FC74B0; Fri, 11 May 2018 07:52:24 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (unknown [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1928E762DB; Fri, 11 May 2018 07:52:24 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f53.google.com (mail-it0-f53.google.com [209.85.214.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id C9A3019CE1; Fri, 11 May 2018 07:52:23 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f53.google.com with SMTP id n202-v6so1082230ita.1; Fri, 11 May 2018 00:52:23 -0700 (PDT) X-Gm-Message-State: ALKqPwfYH/oxZmKu2j8gTwp6uWMAhMjAUASr1I88NU/Px2sKsqI1hse2 kmf0XsIUyppCLeMsiMCatxt2+znnpnkDds1Mnho= X-Google-Smtp-Source: AB8JxZpLo02RoNVlTj1KFIDVC8lAR8XXVv0kkdU2fDOYb/QWm5BquFypsbgs4EdocqQvRQuSCEzhJ44vMWgpt77+8s4= X-Received: by 2002:a24:f9cc:: with SMTP id l195-v6mr2103955ith.132.1526025143265; Fri, 11 May 2018 00:52:23 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:3e4a:0:0:0:0:0 with HTTP; Fri, 11 May 2018 00:52:22 -0700 (PDT) In-Reply-To: <20180511074923.GA36228@x2.osted.lan> References: <201805110454.w4B4sDpx067946@repo.freebsd.org> <20180511071854.GA35451@x2.osted.lan> <20180511074923.GA36228@x2.osted.lan> From: Matthew Macy Date: Fri, 11 May 2018 00:52:22 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333480 - head/sys/kern To: Peter Holm Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:52:24 -0000 Weird. Try tha. @@ -172,6 +174,7 @@ epoch_init_numa(epoch_t epoch) for (int i = 0; i < domcount[domain]; i++, eps++) { epoch->e_pcpu[cpu_offset + i] = eps; er = &eps->eps_record; + STAILQ_INIT(&eps->eps_cblist); ck_epoch_register(&epoch->e_epoch, &er->er_record, NULL); TAILQ_INIT((struct threadlist *)(uintptr_t)&er->er_tdlist); er->er_cpuid = cpu_offset + i; On Fri, May 11, 2018 at 12:49 AM, Peter Holm wrote: > On Fri, May 11, 2018 at 12:36:40AM -0700, Matthew Macy wrote: >> - How many cores? How many sockets? >> - Any special config options other than DIAGNOSTIC? >> > > CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (1995.24-MHz K8-class CPU) > Origin="GenuineIntel" Id=0x206d7 Family=0x6 Model=0x2d Stepping=7 > Features=0xbfebfbff > Features2=0x1fbee3ff > AMD Features=0x2c100800 > AMD Features2=0x1 > XSAVE Features=0x1 > VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID > TSC: P-state invariant, performance statistics > real memory = 68719476736 (65536 MB) > avail memory = 66740162560 (63648 MB) > Event timer "LAPIC" quality 600 > ACPI APIC Table: > FreeBSD/SMP: Multiprocessor System Detected: 24 CPUs > FreeBSD/SMP: 2 package(s) x 6 core(s) x 2 hardware threads > > $ sed '/^#/d; /^$/d' < /usr/src/sys/amd64/conf/PHO > include GENERIC > ident PHO-GENERIC > options ALT_BREAK_TO_DEBUGGER > options SW_WATCHDOG > options DEBUG_LOCKS > options DEBUG_VFS_LOCKS > options DIAGNOSTIC > nooptions DEADLKRES # watchdogd handles this > options UFS_EXTATTR > options UFS_EXTATTR_AUTOSTART > $ > > - Peter > >> On Fri, May 11, 2018 at 12:29 AM, Matthew Macy wrote: >> > Yes. Can you give me the line number for epoch_call_task+0x7b >> > >> > >> > On Fri, May 11, 2018 at 12:18 AM, Peter Holm wrote: >> >> On Fri, May 11, 2018 at 04:54:13AM +0000, Matt Macy wrote: >> >>> Author: mmacy >> >>> Date: Fri May 11 04:54:12 2018 >> >>> New Revision: 333480 >> >>> URL: https://svnweb.freebsd.org/changeset/base/333480 >> >>> >> >>> Log: >> >>> epoch(9): fix priority handling, make callback lists pcpu, and other fixes >> >>> >> >>> - Lend priority to preempted threads in epoch_wait to handle the case >> >>> in which we've had priority lent to us. Previously we borrowed the >> >>> priority of the lowest priority preempted thread. (pointed out by mjg@) >> >>> >> >>> - Don't attempt allocate memory per-domain on powerpc, we don't currently >> >>> handle empty sockets (as is the case on jhibbits Talos' board). >> >>> >> >>> - Handle deferred callbacks as pcpu lists and poll the lists periodically. >> >>> Currently the interval is 1/hz. >> >>> >> >>> - Drop the thread lock when adaptive spinning. Holding the lock starves >> >>> other threads and can even lead to lockups. >> >>> >> >>> - Keep a generation count pcpu so that we don't keep spining if a thread >> >>> has left and re-entered an epoch section. >> >>> >> >>> - Actually removed the callback from the callback list so that we don't >> >>> double free. Sigh ... >> >>> >> >>> Approved by: sbruno@ >> >>> >> >>> Modified: >> >>> head/sys/kern/subr_epoch.c >> >>> >> >>> Modified: head/sys/kern/subr_epoch.c >> >>> ============================================================================== >> >>> --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) >> >> >> >> Could this be yours? >> >> >> >> cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed >> >> WARNING: WITNESS option enabled, expect reduced performance. >> >> WARNING: DIAGNOSTIC option enabled, expect reduced performance. >> >> Trying to mount root from ufs:/dev/da0p2 [rw]... >> >> Expensive timeout(9) function: 0xffffffff809f20d0(0xffffffff81af5140) 0.006730830 s >> >> uhub1: 4 ports with 4 removable, self powered >> >> kernel trap 12 with interrupts disabled >> >> >> >> >> >> Fatal trap 12: page fault while in kernel mode >> >> cpuid = 12; apic id = 20 >> >> fault virtual address = 0x100 >> >> fault code = supervisor read data, page not present >> >> instruction pointer = 0x20:0xffffffff80bb68db >> >> stack pointer = 0x0:0xfffffe00004e19b0 >> >> frame pointer = 0x0:0xfffffe00004e19f0 >> >> code segment = base 0x0, limit 0xfffff, type 0x1b >> >> = DPL 0, pres 1, long 1, def32 0, gran 1 >> >> processor eflags = resume, IOPL = 0 >> >> current process = 0 (config_0) >> >> [ thread pid 0 tid 100081 ] >> >> Stopped at epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx >> >> db> show registers >> >> cs 0x20 >> >> ds 0x3b ll+0x1a >> >> es 0x3b ll+0x1a >> >> fs 0x13 >> >> gs 0x1b >> >> ss 0 >> >> rax 0 >> >> rcx 0x858 ll+0x837 >> >> rdx 0xffffffff812f6968 >> >> rbx 0xc >> >> rsp 0xfffffe00004e19b0 >> >> rbp 0xfffffe00004e19f0 >> >> rsi 0x14 >> >> rdi 0 >> >> r8 0xfffff800038f3000 >> >> r9 0xffffffff81ff1620 vmspace0+0x130 >> >> r10 0xfffff800038f3000 >> >> r11 0x40 ll+0x1f >> >> r12 0xfffffe00004e19b8 >> >> r13 0xc >> >> r14 0xfffff8001f0ed400 >> >> r15 0xfffff800038f3000 >> >> rip 0xffffffff80bb68db epoch_call_task+0x7b >> >> rflags 0x10086 >> >> epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx >> >> db> bt >> >> Tracing pid 0 tid 100081 td 0xfffff800038f3000 >> >> epoch_call_task() at epoch_call_task+0x7b/frame 0xfffffe00004e19f0 >> >> gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe00004e1a40 >> >> gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00004e1a70 >> >> fork_exit() at fork_exit+0x84/frame 0xfffffe00004e1ab0 >> >> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004e1ab0 >> >> --- trap 0, rip = 0, rsp = 0, rbp = 0 --- >> >> db> x/s version >> >> version: FreeBSD 12.0-CURRENT #0 r333481: Fri May 11 09:08:40 CEST 2018\012 pho@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 >> >> db> >> >> >> >> - Peter From owner-svn-src-head@freebsd.org Fri May 11 08:16:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15139FC823D; Fri, 11 May 2018 08:16:57 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BBA157C4A0; Fri, 11 May 2018 08:16:56 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9CCE64E70; Fri, 11 May 2018 08:16:56 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4B8Guti072679; Fri, 11 May 2018 08:16:56 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B8Guw4072678; Fri, 11 May 2018 08:16:56 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805110816.w4B8Guw4072678@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Fri, 11 May 2018 08:16:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333485 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333485 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 08:16:57 -0000 Author: mmacy Date: Fri May 11 08:16:56 2018 New Revision: 333485 URL: https://svnweb.freebsd.org/changeset/base/333485 Log: epoch(9): callback task fixes - initialize the pcpu STAILQ in the NUMA case - don't enqueue the callback task if there isn't sufficient work to be done Reported by: pho@ Approved by: sbruno@ Modified: head/sys/kern/subr_epoch.c Modified: head/sys/kern/subr_epoch.c ============================================================================== --- head/sys/kern/subr_epoch.c Fri May 11 07:04:57 2018 (r333484) +++ head/sys/kern/subr_epoch.c Fri May 11 08:16:56 2018 (r333485) @@ -108,6 +108,8 @@ struct epoch { int e_flags; /* make sure that immutable data doesn't overlap with the gtask, callout, and mutex*/ struct epoch_pcpu_state *e_pcpu_dom[MAXMEMDOM] __aligned(EPOCH_ALIGN); + counter_u64_t e_frees; + uint64_t e_free_last; struct epoch_pcpu_state *e_pcpu[0]; }; @@ -172,6 +174,7 @@ epoch_init_numa(epoch_t epoch) for (int i = 0; i < domcount[domain]; i++, eps++) { epoch->e_pcpu[cpu_offset + i] = eps; er = &eps->eps_record; + STAILQ_INIT(&eps->eps_cblist); ck_epoch_register(&epoch->e_epoch, &er->er_record, NULL); TAILQ_INIT((struct threadlist *)(uintptr_t)&er->er_tdlist); er->er_cpuid = cpu_offset + i; @@ -201,9 +204,15 @@ static void epoch_callout(void *arg) { epoch_t epoch; + uint64_t frees; epoch = arg; - GROUPTASK_ENQUEUE(&epoch->e_gtask); + frees = counter_u64_fetch(epoch->e_frees); + /* pick some better value */ + if (frees - epoch->e_free_last > 10) { + GROUPTASK_ENQUEUE(&epoch->e_gtask); + epoch->e_free_last = frees; + } if ((epoch->e_flags & EPOCH_EXITING) == 0) callout_reset(&epoch->e_timer, poll_intvl, epoch_callout, epoch); } @@ -218,6 +227,7 @@ epoch_alloc(void) epoch = malloc(sizeof(struct epoch) + mp_ncpus*sizeof(void*), M_EPOCH, M_ZERO|M_WAITOK); ck_epoch_init(&epoch->e_epoch); + epoch->e_frees = counter_u64_alloc(M_WAITOK); mtx_init(&epoch->e_lock, "epoch callout", NULL, MTX_DEF); callout_init_mtx(&epoch->e_timer, &epoch->e_lock, 0); taskqgroup_config_gtask_init(epoch, &epoch->e_gtask, epoch_call_task, "epoch call task"); @@ -252,6 +262,7 @@ epoch_free(epoch_t epoch) gtaskqueue_drain(epoch->e_gtask.gt_taskqueue, &epoch->e_gtask.gt_task); callout_drain(&epoch->e_timer); mtx_destroy(&epoch->e_lock); + counter_u64_free(epoch->e_frees); taskqgroup_config_gtask_deinit(&epoch->e_gtask); if (usedomains) for (domain = 0; domain < vm_ndomains; domain++) @@ -534,6 +545,7 @@ epoch_call(epoch_t epoch, epoch_context_t ctx, void (* MPASS(epoch); MPASS(callback); cb->ec_callback = callback; + counter_u64_add(epoch->e_frees, 1); critical_enter(); eps = epoch->e_pcpu[curcpu]; STAILQ_INSERT_HEAD(&eps->eps_cblist, cb, ec_link); From owner-svn-src-head@freebsd.org Fri May 11 08:56:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AD8C2FC99C0; Fri, 11 May 2018 08:56:40 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3D0F585FAA; Fri, 11 May 2018 08:56:40 +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 1D3C854FF; Fri, 11 May 2018 08:56:40 +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 w4B8udK9092601; Fri, 11 May 2018 08:56:39 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4B8udVX092600; Fri, 11 May 2018 08:56:39 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201805110856.w4B8udVX092600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 11 May 2018 08:56:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333486 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 333486 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 08:56:41 -0000 Author: mjg Date: Fri May 11 08:56:39 2018 New Revision: 333486 URL: https://svnweb.freebsd.org/changeset/base/333486 Log: amd64: align the .data.exclusive_cache_line section to 128 This aligns the section itself compared to other sections, does not change internal alignment of fields stored inside. This may or may not come later. The motivation is partially combating adverse effects of the adjacent cache line prefetcher. Without the annotation part of read_mostly section was on the line of fire. Modified: head/sys/conf/ldscript.amd64 Modified: head/sys/conf/ldscript.amd64 ============================================================================== --- head/sys/conf/ldscript.amd64 Fri May 11 08:16:56 2018 (r333485) +++ head/sys/conf/ldscript.amd64 Fri May 11 08:56:39 2018 (r333486) @@ -155,12 +155,12 @@ SECTIONS { *(.data.read_mostly) } - . = ALIGN(64); + . = ALIGN(128); .data.exclusive_cache_line : { *(.data.exclusive_cache_line) } - . = ALIGN(64); + . = ALIGN(128); .data : { *(.data .data.* .gnu.linkonce.d.*) From owner-svn-src-head@freebsd.org Fri May 11 10:07:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF99DFCC668; Fri, 11 May 2018 10:07:24 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 4CD2D7691B; Fri, 11 May 2018 10:07:24 +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 w4BA7D50097702 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 11 May 2018 13:07:16 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua w4BA7D50097702 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id w4BA7DfG097701; Fri, 11 May 2018 13:07:13 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 11 May 2018 13:07:13 +0300 From: Konstantin Belousov To: Conrad Meyer Cc: Ed Maste , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 Message-ID: <20180511100713.GG6887@kib.kiev.ua> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.5 (2018-04-13) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 10:07:25 -0000 On Thu, May 10, 2018 at 07:57:03PM -0700, Conrad Meyer wrote: > On Thu, May 10, 2018 at 8:01 AM, Konstantin Belousov wrote: > > Author: kib > > Date: Thu May 10 15:01:43 2018 > > New Revision: 333461 > > URL: https://svnweb.freebsd.org/changeset/base/333461 > > > > Log: > > Make fpusave() and fpurestore() on amd64 ifuncs. > > > > From now on, linking amd64 kernel requires either lld or newer ld.bfd. > > Hi, > > This commit seems to break amd64-gcc cross toolchain build (note, this > is a cc error, not ld): > > In file included from /usr/src/sys/amd64/amd64/fpu.c:64:0: > /usr/src/sys/amd64/amd64/fpu.c:195:22: error: ifunc is not supported > on this target > DEFINE_IFUNC(, void, fpusave, (void *), static) > ^ > ./x86/ifunc.h:55:19: note: in definition of macro 'DEFINE_IFUNC' > qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \ > ^~~~ > /usr/src/sys/amd64/amd64/fpu.c:202:22: error: ifunc is not supported > on this target > DEFINE_IFUNC(, void, fpurestore, (void *), static) > ^ > ./x86/ifunc.h:55:19: note: in definition of macro 'DEFINE_IFUNC' > qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \ > ^~~~ > --- fpu.o --- > *** [fpu.o] Error code 1 On FreeBSD, gcc configuration requires explicit --enable-gnu-indirect-function option. I see it in e.g. lang/gcc7 port Makefile. On the other hand, I do not understand how devel/amd64-xtoolchain-gcc and devel/powerpc64-xtoolchain-gcc are build, so cannot see whether the switch is added to the configure invocation. But I suspect that it is not. In other words, most likely the problem is due to the port itself. From owner-svn-src-head@freebsd.org Fri May 11 10:55:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D870FCD95A; Fri, 11 May 2018 10:55:59 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id BAF1280F74; Fri, 11 May 2018 10:55:58 +0000 (UTC) (envelope-from des@des.no) Received: from next.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id F2D96B3C6; Fri, 11 May 2018 10:55:57 +0000 (UTC) Received: by next.des.no (Postfix, from userid 1001) id 1E9E180EF; Fri, 11 May 2018 12:55:58 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Warner Losh Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333436 - in head/etc: etc.aarch64 etc.amd64 etc.arm etc.i386 etc.powerpc etc.riscv etc.sparc64 In-Reply-To: <201805092049.w49Kn1QT076817@repo.freebsd.org> (Warner Losh's message of "Wed, 9 May 2018 20:49:01 +0000 (UTC)") References: <201805092049.w49Kn1QT076817@repo.freebsd.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (berkeley-unix) Date: Fri, 11 May 2018 12:55:58 +0200 Message-ID: <868t8qwjep.fsf@next.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 10:55:59 -0000 Warner Losh writes: > Log: > For video consoles, only launch a getty if the device exists. >=20=20=20 > Differential Revision: https://reviews.freebsd.org/D15169 I think it might also be time to remove the (commented-out) ttyv8 entry. Modern greeters run as services. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@freebsd.org Fri May 11 11:33:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83DB8FCEB7D; Fri, 11 May 2018 11:33:15 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id 3E2B569DF6; Fri, 11 May 2018 11:33:14 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id CCE29F60C85; Fri, 11 May 2018 19:42:12 +1000 (AEST) Date: Fri, 11 May 2018 19:42:11 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Eitan Adler cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333482 - head/usr.bin/expand In-Reply-To: <201805110655.w4B6t3sH032476@repo.freebsd.org> Message-ID: <20180511182952.B2874@besplex.bde.org> References: <201805110655.w4B6t3sH032476@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=FNpr/6gs c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=jQ0x1xM9JVUvsEzkhOIA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 11:33:15 -0000 On Fri, 11 May 2018, Eitan Adler wrote: > Log: > [expand] add __dead2 annotation to usage Declaring static functions as __dead2 has no good effect, but reduces portability and is a style bug. Compilers have always been able to see inside static functions and determine if they return. Primitive compilers might not see forward functions, and now clang doesn't even support the -fno-unit-at-a-time flag which is needed for turning off excessive forwarding. __dead2 might be useful for primitive code analysis tools like lint, but lint in FreeBSD never understood any attributes, and even lint always read full files, so it only needed special help with extern functions whose source is not visible. In /usr/src/bin, in 4.4BSD, there are no instances of this style bug for static functions. Howver, 4.4BSD is not careful to declare functions as static, and it has the worse style bugs for the usage() in the following programs: - sbin/route/route.c: this declares usage() as implicit-extern and bogusly declares the function as __dead, and also helps lint by /* NOTREACH */ after the function usages exit() to not return. 4.4BSD also isn't careful about prototypes. No function in route.c has a prototype. Most functions in route.c are forward-declared, but usage() has the style bug of being placed before main() so that it doesn't need a forward declaration. So its __dead declaration has no effect even with -fno-unit-at-a-time. __dead is the gcc-1 spelling of __dead2. gcc-1 doesn't need it provided exit() is declared as __dead, which it is in 4.4BSD. - usr.bin/rlogin/rlogin.c: usage() is implicit-extern and forward-declared, and even has a prototype using __P(()). Its definition is also declared as __dead. In gcc-1, __dead isn't an attribute (since gcc-1 doesn't support attributes), but is the volatile keyword invalidly overloaded. Perhaps the function definition needs to have the same qualifiers as the forward declaration, but in general C has the opposite problem with types for functions -- function declarations can be built up from incomplete declarations to obfuscate what the combined qualifiers/types are are. - usr.bin/touch/touch.c: like rlogin except usage() is forward-declared with a prototype using __P(()) and the function definition doesn't have /* NOTREACHED */. __dead is bogusly attached to the function definition where it has no effect. That is all instances of __dead for usage() in /usr/*bin in 4.4BSD. There are only about 10 other commands that use __dead for other functions. Some of these uses are actually correct, since they are for extern functions in header files. FreeBSD has expanded this style bug only a little. In /usr/src/bin, there about 39 programs, but there are only 19 instances of __dead2 and only 3 instances of the style bug for static usage() (for cat, hostname and realpath). stty has an example of correct use of __dead2 usage() (when usage() is extern and prototyped in a header file. Of the other 15 instances, 7 are correct (for extern functions) and 8 are style bugs (for static functions). Most of the bugs are in bin/sh. Some of these instances expand the bugs by misplacing __dead2 before the function name. This is a style bug at best, and might be a syntax error for old versions of gcc. gcc-1 had to place __dead first since it was a qualifier, and this couldn't just be changed to an attribute since gcc-2 didn't allow attributes there, so __dead2 was placed at the end of the declaration. Some of these instances also add other attributes like __printflike() to forward declarations. I don't know if compilers look deeply enough into function definitions to see such attributes there. I guess that they don't for __printflike() and other complicated attributes. Even after inlining everything, it is hard to see if the inlined block implements attributes as specified by _printflike(). Parts of the block might inherit attributes by calling vfprintf(), but other parts might do things like 'switch (*fmt)' as in the implementation of vfprintf(), and understanding that requires a deep analysis. FreeBSD has expanded on this style bug by sometimes spelling __dead2 as _Noreturn and misplacing this before the function name. This is used mainly to add style bugs to header files. 3 style bugs in most places: - rename __dead2 to _Noreturn - place it before function names where it is syntactically incorrect for old compilers - misformat it there. In /usr/src/bin, there is only 1 instance of a case-sensitive noreturn. This is in pkill, where FreeBSD macros to hide unportabilities are not even used. Instead, the attribute is hard-coded as __attribute__((__noreturn__)). This is the only instance in src/bin of the style and portability bug of using hard-coded __attribute__(()). Bruce From owner-svn-src-head@freebsd.org Fri May 11 11:45:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01366FCEF9E; Fri, 11 May 2018 11:45:50 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 590616CAB9; Fri, 11 May 2018 11:45:49 +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 w4BBjcSL019667 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 11 May 2018 14:45:41 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua w4BBjcSL019667 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id w4BBjcNx019666; Fri, 11 May 2018 14:45:38 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 11 May 2018 14:45:38 +0300 From: Konstantin Belousov To: Ed Maste Cc: Bruce Evans , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 Message-ID: <20180511114538.GH6887@kib.kiev.ua> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> <20180511012309.V3949@besplex.bde.org> <20180510193816.GF6887@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.5 (2018-04-13) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 11:45:50 -0000 On Thu, May 10, 2018 at 10:17:06PM -0400, Ed Maste wrote: > On 10 May 2018 at 15:38, Konstantin Belousov wrote: > > > > Yes, I already noted and mjg noted that ifuncs are directed through PLT. > > I remember that it was not the case when I did it the first time, but then > > both compiler and linker were different. > > I'm trying to find evidence of non-PLT ifuncs, but have been > unsuccessful so far. > > >From ifunc.txt at https://sites.google.com/site/x32abi/documents: > | All references to a STT_GNU_IFUNC symbol, including function call and > | function pointer, will go through a PLT slot, which jumps to the address > | stored in the GOT entry. If the STT_GNU_IFUNC symbol is locally defined, > | a R_*_IRELATIVE relocation will be applied to the GOT entry at load time. > | Otherwise, dynamic linker will lookup the symbol at the first call to the > | function and update the GOT entry. This applies to all usages of > | STT_GNU_IFUNC symbols in shared library, dynamic executable and static > | executable. I very well can misremember. I suspect that I could have looked at the amd64 modules, which are not finally linked. This would explain it. From owner-svn-src-head@freebsd.org Fri May 11 12:57:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9426FD2DE1; Fri, 11 May 2018 12:57:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7B7C17BA9F; Fri, 11 May 2018 12:57:26 +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 5C9347C8C; Fri, 11 May 2018 12:57:26 +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 w4BCvQmh014934; Fri, 11 May 2018 12:57:26 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BCvQDu014933; Fri, 11 May 2018 12:57:26 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805111257.w4BCvQDu014933@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 11 May 2018 12:57:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333487 - head/sbin/geom/class/part X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sbin/geom/class/part X-SVN-Commit-Revision: 333487 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 12:57:27 -0000 Author: emaste Date: Fri May 11 12:57:25 2018 New Revision: 333487 URL: https://svnweb.freebsd.org/changeset/base/333487 Log: gpart.8: sort suboptions per mdoc(7) Alphabetical order, uppercase before lowercase for each letter and with no regard to whether an option takes an argument. Sponsored by: The FreeBSD Foundation Modified: head/sbin/geom/class/part/gpart.8 Modified: head/sbin/geom/class/part/gpart.8 ============================================================================== --- head/sbin/geom/class/part/gpart.8 Fri May 11 08:56:39 2018 (r333486) +++ head/sbin/geom/class/part/gpart.8 Fri May 11 12:57:25 2018 (r333487) @@ -178,6 +178,12 @@ offset and partition to be multiple of .Ar alignment value. +.It Fl f Ar flags +Additional operational flags. +See the section entitled +.Sx "OPERATIONAL FLAGS" +below for a discussion +about its use. .It Fl i Ar index The index in the partition table at which the new partition is to be placed. @@ -187,12 +193,6 @@ to represent the partition. The label attached to the partition. This option is only valid when used on partitioning schemes that support partition labels. -.It Fl f Ar flags -Additional operational flags. -See the section entitled -.Sx "OPERATIONAL FLAGS" -below for a discussion -about its use. .El .\" ==== BACKUP ==== .It Cm backup @@ -264,6 +264,12 @@ that scheme can be used to partition a disk. .Pp Additional options include: .Bl -tag -width 10n +.It Fl f Ar flags +Additional operational flags. +See the section entitled +.Sx "OPERATIONAL FLAGS" +below for a discussion +about its use. .It Fl n Ar entries The number of entries in the partition table. Every partitioning scheme has a minimum and maximum number of entries. @@ -273,12 +279,6 @@ Some schemes have a maximum equal to the minimum and s a maximum large enough to be considered unlimited. By default, partition tables are created with the minimum number of entries. -.It Fl f Ar flags -Additional operational flags. -See the section entitled -.Sx "OPERATIONAL FLAGS" -below for a discussion -about its use. .El .\" ==== DELETE ==== .It Cm delete @@ -407,14 +407,14 @@ Additional options include: Destroy partition table on the given .Ar provider before doing restore. -.It Fl l -Restore partition labels for partitioning schemes that support them. .It Fl f Ar flags Additional operational flags. See the section entitled .Sx "OPERATIONAL FLAGS" below for a discussion about its use. +.It Fl l +Restore partition labels for partitioning schemes that support them. .El .\" ==== SET ==== .It Cm set From owner-svn-src-head@freebsd.org Fri May 11 12:58:37 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EADC2FD2EF6; Fri, 11 May 2018 12:58:36 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9F3CC7BC12; Fri, 11 May 2018 12:58:36 +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 812C77C8D; Fri, 11 May 2018 12:58:36 +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 w4BCwaiv015016; Fri, 11 May 2018 12:58:36 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BCwa5C015015; Fri, 11 May 2018 12:58:36 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805111258.w4BCwa5C015015@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 11 May 2018 12:58:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333488 - head/sbin/geom/class/part X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sbin/geom/class/part X-SVN-Commit-Revision: 333488 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 12:58:37 -0000 Author: emaste Date: Fri May 11 12:58:36 2018 New Revision: 333488 URL: https://svnweb.freebsd.org/changeset/base/333488 Log: gpart.8: list all options in table form for each command Previously gpart's man page listed some command options in prose, and some in table form, which made it more difficult to use as a reference. Reviewed by: bcr Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D15135 Modified: head/sbin/geom/class/part/gpart.8 Modified: head/sbin/geom/class/part/gpart.8 ============================================================================== --- head/sbin/geom/class/part/gpart.8 Fri May 11 12:57:25 2018 (r333487) +++ head/sbin/geom/class/part/gpart.8 Fri May 11 12:58:36 2018 (r333488) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 2, 2018 +.Dd May 11, 2018 .Dt GPART 8 .Os .Sh NAME @@ -147,26 +147,14 @@ The first argument is the action to be taken: .It Cm add Add a new partition to the partitioning scheme given by .Ar geom . -The partition begins on the logical block address given by the -.Fl b Ar start -option. -Its size is given by the -.Fl s Ar size -option. -SI unit suffixes are allowed. -One or both -.Fl b -and -.Fl s -options can be omitted. -If so they are automatically calculated. -The type of the partition is given by the -.Fl t Ar type -option. -Partition types are discussed below in the section entitled -.Sx "PARTITION TYPES" . +The partition type must be specified with +.Fl t Ar type . +The partition's location, size, and other attributes will be calculated +automatically if the corresponding options are not specified. .Pp -Additional options include: +The +.Cm add +command accepts these options: .Bl -tag -width 12n .It Fl a Ar alignment If specified, then @@ -178,6 +166,9 @@ offset and partition to be multiple of .Ar alignment value. +.It Fl b Ar start +The logical block address where the partition will begin. +A SI unit suffix is allowed. .It Fl f Ar flags Additional operational flags. See the section entitled @@ -193,6 +184,15 @@ to represent the partition. The label attached to the partition. This option is only valid when used on partitioning schemes that support partition labels. +.It Fl s Ar size +Create a partition of size +.Ar size . +A SI unit suffix is allowed. +.It Fl t Ar type +Create a partition of type +.Ar type . +Partition types are discussed below in the section entitled +.Sx "PARTITION TYPES" . .El .\" ==== BACKUP ==== .It Cm backup @@ -209,33 +209,42 @@ or write bootstrap code into a partition (using .Fl p Ar partcode and .Fl i Ar index ) . +.Pp +The +.Cm bootcode +command accepts these options: +.Bl -tag -width 10n +.It Fl b Ar bootcode +Embed bootstrap code from the file +.Ar bootcode +into the partitioning scheme's metadata for +.Ar geom . Not all partitioning schemes have embedded bootstrap code, so the .Fl b Ar bootcode option is scheme-specific in nature (see the section entitled .Sx BOOTSTRAPPING below). The -.Fl b Ar bootcode -option specifies a file that contains the bootstrap code. -The contents and size of the file are determined by the partitioning -scheme. -The -.Fl p Ar partcode -option specifies a file that contains the bootstrap code intended to be -written to a partition. -The partition is specified by the -.Fl i Ar index -option. -The size of the file must be smaller than the size of the partition. -.Pp -Additional options include: -.Bl -tag -width 10n +.Ar bootcode +file must match the partitioning scheme's requirements for file content +and size. .It Fl f Ar flags Additional operational flags. See the section entitled .Sx "OPERATIONAL FLAGS" below for a discussion about its use. +.It Fl i Ar index +Specify the target partition for +.Fl p Ar partcode . +.It Fl p Ar partcode +Write the bootstrap code from the file +.Ar partcode +into the +.Ar geom +partition specified by +.Fl i Ar index . +The size of the file must be smaller than the size of the partition. .El .\" ==== COMMIT ==== .It Cm commit @@ -256,13 +265,13 @@ action will write all pending changes to disk. .It Cm create Create a new partitioning scheme on a provider given by .Ar provider . -The +The scheme to use must be specified with the .Fl s Ar scheme -option determines the scheme to use. -The kernel must have support for a particular scheme before -that scheme can be used to partition a disk. +option. .Pp -Additional options include: +The +.Cm create +command accepts these options: .Bl -tag -width 10n .It Fl f Ar flags Additional operational flags. @@ -279,6 +288,10 @@ Some schemes have a maximum equal to the minimum and s a maximum large enough to be considered unlimited. By default, partition tables are created with the minimum number of entries. +.It Fl s Ar scheme +Specify the partitioning scheme to use. +The kernel must have support for a particular scheme before +that scheme can be used to partition a disk. .El .\" ==== DELETE ==== .It Cm delete @@ -289,7 +302,9 @@ and further identified by the option. The partition cannot be actively used by the kernel. .Pp -Additional options include: +The +.cm delete +command accepts these options: .Bl -tag -width 10n .It Fl f Ar flags Additional operational flags. @@ -297,13 +312,17 @@ See the section entitled .Sx "OPERATIONAL FLAGS" below for a discussion about its use. +.It Fl i Ar index +Specifies the index of the partition to be deleted. .El .\" ==== DESTROY ==== .It Cm destroy Destroy the partitioning scheme as implemented by geom .Ar geom . .Pp -Additional options include: +The +.Cm destroy +command accepts these options: .Bl -tag -width 10n .It Fl F Forced destroying of the partition table even if it is not empty. @@ -322,16 +341,12 @@ and further identified by the .Fl i Ar index option. Only the type and/or label of the partition can be modified. -To change the type of a partition, specify the new type with the -.Fl t Ar type -option. -To change the label of a partition, specify the new label with the -.Fl l Ar label -option. Not all partitioning schemes support labels and it is invalid to try to change a partition label in such cases. .Pp -Additional options include: +The +.Cm modify +command accepts these options: .Bl -tag -width 10n .It Fl f Ar flags Additional operational flags. @@ -339,6 +354,14 @@ See the section entitled .Sx "OPERATIONAL FLAGS" below for a discussion about its use. +.It Fl i Ar index +Specifies the index of the partition to be modified. +.It Fl l Ar label +Change the partition label to +.Ar label . +.It Fl t Ar type +Change the partition type to +.Ar type . .El .\" ==== RECOVER ==== .It Cm recover @@ -348,7 +371,9 @@ See the section entitled .Sx RECOVERING below for the additional information. .Pp -Additional options include: +The +.Cm recover +command accepts these options: .Bl -tag -width 10n .It Fl f Ar flags Additional operational flags. @@ -364,24 +389,20 @@ Resize a partition from geom and further identified by the .Fl i Ar index option. -New partition size is expressed in logical block -numbers and can be given by the -.Fl s Ar size -option. -If -.Fl s -option is omitted then new size is automatically calculated -to maximum available from given geom +If the new size is not specified it is automatically calculated +to be the maximum available from .Ar geom . .Pp -Additional options include: +The +.Cm resize +command accepts these options: .Bl -tag -width 12n .It Fl a Ar alignment If specified, then .Nm utility tries to align partition .Ar size -to be multiple of +to be a multiple of the .Ar alignment value. .It Fl f Ar flags @@ -390,6 +411,11 @@ See the section entitled .Sx "OPERATIONAL FLAGS" below for a discussion about its use. +.It Fl i Ar index +Specifies the index of the partition to be resized. +.It Fl s Ar size +Specifies the new size of the partition, in logical blocks. +A SI unit suffix is allowed. .El .\" ==== RESTORE ==== .It Cm restore @@ -401,7 +427,9 @@ This action does not affect the content of partitions. After restoring the partition table and writing bootcode if needed, user data must be restored from backup. .Pp -Additional options include: +The +.Cm restore +command accepts these options: .Bl -tag -width 10n .It Fl F Destroy partition table on the given @@ -423,14 +451,20 @@ See the section entitled .Sx ATTRIBUTES below for a list of available attributes. .Pp -Additional options include: +The +.Cm set +command accepts these options: .Bl -tag -width 10n +.It Fl a Ar attrib +Specifies the attribute to set. .It Fl f Ar flags Additional operational flags. See the section entitled .Sx "OPERATIONAL FLAGS" below for a discussion about its use. +.It Fl i Ar index +Specifies the index of the partition on which the attribute will be set. .El .\" ==== SHOW ==== .It Cm show @@ -442,7 +476,10 @@ the partition type, and a human readable partition siz Block sizes and locations are based on the device's Sectorsize as shown by .Cm gpart list . -Additional options include: +.Pp +The +.Cm show +command accepts these options: .Bl -tag -width 10n .It Fl l For partitioning schemes that support partition labels, print them @@ -466,14 +503,20 @@ See the section entitled .Sx ATTRIBUTES below for a list of available attributes. .Pp -Additional options include: +The +.Cm unset +command accepts these options: .Bl -tag -width 10n +.It Fl a Ar attrib +Specifies the attribute to clear. .It Fl f Ar flags Additional operational flags. See the section entitled .Sx "OPERATIONAL FLAGS" below for a discussion about its use. +.It Fl i Ar index +Specifies the index of the partition on which the attribute will be cleared. .El .It Cm list See From owner-svn-src-head@freebsd.org Fri May 11 13:09:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5489AFD37CB; Fri, 11 May 2018 13:09:22 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F12BA7E95D; Fri, 11 May 2018 13:09:21 +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 D016E7E31; Fri, 11 May 2018 13:09:21 +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 w4BD9L0t020045; Fri, 11 May 2018 13:09:21 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BD9Lg5020044; Fri, 11 May 2018 13:09:21 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805111309.w4BD9Lg5020044@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 11 May 2018 13:09:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333489 - head/sys/dev/usb X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/sys/dev/usb X-SVN-Commit-Revision: 333489 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 13:09:22 -0000 Author: emaste Date: Fri May 11 13:09:21 2018 New Revision: 333489 URL: https://svnweb.freebsd.org/changeset/base/333489 Log: usbdevs: add new Microchip USB-Ethernet device IDs LAN7800 USB 3.1 to 10/100/1000 Ethernet with PHY LAN7801 USB 3.1 to 10/100/1000 Ethernet with RGMII interface Also update manufacturer name for the Vendor ID. Microchip acquired SMSC in May 2012. Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/usb/usbdevs Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Fri May 11 12:58:36 2018 (r333488) +++ head/sys/dev/usb/usbdevs Fri May 11 13:09:21 2018 (r333489) @@ -103,7 +103,7 @@ vendor CREATIVE 0x041e Creative Labs vendor NOKIA 0x0421 Nokia vendor ADI 0x0422 ADI Systems vendor CATC 0x0423 Computer Access Technology -vendor SMC2 0x0424 Standard Microsystems +vendor SMC2 0x0424 Microchip (Standard Microsystems) vendor MOTOROLA_HK 0x0425 Motorola HK vendor GRAVIS 0x0428 Advanced Gravis Computer vendor CIRRUSLOGIC 0x0429 Cirrus Logic @@ -4320,6 +4320,8 @@ product SMC 2862WG 0xee13 EZ Connect Wireless Adapter product SMC2 2020HUB 0x2020 USB Hub product SMC2 2514HUB 0x2514 USB Hub product SMC3 2662WUSB 0xa002 2662W-AR Wireless +product SMC2 LAN7800_ETH 0x7800 USB/Ethernet +product SMC2 LAN7801_ETH 0x7801 USB/Ethernet product SMC2 LAN9500_ETH 0x9500 USB/Ethernet product SMC2 LAN9505_ETH 0x9505 USB/Ethernet product SMC2 LAN9530_ETH 0x9530 USB/Ethernet From owner-svn-src-head@freebsd.org Fri May 11 13:22:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E29BFD42F4; Fri, 11 May 2018 13:22:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BAEFB81B56; Fri, 11 May 2018 13:22:44 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9B51F10186; Fri, 11 May 2018 13:22:44 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BDMis0030148; Fri, 11 May 2018 13:22:44 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BDMh3T030144; Fri, 11 May 2018 13:22:43 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805111322.w4BDMh3T030144@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Fri, 11 May 2018 13:22:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333490 - in head: crypto/openssh crypto/openssh/contrib crypto/openssh/contrib/aix crypto/openssh/contrib/cygwin crypto/openssh/contrib/redhat crypto/openssh/contrib/suse crypto/openss... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: crypto/openssh crypto/openssh/contrib crypto/openssh/contrib/aix crypto/openssh/contrib/cygwin crypto/openssh/contrib/redhat crypto/openssh/contrib/suse crypto/openssh/openbsd-compat crypto/o... X-SVN-Commit-Revision: 333490 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 13:22:46 -0000 Author: des Date: Fri May 11 13:22:43 2018 New Revision: 333490 URL: https://svnweb.freebsd.org/changeset/base/333490 Log: Upgrade to OpenSSH 7.7p1. Added: head/crypto/openssh/.depend - copied unchanged from r333298, vendor-crypto/openssh/dist/.depend head/crypto/openssh/openbsd-compat/bsd-flock.c - copied unchanged from r333298, vendor-crypto/openssh/dist/openbsd-compat/bsd-flock.c head/crypto/openssh/openbsd-compat/bsd-signal.c - copied unchanged from r333298, vendor-crypto/openssh/dist/openbsd-compat/bsd-signal.c head/crypto/openssh/openbsd-compat/bsd-signal.h - copied unchanged from r333298, vendor-crypto/openssh/dist/openbsd-compat/bsd-signal.h head/crypto/openssh/openbsd-compat/port-net.c - copied unchanged from r333298, vendor-crypto/openssh/dist/openbsd-compat/port-net.c head/crypto/openssh/openbsd-compat/port-net.h - copied unchanged from r333298, vendor-crypto/openssh/dist/openbsd-compat/port-net.h head/crypto/openssh/openbsd-compat/strndup.c - copied unchanged from r333298, vendor-crypto/openssh/dist/openbsd-compat/strndup.c head/crypto/openssh/regress/connect-uri.sh - copied unchanged from r333298, vendor-crypto/openssh/dist/regress/connect-uri.sh head/crypto/openssh/regress/scp-uri.sh - copied unchanged from r333298, vendor-crypto/openssh/dist/regress/scp-uri.sh head/crypto/openssh/regress/sftp-uri.sh - copied unchanged from r333298, vendor-crypto/openssh/dist/regress/sftp-uri.sh head/crypto/openssh/regress/unittests/authopt/ - copied from r333298, vendor-crypto/openssh/dist/regress/unittests/authopt/ head/crypto/openssh/ssh-xmss.c - copied unchanged from r333298, vendor-crypto/openssh/dist/ssh-xmss.c head/crypto/openssh/sshkey-xmss.c - copied unchanged from r333298, vendor-crypto/openssh/dist/sshkey-xmss.c head/crypto/openssh/sshkey-xmss.h - copied unchanged from r333298, vendor-crypto/openssh/dist/sshkey-xmss.h head/crypto/openssh/xmss_commons.c - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_commons.c head/crypto/openssh/xmss_commons.h - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_commons.h head/crypto/openssh/xmss_fast.c - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_fast.c head/crypto/openssh/xmss_fast.h - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_fast.h head/crypto/openssh/xmss_hash.c - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_hash.c head/crypto/openssh/xmss_hash.h - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_hash.h head/crypto/openssh/xmss_hash_address.c - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_hash_address.c head/crypto/openssh/xmss_hash_address.h - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_hash_address.h head/crypto/openssh/xmss_wots.c - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_wots.c head/crypto/openssh/xmss_wots.h - copied unchanged from r333298, vendor-crypto/openssh/dist/xmss_wots.h Deleted: head/crypto/openssh/blocks.c head/crypto/openssh/fixprogs head/crypto/openssh/openbsd-compat/bsd-cray.c head/crypto/openssh/openbsd-compat/bsd-cray.h head/crypto/openssh/openbsd-compat/port-tun.c head/crypto/openssh/openbsd-compat/port-tun.h Modified: head/crypto/openssh/.skipped-commit-ids head/crypto/openssh/ChangeLog head/crypto/openssh/INSTALL head/crypto/openssh/Makefile.in head/crypto/openssh/PROTOCOL head/crypto/openssh/PROTOCOL.certkeys head/crypto/openssh/README head/crypto/openssh/README.privsep head/crypto/openssh/auth-options.c head/crypto/openssh/auth-options.h head/crypto/openssh/auth-pam.c head/crypto/openssh/auth-pam.h head/crypto/openssh/auth-passwd.c head/crypto/openssh/auth-sia.c head/crypto/openssh/auth.c head/crypto/openssh/auth.h head/crypto/openssh/auth2-hostbased.c head/crypto/openssh/auth2-none.c head/crypto/openssh/auth2-passwd.c head/crypto/openssh/auth2-pubkey.c head/crypto/openssh/auth2.c head/crypto/openssh/authfd.c head/crypto/openssh/authfd.h head/crypto/openssh/authfile.c head/crypto/openssh/bitmap.c head/crypto/openssh/bitmap.h head/crypto/openssh/channels.c head/crypto/openssh/cipher.c head/crypto/openssh/clientloop.c head/crypto/openssh/clientloop.h head/crypto/openssh/compat.c head/crypto/openssh/compat.h head/crypto/openssh/config.h head/crypto/openssh/configure.ac head/crypto/openssh/contrib/aix/README head/crypto/openssh/contrib/aix/buildbff.sh head/crypto/openssh/contrib/aix/inventory.sh head/crypto/openssh/contrib/cygwin/Makefile head/crypto/openssh/contrib/findssl.sh head/crypto/openssh/contrib/redhat/openssh.spec head/crypto/openssh/contrib/redhat/sshd.init head/crypto/openssh/contrib/redhat/sshd.init.old head/crypto/openssh/contrib/suse/openssh.spec head/crypto/openssh/crypto_api.h head/crypto/openssh/defines.h head/crypto/openssh/dh.c head/crypto/openssh/dns.c head/crypto/openssh/dns.h head/crypto/openssh/entropy.c head/crypto/openssh/hash.c head/crypto/openssh/install-sh head/crypto/openssh/kex.c head/crypto/openssh/kexc25519c.c head/crypto/openssh/kexc25519s.c head/crypto/openssh/kexdhc.c head/crypto/openssh/kexdhs.c head/crypto/openssh/kexecdhc.c head/crypto/openssh/kexecdhs.c head/crypto/openssh/kexgexc.c head/crypto/openssh/kexgexs.c head/crypto/openssh/key.c head/crypto/openssh/key.h head/crypto/openssh/krl.c head/crypto/openssh/loginrec.c head/crypto/openssh/md5crypt.c head/crypto/openssh/mdoc2man.awk head/crypto/openssh/misc.c head/crypto/openssh/misc.h head/crypto/openssh/mkinstalldirs head/crypto/openssh/moduli head/crypto/openssh/moduli.c head/crypto/openssh/monitor.c head/crypto/openssh/monitor_wrap.c head/crypto/openssh/monitor_wrap.h head/crypto/openssh/opacket.c head/crypto/openssh/opacket.h head/crypto/openssh/openbsd-compat/Makefile.in head/crypto/openssh/openbsd-compat/bsd-getpagesize.c head/crypto/openssh/openbsd-compat/bsd-malloc.c head/crypto/openssh/openbsd-compat/bsd-misc.c head/crypto/openssh/openbsd-compat/bsd-misc.h head/crypto/openssh/openbsd-compat/bsd-openpty.c head/crypto/openssh/openbsd-compat/bsd-statvfs.c head/crypto/openssh/openbsd-compat/bsd-statvfs.h head/crypto/openssh/openbsd-compat/freezero.c head/crypto/openssh/openbsd-compat/openbsd-compat.h head/crypto/openssh/openbsd-compat/port-aix.c head/crypto/openssh/openbsd-compat/port-linux.c head/crypto/openssh/openbsd-compat/port-uw.c head/crypto/openssh/openbsd-compat/readpassphrase.c head/crypto/openssh/openbsd-compat/regress/Makefile.in head/crypto/openssh/openbsd-compat/strnlen.c head/crypto/openssh/opensshd.init.in head/crypto/openssh/packet.c head/crypto/openssh/packet.h head/crypto/openssh/pathnames.h head/crypto/openssh/readconf.c head/crypto/openssh/readconf.h head/crypto/openssh/regress/Makefile head/crypto/openssh/regress/README.regress head/crypto/openssh/regress/agent-getpeereid.sh head/crypto/openssh/regress/agent-ptrace.sh head/crypto/openssh/regress/agent.sh head/crypto/openssh/regress/allow-deny-users.sh head/crypto/openssh/regress/authinfo.sh head/crypto/openssh/regress/cert-userkey.sh head/crypto/openssh/regress/cfgmatch.sh head/crypto/openssh/regress/forward-control.sh head/crypto/openssh/regress/key-options.sh head/crypto/openssh/regress/keys-command.sh head/crypto/openssh/regress/keytype.sh head/crypto/openssh/regress/limit-keytype.sh head/crypto/openssh/regress/misc/fuzz-harness/sig_fuzz.cc head/crypto/openssh/regress/misc/kexfuzz/Makefile head/crypto/openssh/regress/misc/kexfuzz/README head/crypto/openssh/regress/netcat.c head/crypto/openssh/regress/proxy-connect.sh head/crypto/openssh/regress/putty-ciphers.sh head/crypto/openssh/regress/putty-kex.sh head/crypto/openssh/regress/putty-transfer.sh head/crypto/openssh/regress/sftp-chroot.sh head/crypto/openssh/regress/sftp.sh head/crypto/openssh/regress/sshd-log-wrapper.sh head/crypto/openssh/regress/test-exec.sh head/crypto/openssh/regress/unittests/Makefile head/crypto/openssh/regress/unittests/Makefile.inc head/crypto/openssh/regress/unittests/bitmap/Makefile head/crypto/openssh/regress/unittests/conversion/Makefile head/crypto/openssh/regress/unittests/hostkeys/Makefile head/crypto/openssh/regress/unittests/kex/Makefile head/crypto/openssh/regress/unittests/match/Makefile head/crypto/openssh/regress/unittests/sshbuf/Makefile head/crypto/openssh/regress/unittests/sshkey/Makefile head/crypto/openssh/regress/unittests/sshkey/test_fuzz.c head/crypto/openssh/regress/unittests/sshkey/test_sshkey.c head/crypto/openssh/regress/unittests/test_helper/test_helper.c head/crypto/openssh/regress/unittests/test_helper/test_helper.h head/crypto/openssh/regress/unittests/utf8/Makefile head/crypto/openssh/regress/yes-head.sh head/crypto/openssh/scp.1 head/crypto/openssh/scp.c head/crypto/openssh/servconf.c head/crypto/openssh/servconf.h head/crypto/openssh/serverloop.c head/crypto/openssh/session.c head/crypto/openssh/sftp-client.c head/crypto/openssh/sftp.1 head/crypto/openssh/sftp.c head/crypto/openssh/ssh-add.c head/crypto/openssh/ssh-agent.c head/crypto/openssh/ssh-dss.c head/crypto/openssh/ssh-ecdsa.c head/crypto/openssh/ssh-keygen.1 head/crypto/openssh/ssh-keygen.c head/crypto/openssh/ssh-keyscan.1 head/crypto/openssh/ssh-keyscan.c head/crypto/openssh/ssh-keysign.c head/crypto/openssh/ssh-pkcs11-client.c head/crypto/openssh/ssh-pkcs11-helper.c head/crypto/openssh/ssh-pkcs11.c head/crypto/openssh/ssh-rsa.c head/crypto/openssh/ssh.1 head/crypto/openssh/ssh.c head/crypto/openssh/ssh_config head/crypto/openssh/ssh_config.5 head/crypto/openssh/ssh_namespace.h head/crypto/openssh/sshconnect.c head/crypto/openssh/sshconnect.h head/crypto/openssh/sshconnect2.c head/crypto/openssh/sshd.8 head/crypto/openssh/sshd.c head/crypto/openssh/sshd_config head/crypto/openssh/sshd_config.5 head/crypto/openssh/sshkey.c head/crypto/openssh/sshkey.h head/crypto/openssh/sshpty.c head/crypto/openssh/ttymodes.c head/crypto/openssh/umac.c head/crypto/openssh/umac128.c head/crypto/openssh/version.h head/lib/libpam/modules/pam_ssh/pam_ssh.c head/secure/lib/libssh/Makefile Directory Properties: head/crypto/openssh/ (props changed) Copied: head/crypto/openssh/.depend (from r333298, vendor-crypto/openssh/dist/.depend) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/crypto/openssh/.depend Fri May 11 13:22:43 2018 (r333490, copy of r333298, vendor-crypto/openssh/dist/.depend) @@ -0,0 +1,182 @@ +# DO NOT DELETE + +addrmatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h match.h log.h +atomicio.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h atomicio.h +audit-bsm.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +audit-linux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +audit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +auth-bsdauth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +auth-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h uidswap.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +auth-options.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h log.h misc.h sshkey.h match.h ssh2.h auth-options.h +auth-pam.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +auth-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h +auth-rhosts.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h uidswap.h pathnames.h log.h misc.h key.h sshkey.h servconf.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +auth-shadow.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +auth-sia.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +auth-skey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +auth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h match.h groupaccess.h log.h misc.h servconf.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h canohost.h uidswap.h packet.h openbsd-compat/sys-queue.h +auth.o: dispatch.h opacket.h authfile.h monitor_wrap.h ssherr.h compat.h channels.h +auth2-chall.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh2.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h +auth2-gss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +auth2-hostbased.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h canohost.h +auth2-hostbased.o: monitor_wrap.h pathnames.h ssherr.h match.h +auth2-kbdint.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h log.h misc.h servconf.h +auth2-none.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h atomicio.h xmalloc.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h ssh2.h ssherr.h +auth2-none.o: monitor_wrap.h +auth2-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssherr.h log.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h monitor_wrap.h misc.h servconf.h +auth2-pubkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h uidswap .h +auth2-pubkey.o: auth-options.h canohost.h monitor_wrap.h authfile.h match.h ssherr.h channels.h session.h +auth2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h atomicio.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h +auth2.o: monitor_wrap.h ssherr.h +authfd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h sshkey.h authfd.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h compat.h log.h atomicio.h misc.h ssherr.h +authfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h ssh.h log.h authfile.h misc.h atomicio.h sshkey.h ssherr.h krl.h +bitmap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h bitmap.h +bufaux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h +bufbn.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +bufec.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h +buffer.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h +canohost.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h canohost.h misc.h +chacha.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h chacha.h +channels.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h ssherr.h packet.h dispatch.h opacket.h log.h misc.h channels.h compat.h canohost.h key.h sshkey.h authfd.h pathnames.h +cipher-aes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/openssl-compat.h +cipher-aesctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h cipher-aesctr.h rijndael.h +cipher-chachapoly.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h cipher-chachapoly.h chacha.h poly1305.h +cipher-ctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +cipher.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h misc.h ssherr.h digest.h openbsd-compat/openssl-compat.h +cleanup.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h +clientloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h channels.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h +clientloop.o: kex.h mac.h myproposal.h log.h misc.h readconf.h clientloop.h sshconnect.h authfd.h atomicio.h sshpty.h match.h msg.h ssherr.h hostfile.h +compat.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h log.h match.h kex.h mac.h key.h sshkey.h +crc32.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crc32.h +dh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +digest-libc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h digest.h +digest-openssl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +dispatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh2.h log.h dispatch.h packet.h openbsd-compat/sys-queue.h opacket.h compat.h ssherr.h +dns.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h sshkey.h ssherr.h dns.h log.h digest.h +ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h ge25519.h fe25519.h sc25519.h +entropy.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +fatal.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h +fe25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h fe25519.h crypto_api.h +ge25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h fe25519.h crypto_api.h sc25519.h ge25519.h ge25519_base.data +groupaccess.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h groupaccess.h match.h log.h +gss-genr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +gss-serv-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +gss-serv.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +hash.o: crypto_api.h includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h digest.h log.h ssherr.h +hmac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h digest.h hmac.h +hostfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h match.h sshkey.h hostfile.h log.h misc.h ssherr.h digest.h hmac.h +kex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h key.h log.h match.h misc.h +kex.o: monitor.h ssherr.h digest.h +kexc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh2.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h key.h log.h digest.h ssherr.h +kexc25519c.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h key.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h digest.h ssherr.h +kexc25519s.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h kex.h mac.h key.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h ssherr.h +kexdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexecdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexecdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexecdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexgex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexgexc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +kexgexs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +key.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h key.h sshkey.h compat.h ssherr.h log.h authfile.h +krl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h ssherr.h sshkey.h authfile.h misc.h log.h digest.h bitmap.h krl.h +log.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h +loginrec.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h key.h sshkey.h hostfile.h ssh.h loginrec.h log.h atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h canohost.h auth.h auth-pam.h audit.h +logintest.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h loginrec.h +mac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h digest.h hmac.h umac.h mac.h misc.h ssherr.h openbsd-compat/openssl-compat.h +match.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h match.h misc.h +md5crypt.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h misc.h log.h ssh.h ssherr.h uidswap.h +moduli.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +monitor.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h atomicio.h xmalloc.h ssh.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h cipher.h cipher-chachapoly.h chacha.h poly1305.h +monitor.o: cipher-aesctr.h rijndael.h kex.h mac.h dh.h packet.h dispatch.h opacket.h auth-options.h sshpty.h channels.h session.h sshlogin.h canohost.h log.h misc.h servconf.h monitor.h monitor_wrap.h monitor_fdpass.h compat.h ssh2.h authfd.h match.h ssherr.h +monitor_fdpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h monitor_fdpass.h +monitor_wrap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h +monitor_wrap.o: loginrec.h auth-options.h packet.h dispatch.h opacket.h log.h monitor.h monitor_wrap.h atomicio.h monitor_fdpass.h misc.h channels.h session.h servconf.h ssherr.h +msg.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h log.h atomicio.h msg.h misc.h +mux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h log.h ssh.h ssh2.h pathnames.h misc.h match.h channels.h msg.h packet.h dispatch.h opacket.h monitor_fdpass.h sshpty.h key.h sshkey.h readconf.h clientloop.h +mux.o: ssherr.h +nchan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h ssh2.h ssherr.h packet.h dispatch.h opacket.h channels.h compat.h log.h +opacket.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h +packet.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h key.h sshkey.h xmalloc.h crc32.h compat.h ssh2.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h digest.h log.h canohost.h misc. h +packet.o: channels.h ssh.h packet.h dispatch.h opacket.h ssherr.h +platform-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +platform-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +platform-tracing.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h +platform.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h misc.h servconf.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +poly1305.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h poly1305.h +progressmeter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h progressmeter.h atomicio.h misc.h +readconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/glob.h xmalloc.h ssh.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h pathnames.h log.h sshkey.h misc.h readconf.h match.h kex.h mac.h key.h +readconf.o: uidswap.h myproposal.h digest.h +readpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h misc.h pathnames.h log.h ssh.h uidswap.h +rijndael.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h rijndael.h +sandbox-capsicum.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sandbox-darwin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sandbox-null.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sandbox-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sandbox-rlimit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sandbox-seccomp-filter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sandbox-solaris.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sandbox-systrace.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sc25519.h crypto_api.h +scp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h atomicio.h pathnames.h log.h misc.h progressmeter.h utf8.h +servconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h misc.h servconf.h compat.h pathnames.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h key.h sshkey.h kex.h mac.h +servconf.o: match.h channels.h groupaccess.h canohost.h packet.h dispatch.h opacket.h hostfile.h auth.h auth-pam.h audit.h loginrec.h myproposal.h digest.h +serverloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h packet.h dispatch.h opacket.h log.h misc.h servconf.h canohost.h sshpty.h channels.h compat.h ssh2.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h +serverloop.o: poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h loginrec.h session.h auth-options.h serverloop.h ssherr.h +session.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h match.h uidswap.h compat.h channels.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h +session.o: cipher-aesctr.h rijndael.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h authfd.h pathnames.h log.h misc.h servconf.h sshlogin.h serverloop.h canohost.h session.h kex.h mac.h monitor_wrap.h sftp.h atomicio.h +sftp-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h log.h atomicio.h progressmeter.h misc.h utf8.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h +sftp-common.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssherr.h log.h misc.h sftp.h sftp-common.h +sftp-glob.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h +sftp-server-main.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h sftp.h misc.h xmalloc.h +sftp-server.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssherr.h log.h misc.h match.h uidswap.h sftp.h sftp-common.h +sftp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h log.h pathnames.h misc.h utf8.h sftp.h ssherr.h sftp-common.h sftp-client.h openbsd-compat/glob.h +ssh-add.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/openssl-compat.h xmalloc.h ssh.h log.h sshkey.h authfd.h authfile.h pathnames.h misc.h ssherr.h digest.h +ssh-agent.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshkey.h authfd.h compat.h log.h misc.h digest.h ssherr.h match.h +ssh-dss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +ssh-ecdsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +ssh-ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h log.h sshkey.h ssherr.h ssh.h +ssh-keygen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h sshkey.h authfile.h uuencode.h pathnames.h log.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssherr.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h +ssh-keyscan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h key.h compat.h myproposal.h packet.h dispatch.h +ssh-keyscan.o: opacket.h log.h atomicio.h misc.h hostfile.h ssherr.h ssh_api.h ssh2.h dns.h +ssh-keysign.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h log.h sshkey.h ssh.h ssh2.h misc.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h ssherr.h +ssh-pkcs11-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +ssh-pkcs11-helper.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h log.h misc.h sshkey.h authfd.h ssh-pkcs11.h ssherr.h +ssh-pkcs11.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +ssh-rsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +ssh-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +ssh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/openssl-compat.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h canohost.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h packet.h +ssh.o: dispatch.h opacket.h channels.h key.h sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h misc.h readconf.h sshconnect.h kex.h mac.h sshpty.h match.h msg.h uidswap.h version.h ssherr.h myproposal.h utf8.h +ssh_api.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh_api.h openbsd-compat/sys-queue.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h key.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h +ssh_api.o: log.h authfile.h misc.h version.h myproposal.h ssherr.h +sshbuf-getput-basic.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h +sshbuf-getput-crypto.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h +sshbuf-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h +sshbuf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h misc.h +sshconnect.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h key.h sshkey.h hostfile.h ssh.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h uidswap.h compat.h sshconnect.h log.h misc.h readconf.h atomicio.h dns.h monitor_fdpass.h +sshconnect.o: ssh2.h version.h authfile.h ssherr.h authfd.h +sshconnect2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h key.h sshkey.h kex.h mac. h +sshconnect2.o: myproposal.h sshconnect.h authfile.h dh.h authfd.h log.h misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h ssherr.h utf8.h +sshd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h log.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h +sshd.o: chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h key.h sshkey.h kex.h mac.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h +ssherr.o: ssherr.h +sshkey-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +sshkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h ssh2.h ssherr.h misc.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h sshkey-xmss.h match.h xmss_fast.h +sshlogin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h loginrec.h log.h misc.h servconf.h +sshpty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshpty.h log.h misc.h +sshtty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshpty.h +ttymodes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h compat.h ttymodes.h +uidswap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h uidswap.h xmalloc.h +umac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h umac.h misc.h rijndael.h +umac128.o: umac.c includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h umac.h misc.h rijndael.h +utf8.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h utf8.h +uuencode.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h uuencode.h +verify.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h +xmalloc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h log.h +xmss_commons.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +xmss_fast.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +xmss_hash.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +xmss_hash_address.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h +xmss_wots.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h Modified: head/crypto/openssh/.skipped-commit-ids ============================================================================== --- head/crypto/openssh/.skipped-commit-ids Fri May 11 13:09:21 2018 (r333489) +++ head/crypto/openssh/.skipped-commit-ids Fri May 11 13:22:43 2018 (r333490) @@ -1,3 +1,10 @@ +5317f294d63a876bfc861e19773b1575f96f027d remove libssh from makefiles +a337e886a49f96701ccbc4832bed086a68abfa85 Makefile changes +f2c9feb26963615c4fece921906cf72e248b61ee more Makefile +fa728823ba21c4b45212750e1d3a4b2086fd1a62 more Makefile refactoring + +Old upstream tree: + 321065a95a7ccebdd5fd08482a1e19afbf524e35 Update DH groups d4f699a421504df35254cf1c6f1a7c304fb907ca Remove 1k bit groups aafe246655b53b52bc32c8a24002bc262f4230f7 Remove intermediate moduli Modified: head/crypto/openssh/ChangeLog ============================================================================== --- head/crypto/openssh/ChangeLog Fri May 11 13:09:21 2018 (r333489) +++ head/crypto/openssh/ChangeLog Fri May 11 13:22:43 2018 (r333490) @@ -1,3 +1,2689 @@ +commit a0349a1cc4a18967ad1dbff5389bcdf9da098814 +Author: Damien Miller +Date: Mon Apr 2 15:38:28 2018 +1000 + + update versions in .spec files + +commit 816ad38f79792f5617e3913be306ddb27e91091c +Author: Damien Miller +Date: Mon Apr 2 15:38:20 2018 +1000 + + update version number + +commit 2c71ca1dd1efe458cb7dee3f8a1a566f913182c2 +Author: Darren Tucker +Date: Fri Mar 30 18:23:07 2018 +1100 + + Disable native strndup and strnlen on AIX. + + On at least some revisions of AIX, strndup returns unterminated strings + under some conditions, apparently because strnlen returns incorrect + values in those cases. Disable both on AIX and use the replacements + from openbsd-compat. Fixes problem with ECDSA keys there, ok djm. + +commit 6b5a17bc14e896e3904dc58d889b58934cfacd24 +Author: Darren Tucker +Date: Mon Mar 26 13:12:44 2018 +1100 + + Include ssh_api.h for struct ssh. + + struct ssh is needed by implementations of sys_auth_passwd() that were + converted in commit bba02a50. Needed to fix build on AIX, I assume for + the other platforms too (although it should be harmless if not needed). + +commit bc3f80e4d191b8e48650045dfa8a682cd3aabd4d +Author: Darren Tucker +Date: Mon Mar 26 12:58:09 2018 +1100 + + Remove UNICOS code missed during removal. + + Fixes compile error on AIX. + +commit 9d57762c24882e2f000a21a0ffc8c5908a1fa738 +Author: markus@openbsd.org +Date: Sat Mar 24 19:29:03 2018 +0000 + + upstream: openssh-7.7 + + OpenBSD-Commit-ID: 274e614352460b9802c905f38fb5ea7ed5db3d41 + +commit 4b7d8acdbbceef247dc035e611e577174ed8a87e +Author: Damien Miller +Date: Mon Mar 26 09:37:02 2018 +1100 + + Remove authinfo.sh test dependency on printenv + + Some platforms lack printenv in the default $PATH. + Reported by Tom G. Christensen + +commit 4afeaf3dcb7dc70efd98fcfcb0ed28a6b40b820e +Author: Tim Rice +Date: Sun Mar 25 10:00:21 2018 -0700 + + Use libiaf on all sysv5 systems + +commit bba02a5094b3db228ceac41cb4bfca165d0735f3 +Author: Tim Rice +Date: Sun Mar 25 09:17:33 2018 -0700 + + modified: auth-sia.c + modified: openbsd-compat/port-aix.c + modified: openbsd-compat/port-uw.c + + propogate changes to auth-passwd.c in commit + 7c856857607112a3dfe6414696bf4c7ab7fb0cb3 to other providers + of sys_auth_passwd() + +commit d7a7a39168bdfe273587bf85d779d60569100a3f +Author: markus@openbsd.org +Date: Sat Mar 24 19:29:03 2018 +0000 + + upstream: openssh-7.7 + + OpenBSD-Commit-ID: 274e614352460b9802c905f38fb5ea7ed5db3d41 + +commit 9efcaaac314c611c6c0326e8bac5b486c424bbd2 +Author: markus@openbsd.org +Date: Sat Mar 24 19:28:43 2018 +0000 + + upstream: fix bogus warning when signing cert keys using agent; + + from djm; ok deraadt dtucker + + OpenBSD-Commit-ID: 12e50836ba2040042383a8b71e12d7ea06e9633d + +commit 393436024d2e4b4c7a01f9cfa5854e7437896d11 +Author: Darren Tucker +Date: Sun Mar 25 09:40:46 2018 +1100 + + Replace /dev/stdin with "-". + + For some reason sftp -b doesn't work with /dev/stdin on Cygwin, as noted + and suggested by vinschen at redhat.com. + +commit b5974de1a1d419e316ffb6524b1b277dda2f3b49 +Author: Darren Tucker +Date: Fri Mar 23 13:21:14 2018 +1100 + + Provide $OBJ to paths in PuTTY interop tests. + +commit dc31e79454e9b9140b33ad380565fdb59b9c4f33 +Author: dtucker@openbsd.org +Date: Fri Mar 16 09:06:31 2018 +0000 + + upstream: Tell puttygen to use /dev/urandom instead of /dev/random. On + + OpenBSD they are both non-blocking, but on many other -portable platforms it + blocks, stalling tests. + + OpenBSD-Regress-ID: 397d0d4c719c353f24d79f5b14775e0cfdf0e1cc + +commit cb1f94431ef319cd48618b8b771b58739a8210cf +Author: markus@openbsd.org +Date: Thu Mar 22 07:06:11 2018 +0000 + + upstream: ssh/xmss: fix build; ok djm@ + + OpenBSD-Commit-ID: c9374ca41d4497f1c673ab681cc33f6e7c5dd186 + +commit 27979da9e4074322611355598f69175b9ff10d39 +Author: markus@openbsd.org +Date: Thu Mar 22 07:05:48 2018 +0000 + + upstream: ssh/xmss: fix deserialize for certs; ok djm@ + + OpenBSD-Commit-ID: f44c41636c16ec83502039828beaf521c057dddc + +commit c6cb2565c9285eb54fa9dfbb3890f5464aff410f +Author: Darren Tucker +Date: Thu Mar 22 17:00:28 2018 +1100 + + Save $? before case statement. + + In some shells (FreeBSD 9, ash) the case statement resets $?, so save + for later testing. + +commit 4c4e7f783b43b264c247233acb887ee10ed4ce4d +Author: djm@openbsd.org +Date: Wed Mar 14 05:35:40 2018 +0000 + + upstream: rename recently-added "valid-before" key restriction to + + "expiry-time" as the former is confusing wrt similar terminology in X.509; + pointed out by jsing@ + + OpenBSD-Regress-ID: ac8b41dbfd90cffd525d58350c327195b0937793 + +commit 500396b204c58e78ad9d081516a365a9f28dc3fd +Author: djm@openbsd.org +Date: Mon Mar 12 00:56:03 2018 +0000 + + upstream: check valid-before option in authorized_keys + + OpenBSD-Regress-ID: 7e1e4a84f7f099a290e5a4cbf4196f90ff2d7e11 + +commit a76b5d26c2a51d7dd7a5164e683ab3f4419be215 +Author: djm@openbsd.org +Date: Mon Mar 12 00:54:04 2018 +0000 + + upstream: explicitly specify RSA/SHA-2 keytype here too + + OpenBSD-Regress-ID: 74d7b24e8c72c27af6b481198344eb077e993a62 + +commit 3a43297ce29d37c64e37c7e21282cb219e28d3d1 +Author: djm@openbsd.org +Date: Mon Mar 12 00:52:57 2018 +0000 + + upstream: exlicitly include RSA/SHA-2 keytypes in + + PubkeyAcceptedKeyTypes here + + OpenBSD-Regress-ID: 954d19e0032a74e31697fb1dc7e7d3d1b2d65fe9 + +commit 037fdc1dc2d68e1d43f9c9e2586c02cabc8f7cc8 +Author: jmc@openbsd.org +Date: Wed Mar 14 06:56:20 2018 +0000 + + upstream: sort expiry-time; + + OpenBSD-Commit-ID: 8c7d82ee1e63e26ceb2b3d3a16514019f984f6bf + +commit abc0fa38c9bc136871f28e452c3465c3051fc785 +Author: djm@openbsd.org +Date: Wed Mar 14 05:35:40 2018 +0000 + + upstream: rename recently-added "valid-before" key restriction to + + "expiry-time" as the former is confusing wrt similar terminology in X.509; + pointed out by jsing@ + + OpenBSD-Commit-ID: 376939466a1f562f3950a22314bc6505733aaae6 + +commit bf0fbf2b11a44f06a64b620af7d01ff171c28e13 +Author: djm@openbsd.org +Date: Mon Mar 12 00:52:01 2018 +0000 + + upstream: add valid-before="[time]" authorized_keys option. A + + simple way of giving a key an expiry date. ok markus@ + + OpenBSD-Commit-ID: 1793b4dd5184fa87f42ed33c7b0f4f02bc877947 + +commit fbd733ab7adc907118a6cf56c08ed90c7000043f +Author: Darren Tucker +Date: Mon Mar 12 19:17:26 2018 +1100 + + Add AC_LANG_PROGRAM to AC_COMPILE_IFELSE. + + The recently added MIPS ABI tests need AC_LANG_PROGRAM to prevent + warnings from autoconf. Pointed out by klausz at haus-gisela.de. + +commit c7c458e8261b04d161763cd333d74e7a5842e917 +Author: djm@openbsd.org +Date: Wed Mar 7 23:53:08 2018 +0000 + + upstream: revert recent strdelim() change, it causes problems with + + some configs. + + revision 1.124 + date: 2018/03/02 03:02:11; author: djm; state: Exp; lines: +19 -8; commitid: nNRsCijZiGG6SUTT; + Allow escaped quotes \" and \' in ssh_config and sshd_config quotes + option strings. bz#1596 ok markus@ + + OpenBSD-Commit-ID: 59c40b1b81206d713c06b49d8477402c86babda5 + +commit 0bcd871ccdf3baf2b642509ba4773d5be067cfa2 +Author: jmc@openbsd.org +Date: Mon Mar 5 07:03:18 2018 +0000 + + upstream: move the input format details to -f; remove the output + + format details and point to sshd(8), where it is documented; + + ok dtucker + + OpenBSD-Commit-ID: 95f17e47dae02a6ac7329708c8c893d4cad0004a + +commit 45011511a09e03493568506ce32f4891a174a3bd +Author: Vicente Olivert Riera +Date: Tue Jun 20 16:42:28 2017 +0100 + + configure.ac: properly set seccomp_audit_arch for MIPS64 + + Currently seccomp_audit_arch is set to AUDIT_ARCH_MIPS64 or + AUDIT_ARCH_MIPSEL64 (depending on the endinness) when openssh is built + for MIPS64. However, that's only valid for n64 ABI. The right macros for + n32 ABI defined in seccomp.h are AUDIT_ARCH_MIPS64N32 and + AUDIT_ARCH_MIPSEL64N32, for big and little endian respectively. + + Because of that an sshd built for MIPS64 n32 rejects connection attempts + and the output of strace reveals that the problem is related to seccomp + audit: + + [pid 194] prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, {len=57, + filter=0x555d5da0}) = 0 + [pid 194] write(7, "\0\0\0]\0\0\0\5\0\0\0Ulist_hostkey_types: "..., 97) = ? + [pid 193] <... poll resumed> ) = 2 ([{fd=5, revents=POLLIN|POLLHUP}, + {fd=6, revents=POLLHUP}]) + [pid 194] +++ killed by SIGSYS +++ + + This patch fixes that problem by setting the right value to + seccomp_audit_arch taking into account the MIPS64 ABI. + + Signed-off-by: Vicente Olivert Riera + +commit 580086704c31de91dc7ba040a28e416bf1fefbca +Author: Vicente Olivert Riera +Date: Tue Jun 20 16:42:11 2017 +0100 + + configure.ac: detect MIPS ABI + + Signed-off-by: Vicente Olivert Riera + +commit cd4e937aa701f70366cd5b5969af525dff6fdf15 +Author: Alan Yee +Date: Wed Mar 7 15:12:14 2018 -0800 + + Use https URLs for links that support it. + +commit c0a0c3fc4a76b682db22146b28ddc46566db1ce9 +Author: Darren Tucker +Date: Mon Mar 5 20:03:07 2018 +1100 + + Disable UTMPX on SunOS4. + +commit 58fd4c5c0140f6636227ca7acbb149ab0c2509b9 +Author: Darren Tucker +Date: Mon Mar 5 19:28:08 2018 +1100 + + Check for and work around buggy fflush(NULL). + + Some really old platforms (eg SunOS4) segfault on fflush(NULL) so check + for and work around. With klausz at haus-gisela.de. + +commit 71e48bc7945f867029e50e06c665c66aed6d3c64 +Author: Darren Tucker +Date: Mon Mar 5 10:22:32 2018 +1100 + + Remove extra XMSS #endif + + Extra #endif breaks compile with -DWITH_XMSS. Pointed out by Jack + Schmidt via github. + +commit 055e09e2212ff52067786bf6d794ca9512ff7f0c +Author: dtucker@openbsd.org +Date: Sat Mar 3 06:37:53 2018 +0000 + + upstream: Update RSA minimum modulus size to 1024. sshkey.h rev 1.18 + + bumped the minimum from 768 to 1024, update man page accordingly. + + OpenBSD-Commit-ID: 27563ab4e866cd2aac40a5247876f6787c08a338 + +commit 7e4fadd3248d6bb7d39d6688c76a613d35d2efc1 +Author: djm@openbsd.org +Date: Sun Mar 4 01:46:48 2018 +0000 + + upstream: for the pty control tests, just check that the PTY path + + points to something in /dev (rather than checking the device node itself); + makes life easier for portable, where systems with dynamic ptys can delete + nodes before we get around to testing their existence. + + OpenBSD-Regress-ID: b1e455b821e62572bccd98102f8dd9d09bb94994 + +commit 13ef4cf53f24753fe920832b990b25c9c9cd0530 +Author: Darren Tucker +Date: Sat Mar 3 16:21:20 2018 +1100 + + Update PAM password change to new opts API. + +commit 33561e68e0b27366cb769295a077aabc6a49d2a1 +Author: Darren Tucker +Date: Sat Mar 3 14:56:09 2018 +1100 + + Add strndup for platforms that need it. + + Some platforms don't have strndup, which includes Solaris 10, NetBSD 3 + and FreeBSD 6. + +commit e8a17feba95eef424303fb94441008f6c5347aaf +Author: Darren Tucker +Date: Sat Mar 3 14:49:07 2018 +1100 + + Flatten and alphabetize object file lists. + + This will make maintenance and changes easier. "no objection" tim@ + +commit de1920d743d295f50e6905e5957c4172c038e8eb +Author: djm@openbsd.org +Date: Sat Mar 3 03:16:17 2018 +0000 + + upstream: unit tests for new authorized_keys options API + + OpenBSD-Regress-ID: 820f9ec9c6301f6ca330ad4052d85f0e67d0bdc1 + +commit dc3e92df17556dc5b0ab19cee8dcb2a6ba348717 +Author: djm@openbsd.org +Date: Fri Mar 2 02:53:27 2018 +0000 + + upstream: fix testing of pty option, include positive test and + + testing of restrict keyword + + OpenBSD-Regress-ID: 4268f27c2706a0a95e725d9518c5bcbec9814c6d + +commit 3d1edd1ebbc0aabea8bbe61903060f37137f7c61 +Author: djm@openbsd.org +Date: Fri Mar 2 02:51:55 2018 +0000 + + upstream: better testing for port-forwarding and restrict flags in + + authorized_keys + + OpenBSD-Regress-ID: ee771df8955f2735df54746872c6228aff381daa + +commit 7c856857607112a3dfe6414696bf4c7ab7fb0cb3 +Author: djm@openbsd.org +Date: Sat Mar 3 03:15:51 2018 +0000 + + upstream: switch over to the new authorized_keys options API and + + remove the legacy one. + + Includes a fairly big refactor of auth2-pubkey.c to retain less state + between key file lines. + + feedback and ok markus@ + + OpenBSD-Commit-ID: dece6cae0f47751b9892080eb13d6625599573df + +commit 90c4bec8b5f9ec4c003ae4abdf13fc7766f00c8b +Author: djm@openbsd.org +Date: Sat Mar 3 03:06:02 2018 +0000 + + upstream: Introduce a new API for handling authorized_keys options. + + This API parses options to a dedicated structure rather than the old API's + approach of setting global state. It also includes support for merging + options, e.g. from authorized_keys, authorized_principals and/or + certificates. + + feedback and ok markus@ + + OpenBSD-Commit-ID: 98badda102cd575210d7802943e93a34232c80a2 + +commit 26074380767e639ef89321610e146ae11016b385 +Author: djm@openbsd.org +Date: Sat Mar 3 03:01:50 2018 +0000 + + upstream: warn when the agent returns a signature type that was + + different to what was requested. This might happen when an old/non-OpenSSH + agent is asked to make a rsa-sha2-256/512 signature but only supports + ssh-rsa. bz#2799 feedback and ok markus@ + + OpenBSD-Commit-ID: 760c0f9438c5c58abc16b5f98008ff2d95cb13ce + +commit f493d2b0b66fb003ed29f31dd66ff1aeb64be1fc +Author: jmc@openbsd.org +Date: Fri Mar 2 21:40:15 2018 +0000 + + upstream: apply a lick of paint; tweaks/ok dtucker + + OpenBSD-Commit-ID: 518a6736338045e0037f503c21027d958d05e703 + +commit 713d9cb510e0e7759398716cbe6dcf43e574be71 +Author: djm@openbsd.org +Date: Fri Mar 2 03:02:11 2018 +0000 + + upstream: Allow escaped quotes \" and \' in ssh_config and + + sshd_config quotes option strings. bz#1596 ok markus@ + + OpenBSD-Commit-ID: dd3a29fc2dc905e8780198e5a6a30b096de1a1cb + +commit 94b4e2d29afaaaef89a95289b16c18bf5627f7cd +Author: djm@openbsd.org +Date: Fri Mar 2 02:08:03 2018 +0000 + + upstream: refactor sshkey_read() to make it a little more, err, + + readable. ok markus + + OpenBSD-Commit-ID: 2e9247b5762fdac3b6335dc606d3822121714c28 + +commit 5886b92968b360623491699247caddfb77a74d80 +Author: markus@openbsd.org +Date: Thu Mar 1 20:32:16 2018 +0000 + + upstream: missing #ifdef for _PATH_HOST_XMSS_KEY_FILE; report by + + jmc@ + + OpenBSD-Commit-ID: 9039cb69a3f9886bfef096891a9e7fcbd620280b + +commit 3b36bed3d26f17f6a2b7e036e01777770fe1bcd4 +Author: dtucker@openbsd.org +Date: Mon Feb 26 12:14:53 2018 +0000 + + upstream: Remove unneeded (local) include. ok markus@ + + OpenBSD-Commit-ID: 132812dd2296b1caa8cb07d2408afc28e4e60f93 + +commit 27b9f3950e0289e225b57b7b880a8f1859dcd70b +Author: dtucker@openbsd.org +Date: Mon Feb 26 03:56:44 2018 +0000 + + upstream: Add $OpenBSD$ markers to xmss files to help keep synced + + with portable. ok djm@. + + OpenBSD-Commit-ID: 5233a27aafd1dfadad4b957225f95ae51eb365c1 + +commit afd830847a82ebbd5aeab05bad6d2c8ce74df1cd +Author: dtucker@openbsd.org +Date: Mon Feb 26 03:03:05 2018 +0000 + + upstream: Add newline at end of file to prevent compiler warnings. + + OpenBSD-Commit-ID: 52f247d4eafe840c7c14c8befa71a760a8eeb063 + +commit 941e0d3e9bb8d5e4eb70cc694441445faf037c84 +Author: Darren Tucker +Date: Wed Feb 28 19:59:35 2018 +1100 + + Add WITH_XMSS, move to prevent conflicts. + + Add #ifdef WITH_XMSS to ssh-xmss.c, move it in the other files to after + includes.h so it's less likely to conflict and will pick up WITH_XMSS if + added to config.h. + +commit a10d8552d0d2438da4ed539275abcbf557d1e7a8 +Author: Darren Tucker +Date: Tue Feb 27 14:45:17 2018 +1100 + + Conditionally compile XMSS code. + + The XMSS code is currently experimental and, unlike the rest of OpenSSH + cannot currently be compiled with a c89 compiler. + +commit 146c3bd28c8dbee9c4b06465d9c9facab96b1e9b +Author: Darren Tucker +Date: Mon Feb 26 12:51:29 2018 +1100 + + Check dlopen has RTLD_NOW before enabling pkcs11. + +commit 1323f120d06a26074c4d154fcbe7f49bcad3d741 +Author: Darren Tucker +Date: Tue Feb 27 08:41:25 2018 +1100 + + Check for attributes on prototype args. + + Some compilers (gcc 2.9.53, 3.0 and probably others, see gcc bug #3481) + do not accept __attribute__ on function pointer prototype args. Check for + this and hide them if they're not accepted. + +commit f0b245b0439e600fab782d19e97980e9f2c2533c +Author: Darren Tucker +Date: Mon Feb 26 11:43:48 2018 +1100 + + Check if HAVE_DECL_BZERO correctly. + +commit c7ef4a399155e1621a532cc5e08e6fa773658dd4 +Author: Darren Tucker +Date: Mon Feb 26 17:42:56 2018 +1100 + + Wrap in #ifdef HAVE_STDINT_H. + +commit ac53ce46cf8165cbda7f57ee045f9f32e1e92b31 +Author: Darren Tucker +Date: Mon Feb 26 16:24:23 2018 +1100 + + Replace $(CURDIR) with $(PWD). + + The former doesn't work on Solaris or BSDs. + +commit 534b2680a15d14e7e60274d5b29b812d44cc5a44 +Author: Darren Tucker +Date: Mon Feb 26 14:51:59 2018 +1100 + + Comment out hexdump(). + + Nothing currently uses them but they cause conflicts on at least + FreeBSD, possibly others. ok djm@ + +commit 5aea4aa522f61bb2f34c3055a7de203909dfae77 +Author: Darren Tucker +Date: Mon Feb 26 14:39:14 2018 +1100 + + typo: missing ; + +commit cd3ab57f9b388f8b1abf601dc4d78ff82d83b75e +Author: Darren Tucker +Date: Mon Feb 26 14:37:06 2018 +1100 + + Hook up flock() compat code. + + Also a couple of minor changes: fail if we can't lock instead of + silently succeeding, and apply a couple of minor style fixes. + +commit b087998d1ba90dd1ddb6bfdb17873dc3e7392798 +Author: Darren Tucker +Date: Mon Feb 26 14:27:02 2018 +1100 + + Import flock() compat from NetBSD. + + From NetBSD's src/trunk/tools/compat/flock.c, no OpenSSH changes yet. + +commit 89212533dde6798324e835b1499084658df4579e +Author: Darren Tucker +Date: Mon Feb 26 12:32:14 2018 +1100 + + Fix breakage when REGRESSTMP not set. + + BUILDDIR is not set where used for REGRESSTMP, use make's CURDIR + instead. Pointed out by djm@. + +commit f885474137df4b89498c0b8834c2ac72c47aa4bd +Author: Damien Miller +Date: Mon Feb 26 12:18:14 2018 +1100 + + XMSS-related files get includes.h + +commit 612faa34c72e421cdc9e63f624526bae62d557cc +Author: Damien Miller +Date: Mon Feb 26 12:17:55 2018 +1100 + + object files end with .o - not .c + +commit bda709b8e13d3eef19e69c2d1684139e3af728f5 +Author: Damien Miller +Date: Mon Feb 26 12:17:22 2018 +1100 + + avoid inclusion of deprecated selinux/flask.h + + Use string_to_security_class() instead. + +commit 2e396439365c4ca352cac222717d09b14f8a0dfd +Author: Damien Miller +Date: Mon Feb 26 11:48:27 2018 +1100 + + updatedepend + +commit 1b11ea7c58cd5c59838b5fa574cd456d6047b2d4 +Author: markus@openbsd.org +Date: Fri Feb 23 15:58:37 2018 +0000 + + upstream: Add experimental support for PQC XMSS keys (Extended + + Hash-Based Signatures) The code is not compiled in by default (see WITH_XMSS + in Makefile.inc) Joint work with stefan-lukas_gazdag at genua.eu See + https://tools.ietf.org/html/draft-irtf-cfrg-xmss-hash-based-signatures-12 ok + djm@ + + OpenBSD-Commit-ID: ef3eccb96762a5d6f135d7daeef608df7776a7ac + +commit 7d330a1ac02076de98cfc8fda05353d57b603755 +Author: jmc@openbsd.org +Date: Fri Feb 23 07:38:09 2018 +0000 + + upstream: some cleanup for BindInterface and ssh-keyscan; + + OpenBSD-Commit-ID: 1a719ebeae22a166adf05bea5009add7075acc8c + +commit c7b5a47e3b9db9a0f0198f9c90c705f6307afc2b +Author: Darren Tucker +Date: Sun Feb 25 23:55:41 2018 +1100 + + Invert sense of getpgrp test. + + AC_FUNC_GETPGRP tests if getpgrp(0) works, which it does if it's not + declared. Instead, test if the zero-arg version we want to use works. + +commit b39593a6de5290650a01adf8699c6460570403c2 +Author: Darren Tucker +Date: Sun Feb 25 13:25:15 2018 +1100 + + Add no-op getsid implmentation. + +commit 11057564eb6ab8fd987de50c3d7f394c6f6632b7 +Author: Darren Tucker +Date: Sun Feb 25 11:22:57 2018 +1100 + + bsd-statvfs: include sys/vfs.h, check for f_flags. + +commit e9dede06e5bc582a4aeb5b1cd5a7a640d7de3609 +Author: Darren Tucker +Date: Sun Feb 25 10:20:31 2018 +1100 + + Handle calloc(0,x) where different from malloc. + + Configure assumes that if malloc(0) returns null then calloc(0,n) + also does. On some old platforms (SunOS4) malloc behaves as expected + (as determined by AC_FUNC_MALLOC) but calloc doesn't. Test for this + at configure time and activate the replacement function if found, plus + handle this case in rpl_calloc. + +commit 2eb4041493fd2635ffdc64a852d02b38c4955e0b +Author: Darren Tucker +Date: Sat Feb 24 21:06:48 2018 +1100 + + Add prototype for readv if needed. + +commit 6c8c9a615b6d31db8a87bc25033f053d5b0a831e +Author: Darren Tucker +Date: Sat Feb 24 20:46:37 2018 +1100 + + Check for raise and supply if needed. + +commit a9004425a032d7a7141a5437cfabfd02431e2a74 +Author: Darren Tucker +Date: Sat Feb 24 20:25:22 2018 +1100 + + Check for bzero and supply if needed. + + Since explicit_bzero uses it via an indirect it needs to be a function + not just a macro. + +commit 1a348359e4d2876203b5255941bae348557f4f54 +Author: djm@openbsd.org +Date: Fri Feb 23 05:14:05 2018 +0000 + + upstream: Add ssh-keyscan -D option to make it print its results in + + SSHFP format bz#2821, ok dtucker@ + + OpenBSD-Commit-ID: 831446b582e0f298ca15c9d99c415c899e392221 + +commit 3e19fb976a47b44b3d7c4f8355269f7f2c5dd82c +Author: dtucker@openbsd.org +Date: Fri Feb 23 04:18:46 2018 +0000 + + upstream: Add missing braces. + + Caught by the tinderbox's -Werror=misleading-indentation, ok djm@ + + OpenBSD-Commit-ID: d44656af594c3b2366eb87d6abcef83e1c88a6ca + +commit b59162da99399d89bd57f71c170c0003c55b1583 +Author: Darren Tucker +Date: Fri Feb 23 15:20:42 2018 +1100 + + Check for ifaddrs.h for BindInterface. + + BindInterface required getifaddr and friends so disable if not available + (eg Solaris 10). We should be able to add support for some systems with + a bit more work but this gets the building again. + +commit a8dd6fe0aa10b6866830b4688a73ef966f0aed88 +Author: Damien Miller +Date: Fri Feb 23 14:19:11 2018 +1100 + + space before tab in previous + +commit b5e9263c7704247f9624c8f5c458e9181fcdbc09 +Author: dtucker@openbsd.org +Date: Fri Feb 9 03:40:22 2018 +0000 + + upstream: Replace fatal with exit in the case that we do not have + + $SUDO set. Prevents test failures when neither sudo nor doas are configured. + + OpenBSD-Regress-ID: 6a0464decc4f8ac7d6eded556a032b0fc521bc7b + +commit 3e9d3192ad43758ef761c5b0aa3ac5ccf8121ef2 +Author: Darren Tucker +Date: Fri Feb 23 14:10:53 2018 +1100 + + Use portable syntax for REGRESSTMP. + +commit 73282b61187883a2b2bb48e087fdda1d751d6059 +Author: djm@openbsd.org +Date: Fri Feb 23 03:03:00 2018 +0000 + + upstream: unbreak interop test after SSHv1 purge; patch from Colin + + Watson via bz#2823 + + OpenBSD-Regress-ID: 807d30a597756ed6612bdf46dfebca74f49cb31a + +commit f8985dde5f46aedade0373365cbf86ed3f1aead2 +Author: dtucker@openbsd.org +Date: Fri Feb 9 03:42:57 2018 +0000 + + upstream: Skip sftp-chroot test when SUDO not set instead of + + fatal(). + + OpenBSD-Regress-ID: cd4b5f1109b0dc09af4e5ea7d4968c43fbcbde88 + +commit df88551c02d4e3445c44ff67ba8757cff718609a +Author: dtucker@openbsd.org +Date: Fri Feb 9 03:40:22 2018 +0000 + + upstream: Replace fatal with exit in the case that we do not have + + $SUDO set. Prevents test failures when neither sudo nor doas are configured. + + OpenBSD-Regress-ID: 6a0464decc4f8ac7d6eded556a032b0fc521bc7b + +commit 3b252c20b19f093e87363de197f1100b79705dd3 +Author: djm@openbsd.org +Date: Thu Feb 8 08:46:20 2018 +0000 + + upstream: some helpers to check verbose/quiet mode + + OpenBSD-Regress-ID: e736aac39e563f5360a0935080a71d5fdcb976de + +commit ac2e3026bbee1367e4cda34765d1106099be3287 +Author: djm@openbsd.org +Date: Fri Feb 23 02:34:33 2018 +0000 + + upstream: Add BindInterface ssh_config directive and -B + + command-line argument to ssh(1) that directs it to bind its outgoing + connection to the address of the specified network interface. + + BindInterface prefers to use addresses that aren't loopback or link- + local, but will fall back to those if no other addresses of the + required family are available on that interface. + + Based on patch by Mike Manning in bz#2820, ok dtucker@ + + OpenBSD-Commit-ID: c5064d285c2851f773dd736a2c342aa384fbf713 + +commit fcdb9d777839a3fa034b3bc3067ba8c1f6886679 +Author: djm@openbsd.org +Date: Mon Feb 19 00:55:02 2018 +0000 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Fri May 11 13:48:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35171FD5939; Fri, 11 May 2018 13:48:36 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 7A66D8791C; Fri, 11 May 2018 13:48:35 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4BDmXeL075550; Fri, 11 May 2018 06:48:33 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4BDmXbe075549; Fri, 11 May 2018 06:48:33 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805111348.w4BDmXbe075549@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333484 - head/sys/vm In-Reply-To: <201805110704.w4B74wA2037309@repo.freebsd.org> To: Mateusz Guzik Date: Fri, 11 May 2018 06:48:33 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 13:48:36 -0000 [ Charset UTF-8 unsupported, converting... ] > Author: mjg > Date: Fri May 11 07:04:57 2018 > New Revision: 333484 > URL: https://svnweb.freebsd.org/changeset/base/333484 > > Log: > uma: increase alignment to 128 bytes on amd64 > > Current UMA internals are not suited for efficient operation in > multi-socket environments. In particular there is very common use of > MAXCPU arrays and other fields which are not always properly aligned and > are not local for target threads (apart from the first node of course). > Turns out the existing UMA_ALIGN macro can be used to mostly work around > the problem until the code get fixed. The current setting of 64 bytes > runs into trouble when adjacent cache line prefetcher gets to work. > > An example 128-way benchmark doing a lot of malloc/frees has the following > instruction samples: What are the effects of this on 4, 8, and 16-way systems? Is this more optimization for big iron that pessimizes little iron? I find it odd that changing something from a cache line size dependent to a hardcoded value is an optimization for all. I understand that this is coming about because the value of CACHE_LINE_SIZE was changed, but is this really the correct fix? Should work be started to stop the assumption that we can compile a kernel for all CACHE line sizes and start to adjust things at load time? There are lots of places that CACHE size and topology effect what are optimal values, and this stuffing of constants is just not a long term workable solution. If ANYTHING this constant 128 should become some type of #define so that it can be tuned at compile time, or wrapped in #ifndef, see below. > before: > kernel`lf_advlockasync+0x43b 32940 > kernel`malloc+0xe5 42380 > kernel`bzero+0x19 47798 > kernel`spinlock_exit+0x26 60423 > kernel`0xffffffff80 78238 > 0x0 136947 > kernel`uma_zfree_arg+0x46 159594 > kernel`uma_zalloc_arg+0x672 180556 > kernel`uma_zfree_arg+0x2a 459923 > kernel`uma_zalloc_arg+0x5ec 489910 > > after: > kernel`bzero+0xd 46115 > kernel`lf_advlockasync+0x25f 46134 > kernel`lf_advlockasync+0x38a 49078 > kernel`fget_unlocked+0xd1 49942 > kernel`lf_advlockasync+0x43b 55392 > kernel`copyin+0x4a 56963 > kernel`bzero+0x19 81983 > kernel`spinlock_exit+0x26 91889 > kernel`0xffffffff80 136357 > 0x0 239424 > > See the review for more details. > > Reviewed by: kib > Differential Revision: https://reviews.freebsd.org/D15346 > > Modified: > head/sys/vm/uma_int.h > > Modified: head/sys/vm/uma_int.h > ============================================================================== > --- head/sys/vm/uma_int.h Fri May 11 06:59:54 2018 (r333483) > +++ head/sys/vm/uma_int.h Fri May 11 07:04:57 2018 (r333484) > @@ -177,7 +177,7 @@ struct uma_hash { > * align field or structure to cache line > */ #ifndef UMA_ALIGN > #if defined(__amd64__) > -#define UMA_ALIGN __aligned(CACHE_LINE_SIZE) > +#define UMA_ALIGN __aligned(128) > #else > #define UMA_ALIGN > #endif #endif > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Fri May 11 14:36:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30911FD7C55; Fri, 11 May 2018 14:36:39 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id B8048736BE; Fri, 11 May 2018 14:36:38 +0000 (UTC) (envelope-from des@des.no) Received: from next.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id A1625B91A; Fri, 11 May 2018 14:36:37 +0000 (UTC) Received: by next.des.no (Postfix, from userid 1001) id 7C327811A; Fri, 11 May 2018 16:36:37 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: "Rodney W. Grimes" Cc: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333476 - head/sys/net In-Reply-To: <201805110319.w4B3JGBv073462@pdx.rh.CN85.dnsmgr.net> (Rodney W. Grimes's message of "Thu, 10 May 2018 20:19:16 -0700 (PDT)") References: <201805110319.w4B3JGBv073462@pdx.rh.CN85.dnsmgr.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (berkeley-unix) Date: Fri, 11 May 2018 16:36:37 +0200 Message-ID: <86wowauumi.fsf@next.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 14:36:39 -0000 This booted and runs without issue, although obviously I wouldn't want to commit it: Index: sys/net/if.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 --- sys/net/if.c (revision 333490) +++ sys/net/if.c (working copy) @@ -1814,6 +1814,7 @@ ifa_maintain_loopback_route(int cmd, const char *otype, struct ifaddr *ifa, struct sockaddr *ia) { +#if 0 int error; struct rt_addrinfo info; struct sockaddr_dl null_sdl; @@ -1837,6 +1838,9 @@ if_printf(ifp, "%s failed: %d\n", otype, error); =20 return (error); +#else + return (0); +#endif } =20 int DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@freebsd.org Fri May 11 14:43:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BAB5FD828E; Fri, 11 May 2018 14:43:22 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D28A275E10; Fri, 11 May 2018 14:43:21 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B3C9D10F06; Fri, 11 May 2018 14:43:21 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BEhLFK070378; Fri, 11 May 2018 14:43:21 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BEhLF3070377; Fri, 11 May 2018 14:43:21 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201805111443.w4BEhLF3070377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Fri, 11 May 2018 14:43:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333491 - head/etc/rc.d X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/etc/rc.d X-SVN-Commit-Revision: 333491 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 14:43:22 -0000 Author: trasz Date: Fri May 11 14:43:21 2018 New Revision: 333491 URL: https://svnweb.freebsd.org/changeset/base/333491 Log: Make /etc/rc.d/kldxref not print anything for directories that don't contain any kernel modules. This makes the common case completely silent, as it should be. Reviewed by: imp@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14694 Modified: head/etc/rc.d/kldxref Modified: head/etc/rc.d/kldxref ============================================================================== --- head/etc/rc.d/kldxref Fri May 11 13:22:43 2018 (r333490) +++ head/etc/rc.d/kldxref Fri May 11 14:43:21 2018 (r333491) @@ -24,8 +24,9 @@ kldxref_start() { fi IFS=';' for MODULE_DIR in $MODULE_PATHS; do - if [ ! -f "$MODULE_DIR/linker.hints" ] || - checkyesno kldxref_clobber; then + if checkyesno kldxref_clobber || + [ ! -f "$MODULE_DIR/linker.hints" ] && + [ `echo ${MODULE_DIR}/*.ko` != "${MODULE_DIR}/*.ko" ]; then echo "Building $MODULE_DIR/linker.hints" kldxref "$MODULE_DIR" fi From owner-svn-src-head@freebsd.org Fri May 11 14:50:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9AD0FD87D5; Fri, 11 May 2018 14:50:27 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5C1D0761DC; Fri, 11 May 2018 14:50:27 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3CECC10F10; Fri, 11 May 2018 14:50:27 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BEoR0L070867; Fri, 11 May 2018 14:50:27 GMT (envelope-from ken@FreeBSD.org) Received: (from ken@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BEoRxt070866; Fri, 11 May 2018 14:50:27 GMT (envelope-from ken@FreeBSD.org) Message-Id: <201805111450.w4BEoRxt070866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org using -f From: "Kenneth D. Merry" Date: Fri, 11 May 2018 14:50:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333492 - head/sys/dev/ocs_fc X-SVN-Group: head X-SVN-Commit-Author: ken X-SVN-Commit-Paths: head/sys/dev/ocs_fc X-SVN-Commit-Revision: 333492 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 14:50:27 -0000 Author: ken Date: Fri May 11 14:50:26 2018 New Revision: 333492 URL: https://svnweb.freebsd.org/changeset/base/333492 Log: Clear out the entire structure, not just the size of a pointer to it. sys/dev/ocs/ocs_os.c: In ocs_thread_create(), use sizeof(*thread) (instead of sizeof(thread)) as the size argument to memset so that we clear out the entire thread structure instead of just a few bytes of it. Submitted by: jtl MFC after: 3 days Modified: head/sys/dev/ocs_fc/ocs_os.c Modified: head/sys/dev/ocs_fc/ocs_os.c ============================================================================== --- head/sys/dev/ocs_fc/ocs_os.c Fri May 11 14:43:21 2018 (r333491) +++ head/sys/dev/ocs_fc/ocs_os.c Fri May 11 14:50:26 2018 (r333492) @@ -630,7 +630,7 @@ ocs_thread_create(ocs_os_handle_t os, ocs_thread_t *th { int32_t rc = 0; - ocs_memset(thread, 0, sizeof(thread)); + ocs_memset(thread, 0, sizeof(*thread)); thread->fctn = fctn; thread->name = ocs_strdup(name); From owner-svn-src-head@freebsd.org Fri May 11 14:50:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25917FD8800; Fri, 11 May 2018 14:50:35 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 32B2B76299; Fri, 11 May 2018 14:50:33 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4BEoQh9075793; Fri, 11 May 2018 07:50:26 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4BEoQRS075792; Fri, 11 May 2018 07:50:26 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805111450.w4BEoQRS075792@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333476 - head/sys/net In-Reply-To: <86wowauumi.fsf@next.des.no> To: =?UTF-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Date: Fri, 11 May 2018 07:50:26 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 14:50:35 -0000 > This booted and runs without issue, although obviously I wouldn't want > to commit it: Looks pretty close to what I did the first time. We could also wrap this in my proposed ifdef, and add a sysctl() to turn it on and off though it would probably be beter to do that in the code areas that bde patches this out. > > Index: sys/net/if.c > =================================================================== > --- sys/net/if.c (revision 333490) > +++ sys/net/if.c (working copy) > @@ -1814,6 +1814,7 @@ > ifa_maintain_loopback_route(int cmd, const char *otype, struct ifaddr *ifa, > struct sockaddr *ia) > { > +#if 0 #ifdef MAINTAIN_LOOPBACK_ROUTE > int error; > struct rt_addrinfo info; > struct sockaddr_dl null_sdl; > @@ -1837,6 +1838,9 @@ > if_printf(ifp, "%s failed: %d\n", otype, error); > > return (error); > +#else > + return (0); > +#endif > } > > int > > DES > -- > Dag-Erling Sm?rgrav - des@des.no > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Fri May 11 14:52:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06831FD8B37; Fri, 11 May 2018 14:52:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A8B4977589; Fri, 11 May 2018 14:52:35 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 89D22110B0; Fri, 11 May 2018 14:52:35 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BEqZc8075457; Fri, 11 May 2018 14:52:35 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BEqZ9g075456; Fri, 11 May 2018 14:52:35 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201805111452.w4BEqZ9g075456@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Fri, 11 May 2018 14:52:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333493 - head/release/tools X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/release/tools X-SVN-Commit-Revision: 333493 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 14:52:36 -0000 Author: trasz Date: Fri May 11 14:52:35 2018 New Revision: 333493 URL: https://svnweb.freebsd.org/changeset/base/333493 Log: Set kldxref_enable="YES" for ARM images. Without it, the images are missing the /boot/kernel/linker.hints file, which breaks loading some of the modules with dependencies, eg cfiscsi.ko. This is a minimal fix for ARM images, in order to safely MFC it before 11.2-RELEASE. Afterwards, however, I believe we should actually just change the default (as in, etc/defaults/rc.conf). The reason is that it's required for every image that's being cross-built, as kldxref(1) cannot handle files for non-native architectures. For the one that is not - amd64 - having it on by default doesn't change anything - the script is noop if the linker.hints already exists. The long-term solution would be to rewrite kldxref(1) to handle other architectures, and generate linker.hints at build time. Reviewed by: gjb@ MFC after: 3 days Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14534 Modified: head/release/tools/arm.subr Modified: head/release/tools/arm.subr ============================================================================== --- head/release/tools/arm.subr Fri May 11 14:50:26 2018 (r333492) +++ head/release/tools/arm.subr Fri May 11 14:52:35 2018 (r333493) @@ -122,6 +122,7 @@ arm_install_base() { echo 'sendmail_outbound_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf echo 'sendmail_msp_queue_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf echo 'growfs_enable="YES"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf + echo 'kldxref_enable="YES"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf sync umount_loop ${CHROOTDIR}/${DESTDIR} From owner-svn-src-head@freebsd.org Fri May 11 15:11:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF0CEFD99C5; Fri, 11 May 2018 15:11:54 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6F39A7C5F6; Fri, 11 May 2018 15:11:54 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5056E113C1; Fri, 11 May 2018 15:11:54 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BFBsQp081912; Fri, 11 May 2018 15:11:54 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BFBsDn081911; Fri, 11 May 2018 15:11:54 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201805111511.w4BFBsDn081911@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Fri, 11 May 2018 15:11:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333494 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 333494 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 15:11:55 -0000 Author: trasz Date: Fri May 11 15:11:53 2018 New Revision: 333494 URL: https://svnweb.freebsd.org/changeset/base/333494 Log: Improve development(7): - Use Fx when referring to FreeBSD. - Use Ql instead of Cm for command invocations. - Remove some redundant Pp macros. - Use a literal indented Bd instead of a series of Dl macros. Submitted by: 0mp@ Reviewed by: eadler@ MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D15126 Modified: head/share/man/man7/development.7 Modified: head/share/man/man7/development.7 ============================================================================== --- head/share/man/man7/development.7 Fri May 11 14:52:35 2018 (r333493) +++ head/share/man/man7/development.7 Fri May 11 15:11:53 2018 (r333494) @@ -24,16 +24,20 @@ .\" .\" $FreeBSD$ .\" -.Dd April 10, 2018 +.Dd May 11, 2018 .Dt DEVELOPMENT 7 .Os .Sh NAME .Nm development -.Nd introduction to FreeBSD development process +.Nd introduction to +.Fx +development process .Sh DESCRIPTION .Fx development is split into three major suprojects: doc, ports, and src. -Doc is the documentation, such as the FreeBSD Handbook. +Doc is the documentation, such as the +.Fx +Handbook. To read more, see: .Pp .Lk https://www.FreeBSD.org/doc/en/books/fdp-primer/ @@ -54,7 +58,8 @@ can be found at: .Pp .Lk https://www.FreeBSD.org/doc/en/articles/committers-guide/ .Pp -FreeBSD src development takes place in the CURRENT branch in Subversion, +.Fx +src development takes place in the CURRENT branch in Subversion, located at: .Pp .Lk https://svn.FreeBSD.org/base/head @@ -67,7 +72,8 @@ Changes are first committed to CURRENT and then usuall to STABLE. Every few years the CURRENT branch is renamed to STABLE, and a new CURRENT is branched, with an incremented major version number. -Releases are then branched off STABLE and numbered with consecutive minor numbers. +Releases are then branched off STABLE and numbered with consecutive minor +numbers. .Pp Layout of the source tree is described in .Xr hier 7 . @@ -76,7 +82,7 @@ Build instructions can be found in and .Xr release 7 . Kernel APIs are usually documented, use -.Cm apropos -s 9 '' +.Ql "apropos -s 9 ''" for a list. Regression test suite is described in .Xr tests 7 . @@ -88,26 +94,31 @@ such as freebsd-arch@ and freebsd-hackers@: .Pp .Lk https://lists.FreeBSD.org/ .Pp -To get your patches integrated into the main FreeBSD repository use Phabricator; +To get your patches integrated into the main +.Fx +repository use Phabricator; it is a code review tool that allows other developers to review the changes, suggest improvements, and, eventually, allows them to pick up the change and commit it: .Pp .Lk https://reviews.FreeBSD.org/ -.Pp .Sh EXAMPLES Check out the CURRENT branch, build it, and install, overwriting the current system: -.Dl svnlite co https://svn.FreeBSD.org/base/head src -.Dl cd src -.Dl make -j8 buildworld buildkernel installkernel -.Dl reboot +.Bd -literal -offset indent +svnlite co https://svn.FreeBSD.org/base/head src +cd src +make -j8 buildworld buildkernel installkernel +reboot +.Ed .Pp After reboot: -.Dl cd src -.Dl make -j8 installworld -.Pp +.Bd -literal -offset indent +cd src +make -j8 installworld +.Ed .Sh SEE ALSO +.Xr svnlite 1 , .Xr witness 4 , .Xr build 7 , .Xr hier 7 , From owner-svn-src-head@freebsd.org Fri May 11 15:26:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59D08FDA4C7; Fri, 11 May 2018 15:26:10 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 A03017F2FC; Fri, 11 May 2018 15:26:09 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4BFQ71c075964; Fri, 11 May 2018 08:26:07 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4BFQ7N3075963; Fri, 11 May 2018 08:26:07 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805111526.w4BFQ7N3075963@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333494 - head/share/man/man7 In-Reply-To: <201805111511.w4BFBsDn081911@repo.freebsd.org> To: Edward Tomasz Napierala Date: Fri, 11 May 2018 08:26:07 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 15:26:10 -0000 [ Charset UTF-8 unsupported, converting... ] > Author: trasz > Date: Fri May 11 15:11:53 2018 > New Revision: 333494 > URL: https://svnweb.freebsd.org/changeset/base/333494 > > Log: > Improve development(7): > > - Use Fx when referring to FreeBSD. > - Use Ql instead of Cm for command invocations. > - Remove some redundant Pp macros. > - Use a literal indented Bd instead of a series of Dl macros. > > Submitted by: 0mp@ > Reviewed by: eadler@ > MFC after: 2 weeks > Differential Revision: https://reviews.freebsd.org/D15126 > > Modified: > head/share/man/man7/development.7 > > Modified: head/share/man/man7/development.7 > ============================================================================== > --- head/share/man/man7/development.7 Fri May 11 14:52:35 2018 (r333493) > +++ head/share/man/man7/development.7 Fri May 11 15:11:53 2018 (r333494) > @@ -24,16 +24,20 @@ > .\" > .\" $FreeBSD$ > .\" > -.Dd April 10, 2018 > +.Dd May 11, 2018 > .Dt DEVELOPMENT 7 > .Os > .Sh NAME > .Nm development > -.Nd introduction to FreeBSD development process > +.Nd introduction to > +.Fx > +development process > .Sh DESCRIPTION > .Fx > development is split into three major suprojects: doc, ports, and src. > -Doc is the documentation, such as the FreeBSD Handbook. > +Doc is the documentation, such as the > +.Fx > +Handbook. > To read more, see: > .Pp > .Lk https://www.FreeBSD.org/doc/en/books/fdp-primer/ > @@ -54,7 +58,8 @@ can be found at: > .Pp > .Lk https://www.FreeBSD.org/doc/en/articles/committers-guide/ > .Pp > -FreeBSD src development takes place in the CURRENT branch in Subversion, > +.Fx > +src development takes place in the CURRENT branch in Subversion, > located at: > .Pp > .Lk https://svn.FreeBSD.org/base/head > @@ -67,7 +72,8 @@ Changes are first committed to CURRENT and then usuall > to STABLE. > Every few years the CURRENT branch is renamed to STABLE, and a new > CURRENT is branched, with an incremented major version number. > -Releases are then branched off STABLE and numbered with consecutive minor numbers. > +Releases are then branched off STABLE and numbered with consecutive minor > +numbers. Proper place to line break long lines is at conjuncatives such as the "and" above, yeilding: Releases are then branched off STABLE and numbered with consecutive minor numbers. > .Pp > Layout of the source tree is described in > .Xr hier 7 . > @@ -76,7 +82,7 @@ Build instructions can be found in > and > .Xr release 7 . > Kernel APIs are usually documented, use > -.Cm apropos -s 9 '' > +.Ql "apropos -s 9 ''" > for a list. > Regression test suite is described in > .Xr tests 7 . > @@ -88,26 +94,31 @@ such as freebsd-arch@ and freebsd-hackers@: > .Pp > .Lk https://lists.FreeBSD.org/ > .Pp > -To get your patches integrated into the main FreeBSD repository use Phabricator; > +To get your patches integrated into the main > +.Fx > +repository use Phabricator; > it is a code review tool that allows other developers to review the changes, > suggest improvements, and, eventually, allows them to pick up the change and > commit it: > .Pp > .Lk https://reviews.FreeBSD.org/ > -.Pp > .Sh EXAMPLES > Check out the CURRENT branch, build it, and install, overwriting the current > system: > -.Dl svnlite co https://svn.FreeBSD.org/base/head src > -.Dl cd src > -.Dl make -j8 buildworld buildkernel installkernel > -.Dl reboot > +.Bd -literal -offset indent > +svnlite co https://svn.FreeBSD.org/base/head src > +cd src > +make -j8 buildworld buildkernel installkernel > +reboot > +.Ed > .Pp > After reboot: > -.Dl cd src > -.Dl make -j8 installworld > -.Pp > +.Bd -literal -offset indent > +cd src > +make -j8 installworld > +.Ed > .Sh SEE ALSO > +.Xr svnlite 1 , > .Xr witness 4 , > .Xr build 7 , > .Xr hier 7 , > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Fri May 11 15:57:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE00CFDC7FA for ; Fri, 11 May 2018 15:57:23 +0000 (UTC) (envelope-from mpp302@gmail.com) Received: from mail-lf0-f43.google.com (mail-lf0-f43.google.com [209.85.215.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 44E8268AFF; Fri, 11 May 2018 15:57:23 +0000 (UTC) (envelope-from mpp302@gmail.com) Received: by mail-lf0-f43.google.com with SMTP id h197-v6so8611878lfg.11; Fri, 11 May 2018 08:57:23 -0700 (PDT) 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=UHxr97S7xHHpBiT3Oz+/z1NTLeRvFaV+6RSTIu2llAA=; b=JbkhmHke7tYVq9+aTN8pPiLNBA1ppPsbR4QZyz0UMiX3HWY9fdcFzZbkffj4itDhki B0P/Dm9uiVgl1WqXMeaF8+kLQoAPJp9HkYNWIXL4r1m+gKy2XyvbiEaklLXVA9Ha7HGk HcqNA8CzY/+gREZARSluQ6jx+xEBYQMWp/HeIl1FEnOkyvwnmnmXr59Ymywd2wJOK+Bb VE3lDw6yNSsLd91MxrB5aP+NIUTvt/OHid6APeT98PWI+eRrlOL1IVDw8fuijTvGo/ha uOzs82TkSF8v1uQLr9KdIaFNtbcji6JQBDPPytW9YewDQYCClCe1H3WoYLG8Irq6YbsB kLnA== X-Gm-Message-State: ALKqPwexn/EUOMT2jjeKcW+WgxOOxR7c9melOZbcAbAy6fvXTyKN+nrR Tiq+/yrZISF2eII5uqEPFYkZG7+r X-Google-Smtp-Source: AB8JxZq8xwBN+FBk90N8bhKZmTWynTgpedJPw/5sSwLwBrCMvbdFJdXMXIj6YcXaDn0krsPcRx2Ieg== X-Received: by 2002:a2e:5855:: with SMTP id x21-v6mr4662330ljd.84.1526053761738; Fri, 11 May 2018 08:49:21 -0700 (PDT) Received: from oxy (89-76-8-18.dynamic.chello.pl. [89.76.8.18]) by smtp.gmail.com with ESMTPSA id d3-v6sm717073lja.38.2018.05.11.08.49.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 May 2018 08:49:21 -0700 (PDT) Date: Fri, 11 May 2018 17:50:22 +0200 From: Mateusz Piotrowski <0mp@FreeBSD.org> To: svn-src-head@freebsd.org Cc: rgrimes@freebsd.org Subject: Re: svn commit: r333494 - head/share/man/man7 Message-ID: <20180511175022.5ab4fa7d@oxy> In-Reply-To: <201805111526.w4BFQ7N3075963@pdx.rh.CN85.dnsmgr.net> References: <201805111511.w4BFBsDn081911@repo.freebsd.org> <201805111526.w4BFQ7N3075963@pdx.rh.CN85.dnsmgr.net> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; amd64-portbld-freebsd12.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 15:57:24 -0000 On Fri, 11 May 2018 08:26:07 -0700 (PDT) "Rodney W. Grimes" wrote: >> Author: trasz >> Date: Fri May 11 15:11:53 2018 >> New Revision: 333494 >> URL: https://svnweb.freebsd.org/changeset/base/333494 >> >> ... >> >> Modified: head/share/man/man7/development.7 >> ============================================================================== >> --- head/share/man/man7/development.7 Fri May 11 14:52:35 >> 2018 (r333493) +++ head/share/man/man7/development.7 >> Fri May 11 15:11:53 2018 (r333494) @@ -24,16 +24,20 @@ >> >> ... >> >> @@ -67,7 +72,8 @@ Changes are first committed to CURRENT and then >> usuall to STABLE. >> Every few years the CURRENT branch is renamed to STABLE, and a new >> CURRENT is branched, with an incremented major version number. >> -Releases are then branched off STABLE and numbered with consecutive >> minor numbers. +Releases are then branched off STABLE and numbered >> with consecutive minor +numbers. > >Proper place to line break long lines is at conjuncatives such >as the "and" above, yeilding: >Releases are then branched off STABLE >and numbered with consecutive minor numbers. Alright. Thanks, I'll try to remember about it next time. Mateusz From owner-svn-src-head@freebsd.org Fri May 11 16:11:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48D6CFDD1F5; Fri, 11 May 2018 16:11:26 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EDF686D49F; Fri, 11 May 2018 16:11:25 +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 CFB1211CE4; Fri, 11 May 2018 16:11:25 +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 w4BGBPxb014621; Fri, 11 May 2018 16:11:25 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BGBOOp014616; Fri, 11 May 2018 16:11:24 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805111611.w4BGBOOp014616@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 11 May 2018 16:11:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333495 - in head/tests/sys/cddl/zfs/tests: exec history link_count migration mount X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head/tests/sys/cddl/zfs/tests: exec history link_count migration mount X-SVN-Commit-Revision: 333495 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 16:11:26 -0000 Author: emaste Date: Fri May 11 16:11:24 2018 New Revision: 333495 URL: https://svnweb.freebsd.org/changeset/base/333495 Log: Strip trailing / from TESTSDIR Otherwise makefs gets upset: makefs: ./usr/tests/sys/cddl/zfs/tests/exec/: empty leaf element Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/cddl/zfs/tests/exec/Makefile head/tests/sys/cddl/zfs/tests/history/Makefile head/tests/sys/cddl/zfs/tests/link_count/Makefile head/tests/sys/cddl/zfs/tests/migration/Makefile head/tests/sys/cddl/zfs/tests/mount/Makefile Modified: head/tests/sys/cddl/zfs/tests/exec/Makefile ============================================================================== --- head/tests/sys/cddl/zfs/tests/exec/Makefile Fri May 11 15:11:53 2018 (r333494) +++ head/tests/sys/cddl/zfs/tests/exec/Makefile Fri May 11 16:11:24 2018 (r333495) @@ -3,7 +3,7 @@ .include PACKAGE=tests -TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/exec/ +TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/exec FILESDIR=${TESTSDIR} BINDIR=${TESTSDIR} Modified: head/tests/sys/cddl/zfs/tests/history/Makefile ============================================================================== --- head/tests/sys/cddl/zfs/tests/history/Makefile Fri May 11 15:11:53 2018 (r333494) +++ head/tests/sys/cddl/zfs/tests/history/Makefile Fri May 11 16:11:24 2018 (r333495) @@ -3,7 +3,7 @@ .include PACKAGE=tests -TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/history/ +TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/history FILESDIR=${TESTSDIR} ATF_TESTS_KSH93+= history_test Modified: head/tests/sys/cddl/zfs/tests/link_count/Makefile ============================================================================== --- head/tests/sys/cddl/zfs/tests/link_count/Makefile Fri May 11 15:11:53 2018 (r333494) +++ head/tests/sys/cddl/zfs/tests/link_count/Makefile Fri May 11 16:11:24 2018 (r333495) @@ -3,7 +3,7 @@ .include PACKAGE=tests -TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/link_count/ +TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/link_count FILESDIR=${TESTSDIR} ATF_TESTS_KSH93+= link_count_test Modified: head/tests/sys/cddl/zfs/tests/migration/Makefile ============================================================================== --- head/tests/sys/cddl/zfs/tests/migration/Makefile Fri May 11 15:11:53 2018 (r333494) +++ head/tests/sys/cddl/zfs/tests/migration/Makefile Fri May 11 16:11:24 2018 (r333495) @@ -3,7 +3,7 @@ .include PACKAGE=tests -TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/migration/ +TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/migration FILESDIR=${TESTSDIR} ATF_TESTS_KSH93+= migration_test Modified: head/tests/sys/cddl/zfs/tests/mount/Makefile ============================================================================== --- head/tests/sys/cddl/zfs/tests/mount/Makefile Fri May 11 15:11:53 2018 (r333494) +++ head/tests/sys/cddl/zfs/tests/mount/Makefile Fri May 11 16:11:24 2018 (r333495) @@ -3,7 +3,7 @@ .include PACKAGE=tests -TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/mount/ +TESTSDIR=${TESTSBASE}/sys/cddl/zfs/tests/mount FILESDIR=${TESTSDIR} ATF_TESTS_KSH93+= mount_test From owner-svn-src-head@freebsd.org Fri May 11 16:17:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F3D48FDD680; Fri, 11 May 2018 16:17:25 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f176.google.com (mail-io0-f176.google.com [209.85.223.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 92B7A6D866; Fri, 11 May 2018 16:17:25 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f176.google.com with SMTP id d11-v6so7600691iof.11; Fri, 11 May 2018 09:17:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=HUbHuE5G/1ATAZztQDJPGtYuejRm8WMbsn4FsZ5TVPI=; b=HUoG/lKEib6+mtC+r2Q94FTpjAt9DeXtBwD15cqoclnmj1knLLFvvTbAMevQQ73Z+Q HSaDxpVEV5WeLFSf+lAfpfbKYYMJTlqJ8ESs25aP2ZTwxgMq9B/qbRPXvvkNXo/+vDct VbWgwJ2AQ7Lpe15V8+iB967zkerNWq0y6h4SOCfR8Hf3WS8C/7oY3/AoFTlXP4v6vRiB iWtXSkRlQmvoz1xwLRMfWsBUKkWJuBAB1ylZkpbfS8LIfkwZkkZHsw7Kr+niZ5BfvQk1 IY2UBqIxEXt1eB3f1yVkNhGj+ZT4zwEuFlUHH9SQEfV0nonrPNh0t1R24+oIQxKn/768 XqbA== X-Gm-Message-State: ALKqPwewKyExqop1JxxqPM+q1JFlcYa1RRnBn6dRYjhkEf4zcM4gcUAO oY/SHLc8Czs26iDPRnVsLZftpl0I X-Google-Smtp-Source: AB8JxZrWplUqMhGfQe5Dnhb7c022Yd+81bX07K1gsZtje1oTIO6Z3wZArzSSan+C1q5XSYtbevNKkg== X-Received: by 2002:a6b:d90e:: with SMTP id r14-v6mr6731691ioc.240.1526055439674; Fri, 11 May 2018 09:17:19 -0700 (PDT) Received: from mail-io0-f178.google.com (mail-io0-f178.google.com. [209.85.223.178]) by smtp.gmail.com with ESMTPSA id g1-v6sm802670itg.27.2018.05.11.09.17.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 09:17:19 -0700 (PDT) Received: by mail-io0-f178.google.com with SMTP id t23-v6so7598306ioc.10; Fri, 11 May 2018 09:17:19 -0700 (PDT) X-Received: by 2002:a6b:b513:: with SMTP id e19-v6mr6674923iof.267.1526055439245; Fri, 11 May 2018 09:17:19 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 2002:a02:a40b:0:0:0:0:0 with HTTP; Fri, 11 May 2018 09:17:18 -0700 (PDT) In-Reply-To: <201805111526.w4BFQ7N3075963@pdx.rh.CN85.dnsmgr.net> References: <201805111511.w4BFBsDn081911@repo.freebsd.org> <201805111526.w4BFQ7N3075963@pdx.rh.CN85.dnsmgr.net> From: Conrad Meyer Date: Fri, 11 May 2018 09:17:18 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333494 - head/share/man/man7 To: "Rodney W. Grimes" Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 16:17:26 -0000 On Fri, May 11, 2018 at 8:26 AM, Rodney W. Grimes wrote: >> @@ -67,7 +72,8 @@ Changes are first committed to CURRENT and then usuall >> to STABLE. >> Every few years the CURRENT branch is renamed to STABLE, and a new >> CURRENT is branched, with an incremented major version number. >> -Releases are then branched off STABLE and numbered with consecutive minor numbers. >> +Releases are then branched off STABLE and numbered with consecutive minor >> +numbers. > > Proper place to line break long lines is at conjuncatives such > as the "and" above, yeilding: What? Are you just inventing these rules out of blue sky? What possible reason is there to do as you have proposed? Conrad From owner-svn-src-head@freebsd.org Fri May 11 16:46:53 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 162E1FAA0D7; Fri, 11 May 2018 16:46:53 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BDA8B74A4A; Fri, 11 May 2018 16:46:52 +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 9A730122F0; Fri, 11 May 2018 16:46:52 +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 w4BGkqFK031732; Fri, 11 May 2018 16:46:52 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BGkqIx031731; Fri, 11 May 2018 16:46:52 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201805111646.w4BGkqIx031731@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 11 May 2018 16:46:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333496 - head X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 333496 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 16:46:53 -0000 Author: bdrewery Date: Fri May 11 16:46:52 2018 New Revision: 333496 URL: https://svnweb.freebsd.org/changeset/base/333496 Log: Add a bunch of orphaned libraries. MFC after: 3 days Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Fri May 11 16:11:24 2018 (r333495) +++ head/ObsoleteFiles.inc Fri May 11 16:46:52 2018 (r333496) @@ -38,6 +38,25 @@ # xargs -n1 | sort | uniq -d; # done +# 20180511: old orphaned libs +OLD_LIBS+=libarchive.so.5 +OLD_LIBS+=libasn1.so.10 +OLD_LIBS+=libdialog.so.7 +OLD_LIBS+=libdwarf.so.2 +OLD_LIBS+=libftpio.so.8 +OLD_LIBS+=libhdb.so.10 +OLD_LIBS+=libheimntlm.so.10 +OLD_LIBS+=libkadm5clnt.so.10 +OLD_LIBS+=libkadm5srv.so.10 +OLD_LIBS+=libkafs5.so.10 +OLD_LIBS+=liblwres.so.80 +OLD_LIBS+=libobjc.so.4 +OLD_LIBS+=libopie.so.6 +OLD_LIBS+=libroken.so.10 +OLD_LIBS+=librtld_db.so.1 +OLD_LIBS+=libstdc++.so.6 +OLD_LIBS+=libtacplus.so.4 +OLD_LIBS+=libusb.so.2 # 20180508: retire nxge OLD_FILES+=usr/share/man/man4/if_nxge.4.gz OLD_FILES+=usr/share/man/man4/nxge.4.gz From owner-svn-src-head@freebsd.org Fri May 11 16:50:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3160FAA44D; Fri, 11 May 2018 16:50:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 63F9F74D77; Fri, 11 May 2018 16:50:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 449B612304; Fri, 11 May 2018 16:50:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BGoQmX032047; Fri, 11 May 2018 16:50:26 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BGoQne032046; Fri, 11 May 2018 16:50:26 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201805111650.w4BGoQne032046@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Fri, 11 May 2018 16:50:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333497 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 333497 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 16:50:26 -0000 Author: ae Date: Fri May 11 16:50:25 2018 New Revision: 333497 URL: https://svnweb.freebsd.org/changeset/base/333497 Log: Apply the change from r272770 to if_ipsec(4) interface. It is guaranteed that if_ipsec(4) interface is used only for tunnel mode IPsec, i.e. decrypted and decapsultaed packet has its own IP header. Thus we can consider it as new packet and clear the protocols flags. This allows ICMP/ICMPv6 properly handle errors that may cause this packet. PR: 228108 MFC after: 1 week Modified: head/sys/net/if_ipsec.c Modified: head/sys/net/if_ipsec.c ============================================================================== --- head/sys/net/if_ipsec.c Fri May 11 16:46:52 2018 (r333496) +++ head/sys/net/if_ipsec.c Fri May 11 16:50:25 2018 (r333497) @@ -434,7 +434,7 @@ ipsec_if_input(struct mbuf *m, struct secasvar *sav, u m->m_pkthdr.rcvif = ifp; IPSEC_SC_RUNLOCK(); - /* m_clrprotoflags(m); */ + m_clrprotoflags(m); M_SETFIB(m, ifp->if_fib); BPF_MTAP2(ifp, &af, sizeof(af), m); if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); From owner-svn-src-head@freebsd.org Fri May 11 16:59:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 89416FAB68F; Fri, 11 May 2018 16:59:34 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 9E8A3785C1; Fri, 11 May 2018 16:59:32 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4BGxTf6076332; Fri, 11 May 2018 09:59:29 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4BGxTAC076331; Fri, 11 May 2018 09:59:29 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805111659.w4BGxTAC076331@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333494 - head/share/man/man7 In-Reply-To: To: cem@freebsd.org Date: Fri, 11 May 2018 09:59:29 -0700 (PDT) CC: "Rodney W. Grimes" , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 16:59:34 -0000 > On Fri, May 11, 2018 at 8:26 AM, Rodney W. Grimes > wrote: > >> @@ -67,7 +72,8 @@ Changes are first committed to CURRENT and then usuall > >> to STABLE. > >> Every few years the CURRENT branch is renamed to STABLE, and a new > >> CURRENT is branched, with an incremented major version number. > >> -Releases are then branched off STABLE and numbered with consecutive minor numbers. > >> +Releases are then branched off STABLE and numbered with consecutive minor > >> +numbers. > > > > Proper place to line break long lines is at conjuncatives such > > as the "and" above, yeilding: > > What? Are you just inventing these rules out of blue sky? What > possible reason is there to do as you have proposed? Well known and established man page style rules, documented someplace, which I can not seem to locate right now. > Conrad -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Fri May 11 17:07:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BCBDFAC267; Fri, 11 May 2018 17:07:10 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: from mail-lf0-x22e.google.com (mail-lf0-x22e.google.com [IPv6:2a00:1450:4010:c07::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9EBC97A0A8; Fri, 11 May 2018 17:07:09 +0000 (UTC) (envelope-from araujobsdport@gmail.com) Received: by mail-lf0-x22e.google.com with SMTP id j193-v6so8920758lfg.6; Fri, 11 May 2018 10:07:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=P98zTi1KHWhW07lh+EKdkDkD7DY1aCWsDLyRAa9klqs=; b=uY0RjFULD8nyiCvXHqzNbAKC21r+u4xaiTZJaVbka8C1kp2uTOXuTqNsJCsrzacMLZ Xnggn1tQPhblLmJRaz0W3q67df5l9SQbbayQzHKL700z6OIQRhqLeioeW29FzHg74aSu CKM/ZkPuC9qh1oCkT0YgDbzzV+EOurRoTfFFinSV0FOl9sDP5a4X4cwIIX4njppmF7By JfYviCBxQeQvrv/UTKBKTgSSwt2W7ukmCr0AhlTcWOu2aRoYiBq76akQWa8mVb8ariEn EiVNAmjh8s+EAj5janNDpozl0YRZqV+Xq9XOe9GSaYmB8N8ABYnCYitUftbOHLw93Hfq r+mQ== 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=P98zTi1KHWhW07lh+EKdkDkD7DY1aCWsDLyRAa9klqs=; b=MFUsC3CRE1YxCkmsUc/k20raCUF65+ScyrFC4YTbxc74g8h5kpAdUfjyR8RSooXLBF PGfLEDAZsHLm/0FPPh9c2qXwYD8pjt4s+DVCyKCYtm40e8mjhdB80LhzLOHhSDl5XsMu xFCfj0I07xWz0Uv1mejxkDIdOZ7I/s9swOG2N8m/0vbRreA4wjvsUywscq+FicpTyKPR 5ycgvKtdSE1xBgM/bhf19/tbeZmq96QDgYNVhkAhT2eYO9zGdidLXvgrPEz37xObG4GI jR5Vis/BeKtAX9YSzbgcNGI3xF3ylt4sgGdM0X3QpQUT/qrCpDyf5OjuAsTagiGr193w tHXw== X-Gm-Message-State: ALKqPwfmBtZEWr60JYZL12VyKK9U7+4Yucbh+/hODjWXzUVcXndGMnNQ zvXOdfly/Q4DYMhAFm592HlrZEzPwazztMVzd1k= X-Google-Smtp-Source: AB8JxZqhEYGcDuQQxmhqEif2nrccoex4mT2aHPagh123WJU9iMzQKNTyLqcguuc472VNW8ssCX3SwmYc9RO9HHbt31c= X-Received: by 2002:a2e:5019:: with SMTP id e25-v6mr4896236ljb.122.1526058428040; Fri, 11 May 2018 10:07:08 -0700 (PDT) MIME-Version: 1.0 References: <201805111659.w4BGxTAC076331@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201805111659.w4BGxTAC076331@pdx.rh.CN85.dnsmgr.net> Reply-To: araujo@freebsd.org From: Marcelo Araujo Date: Sat, 12 May 2018 01:06:55 +0800 Message-ID: Subject: Re: svn commit: r333494 - head/share/man/man7 To: "Rodney W. Grimes" Cc: "Conrad E. Meyer" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 17:07:10 -0000 On Sat, May 12, 2018, 12:59 AM Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > On Fri, May 11, 2018 at 8:26 AM, Rodney W. Grimes > > wrote: > > >> @@ -67,7 +72,8 @@ Changes are first committed to CURRENT and then > usuall > > >> to STABLE. > > >> Every few years the CURRENT branch is renamed to STABLE, and a new > > >> CURRENT is branched, with an incremented major version number. > > >> -Releases are then branched off STABLE and numbered with consecutive > minor numbers. > > >> +Releases are then branched off STABLE and numbered with consecutive > minor > > >> +numbers. > > > > > > Proper place to line break long lines is at conjuncatives such > > > as the "and" above, yeilding: > > > > What? Are you just inventing these rules out of blue sky? What > > possible reason is there to do as you have proposed? > > Well known and established man page style rules, documented someplace, > which I can not seem to locate right now. > Could you please find that if possible and share with us? Personally I'm about to rewrite some man page and that would be useful in my case! > > > Conrad > > -- > Rod Grimes > rgrimes@freebsd.org > > From owner-svn-src-head@freebsd.org Fri May 11 17:14:16 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BA5AFACA9E; Fri, 11 May 2018 17:14:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 8ADFE7BEC6; Fri, 11 May 2018 17:14:15 +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 w4BHE4pL093182 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 11 May 2018 20:14:08 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua w4BHE4pL093182 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id w4BHE47M093181; Fri, 11 May 2018 20:14:04 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 11 May 2018 20:14:04 +0300 From: Konstantin Belousov To: Bryan Drewery Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333496 - head Message-ID: <20180511171404.GJ6887@kib.kiev.ua> References: <201805111646.w4BGkqIx031731@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805111646.w4BGkqIx031731@repo.freebsd.org> User-Agent: Mutt/1.9.5 (2018-04-13) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 17:14:16 -0000 On Fri, May 11, 2018 at 04:46:52PM +0000, Bryan Drewery wrote: > Author: bdrewery > Date: Fri May 11 16:46:52 2018 > New Revision: 333496 > URL: https://svnweb.freebsd.org/changeset/base/333496 > > Log: > Add a bunch of orphaned libraries. > > MFC after: 3 days > > Modified: > head/ObsoleteFiles.inc > > Modified: head/ObsoleteFiles.inc > ============================================================================== > --- head/ObsoleteFiles.inc Fri May 11 16:11:24 2018 (r333495) > +++ head/ObsoleteFiles.inc Fri May 11 16:46:52 2018 (r333496) > @@ -38,6 +38,25 @@ > # xargs -n1 | sort | uniq -d; > # done > > +# 20180511: old orphaned libs > +OLD_LIBS+=libarchive.so.5 > +OLD_LIBS+=libasn1.so.10 > +OLD_LIBS+=libdialog.so.7 > +OLD_LIBS+=libdwarf.so.2 > +OLD_LIBS+=libftpio.so.8 > +OLD_LIBS+=libhdb.so.10 > +OLD_LIBS+=libheimntlm.so.10 > +OLD_LIBS+=libkadm5clnt.so.10 > +OLD_LIBS+=libkadm5srv.so.10 > +OLD_LIBS+=libkafs5.so.10 > +OLD_LIBS+=liblwres.so.80 > +OLD_LIBS+=libobjc.so.4 > +OLD_LIBS+=libopie.so.6 > +OLD_LIBS+=libroken.so.10 > +OLD_LIBS+=librtld_db.so.1 > +OLD_LIBS+=libstdc++.so.6 > +OLD_LIBS+=libtacplus.so.4 > +OLD_LIBS+=libusb.so.2 > # 20180508: retire nxge > OLD_FILES+=usr/share/man/man4/if_nxge.4.gz > OLD_FILES+=usr/share/man/man4/nxge.4.gz Are lib32 counterparts also require handling ? From owner-svn-src-head@freebsd.org Fri May 11 17:20:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE163FACEA6; Fri, 11 May 2018 17:20:03 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 637A47D3EB; Fri, 11 May 2018 17:20:03 +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 302E31893D; Fri, 11 May 2018 17:20:03 +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 2D24980CF; Fri, 11 May 2018 17:20:02 +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 QkzWb_j-KyUI; Fri, 11 May 2018 17:19:59 +0000 (UTC) Subject: Re: svn commit: r333496 - head DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com 1026480C9 To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201805111646.w4BGkqIx031731@repo.freebsd.org> <20180511171404.GJ6887@kib.kiev.ua> From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Autocrypt: addr=bdrewery@FreeBSD.org; prefer-encrypt=mutual; keydata= xsBNBFJphmsBCADiFgmS4bIzwZijrS31SjEMzg+n5zNellgM+HkShwehpqCiyhXdWrvH6dTZ a6u50pbUIX7doTR7W7PQHCjCTqtpwvcj0eulZva+iHFp+XrbgSFHn+VVXgkYP2MFySyZRFab D2qqzJBEJofhpv4HvY6uQI5K99pMqKr1Z/lHqsijYYu4RH2OfwB5PinId7xeldzWEonVoCr+ rfxzO/UrgA6v/3layGZcKNHFjmc3NqoN1DXtdaEHqtjIozzbndVkH6lkFvIpIrI6i5ox8pwp VxsxLCr/4Musd5CWgHiet5kSw2SzNeA8FbxdLYCpXNVu+uBACEbCUP+CSNy3NVfEUxsBABEB AAHNJEJyeWFuIERyZXdlcnkgPGJkcmV3ZXJ5QEZyZWVCU0Qub3JnPsLAgAQTAQoAKgIbAwUL CQgHAwUVCgkICwUWAwIBAAIeAQIXgAIZAQUCWujOIgUJCmB7NwAKCRA113G7bkaXz/xpB/9b /UWIPbieY1IeIuHF2pyYPE7Hytkh3HVsxMA0F5Ma2AYQsXZZeKNKWrF7RPyDyDwUklLHJkhm k3EfClBbHxf08kMIm1vWCJRtgxic9knY/bzYGiWMpHjg3cSd1XfrYH1autYqTZAjDwIkgOjU dR//Tbn4V36sY7y2jz+kdMVWvK53U32aZqiwBbCn4DPe1wSZcUs17mV/0uZdIoGdj74B1orN A/0py5vHYo6HcbBNoaR8pKRLf5VZNRsxqGIMhTucx4SJWcHpuRBWYyvJSFzwvxdK4ZD4Yqoc kFGPVtOXktVMai9exrLvP3G77fKMu8DI6j4QRU4wCesnHuIfRPFuzsBNBFJphmsBCACiVFPf kNfaFtUSuY0395ueo/rMyHPGPQ2iwvERFCpeFGSQSgagpenNHLpFQKTg/dl6FOoST5tqyxMq fyHGHDzzU51bvA/IfaGoNi/BIhTe/toZNMRvpcI3PLjiGcnJnuwCCbAVOAGdb+t5cZtpNdOI cKYmrYG3u9RiBpe6dTF+qLrD/8Bs1wjhduQ8fcNNgnkXu8xDH4ZxY0lIc3QgvYWp9vimlQe6 iKjUd2/DX28ETZcD5h6pYV331KMPTrEI0p0yvFijUZce8c1XHFyL1j9sBAha5qpszJl6Uq5i LolhKRcGfcdmtD72vHQjUYglUyudSJUVyo2gMYjdbiFKzJulABEBAAHCwGUEGAEKAA8CGwwF AlrozigFCQpgez0ACgkQNddxu25Gl8+m5Af/R3VEdxNMAcDIes9ADhQyofj20SPV3eCJ3HYR OebTSuNdOudGt4AAyA8Ks94u9hiIp5IGsc6RDsT9W7O2vgXhd6eV3eiY5Oif5xLIYrIDVu1Y 1GyRxRrPEn/QOqDN6uFZCPwK1aOapGcYCrO9lB0gMuTVfgHanU61rgC9tMX0OoAOyRd+V3/M 8lDNhjJdF/IpO3SdYzKfkwduy4qamw4Gphcx/RfYQvYLq/eDkP8d50PphWdboqWBwNRHayro W/07OGzfxM5fJ5mBsXPQcO2QcRjkyHf6xCM6Hi1qQL4OnXMNE/ZTX0lnOj1/pH93TlzSHZMP TaiiA/MBD3vGsXBmBg== Organization: FreeBSD Message-ID: Date: Fri, 11 May 2018 10:19:51 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180511171404.GJ6887@kib.kiev.ua> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="pfcQTLUEaByWxhMZfpyMSEQiZxrsimd8h" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 17:20:04 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --pfcQTLUEaByWxhMZfpyMSEQiZxrsimd8h Content-Type: multipart/mixed; boundary="gB4foilUbU0sdqmhMqDV1JgjzvKNodvFg"; protected-headers="v1" From: Bryan Drewery To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r333496 - head References: <201805111646.w4BGkqIx031731@repo.freebsd.org> <20180511171404.GJ6887@kib.kiev.ua> In-Reply-To: <20180511171404.GJ6887@kib.kiev.ua> --gB4foilUbU0sdqmhMqDV1JgjzvKNodvFg Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 5/11/2018 10:14 AM, Konstantin Belousov wrote: > On Fri, May 11, 2018 at 04:46:52PM +0000, Bryan Drewery wrote: >> Author: bdrewery >> Date: Fri May 11 16:46:52 2018 >> New Revision: 333496 >> URL: https://svnweb.freebsd.org/changeset/base/333496 >> >> Log: >> Add a bunch of orphaned libraries. >> =20 >> MFC after: 3 days >> >> Modified: >> head/ObsoleteFiles.inc >> >> Modified: head/ObsoleteFiles.inc >> =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/ObsoleteFiles.inc Fri May 11 16:11:24 2018 (r333495) >> +++ head/ObsoleteFiles.inc Fri May 11 16:46:52 2018 (r333496) >> @@ -38,6 +38,25 @@ >> # xargs -n1 | sort | uniq -d; >> # done >> =20 >> +# 20180511: old orphaned libs >> +OLD_LIBS+=3Dlibarchive.so.5 >> +OLD_LIBS+=3Dlibasn1.so.10 >> +OLD_LIBS+=3Dlibdialog.so.7 >> +OLD_LIBS+=3Dlibdwarf.so.2 >> +OLD_LIBS+=3Dlibftpio.so.8 >> +OLD_LIBS+=3Dlibhdb.so.10 >> +OLD_LIBS+=3Dlibheimntlm.so.10 >> +OLD_LIBS+=3Dlibkadm5clnt.so.10 >> +OLD_LIBS+=3Dlibkadm5srv.so.10 >> +OLD_LIBS+=3Dlibkafs5.so.10 >> +OLD_LIBS+=3Dliblwres.so.80 >> +OLD_LIBS+=3Dlibobjc.so.4 >> +OLD_LIBS+=3Dlibopie.so.6 >> +OLD_LIBS+=3Dlibroken.so.10 >> +OLD_LIBS+=3Dlibrtld_db.so.1 >> +OLD_LIBS+=3Dlibstdc++.so.6 >> +OLD_LIBS+=3Dlibtacplus.so.4 >> +OLD_LIBS+=3Dlibusb.so.2 >> # 20180508: retire nxge >> OLD_FILES+=3Dusr/share/man/man4/if_nxge.4.gz >> OLD_FILES+=3Dusr/share/man/man4/nxge.4.gz >=20 > Are lib32 counterparts also require handling ? >=20 Yeah, I also spaced out and didn't put /usr/lib. Oops. --=20 Regards, Bryan Drewery --gB4foilUbU0sdqmhMqDV1JgjzvKNodvFg-- --pfcQTLUEaByWxhMZfpyMSEQiZxrsimd8h Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJa9dC+AAoJEDXXcbtuRpfPuYcIAIUpurMPThWyCZClTHABnO/G 3lf1vco9AbwQtvp1BkSVqcipZJcN2RO4FI3G3+HeDP6Da+ePGdnNxch7AUvnUrGA bZJtAcOMx5BuN3BWGOvNlFuAu7tLCkJ3g6zYZmsz4DgFZZso0uXafANfzVCc4iCP sFU5GG2L6ig1RX+bmLyJTVWcHUqfqkNfKTyhetLoqgQZn08l/mYWaBvKVIHkh49K EEiH6blDv5QDZgm9MblzieBa+OasgOFUUW+/YLQU/qOoEcRcxmCa0mQcxmBONSOI 2b3xKOxkXRyFym3PyNILefWLrMscg78hyN7xb6eb0Die27+/x3RzwbBtM1IdGVQ= =46np -----END PGP SIGNATURE----- --pfcQTLUEaByWxhMZfpyMSEQiZxrsimd8h-- From owner-svn-src-head@freebsd.org Fri May 11 17:24:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79820FAD39F; Fri, 11 May 2018 17:24:05 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 29EF87D883; Fri, 11 May 2018 17:24:05 +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 0AF8912984; Fri, 11 May 2018 17:24:05 +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 w4BHO4r7054839; Fri, 11 May 2018 17:24:04 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BHO4bD054838; Fri, 11 May 2018 17:24:04 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201805111724.w4BHO4bD054838@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 11 May 2018 17:24:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333498 - head X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 333498 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 17:24:05 -0000 Author: bdrewery Date: Fri May 11 17:24:04 2018 New Revision: 333498 URL: https://svnweb.freebsd.org/changeset/base/333498 Log: Revert r333496. I didn't put the correct paths, nor lib32, and I may have been comparing against the wrong source tree. Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Fri May 11 16:50:25 2018 (r333497) +++ head/ObsoleteFiles.inc Fri May 11 17:24:04 2018 (r333498) @@ -38,25 +38,6 @@ # xargs -n1 | sort | uniq -d; # done -# 20180511: old orphaned libs -OLD_LIBS+=libarchive.so.5 -OLD_LIBS+=libasn1.so.10 -OLD_LIBS+=libdialog.so.7 -OLD_LIBS+=libdwarf.so.2 -OLD_LIBS+=libftpio.so.8 -OLD_LIBS+=libhdb.so.10 -OLD_LIBS+=libheimntlm.so.10 -OLD_LIBS+=libkadm5clnt.so.10 -OLD_LIBS+=libkadm5srv.so.10 -OLD_LIBS+=libkafs5.so.10 -OLD_LIBS+=liblwres.so.80 -OLD_LIBS+=libobjc.so.4 -OLD_LIBS+=libopie.so.6 -OLD_LIBS+=libroken.so.10 -OLD_LIBS+=librtld_db.so.1 -OLD_LIBS+=libstdc++.so.6 -OLD_LIBS+=libtacplus.so.4 -OLD_LIBS+=libusb.so.2 # 20180508: retire nxge OLD_FILES+=usr/share/man/man4/if_nxge.4.gz OLD_FILES+=usr/share/man/man4/nxge.4.gz From owner-svn-src-head@freebsd.org Fri May 11 17:27:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FEC7FAD670; Fri, 11 May 2018 17:27:00 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D43AE7E36B; Fri, 11 May 2018 17:26:59 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEA7312985; Fri, 11 May 2018 17:26:59 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BHQxZ2054984; Fri, 11 May 2018 17:26:59 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BHQxhs054982; Fri, 11 May 2018 17:26:59 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201805111726.w4BHQxhs054982@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 11 May 2018 17:26:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333499 - in head: share/man/man4 sys/dev/vxge X-SVN-Group: head X-SVN-Commit-Author: sbruno X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/vxge X-SVN-Commit-Revision: 333499 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 17:27:00 -0000 Author: sbruno Date: Fri May 11 17:26:59 2018 New Revision: 333499 URL: https://svnweb.freebsd.org/changeset/base/333499 Log: vxge(4): deprecation notice This hardware isn't totally ancient, about equal to a mxge(4) or mlx4en(4), but the company was sold to Exar which then promptly exited the Ethernet business so the card was commercially available for under 2 years. On deep search, the only usage of these cards I found was by the importing of the driver. There are code quality issues identified by Brooks and Hiren and no visible use nor maintainership that warrant removal from FreeBSD 12.0. Submitted by: kbowling Reviewed by: gnn brooks Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15363 Modified: head/share/man/man4/vxge.4 head/sys/dev/vxge/vxge.c Modified: head/share/man/man4/vxge.4 ============================================================================== --- head/share/man/man4/vxge.4 Fri May 11 17:24:04 2018 (r333498) +++ head/share/man/man4/vxge.4 Fri May 11 17:26:59 2018 (r333499) @@ -44,6 +44,12 @@ module at boot time, place the following line in .Bd -literal -offset indent if_vxge_load="YES" .Ed +.Sh DEPRECATION NOTICE +The +.Nm +driver is not present in +.Fx 12.0 +and later. .Sh DESCRIPTION The .Nm Modified: head/sys/dev/vxge/vxge.c ============================================================================== --- head/sys/dev/vxge/vxge.c Fri May 11 17:24:04 2018 (r333498) +++ head/sys/dev/vxge/vxge.c Fri May 11 17:26:59 2018 (r333499) @@ -236,6 +236,7 @@ _exit0: err = ENXIO; } + gone_in_dev(ndev, 12, "vxge(4) driver"); return (err); } From owner-svn-src-head@freebsd.org Fri May 11 18:06:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CA63FAFD65; Fri, 11 May 2018 18:06:36 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it0-f54.google.com (mail-it0-f54.google.com [209.85.214.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 99E1C6901F; Fri, 11 May 2018 18:06:35 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it0-f54.google.com with SMTP id z6-v6so3032829iti.4; Fri, 11 May 2018 11:06:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=k5/pdxYNVnV2/+z4KwP4/oZZ8DSQsU9nB55WewnBn/Q=; b=ppLbQ5Mg2erzd+ObkxqVcXPjg0r86ENL/FhZbUrqZubkU87txqEWiPlVlmKL5p1/JC iwuCOQe3ok2YowX5wNDZAJB/YBgDqy0IgB2c++JG8PMYpH7bb3p0tQ7a5XjF+MM/epTl ziCyfuFe8JLyDCNOBNWAW4qTYK5d5spklxIWKMGJlHzdfoIahRk+QVyeCWu2GytMBvbV iWc7bd+nHeCY12mcZbEb/sb1jElEM9DVUWFuR2C+8ybkwvI+Yu8XR8X7Tibfg3cDnQLL Sl0bOBGcYpzIiNJzyWaNwA2k+JiKLCCbi8/Hy+O+74Nk1YlBLtlcYtEQPszNjnCRJ8ih sGwA== X-Gm-Message-State: ALKqPwe6vCczk698HpszQCxztRKk4j/YLN2FL0LYsA7rUn6EyTVsAYdy hOCcel9GiHG4u+Tyj8aHiKdaMHfI X-Google-Smtp-Source: AB8JxZoNDon6Zhzc0/YWTVPxLdscSGws+RhR97UhNxtVOixWxQwisO3dVrfgZ50+Grm5BqcD9jvajw== X-Received: by 2002:a24:d6d7:: with SMTP id o206-v6mr4033465itg.97.1526061620670; Fri, 11 May 2018 11:00:20 -0700 (PDT) Received: from mail-it0-f49.google.com (mail-it0-f49.google.com. [209.85.214.49]) by smtp.gmail.com with ESMTPSA id z72-v6sm1933239ioz.64.2018.05.11.11.00.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 11:00:20 -0700 (PDT) Received: by mail-it0-f49.google.com with SMTP id n202-v6so3019828ita.1; Fri, 11 May 2018 11:00:19 -0700 (PDT) X-Received: by 2002:a24:2885:: with SMTP id h127-v6mr4274874ith.46.1526061619852; Fri, 11 May 2018 11:00:19 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 2002:a02:a40b:0:0:0:0:0 with HTTP; Fri, 11 May 2018 11:00:18 -0700 (PDT) In-Reply-To: <20180511100713.GG6887@kib.kiev.ua> References: <201805101501.w4AF1iI0039082@repo.freebsd.org> <20180511100713.GG6887@kib.kiev.ua> From: Conrad Meyer Date: Fri, 11 May 2018 11:00:18 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 To: Konstantin Belousov Cc: Ed Maste , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 18:06:36 -0000 On Fri, May 11, 2018 at 3:07 AM, Konstantin Belousov wrote: > On FreeBSD, gcc configuration requires explicit --enable-gnu-indirect-function > option. I see it in e.g. lang/gcc7 port Makefile. > > On the other hand, I do not understand how devel/amd64-xtoolchain-gcc > and devel/powerpc64-xtoolchain-gcc are build, so cannot see whether the > switch is added to the configure invocation. But I suspect that it is > not. > > In other words, most likely the problem is due to the port itself. Sure, I will try to track it down and file a port bug. Until then, though, head is broken for cross toolchain GCC users :-(. I believe xtoolchain GCC is configured here: https://svnweb.freebsd.org/ports/head/devel/powerpc64-gcc/Makefile?view=markup#l44 (Indeed, --enable-gnu-indirect-function is absent.) Thanks, Conrad From owner-svn-src-head@freebsd.org Fri May 11 18:12:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1433CFB445A for ; Fri, 11 May 2018 18:12:44 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it0-f48.google.com (mail-it0-f48.google.com [209.85.214.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A57E7697CF for ; Fri, 11 May 2018 18:12:43 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it0-f48.google.com with SMTP id n64-v6so3048433itb.3 for ; Fri, 11 May 2018 11:12:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:cc; bh=Ywwi2RLXgeMcUULy7Bffcl3HuTWsDerRJ7QQj27ySVc=; b=SB33fR7OMmPj1N/ESfDaPwJbblImMeL8l9JFM2Pl2XvAlPuIDbFWN6Xdf2rm+JWQQX msI45cpmeHuDHFGrM3Xly7qjPpMYTiu3Qr6CEbQxikCDHlIMHRQDQ0rezl7s64FmgM4d 7RBeMNqW9plbbCF7y7Sgcp5c7Nzmlg20+/KkaFkQzkXrFy/P4j+FWcJFxu4GvEDYxgBo IUFzkYZ3A4dM/ybcABtk2HAwubbtFJtH6BMUpydA+5qTOLkuj3WTgv5Rqc6Q/cE6FoYU llHybkMqyYYBEGyq3WzmhuQxFEriA9EzNXE+sjMFa4oAGSHoz0ZZsrLG+a6k8P5RzjiQ /itw== X-Gm-Message-State: ALKqPwfPnJeHBtPGFFXwFpHgcQOX8N7SZscLsRdJ+TPhhmwx7lR1PF7u CItdLol0X23EfbGiSibqbehs4ByD X-Google-Smtp-Source: AB8JxZrJcMApPqobDRIpBX5QHA4LPirI+TJ77brojPO9n2bjtkVCsNRyQCqqkPzaHZlyN1Cln7LdBg== X-Received: by 2002:a24:ac6b:: with SMTP id m43-v6mr4465941iti.12.1526061968376; Fri, 11 May 2018 11:06:08 -0700 (PDT) Received: from mail-it0-f51.google.com (mail-it0-f51.google.com. [209.85.214.51]) by smtp.gmail.com with ESMTPSA id i143-v6sm927479iti.18.2018.05.11.11.06.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 11:06:08 -0700 (PDT) Received: by mail-it0-f51.google.com with SMTP id j186-v6so3220030ita.5 for ; Fri, 11 May 2018 11:06:08 -0700 (PDT) X-Received: by 2002:a24:b310:: with SMTP id e16-v6mt4752828itf.58.1526061967940; Fri, 11 May 2018 11:06:07 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 2002:a02:a40b:0:0:0:0:0 with HTTP; Fri, 11 May 2018 11:06:07 -0700 (PDT) In-Reply-To: References: <201805101501.w4AF1iI0039082@repo.freebsd.org> <20180511100713.GG6887@kib.kiev.ua> From: Conrad Meyer Date: Fri, 11 May 2018 11:06:07 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333461 - head/sys/amd64/amd64 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 18:12:44 -0000 PR here, for the curious: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228161 On Fri, May 11, 2018 at 11:00 AM, Conrad Meyer wrote: > On Fri, May 11, 2018 at 3:07 AM, Konstantin Belousov > wrote: >> On FreeBSD, gcc configuration requires explicit --enable-gnu-indirect-function >> option. I see it in e.g. lang/gcc7 port Makefile. >> >> On the other hand, I do not understand how devel/amd64-xtoolchain-gcc >> and devel/powerpc64-xtoolchain-gcc are build, so cannot see whether the >> switch is added to the configure invocation. But I suspect that it is >> not. >> >> In other words, most likely the problem is due to the port itself. > > Sure, I will try to track it down and file a port bug. Until then, > though, head is broken for cross toolchain GCC users :-(. > > I believe xtoolchain GCC is configured here: > https://svnweb.freebsd.org/ports/head/devel/powerpc64-gcc/Makefile?view=markup#l44 > (Indeed, --enable-gnu-indirect-function is absent.) > > Thanks, > Conrad From owner-svn-src-head@freebsd.org Fri May 11 18:18:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2F59FB4979 for ; Fri, 11 May 2018 18:18:59 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org [52.58.109.202]) (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 5EFCB6B5A9 for ; Fri, 11 May 2018 18:18:59 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: beb83ff9-5547-11e8-8e23-5bc9f169c8f5 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 outbound1.eu.mailhop.org (Halon) with ESMTPSA id beb83ff9-5547-11e8-8e23-5bc9f169c8f5; Fri, 11 May 2018 18:18:47 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id w4BIIk1C067511; Fri, 11 May 2018 12:18:46 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1526062726.2597.2.camel@freebsd.org> Subject: Re: svn commit: r333494 - head/share/man/man7 From: Ian Lepore To: rgrimes@freebsd.org, Edward Tomasz Napierala Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Fri, 11 May 2018 12:18:46 -0600 In-Reply-To: <201805111526.w4BFQ7N3075963@pdx.rh.CN85.dnsmgr.net> References: <201805111526.w4BFQ7N3075963@pdx.rh.CN85.dnsmgr.net> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 18:19:00 -0000 On Fri, 2018-05-11 at 08:26 -0700, Rodney W. Grimes wrote: > [ Charset UTF-8 unsupported, converting... ] > > > > Author: trasz > > Date: Fri May 11 15:11:53 2018 > > New Revision: 333494 > > URL: https://svnweb.freebsd.org/changeset/base/333494 > > > > Log: > >   Improve development(7): > >    > >    - Use Fx when referring to FreeBSD. > >    - Use Ql instead of Cm for command invocations. > >    - Remove some redundant Pp macros. > >    - Use a literal indented Bd instead of a series of Dl macros. > >    > >   Submitted by: 0mp@ > >   Reviewed by: eadler@ > >   MFC after: 2 weeks > >   Differential Revision: https://reviews.freebsd.org/D15126 > > > > Modified: > >   head/share/man/man7/development.7 > > > > Modified: head/share/man/man7/development.7 > > =================================================================== > > =========== > > [...] > >  to STABLE. > >  Every few years the CURRENT branch is renamed to STABLE, and a new > >  CURRENT is branched, with an incremented major version number. > > -Releases are then branched off STABLE and numbered with > > consecutive minor numbers. > > +Releases are then branched off STABLE and numbered with > > consecutive minor > > +numbers. > Proper place to line break long lines is at conjuncatives such > as the "and" above, yeilding: > Releases are then branched off STABLE > and numbered with consecutive minor numbers. > The last thing we need is more stupid arbitrary rules that discourage people from writing manpages. This commit deserves praise, not pointless nitpicking. -- Ian From owner-svn-src-head@freebsd.org Fri May 11 18:23:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD242FB4FAE for ; Fri, 11 May 2018 18:23:48 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x22d.google.com (mail-io0-x22d.google.com [IPv6:2607:f8b0:4001:c06::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 781FF6C70B for ; Fri, 11 May 2018 18:23:48 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x22d.google.com with SMTP id z4-v6so8034734iof.5 for ; Fri, 11 May 2018 11:23:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=W01Sa5GvNmTNy9IUIH1lmE9LHVlEiyrrTl1L8cLhi6g=; b=rieJ5KOoN3f/lzXf2PIK8cQyMfElB90deLi+oqDpoBGqCHjYZqiciKAqMusF/41uWy 4AGRTf3nvnN/8gLUv0Uz5tDO9o6+lakOPABjhmoB7MejvKJ7EfMFbMc0D5YyrxDzCdXV tk6ChrXkK+l0hnctwXPNVX4eKzq3/6jCF+QstOLnAm8jNLCvVhQHbC+7GbgKIiIVP803 r2TL3Pv5hUj5YFK85uXFqL8foBSVCsISZ8Vro10RGrKDW+Zp0HoNz9WhIKRhIdkUeZNO 6JOKrAfpbmKNm2jDMGw8lobfptviBJv7i7zYZCBUnsSgFKIaPwTnAyqUzCH3ffD4K/Dz 8CkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=W01Sa5GvNmTNy9IUIH1lmE9LHVlEiyrrTl1L8cLhi6g=; b=gV94WseLwtOVC9tRR44XKrxiTOw0EOFhr13IxkWR+Qtikl7YMqVxOazmq+IVxpRIsV 92Z8KU6hz7tsgVhOjGPOy5/K3SnbIhglBczy/nHoGgab+E6jEecisypGD13GXqDU4Wm2 UkPrdOFMq4JUxBneu7RKDiYf4CpmazLtV5s+CDvwXpJYqqDDq6zMNH29cPLZ9EwCtdjJ UBxFoztpBsv9OZki9c35n/scYKPIsu3Xe/45PAfMWlbn8QhZRE3Vhm2jRAe1EpSKgN/Y IuwRREaW+rCmFDmK+ARNP+KXqZn31pfvp1uG2iorEzOU/TH5Todko9r2yo1U4mTiT3JL WzgQ== X-Gm-Message-State: ALKqPwfZaiPpcLA6nBlLDJvI4EvIJHoBQ2F1mPDjiv2e1b76bz2kVnkf qZJUICZ332rEcj9dB9LrmA6j7IxChsBI1S4r+7AGwA== X-Google-Smtp-Source: AB8JxZop0BiN1repO/sI5CzUILh6MqEZSus1YHfUOBrZXMIy9OJLFAxFQVG3TYjECrPvE7ABn4ISBXGgrfBaauyLPQA= X-Received: by 2002:a6b:3846:: with SMTP id f67-v6mr7033345ioa.117.1526063027642; Fri, 11 May 2018 11:23:47 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Fri, 11 May 2018 11:23:47 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <201805111659.w4BGxTAC076331@pdx.rh.CN85.dnsmgr.net> References: <201805111659.w4BGxTAC076331@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Fri, 11 May 2018 12:23:47 -0600 X-Google-Sender-Auth: AQ5x8HPFzqZxIoLoAgjGSkQw7Ls Message-ID: Subject: Re: svn commit: r333494 - head/share/man/man7 To: "Rodney W. Grimes" Cc: "Conrad E. Meyer" , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 18:23:49 -0000 On Fri, May 11, 2018 at 10:59 AM, Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > On Fri, May 11, 2018 at 8:26 AM, Rodney W. Grimes > > wrote: > > >> @@ -67,7 +72,8 @@ Changes are first committed to CURRENT and then > usuall > > >> to STABLE. > > >> Every few years the CURRENT branch is renamed to STABLE, and a new > > >> CURRENT is branched, with an incremented major version number. > > >> -Releases are then branched off STABLE and numbered with consecutive > minor numbers. > > >> +Releases are then branched off STABLE and numbered with consecutive > minor > > >> +numbers. > > > > > > Proper place to line break long lines is at conjuncatives such > > > as the "and" above, yeilding: > > > > What? Are you just inventing these rules out of blue sky? What > > possible reason is there to do as you have proposed? > > Well known and established man page style rules, documented someplace, > which I can not seem to locate right now. > No such rule exists, and even if it did, it's never been enforced in the last 23 years I've been committing to man pages. I know I'd flat out ignore you if you told me to do that after a commit I did. Warner From owner-svn-src-head@freebsd.org Fri May 11 18:37:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DCAE0FC3CB8; Fri, 11 May 2018 18:37:14 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8ECDA6F6C6; Fri, 11 May 2018 18:37:14 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 709A5134E8; Fri, 11 May 2018 18:37:14 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BIbEYb090905; Fri, 11 May 2018 18:37:14 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BIbE1u090904; Fri, 11 May 2018 18:37:14 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805111837.w4BIbE1u090904@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Fri, 11 May 2018 18:37:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333500 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 333500 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 18:37:15 -0000 Author: mmacy Date: Fri May 11 18:37:14 2018 New Revision: 333500 URL: https://svnweb.freebsd.org/changeset/base/333500 Log: epoch(9): always set inited in epoch_init - set inited in the !usedomains case Reported by: jhibbits Approved by: sbruno Modified: head/sys/kern/subr_epoch.c Modified: head/sys/kern/subr_epoch.c ============================================================================== --- head/sys/kern/subr_epoch.c Fri May 11 17:26:59 2018 (r333499) +++ head/sys/kern/subr_epoch.c Fri May 11 18:37:14 2018 (r333500) @@ -136,8 +136,10 @@ epoch_init(void *arg __unused) migrate_count = counter_u64_alloc(M_WAITOK); turnstile_count = counter_u64_alloc(M_WAITOK); switch_count = counter_u64_alloc(M_WAITOK); - if (usedomains == false) + if (usedomains == false) { + inited = 1; return; + } count = domain = 0; domoffsets[0] = 0; for (domain = 0; domain < vm_ndomains; domain++) { @@ -154,7 +156,6 @@ epoch_init(void *arg __unused) break; } } - inited = 1; } SYSINIT(epoch, SI_SUB_CPU + 1, SI_ORDER_FIRST, epoch_init, NULL); From owner-svn-src-head@freebsd.org Fri May 11 18:47:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2BEBFC593B; Fri, 11 May 2018 18:47:41 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-io0-x244.google.com (mail-io0-x244.google.com [IPv6:2607:f8b0:4001:c06::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4811870EDA; Fri, 11 May 2018 18:47:41 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-io0-x244.google.com with SMTP id e12-v6so8105812iob.8; Fri, 11 May 2018 11:47:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=0vnTZvP+H+WwGCYhYSZ8tRmarwY4xsrWHZq/2ZSOWkE=; b=Xf4m0PxI/iKyyJpOOi1f1TBi7K0zny7H0fLjbOeQqSxAOJILs81yaRkQxBfqvr1Pea qhzzA1EJ9pmclo0SHQrdHPI/SHj8xF6sQTbdFIaYscJ9pYr8kkmL2qbkSU4Mu61O88YJ nisRQQtsq6klMp3X6eyl9jyEQDR6c3C9FPdy0E9Cq2+Vda2eponc2zL4qvLj3dTdqRBl SzFVCRpMOwoT7sqYfSsHlgAvI9gHGulS5racx0eZesID1HhdKLyxQFMEOz2bbGuCntqZ 3Mv6eSWzn7RmlwqOwxhP29B/xT52+mXKqjjDLRoQscUW6UuFp8EgzJhNi8qkvt9/zkDv pWgA== 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 :references:mime-version:content-disposition:in-reply-to:user-agent; bh=0vnTZvP+H+WwGCYhYSZ8tRmarwY4xsrWHZq/2ZSOWkE=; b=EJFIOtrEejjvladgziReh8Dlj6JOzJFDPeNKY/U8Qyyr1WV9GUcAY0AMXIEIoCy3O/ uQi+oYVTBb8CeVTwLpdfnAfUZSJ3AQGLgVnjAncxWt1UCpgO/LfMwIq//+aZ48oTs2Ky dCmfzX2W6fb82X49ypO4fYsDAa2YmyKcGkSNw3JcDInMf8WjzT4lCajysRWxzKzx+Fz6 mRxgNxr187XDMfVvocLSoFqYDFQQLcp793gaixZjn/TPtE4nJJKE8jcG1hkljjZd7zzt G4ZBDLKISIS86u/npXQaTAn0T8uTBV1gTrUmYOsMRo0o8Fd8+noB5fqc6+eiNBePhEJ9 edBg== X-Gm-Message-State: ALKqPwfUQWP2EM/b306DBlZV2skuLtvAwoTaQAKb7fEJck3ArjCZ6P+I QJg018PyT/5SdaVSxmtoDvcyOA== X-Google-Smtp-Source: AB8JxZoyxoVpLiPjfu1UInzsUEXha0JTKOBndJGH+p+9VHZAovDuTBoHOxpwTy3Lunv3IwHb6VHVfQ== X-Received: by 2002:a6b:b386:: with SMTP id c128-v6mr3486478iof.50.1526064460363; Fri, 11 May 2018 11:47:40 -0700 (PDT) Received: from raichu (toroon0560w-lp130-04-184-145-252-229.dsl.bell.ca. [184.145.252.229]) by smtp.gmail.com with ESMTPSA id n7-v6sm1716793ioc.75.2018.05.11.11.47.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 11:47:39 -0700 (PDT) Sender: Mark Johnston Date: Fri, 11 May 2018 14:47:35 -0400 From: Mark Johnston To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333466 - in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch Message-ID: <20180511184735.GA34339@raichu> References: <201805101755.w4AHtPRt028900@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805101755.w4AHtPRt028900@repo.freebsd.org> User-Agent: Mutt/1.9.5 (2018-04-13) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 18:47:42 -0000 On Thu, May 10, 2018 at 05:55:25PM +0000, Matt Macy wrote: > Author: mmacy > Date: Thu May 10 17:55:24 2018 > New Revision: 333466 > URL: https://svnweb.freebsd.org/changeset/base/333466 > > Log: > Add simple preempt safe epoch API > > Read locking is over used in the kernel to guarantee liveness. This API makes > it easy to provide livenes guarantees without atomics. > > Includes epoch_test kernel module to stress test the API. > > Documentation will follow initial use case. > > Test case and improvements to preemption handling in response to discussion > with mjg@ > > Reviewed by: imp@, shurd@ > Approved by: sbruno@ > > Added: > head/sys/kern/subr_epoch.c (contents, props changed) > head/sys/modules/epoch_test/ > head/sys/modules/epoch_test/Makefile (contents, props changed) > head/sys/sys/epoch.h (contents, props changed) > head/sys/tests/epoch/ > head/sys/tests/epoch/epoch_test.c (contents, props changed) > Modified: > head/contrib/bmake/job.c > head/sys/conf/files > head/sys/conf/kern.pre.mk > head/sys/kern/kern_malloc.c > head/sys/kern/kern_synch.c > head/sys/kern/subr_trap.c > head/sys/kern/subr_turnstile.c > head/sys/sys/proc.h > head/sys/sys/turnstile.h > > Modified: head/sys/sys/proc.h > ============================================================================== > --- head/sys/sys/proc.h Thu May 10 17:22:04 2018 (r333465) > +++ head/sys/sys/proc.h Thu May 10 17:55:24 2018 (r333466) > @@ -243,6 +243,7 @@ struct thread { > > /* Cleared during fork1() */ > #define td_startzero td_flags > + u_char td_epochnest; /* (k) Private thread epoch nest counter */ It looks like td_epochnest was inteded to be in the zeroed section, but td_startzero still points to td_flags. > int td_flags; /* (t) TDF_* flags. */ > int td_inhibitors; /* (t) Why can not run. */ > int td_pflags; /* (k) Private thread (TDP_*) flags. */ > @@ -355,6 +356,7 @@ struct thread { > int td_lastcpu; /* (t) Last cpu we were on. */ > int td_oncpu; /* (t) Which cpu we are on. */ > void *td_lkpi_task; /* LinuxKPI task struct pointer */ > + TAILQ_ENTRY(thread) td_epochq; /* (t) Epoch queue. */ > }; From owner-svn-src-head@freebsd.org Fri May 11 18:59:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 588F0FC6280; Fri, 11 May 2018 18:59:44 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (unknown [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0537B74D12; Fri, 11 May 2018 18:59:44 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f43.google.com (mail-it0-f43.google.com [209.85.214.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id BD2421DFCE; Fri, 11 May 2018 18:59:43 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f43.google.com with SMTP id n64-v6so3199998itb.3; Fri, 11 May 2018 11:59:43 -0700 (PDT) X-Gm-Message-State: ALKqPwezOoXGWJBb3X1hot9LA6j7lZLoxErmPajq/Y8qQ2U3Q2iqFiXk +aLgEVoKuMoZ0L3SN5JKsGBX65MDqx0hUHNnm64= X-Google-Smtp-Source: AB8JxZpLfkW338z7xnVV4C6tv7E0fbd/lmla9EBdJLIvsoxDLjJbWvc2P/Co1AeLZid2z9SpZ9kGUrCCcEPNIb8byak= X-Received: by 2002:a24:5a85:: with SMTP id v127-v6mr4628530ita.128.1526065183195; Fri, 11 May 2018 11:59:43 -0700 (PDT) MIME-Version: 1.0 References: <201805101755.w4AHtPRt028900@repo.freebsd.org> <20180511184735.GA34339@raichu> In-Reply-To: <20180511184735.GA34339@raichu> From: Matthew Macy Date: Fri, 11 May 2018 11:59:32 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333466 - in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch To: Mark Johnston Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 18:59:44 -0000 Thanks On Fri, May 11, 2018 at 11:47 Mark Johnston wrote: > On Thu, May 10, 2018 at 05:55:25PM +0000, Matt Macy wrote: > > Author: mmacy > > Date: Thu May 10 17:55:24 2018 > > New Revision: 333466 > > URL: https://svnweb.freebsd.org/changeset/base/333466 > > > > Log: > > Add simple preempt safe epoch API > > > > Read locking is over used in the kernel to guarantee liveness. This > API makes > > it easy to provide livenes guarantees without atomics. > > > > Includes epoch_test kernel module to stress test the API. > > > > Documentation will follow initial use case. > > > > Test case and improvements to preemption handling in response to > discussion > > with mjg@ > > > > Reviewed by: imp@, shurd@ > > Approved by: sbruno@ > > > > Added: > > head/sys/kern/subr_epoch.c (contents, props changed) > > head/sys/modules/epoch_test/ > > head/sys/modules/epoch_test/Makefile (contents, props changed) > > head/sys/sys/epoch.h (contents, props changed) > > head/sys/tests/epoch/ > > head/sys/tests/epoch/epoch_test.c (contents, props changed) > > Modified: > > head/contrib/bmake/job.c > > head/sys/conf/files > > head/sys/conf/kern.pre.mk > > head/sys/kern/kern_malloc.c > > head/sys/kern/kern_synch.c > > head/sys/kern/subr_trap.c > > head/sys/kern/subr_turnstile.c > > head/sys/sys/proc.h > > head/sys/sys/turnstile.h > > > > Modified: head/sys/sys/proc.h > > > ============================================================================== > > --- head/sys/sys/proc.h Thu May 10 17:22:04 2018 (r333465) > > +++ head/sys/sys/proc.h Thu May 10 17:55:24 2018 (r333466) > > @@ -243,6 +243,7 @@ struct thread { > > > > /* Cleared during fork1() */ > > #define td_startzero td_flags > > + u_char td_epochnest; /* (k) Private thread epoch nest counter */ > > It looks like td_epochnest was inteded to be in the zeroed section, but > td_startzero still points to td_flags. > > > int td_flags; /* (t) TDF_* flags. */ > > int td_inhibitors; /* (t) Why can not run. */ > > int td_pflags; /* (k) Private thread (TDP_*) > flags. */ > > @@ -355,6 +356,7 @@ struct thread { > > int td_lastcpu; /* (t) Last cpu we were on. */ > > int td_oncpu; /* (t) Which cpu we are on. */ > > void *td_lkpi_task; /* LinuxKPI task struct pointer */ > > + TAILQ_ENTRY(thread) td_epochq; /* (t) Epoch queue. */ > > }; > From owner-svn-src-head@freebsd.org Fri May 11 19:37:19 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75803FC8397; Fri, 11 May 2018 19:37:19 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 254D87C2FF; Fri, 11 May 2018 19:37:19 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0586213EB8; Fri, 11 May 2018 19:37:19 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BJbI7l020958; Fri, 11 May 2018 19:37:18 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BJbISX020956; Fri, 11 May 2018 19:37:18 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805111937.w4BJbISX020956@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Fri, 11 May 2018 19:37:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333501 - head/usr.sbin/mld6query X-SVN-Group: head X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: head/usr.sbin/mld6query X-SVN-Commit-Revision: 333501 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 19:37:19 -0000 Author: shurd Date: Fri May 11 19:37:18 2018 New Revision: 333501 URL: https://svnweb.freebsd.org/changeset/base/333501 Log: Fix mld6query(8) and add a new -g option The mld6query command relies on KAME behaviour which allows the ipv6mr_multiaddr member of the request object in a IPV6_JOIN_GROUP setsockopt() call to be INADDR6_ANY. The FreeBSD stack doesn't allow this, so mld6query has been non-functional. Also, add a -g option which sends a General Query (query INADDR6_ANY) Reviewed by: sbruno, mmacy Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15384 Modified: head/usr.sbin/mld6query/mld6.c head/usr.sbin/mld6query/mld6query.8 Modified: head/usr.sbin/mld6query/mld6.c ============================================================================== --- head/usr.sbin/mld6query/mld6.c Fri May 11 18:37:14 2018 (r333500) +++ head/usr.sbin/mld6query/mld6.c Fri May 11 19:37:18 2018 (r333501) @@ -85,7 +85,7 @@ int s; #define QUERY_RESPONSE_INTERVAL 10000 -void make_msg(int index, struct in6_addr *addr, u_int type); +void make_msg(int index, struct in6_addr *addr, u_int type, struct in6_addr *qaddr); void usage(void); void dump(int); void quit(int); @@ -100,14 +100,26 @@ main(int argc, char *argv[]) struct itimerval itimer; u_int type; int ch; + struct in6_addr *qaddr = &maddr; type = MLD_LISTENER_QUERY; - while ((ch = getopt(argc, argv, "dr")) != -1) { + while ((ch = getopt(argc, argv, "dgr")) != -1) { switch (ch) { case 'd': + if (type != MLD_LISTENER_QUERY) { + printf("Can not specifiy -d with -r\n"); + return 1; + } type = MLD_LISTENER_DONE; break; + case 'g': + qaddr = &any; + break; case 'r': + if (type != MLD_LISTENER_QUERY) { + printf("Can not specifiy -r with -d\n"); + return 1; + } type = MLD_LISTENER_REPORT; break; default: @@ -127,6 +139,10 @@ main(int argc, char *argv[]) usage(); if (argc == 2 && inet_pton(AF_INET6, argv[1], &maddr) != 1) usage(); + if (type != MLD_LISTENER_QUERY && qaddr != &maddr) { + printf("Can not specifiy -g with -d or -r\n"); + return 1; + } if ((s = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0) err(1, "socket"); @@ -135,7 +151,12 @@ main(int argc, char *argv[]) sizeof(hlim)) == -1) err(1, "setsockopt(IPV6_MULTICAST_HOPS)"); - mreq.ipv6mr_multiaddr = any; + if (IN6_IS_ADDR_UNSPECIFIED(&maddr)) { + if (inet_pton(AF_INET6, "ff02::1", &maddr) != 1) + errx(1, "inet_pton failed"); + } + + mreq.ipv6mr_multiaddr = maddr; mreq.ipv6mr_interface = ifindex; if (setsockopt(s, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1) @@ -149,7 +170,7 @@ main(int argc, char *argv[]) sizeof(filt)) < 0) err(1, "setsockopt(ICMP6_FILTER)"); - make_msg(ifindex, &maddr, type); + make_msg(ifindex, &maddr, type, qaddr); if (sendmsg(s, &m, 0) < 0) err(1, "sendmsg"); @@ -177,7 +198,7 @@ main(int argc, char *argv[]) } void -make_msg(int index, struct in6_addr *addr, u_int type) +make_msg(int index, struct in6_addr *addr, u_int type, struct in6_addr *qaddr) { static struct iovec iov[2]; static u_char *cmsgbuf; @@ -196,12 +217,7 @@ make_msg(int index, struct in6_addr *addr, u_int type) dst.sin6_len = sizeof(dst); dst.sin6_family = AF_INET6; - if (IN6_IS_ADDR_UNSPECIFIED(addr)) { - if (inet_pton(AF_INET6, "ff02::1", &dst.sin6_addr) != 1) - errx(1, "inet_pton failed"); - } - else - dst.sin6_addr = *addr; + dst.sin6_addr = *addr; m.msg_name = (caddr_t)&dst; m.msg_namelen = dst.sin6_len; iov[0].iov_base = (caddr_t)&mldh; @@ -212,7 +228,7 @@ make_msg(int index, struct in6_addr *addr, u_int type) bzero(&mldh, sizeof(mldh)); mldh.mld_type = type & 0xff; mldh.mld_maxdelay = htons(QUERY_RESPONSE_INTERVAL); - mldh.mld_addr = *addr; + mldh.mld_addr = *qaddr; /* MLD packet should be advertised from linklocal address */ getifaddrs(&ifa); @@ -337,7 +353,7 @@ dump(int s) void quit(int signum __unused) { - mreq.ipv6mr_multiaddr = any; + mreq.ipv6mr_multiaddr = maddr; mreq.ipv6mr_interface = ifindex; if (setsockopt(s, IPPROTO_IPV6, IPV6_LEAVE_GROUP, &mreq, sizeof(mreq)) == -1) @@ -349,6 +365,6 @@ quit(int signum __unused) void usage(void) { - (void)fprintf(stderr, "usage: mld6query ifname [addr]\n"); + (void)fprintf(stderr, "usage: mld6query [-dgr] ifname [addr]\n"); exit(1); } Modified: head/usr.sbin/mld6query/mld6query.8 ============================================================================== --- head/usr.sbin/mld6query/mld6query.8 Fri May 11 18:37:14 2018 (r333500) +++ head/usr.sbin/mld6query/mld6query.8 Fri May 11 19:37:18 2018 (r333501) @@ -39,7 +39,7 @@ .\" .Sh SYNOPSIS .Nm -.Op Fl dr +.Op Fl dgr .Ar intface .Op Ar maddr .\" @@ -65,6 +65,10 @@ prints it with its type and then waits for another rep This program is provided only for debugging. It is not necessary for normal use. .Pp +With +.Fl g , +.Nm +will transmit a General Query instead of the default Multicast-Address-Specific Query. With .Fl d , .Nm From owner-svn-src-head@freebsd.org Fri May 11 20:08:30 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 724C2FC9D44; Fri, 11 May 2018 20:08:30 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1F0A583CD4; Fri, 11 May 2018 20:08:30 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F406A143BD; Fri, 11 May 2018 20:08:29 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BK8T4F036686; Fri, 11 May 2018 20:08:29 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BK8ScA036677; Fri, 11 May 2018 20:08:28 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805112008.w4BK8ScA036677@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Fri, 11 May 2018 20:08:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333502 - in head/sys: conf net X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: conf net X-SVN-Commit-Revision: 333502 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 20:08:30 -0000 Author: mmacy Date: Fri May 11 20:08:28 2018 New Revision: 333502 URL: https://svnweb.freebsd.org/changeset/base/333502 Log: iflib(9): Add support for cloning pseudo interfaces Part 3 of many ... The VPC framework relies heavily on cloning pseudo interfaces (vmnics, vpc switch, vcpswitch port, hostif, vxlan if, etc). This pulls in that piece. Some ancillary changes get pulled in as a side effect. Reviewed by: shurd@ Approved by: sbruno@ Sponsored by: Joyent, Inc. Differential Revision: https://reviews.freebsd.org/D15347 Added: head/sys/net/iflib_clone.c (contents, props changed) head/sys/net/iflib_private.h (contents, props changed) Modified: head/sys/conf/files head/sys/net/if.h head/sys/net/if_clone.c head/sys/net/if_clone.h head/sys/net/ifdi_if.m head/sys/net/iflib.c head/sys/net/iflib.h Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri May 11 19:37:18 2018 (r333501) +++ head/sys/conf/files Fri May 11 20:08:28 2018 (r333502) @@ -4137,6 +4137,7 @@ net/if_vlan.c optional vlan net/if_vxlan.c optional vxlan inet | vxlan inet6 net/ifdi_if.m optional ether pci net/iflib.c optional ether pci +net/iflib_clone.c optional ether pci net/mp_ring.c optional ether net/mppcc.c optional netgraph_mppc_compression net/mppcd.c optional netgraph_mppc_compression Modified: head/sys/net/if.h ============================================================================== --- head/sys/net/if.h Fri May 11 19:37:18 2018 (r333501) +++ head/sys/net/if.h Fri May 11 20:08:28 2018 (r333502) @@ -162,6 +162,9 @@ struct if_data { #define IFF_STATICARP 0x80000 /* (n) static ARP */ #define IFF_DYING 0x200000 /* (n) interface is winding down */ #define IFF_RENAMING 0x400000 /* (n) interface is being renamed */ +#define IFF_NOGROUP 0x800000 /* (n) interface is not part of any groups */ + + /* * Old names for driver flags so that user space tools can continue to use * the old (portable) names. Modified: head/sys/net/if_clone.c ============================================================================== --- head/sys/net/if_clone.c Fri May 11 19:37:18 2018 (r333501) +++ head/sys/net/if_clone.c Fri May 11 20:08:28 2018 (r333502) @@ -67,6 +67,7 @@ struct if_clone { char ifc_name[IFCLOSIZ]; /* (c) Name of device, e.g. `gif' */ struct unrhdr *ifc_unrhdr; /* (c) alloc_unr(9) header */ int ifc_maxunit; /* (c) maximum unit number */ + int ifc_flags; long ifc_refcnt; /* (i) Reference count. */ LIST_HEAD(, ifnet) ifc_iflist; /* (i) List of cloned interfaces */ struct mtx ifc_mtx; /* Mutex to protect members. */ @@ -232,7 +233,8 @@ if_clone_createif(struct if_clone *ifc, char *name, si if (ifp == NULL) panic("%s: lookup failed for %s", __func__, name); - if_addgroup(ifp, ifc->ifc_name); + if ((ifc->ifc_flags & IFC_NOGROUP) == 0) + if_addgroup(ifp, ifc->ifc_name); IF_CLONE_LOCK(ifc); IFC_IFLIST_INSERT(ifc, ifp); @@ -319,16 +321,17 @@ if_clone_destroyif(struct if_clone *ifc, struct ifnet CURVNET_RESTORE(); return (ENXIO); /* ifp is not on the list. */ } + if ((ifc->ifc_flags & IFC_NOGROUP) == 0) + if_delgroup(ifp, ifc->ifc_name); - if_delgroup(ifp, ifc->ifc_name); - if (ifc->ifc_type == SIMPLE) err = ifc_simple_destroy(ifc, ifp); else err = (*ifc->ifc_destroy)(ifc, ifp); if (err != 0) { - if_addgroup(ifp, ifc->ifc_name); + if ((ifc->ifc_flags & IFC_NOGROUP) == 0) + if_addgroup(ifp, ifc->ifc_name); IF_CLONE_LOCK(ifc); IFC_IFLIST_INSERT(ifc, ifp); @@ -553,9 +556,10 @@ if_clone_findifc(struct ifnet *ifp) void if_clone_addgroup(struct ifnet *ifp, struct if_clone *ifc) { - - if_addgroup(ifp, ifc->ifc_name); - IF_CLONE_REMREF(ifc); + if ((ifc->ifc_flags & IFC_NOGROUP) == 0) { + if_addgroup(ifp, ifc->ifc_name); + IF_CLONE_REMREF(ifc); + } } /* @@ -731,4 +735,22 @@ ifc_simple_destroy(struct if_clone *ifc, struct ifnet ifc_free_unit(ifc, unit); return (0); +} + +const char * +ifc_name(struct if_clone *ifc) +{ + return (ifc->ifc_name); +} + +void +ifc_flags_set(struct if_clone *ifc, int flags) +{ + ifc->ifc_flags = flags; +} + +int +ifc_flags_get(struct if_clone *ifc) +{ + return (ifc->ifc_flags); } Modified: head/sys/net/if_clone.h ============================================================================== --- head/sys/net/if_clone.h Fri May 11 19:37:18 2018 (r333501) +++ head/sys/net/if_clone.h Fri May 11 20:08:28 2018 (r333502) @@ -37,6 +37,8 @@ #ifdef _KERNEL +#define IFC_NOGROUP 0x1 + struct if_clone; /* Methods. */ @@ -59,6 +61,9 @@ void if_clone_detach(struct if_clone *); int ifc_name2unit(const char *name, int *unit); int ifc_alloc_unit(struct if_clone *, int *); void ifc_free_unit(struct if_clone *, int); +const char *ifc_name(struct if_clone *); +void ifc_flags_set(struct if_clone *, int flags); +int ifc_flags_get(struct if_clone *); #ifdef _SYS_EVENTHANDLER_H_ /* Interface clone event. */ Modified: head/sys/net/ifdi_if.m ============================================================================== --- head/sys/net/ifdi_if.m Fri May 11 19:37:18 2018 (r333501) +++ head/sys/net/ifdi_if.m Fri May 11 20:08:28 2018 (r333502) @@ -1,5 +1,5 @@ # -# Copyright (c) 2014, Matthew Macy (mmacy@mattmacy.io) +# Copyright (c) 2014-2018, Matthew Macy (mmacy@mattmacy.io) # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -39,6 +39,9 @@ #include #include #include +#include +#include +#include INTERFACE ifdi; @@ -49,6 +52,18 @@ CODE { { } + static int + null_knlist_add(if_ctx_t _ctx __unused, struct knote *_kn) + { + return (0); + } + + static int + null_knote_event(if_ctx_t _ctx __unused, struct knote *_kn, int _hint) + { + return (0); + } + static void null_timer_op(if_ctx_t _ctx __unused, uint16_t _qsidx __unused) { @@ -61,6 +76,12 @@ CODE { } static int + null_int_int_op(if_ctx_t _ctx __unused, int arg0 __unused) + { + return (ENOTSUP); + } + + static int null_queue_intr_enable(if_ctx_t _ctx __unused, uint16_t _qid __unused) { return (ENOTSUP); @@ -111,20 +132,98 @@ CODE { { return (ENOTSUP); } + + static void + null_media_status(if_ctx_t ctx __unused, struct ifmediareq *ifmr) + { + ifmr->ifm_status = IFM_AVALID | IFM_ACTIVE; + ifmr->ifm_active = IFM_ETHER | IFM_25G_ACC | IFM_FDX; + } + + static int + null_cloneattach(if_ctx_t ctx __unused, struct if_clone *ifc __unused, + const char *name __unused, caddr_t params __unused) + { + return (0); + } + + static void + null_rx_clset(if_ctx_t _ctx __unused, uint16_t _flid __unused, + uint16_t _qid __unused, caddr_t *_sdcl __unused) + { + } + static void + null_object_info_get(if_ctx_t ctx __unused, void *data __unused, int size __unused) + { + } + static int + default_mac_set(if_ctx_t ctx, const uint8_t *mac) + { + struct ifnet *ifp = iflib_get_ifp(ctx); + struct sockaddr_dl *sdl; + + if (ifp && ifp->if_addr) { + sdl = (struct sockaddr_dl *)ifp->if_addr->ifa_addr; + MPASS(sdl->sdl_type == IFT_ETHER); + memcpy(LLADDR(sdl), mac, ETHER_ADDR_LEN); + } + return (0); + } }; # +# kevent interfaces +# + +METHOD int knlist_add { + if_ctx_t _ctx; + struct knote *_kn; +} DEFAULT null_knlist_add; + +METHOD int knote_event { + if_ctx_t _ctx; + struct knote *_kn; + int hint; +} DEFAULT null_knote_event; + + +# +# query +# + +METHOD int object_info_get { + if_ctx_t _ctx; + void *data; + int size; +} DEFAULT null_object_info_get; + +# # bus interfaces # METHOD int attach_pre { if_ctx_t _ctx; -}; +} DEFAULT null_int_op; METHOD int attach_post { if_ctx_t _ctx; -}; +} DEFAULT null_int_op; +METHOD int reinit_pre { + if_ctx_t _ctx; +} DEFAULT null_int_op; + +METHOD int reinit_post { + if_ctx_t _ctx; +} DEFAULT null_int_op; + +METHOD int cloneattach { + if_ctx_t _ctx; + struct if_clone *_ifc; + const char *_name; + caddr_t params; +} DEFAULT null_cloneattach; + METHOD int detach { if_ctx_t _ctx; }; @@ -164,8 +263,15 @@ METHOD int rx_queues_alloc { METHOD void queues_free { if_ctx_t _ctx; -}; +} DEFAULT null_void_op; +METHOD void rx_clset { + if_ctx_t _ctx; + uint16_t _fl; + uint16_t _qsetid; + caddr_t *_sdcl; +} DEFAULT null_rx_clset; + # # interface reset / stop # @@ -185,7 +291,7 @@ METHOD void stop { METHOD int msix_intr_assign { if_ctx_t _sctx; int msix; -}; +} DEFAULT null_int_int_op; METHOD void intr_enable { if_ctx_t _ctx; @@ -221,6 +327,10 @@ METHOD int mtu_set { if_ctx_t _ctx; uint32_t _mtu; }; +METHOD int mac_set { + if_ctx_t _ctx; + const uint8_t *_mac; +} DEFAULT default_mac_set; METHOD void media_set{ if_ctx_t _ctx; @@ -273,11 +383,11 @@ METHOD void update_admin_status { METHOD void media_status { if_ctx_t _ctx; struct ifmediareq *_ifm; -}; +} DEFAULT null_media_status; METHOD int media_change { if_ctx_t _ctx; -}; +} DEFAULT null_int_op; METHOD uint64_t get_counter { if_ctx_t _ctx; @@ -317,6 +427,11 @@ METHOD void timer { METHOD void watchdog_reset { if_ctx_t _ctx; } DEFAULT null_void_op; + +METHOD void watchdog_reset_queue { + if_ctx_t _ctx; + uint16_t _q; +} DEFAULT null_timer_op; METHOD void led_func { if_ctx_t _ctx; Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Fri May 11 19:37:18 2018 (r333501) +++ head/sys/net/iflib.c Fri May 11 20:08:28 2018 (r333502) @@ -37,16 +37,19 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include +#include #include #include #include #include +#include #include #include #include +#include #include #include #include @@ -85,6 +88,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "ifdi_if.h" @@ -130,7 +134,7 @@ __FBSDID("$FreeBSD$"); * * */ -static MALLOC_DEFINE(M_IFLIB, "iflib", "ifnet library"); +MALLOC_DEFINE(M_IFLIB, "iflib", "ifnet library"); struct iflib_txq; typedef struct iflib_txq *iflib_txq_t; @@ -241,7 +245,19 @@ iflib_get_media(if_ctx_t ctx) return (&ctx->ifc_media); } +uint32_t +iflib_get_flags(if_ctx_t ctx) +{ + return (ctx->ifc_flags); +} + void +iflib_set_detach(if_ctx_t ctx) +{ + ctx->ifc_in_detach = 1; +} + +void iflib_set_mac(if_ctx_t ctx, uint8_t mac[ETHER_ADDR_LEN]) { @@ -310,18 +326,7 @@ typedef struct iflib_sw_tx_desc_array { #define IFLIB_RESTART_BUDGET 8 -#define IFC_LEGACY 0x001 -#define IFC_QFLUSH 0x002 -#define IFC_MULTISEG 0x004 -#define IFC_DMAR 0x008 -#define IFC_SC_ALLOCATED 0x010 -#define IFC_INIT_DONE 0x020 -#define IFC_PREFETCH 0x040 -#define IFC_DO_RESET 0x080 -#define IFC_DO_WATCHDOG 0x100 -#define IFC_CHECK_HUNG 0x200 - #define CSUM_OFFLOAD (CSUM_IP_TSO|CSUM_IP6_TSO|CSUM_IP| \ CSUM_IP_UDP|CSUM_IP_TCP|CSUM_IP_SCTP| \ CSUM_IP6_UDP|CSUM_IP6_TCP|CSUM_IP6_SCTP) @@ -511,6 +516,16 @@ pkt_info_zero(if_pkt_info_t pi) #endif } +static device_method_t iflib_pseudo_methods[] = { + DEVMETHOD(device_attach, noop_attach), + DEVMETHOD(device_detach, iflib_pseudo_detach), + DEVMETHOD_END +}; + +driver_t iflib_pseudodriver = { + "iflib_pseudo", iflib_pseudo_methods, sizeof(struct iflib_ctx), +}; + static inline void rxd_info_zero(if_rxd_info_t ri) { @@ -709,8 +724,6 @@ iflib_debug_reset(void) static void iflib_debug_reset(void) {} #endif - - #define IFLIB_DEBUG 0 static void iflib_tx_structures_free(if_ctx_t ctx); @@ -729,7 +742,6 @@ static void iflib_add_device_sysctl_pre(if_ctx_t ctx); static void iflib_add_device_sysctl_post(if_ctx_t ctx); static void iflib_ifmp_purge(iflib_txq_t txq); static void _iflib_pre_assert(if_softc_ctx_t scctx); -static void iflib_stop(if_ctx_t ctx); static void iflib_if_init_locked(if_ctx_t ctx); #ifndef __NO_STRICT_ALIGNMENT static struct mbuf * iflib_fixup_rx(struct mbuf *m); @@ -1242,6 +1254,40 @@ prefetch2cachelines(void *x) #endif static void +iflib_gen_mac(if_ctx_t ctx) +{ + struct thread *td; + struct ifnet *ifp; + MD5_CTX mdctx; + char uuid[HOSTUUIDLEN+1]; + char buf[HOSTUUIDLEN+16]; + uint8_t *mac; + unsigned char digest[16]; + + td = curthread; + ifp = ctx->ifc_ifp; + mac = ctx->ifc_mac; + uuid[HOSTUUIDLEN] = 0; + bcopy(td->td_ucred->cr_prison->pr_hostuuid, uuid, HOSTUUIDLEN); + snprintf(buf, HOSTUUIDLEN+16, "%s-%s", uuid, device_get_nameunit(ctx->ifc_dev)); + /* + * Generate a pseudo-random, deterministic MAC + * address based on the UUID and unit number. + * The FreeBSD Foundation OUI of 58-9C-FC is used. + */ + MD5Init(&mdctx); + MD5Update(&mdctx, buf, strlen(buf)); + MD5Final(digest, &mdctx); + + mac[0] = 0x58; + mac[1] = 0x9C; + mac[2] = 0xFC; + mac[3] = digest[0]; + mac[4] = digest[1]; + mac[5] = digest[2]; +} + +static void iru_init(if_rxd_update_t iru, iflib_rxq_t rxq, uint8_t flid) { iflib_fl_t fl; @@ -2251,7 +2297,7 @@ iflib_media_status(if_t ifp, struct ifmediareq *ifmr) CTX_UNLOCK(ctx); } -static void +void iflib_stop(if_ctx_t ctx) { iflib_txq_t txq = ctx->ifc_txqs; @@ -4202,40 +4248,19 @@ iflib_device_probe(device_t dev) return (ENXIO); } -int -iflib_device_register(device_t dev, void *sc, if_shared_ctx_t sctx, if_ctx_t *ctxp) +static void +iflib_reset_qvalues(if_ctx_t ctx) { - int err, rid, msix; - if_ctx_t ctx; - if_t ifp; - if_softc_ctx_t scctx; - int i; - uint16_t main_txq; - uint16_t main_rxq; + if_softc_ctx_t scctx = &ctx->ifc_softc_ctx; + if_shared_ctx_t sctx = ctx->ifc_sctx; + device_t dev = ctx->ifc_dev; + int i, main_txq, main_rxq; + main_txq = (sctx->isc_flags & IFLIB_HAS_TXCQ) ? 1 : 0; + main_rxq = (sctx->isc_flags & IFLIB_HAS_RXCQ) ? 1 : 0; - ctx = malloc(sizeof(* ctx), M_IFLIB, M_WAITOK|M_ZERO); - - if (sc == NULL) { - sc = malloc(sctx->isc_driver->size, M_IFLIB, M_WAITOK|M_ZERO); - device_set_softc(dev, ctx); - ctx->ifc_flags |= IFC_SC_ALLOCATED; - } - - ctx->ifc_sctx = sctx; - ctx->ifc_dev = dev; - ctx->ifc_softc = sc; - - if ((err = iflib_register(ctx)) != 0) { - device_printf(dev, "iflib_register failed %d\n", err); - return (err); - } - iflib_add_device_sysctl_pre(ctx); - - scctx = &ctx->ifc_softc_ctx; - ifp = ctx->ifc_ifp; - ctx->ifc_nhwtxqs = sctx->isc_ntxqs; - + scctx->isc_txrx_budget_bytes_max = IFLIB_MAX_TX_BYTES; + scctx->isc_tx_qdepth = IFLIB_DEFAULT_TX_QDEPTH; /* * XXX sanity check that ntxd & nrxd are a power of 2 */ @@ -4283,7 +4308,45 @@ iflib_device_register(device_t dev, void *sc, if_share scctx->isc_ntxd[i] = sctx->isc_ntxd_max[i]; } } +} +int +iflib_device_register(device_t dev, void *sc, if_shared_ctx_t sctx, if_ctx_t *ctxp) +{ + int err, rid, msix; + if_ctx_t ctx; + if_t ifp; + if_softc_ctx_t scctx; + int i; + uint16_t main_txq; + uint16_t main_rxq; + + + ctx = malloc(sizeof(* ctx), M_IFLIB, M_WAITOK|M_ZERO); + + if (sc == NULL) { + sc = malloc(sctx->isc_driver->size, M_IFLIB, M_WAITOK|M_ZERO); + device_set_softc(dev, ctx); + ctx->ifc_flags |= IFC_SC_ALLOCATED; + } + + ctx->ifc_sctx = sctx; + ctx->ifc_dev = dev; + ctx->ifc_softc = sc; + + if ((err = iflib_register(ctx)) != 0) { + if (ctx->ifc_flags & IFC_SC_ALLOCATED) + free(sc, M_IFLIB); + free(ctx, M_IFLIB); + device_printf(dev, "iflib_register failed %d\n", err); + return (err); + } + iflib_add_device_sysctl_pre(ctx); + + scctx = &ctx->ifc_softc_ctx; + ifp = ctx->ifc_ifp; + + iflib_reset_qvalues(ctx); CTX_LOCK(ctx); if ((err = IFDI_ATTACH_PRE(ctx)) != 0) { CTX_UNLOCK(ctx); @@ -4457,6 +4520,232 @@ fail: IFDI_DETACH(ctx); CTX_UNLOCK(ctx); return (err); +} + +int +iflib_pseudo_register(device_t dev, if_shared_ctx_t sctx, if_ctx_t *ctxp, + struct iflib_cloneattach_ctx *clctx) +{ + int err; + if_ctx_t ctx; + if_t ifp; + if_softc_ctx_t scctx; + int i; + void *sc; + uint16_t main_txq; + uint16_t main_rxq; + + ctx = malloc(sizeof(*ctx), M_IFLIB, M_WAITOK|M_ZERO); + sc = malloc(sctx->isc_driver->size, M_IFLIB, M_WAITOK|M_ZERO); + ctx->ifc_flags |= IFC_SC_ALLOCATED; + if (sctx->isc_flags & (IFLIB_PSEUDO|IFLIB_VIRTUAL)) + ctx->ifc_flags |= IFC_PSEUDO; + + ctx->ifc_sctx = sctx; + ctx->ifc_softc = sc; + ctx->ifc_dev = dev; + + if ((err = iflib_register(ctx)) != 0) { + device_printf(dev, "%s: iflib_register failed %d\n", __func__, err); + free(sc, M_IFLIB); + free(ctx, M_IFLIB); + return (err); + } + iflib_add_device_sysctl_pre(ctx); + + scctx = &ctx->ifc_softc_ctx; + ifp = ctx->ifc_ifp; + + /* + * XXX sanity check that ntxd & nrxd are a power of 2 + */ + iflib_reset_qvalues(ctx); + + if ((err = IFDI_ATTACH_PRE(ctx)) != 0) { + device_printf(dev, "IFDI_ATTACH_PRE failed %d\n", err); + return (err); + } + if (sctx->isc_flags & IFLIB_GEN_MAC) + iflib_gen_mac(ctx); + if ((err = IFDI_CLONEATTACH(ctx, clctx->cc_ifc, clctx->cc_name, + clctx->cc_params)) != 0) { + device_printf(dev, "IFDI_CLONEATTACH failed %d\n", err); + return (err); + } + ifmedia_add(&ctx->ifc_media, IFM_ETHER | IFM_1000_T | IFM_FDX, 0, NULL); + ifmedia_add(&ctx->ifc_media, IFM_ETHER | IFM_AUTO, 0, NULL); + ifmedia_set(&ctx->ifc_media, IFM_ETHER | IFM_AUTO); + +#ifdef INVARIANTS + MPASS(scctx->isc_capenable); + if (scctx->isc_capenable & IFCAP_TXCSUM) + MPASS(scctx->isc_tx_csum_flags); +#endif + + if_setcapabilities(ifp, scctx->isc_capenable | IFCAP_HWSTATS | IFCAP_LINKSTATE); + if_setcapenable(ifp, scctx->isc_capenable | IFCAP_HWSTATS | IFCAP_LINKSTATE); + + ifp->if_flags |= IFF_NOGROUP; + if (sctx->isc_flags & IFLIB_PSEUDO) { + ether_ifattach(ctx->ifc_ifp, ctx->ifc_mac); + + if ((err = IFDI_ATTACH_POST(ctx)) != 0) { + device_printf(dev, "IFDI_ATTACH_POST failed %d\n", err); + goto fail_detach; + } + *ctxp = ctx; + + if_setgetcounterfn(ctx->ifc_ifp, iflib_if_get_counter); + iflib_add_device_sysctl_post(ctx); + ctx->ifc_flags |= IFC_INIT_DONE; + return (0); + } + _iflib_pre_assert(scctx); + ctx->ifc_txrx = *scctx->isc_txrx; + + if (scctx->isc_ntxqsets == 0 || (scctx->isc_ntxqsets_max && scctx->isc_ntxqsets_max < scctx->isc_ntxqsets)) + scctx->isc_ntxqsets = scctx->isc_ntxqsets_max; + if (scctx->isc_nrxqsets == 0 || (scctx->isc_nrxqsets_max && scctx->isc_nrxqsets_max < scctx->isc_nrxqsets)) + scctx->isc_nrxqsets = scctx->isc_nrxqsets_max; + + main_txq = (sctx->isc_flags & IFLIB_HAS_TXCQ) ? 1 : 0; + main_rxq = (sctx->isc_flags & IFLIB_HAS_RXCQ) ? 1 : 0; + + /* XXX change for per-queue sizes */ + device_printf(dev, "using %d tx descriptors and %d rx descriptors\n", + scctx->isc_ntxd[main_txq], scctx->isc_nrxd[main_rxq]); + for (i = 0; i < sctx->isc_nrxqs; i++) { + if (!powerof2(scctx->isc_nrxd[i])) { + /* round down instead? */ + device_printf(dev, "# rx descriptors must be a power of 2\n"); + err = EINVAL; + goto fail; + } + } + for (i = 0; i < sctx->isc_ntxqs; i++) { + if (!powerof2(scctx->isc_ntxd[i])) { + device_printf(dev, + "# tx descriptors must be a power of 2"); + err = EINVAL; + goto fail; + } + } + + if (scctx->isc_tx_nsegments > scctx->isc_ntxd[main_txq] / + MAX_SINGLE_PACKET_FRACTION) + scctx->isc_tx_nsegments = max(1, scctx->isc_ntxd[main_txq] / + MAX_SINGLE_PACKET_FRACTION); + if (scctx->isc_tx_tso_segments_max > scctx->isc_ntxd[main_txq] / + MAX_SINGLE_PACKET_FRACTION) + scctx->isc_tx_tso_segments_max = max(1, + scctx->isc_ntxd[main_txq] / MAX_SINGLE_PACKET_FRACTION); + + /* + * Protect the stack against modern hardware + */ + if (scctx->isc_tx_tso_size_max > FREEBSD_TSO_SIZE_MAX) + scctx->isc_tx_tso_size_max = FREEBSD_TSO_SIZE_MAX; + + /* TSO parameters - dig these out of the data sheet - simply correspond to tag setup */ + ifp->if_hw_tsomaxsegcount = scctx->isc_tx_tso_segments_max; + ifp->if_hw_tsomax = scctx->isc_tx_tso_size_max; + ifp->if_hw_tsomaxsegsize = scctx->isc_tx_tso_segsize_max; + if (scctx->isc_rss_table_size == 0) + scctx->isc_rss_table_size = 64; + scctx->isc_rss_table_mask = scctx->isc_rss_table_size-1; + + GROUPTASK_INIT(&ctx->ifc_admin_task, 0, _task_fn_admin, ctx); + /* XXX format name */ + taskqgroup_attach(qgroup_if_config_tqg, &ctx->ifc_admin_task, ctx, -1, "admin"); + + /* XXX --- can support > 1 -- but keep it simple for now */ + scctx->isc_intr = IFLIB_INTR_LEGACY; + + /* Get memory for the station queues */ + if ((err = iflib_queues_alloc(ctx))) { + device_printf(dev, "Unable to allocate queue memory\n"); + goto fail; + } + + if ((err = iflib_qset_structures_setup(ctx))) { + device_printf(dev, "qset structure setup failed %d\n", err); + goto fail_queues; + } + /* + * XXX What if anything do we want to do about interrupts? + */ + ether_ifattach(ctx->ifc_ifp, ctx->ifc_mac); + if ((err = IFDI_ATTACH_POST(ctx)) != 0) { + device_printf(dev, "IFDI_ATTACH_POST failed %d\n", err); + goto fail_detach; + } + /* XXX handle more than one queue */ + for (i = 0; i < scctx->isc_nrxqsets; i++) + IFDI_RX_CLSET(ctx, 0, i, ctx->ifc_rxqs[i].ifr_fl[0].ifl_sds.ifsd_cl); + + *ctxp = ctx; + + if_setgetcounterfn(ctx->ifc_ifp, iflib_if_get_counter); + iflib_add_device_sysctl_post(ctx); + ctx->ifc_flags |= IFC_INIT_DONE; + return (0); +fail_detach: + ether_ifdetach(ctx->ifc_ifp); +fail_queues: + iflib_tx_structures_free(ctx); + iflib_rx_structures_free(ctx); +fail: + IFDI_DETACH(ctx); + return (err); +} + +int +iflib_pseudo_deregister(if_ctx_t ctx) +{ + if_t ifp = ctx->ifc_ifp; + iflib_txq_t txq; + iflib_rxq_t rxq; + int i, j; + struct taskqgroup *tqg; + iflib_fl_t fl; + + /* Unregister VLAN events */ + if (ctx->ifc_vlan_attach_event != NULL) + EVENTHANDLER_DEREGISTER(vlan_config, ctx->ifc_vlan_attach_event); + if (ctx->ifc_vlan_detach_event != NULL) + EVENTHANDLER_DEREGISTER(vlan_unconfig, ctx->ifc_vlan_detach_event); + + ether_ifdetach(ifp); + /* ether_ifdetach calls if_qflush - lock must be destroy afterwards*/ + CTX_LOCK_DESTROY(ctx); + /* XXX drain any dependent tasks */ + tqg = qgroup_if_io_tqg; + for (txq = ctx->ifc_txqs, i = 0; i < NTXQSETS(ctx); i++, txq++) { + callout_drain(&txq->ift_timer); + if (txq->ift_task.gt_uniq != NULL) + taskqgroup_detach(tqg, &txq->ift_task); + } + for (i = 0, rxq = ctx->ifc_rxqs; i < NRXQSETS(ctx); i++, rxq++) { + if (rxq->ifr_task.gt_uniq != NULL) + taskqgroup_detach(tqg, &rxq->ifr_task); + + for (j = 0, fl = rxq->ifr_fl; j < rxq->ifr_nfl; j++, fl++) + free(fl->ifl_rx_bitmap, M_IFLIB); + } + tqg = qgroup_if_config_tqg; + if (ctx->ifc_admin_task.gt_uniq != NULL) + taskqgroup_detach(tqg, &ctx->ifc_admin_task); + if (ctx->ifc_vflr_task.gt_uniq != NULL) + taskqgroup_detach(tqg, &ctx->ifc_vflr_task); + + if_free(ifp); + + iflib_tx_structures_free(ctx); + iflib_rx_structures_free(ctx); + if (ctx->ifc_flags & IFC_SC_ALLOCATED) + free(ctx->ifc_softc, M_IFLIB); + free(ctx, M_IFLIB); + return (0); } int Modified: head/sys/net/iflib.h ============================================================================== --- head/sys/net/iflib.h Fri May 11 19:37:18 2018 (r333501) +++ head/sys/net/iflib.h Fri May 11 20:08:28 2018 (r333502) @@ -36,6 +36,8 @@ #include #include +struct if_clone; + /* * The value type for indexing, limits max descriptors * to 65535 can be conditionally redefined to uint32_t @@ -57,6 +59,8 @@ struct if_shared_ctx; typedef struct if_shared_ctx *if_shared_ctx_t; struct if_int_delay_info; typedef struct if_int_delay_info *if_int_delay_info_t; +struct if_pseudo; +typedef struct if_pseudo *if_pseudo_t; /* * File organization: @@ -194,6 +198,9 @@ typedef struct if_softc_ctx { int isc_vectors; int isc_nrxqsets; int isc_ntxqsets; + uint8_t isc_min_tx_latency; /* disable doorbell update batching */ + uint8_t isc_rx_mvec_enable; /* generate mvecs on rx */ + uint32_t isc_txrx_budget_bytes_max; int isc_msix_bar; /* can be model specific - initialize in attach_pre */ int isc_tx_nsegments; /* can be model specific - initialize in attach_pre */ int isc_ntxd[8]; @@ -214,6 +221,7 @@ typedef struct if_softc_ctx { int isc_rss_table_mask; int isc_nrxqsets_max; int isc_ntxqsets_max; + uint32_t isc_tx_qdepth; iflib_intr_mode_t isc_intr; uint16_t isc_max_frame_size; /* set at init time by driver */ @@ -259,6 +267,7 @@ struct if_shared_ctx { int isc_rx_process_limit; int isc_tx_reclaim_thresh; int isc_flags; + const char *isc_name; }; typedef struct iflib_dma_info { @@ -320,6 +329,35 @@ typedef enum { * Driver needs frames padded to some minimum length */ #define IFLIB_NEED_ETHER_PAD 0x100 +/* + * Packets can be freed immediately after encap + */ +#define IFLIB_TXD_ENCAP_PIO 0x00200 +/* + * Use RX completion handler + */ +#define IFLIB_RX_COMPLETION 0x00400 +/* + * Skip refilling cluster free lists + */ +#define IFLIB_SKIP_CLREFILL 0x00800 +/* + * Don't reset on hang + */ +#define IFLIB_NO_HANG_RESET 0x01000 +/* + * Don't need/want most of the niceties of + * queue management + */ +#define IFLIB_PSEUDO 0x02000 +/* + * No DMA support needed / wanted + */ +#define IFLIB_VIRTUAL 0x04000 +/* + * autogenerate a MAC address + */ +#define IFLIB_GEN_MAC 0x08000 @@ -404,4 +442,9 @@ void iflib_led_create(if_ctx_t ctx); void iflib_add_int_delay_sysctl(if_ctx_t, const char *, const char *, if_int_delay_info_t, int, int); +/* + * Pseudo device support + */ +if_pseudo_t iflib_clone_register(if_shared_ctx_t); +void iflib_clone_deregister(if_pseudo_t); #endif /* __IFLIB_H_ */ Added: head/sys/net/iflib_clone.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/net/iflib_clone.c Fri May 11 20:08:28 2018 (r333502) @@ -0,0 +1,303 @@ +/*- + * Copyright (c) 2014-2018, Matthew Macy + * Copyright (C) 2017-2018 Joyent Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Neither the name of Matthew Macy nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" +#include "opt_inet6.h" +#include "opt_acpi.h" +#include "opt_sched.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "ifdi_if.h" + +int +noop_attach(device_t dev) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Fri May 11 20:13:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F887FCA2C8; Fri, 11 May 2018 20:13:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E0C1985AFC; Fri, 11 May 2018 20:13:26 +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 B2556D171; Fri, 11 May 2018 20:13:26 +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 C41F584E7; Fri, 11 May 2018 20:13:25 +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 qhIjEYpoK2I8; Fri, 11 May 2018 20:13:23 +0000 (UTC) Subject: Re: svn commit: r333466 - in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch DKIM-Filter: OpenDKIM Filter v2.10.3 mail.xzibition.com 0CDD884DE To: Matt Macy , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201805101755.w4AHtPRt028900@repo.freebsd.org> From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Autocrypt: addr=bdrewery@FreeBSD.org; prefer-encrypt=mutual; keydata= xsBNBFJphmsBCADiFgmS4bIzwZijrS31SjEMzg+n5zNellgM+HkShwehpqCiyhXdWrvH6dTZ a6u50pbUIX7doTR7W7PQHCjCTqtpwvcj0eulZva+iHFp+XrbgSFHn+VVXgkYP2MFySyZRFab D2qqzJBEJofhpv4HvY6uQI5K99pMqKr1Z/lHqsijYYu4RH2OfwB5PinId7xeldzWEonVoCr+ rfxzO/UrgA6v/3layGZcKNHFjmc3NqoN1DXtdaEHqtjIozzbndVkH6lkFvIpIrI6i5ox8pwp VxsxLCr/4Musd5CWgHiet5kSw2SzNeA8FbxdLYCpXNVu+uBACEbCUP+CSNy3NVfEUxsBABEB AAHNJEJyeWFuIERyZXdlcnkgPGJkcmV3ZXJ5QEZyZWVCU0Qub3JnPsLAgAQTAQoAKgIbAwUL CQgHAwUVCgkICwUWAwIBAAIeAQIXgAIZAQUCWujOIgUJCmB7NwAKCRA113G7bkaXz/xpB/9b /UWIPbieY1IeIuHF2pyYPE7Hytkh3HVsxMA0F5Ma2AYQsXZZeKNKWrF7RPyDyDwUklLHJkhm k3EfClBbHxf08kMIm1vWCJRtgxic9knY/bzYGiWMpHjg3cSd1XfrYH1autYqTZAjDwIkgOjU dR//Tbn4V36sY7y2jz+kdMVWvK53U32aZqiwBbCn4DPe1wSZcUs17mV/0uZdIoGdj74B1orN A/0py5vHYo6HcbBNoaR8pKRLf5VZNRsxqGIMhTucx4SJWcHpuRBWYyvJSFzwvxdK4ZD4Yqoc kFGPVtOXktVMai9exrLvP3G77fKMu8DI6j4QRU4wCesnHuIfRPFuzsBNBFJphmsBCACiVFPf kNfaFtUSuY0395ueo/rMyHPGPQ2iwvERFCpeFGSQSgagpenNHLpFQKTg/dl6FOoST5tqyxMq fyHGHDzzU51bvA/IfaGoNi/BIhTe/toZNMRvpcI3PLjiGcnJnuwCCbAVOAGdb+t5cZtpNdOI cKYmrYG3u9RiBpe6dTF+qLrD/8Bs1wjhduQ8fcNNgnkXu8xDH4ZxY0lIc3QgvYWp9vimlQe6 iKjUd2/DX28ETZcD5h6pYV331KMPTrEI0p0yvFijUZce8c1XHFyL1j9sBAha5qpszJl6Uq5i LolhKRcGfcdmtD72vHQjUYglUyudSJUVyo2gMYjdbiFKzJulABEBAAHCwGUEGAEKAA8CGwwF AlrozigFCQpgez0ACgkQNddxu25Gl8+m5Af/R3VEdxNMAcDIes9ADhQyofj20SPV3eCJ3HYR OebTSuNdOudGt4AAyA8Ks94u9hiIp5IGsc6RDsT9W7O2vgXhd6eV3eiY5Oif5xLIYrIDVu1Y 1GyRxRrPEn/QOqDN6uFZCPwK1aOapGcYCrO9lB0gMuTVfgHanU61rgC9tMX0OoAOyRd+V3/M 8lDNhjJdF/IpO3SdYzKfkwduy4qamw4Gphcx/RfYQvYLq/eDkP8d50PphWdboqWBwNRHayro W/07OGzfxM5fJ5mBsXPQcO2QcRjkyHf6xCM6Hi1qQL4OnXMNE/ZTX0lnOj1/pH93TlzSHZMP TaiiA/MBD3vGsXBmBg== Organization: FreeBSD Message-ID: <492b8199-036c-a336-845f-3cb02d4e9758@FreeBSD.org> Date: Fri, 11 May 2018 13:13:18 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <201805101755.w4AHtPRt028900@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="4m8qGsDiR6YJXiwGkNEDrRpLMPQENygIS" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 20:13:27 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --4m8qGsDiR6YJXiwGkNEDrRpLMPQENygIS Content-Type: multipart/mixed; boundary="K6lc1k7FuwMslycaTn9PRkU3NshFEX5zy"; protected-headers="v1" From: Bryan Drewery To: Matt Macy , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <492b8199-036c-a336-845f-3cb02d4e9758@FreeBSD.org> Subject: Re: svn commit: r333466 - in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch References: <201805101755.w4AHtPRt028900@repo.freebsd.org> In-Reply-To: <201805101755.w4AHtPRt028900@repo.freebsd.org> --K6lc1k7FuwMslycaTn9PRkU3NshFEX5zy Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 5/10/2018 10:55 AM, Matt Macy wrote: > Author: mmacy > Date: Thu May 10 17:55:24 2018 > New Revision: 333466 > URL: https://svnweb.freebsd.org/changeset/base/333466 >=20 > Log: > Add simple preempt safe epoch API > =20 > Read locking is over used in the kernel to guarantee liveness. This A= PI makes > it easy to provide livenes guarantees without atomics. > =20 > Includes epoch_test kernel module to stress test the API. > =20 > Documentation will follow initial use case. > =20 > Test case and improvements to preemption handling in response to disc= ussion > with mjg@ > =20 > Reviewed by: imp@, shurd@ > Approved by: sbruno@ >=20 > Added: > head/sys/kern/subr_epoch.c (contents, props changed) > head/sys/modules/epoch_test/ > head/sys/modules/epoch_test/Makefile (contents, props changed) > head/sys/sys/epoch.h (contents, props changed) > head/sys/tests/epoch/ > head/sys/tests/epoch/epoch_test.c (contents, props changed) > Modified: > head/contrib/bmake/job.c > head/sys/conf/files > head/sys/conf/kern.pre.mk > head/sys/kern/kern_malloc.c > head/sys/kern/kern_synch.c > head/sys/kern/subr_trap.c > head/sys/kern/subr_turnstile.c > head/sys/sys/proc.h > head/sys/sys/turnstile.h >=20 > Modified: head/contrib/bmake/job.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/contrib/bmake/job.c Thu May 10 17:22:04 2018 (r333465) > +++ head/contrib/bmake/job.c Thu May 10 17:55:24 2018 (r333466) > @@ -2121,13 +2121,15 @@ Job_CatchOutput(void) > { > int nready; > Job *job; > - int i; > + int i, pollToken; > =20 > (void)fflush(stdout); > =20 > + pollToken =3D 0; > + > /* The first fd in the list is the job token pipe */ > do { > - nready =3D poll(fds + 1 - wantToken, nfds - 1 + wantToken, POLL_MSEC)= ; > + nready =3D poll(fds + 1 - pollToken, nfds - 1 + pollToken, POLL_MSEC)= ; > } while (nready < 0 && errno =3D=3D EINTR); > =20 > if (nready < 0) What's up with this? --=20 Regards, Bryan Drewery --K6lc1k7FuwMslycaTn9PRkU3NshFEX5zy-- --4m8qGsDiR6YJXiwGkNEDrRpLMPQENygIS Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJa9fleAAoJEDXXcbtuRpfPVA4H+wVTeyIGXUx/0uiIHMFShMlR +i4AsH/Eg7bSlSS3Rl4/7YpviUQFOSOElrZ9mPdeVpRZVCxZDG/VpCZDUkOqbA2p YnjyOxVf5lxufgrun2TqZIYjwGsq6pnHbQmAY8gWJLUyYa3HprNJ/SHqhmB4dBNc hcnwy3XfoxDMALrpKigt/OxDap0KrqtmdbYuQ34upB1bWKhDqQ8a6o3vyE3tT0sK 2SiiBFIKYpfq6Nd7b9ZIli7IH2WqSvNh/8cmCIZjJHxa2EBa0D9AyFx4pLm65Ldn d+hHULY1djYd4G51tMcUxaY1oQhscHzIkgAfzFgaKTkT5GBPz2Xeesr5EMuD/I0= =aCXl -----END PGP SIGNATURE----- --4m8qGsDiR6YJXiwGkNEDrRpLMPQENygIS-- From owner-svn-src-head@freebsd.org Fri May 11 20:22:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B344FCAD4F; Fri, 11 May 2018 20:22:48 +0000 (UTC) (envelope-from matt.joras@gmail.com) Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8CC158748C; Fri, 11 May 2018 20:22:47 +0000 (UTC) (envelope-from matt.joras@gmail.com) Received: by mail-wr0-x244.google.com with SMTP id o4-v6so6476860wrm.0; Fri, 11 May 2018 13:22:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=C02ovejBLhwR1BuJH32csePKAUUVSgHSz21H5LmhG7M=; b=b1/rg88pYI2PfoJoxlWNnr5fUxx8tQL0CaoFburJ0tZ1WFDuFz2y7zdjH9XiiuxQti TLp4UnGSyjzGlPp6hU9ireZ9f9rPYzYL1M5pjrDYfd4OIT75ECHVbATajUnyC49yQYC0 taD7xoGmZEKTqrlFGfIRAhXi98q/ruWG1sHUekUSUQbZhdi3b0Nv3jHaCY4lC08YOc51 /Q5a60LLHlfs9N+yNIVPxBGgVdON2mGZJ855p5msjo17laVOxMZMTMNxAnez0VhjBZK2 mDzEv0Hg0kJGNyXuXQelWlP8GqlQ78ikbmMRKP0I74dh5R70FD1FYpIWYfzNbpRNrGhm jiBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=C02ovejBLhwR1BuJH32csePKAUUVSgHSz21H5LmhG7M=; b=Jcp2XtH5zRDntY0fp+eJ4/eXly/9NrsqMa28yVhXZDdH2zrY0umSgHQYsBa8kQZiQT 9DmQPeVqqOJFp08UHV3HGL9eeihOTb2yadi3N3lMhe55O7bFjC9YMj+vWMVRQizK2E6Y egIGClOsjcxntepOd03z73JpKoD71oUNNM4ok851an5tXW35LiQ6iDZ9Ap9ZbxjSbSBs qv2UeeYyVdR6YWXOl33uipG4hPDASqwVWF9YGxMduhjBDP/61ZyRrT5hmYNLMAl7Yy6y ieKvdHdIMtzlOyuTvt8lJ91VszPDhm5QikrK5xbyFf1NkzAPO+xfygzslGXwz3YQdQkS uHgQ== X-Gm-Message-State: ALKqPweatA33vv/a1X4oNPv8OHuEOuKbnhK42sgUlWKqerRUjlEmlHMm U4gMdYhZMW+V18Ggi0mJ9GUqyDh7CQYSyDQ82+Vm34dQ X-Google-Smtp-Source: AB8JxZrQnvsHDFmQiPnu5QeA9+mqbIzJzAUqo4ZFLuxYEjA5HGGNClMD4hM1JFp0zsTaPwPt1ESfxwMtgrXY7lu+VkA= X-Received: by 2002:adf:8505:: with SMTP id 5-v6mr296417wrh.77.1526070166174; Fri, 11 May 2018 13:22:46 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.187.14 with HTTP; Fri, 11 May 2018 13:22:45 -0700 (PDT) In-Reply-To: <492b8199-036c-a336-845f-3cb02d4e9758@FreeBSD.org> References: <201805101755.w4AHtPRt028900@repo.freebsd.org> <492b8199-036c-a336-845f-3cb02d4e9758@FreeBSD.org> From: Matt Joras Date: Fri, 11 May 2018 13:22:45 -0700 Message-ID: Subject: Re: svn commit: r333466 - in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch To: Bryan Drewery Cc: Matt Macy , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 20:22:48 -0000 On Fri, May 11, 2018 at 1:13 PM, Bryan Drewery wrote: > On 5/10/2018 10:55 AM, Matt Macy wrote: >> Author: mmacy >> Date: Thu May 10 17:55:24 2018 >> New Revision: 333466 >> URL: https://svnweb.freebsd.org/changeset/base/333466 >> >> Log: >> Add simple preempt safe epoch API >> >> Read locking is over used in the kernel to guarantee liveness. This API makes >> it easy to provide livenes guarantees without atomics. >> >> Includes epoch_test kernel module to stress test the API. >> >> Documentation will follow initial use case. >> >> Test case and improvements to preemption handling in response to discussion >> with mjg@ >> >> Reviewed by: imp@, shurd@ >> Approved by: sbruno@ >> >> Added: >> head/sys/kern/subr_epoch.c (contents, props changed) >> head/sys/modules/epoch_test/ >> head/sys/modules/epoch_test/Makefile (contents, props changed) >> head/sys/sys/epoch.h (contents, props changed) >> head/sys/tests/epoch/ >> head/sys/tests/epoch/epoch_test.c (contents, props changed) >> Modified: >> head/contrib/bmake/job.c >> head/sys/conf/files >> head/sys/conf/kern.pre.mk >> head/sys/kern/kern_malloc.c >> head/sys/kern/kern_synch.c >> head/sys/kern/subr_trap.c >> head/sys/kern/subr_turnstile.c >> head/sys/sys/proc.h >> head/sys/sys/turnstile.h >> >> Modified: head/contrib/bmake/job.c >> ============================================================================== >> --- head/contrib/bmake/job.c Thu May 10 17:22:04 2018 (r333465) >> +++ head/contrib/bmake/job.c Thu May 10 17:55:24 2018 (r333466) >> @@ -2121,13 +2121,15 @@ Job_CatchOutput(void) >> { >> int nready; >> Job *job; >> - int i; >> + int i, pollToken; >> >> (void)fflush(stdout); >> >> + pollToken = 0; >> + >> /* The first fd in the list is the job token pipe */ >> do { >> - nready = poll(fds + 1 - wantToken, nfds - 1 + wantToken, POLL_MSEC); >> + nready = poll(fds + 1 - pollToken, nfds - 1 + pollToken, POLL_MSEC); >> } while (nready < 0 && errno == EINTR); >> >> if (nready < 0) > > What's up with this? https://svnweb.freebsd.org/changeset/base/333467 > > -- > Regards, > Bryan Drewery > From owner-svn-src-head@freebsd.org Fri May 11 20:23:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2CA6FFCAE6D; Fri, 11 May 2018 20:23:57 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CC525875F6; Fri, 11 May 2018 20:23:56 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f48.google.com (mail-it0-f48.google.com [209.85.214.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 952B81E8BD; Fri, 11 May 2018 20:23:56 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f48.google.com with SMTP id p3-v6so3491651itc.0; Fri, 11 May 2018 13:23:56 -0700 (PDT) X-Gm-Message-State: ALKqPwcBL7RD4JJKCdrIfP8E4X4+i6KH+/CdZYcnwrCOWs4MvcPEkxjP 7w5v3YIWGdQhxIWslzVuPxtgxNK06UGehe7Eei8= X-Google-Smtp-Source: AB8JxZoOX/t/76Dii5kbGvDlVYSuerSaap6ForXSAumSrVfZ447eChaHBZScmBDMyKdecVL6e8B9w4WHDsYmLg7Dxn8= X-Received: by 2002:a24:5b54:: with SMTP id g81-v6mr4807291itb.7.1526070235953; Fri, 11 May 2018 13:23:55 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:3e4a:0:0:0:0:0 with HTTP; Fri, 11 May 2018 13:23:55 -0700 (PDT) In-Reply-To: <492b8199-036c-a336-845f-3cb02d4e9758@FreeBSD.org> References: <201805101755.w4AHtPRt028900@repo.freebsd.org> <492b8199-036c-a336-845f-3cb02d4e9758@FreeBSD.org> From: Matthew Macy Date: Fri, 11 May 2018 13:23:55 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333466 - in head: contrib/bmake sys/conf sys/kern sys/modules/epoch_test sys/sys sys/tests/epoch To: Bryan Drewery Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 20:23:57 -0000 It fixes something that is completely broken in bmake that everyone in the know patches on their local systems. It was included by accident. I immediately backed it out in the subsequent commit. On Fri, May 11, 2018 at 1:13 PM, Bryan Drewery wrote: > On 5/10/2018 10:55 AM, Matt Macy wrote: >> Author: mmacy >> Date: Thu May 10 17:55:24 2018 >> New Revision: 333466 >> URL: https://svnweb.freebsd.org/changeset/base/333466 >> >> Log: >> Add simple preempt safe epoch API >> >> Read locking is over used in the kernel to guarantee liveness. This API makes >> it easy to provide livenes guarantees without atomics. >> >> Includes epoch_test kernel module to stress test the API. >> >> Documentation will follow initial use case. >> >> Test case and improvements to preemption handling in response to discussion >> with mjg@ >> >> Reviewed by: imp@, shurd@ >> Approved by: sbruno@ >> >> Added: >> head/sys/kern/subr_epoch.c (contents, props changed) >> head/sys/modules/epoch_test/ >> head/sys/modules/epoch_test/Makefile (contents, props changed) >> head/sys/sys/epoch.h (contents, props changed) >> head/sys/tests/epoch/ >> head/sys/tests/epoch/epoch_test.c (contents, props changed) >> Modified: >> head/contrib/bmake/job.c >> head/sys/conf/files >> head/sys/conf/kern.pre.mk >> head/sys/kern/kern_malloc.c >> head/sys/kern/kern_synch.c >> head/sys/kern/subr_trap.c >> head/sys/kern/subr_turnstile.c >> head/sys/sys/proc.h >> head/sys/sys/turnstile.h >> >> Modified: head/contrib/bmake/job.c >> ============================================================================== >> --- head/contrib/bmake/job.c Thu May 10 17:22:04 2018 (r333465) >> +++ head/contrib/bmake/job.c Thu May 10 17:55:24 2018 (r333466) >> @@ -2121,13 +2121,15 @@ Job_CatchOutput(void) >> { >> int nready; >> Job *job; >> - int i; >> + int i, pollToken; >> >> (void)fflush(stdout); >> >> + pollToken = 0; >> + >> /* The first fd in the list is the job token pipe */ >> do { >> - nready = poll(fds + 1 - wantToken, nfds - 1 + wantToken, POLL_MSEC); >> + nready = poll(fds + 1 - pollToken, nfds - 1 + pollToken, POLL_MSEC); >> } while (nready < 0 && errno == EINTR); >> >> if (nready < 0) > > What's up with this? > > -- > Regards, > Bryan Drewery > From owner-svn-src-head@freebsd.org Fri May 11 20:47:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67D50FCC4E6; Fri, 11 May 2018 20:47:46 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 098B86D3E8; Fri, 11 May 2018 20:47:46 +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 D55BF14A68; Fri, 11 May 2018 20:47: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 w4BKljsY058211; Fri, 11 May 2018 20:47:45 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BKljp7058210; Fri, 11 May 2018 20:47:45 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805112047.w4BKljp7058210@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 11 May 2018 20:47:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333504 - head/sys/i386/include X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/i386/include X-SVN-Commit-Revision: 333504 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 20:47:46 -0000 Author: kib Date: Fri May 11 20:47:45 2018 New Revision: 333504 URL: https://svnweb.freebsd.org/changeset/base/333504 Log: Remove dead declaration. Sponsored by: The FreeBSD Foundation MFC after: 3 days Modified: head/sys/i386/include/pcb_ext.h Modified: head/sys/i386/include/pcb_ext.h ============================================================================== --- head/sys/i386/include/pcb_ext.h Fri May 11 20:40:26 2018 (r333503) +++ head/sys/i386/include/pcb_ext.h Fri May 11 20:47:45 2018 (r333504) @@ -46,10 +46,7 @@ struct pcb_ext { }; #ifdef _KERNEL -extern int private_tss; - int i386_extend_pcb(struct thread *); - #endif #endif /* _I386_PCB_EXT_H_ */ From owner-svn-src-head@freebsd.org Fri May 11 21:42:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C2FE3FCF373; Fri, 11 May 2018 21:42:28 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 534E579E48; Fri, 11 May 2018 21:42:28 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 357B71540E; Fri, 11 May 2018 21:42:28 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BLgR69088068; Fri, 11 May 2018 21:42:27 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BLgRK6088066; Fri, 11 May 2018 21:42:27 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805112142.w4BLgRK6088066@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Fri, 11 May 2018 21:42:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333505 - in head/sys: netinet netinet6 X-SVN-Group: head X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: in head/sys: netinet netinet6 X-SVN-Commit-Revision: 333505 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 21:42:29 -0000 Author: shurd Date: Fri May 11 21:42:27 2018 New Revision: 333505 URL: https://svnweb.freebsd.org/changeset/base/333505 Log: Fix LORs in in6?_leave_group() r333175 updated the join_group functions, but not the leave_group ones. Reviewed by: sbruno Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15393 Modified: head/sys/netinet/in_mcast.c head/sys/netinet6/in6_mcast.c Modified: head/sys/netinet/in_mcast.c ============================================================================== --- head/sys/netinet/in_mcast.c Fri May 11 20:47:45 2018 (r333504) +++ head/sys/netinet/in_mcast.c Fri May 11 21:42:27 2018 (r333505) @@ -2501,6 +2501,8 @@ inp_leave_group(struct inpcb *inp, struct sockopt *sop /* * Begin state merge transaction at IGMP layer. */ + in_pcbref(inp); + INP_WUNLOCK(inp); IN_MULTI_LOCK(); if (is_final) { @@ -2531,6 +2533,9 @@ inp_leave_group(struct inpcb *inp, struct sockopt *sop out_in_multi_locked: IN_MULTI_UNLOCK(); + INP_WLOCK(inp); + if (in_pcbrele_wlocked(inp)) + return (ENXIO); if (error) imf_rollback(imf); Modified: head/sys/netinet6/in6_mcast.c ============================================================================== --- head/sys/netinet6/in6_mcast.c Fri May 11 20:47:45 2018 (r333504) +++ head/sys/netinet6/in6_mcast.c Fri May 11 21:42:27 2018 (r333505) @@ -2381,6 +2381,8 @@ in6p_leave_group(struct inpcb *inp, struct sockopt *so /* * Begin state merge transaction at MLD layer. */ + in_pcbref(inp); + INP_WUNLOCK(inp); IN6_MULTI_LOCK(); if (is_final) { @@ -2407,6 +2409,9 @@ in6p_leave_group(struct inpcb *inp, struct sockopt *so } IN6_MULTI_UNLOCK(); + INP_WLOCK(inp); + if (in_pcbrele_wlocked(inp)) + return (ENXIO); if (error) im6f_rollback(imf); From owner-svn-src-head@freebsd.org Fri May 11 21:56:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C44BAFCFE36; Fri, 11 May 2018 21:56:02 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7444A7CE37; Fri, 11 May 2018 21:56:02 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5428D155B1; Fri, 11 May 2018 21:56:02 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BLu2xe093190; Fri, 11 May 2018 21:56:02 GMT (envelope-from jilles@FreeBSD.org) Received: (from jilles@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BLu2HD093189; Fri, 11 May 2018 21:56:02 GMT (envelope-from jilles@FreeBSD.org) Message-Id: <201805112156.w4BLu2HD093189@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jilles set sender to jilles@FreeBSD.org using -f From: Jilles Tjoelker Date: Fri, 11 May 2018 21:56:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333507 - head/bin/sh/tests/parser X-SVN-Group: head X-SVN-Commit-Author: jilles X-SVN-Commit-Paths: head/bin/sh/tests/parser X-SVN-Commit-Revision: 333507 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 21:56:02 -0000 Author: jilles Date: Fri May 11 21:56:01 2018 New Revision: 333507 URL: https://svnweb.freebsd.org/changeset/base/333507 Log: sh: Test that backslash-newline within single-quotes is not special This works correctly, but the test may be helpful when modifying the parser. Added: head/bin/sh/tests/parser/line-cont12.0 (contents, props changed) Modified: head/bin/sh/tests/parser/Makefile Modified: head/bin/sh/tests/parser/Makefile ============================================================================== --- head/bin/sh/tests/parser/Makefile Fri May 11 21:46:53 2018 (r333506) +++ head/bin/sh/tests/parser/Makefile Fri May 11 21:56:01 2018 (r333507) @@ -74,6 +74,7 @@ ${PACKAGE}FILES+= line-cont8.0 ${PACKAGE}FILES+= line-cont9.0 ${PACKAGE}FILES+= line-cont10.0 ${PACKAGE}FILES+= line-cont11.0 +${PACKAGE}FILES+= line-cont12.0 ${PACKAGE}FILES+= no-space1.0 ${PACKAGE}FILES+= no-space2.0 ${PACKAGE}FILES+= nul1.0 Added: head/bin/sh/tests/parser/line-cont12.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/bin/sh/tests/parser/line-cont12.0 Fri May 11 21:56:01 2018 (r333507) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +[ '\ +' = "\\ +" ] From owner-svn-src-head@freebsd.org Fri May 11 22:16:25 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F73EFD0B9B; Fri, 11 May 2018 22:16:25 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F27BA82634; Fri, 11 May 2018 22:16:24 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D3FDC158E8; Fri, 11 May 2018 22:16:24 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BMGO6v003772; Fri, 11 May 2018 22:16:24 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BMGOV8003768; Fri, 11 May 2018 22:16:24 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201805112216.w4BMGOV8003768@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Fri, 11 May 2018 22:16:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333508 - in head/sys/fs: nfs nfsserver X-SVN-Group: head X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in head/sys/fs: nfs nfsserver X-SVN-Commit-Revision: 333508 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 22:16:25 -0000 Author: rmacklem Date: Fri May 11 22:16:23 2018 New Revision: 333508 URL: https://svnweb.freebsd.org/changeset/base/333508 Log: Add support for the TestStateID operation to the NFSv4.1 server. The Linux client now uses the TestStateID operation, so this patch adds support for it to the NFSv4.1 server. The FreeBSD client never uses this operation, so it should not be affected. MFC after: 2 months Modified: head/sys/fs/nfs/nfs_var.h head/sys/fs/nfsserver/nfs_nfsdserv.c head/sys/fs/nfsserver/nfs_nfsdsocket.c head/sys/fs/nfsserver/nfs_nfsdstate.c Modified: head/sys/fs/nfs/nfs_var.h ============================================================================== --- head/sys/fs/nfs/nfs_var.h Fri May 11 21:56:01 2018 (r333507) +++ head/sys/fs/nfs/nfs_var.h Fri May 11 22:16:23 2018 (r333508) @@ -98,6 +98,7 @@ int nfsrv_getclient(nfsquad_t, int, struct nfsclient * int nfsrv_destroyclient(nfsquad_t, NFSPROC_T *); int nfsrv_destroysession(struct nfsrv_descript *, uint8_t *); int nfsrv_freestateid(struct nfsrv_descript *, nfsv4stateid_t *, NFSPROC_T *); +int nfsrv_teststateid(struct nfsrv_descript *, nfsv4stateid_t *, NFSPROC_T *); int nfsrv_adminrevoke(struct nfsd_clid *, NFSPROC_T *); void nfsrv_dumpclients(struct nfsd_dumpclients *, int); void nfsrv_dumplocks(vnode_t, struct nfsd_dumplocks *, int, NFSPROC_T *); @@ -235,6 +236,8 @@ int nfsrvd_destroyclientid(struct nfsrv_descript *, in int nfsrvd_destroysession(struct nfsrv_descript *, int, vnode_t, NFSPROC_T *, struct nfsexstuff *); int nfsrvd_freestateid(struct nfsrv_descript *, int, + vnode_t, NFSPROC_T *, struct nfsexstuff *); +int nfsrvd_teststateid(struct nfsrv_descript *, int, vnode_t, NFSPROC_T *, struct nfsexstuff *); int nfsrvd_notsupp(struct nfsrv_descript *, int, vnode_t, NFSPROC_T *, struct nfsexstuff *); Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdserv.c Fri May 11 21:56:01 2018 (r333507) +++ head/sys/fs/nfsserver/nfs_nfsdserv.c Fri May 11 22:16:23 2018 (r333508) @@ -4101,6 +4101,50 @@ nfsmout: } /* + * nfsv4 test stateid service + */ +APPLESTATIC int +nfsrvd_teststateid(struct nfsrv_descript *nd, __unused int isdgram, + __unused vnode_t vp, NFSPROC_T *p, __unused struct nfsexstuff *exp) +{ + uint32_t *tl; + nfsv4stateid_t *stateidp = NULL, *tstateidp; + int cnt, error = 0, i, ret; + + if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) { + nd->nd_repstat = NFSERR_WRONGSEC; + goto nfsmout; + } + NFSM_DISSECT(tl, uint32_t *, NFSX_UNSIGNED); + cnt = fxdr_unsigned(int, *tl); + if (cnt <= 0 || cnt > 1024) { + nd->nd_repstat = NFSERR_BADXDR; + goto nfsmout; + } + stateidp = mallocarray(cnt, sizeof(nfsv4stateid_t), M_TEMP, M_WAITOK); + tstateidp = stateidp; + for (i = 0; i < cnt; i++) { + NFSM_DISSECT(tl, uint32_t *, NFSX_STATEID); + tstateidp->seqid = fxdr_unsigned(uint32_t, *tl++); + NFSBCOPY(tl, tstateidp->other, NFSX_STATEIDOTHER); + tstateidp++; + } + NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED); + *tl = txdr_unsigned(cnt); + tstateidp = stateidp; + for (i = 0; i < cnt; i++) { + ret = nfsrv_teststateid(nd, tstateidp, p); + NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED); + *tl = txdr_unsigned(ret); + tstateidp++; + } +nfsmout: + free(stateidp, M_TEMP); + NFSEXITCODE2(error, nd); + return (error); +} + +/* * nfsv4 service not supported */ APPLESTATIC int Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdsocket.c Fri May 11 21:56:01 2018 (r333507) +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Fri May 11 22:16:23 2018 (r333508) @@ -192,7 +192,7 @@ int (*nfsrv4_ops0[NFSV41_NOPS])(struct nfsrv_descript nfsrvd_notsupp, nfsrvd_sequence, nfsrvd_notsupp, - nfsrvd_notsupp, + nfsrvd_teststateid, nfsrvd_notsupp, nfsrvd_destroyclientid, nfsrvd_reclaimcomplete, Modified: head/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdstate.c Fri May 11 21:56:01 2018 (r333507) +++ head/sys/fs/nfsserver/nfs_nfsdstate.c Fri May 11 22:16:23 2018 (r333508) @@ -6050,6 +6050,32 @@ nfsrv_freestateid(struct nfsrv_descript *nd, nfsv4stat } /* + * Test a stateid. + */ +int +nfsrv_teststateid(struct nfsrv_descript *nd, nfsv4stateid_t *stateidp, + NFSPROC_T *p) +{ + struct nfsclient *clp; + struct nfsstate *stp; + int error; + + NFSLOCKSTATE(); + /* + * Look up the stateid + */ + error = nfsrv_getclient((nfsquad_t)((u_quad_t)0), CLOPS_RENEW, &clp, + NULL, (nfsquad_t)((u_quad_t)0), 0, nd, p); + if (error == 0) + error = nfsrv_getstate(clp, stateidp, 0, &stp); + if (error == 0 && stateidp->seqid != 0 && + SEQ_LT(stateidp->seqid, stp->ls_stateid.seqid)) + error = NFSERR_OLDSTATEID; + NFSUNLOCKSTATE(); + return (error); +} + +/* * Generate the xdr for an NFSv4.1 CBSequence Operation. */ static int From owner-svn-src-head@freebsd.org Sat May 12 00:54:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11C5AFD8262; Sat, 12 May 2018 00:54:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BAF7C86799; Sat, 12 May 2018 00:54:23 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 8447E203CF; Sat, 12 May 2018 00:54:23 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: Warner Losh Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333443 - in head/sys: conf libkern powerpc/powerpc Date: Fri, 11 May 2018 16:59:42 -0700 Message-ID: <4083882.oFdOPrZQmh@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201805100231.w4A2VcZi054268@repo.freebsd.org> References: <201805100231.w4A2VcZi054268@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 00:54:24 -0000 On Thursday, May 10, 2018 02:31:38 AM Warner Losh wrote: > Author: imp > Date: Thu May 10 02:31:38 2018 > New Revision: 333443 > URL: https://svnweb.freebsd.org/changeset/base/333443 > > Log: > Move MI-ish bcopy routine to libkern > > riscv and powerpc have nearly identical bcopy.c that's > supposed to be mostly MI. Move it to the MI libkern. > > Differential Revision: https://reviews.freebsd.org/D15374 > > Added: > head/sys/libkern/bcopy.c (contents, props changed) > - copied, changed from r333436, head/sys/powerpc/powerpc/bcopy.c > Deleted: > head/sys/powerpc/powerpc/bcopy.c > Modified: Hmm, is sys/riscv/riscv/bcopy.c still in the tree? -- John Baldwin From owner-svn-src-head@freebsd.org Sat May 12 00:54:25 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF8D1FD8283; Sat, 12 May 2018 00:54:25 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 10873867C4; Sat, 12 May 2018 00:54:25 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id ADD8C203D0; Sat, 12 May 2018 00:54:24 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: Eitan Adler Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333482 - head/usr.bin/expand Date: Fri, 11 May 2018 16:57:06 -0700 Message-ID: <69414035.0kMiKCF10F@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201805110655.w4B6t3sH032476@repo.freebsd.org> References: <201805110655.w4B6t3sH032476@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 00:54:26 -0000 On Friday, May 11, 2018 06:55:03 AM Eitan Adler wrote: > Author: eadler > Date: Fri May 11 06:55:02 2018 > New Revision: 333482 > URL: https://svnweb.freebsd.org/changeset/base/333482 > > Log: > [expand] add __dead2 annotation to usage Can't any modern compiler infer this already from the call to exit() at the end? -- John Baldwin From owner-svn-src-head@freebsd.org Sat May 12 01:08:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE450FD8C7D; Sat, 12 May 2018 01:08:27 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A1BAE699B3; Sat, 12 May 2018 01:08:27 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 689A7204CA; Sat, 12 May 2018 01:08:27 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: Xin LI Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333449 - in head: etc/rc.d lib/libc/db/mpool lib/libc/gen lib/libc/string lib/libc/sys lib/libz share/man/man3 share/man/man5 sys/libkern usr.bin/gzip usr.bin/ident usr.sbin/fstyp usr.... Date: Fri, 11 May 2018 16:54:33 -0700 Message-ID: <1786742.HNbbibzSju@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201805100641.w4A6f9Ur083940@repo.freebsd.org> References: <201805100641.w4A6f9Ur083940@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 01:08:28 -0000 On Thursday, May 10, 2018 06:41:09 AM Xin LI wrote: > Author: delphij > Date: Thu May 10 06:41:08 2018 > New Revision: 333449 > URL: https://svnweb.freebsd.org/changeset/base/333449 > > Log: > Remove "All rights reserved" from my files. > > See r333391 for the rationale. Some of these have multiple authors. Did you have the consent of the other authors in those cases? > Modified: head/etc/rc.d/hostid > ============================================================================== > --- head/etc/rc.d/hostid Thu May 10 06:33:54 2018 (r333448) > +++ head/etc/rc.d/hostid Thu May 10 06:41:08 2018 (r333449) > @@ -2,7 +2,6 @@ > # > # Copyright (c) 2007 Pawel Jakub Dawidek > # Copyright (c) 2015 Xin LI > -# All rights reserved. > # > # Redistribution and use in source and binary forms, with or without > # modification, are permitted provided that the following conditions > > Modified: head/share/man/man5/tmpfs.5 > ============================================================================== > --- head/share/man/man5/tmpfs.5 Thu May 10 06:33:54 2018 (r333448) > +++ head/share/man/man5/tmpfs.5 Thu May 10 06:41:08 2018 (r333449) > @@ -1,7 +1,6 @@ > .\"- > .\" Copyright (c) 2007 Xin LI > .\" Copyright (c) 2017 The FreeBSD Foundation, Inc. > -.\" All rights reserved. > .\" > .\" Part of this documentation was written by > .\" Konstantin Belousov under sponsorship > > Modified: head/usr.bin/ident/ident.c > ============================================================================== > --- head/usr.bin/ident/ident.c Thu May 10 06:33:54 2018 (r333448) > +++ head/usr.bin/ident/ident.c Thu May 10 06:41:08 2018 (r333449) > @@ -1,7 +1,6 @@ > /*- > * Copyright (c) 2015 Baptiste Daroussin > * Copyright (c) 2015 Xin LI > - * All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > > Modified: head/usr.sbin/fstyp/zfs.c > ============================================================================== > --- head/usr.sbin/fstyp/zfs.c Thu May 10 06:33:54 2018 (r333448) > +++ head/usr.sbin/fstyp/zfs.c Thu May 10 06:41:08 2018 (r333449) > @@ -1,7 +1,6 @@ > /*- > * Copyright (c) 2015 Allan Jude > * Copyright (c) 2015 Xin LI > - * All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > -- John Baldwin From owner-svn-src-head@freebsd.org Sat May 12 01:26:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65ED6FDA067; Sat, 12 May 2018 01:26:36 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 13F016CEFD; Sat, 12 May 2018 01:26:36 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CEC7217853; Sat, 12 May 2018 01:26:35 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C1QZAJ097973; Sat, 12 May 2018 01:26:35 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C1QYMu097965; Sat, 12 May 2018 01:26:34 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805120126.w4C1QYMu097965@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Sat, 12 May 2018 01:26:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333509 - in head/sys: dev/hwpmc kern sys X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: dev/hwpmc kern sys X-SVN-Commit-Revision: 333509 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 01:26:36 -0000 Author: mmacy Date: Sat May 12 01:26:34 2018 New Revision: 333509 URL: https://svnweb.freebsd.org/changeset/base/333509 Log: hwpmc(9): Make pmclog buffer pcpu and update constants On non-trivial SMP systems the contention on the pmc_owner mutex leads to a substantial number of samples captured being from the pmc process itself. This change a) makes buffers larger to avoid contention on the global list b) makes the working sample buffer per cpu. Run pmcstat in the background (default event rate of 64k): pmcstat -S UNHALTED_CORE_CYCLES -O /dev/null sleep 600 & Before: make -j96 buildkernel -s >&/dev/null 3336.68s user 24684.10s system 7442% cpu 6:16.50 total After: make -j96 buildkernel -s >&/dev/null 2697.82s user 1347.35s system 6058% cpu 1:06.77 total For more realistic overhead measurement set the sample rate for ~2khz on a 2.1Ghz processor: pmcstat -n 1050000 -S UNHALTED_CORE_CYCLES -O /dev/null sleep 6000 & Collecting 10 samples of `make -j96 buildkernel` from each: x before + after real time: N Min Max Median Avg Stddev x 10 76.4 127.62 84.845 88.577 15.100031 + 10 59.71 60.79 60.135 60.179 0.29957192 Difference at 95.0% confidence -28.398 +/- 10.0344 -32.0602% +/- 7.69825% (Student's t, pooled s = 10.6794) system time: N Min Max Median Avg Stddev x 10 2277.96 6948.53 2949.47 3341.492 1385.2677 + 10 1038.7 1081.06 1070.555 1064.017 15.85404 Difference at 95.0% confidence -2277.47 +/- 920.425 -68.1574% +/- 8.77623% (Student's t, pooled s = 979.596) x no pmc + pmc running real time: HEAD: N Min Max Median Avg Stddev x 10 58.38 59.15 58.86 58.847 0.22504567 + 10 76.4 127.62 84.845 88.577 15.100031 Difference at 95.0% confidence 29.73 +/- 10.0335 50.5208% +/- 17.0525% (Student's t, pooled s = 10.6785) patched: N Min Max Median Avg Stddev x 10 58.38 59.15 58.86 58.847 0.22504567 + 10 59.71 60.79 60.135 60.179 0.29957192 Difference at 95.0% confidence 1.332 +/- 0.248939 2.2635% +/- 0.426506% (Student's t, pooled s = 0.264942) system time: HEAD: N Min Max Median Avg Stddev x 10 1010.15 1073.31 1025.465 1031.524 18.135705 + 10 2277.96 6948.53 2949.47 3341.492 1385.2677 Difference at 95.0% confidence 2309.97 +/- 920.443 223.937% +/- 89.3039% (Student's t, pooled s = 979.616) patched: N Min Max Median Avg Stddev x 10 1010.15 1073.31 1025.465 1031.524 18.135705 + 10 1038.7 1081.06 1070.555 1064.017 15.85404 Difference at 95.0% confidence 32.493 +/- 16.0042 3.15% +/- 1.5794% (Student's t, pooled s = 17.0331) Reviewed by: jeff@ Approved by: sbruno@ Differential Revision: https://reviews.freebsd.org/D15155 Modified: head/sys/dev/hwpmc/hwpmc_amd.c head/sys/dev/hwpmc/hwpmc_core.c head/sys/dev/hwpmc/hwpmc_e500.c head/sys/dev/hwpmc/hwpmc_intel.c head/sys/dev/hwpmc/hwpmc_logging.c head/sys/dev/hwpmc/hwpmc_mod.c head/sys/dev/hwpmc/hwpmc_mpc7xxx.c head/sys/dev/hwpmc/hwpmc_piv.c head/sys/dev/hwpmc/hwpmc_ppc970.c head/sys/dev/hwpmc/hwpmc_ppro.c head/sys/dev/hwpmc/hwpmc_soft.c head/sys/kern/kern_pmc.c head/sys/sys/pmc.h head/sys/sys/pmckern.h Modified: head/sys/dev/hwpmc/hwpmc_amd.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_amd.c Fri May 11 22:16:23 2018 (r333508) +++ head/sys/dev/hwpmc/hwpmc_amd.c Sat May 12 01:26:34 2018 (r333509) @@ -694,8 +694,10 @@ amd_intr(int cpu, struct trapframe *tf) wrmsr(evsel, config); } - atomic_add_int(retval ? &pmc_stats.pm_intr_processed : - &pmc_stats.pm_intr_ignored, 1); + if (retval) + counter_u64_add(pmc_stats.pm_intr_processed, 1); + else + counter_u64_add(pmc_stats.pm_intr_ignored, 1); PMCDBG1(MDP,INT,2, "retval=%d", retval); return (retval); Modified: head/sys/dev/hwpmc/hwpmc_core.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_core.c Fri May 11 22:16:23 2018 (r333508) +++ head/sys/dev/hwpmc/hwpmc_core.c Sat May 12 01:26:34 2018 (r333509) @@ -2831,8 +2831,10 @@ core_intr(int cpu, struct trapframe *tf) if (found_interrupt) lapic_reenable_pmc(); - atomic_add_int(found_interrupt ? &pmc_stats.pm_intr_processed : - &pmc_stats.pm_intr_ignored, 1); + if (found_interrupt) + counter_u64_add(pmc_stats.pm_intr_processed, 1); + else + counter_u64_add(pmc_stats.pm_intr_ignored, 1); return (found_interrupt); } @@ -2896,6 +2898,7 @@ core2_intr(int cpu, struct trapframe *tf) error = pmc_process_interrupt(cpu, PMC_HR, pm, tf, TRAPF_USERMODE(tf)); + if (error) intrenable &= ~flag; @@ -2955,8 +2958,10 @@ core2_intr(int cpu, struct trapframe *tf) if (found_interrupt) lapic_reenable_pmc(); - atomic_add_int(found_interrupt ? &pmc_stats.pm_intr_processed : - &pmc_stats.pm_intr_ignored, 1); + if (found_interrupt) + counter_u64_add(pmc_stats.pm_intr_processed, 1); + else + counter_u64_add(pmc_stats.pm_intr_ignored, 1); return (found_interrupt); } Modified: head/sys/dev/hwpmc/hwpmc_e500.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_e500.c Fri May 11 22:16:23 2018 (r333508) +++ head/sys/dev/hwpmc/hwpmc_e500.c Sat May 12 01:26:34 2018 (r333509) @@ -616,8 +616,10 @@ e500_intr(int cpu, struct trapframe *tf) e500_write_pmc(cpu, i, pm->pm_sc.pm_reloadcount); } - atomic_add_int(retval ? &pmc_stats.pm_intr_processed : - &pmc_stats.pm_intr_ignored, 1); + if (retval) + counter_u64_add(pmc_stats.pm_intr_processed, 1); + else + counter_u64_add(pmc_stats.pm_intr_ignored, 1); /* Re-enable PERF exceptions. */ if (retval) Modified: head/sys/dev/hwpmc/hwpmc_intel.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_intel.c Fri May 11 22:16:23 2018 (r333508) +++ head/sys/dev/hwpmc/hwpmc_intel.c Sat May 12 01:26:34 2018 (r333509) @@ -94,6 +94,8 @@ pmc_intel_initialize(void) model = ((cpu_id & 0xF0000) >> 12) | ((cpu_id & 0xF0) >> 4); stepping = cpu_id & 0xF; + snprintf(pmc_cpuid, sizeof(pmc_cpuid), "GenuineIntel-%d-%02X", + (cpu_id & 0xF00) >> 8, model); switch (cpu_id & 0xF00) { #if defined(__i386__) case 0x500: /* Pentium family processors */ Modified: head/sys/dev/hwpmc/hwpmc_logging.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_logging.c Fri May 11 22:16:23 2018 (r333508) +++ head/sys/dev/hwpmc/hwpmc_logging.c Sat May 12 01:26:34 2018 (r333509) @@ -3,6 +3,7 @@ * * Copyright (c) 2005-2007 Joseph Koshy * Copyright (c) 2007 The FreeBSD Foundation + * Copyright (c) 2018 Matthew Macy * All rights reserved. * * Portions of this software were developed by A. Joseph Koshy under @@ -50,7 +51,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include @@ -79,31 +82,28 @@ SYSCTL_INT(_kern_hwpmc, OID_AUTO, logbuffersize, CTLFL * kern.hwpmc.nbuffer -- number of global log buffers */ -static int pmc_nlogbuffers = PMC_NLOGBUFFERS; +static int pmc_nlogbuffers_pcpu = PMC_NLOGBUFFERS_PCPU; #if (__FreeBSD_version < 1100000) -TUNABLE_INT(PMC_SYSCTL_NAME_PREFIX "nbuffers", &pmc_nlogbuffers); +TUNABLE_INT(PMC_SYSCTL_NAME_PREFIX "nbuffers", &pmc_nlogbuffers_pcpu); #endif -SYSCTL_INT(_kern_hwpmc, OID_AUTO, nbuffers, CTLFLAG_RDTUN, - &pmc_nlogbuffers, 0, "number of global log buffers"); +SYSCTL_INT(_kern_hwpmc, OID_AUTO, nbuffers_pcpu, CTLFLAG_RDTUN, + &pmc_nlogbuffers_pcpu, 0, "number of log buffers per cpu"); /* * Global log buffer list and associated spin lock. */ -TAILQ_HEAD(, pmclog_buffer) pmc_bufferlist = - TAILQ_HEAD_INITIALIZER(pmc_bufferlist); -static struct mtx pmc_bufferlist_mtx; /* spin lock */ static struct mtx pmc_kthread_mtx; /* sleep lock */ -#define PMCLOG_INIT_BUFFER_DESCRIPTOR(D) do { \ - const int __roundup = roundup(sizeof(*D), \ - sizeof(uint32_t)); \ - (D)->plb_fence = ((char *) (D)) + \ - 1024*pmclog_buffer_size; \ - (D)->plb_base = (D)->plb_ptr = ((char *) (D)) + \ - __roundup; \ +#define PMCLOG_INIT_BUFFER_DESCRIPTOR(D, buf, domain) do { \ + (D)->plb_fence = ((char *) (buf)) + 1024*pmclog_buffer_size; \ + (D)->plb_base = (D)->plb_ptr = ((char *) (buf)); \ + (D)->plb_domain = domain; \ } while (0) +#define PMCLOG_RESET_BUFFER_DESCRIPTOR(D) do { \ + (D)->plb_ptr = (D)->plb_base; \ + } while (0) /* * Log file record constructors. @@ -114,15 +114,29 @@ static struct mtx pmc_kthread_mtx; /* sleep lock */ ((L) & 0xFFFF)) /* reserve LEN bytes of space and initialize the entry header */ -#define _PMCLOG_RESERVE(PO,TYPE,LEN,ACTION) do { \ +#define _PMCLOG_RESERVE_SAFE(PO,TYPE,LEN,ACTION) do { \ uint32_t *_le; \ - int _len = roundup((LEN), sizeof(uint32_t)); \ + int _len = roundup((LEN), sizeof(uint32_t)); \ if ((_le = pmclog_reserve((PO), _len)) == NULL) { \ ACTION; \ } \ *_le = _PMCLOG_TO_HEADER(TYPE,_len); \ _le += 3 /* skip over timestamp */ +/* reserve LEN bytes of space and initialize the entry header */ +#define _PMCLOG_RESERVE(PO,TYPE,LEN,ACTION) do { \ + uint32_t *_le; \ + int _len = roundup((LEN), sizeof(uint32_t)); \ + spinlock_enter(); \ + if ((_le = pmclog_reserve((PO), _len)) == NULL) { \ + spinlock_exit(); \ + ACTION; \ + } \ + *_le = _PMCLOG_TO_HEADER(TYPE,_len); \ + _le += 3 /* skip over timestamp */ + + +#define PMCLOG_RESERVE_SAFE(P,T,L) _PMCLOG_RESERVE_SAFE(P,T,L,return) #define PMCLOG_RESERVE(P,T,L) _PMCLOG_RESERVE(P,T,L,return) #define PMCLOG_RESERVE_WITH_ERROR(P,T,L) _PMCLOG_RESERVE(P,T,L, \ error=ENOMEM;goto error) @@ -138,11 +152,21 @@ static struct mtx pmc_kthread_mtx; /* sleep lock */ #define PMCLOG_EMITSTRING(S,L) do { bcopy((S), _le, (L)); } while (0) #define PMCLOG_EMITNULLSTRING(L) do { bzero(_le, (L)); } while (0) -#define PMCLOG_DESPATCH(PO) \ - pmclog_release((PO)); \ +#define PMCLOG_DESPATCH_SAFE(PO) \ + pmclog_release((PO)); \ } while (0) +#define PMCLOG_DESPATCH(PO) \ + pmclog_release((PO)); \ + spinlock_exit(); \ + } while (0) +#define PMCLOG_DESPATCH_SYNC(PO) \ + pmclog_schedule_io((PO)); \ + spinlock_exit(); \ + } while (0) + + /* * Assertions about the log file format. */ @@ -180,8 +204,19 @@ struct pmclog_buffer { char *plb_base; char *plb_ptr; char *plb_fence; -}; + uint16_t plb_domain; +} __aligned(CACHE_LINE_SIZE); +struct pmc_domain_buffer_header { + struct mtx pdbh_mtx; + TAILQ_HEAD(, pmclog_buffer) pdbh_head; + struct pmclog_buffer *pdbh_plbs; + int pdbh_ncpus; +} __aligned(CACHE_LINE_SIZE); + +struct pmc_domain_buffer_header *pmc_dom_hdrs[MAXMEMDOM]; + + /* * Prototypes */ @@ -191,12 +226,28 @@ static void pmclog_loop(void *arg); static void pmclog_release(struct pmc_owner *po); static uint32_t *pmclog_reserve(struct pmc_owner *po, int length); static void pmclog_schedule_io(struct pmc_owner *po); +static void pmclog_schedule_all(struct pmc_owner *po); static void pmclog_stop_kthread(struct pmc_owner *po); /* * Helper functions */ +static inline void +pmc_plb_rele_unlocked(struct pmclog_buffer *plb) +{ + TAILQ_INSERT_HEAD(&pmc_dom_hdrs[plb->plb_domain]->pdbh_head, plb, plb_next); +} + +static inline void +pmc_plb_rele(struct pmclog_buffer *plb) +{ + mtx_lock_spin(&pmc_dom_hdrs[plb->plb_domain]->pdbh_mtx); + pmc_plb_rele_unlocked(plb); + mtx_unlock_spin(&pmc_dom_hdrs[plb->plb_domain]->pdbh_mtx); +} + + /* * Get a log buffer */ @@ -205,16 +256,16 @@ static int pmclog_get_buffer(struct pmc_owner *po) { struct pmclog_buffer *plb; + int domain; - mtx_assert(&po->po_mtx, MA_OWNED); - - KASSERT(po->po_curbuf == NULL, + KASSERT(po->po_curbuf[curcpu] == NULL, ("[pmclog,%d] po=%p current buffer still valid", __LINE__, po)); - mtx_lock_spin(&pmc_bufferlist_mtx); - if ((plb = TAILQ_FIRST(&pmc_bufferlist)) != NULL) - TAILQ_REMOVE(&pmc_bufferlist, plb, plb_next); - mtx_unlock_spin(&pmc_bufferlist_mtx); + domain = PCPU_GET(domain); + mtx_lock_spin(&pmc_dom_hdrs[domain]->pdbh_mtx); + if ((plb = TAILQ_FIRST(&pmc_dom_hdrs[domain]->pdbh_head)) != NULL) + TAILQ_REMOVE(&pmc_dom_hdrs[domain]->pdbh_head, plb, plb_next); + mtx_unlock_spin(&pmc_dom_hdrs[domain]->pdbh_mtx); PMCDBG2(LOG,GTB,1, "po=%p plb=%p", po, plb); @@ -227,12 +278,12 @@ pmclog_get_buffer(struct pmc_owner *po) plb->plb_base, plb->plb_fence)); #endif - po->po_curbuf = plb; + po->po_curbuf[curcpu] = plb; /* update stats */ - atomic_add_int(&pmc_stats.pm_buffer_requests, 1); + counter_u64_add(pmc_stats.pm_buffer_requests, 1); if (plb == NULL) - atomic_add_int(&pmc_stats.pm_buffer_requests_failed, 1); + counter_u64_add(pmc_stats.pm_buffer_requests_failed, 1); return (plb ? 0 : ENOMEM); } @@ -421,12 +472,9 @@ pmclog_loop(void *arg) mtx_lock(&pmc_kthread_mtx); /* put the used buffer back into the global pool */ - PMCLOG_INIT_BUFFER_DESCRIPTOR(lb); + PMCLOG_RESET_BUFFER_DESCRIPTOR(lb); - mtx_lock_spin(&pmc_bufferlist_mtx); - TAILQ_INSERT_HEAD(&pmc_bufferlist, lb, plb_next); - mtx_unlock_spin(&pmc_bufferlist_mtx); - + pmc_plb_rele(lb); lb = NULL; } @@ -437,11 +485,9 @@ pmclog_loop(void *arg) /* return the current I/O buffer to the global pool */ if (lb) { - PMCLOG_INIT_BUFFER_DESCRIPTOR(lb); + PMCLOG_RESET_BUFFER_DESCRIPTOR(lb); - mtx_lock_spin(&pmc_bufferlist_mtx); - TAILQ_INSERT_HEAD(&pmc_bufferlist, lb, plb_next); - mtx_unlock_spin(&pmc_bufferlist_mtx); + pmc_plb_rele(lb); } /* @@ -460,19 +506,20 @@ pmclog_loop(void *arg) static void pmclog_release(struct pmc_owner *po) { - KASSERT(po->po_curbuf->plb_ptr >= po->po_curbuf->plb_base, + struct pmclog_buffer *plb; + + plb = po->po_curbuf[curcpu]; + KASSERT(plb->plb_ptr >= plb->plb_base, ("[pmclog,%d] buffer invariants po=%p ptr=%p base=%p", __LINE__, - po, po->po_curbuf->plb_ptr, po->po_curbuf->plb_base)); - KASSERT(po->po_curbuf->plb_ptr <= po->po_curbuf->plb_fence, + po, plb->plb_ptr, plb->plb_base)); + KASSERT(plb->plb_ptr <= plb->plb_fence, ("[pmclog,%d] buffer invariants po=%p ptr=%p fenc=%p", __LINE__, - po, po->po_curbuf->plb_ptr, po->po_curbuf->plb_fence)); + po, plb->plb_ptr, plb->plb_fence)); /* schedule an I/O if we've filled a buffer */ - if (po->po_curbuf->plb_ptr >= po->po_curbuf->plb_fence) + if (plb->plb_ptr >= plb->plb_fence) pmclog_schedule_io(po); - mtx_unlock_spin(&po->po_mtx); - PMCDBG1(LOG,REL,1, "po=%p", po); } @@ -492,36 +539,32 @@ pmclog_reserve(struct pmc_owner *po, int length) uintptr_t newptr, oldptr; uint32_t *lh; struct timespec ts; + struct pmclog_buffer *plb, **pplb; PMCDBG2(LOG,ALL,1, "po=%p len=%d", po, length); KASSERT(length % sizeof(uint32_t) == 0, ("[pmclog,%d] length not a multiple of word size", __LINE__)); - mtx_lock_spin(&po->po_mtx); - /* No more data when shutdown in progress. */ - if (po->po_flags & PMC_PO_SHUTDOWN) { - mtx_unlock_spin(&po->po_mtx); + if (po->po_flags & PMC_PO_SHUTDOWN) return (NULL); - } - if (po->po_curbuf == NULL) - if (pmclog_get_buffer(po) != 0) { - mtx_unlock_spin(&po->po_mtx); - return (NULL); - } + pplb = &po->po_curbuf[curcpu]; + if (*pplb == NULL && pmclog_get_buffer(po) != 0) + goto fail; - KASSERT(po->po_curbuf != NULL, + KASSERT(*pplb != NULL, ("[pmclog,%d] po=%p no current buffer", __LINE__, po)); - KASSERT(po->po_curbuf->plb_ptr >= po->po_curbuf->plb_base && - po->po_curbuf->plb_ptr <= po->po_curbuf->plb_fence, + plb = *pplb; + KASSERT(plb->plb_ptr >= plb->plb_base && + plb->plb_ptr <= plb->plb_fence, ("[pmclog,%d] po=%p buffer invariants: ptr=%p base=%p fence=%p", - __LINE__, po, po->po_curbuf->plb_ptr, po->po_curbuf->plb_base, - po->po_curbuf->plb_fence)); + __LINE__, po, plb->plb_ptr, plb->plb_base, + plb->plb_fence)); - oldptr = (uintptr_t) po->po_curbuf->plb_ptr; + oldptr = (uintptr_t) plb->plb_ptr; newptr = oldptr + length; KASSERT(oldptr != (uintptr_t) NULL, @@ -531,8 +574,8 @@ pmclog_reserve(struct pmc_owner *po, int length) * If we have space in the current buffer, return a pointer to * available space with the PO structure locked. */ - if (newptr <= (uintptr_t) po->po_curbuf->plb_fence) { - po->po_curbuf->plb_ptr = (char *) newptr; + if (newptr <= (uintptr_t) plb->plb_fence) { + plb->plb_ptr = (char *) newptr; goto done; } @@ -542,24 +585,23 @@ pmclog_reserve(struct pmc_owner *po, int length) */ pmclog_schedule_io(po); - if (pmclog_get_buffer(po) != 0) { - mtx_unlock_spin(&po->po_mtx); - return (NULL); - } + if (pmclog_get_buffer(po) != 0) + goto fail; - KASSERT(po->po_curbuf != NULL, + plb = *pplb; + KASSERT(plb != NULL, ("[pmclog,%d] po=%p no current buffer", __LINE__, po)); - KASSERT(po->po_curbuf->plb_ptr != NULL, + KASSERT(plb->plb_ptr != NULL, ("[pmclog,%d] null return from pmc_get_log_buffer", __LINE__)); - KASSERT(po->po_curbuf->plb_ptr == po->po_curbuf->plb_base && - po->po_curbuf->plb_ptr <= po->po_curbuf->plb_fence, + KASSERT(plb->plb_ptr == plb->plb_base && + plb->plb_ptr <= plb->plb_fence, ("[pmclog,%d] po=%p buffer invariants: ptr=%p base=%p fence=%p", - __LINE__, po, po->po_curbuf->plb_ptr, po->po_curbuf->plb_base, - po->po_curbuf->plb_fence)); + __LINE__, po, plb->plb_ptr, plb->plb_base, + plb->plb_fence)); - oldptr = (uintptr_t) po->po_curbuf->plb_ptr; + oldptr = (uintptr_t) plb->plb_ptr; done: lh = (uint32_t *) oldptr; @@ -568,6 +610,8 @@ pmclog_reserve(struct pmc_owner *po, int length) *lh++ = ts.tv_sec & 0xFFFFFFFF; *lh++ = ts.tv_nsec & 0xFFFFFFF; return ((uint32_t *) oldptr); + fail: + return (NULL); } /* @@ -579,26 +623,28 @@ pmclog_reserve(struct pmc_owner *po, int length) static void pmclog_schedule_io(struct pmc_owner *po) { - KASSERT(po->po_curbuf != NULL, - ("[pmclog,%d] schedule_io with null buffer po=%p", __LINE__, po)); + struct pmclog_buffer *plb; - KASSERT(po->po_curbuf->plb_ptr >= po->po_curbuf->plb_base, + plb = po->po_curbuf[curcpu]; + po->po_curbuf[curcpu] = NULL; + KASSERT(plb != NULL, + ("[pmclog,%d] schedule_io with null buffer po=%p", __LINE__, po)); + KASSERT(plb->plb_ptr >= plb->plb_base, ("[pmclog,%d] buffer invariants po=%p ptr=%p base=%p", __LINE__, - po, po->po_curbuf->plb_ptr, po->po_curbuf->plb_base)); - KASSERT(po->po_curbuf->plb_ptr <= po->po_curbuf->plb_fence, + po, plb->plb_ptr, plb->plb_base)); + KASSERT(plb->plb_ptr <= plb->plb_fence, ("[pmclog,%d] buffer invariants po=%p ptr=%p fenc=%p", __LINE__, - po, po->po_curbuf->plb_ptr, po->po_curbuf->plb_fence)); + po, plb->plb_ptr, plb->plb_fence)); PMCDBG1(LOG,SIO, 1, "po=%p", po); - mtx_assert(&po->po_mtx, MA_OWNED); - /* * Add the current buffer to the tail of the buffer list and * wakeup the helper. */ - TAILQ_INSERT_TAIL(&po->po_logbuffers, po->po_curbuf, plb_next); - po->po_curbuf = NULL; + mtx_lock_spin(&po->po_mtx); + TAILQ_INSERT_TAIL(&po->po_logbuffers, plb, plb_next); + mtx_unlock_spin(&po->po_mtx); wakeup_one(po); } @@ -671,7 +717,7 @@ pmclog_configure_log(struct pmc_mdep *md, struct pmc_o sizeof(struct pmclog_initialize)); PMCLOG_EMIT32(PMC_VERSION); PMCLOG_EMIT32(md->pmd_cputype); - PMCLOG_DESPATCH(po); + PMCLOG_DESPATCH_SYNC(po); return (0); @@ -719,19 +765,22 @@ pmclog_deconfigure_log(struct pmc_owner *po) /* return all queued log buffers to the global pool */ while ((lb = TAILQ_FIRST(&po->po_logbuffers)) != NULL) { TAILQ_REMOVE(&po->po_logbuffers, lb, plb_next); - PMCLOG_INIT_BUFFER_DESCRIPTOR(lb); - mtx_lock_spin(&pmc_bufferlist_mtx); - TAILQ_INSERT_HEAD(&pmc_bufferlist, lb, plb_next); - mtx_unlock_spin(&pmc_bufferlist_mtx); + PMCLOG_RESET_BUFFER_DESCRIPTOR(lb); + pmc_plb_rele(lb); } - - /* return the 'current' buffer to the global pool */ - if ((lb = po->po_curbuf) != NULL) { - PMCLOG_INIT_BUFFER_DESCRIPTOR(lb); - mtx_lock_spin(&pmc_bufferlist_mtx); - TAILQ_INSERT_HEAD(&pmc_bufferlist, lb, plb_next); - mtx_unlock_spin(&pmc_bufferlist_mtx); + for (int i = 0; i < mp_ncpus; i++) { + thread_lock(curthread); + sched_bind(curthread, i); + thread_unlock(curthread); + /* return the 'current' buffer to the global pool */ + if ((lb = po->po_curbuf[curcpu]) != NULL) { + PMCLOG_RESET_BUFFER_DESCRIPTOR(lb); + pmc_plb_rele(lb); + } } + thread_lock(curthread); + sched_unbind(curthread); + thread_unlock(curthread); /* drop a reference to the fd */ if (po->po_file != NULL) { @@ -752,7 +801,6 @@ int pmclog_flush(struct pmc_owner *po) { int error; - struct pmclog_buffer *lb; PMCDBG1(LOG,FLS,1, "po=%p", po); @@ -774,23 +822,45 @@ pmclog_flush(struct pmc_owner *po) goto error; } - /* - * Schedule the current buffer if any and not empty. - */ - mtx_lock_spin(&po->po_mtx); - lb = po->po_curbuf; - if (lb && lb->plb_ptr != lb->plb_base) { - pmclog_schedule_io(po); - } else - error = ENOBUFS; - mtx_unlock_spin(&po->po_mtx); - + pmclog_schedule_all(po); error: mtx_unlock(&pmc_kthread_mtx); return (error); } +static void +pmclog_schedule_one_cond(void *arg) +{ + struct pmc_owner *po = arg; + struct pmclog_buffer *plb; + + spinlock_enter(); + /* tell hardclock not to run again */ + DPCPU_SET(pmc_sampled, 0); + plb = po->po_curbuf[curcpu]; + if (plb && plb->plb_ptr != plb->plb_base) + pmclog_schedule_io(po); + spinlock_exit(); +} + +static void +pmclog_schedule_all(struct pmc_owner *po) +{ + /* + * Schedule the current buffer if any and not empty. + */ + for (int i = 0; i < mp_ncpus; i++) { + thread_lock(curthread); + sched_bind(curthread, i); + thread_unlock(curthread); + pmclog_schedule_one_cond(po); + } + thread_lock(curthread); + sched_unbind(curthread); + thread_unlock(curthread); +} + int pmclog_close(struct pmc_owner *po) { @@ -804,19 +874,14 @@ pmclog_close(struct pmc_owner *po) /* * Schedule the current buffer. */ - mtx_lock_spin(&po->po_mtx); - if (po->po_curbuf) - pmclog_schedule_io(po); - else - wakeup_one(po); - mtx_unlock_spin(&po->po_mtx); + pmclog_schedule_all(po); + wakeup_one(po); /* * Initiate shutdown: no new data queued, * thread will close file on last block. */ po->po_flags |= PMC_PO_SHUTDOWN; - mtx_unlock(&pmc_kthread_mtx); return (0); @@ -836,20 +901,20 @@ pmclog_process_callchain(struct pmc *pm, struct pmc_sa ps->ps_nsamples * sizeof(uintfptr_t); po = pm->pm_owner; flags = PMC_CALLCHAIN_TO_CPUFLAGS(ps->ps_cpu,ps->ps_flags); - PMCLOG_RESERVE(po, CALLCHAIN, recordlen); + PMCLOG_RESERVE_SAFE(po, CALLCHAIN, recordlen); PMCLOG_EMIT32(ps->ps_pid); PMCLOG_EMIT32(pm->pm_id); PMCLOG_EMIT32(flags); for (n = 0; n < ps->ps_nsamples; n++) PMCLOG_EMITADDR(ps->ps_pc[n]); - PMCLOG_DESPATCH(po); + PMCLOG_DESPATCH_SAFE(po); } void pmclog_process_closelog(struct pmc_owner *po) { PMCLOG_RESERVE(po,CLOSELOG,sizeof(struct pmclog_closelog)); - PMCLOG_DESPATCH(po); + PMCLOG_DESPATCH_SYNC(po); } void @@ -913,14 +978,14 @@ pmclog_process_pmcallocate(struct pmc *pm) else PMCLOG_EMITNULLSTRING(PMC_NAME_MAX); pmc_soft_ev_release(ps); - PMCLOG_DESPATCH(po); + PMCLOG_DESPATCH_SYNC(po); } else { PMCLOG_RESERVE(po, PMCALLOCATE, sizeof(struct pmclog_pmcallocate)); PMCLOG_EMIT32(pm->pm_id); PMCLOG_EMIT32(pm->pm_event); PMCLOG_EMIT32(pm->pm_flags); - PMCLOG_DESPATCH(po); + PMCLOG_DESPATCH_SYNC(po); } } @@ -941,7 +1006,7 @@ pmclog_process_pmcattach(struct pmc *pm, pid_t pid, ch PMCLOG_EMIT32(pm->pm_id); PMCLOG_EMIT32(pid); PMCLOG_EMITSTRING(path, pathlen); - PMCLOG_DESPATCH(po); + PMCLOG_DESPATCH_SYNC(po); } void @@ -956,7 +1021,7 @@ pmclog_process_pmcdetach(struct pmc *pm, pid_t pid) PMCLOG_RESERVE(po, PMCDETACH, sizeof(struct pmclog_pmcdetach)); PMCLOG_EMIT32(pm->pm_id); PMCLOG_EMIT32(pid); - PMCLOG_DESPATCH(po); + PMCLOG_DESPATCH_SYNC(po); } /* @@ -1081,30 +1146,57 @@ pmclog_process_userlog(struct pmc_owner *po, struct pm void pmclog_initialize() { - int n; + int domain, cpu; + struct pcpu *pc; struct pmclog_buffer *plb; - if (pmclog_buffer_size <= 0) { + if (pmclog_buffer_size <= 0 || pmclog_buffer_size > 16*1024) { (void) printf("hwpmc: tunable logbuffersize=%d must be " - "greater than zero.\n", pmclog_buffer_size); + "greater than zero and less than or equal to 16MB.\n", + pmclog_buffer_size); pmclog_buffer_size = PMC_LOG_BUFFER_SIZE; } - if (pmc_nlogbuffers <= 0) { + if (pmc_nlogbuffers_pcpu <= 0) { (void) printf("hwpmc: tunable nlogbuffers=%d must be greater " - "than zero.\n", pmc_nlogbuffers); - pmc_nlogbuffers = PMC_NLOGBUFFERS; + "than zero.\n", pmc_nlogbuffers_pcpu); + pmc_nlogbuffers_pcpu = PMC_NLOGBUFFERS_PCPU; } - /* create global pool of log buffers */ - for (n = 0; n < pmc_nlogbuffers; n++) { - plb = malloc(1024 * pmclog_buffer_size, M_PMC, - M_WAITOK|M_ZERO); - PMCLOG_INIT_BUFFER_DESCRIPTOR(plb); - TAILQ_INSERT_HEAD(&pmc_bufferlist, plb, plb_next); + if (pmc_nlogbuffers_pcpu*pmclog_buffer_size > 32*1024) { + (void) printf("hwpmc: memory allocated pcpu must be less than 32MB (is %dK).\n", + pmc_nlogbuffers_pcpu*pmclog_buffer_size); + pmc_nlogbuffers_pcpu = PMC_NLOGBUFFERS_PCPU; + pmclog_buffer_size = PMC_LOG_BUFFER_SIZE; } - mtx_init(&pmc_bufferlist_mtx, "pmc-buffer-list", "pmc-leaf", - MTX_SPIN); + for (domain = 0; domain < vm_ndomains; domain++) { + pmc_dom_hdrs[domain] = malloc_domain(sizeof(struct pmc_domain_buffer_header), M_PMC, domain, + M_WAITOK|M_ZERO); + mtx_init(&pmc_dom_hdrs[domain]->pdbh_mtx, "pmc_bufferlist_mtx", "pmc-leaf", MTX_SPIN); + TAILQ_INIT(&pmc_dom_hdrs[domain]->pdbh_head); + } + CPU_FOREACH(cpu) { + if (CPU_ABSENT(cpu)) + continue; + pc = pcpu_find(cpu); + domain = pc->pc_domain; + pmc_dom_hdrs[domain]->pdbh_ncpus++; + } + for (domain = 0; domain < vm_ndomains; domain++) { + int ncpus = pmc_dom_hdrs[domain]->pdbh_ncpus; + int total = ncpus*pmc_nlogbuffers_pcpu; + + plb = malloc_domain(sizeof(struct pmclog_buffer)*total, M_PMC, domain, M_WAITOK|M_ZERO); + pmc_dom_hdrs[domain]->pdbh_plbs = plb; + for (int i = 0; i < total; i++, plb++) { + void *buf; + + buf = malloc_domain(1024 * pmclog_buffer_size, M_PMC, domain, + M_WAITOK|M_ZERO); + PMCLOG_INIT_BUFFER_DESCRIPTOR(plb, buf, domain); + pmc_plb_rele_unlocked(plb); + } + } mtx_init(&pmc_kthread_mtx, "pmc-kthread", "pmc-sleep", MTX_DEF); } @@ -1118,12 +1210,17 @@ void pmclog_shutdown() { struct pmclog_buffer *plb; + int domain; mtx_destroy(&pmc_kthread_mtx); - mtx_destroy(&pmc_bufferlist_mtx); - while ((plb = TAILQ_FIRST(&pmc_bufferlist)) != NULL) { - TAILQ_REMOVE(&pmc_bufferlist, plb, plb_next); - free(plb, M_PMC); + for (domain = 0; domain < vm_ndomains; domain++) { + mtx_destroy(&pmc_dom_hdrs[domain]->pdbh_mtx); + while ((plb = TAILQ_FIRST(&pmc_dom_hdrs[domain]->pdbh_head)) != NULL) { + TAILQ_REMOVE(&pmc_dom_hdrs[domain]->pdbh_head, plb, plb_next); + free(plb->plb_base, M_PMC); + } + free(pmc_dom_hdrs[domain]->pdbh_plbs, M_PMC); + free(pmc_dom_hdrs[domain], M_PMC); } } Modified: head/sys/dev/hwpmc/hwpmc_mod.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_mod.c Fri May 11 22:16:23 2018 (r333508) +++ head/sys/dev/hwpmc/hwpmc_mod.c Sat May 12 01:26:34 2018 (r333509) @@ -3,6 +3,7 @@ * * Copyright (c) 2003-2008 Joseph Koshy * Copyright (c) 2007 The FreeBSD Foundation + * Copyright (c) 2018 Matthew Macy * All rights reserved. * * Portions of this software were developed by A. Joseph Koshy under @@ -138,8 +139,9 @@ static eventhandler_tag pmc_exit_tag, pmc_fork_tag, pm pmc_kld_unload_tag; /* Module statistics */ -struct pmc_op_getdriverstats pmc_stats; +struct pmc_driverstats pmc_stats; + /* Machine/processor dependent operations */ static struct pmc_mdep *md; @@ -235,11 +237,34 @@ static void pmc_generic_cpu_finalize(struct pmc_mdep * */ SYSCTL_DECL(_kern_hwpmc); +SYSCTL_NODE(_kern_hwpmc, OID_AUTO, stats, CTLFLAG_RW, 0, "HWPMC stats"); + +/* Stats. */ +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, intr_ignored, CTLFLAG_RW, + &pmc_stats.pm_intr_ignored, "# of interrupts ignored"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, intr_processed, CTLFLAG_RW, + &pmc_stats.pm_intr_processed, "# of interrupts processed"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, intr_bufferfull, CTLFLAG_RW, + &pmc_stats.pm_intr_bufferfull, "# of interrupts where buffer was full"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, syscalls, CTLFLAG_RW, + &pmc_stats.pm_syscalls, "# of syscalls"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, syscall_errors, CTLFLAG_RW, + &pmc_stats.pm_syscall_errors, "# of syscall_errors"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, buffer_requests, CTLFLAG_RW, + &pmc_stats.pm_buffer_requests, "# of buffer requests"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, buffer_requests_failed, CTLFLAG_RW, + &pmc_stats.pm_buffer_requests_failed, "# of buffer requests which failed"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, log_sweeps, CTLFLAG_RW, + &pmc_stats.pm_log_sweeps, "# of ?"); + static int pmc_callchaindepth = PMC_CALLCHAIN_DEPTH; SYSCTL_INT(_kern_hwpmc, OID_AUTO, callchaindepth, CTLFLAG_RDTUN, &pmc_callchaindepth, 0, "depth of call chain records"); +char pmc_cpuid[64]; +SYSCTL_STRING(_kern_hwpmc, OID_AUTO, cpuid, CTLFLAG_RD, + pmc_cpuid, 0, "cpu version string"); #ifdef HWPMC_DEBUG struct pmc_debugflags pmc_debugflags = PMC_DEBUG_DEFAULT_FLAGS; char pmc_debugstr[PMC_DEBUG_STRSIZE]; @@ -250,6 +275,7 @@ SYSCTL_PROC(_kern_hwpmc, OID_AUTO, debugflags, 0, 0, pmc_debugflags_sysctl_handler, "A", "debug flags"); #endif + /* * kern.hwpmc.hashrows -- determines the number of rows in the * of the hash table used to look up threads @@ -1260,7 +1286,7 @@ pmc_process_csw_in(struct thread *td) continue; /* increment PMC runcount */ - atomic_add_rel_int(&pm->pm_runcount, 1); + counter_u64_add(pm->pm_runcount, 1); /* configure the HWPMC we are going to use. */ pcd = pmc_ri_to_classdep(md, ri, &adjri); @@ -1311,10 +1337,10 @@ pmc_process_csw_in(struct thread *td) /* If a sampling mode PMC, reset stalled state. */ if (PMC_TO_MODE(pm) == PMC_MODE_TS) - CPU_CLR_ATOMIC(cpu, &pm->pm_stalled); + pm->pm_pcpu_state[cpu].pps_stalled = 0; /* Indicate that we desire this to run. */ - CPU_SET_ATOMIC(cpu, &pm->pm_cpustate); + pm->pm_pcpu_state[cpu].pps_cpustate = 1; /* Start the PMC. */ pcd->pcd_start_pmc(cpu, adjri); @@ -1417,12 +1443,12 @@ pmc_process_csw_out(struct thread *td) * an interrupt re-enables the PMC after this code has * already checked the pm_stalled flag. */ - CPU_CLR_ATOMIC(cpu, &pm->pm_cpustate); - if (!CPU_ISSET(cpu, &pm->pm_stalled)) + pm->pm_pcpu_state[cpu].pps_cpustate = 0; + if (pm->pm_pcpu_state[cpu].pps_stalled == 0) pcd->pcd_stop_pmc(cpu, adjri); /* reduce this PMC's runcount */ - atomic_subtract_rel_int(&pm->pm_runcount, 1); + counter_u64_add(pm->pm_runcount, -1); /* * If this PMC is associated with this process, @@ -1537,7 +1563,7 @@ pmc_process_mmap(struct thread *td, struct pmckern_map /* Inform owners of all system-wide sampling PMCs. */ LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) if (po->po_flags & PMC_PO_OWNS_LOGFILE) - pmclog_process_map_in(po, pid, pkm->pm_address, fullpath); + pmclog_process_map_in(po, pid, pkm->pm_address, fullpath); if ((pp = pmc_find_process_descriptor(td->td_proc, 0)) == NULL) goto done; @@ -1993,7 +2019,7 @@ pmc_hook_handler(struct thread *td, int function, void * had already processed the interrupt). We don't * lose the interrupt sample. */ - CPU_CLR_ATOMIC(PCPU_GET(cpuid), &pmc_cpumask); + DPCPU_SET(pmc_sampled, 0); pmc_process_samples(PCPU_GET(cpuid), PMC_HR); pmc_process_samples(PCPU_GET(cpuid), PMC_SR); break; @@ -2191,7 +2217,8 @@ pmc_allocate_pmc_descriptor(void) struct pmc *pmc; pmc = malloc(sizeof(struct pmc), M_PMC, M_WAITOK|M_ZERO); - + pmc->pm_runcount = counter_u64_alloc(M_WAITOK); + pmc->pm_pcpu_state = malloc(sizeof(struct pmc_pcpu_state)*mp_ncpus, M_PMC, M_WAITOK|M_ZERO); PMCDBG1(PMC,ALL,1, "allocate-pmc -> pmc=%p", pmc); return pmc; @@ -2212,10 +2239,12 @@ pmc_destroy_pmc_descriptor(struct pmc *pm) ("[pmc,%d] destroying pmc with targets", __LINE__)); KASSERT(pm->pm_owner == NULL, ("[pmc,%d] destroying pmc attached to an owner", __LINE__)); - KASSERT(pm->pm_runcount == 0, - ("[pmc,%d] pmc has non-zero run count %d", __LINE__, - pm->pm_runcount)); + KASSERT(counter_u64_fetch(pm->pm_runcount) == 0, + ("[pmc,%d] pmc has non-zero run count %ld", __LINE__, + (unsigned long)counter_u64_fetch(pm->pm_runcount))); + counter_u64_free(pm->pm_runcount); + free(pm->pm_pcpu_state, M_PMC); free(pm, M_PMC); } @@ -2231,13 +2260,13 @@ pmc_wait_for_pmc_idle(struct pmc *pm) * Loop (with a forced context switch) till the PMC's runcount * comes down to zero. */ - while (atomic_load_acq_32(&pm->pm_runcount) > 0) { + while (counter_u64_fetch(pm->pm_runcount) > 0) { #ifdef HWPMC_DEBUG maxloop--; KASSERT(maxloop > 0, - ("[pmc,%d] (ri%d, rc%d) waiting too long for " + ("[pmc,%d] (ri%d, rc%ld) waiting too long for " "pmc to be free", __LINE__, - PMC_TO_ROWINDEX(pm), pm->pm_runcount)); + PMC_TO_ROWINDEX(pm), (unsigned long)counter_u64_fetch(pm->pm_runcount))); #endif pmc_force_context_switch(); } @@ -2295,9 +2324,9 @@ pmc_release_pmc_descriptor(struct pmc *pm) pmc_select_cpu(cpu); /* switch off non-stalled CPUs */ - CPU_CLR_ATOMIC(cpu, &pm->pm_cpustate); + pm->pm_pcpu_state[cpu].pps_cpustate = 0; if (pm->pm_state == PMC_STATE_RUNNING && - !CPU_ISSET(cpu, &pm->pm_stalled)) { + pm->pm_pcpu_state[cpu].pps_stalled == 0) { phw = pmc_pcpu[cpu]->pc_hwpmcs[ri]; @@ -2735,10 +2764,10 @@ pmc_start(struct pmc *pm) pm->pm_sc.pm_initial)) == 0) { /* If a sampling mode PMC, reset stalled state. */ if (PMC_IS_SAMPLING_MODE(mode)) - CPU_CLR_ATOMIC(cpu, &pm->pm_stalled); + pm->pm_pcpu_state[cpu].pps_stalled = 0; /* Indicate that we desire this to run. Start it. */ - CPU_SET_ATOMIC(cpu, &pm->pm_cpustate); + pm->pm_pcpu_state[cpu].pps_cpustate = 1; error = pcd->pcd_start_pmc(cpu, adjri); } critical_exit(); @@ -2802,7 +2831,7 @@ pmc_stop(struct pmc *pm) ri = PMC_TO_ROWINDEX(pm); pcd = pmc_ri_to_classdep(md, ri, &adjri); - CPU_CLR_ATOMIC(cpu, &pm->pm_cpustate); + pm->pm_pcpu_state[cpu].pps_cpustate = 0; critical_enter(); if ((error = pcd->pcd_stop_pmc(cpu, adjri)) == 0) error = pcd->pcd_read_pmc(cpu, adjri, &pm->pm_sc.pm_initial); @@ -2884,7 +2913,7 @@ pmc_syscall_handler(struct thread *td, void *syscall_a pmc_op_to_name[op], arg); error = 0; - atomic_add_int(&pmc_stats.pm_syscalls, 1); + counter_u64_add(pmc_stats.pm_syscalls, 1); switch (op) { @@ -3063,8 +3092,16 @@ pmc_syscall_handler(struct thread *td, void *syscall_a case PMC_OP_GETDRIVERSTATS: { struct pmc_op_getdriverstats gms; - - bcopy(&pmc_stats, &gms, sizeof(gms)); +#define CFETCH(a, b, field) a.field = counter_u64_fetch(b.field) + CFETCH(gms, pmc_stats, pm_intr_ignored); + CFETCH(gms, pmc_stats, pm_intr_processed); + CFETCH(gms, pmc_stats, pm_intr_bufferfull); + CFETCH(gms, pmc_stats, pm_syscalls); + CFETCH(gms, pmc_stats, pm_syscall_errors); + CFETCH(gms, pmc_stats, pm_buffer_requests); + CFETCH(gms, pmc_stats, pm_buffer_requests_failed); + CFETCH(gms, pmc_stats, pm_log_sweeps); +#undef CFETCH error = copyout(&gms, arg, sizeof(gms)); } break; @@ -4040,7 +4077,7 @@ pmc_syscall_handler(struct thread *td, void *syscall_a sx_xunlock(&pmc_sx); done_syscall: if (error) - atomic_add_int(&pmc_stats.pm_syscall_errors, 1); + counter_u64_add(pmc_stats.pm_syscall_errors, 1); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 01:43:33 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4532FDB389; Sat, 12 May 2018 01:43:33 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5F95F70235; Sat, 12 May 2018 01:43:33 +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 2944B17BE4; Sat, 12 May 2018 01:43:33 +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 w4C1hX2L008282; Sat, 12 May 2018 01:43:33 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C1hXPi008281; Sat, 12 May 2018 01:43:33 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201805120143.w4C1hXPi008281@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sat, 12 May 2018 01:43:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333510 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 333510 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 01:43:33 -0000 Author: imp Date: Sat May 12 01:43:32 2018 New Revision: 333510 URL: https://svnweb.freebsd.org/changeset/base/333510 Log: Remove extra copy of bcopy.c now that we're using the libkern version of this file. Deleted: head/sys/riscv/riscv/bcopy.c From owner-svn-src-head@freebsd.org Sat May 12 01:43:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E772FDB431 for ; Sat, 12 May 2018 01:43:59 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x22f.google.com (mail-it0-x22f.google.com [IPv6:2607:f8b0:4001:c0b::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EFDF37032D for ; Sat, 12 May 2018 01:43:58 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x22f.google.com with SMTP id y189-v6so4115233itb.2 for ; Fri, 11 May 2018 18:43:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=OinbPDpOUKslS4c9fOmnM4Oi4On4zrKFKCsb4PvmyvY=; b=dBIWPGM1o0iMTVmKJW4psS/iheetRK9fZjSXaj6Zv3SPJARg3u2pEWZBWZpFcZuHpZ lBskqk7/9blmFIiH6xN1Bzl132Fr5jPbugxTJElM2jqL4pyvaecxG6Y57bHJmntVgOWK JUpaXTcqI7NnLjcVwEwvZQbX3WZokx7qs9hEW3GNdzzEejNp3EBZrcEcES7CWyVrMfZy /e6HzpvGtqHqF4n3pLkL/MuZ+/8JZKEDZV8W6D1ClHFgL+zfyQU8kJlNo9kWY9tjHaAI TSC4nGSthgmdT3EsSGrjIKvHe/Cjxr/wR7cjB3loqB7illWgp3WZpgJKyzYUMxCu5mwS Bajg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=OinbPDpOUKslS4c9fOmnM4Oi4On4zrKFKCsb4PvmyvY=; b=fadZBw4PhZjVV7IYfMBOLd/Hsden62JlPY0zZ5wTCdq7xspxIAmxo/cAkOeIGMv4fl GezJleYs2cweXqKS25o5oERyVRFCd4VCaijszB+KFYmX9EXeipDddLqn3syvGPJYYrnT 9/dZ+69wXDFaYv6dKbRaYqDcWgFmY0oq2fC3siIEjdSgynk1Mj5yErx+gLUUr3V1D5q9 d645oGgCaTZCgNHCxydOkdlYnoTyPFhMn8MRUGUbq38+xOS9zhAOCk6Ge8rxM1ZaqO2k nuUPq4c6YixoGp7Idekl1KPV87QkvGQ4aJ91oNm3SlCULpb5QAxT48vZmSU6Xcpcx9wn dQfw== X-Gm-Message-State: ALKqPweOaMS6IUh4OFGaCJoWPIJ5mkrS9mmKDSaWpCyM3mgiTYk4kmHR YCvwpOWKk53y5xOe7YKfcjtChDDlbrnXBrj1iwnPzw== X-Google-Smtp-Source: AB8JxZpnDxHw60l0kh47K5Xzr/SgtjaUP5qwzelRih1hEXZnI+SR7IAdxN4ADAAlRoEzx18PNo6kbmMPsx6Tbwzl9QA= X-Received: by 2002:a24:e983:: with SMTP id f125-v6mr138623ith.36.1526089438321; Fri, 11 May 2018 18:43:58 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Fri, 11 May 2018 18:43:57 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <4083882.oFdOPrZQmh@ralph.baldwin.cx> References: <201805100231.w4A2VcZi054268@repo.freebsd.org> <4083882.oFdOPrZQmh@ralph.baldwin.cx> From: Warner Losh Date: Fri, 11 May 2018 19:43:57 -0600 X-Google-Sender-Auth: e_k72JZsuZ3AMopPxJHmkhWbBSk Message-ID: Subject: Re: svn commit: r333443 - in head/sys: conf libkern powerpc/powerpc To: John Baldwin Cc: Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 01:43:59 -0000 On Fri, May 11, 2018 at 5:59 PM, John Baldwin wrote: > On Thursday, May 10, 2018 02:31:38 AM Warner Losh wrote: > > Author: imp > > Date: Thu May 10 02:31:38 2018 > > New Revision: 333443 > > URL: https://svnweb.freebsd.org/changeset/base/333443 > > > > Log: > > Move MI-ish bcopy routine to libkern > > > > riscv and powerpc have nearly identical bcopy.c that's > > supposed to be mostly MI. Move it to the MI libkern. > > > > Differential Revision: https://reviews.freebsd.org/D15374 > > > > Added: > > head/sys/libkern/bcopy.c (contents, props changed) > > - copied, changed from r333436, head/sys/powerpc/powerpc/bcopy.c > > Deleted: > > head/sys/powerpc/powerpc/bcopy.c > > Modified: > > Hmm, is sys/riscv/riscv/bcopy.c still in the tree? > I forgot to remove it. It's gone now as of r333510 Warner From owner-svn-src-head@freebsd.org Sat May 12 03:45:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B5C6FA3C23; Sat, 12 May 2018 03:45:31 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3D72C6D0FF; Sat, 12 May 2018 03:45:31 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1DE9F190AF; Sat, 12 May 2018 03:45:31 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C3jU9E070196; Sat, 12 May 2018 03:45:30 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C3jUlJ070195; Sat, 12 May 2018 03:45:30 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805120345.w4C3jUlJ070195@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Sat, 12 May 2018 03:45:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333512 - head/sys/dev/hwpmc X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: head/sys/dev/hwpmc X-SVN-Commit-Revision: 333512 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 03:45:31 -0000 Author: mmacy Date: Sat May 12 03:45:30 2018 New Revision: 333512 URL: https://svnweb.freebsd.org/changeset/base/333512 Log: hwpmc(9): clear remaining sample work for hardclock - fix last minute change in 333509 where by runcount references to a pmc would remaining causing us to pause loop forever Approved by: sbruno Modified: head/sys/dev/hwpmc/hwpmc_logging.c Modified: head/sys/dev/hwpmc/hwpmc_logging.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_logging.c Sat May 12 01:55:24 2018 (r333511) +++ head/sys/dev/hwpmc/hwpmc_logging.c Sat May 12 03:45:30 2018 (r333512) @@ -837,7 +837,8 @@ pmclog_schedule_one_cond(void *arg) spinlock_enter(); /* tell hardclock not to run again */ - DPCPU_SET(pmc_sampled, 0); + if (PMC_CPU_HAS_SAMPLES(PCPU_GET(cpuid))) + PMC_CALL_HOOK_UNLOCKED(curthread, PMC_FN_DO_SAMPLES, NULL); plb = po->po_curbuf[curcpu]; if (plb && plb->plb_ptr != plb->plb_base) pmclog_schedule_io(po); From owner-svn-src-head@freebsd.org Sat May 12 05:36:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DC83FB49C4; Sat, 12 May 2018 05:36:48 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 032BE840BF; Sat, 12 May 2018 05:36:48 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D50611A2F1; Sat, 12 May 2018 05:36:47 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C5alDK025932; Sat, 12 May 2018 05:36:47 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C5alqL025931; Sat, 12 May 2018 05:36:47 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201805120536.w4C5alqL025931@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sat, 12 May 2018 05:36:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333513 - head/cddl/usr.sbin/dwatch X-SVN-Group: head X-SVN-Commit-Author: dteske X-SVN-Commit-Paths: head/cddl/usr.sbin/dwatch X-SVN-Commit-Revision: 333513 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 05:36:48 -0000 Author: dteske Date: Sat May 12 05:36:47 2018 New Revision: 333513 URL: https://svnweb.freebsd.org/changeset/base/333513 Log: dwatch(1): Bugfix, usage displayed with `-1Q' A return statement should have been an exit in list_profiles(). If the user passed `-Q' to list profiles and asked for one-line per profile (`-1'), list_profiles() would not exit as should. Sponsored by: Smule, Inc. Modified: head/cddl/usr.sbin/dwatch/dwatch Modified: head/cddl/usr.sbin/dwatch/dwatch ============================================================================== --- head/cddl/usr.sbin/dwatch/dwatch Sat May 12 03:45:30 2018 (r333512) +++ head/cddl/usr.sbin/dwatch/dwatch Sat May 12 05:36:47 2018 (r333513) @@ -47,7 +47,7 @@ DTRACE_PRAGMA=" ############################################################ GLOBALS -VERSION='$Version: 1.1 $' # -V +VERSION='$Version: 1.2 $' # -V pgm="${0##*/}" # Program basename @@ -490,8 +490,7 @@ list_profiles() function ans(s) { return cons ? "\033[" s "m" : "" } gsub(filter, ans("31;1") "&" ans("39;22")) ' # END-QUOTE - return $SUCCESS - # NOTREACHED + exit $SUCCESS fi [ "$quiet" ] || echo PROFILES: From owner-svn-src-head@freebsd.org Sat May 12 05:41:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B814FB4CB1; Sat, 12 May 2018 05:41:29 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DCF9584549; Sat, 12 May 2018 05:41:28 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BEFBD1A434; Sat, 12 May 2018 05:41:28 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C5fSwe027540; Sat, 12 May 2018 05:41:28 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C5fSWl027539; Sat, 12 May 2018 05:41:28 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201805120541.w4C5fSWl027539@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sat, 12 May 2018 05:41:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333514 - head/cddl/usr.sbin/dwatch X-SVN-Group: head X-SVN-Commit-Author: dteske X-SVN-Commit-Paths: head/cddl/usr.sbin/dwatch X-SVN-Commit-Revision: 333514 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 05:41:29 -0000 Author: dteske Date: Sat May 12 05:41:28 2018 New Revision: 333514 URL: https://svnweb.freebsd.org/changeset/base/333514 Log: dwatch(1): Separate default values so `-[BK] num' don't affect usage If you were to pass an invalid option after `-B num' or `-K num' you would see that the usage statement would show the value you passed instead of the actual default. Moving the default values to separate variables that are unaffected by the options-parsing allows the usage statement to correctly show the hard-coded default values if no flags are used. Sponsored by: Smule, Inc. Modified: head/cddl/usr.sbin/dwatch/dwatch Modified: head/cddl/usr.sbin/dwatch/dwatch ============================================================================== --- head/cddl/usr.sbin/dwatch/dwatch Sat May 12 05:36:47 2018 (r333513) +++ head/cddl/usr.sbin/dwatch/dwatch Sat May 12 05:41:28 2018 (r333514) @@ -57,6 +57,12 @@ pgm="${0##*/}" # Program basename PROBE_ARG= # +# Command-line defaults +# +_MAX_ARGS=64 # -B num +_MAX_DEPTH=64 # -K num + +# # Command-line options # CONSOLE= # -y @@ -77,8 +83,8 @@ GROUP= # -g group JID= # -j jail LIST= # -l LIST_PROFILES= # -Q -MAX_ARGS=64 # -B num -MAX_DEPTH=64 # -K num +MAX_ARGS=$_MAX_ARGS # -B num +MAX_DEPTH=$_MAX_DEPTH # -K num ONELINE= # -1 OUTPUT= # -o file OUTPUT_CMD= # -O cmd @@ -144,7 +150,7 @@ usage() printf "$optfmt" "-1" \ "Print one line per process/profile (Default; disables \`-R')." printf "$optfmt" "-B num" \ - "Maximum process arguments to display (Default $MAX_ARGS)." + "Maximum process arguments to display (Default $_MAX_ARGS)." printf "$optfmt" "-d" \ "Debug. Send dtrace(1) script to stdout instead of executing." printf "$optfmt" "-e" \ @@ -162,7 +168,7 @@ usage() printf "$optfmt" "-k name" \ "Only show processes matching name." printf "$optfmt" "-K num" \ - "Maximum directory depth to display (Default $MAX_DEPTH)." + "Maximum directory depth to display (Default $_MAX_DEPTH)." printf "$optfmt" "-l" \ "List available probes on standard output and exit." printf "$optfmt" "-m" \ From owner-svn-src-head@freebsd.org Sat May 12 05:43:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D7B7FB4FA7; Sat, 12 May 2018 05:43:48 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2BD6785797; Sat, 12 May 2018 05:43:48 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0BA671A48E; Sat, 12 May 2018 05:43:48 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C5hlE3030634; Sat, 12 May 2018 05:43:47 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C5hlvA030633; Sat, 12 May 2018 05:43:47 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201805120543.w4C5hlvA030633@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sat, 12 May 2018 05:43:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333515 - head/cddl/usr.sbin/dwatch X-SVN-Group: head X-SVN-Commit-Author: dteske X-SVN-Commit-Paths: head/cddl/usr.sbin/dwatch X-SVN-Commit-Revision: 333515 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 05:43:48 -0000 Author: dteske Date: Sat May 12 05:43:47 2018 New Revision: 333515 URL: https://svnweb.freebsd.org/changeset/base/333515 Log: dwatch(1): Simplify info message test The info() function already tests $QUIET Sponsored by: Smule, Inc. Modified: head/cddl/usr.sbin/dwatch/dwatch Modified: head/cddl/usr.sbin/dwatch/dwatch ============================================================================== --- head/cddl/usr.sbin/dwatch/dwatch Sat May 12 05:41:28 2018 (r333514) +++ head/cddl/usr.sbin/dwatch/dwatch Sat May 12 05:43:47 2018 (r333515) @@ -859,7 +859,7 @@ fi # # Show the user what's being watched # -[ "$DEBUG$QUIET$EXIT_AFTER_COMPILE" ] || info "Watching '$PROBE' ..." +[ "$DEBUG$EXIT_AFTER_COMPILE" ] || info "Watching '$PROBE' ..." # # Header for watched probe entry From owner-svn-src-head@freebsd.org Sat May 12 05:49:32 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF771FC3386; Sat, 12 May 2018 05:49:31 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9E126870DD; Sat, 12 May 2018 05:49:31 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7EE541A494; Sat, 12 May 2018 05:49:31 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C5nVm4030889; Sat, 12 May 2018 05:49:31 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C5nVE9030888; Sat, 12 May 2018 05:49:31 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201805120549.w4C5nVE9030888@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sat, 12 May 2018 05:49:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333516 - head/cddl/usr.sbin/dwatch X-SVN-Group: head X-SVN-Commit-Author: dteske X-SVN-Commit-Paths: head/cddl/usr.sbin/dwatch X-SVN-Commit-Revision: 333516 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 05:49:32 -0000 Author: dteske Date: Sat May 12 05:49:31 2018 New Revision: 333516 URL: https://svnweb.freebsd.org/changeset/base/333516 Log: dwatch(1): Export ARGV to profiles loaded via load_profile() A module that wishes to post-process the output needs to know which arguments were passed in order to re-execute a child in a pipe-chain. Further, the expansion of ARGV needs to be such that items are escaped properly. Sponsored by: Smule, Inc. Modified: head/cddl/usr.sbin/dwatch/dwatch Modified: head/cddl/usr.sbin/dwatch/dwatch ============================================================================== --- head/cddl/usr.sbin/dwatch/dwatch Sat May 12 05:43:47 2018 (r333515) +++ head/cddl/usr.sbin/dwatch/dwatch Sat May 12 05:49:31 2018 (r333516) @@ -537,6 +537,11 @@ list_profiles() exit $SUCCESS } +shell_escape() +{ + echo "$*" | awk 'gsub(/'\''/, "&\\\\&&")||1' +} + load_profile() { local profile="$1" @@ -546,6 +551,44 @@ load_profile() local oldIFS="$IFS" local dir found= + local ARGV= + + [ $COUNT -gt 0 ] && ARGV="$ARGV -N $COUNT" + [ "$DEBUG" ] && ARGV="$ARGV -d" + [ "$DESTRUCTIVE_ACTIONS" ] && ARGV="$ARGV -w" + [ "$EXIT_AFTER_COMPILE" ] && ARGV="$ARGV -e" + [ "$GROUP" ] && ARGV="$ARGV -g $GROUP" + [ "$JID" ] && ARGV="$ARGV -j $JID" + [ $MAX_ARGS -ne $_MAX_ARGS ] && ARGV="$ARGV -B $MAX_ARGS" + [ $MAX_DEPTH -ne $_MAX_DEPTH ] && ARGV="$ARGV -K $MAX_DEPTH" + [ "$ONELINE" ] && ARGV="$ARGV -1" + [ "$PID" ] && ARGV="$ARGV -p $PID" + [ "$PSTREE" ] && ARGV="$ARGV -R" + [ "$QUIET" ] && ARGV="$ARGV -q" + [ "$TIMEOUT" ] && ARGV="$ARGV -T $TIMEOUT" + [ "$TRACE" ] && ARGV="$ARGV -x" + [ "$USER" ] && ARGV="$ARGV -u $USER" + [ "$VERBOSE" ] && ARGV="$ARGV -v" + + [ "$FILTER" ] && + ARGV="$ARGV -r '$( shell_escape "$FILTER" )'" + [ "$EXECREGEX" ] && + ARGV="$ARGV -z '$( shell_escape "$EXECREGEX" )'" + [ "$CUSTOM_DETAILS" ] && + ARGV="$ARGV -E '$( shell_escape "$EVENT_DETAILS" )'" + [ "$EVENT_TEST" ] && + ARGV="$ARGV -t '$( shell_escape "$EVENT_TEST" )'" + [ "$OUTPUT" ] && + ARGV="$ARGV -o '$( shell_escape "$OUTPUT" )'" + [ "$OUTPUT_CMD" ] && + ARGV="$ARGV -O '$( shell_escape "$OUTPUT_CMD" )'" + + case "$PROBE_TYPE" in + provider) ARGV="$ARGV -P" ;; + module) ARGV="$ARGV -m" ;; + function) ARGV="$ARGV -f" ;; + name) ARGV="$ARGV -n" ;; + esac IFS=: for dir in $DWATCH_PROFILES_PATH; do From owner-svn-src-head@freebsd.org Sat May 12 06:01:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B25A4FC3E4B; Sat, 12 May 2018 06:01:45 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 31C948914F; Sat, 12 May 2018 06:01:45 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 11F581A789; Sat, 12 May 2018 06:01:45 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C61ill037535; Sat, 12 May 2018 06:01:44 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C61f9g037517; Sat, 12 May 2018 06:01:41 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201805120601.w4C61f9g037517@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sat, 12 May 2018 06:01:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333517 - head/cddl/usr.sbin/dwatch/libexec X-SVN-Group: head X-SVN-Commit-Author: dteske X-SVN-Commit-Paths: head/cddl/usr.sbin/dwatch/libexec X-SVN-Commit-Revision: 333517 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 06:01:46 -0000 Author: dteske Date: Sat May 12 06:01:41 2018 New Revision: 333517 URL: https://svnweb.freebsd.org/changeset/base/333517 Log: dwatch(1): Allow `-E code' to override profile EVENT_DETAILS This allows quick changes to the formatted output of a profile. Sponsored by: Smule, Inc. Modified: head/cddl/usr.sbin/dwatch/libexec/chmod head/cddl/usr.sbin/dwatch/libexec/errno head/cddl/usr.sbin/dwatch/libexec/io head/cddl/usr.sbin/dwatch/libexec/ip head/cddl/usr.sbin/dwatch/libexec/kill head/cddl/usr.sbin/dwatch/libexec/nanosleep head/cddl/usr.sbin/dwatch/libexec/open head/cddl/usr.sbin/dwatch/libexec/proc head/cddl/usr.sbin/dwatch/libexec/rw head/cddl/usr.sbin/dwatch/libexec/sched head/cddl/usr.sbin/dwatch/libexec/sendrecv head/cddl/usr.sbin/dwatch/libexec/tcp head/cddl/usr.sbin/dwatch/libexec/udp head/cddl/usr.sbin/dwatch/libexec/vop_create head/cddl/usr.sbin/dwatch/libexec/vop_readdir head/cddl/usr.sbin/dwatch/libexec/vop_rename head/cddl/usr.sbin/dwatch/libexec/vop_symlink Modified: head/cddl/usr.sbin/dwatch/libexec/chmod ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/chmod Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/chmod Sat May 12 06:01:41 2018 (r333517) @@ -50,6 +50,7 @@ ID=$(( $ID + 1 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<mode, this->path); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/errno ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/errno Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/errno Sat May 12 06:01:41 2018 (r333517) @@ -22,6 +22,7 @@ ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<bio_length == 1 ? "" : "s"); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/ip ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/ip Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/ip Sat May 12 06:01:41 2018 (r333517) @@ -76,6 +76,7 @@ EVENT_TAG=$( cat <&9 ) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<length == 1 ? "" : "s"); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/kill ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/kill Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/kill Sat May 12 06:01:41 2018 (r333517) @@ -32,6 +32,7 @@ ID=$(( $ID + 1 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<sig, this->pid); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/nanosleep ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/nanosleep Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/nanosleep Sat May 12 06:01:41 2018 (r333517) @@ -38,6 +38,7 @@ ID=$(( $ID + 1 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<requested_sec, this->requested_nsec / 100000); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/open ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/open Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/open Sat May 12 06:01:41 2018 (r333517) @@ -42,6 +42,7 @@ ID=$(( $ID + 1 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<path); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/proc ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/proc Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/proc Sat May 12 06:01:41 2018 (r333517) @@ -149,6 +149,7 @@ ID=$(( $ID + 10 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<details); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/rw ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/rw Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/rw Sat May 12 06:01:41 2018 (r333517) @@ -55,6 +55,7 @@ ID=$(( $ID + 1 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<nbytes == 1 ? "" : "s"); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/sched ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/sched Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/sched Sat May 12 06:01:41 2018 (r333517) @@ -94,6 +94,7 @@ ID=$(( $ID + 6 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<details); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/sendrecv ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/sendrecv Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/sendrecv Sat May 12 06:01:41 2018 (r333517) @@ -197,6 +197,7 @@ ID=$(( $ID + 5 )) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<details); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/tcp ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/tcp Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/tcp Sat May 12 06:01:41 2018 (r333517) @@ -212,6 +212,7 @@ EVENT_TAG=$( cat <&9 ) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<details); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/udp ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/udp Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/udp Sat May 12 06:01:41 2018 (r333517) @@ -90,6 +90,7 @@ EVENT_TAG=$( cat <&9 ) ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<length == 1 ? "" : "s"); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/vop_create ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/vop_create Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/vop_create Sat May 12 06:01:41 2018 (r333517) @@ -181,6 +181,7 @@ EVENT_TEST="this->fi_mount != 0" ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<path); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/vop_readdir ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/vop_readdir Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/vop_readdir Sat May 12 06:01:41 2018 (r333517) @@ -173,6 +173,7 @@ EVENT_TEST="this->fi_mount != 0" ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9<path); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/vop_rename ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/vop_rename Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/vop_rename Sat May 12 06:01:41 2018 (r333517) @@ -287,6 +287,7 @@ EVENT_TEST="this->ffi_mount != 0 && this->tfi_mount != ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9< %s", this->fpath, this->tpath); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END Modified: head/cddl/usr.sbin/dwatch/libexec/vop_symlink ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/vop_symlink Sat May 12 05:49:31 2018 (r333516) +++ head/cddl/usr.sbin/dwatch/libexec/vop_symlink Sat May 12 06:01:41 2018 (r333517) @@ -182,6 +182,7 @@ EVENT_TEST="this->fi_mount != 0" ############################################################ EVENT DETAILS +if [ ! "$CUSTOM_DETAILS" ]; then exec 9< %s", this->path, this->target); EOF EVENT_DETAILS=$( cat <&9 ) +fi ################################################################################ # END From owner-svn-src-head@freebsd.org Sat May 12 06:18:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0EA71FC5BFD; Sat, 12 May 2018 06:18:17 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B40DF8CBBE; Sat, 12 May 2018 06:18:16 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 950EC1A95F; Sat, 12 May 2018 06:18:16 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C6IGp8046291; Sat, 12 May 2018 06:18:16 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C6IFpl046289; Sat, 12 May 2018 06:18:15 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201805120618.w4C6IFpl046289@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sat, 12 May 2018 06:18:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333518 - head/cddl/usr.sbin/dwatch/libexec X-SVN-Group: head X-SVN-Commit-Author: dteske X-SVN-Commit-Paths: head/cddl/usr.sbin/dwatch/libexec X-SVN-Commit-Revision: 333518 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 06:18:17 -0000 Author: dteske Date: Sat May 12 06:18:15 2018 New Revision: 333518 URL: https://svnweb.freebsd.org/changeset/base/333518 Log: dwatch(1): Expose process for ip/tcp/udp Knowing the value of execname during these probes is of some value even if it is commonly the interrupt kernel thread (intr[12]) -- quite often it is not, but that depends on the probe. Sponsored by: Smule, Inc. Modified: head/cddl/usr.sbin/dwatch/libexec/ip head/cddl/usr.sbin/dwatch/libexec/tcp head/cddl/usr.sbin/dwatch/libexec/udp Modified: head/cddl/usr.sbin/dwatch/libexec/ip ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/ip Sat May 12 06:01:41 2018 (r333517) +++ head/cddl/usr.sbin/dwatch/libexec/ip Sat May 12 06:18:15 2018 (r333518) @@ -17,20 +17,6 @@ ip) : ${PROBE:=ip:::send, ip:::receive} ;; *) : ${PROBE:=ip:::${PROFILE#ip-}} esac -############################################################ GLOBALS - -# -# This profile does not support these dwatch features -# NB: They are disabled here so they have no effect when profile is loaded -# -unset EXECNAME # -k name -unset EXECREGEX # -z regex -unset GROUP # -g group -unset PID # -p pid -unset PSARGS # affects -d -unset PSTREE # -R -unset USER # -u user - ############################################################ ACTIONS exec 9< Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B90EEFC6217; Sat, 12 May 2018 06:23:31 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 64BCB8E6E3; Sat, 12 May 2018 06:23:31 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4593F1AAED; Sat, 12 May 2018 06:23:31 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C6NV5d051207; Sat, 12 May 2018 06:23:31 GMT (envelope-from dteske@FreeBSD.org) Received: (from dteske@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C6NVKO051206; Sat, 12 May 2018 06:23:31 GMT (envelope-from dteske@FreeBSD.org) Message-Id: <201805120623.w4C6NVKO051206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dteske set sender to dteske@FreeBSD.org using -f From: Devin Teske Date: Sat, 12 May 2018 06:23:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333519 - head/cddl/usr.sbin/dwatch/libexec X-SVN-Group: head X-SVN-Commit-Author: dteske X-SVN-Commit-Paths: head/cddl/usr.sbin/dwatch/libexec X-SVN-Commit-Revision: 333519 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 06:23:32 -0000 Author: dteske Date: Sat May 12 06:23:30 2018 New Revision: 333519 URL: https://svnweb.freebsd.org/changeset/base/333519 Log: dwatch(1): Refactor sendrecv profile The profile for send(2)/recv(2) observation has been refactored to eliminate alloca() in favor of translations available in HEAD. Sponsored by: Smule, Inc. Modified: head/cddl/usr.sbin/dwatch/libexec/sendrecv Modified: head/cddl/usr.sbin/dwatch/libexec/sendrecv ============================================================================== --- head/cddl/usr.sbin/dwatch/libexec/sendrecv Sat May 12 06:18:15 2018 (r333518) +++ head/cddl/usr.sbin/dwatch/libexec/sendrecv Sat May 12 06:23:30 2018 (r333519) @@ -27,8 +27,10 @@ recv) : ${PROBE:=$( echo \ syscall::recvfrom:return, \ syscall::recvmsg:return )} ;; +recv*) + : ${PROBE:=syscall::$PROFILE:return} ;; *) - : ${PROBE:=syscall::$PROFILE} + : ${PROBE:=syscall::$PROFILE:entry} esac ############################################################ EVENT ACTION @@ -98,6 +100,8 @@ inline string address_family_string[sa_family_t af] = #pragma D binding "1.13" sa_data_size inline int sa_data_size = 14; +#pragma D binding "1.13" sa_dummy_data +inline char *sa_dummy_data = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; #pragma D binding "1.13" sa_data_addr inline string sa_data_addr[sa_family_t af, char data[sa_data_size]] = @@ -117,10 +121,14 @@ inline uint16_t sa_data_port[sa_family_t af, char data #pragma D binding "1.13" translator translator sainfo_t < struct sockaddr *SA > { - sa_family = SA->sa_family; - family = address_family_string[SA->sa_family]; - addr = sa_data_addr[SA->sa_family, SA->sa_data]; - port = sa_data_port[SA->sa_family, SA->sa_data]; + sa_family = SA == NULL ? 0 : SA->sa_family; + family = address_family_string[SA == NULL ? 0 : SA->sa_family]; + addr = SA == NULL ? + sa_data_addr[0, sa_dummy_data] : + sa_data_addr[SA->sa_family, SA->sa_data]; + port = SA == NULL ? + sa_data_port[0, sa_dummy_data] : + sa_data_port[SA->sa_family, SA->sa_data]; }; this sainfo_t sainfo; @@ -150,10 +158,8 @@ $PROBE /* probe ID $ID */ syscall::recvfrom:entry /* probe ID $(( $ID + 1 )) */ {${TRACE:+ printf("<$(( $ID + 1 ))>");} - this->sa = args[4] == NULL ? - (struct sockaddr *)alloca(sizeof(struct sockaddr)) : - (struct sockaddr *)copyin(arg4, sizeof(struct sockaddr)); - this->sainfo = xlate ((struct sockaddr *)this->sa); + this->sainfo = xlate ((struct sockaddr *)(args[4] == NULL ? + NULL : copyin(arg4, sizeof(struct sockaddr)))); } syscall::recvfrom:return /* probe ID $(( $ID + 2 )) */ @@ -166,10 +172,18 @@ syscall::recvfrom:return /* probe ID $(( $ID + 2 )) */ this->sainfo.addr, this->sainfo.port])); } -syscall::recvmsg:return /* probe ID $(( $ID + 3 )) */ +syscall::recvmsg:entry /* probe ID $(( $ID + 3 )) */ {${TRACE:+ printf("<$(( $ID + 3 ))>");} + this->sockaddr = (struct sockaddr *)arg1; +} + +syscall::recvmsg:return /this->sockaddr != NULL/ /* probe ID $(( $ID + 4 )) */ +{${TRACE:+ + printf("<$(( $ID + 4 ))>");} this->nbytes = arg0; + this->sainfo = xlate ((struct sockaddr *)this->sockaddr); + this->details = strjoin("sainfo=[", "]"); } syscall::sendmsg:entry /* probe ID $(( $ID + 5 )) */ @@ -178,14 +192,12 @@ syscall::sendmsg:entry /* probe ID $(( $ID + 5 )) */ this->nbytes = arg2; } -syscall::sendto:entry /* probe ID $(( $ID + 4 )) */ +syscall::sendto:entry /* probe ID $(( $ID + 6 )) */ {${TRACE:+ - printf("<$(( $ID + 4 ))>");} + printf("<$(( $ID + 6 ))>");} this->nbytes = arg2; - this->sa = arg4 == NULL ? - (struct sockaddr *)alloca(sizeof(struct sockaddr)) : - (struct sockaddr *)copyin(arg4, sizeof(struct sockaddr)); - this->sainfo = xlate ((struct sockaddr *)this->sa); + this->sainfo = xlate ((struct sockaddr *)(arg4 == NULL ? + NULL : copyin(arg4, sizeof(struct sockaddr)))); this->details = strjoin("to ", strjoin( strjoin(this->sainfo.family, " "), af_details[this->sainfo.sa_family, @@ -193,7 +205,7 @@ syscall::sendto:entry /* probe ID $(( $ID + 4 )) */ } EOF ACTIONS=$( cat <&9 ) -ID=$(( $ID + 5 )) +ID=$(( $ID + 7 )) ############################################################ EVENT DETAILS From owner-svn-src-head@freebsd.org Sat May 12 07:35:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE082FC98B0; Sat, 12 May 2018 07:35:26 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay01.pair.com (relay01.pair.com [209.68.5.15]) (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 8BF1A77062; Sat, 12 May 2018 07:35:26 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay01.pair.com (Postfix) with ESMTP id 7AC42D00AC9; Sat, 12 May 2018 03:35:19 -0400 (EDT) Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.9/8.14.9) with ESMTP id w4C7ZGdA068614 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 12 May 2018 09:35:16 +0200 (CEST) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.9/8.14.9/Submit) id w4C7ZGIE068613; Sat, 12 May 2018 09:35:16 +0200 (CEST) (envelope-from pho) Date: Sat, 12 May 2018 09:35:16 +0200 From: Peter Holm To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333509 - in head/sys: dev/hwpmc kern sys Message-ID: <20180512073516.GA68235@x2.osted.lan> References: <201805120126.w4C1QYMu097965@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805120126.w4C1QYMu097965@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 07:35:27 -0000 On Sat, May 12, 2018 at 01:26:34AM +0000, Matt Macy wrote: > Author: mmacy > Date: Sat May 12 01:26:34 2018 > New Revision: 333509 > URL: https://svnweb.freebsd.org/changeset/base/333509 > > Log: > hwpmc(9): Make pmclog buffer pcpu and update constants > > On non-trivial SMP systems the contention on the pmc_owner mutex leads > to a substantial number of samples captured being from the pmc process > itself. This change a) makes buffers larger to avoid contention on the > global list b) makes the working sample buffer per cpu. > > Run pmcstat in the background (default event rate of 64k): > pmcstat -S UNHALTED_CORE_CYCLES -O /dev/null sleep 600 & > > Before: > make -j96 buildkernel -s >&/dev/null 3336.68s user 24684.10s system 7442% cpu 6:16.50 total > > After: > make -j96 buildkernel -s >&/dev/null 2697.82s user 1347.35s system 6058% cpu 1:06.77 total > > For more realistic overhead measurement set the sample rate for ~2khz > on a 2.1Ghz processor: > pmcstat -n 1050000 -S UNHALTED_CORE_CYCLES -O /dev/null sleep 6000 & > > Collecting 10 samples of `make -j96 buildkernel` from each: > > x before > + after > > real time: > N Min Max Median Avg Stddev > x 10 76.4 127.62 84.845 88.577 15.100031 > + 10 59.71 60.79 60.135 60.179 0.29957192 > Difference at 95.0% confidence > -28.398 +/- 10.0344 > -32.0602% +/- 7.69825% > (Student's t, pooled s = 10.6794) > > system time: > N Min Max Median Avg Stddev > x 10 2277.96 6948.53 2949.47 3341.492 1385.2677 > + 10 1038.7 1081.06 1070.555 1064.017 15.85404 > Difference at 95.0% confidence > -2277.47 +/- 920.425 > -68.1574% +/- 8.77623% > (Student's t, pooled s = 979.596) > > x no pmc > + pmc running > real time: > > HEAD: > N Min Max Median Avg Stddev > x 10 58.38 59.15 58.86 58.847 0.22504567 > + 10 76.4 127.62 84.845 88.577 15.100031 > Difference at 95.0% confidence > 29.73 +/- 10.0335 > 50.5208% +/- 17.0525% > (Student's t, pooled s = 10.6785) > > patched: > N Min Max Median Avg Stddev > x 10 58.38 59.15 58.86 58.847 0.22504567 > + 10 59.71 60.79 60.135 60.179 0.29957192 > Difference at 95.0% confidence > 1.332 +/- 0.248939 > 2.2635% +/- 0.426506% > (Student's t, pooled s = 0.264942) > > system time: > > HEAD: > N Min Max Median Avg Stddev > x 10 1010.15 1073.31 1025.465 1031.524 18.135705 > + 10 2277.96 6948.53 2949.47 3341.492 1385.2677 > Difference at 95.0% confidence > 2309.97 +/- 920.443 > 223.937% +/- 89.3039% > (Student's t, pooled s = 979.616) > > patched: > N Min Max Median Avg Stddev > x 10 1010.15 1073.31 1025.465 1031.524 18.135705 > + 10 1038.7 1081.06 1070.555 1064.017 15.85404 > Difference at 95.0% confidence > 32.493 +/- 16.0042 > 3.15% +/- 1.5794% > (Student's t, pooled s = 17.0331) > > Reviewed by: jeff@ > Approved by: sbruno@ > Differential Revision: https://reviews.freebsd.org/D15155 > > Modified: > head/sys/dev/hwpmc/hwpmc_amd.c > head/sys/dev/hwpmc/hwpmc_core.c > head/sys/dev/hwpmc/hwpmc_e500.c > head/sys/dev/hwpmc/hwpmc_intel.c > head/sys/dev/hwpmc/hwpmc_logging.c > head/sys/dev/hwpmc/hwpmc_mod.c > head/sys/dev/hwpmc/hwpmc_mpc7xxx.c > head/sys/dev/hwpmc/hwpmc_piv.c > head/sys/dev/hwpmc/hwpmc_ppc970.c > head/sys/dev/hwpmc/hwpmc_ppro.c > head/sys/dev/hwpmc/hwpmc_soft.c > head/sys/kern/kern_pmc.c > head/sys/sys/pmc.h > head/sys/sys/pmckern.h > > Modified: head/sys/dev/hwpmc/hwpmc_amd.c > ============================================================================== > --- head/sys/dev/hwpmc/hwpmc_amd.c Fri May 11 22:16:23 2018 (r333508) Got this during boot: ada1: Serial Number 15150F3BC143 ada1: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes) ada1: Command Queueing enabled ada1: 976762MB (2000409264 512 byte sectors) Fatal trap 12: page fault while in kernel mode cpuid = 103; apic id = 7b fault virtual address = 0x38 fault code = supervisor write data, page not present instruction pointer = 0x20:0xffffffff826d0a3e stack pointer = 0x28:0xffffffff827c62c0 frame pointer = 0x28:0xffffffff827c62f0 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 0 (swapper) [ thread pid 0 tid 100000 ] Stopped at pmclog_initialize+0x15e: addl $0x1,ll+0x17(%rax) db> bt Tracing pid 0 tid 100000 td 0xffffffff81ff1160 pmclog_initialize() at pmclog_initialize+0x15e/frame 0xffffffff827c62f0 load() at load+0x1097/frame 0xffffffff827c6350 kern_syscall_module_handler() at kern_syscall_module_handler+0x2a1/frame 0xffffffff827c63a0 module_register_init() at module_register_init+0xc0/frame 0xffffffff827c63d0 mi_startup() at mi_startup+0x118/frame 0xffffffff827c63f0 btext() at btext+0x2c db> x/s version version: FreeBSD 12.0-CURRENT #2 r333519: Sat May 12 09:14:17 CEST 2018\012 pho@flix1a.netperf.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 db> show registers cs 0x20 ds 0x3b ll+0x1a es 0x3b ll+0x1a fs 0x13 gs 0x28 ll+0x7 ss 0x28 ll+0x7 rax 0 rcx 0xffffffffffffffff rdx 0xffffffff826e0a21 ucp_events+0x2d81 rbx 0x34 ll+0x13 rsp 0xffffffff827c62c0 rbp 0xffffffff827c62f0 rsi 0xffffffff81b16340 lock_class_mtx_spin rdi 0x34 ll+0x13 r8 0x20000 r9 0x32 ll+0x11 r10 0xfffff8183fd1f380 r11 0 r12 0x67 ll+0x46 r13 0x67 ll+0x46 r14 0x1 r15 0x68 ll+0x47 rip 0xffffffff826d0a3e pmclog_initialize+0x15e rflags 0x10247 _binary_t5fw_cfg_uwire_txt_size+0xac98 pmclog_initialize+0x15e: addl $0x1,ll+0x17(%rax) db> - Peter From owner-svn-src-head@freebsd.org Sat May 12 08:23:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3222BFCC4AD; Sat, 12 May 2018 08:23:18 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D8CCB80FBF; Sat, 12 May 2018 08:23:17 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BB2491BE3F; Sat, 12 May 2018 08:23:17 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C8NH26012322; Sat, 12 May 2018 08:23:17 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C8NHqY012321; Sat, 12 May 2018 08:23:17 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805120823.w4C8NHqY012321@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 08:23:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333520 - head/etc/rc.d X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/etc/rc.d X-SVN-Commit-Revision: 333520 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 08:23:18 -0000 Author: des Date: Sat May 12 08:23:17 2018 New Revision: 333520 URL: https://svnweb.freebsd.org/changeset/base/333520 Log: Remove the ability to generate long since useless SSH1 RSA keys. Modified: head/etc/rc.d/sshd Modified: head/etc/rc.d/sshd ============================================================================== --- head/etc/rc.d/sshd Sat May 12 06:23:30 2018 (r333519) +++ head/etc/rc.d/sshd Sat May 12 08:23:17 2018 (r333520) @@ -21,7 +21,6 @@ configtest_cmd="sshd_configtest" pidfile="/var/run/${name}.pid" extra_commands="configtest keygen reload" -: ${sshd_rsa1_enable:="no"} : ${sshd_rsa_enable:="yes"} : ${sshd_dsa_enable:="no"} : ${sshd_ecdsa_enable:="yes"} @@ -38,9 +37,6 @@ sshd_keygen_alg() fi case $alg in - rsa1) - keyfile="/etc/ssh/ssh_host_key" - ;; rsa|dsa|ecdsa|ed25519) keyfile="/etc/ssh/ssh_host_${alg}_key" ;; @@ -65,7 +61,6 @@ sshd_keygen_alg() sshd_keygen() { - sshd_keygen_alg rsa1 sshd_keygen_alg rsa sshd_keygen_alg dsa sshd_keygen_alg ecdsa From owner-svn-src-head@freebsd.org Sat May 12 10:11:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D0FDFD180A; Sat, 12 May 2018 10:11:34 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 417CD76B4F; Sat, 12 May 2018 10:11:34 +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 242231CEB0; Sat, 12 May 2018 10:11:34 +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 w4CABYlr064013; Sat, 12 May 2018 10:11:34 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CABYnZ064012; Sat, 12 May 2018 10:11:34 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121011.w4CABYnZ064012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 10:11:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333521 - head/lib/libc/sys X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/lib/libc/sys X-SVN-Commit-Revision: 333521 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 10:11:34 -0000 Author: kib Date: Sat May 12 10:11:33 2018 New Revision: 333521 URL: https://svnweb.freebsd.org/changeset/base/333521 Log: PROC_PDEATHSIG_CTL will appear first in 11.2. Submitted by: Thomas Munro MFC after: 3 days Differential revision: https://reviews.freebsd.org/D15399 Modified: head/lib/libc/sys/procctl.2 Modified: head/lib/libc/sys/procctl.2 ============================================================================== --- head/lib/libc/sys/procctl.2 Sat May 12 08:23:17 2018 (r333520) +++ head/lib/libc/sys/procctl.2 Sat May 12 10:11:33 2018 (r333521) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 20, 2018 +.Dd May 12, 2018 .Dt PROCCTL 2 .Os .Sh NAME @@ -550,4 +550,4 @@ The .Dv PROC_PDEATHSIG_CTL facility is based on the prctl(PR_SET_PDEATHSIG, ...) feature of Linux, and first appeared in -.Fx 12.0 . +.Fx 11.2 . From owner-svn-src-head@freebsd.org Sat May 12 10:48:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9D4EFD3567; Sat, 12 May 2018 10:48: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8781C7F456; Sat, 12 May 2018 10:48: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 5EF3B1D4DC; Sat, 12 May 2018 10:48: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 w4CAms4c083649; Sat, 12 May 2018 10:48:54 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CAmsUT083648; Sat, 12 May 2018 10:48:54 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121048.w4CAmsUT083648@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 10:48:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333522 - head/sys/i386/i386 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/i386/i386 X-SVN-Commit-Revision: 333522 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 10:48:55 -0000 Author: kib Date: Sat May 12 10:48:53 2018 New Revision: 333522 URL: https://svnweb.freebsd.org/changeset/base/333522 Log: Fix use of the custom TSS on i386 after the 4/4 split. Record common_tssd, the descriptor to be written in GDT to point to the common TSS, before LTR is executed. The LTR instruction sets the loaded descriptor type to 386 TSS busy, which traps on reloads. Sponsored by: The FreeBSD Foundation Modified: head/sys/i386/i386/machdep.c Modified: head/sys/i386/i386/machdep.c ============================================================================== --- head/sys/i386/i386/machdep.c Sat May 12 10:11:33 2018 (r333521) +++ head/sys/i386/i386/machdep.c Sat May 12 10:48:53 2018 (r333522) @@ -2532,12 +2532,12 @@ machdep_init_trampoline(void) gdt[GPROC0_SEL].sd.sd_lobase = (int)tss; gdt[GPROC0_SEL].sd.sd_hibase = (u_int)tss >> 24; gdt[GPROC0_SEL].sd.sd_type = SDT_SYS386TSS; - ltr(GSEL(GPROC0_SEL, SEL_KPL)); PCPU_SET(fsgs_gdt, &gdt[GUFS_SEL].sd); PCPU_SET(tss_gdt, &gdt[GPROC0_SEL].sd); PCPU_SET(common_tssd, *PCPU_GET(tss_gdt)); PCPU_SET(common_tssp, tss); + ltr(GSEL(GPROC0_SEL, SEL_KPL)); trampoline = pmap_trm_alloc(end_exceptions - start_exceptions, M_NOWAIT); From owner-svn-src-head@freebsd.org Sat May 12 10:51:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65483FD379D; Sat, 12 May 2018 10:51:51 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 094157FE77; Sat, 12 May 2018 10:51:51 +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 DBC9C1D636; Sat, 12 May 2018 10:51:50 +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 w4CApoQr087876; Sat, 12 May 2018 10:51:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CApoh7087875; Sat, 12 May 2018 10:51:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121051.w4CApoh7087875@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 10:51:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333523 - head/sys/i386/include X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/i386/include X-SVN-Commit-Revision: 333523 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 10:51:51 -0000 Author: kib Date: Sat May 12 10:51:50 2018 New Revision: 333523 URL: https://svnweb.freebsd.org/changeset/base/333523 Log: Create a macro for PIC code which loads %cr3 from tramp_idleptd. Sponsored by: The FreeBSD Foundation Modified: head/sys/i386/include/asmacros.h Modified: head/sys/i386/include/asmacros.h ============================================================================== --- head/sys/i386/include/asmacros.h Sat May 12 10:48:53 2018 (r333522) +++ head/sys/i386/include/asmacros.h Sat May 12 10:51:50 2018 (r333523) @@ -198,11 +198,15 @@ movl %edx, %esp .endm - .macro MOVE_STACKS + .macro LOAD_KCR3 call 1000f 1000: popl %eax movl (tramp_idleptd - 1000b)(%eax), %eax movl %eax, %cr3 + .endm + + .macro MOVE_STACKS + LOAD_KCR3 NMOVE_STACKS .endm From owner-svn-src-head@freebsd.org Sat May 12 10:57:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D830FD3D06; Sat, 12 May 2018 10:57:35 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 27312821C2; Sat, 12 May 2018 10:57:35 +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 0595A1D671; Sat, 12 May 2018 10:57:35 +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 w4CAvYj7088838; Sat, 12 May 2018 10:57:34 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CAvYET088836; Sat, 12 May 2018 10:57:34 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121057.w4CAvYET088836@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 10:57:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333524 - head/sys/i386/i386 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/i386/i386 X-SVN-Commit-Revision: 333524 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 10:57:35 -0000 Author: kib Date: Sat May 12 10:57:34 2018 New Revision: 333524 URL: https://svnweb.freebsd.org/changeset/base/333524 Log: Initialize tramp_idleptd during cold pmap startup, before the exception code is copied to the trampoline. The correct value is then copied to trampoline automatically, so tramp_idleptd_reloced can be eliminated. This will allow to use the same exception entry code to handle traps from vm86 bios calls on early boot stage, as after the trampoline is configured. Sponsored by: The FreeBSD Foundation Modified: head/sys/i386/i386/machdep.c head/sys/i386/i386/pmap.c Modified: head/sys/i386/i386/machdep.c ============================================================================== --- head/sys/i386/i386/machdep.c Sat May 12 10:51:50 2018 (r333523) +++ head/sys/i386/i386/machdep.c Sat May 12 10:57:34 2018 (r333524) @@ -2508,15 +2508,12 @@ init386(int first) return ((register_t)thread0.td_pcb); } -extern u_int tramp_idleptd; - static void machdep_init_trampoline(void) { struct region_descriptor r_gdt, r_idt; struct i386tss *tss; char *copyout_buf, *trampoline, *tramp_stack_base; - u_int *tramp_idleptd_reloced; int x; gdt = pmap_trm_alloc(sizeof(union descriptor) * NGDT * mp_ncpus, @@ -2553,14 +2550,6 @@ machdep_init_trampoline(void) /* Re-initialize new IDT since the handlers were relocated */ setidt_disp = trampoline - start_exceptions; fixup_idt(); - - tramp_idleptd_reloced = (u_int *)((uintptr_t)&tramp_idleptd + - setidt_disp); -#if defined(PAE) || defined(PAE_TABLES) - *tramp_idleptd_reloced = (u_int)IdlePDPT; -#else - *tramp_idleptd_reloced = (u_int)IdlePTD; -#endif r_idt.rd_limit = sizeof(struct gate_descriptor) * NIDT - 1; r_idt.rd_base = (int)idt; Modified: head/sys/i386/i386/pmap.c ============================================================================== --- head/sys/i386/i386/pmap.c Sat May 12 10:51:50 2018 (r333523) +++ head/sys/i386/i386/pmap.c Sat May 12 10:57:34 2018 (r333524) @@ -366,6 +366,7 @@ pdpt_entry_t *IdlePDPT; /* phys addr of kernel PDPT */ #endif pt_entry_t *KPTmap; /* address of kernel page tables */ u_long KPTphys; /* phys addr of kernel page tables */ +extern u_long tramp_idleptd; static u_long allocpages(u_int cnt, u_long *physfree) @@ -531,6 +532,7 @@ pmap_cold(void) #else cr3 = (u_int)IdlePTD; #endif + tramp_idleptd = cr3; load_cr3(cr3); load_cr0(rcr0() | CR0_PG); From owner-svn-src-head@freebsd.org Sat May 12 11:02:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F21A3FD415B; Sat, 12 May 2018 11:02:39 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A87A08341F; Sat, 12 May 2018 11:02:39 +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 8B2981D800; Sat, 12 May 2018 11:02:39 +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 w4CB2dX6093683; Sat, 12 May 2018 11:02:39 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CB2djW093682; Sat, 12 May 2018 11:02:39 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121102.w4CB2djW093682@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 11:02:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333525 - head/sys/i386/i386 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/i386/i386 X-SVN-Commit-Revision: 333525 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 11:02:40 -0000 Author: kib Date: Sat May 12 11:02:39 2018 New Revision: 333525 URL: https://svnweb.freebsd.org/changeset/base/333525 Log: On return from exception or interrupt, returns to vm86 mode with PCB_VM86CALL pcb flag not set should be treated same as return to userspace. Most important, the address space must be switched. This fixes usermode vm86 operations after the 4/4 split. Sponsored by: The FreeBSD Foundation Modified: head/sys/i386/i386/exception.s Modified: head/sys/i386/i386/exception.s ============================================================================== --- head/sys/i386/i386/exception.s Sat May 12 10:57:34 2018 (r333524) +++ head/sys/i386/i386/exception.s Sat May 12 11:02:39 2018 (r333525) @@ -502,11 +502,15 @@ doreti_exit: je doreti_iret_nmi cmpl $T_TRCTRAP, TF_TRAPNO(%esp) je doreti_iret_nmi - testl $SEL_RPL_MASK, TF_CS(%esp) + movl $TF_SZ, %ecx + testl $PSL_VM,TF_EFLAGS(%esp) + jz 1f /* PCB_VM86CALL is not set */ + addl $VM86_STACK_SPACE, %ecx + jmp 2f +1: testl $SEL_RPL_MASK, TF_CS(%esp) jz doreti_popl_fs - movl %esp, %esi +2: movl %esp, %esi movl PCPU(TRAMPSTK), %edx - movl $TF_SZ, %ecx subl %ecx, %edx movl %edx, %edi rep; movsb From owner-svn-src-head@freebsd.org Sat May 12 11:07:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE355FD4437; Sat, 12 May 2018 11:07: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6E39A83BDB; Sat, 12 May 2018 11:07:00 +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 447A31D806; Sat, 12 May 2018 11:07:00 +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 w4CB701B093875; Sat, 12 May 2018 11:07:00 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CB70pa093874; Sat, 12 May 2018 11:07:00 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121107.w4CB70pa093874@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 11:07:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333526 - head/sys/i386/include X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/i386/include X-SVN-Commit-Revision: 333526 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 11:07:00 -0000 Author: kib Date: Sat May 12 11:06:59 2018 New Revision: 333526 URL: https://svnweb.freebsd.org/changeset/base/333526 Log: Kernel entry from vm86 mode, where PCB_VM86CALL pcb flag is not set, is executed on the right stack already. No copy from the entry stack to the kstack must be performed for vm86 bios call code to function. To access the pcb flags on kernel entry, unconditionally switch to kernel address space if vm86 mode is detected. This fixes very early vm86 bios calls, typically done when boot is performed by boot2 without loader, and kernel falls back to BIOS calls to get SMAP. Reported by: bde Sponsored by: The FreeBSD Foundation Modified: head/sys/i386/include/asmacros.h Modified: head/sys/i386/include/asmacros.h ============================================================================== --- head/sys/i386/include/asmacros.h Sat May 12 11:02:39 2018 (r333525) +++ head/sys/i386/include/asmacros.h Sat May 12 11:06:59 2018 (r333526) @@ -212,11 +212,17 @@ .macro KENTER testl $PSL_VM, TF_EFLAGS(%esp) - jnz 1f - testb $SEL_RPL_MASK, TF_CS(%esp) - jz 2f -1: MOVE_STACKS -2: + jz 1f + LOAD_KCR3 + movl PCPU(CURPCB), %eax + testl $PCB_VM86CALL, PCB_FLAGS(%eax) + jnz 3f + NMOVE_STACKS + jmp 2f +1: testb $SEL_RPL_MASK, TF_CS(%esp) + jz 3f +2: MOVE_STACKS +3: .endm #endif /* LOCORE */ From owner-svn-src-head@freebsd.org Sat May 12 11:53:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 343DBFD67D5; Sat, 12 May 2018 11:53:51 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D77F16F798; Sat, 12 May 2018 11:53:50 +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 B9B5B1E01E; Sat, 12 May 2018 11:53:50 +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 w4CBroW6019348; Sat, 12 May 2018 11:53:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CBro4x019346; Sat, 12 May 2018 11:53:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121153.w4CBro4x019346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 11:53:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333534 - head/tools/test/vm86 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/tools/test/vm86 X-SVN-Commit-Revision: 333534 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 11:53:51 -0000 Author: kib Date: Sat May 12 11:53:49 2018 New Revision: 333534 URL: https://svnweb.freebsd.org/changeset/base/333534 Log: Add a test for vm86(2), simple to use and diagnose. MFC after: 1 week Sponsored by: The FreeBSD Foundation Added: head/tools/test/vm86/ head/tools/test/vm86/Makefile (contents, props changed) head/tools/test/vm86/vm86_test.c (contents, props changed) head/tools/test/vm86/vm86_test_asm.s (contents, props changed) Added: head/tools/test/vm86/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/test/vm86/Makefile Sat May 12 11:53:49 2018 (r333534) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +all: vm86_test + +vm86_test: vm86_test_asm.s vm86_test.c + $(CC) -Wall -Wextra -g -m32 -O -o vm86_test vm86_test_asm.s vm86_test.c + Added: head/tools/test/vm86/vm86_test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/test/vm86/vm86_test.c Sat May 12 11:53:49 2018 (r333534) @@ -0,0 +1,122 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); +/* $Id: vm86_test.c,v 1.10 2018/05/12 11:35:58 kostik Exp kostik $ */ + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +static u_int gs; + +static void +sig_handler(int signo, siginfo_t *si __unused, void *ucp) +{ + ucontext_t *uc; + mcontext_t *mc; + + uc = ucp; + mc = &uc->uc_mcontext; + + /* + * Reload pointer to the TLS base, so that malloc inside + * printf() works. + */ + load_gs(gs); + + printf("sig %d %%eax %#x %%ecx %#x %%eip %#x\n", signo, + mc->mc_eax, mc->mc_ecx, mc->mc_eip); + exit(0); +} + +extern char vm86_code_start[], vm86_code_end[]; + +int +main(void) +{ + ucontext_t uc; + struct sigaction sa; + struct vm86_init_args va; + stack_t ssa; + char *vm86_code; + + gs = rgs(); + + memset(&ssa, 0, sizeof(ssa)); + ssa.ss_size = PAGE_SIZE * 128; + ssa.ss_sp = mmap(NULL, ssa.ss_size, PROT_READ | PROT_WRITE | + PROT_EXEC, MAP_ANON, -1, 0); + if (ssa.ss_sp == MAP_FAILED) + err(1, "mmap sigstack"); + if (sigaltstack(&ssa, NULL) == -1) + err(1, "sigaltstack"); + + memset(&sa, 0, sizeof(sa)); + sa.sa_sigaction = sig_handler; + sa.sa_flags = SA_SIGINFO | SA_ONSTACK; + if (sigaction(SIGBUS, &sa, NULL) == -1) + err(1, "sigaction SIGBUS"); + if (sigaction(SIGSEGV, &sa, NULL) == -1) + err(1, "sigaction SIGSEGV"); + if (sigaction(SIGILL, &sa, NULL) == -1) + err(1, "sigaction SIGILL"); + + vm86_code = mmap((void *)0x10000, PAGE_SIZE, PROT_READ | PROT_WRITE | + PROT_EXEC, MAP_ANON | MAP_FIXED, -1, 0); + if (vm86_code == MAP_FAILED) + err(1, "mmap"); + memcpy(vm86_code, vm86_code_start, vm86_code_end - vm86_code_start); + + memset(&va, 0, sizeof(va)); + if (i386_vm86(VM86_INIT, &va) == -1) + err(1, "VM86_INIT"); + + memset(&uc, 0, sizeof(uc)); + uc.uc_mcontext.mc_ecx = 0x2345; + uc.uc_mcontext.mc_eflags = PSL_VM | PSL_USER; + uc.uc_mcontext.mc_cs = uc.uc_mcontext.mc_ds = uc.uc_mcontext.mc_es = + uc.uc_mcontext.mc_ss = (uintptr_t)vm86_code >> 4; + uc.uc_mcontext.mc_esp = 0xfffe; + sigreturn(&uc); +} Added: head/tools/test/vm86/vm86_test_asm.s ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/test/vm86/vm86_test_asm.s Sat May 12 11:53:49 2018 (r333534) @@ -0,0 +1,42 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * 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$ + * $Id: vm86_test_asm.s,v 1.2 2018/05/12 11:39:00 kostik Exp kostik $ + */ + + .text + .code16 + .globl vm86_code_start, vm86_code_end +vm86_code_start: +1: inc %ax + loop 1b + ud2 +vm86_code_end: From owner-svn-src-head@freebsd.org Sat May 12 12:00:20 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0ECC8FD74AE; Sat, 12 May 2018 12:00:20 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B507372FA9; Sat, 12 May 2018 12:00:19 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 95BC81E04B; Sat, 12 May 2018 12:00:19 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CC0J6F020540; Sat, 12 May 2018 12:00:19 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CC0Ikx020535; Sat, 12 May 2018 12:00:18 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121200.w4CC0Ikx020535@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 12:00:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333551 - in head/contrib/ldns: . compat drill ldns m4 packaging X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/ldns: . compat drill ldns m4 packaging X-SVN-Commit-Revision: 333551 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 12:00:20 -0000 Author: des Date: Sat May 12 12:00:18 2018 New Revision: 333551 URL: https://svnweb.freebsd.org/changeset/base/333551 Log: Upgrade LDNS to 1.7.0. I've been holding back on this because 1.7.0 requires OpenSSL 1.1.0 or newer for full DANE support. But we can't wait forever, and nothing in base uses DANE anyway, so here we go. Added: head/contrib/ldns/m4/ax_config_feature.m4 - copied unchanged from r313156, vendor/ldns/dist/m4/ax_config_feature.m4 head/contrib/ldns/m4/ax_have_poll.m4 - copied unchanged from r313156, vendor/ldns/dist/m4/ax_have_poll.m4 Modified: head/contrib/ldns/Changelog head/contrib/ldns/Makefile.in head/contrib/ldns/README head/contrib/ldns/README.git head/contrib/ldns/aclocal.m4 head/contrib/ldns/acx_nlnetlabs.m4 head/contrib/ldns/buffer.c head/contrib/ldns/compat/b64_pton.c head/contrib/ldns/compat/malloc.c head/contrib/ldns/compat/snprintf.c head/contrib/ldns/config.guess head/contrib/ldns/config.sub head/contrib/ldns/configure head/contrib/ldns/configure.ac head/contrib/ldns/dane.c head/contrib/ldns/dname.c head/contrib/ldns/dnssec.c head/contrib/ldns/dnssec_sign.c head/contrib/ldns/dnssec_verify.c head/contrib/ldns/dnssec_zone.c head/contrib/ldns/drill/chasetrace.c head/contrib/ldns/drill/config.h head/contrib/ldns/drill/config.h.in head/contrib/ldns/drill/configure head/contrib/ldns/drill/configure.ac head/contrib/ldns/drill/drill.1 head/contrib/ldns/drill/drill.1.in head/contrib/ldns/drill/drill.c head/contrib/ldns/drill/drill.h head/contrib/ldns/drill/error.c head/contrib/ldns/drill/securetrace.c head/contrib/ldns/drill/work.c head/contrib/ldns/duration.c head/contrib/ldns/error.c head/contrib/ldns/freebsd-configure.sh head/contrib/ldns/higher.c head/contrib/ldns/host2str.c head/contrib/ldns/host2wire.c head/contrib/ldns/install-sh head/contrib/ldns/keys.c head/contrib/ldns/ldns/buffer.h head/contrib/ldns/ldns/common.h head/contrib/ldns/ldns/common.h.in head/contrib/ldns/ldns/config.h head/contrib/ldns/ldns/config.h.in head/contrib/ldns/ldns/dane.h head/contrib/ldns/ldns/dname.h head/contrib/ldns/ldns/dnssec.h head/contrib/ldns/ldns/dnssec_sign.h head/contrib/ldns/ldns/dnssec_verify.h head/contrib/ldns/ldns/dnssec_zone.h head/contrib/ldns/ldns/duration.h head/contrib/ldns/ldns/error.h head/contrib/ldns/ldns/higher.h head/contrib/ldns/ldns/host2str.h head/contrib/ldns/ldns/host2wire.h head/contrib/ldns/ldns/keys.h head/contrib/ldns/ldns/net.h head/contrib/ldns/ldns/net.h.in head/contrib/ldns/ldns/packet.h head/contrib/ldns/ldns/radix.h head/contrib/ldns/ldns/rbtree.h head/contrib/ldns/ldns/rdata.h head/contrib/ldns/ldns/resolver.h head/contrib/ldns/ldns/rr.h head/contrib/ldns/ldns/str2host.h head/contrib/ldns/ldns/tsig.h head/contrib/ldns/ldns/update.h head/contrib/ldns/ldns/util.h head/contrib/ldns/ldns/util.h.in head/contrib/ldns/ldns/wire2host.h head/contrib/ldns/ldns/zone.h head/contrib/ldns/libdns.doxygen head/contrib/ldns/ltmain.sh head/contrib/ldns/m4/libtool.m4 head/contrib/ldns/m4/ltoptions.m4 head/contrib/ldns/m4/ltsugar.m4 head/contrib/ldns/m4/ltversion.m4 head/contrib/ldns/m4/lt~obsolete.m4 head/contrib/ldns/net.c head/contrib/ldns/packaging/ldns-config.1 head/contrib/ldns/packaging/ldns-config.in head/contrib/ldns/packet.c head/contrib/ldns/parse.c head/contrib/ldns/radix.c head/contrib/ldns/rbtree.c head/contrib/ldns/rdata.c head/contrib/ldns/resolver.c head/contrib/ldns/rr.c head/contrib/ldns/rr_functions.c head/contrib/ldns/str2host.c head/contrib/ldns/tsig.c head/contrib/ldns/update.c head/contrib/ldns/util.c head/contrib/ldns/wire2host.c head/contrib/ldns/zone.c Directory Properties: head/contrib/ldns/ (props changed) Modified: head/contrib/ldns/Changelog ============================================================================== --- head/contrib/ldns/Changelog Sat May 12 11:56:59 2018 (r333550) +++ head/contrib/ldns/Changelog Sat May 12 12:00:18 2018 (r333551) @@ -1,3 +1,118 @@ +1.7.0 2016-12-20 + * Fix lookup of relative names in ldns_resolver_search. + * bugfix #548: Double free for answers > 4096 in ldns_resolver_send_pkt + * Follow CNAME's when tracing with drill (TODO dnssec trace) + * Fix #551 change Regent to Copyright holder in BSD license in + some of the headings of the file, to match the opensource.org + BSD license. + * -e option makes ldns-compare-zones exit with status code 2 on difference + * Filter out specified RR types with ldns-read-zone -e and -E options + * bugfix #563: Correct DNSKEY from DSA private key. Thanks Peter Koch. + * bugfix #562: ldns-keygen match DSA key maximum size with library. + And check keysizes with all algorithms. Thanks Peter Koch. + * ldns-verify-zone accepts only one single zonefile as argument. + * bugfix #573: ldns-keygen write private keys with mode 0600. + Thanks Leon Weber + * Fix configure to make ldns compile with LibreSSL 2.0 + * drill now also accepts dig style -y option + (-y <[algo:]name:key> i.s.o. -y ) + * OPENPGPKEY draft rr types. Enable with: --enable-rrtype-openpgpkey + * bugfix #608: Correct comment about escaped characters + * CDS and CDNSKEY rr type from RFC 7344. + --enable-rrtype-cds configure option removed + * fix: Memory leak in ldns_pkt_rr_list_by_name() + Thanks Johannes Naab + * fix: Memory leak in ldns_dname2buffer_wire_compress() + Thanks Max Liebkies + * bugfix #613: Allow tab as whitespace too in last rdata field of types + of variable length. Thanks Xiali Yan + * bugfix: strip trailing whitespace from $ORIGIN lines in zone files + * Let ldns-keygen output .ds files only for KSK keys + * Parse RFC7218 TLSA mnemonics, but do not output them + * Let ldns-dane use SPKI as the default selector i.s.o. Cert + * bugfix: Fit left over NSEC3s once more before adding empty non + terminals. Thanks Stuart Browne + * bugfix #605: Determine default trust anchor location at compile time + Thanks Peter Koch + * bugfix #697: Double free with ldns-dane create + Thanks Carsten Strotmann + * bugfix #623: Do not redefine bool type and boolean values + Thanks Jakob Petsovits + * bugfix #570: Add TLSA, CDS, CDNSKEY and OPENPGPKEY RR types to ldnsx + Thanks Shussain + * bugfix #575: ldns_pkt_clone() does not copy timestamp field + Thanks Calle Dybedahl + * bugfix #584: ldns-update fixes. Send update to port 53, bring manpage + in sync with the usage text, and don't alter the ldns_resolver passed + to ldns_update_soa_zone_mname(). Created a ldns_resolver_clone() + function in the process. Thanks Nicholas Riley. + * bugfix #633: ldns_pkt_clone() parameter isn't const. + Thanks Jakop Petsovits + * bugfix: ldns-dane manpage correction + Thanks Erwin Lansing + * Spelling fixes. Thanks Andreas Schulze + * Hyphen used as minus in manpages. Thanks Andreas Schulze. + * RFC7553 RR Type URI is supported by default. + * Fix ECDSA signature generation, do not omit leading zeroes. + * bugfix: Get rid of superfluous newline in ldns-keyfetcher + Thanks Jan-Piet Mens + * bugfix: -U option to ldns-signzone to sign with every algorithm + Thanks Guido Kroon + * const function parameters whenever possible. + Thanks Ray Bellis + * bugfix #725: allow RR-types on the type bitmap window border + Thanks Pieter Lexis + * bugfix #726: 2 typos in drill manpage. + Thanks Hugo Lombard + * Add type CSYNC support, RFC 7477. + * Prepare for ED25519, ED448 support: todo convert* routines in + dnssec.h, once openssl has support for signing with these algorithms. + The dns algorithm number is not yet allocated. These features are + not fully implemented yet, openssl (1.1) does not support the + algorithms enough to generate keys and sign and verify with them. + * Fix _answerfrom comment in ldns_struct_pkt. + * Fix drill axfr ipv4/ipv6 queries. + * Fix comment referring to mk_query in packet.h to pkt_query_new. + * Fix description of QR flag in packet.h. + * Fix for openssl 1.1.0 API changes. + * Remove commented out macro. Thanks Thiago Farina + * bugfix #641: Include install-sh in .gitignore + * bugfix #825: Module import breaks with newer SWIG versions. + Thanks Christoph Egger + * bugfix #796 - #792: Fix miscellaneous compiler warning issues. + Thanks Ngie Cooper + * bugfix #769: Add support for :: in an IPv6 address + Thanks Hajimu UMEMOTO + * bugfix #760: Detect superfluous text in presentation format + Thanks Xiali Yan + * bugfix #708: warnings and errors with xcode 6.1/7.0 + * bugfix #754: Memory leak in ldns_str2rdf_ipseckey + Thanks Xiali Yan + * bugfix #661: Fail NSEC3 signing when NSEC domainname length + would overflow. Thanks Jan-Piet Mens. + * bugfix #771: hmac-sha224, hmac-sha384 and hmac-sha512 keys. + Thanks Harald Jenny + * bugfix #680: ldns fails to reject invalidly formatted + RFC 7553 URI RRs. Thanks Robert Edmonds + * bugfix #678: Use poll i.s.o. select to support > 1024 fds + Thanks William King + * Use OpenSSL DANE functions for verification (unless explicitly + disabled with --disable-dane-ta-usage). + * Bumb .so version + * Include OPENPGPKEY RR type by default + * rdata processing for SMIMEA RR type + * Fix crash in displaying TLSA RR's. + Thanks Andreas Schulze + * Update ldns-key2ds man page to mention GOST and SHA384 hash + functions. Thanks Harald Jenny + * Add sha384 and sha512 tsig algorithm. Thanks Michael Weiser + * Clarify data ownership with consts for tsig parameters. + Thanks Michael Weiser + * bugfix: Fix detection of DSA support with OpenSSL >= 1.1.0 + * bugfix #1160: Provide sha256 for release tarballs + * --enable-gost-anyway compiles GOST support with OpenSSL >= 1.1.0 + even when the GOST engine is not available. + 1.6.17 2014-01-10 * Fix ldns_dnssec_zone_new_frm_fp_l to allow the last parsed line of a zone to be an NSEC3 (or its RRSIG) covering an empty non terminal. Modified: head/contrib/ldns/Makefile.in ============================================================================== --- head/contrib/ldns/Makefile.in Sat May 12 11:56:59 2018 (r333550) +++ head/contrib/ldns/Makefile.in Sat May 12 12:00:18 2018 (r333551) @@ -12,6 +12,7 @@ datarootdir = @datarootdir@ datadir = @datadir@ libdir = @libdir@ includedir = @includedir@ +sysconfdir = @sysconfdir@ doxygen = @doxygen@ pywrapdir = $(srcdir)/contrib/python pyldnsxwrapdir = $(srcdir)/contrib/ldnsx @@ -27,13 +28,21 @@ pyldnsx_uninst = @PYLDNSXUNINST@ libtool = @libtool@ CONFIG_FILES = @CONFIG_FILES@ +LDNS_TRUST_ANCHOR_FILE = @LDNS_TRUST_ANCHOR_FILE@ +DEFAULT_CAFILE = @DEFAULT_CAFILE@ +DEFAULT_CAPATH = @DEFAULT_CAPATH@ + +edit = sed \ + -e 's|@LDNS_TRUST_ANCHOR_FILE[@]|$(LDNS_TRUST_ANCHOR_FILE)|g' \ + -e 's|@DEFAULT_CAFILE[@]|$(DEFAULT_CAFILE)|g' \ + -e 's|@DEFAULT_CAPATH[@]|$(DEFAULT_CAPATH)|g' + # override $U variable which is used by autotools for deansification (for # K&R C compilers), but causes problems if $U is defined in the env). U= - CC = @CC@ CFLAGS = @CFLAGS@ -CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ +CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLDNS_TRUST_ANCHOR_FILE="\"$(LDNS_TRUST_ANCHOR_FILE)\"" LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ LIBOBJDIR = compat/ @@ -92,11 +101,10 @@ LDNS_DANE_LOBJS = examples/ldns-dane.lo EX_SSL_PROGS = examples/ldns-nsec3-hash examples/ldns-revoke examples/ldns-signzone examples/ldns-verify-zone EX_SSL_LOBJS = examples/ldns-nsec3-hash.lo examples/ldns-revoke.lo examples/ldns-signzone.lo examples/ldns-verify-zone.lo - COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) COMP_LIB = $(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) LINK = $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -version-number $(version_info) -no-undefined +LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -version-info $(version_info) -no-undefined LINK_EXE = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBSSL_LDFLAGS) .PHONY: clean realclean docclean manpages doc lint all lib pyldns test @@ -129,7 +137,7 @@ putdown-builddir: if test -d drill -a ! -f drill/README ; then rmdir drill || : ; fi if test -d compat -a ! -f compat/malloc.c; then rmdir compat || : ; fi -drill: no-drill-config-h drill/drill +drill: no-drill-config-h drill/drill drill/drill.1 no-drill-config-h: @if test -e $(srcdir)/drill/config.h -o -e drill/config.h ; \ then echo "A config.h was detected in the drill subdirectory." ; \ @@ -138,10 +146,14 @@ no-drill-config-h: echo "or build drill there." ; \ exit -1 ; \ fi + drill/drill: $(DRILL_LOBJS) $(LIB) $(LINK_EXE) $(DRILL_LOBJS) $(LIBS) $(LIBSSL_LIBS) -lldns -o drill/drill -install-drill: drill/drill +drill/drill.1: $(srcdir)/drill/drill.1.in + $(edit) $(srcdir)/drill/drill.1.in > drill/drill.1 + +install-drill: drill/drill drill/drill.1 $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 @@ -154,9 +166,9 @@ uninstall-drill: test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ; clean-drill: - $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill + $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1 -examples: no-examples-config-h $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) +examples: no-examples-config-h $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 no-examples-config-h: @if test -e $(srcdir)/examples/config.h -o -e examples/config.h ; \ then echo "A config.h was detected in the examples subdirectory." ; \ @@ -165,6 +177,7 @@ no-examples-config-h: echo "or build examples there." ; \ exit -1 ; \ fi + $(EXAMPLE_PROGS): $(LINK_EXE) $@.lo $(LIBS) -lldns -o $@ @@ -182,7 +195,13 @@ $(LDNS_DANE): $(EX_SSL_PROGS): $(LINK_EXE) $@.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o $@ -install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) +examples/ldns-dane.1: $(srcdir)/examples/ldns-dane.1.in + $(edit) $(srcdir)/examples/ldns-dane.1.in > examples/ldns-dane.1 + +examples/ldns-verify-zone.1: $(srcdir)/examples/ldns-verify-zone.1.in + $(edit) $(srcdir)/examples/ldns-verify-zone.1.in > examples/ldns-verify-zone.1 + +install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 @@ -205,6 +224,7 @@ clean-examples: $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) $(LIBTOOL) --mode clean rm -f $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) $(LIBTOOL) --mode clean rm -f $(EXAMPLE_LOBJS) + $(LIBTOOL) --mode clean rm -f examples/ldns-dane.1 examples/ldns-verify-zone.1 linktest: $(srcdir)/linktest.c libldns.la $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/linktest.c -o linktest.lo @@ -224,7 +244,7 @@ mancheck: sh -c 'find . -name \*.\[13\] -exec troff -z {} \;' 2>&1 | sed "s/^\.\///" | sed "s/\(:[0\-9]\+:\)/\1 warning:/g" doxygen: manpages - if test ! -e doc/header.html ; then \ + @if test ! -e doc/header.html ; then \ $(INSTALL) -c -m 644 $(srcdir)/doc/header.html doc/ ; \ fi ; $(doxygen) $(srcdir)/libdns.doxygen @@ -236,22 +256,40 @@ manpages: $(srcdir)/doc/function_manpages @$(INSTALL) -d doc @cat $(srcdir)/ldns/*.h \ | $(srcdir)/doc/doxyparse.pl \ - -m $(srcdir)/doc/function_manpages 2>&1 \ + -m $(srcdir)/doc/function_manpages \ | grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages +manpage-create-errors: $(srcdir)/doc/function_manpages + @$(INSTALL) -d doc + @cat $(srcdir)/ldns/*.h \ + | $(srcdir)/doc/doxyparse.pl -e \ + -m $(srcdir)/doc/function_manpages >/dev/null + +manpage-errors: + @man --version >/dev/null 2>&1 && \ + for m in `cat $(srcdir)/ldns/*.h | $(srcdir)/doc/doxyparse.pl -m $(srcdir)/doc/function_manpages 2>&1 | grep -v ^doxygen | grep -v ^cat` ; do\ + LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 \ + man --warnings -E UTF-8 -l -Tutf8 -Z doc/man/man3/$${m}.3 2>&1 >/dev/null \ + | awk "-vpage=$${m}.3" '{printf("%s: ", page);print}'; \ + if ! lexgrog doc/man/man3/$${m}.3 >/dev/null 2>&1 ; \ + then \ + echo doc/man/man3/$${m}.3: manpage-has-bad-whatis-entry; \ + fi; \ + done || echo "WARNING!: Cannot detect manpage errors on `uname`" + pyldns: _ldns.la $(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h - $(swig) $(swigpy_flags) -o $@ $(CPPFLAGS) $(PYTHON_CPPFLAGS) $(pywrapdir)/ldns.i + $(swig) $(swigpy_flags) -o $@ $(PYTHON_CPPFLAGS) $(pywrapdir)/ldns.i ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c ldns/config.h - $(COMP_LIB) -I./include/ldns $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@ + $(COMP_LIB) -I./include/ldns $(LIBSSL_CPPFLAGS) $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@ _ldns.la: ldns_wrapper.lo libldns.la - $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-number $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS) + $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS) $(p5_dns_ldns_dir)/Makefile: $(p5_dns_ldns_dir)/Makefile.PL - BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); $(PERL) Makefile.PL PREFIX="$(prefix)" LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR" + BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); LD_LIBRARY_PATH="$$BUILDDIR/.libs:$$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$$BUILDDIR/.libs:$$DYLD_LIBRARY_PATH" $(PERL) Makefile.PL LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR" $(p5_dns_ldns_dir)/blib/arch/auto/DNS/LDNS/LDNS.so: $(p5_dns_ldns_dir)/Makefile cd $(p5_dns_ldns_dir); $(MAKE) Modified: head/contrib/ldns/README ============================================================================== --- head/contrib/ldns/README Sat May 12 11:56:59 2018 (r333550) +++ head/contrib/ldns/README Sat May 12 12:00:18 2018 (r333551) @@ -42,7 +42,9 @@ INSTALLATION If you are building from the repository you will need to have (gnu) autotools like libtool and autoreconf installed. A list of all the commands needed to build everything can be found in README.git. Note that the actual -commands may be a little bit different on your machine. Most notable, you'll need to run libtoolize (or glibtoolize), if you skip this step, you'll get an error about missing config.sub. +commands may be a little bit different on your machine. Most notably, you'll +need to run libtoolize (or glibtoolize). If you skip this step, you'll get +an error about missing config.sub. * Developers ldns is developed by the ldns team at NLnet Labs. This team currently @@ -85,7 +87,7 @@ for more information. SOLARIS -In Solaris multi-architecture systems (that have both 32-bit and +In Solaris multi-architecture systems (which have both 32-bit and 64-bit support), it can be a bit taxing to convince the system to compile in 64-bit mode. Jakob Schlyter has kindly contributed a build script that sets the right build and link options. You can find it in @@ -99,13 +101,13 @@ http://www.nlnetlabs.nl/projects/ldns/bugs * pyldns Compiling pyldns produces many ``unused parameter'' warnings. Those are harmless and may safely be ignored. -Also when building with Swig which version is before 2.0.4, compiling +Also, when building with SWIG older than 2.0.4, compiling pyldns produces many ``missing initializer'' warnings. Those are harmless too. Your Support -NLnet Labs offers all of its software products as open source, most are -published under a BDS license. You can download them, not only from the +NLnet Labs offers all of its software products as open source, most +published under a BSD license. You can download them, not only from the NLnet Labs website but also through the various OS distributions for which NSD, ldns, and Unbound are packaged. We therefore have little idea who uses our software in production environments and have no direct ties Modified: head/contrib/ldns/README.git ============================================================================== --- head/contrib/ldns/README.git Sat May 12 11:56:59 2018 (r333550) +++ head/contrib/ldns/README.git Sat May 12 12:00:18 2018 (r333551) @@ -13,8 +13,9 @@ # older versions of libtoolize do not support --install # so you might need to remove that (with newer versions # it is needed) -libtoolize -c --install -autoreconf --install +git submodule update --init +libtoolize -ci +autoreconf -fi ./configure --with-examples --with-drill # --with-pyldns --with-p5-dns-ldns make make doc # needs doxygen for the html pages Modified: head/contrib/ldns/aclocal.m4 ============================================================================== --- head/contrib/ldns/aclocal.m4 Sat May 12 11:56:59 2018 (r333550) +++ head/contrib/ldns/aclocal.m4 Sat May 12 12:00:18 2018 (r333551) @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.3 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. + # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,8609 +11,11 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT - -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl -dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -_LT_OUTPUT_LIBTOOL_INIT -]) - -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 12:10:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DCF8BFD8306; Sat, 12 May 2018 12:10:50 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from fry.fubar.geek.nz (fry.fubar.geek.nz [139.59.165.16]) by mx1.freebsd.org (Postfix) with ESMTP id 7F5CA764E6; Sat, 12 May 2018 12:10:50 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from [IPv6:2a02:c7f:1e13:cf00:f026:8f9a:206:de62] (unknown [IPv6:2a02:c7f:1e13:cf00:f026:8f9a:206:de62]) by fry.fubar.geek.nz (Postfix) with ESMTPSA id D06A64E78F; Sat, 12 May 2018 12:10:41 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.3 \(3445.6.18\)) Subject: Re: svn commit: r333500 - head/sys/kern From: Andrew Turner In-Reply-To: <201805111837.w4BIbE1u090904@repo.freebsd.org> Date: Sat, 12 May 2018 13:10:40 +0100 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201805111837.w4BIbE1u090904@repo.freebsd.org> To: Matt Macy X-Mailer: Apple Mail (2.3445.6.18) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 12:10:51 -0000 > On 11 May 2018, at 19:37, Matt Macy wrote: >=20 > Author: mmacy > Date: Fri May 11 18:37:14 2018 > New Revision: 333500 > URL: https://svnweb.freebsd.org/changeset/base/333500 >=20 > Log: > epoch(9): always set inited in epoch_init I don=E2=80=99t see a man page for epoch in the tree indicating calling = it epoch(9) is incorrect. Do you plan to commit one soon? Andrew= From owner-svn-src-head@freebsd.org Sat May 12 12:57:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B07D5FDA2C2; Sat, 12 May 2018 12:57:37 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5AB5F81591; Sat, 12 May 2018 12:57:37 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30E4D1E9CA; Sat, 12 May 2018 12:57:37 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CCvb2S050132; Sat, 12 May 2018 12:57:37 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CCvY2o050119; Sat, 12 May 2018 12:57:34 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121257.w4CCvY2o050119@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 12:57:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333552 - in head: contrib/unbound contrib/unbound/cachedb contrib/unbound/contrib contrib/unbound/daemon contrib/unbound/dns64 contrib/unbound/doc contrib/unbound/iterator contrib/unbo... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: contrib/unbound contrib/unbound/cachedb contrib/unbound/contrib contrib/unbound/daemon contrib/unbound/dns64 contrib/unbound/doc contrib/unbound/iterator contrib/unbound/libunbound contrib/un... X-SVN-Commit-Revision: 333552 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 12:57:38 -0000 Author: des Date: Sat May 12 12:57:34 2018 New Revision: 333552 URL: https://svnweb.freebsd.org/changeset/base/333552 Log: Upgrade Unbound to 1.6.0. More to follow. Added: head/contrib/unbound/.gitattributes - copied unchanged from r313158, vendor/unbound/dist/.gitattributes head/contrib/unbound/doc/CNAME-basedRedirectionDesignNotes.pdf - copied unchanged from r313158, vendor/unbound/dist/doc/CNAME-basedRedirectionDesignNotes.pdf head/contrib/unbound/services/view.c - copied unchanged from r313158, vendor/unbound/dist/services/view.c head/contrib/unbound/services/view.h - copied unchanged from r313158, vendor/unbound/dist/services/view.h Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/cachedb/cachedb.c head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/libunbound.pc.in head/contrib/unbound/contrib/unbound_munin_ head/contrib/unbound/daemon/acl_list.c head/contrib/unbound/daemon/acl_list.h head/contrib/unbound/daemon/cachedump.c head/contrib/unbound/daemon/daemon.c head/contrib/unbound/daemon/daemon.h head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/stats.h head/contrib/unbound/daemon/unbound.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/daemon/worker.h head/contrib/unbound/dns64/dns64.c head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/iterator/iter_delegpt.c head/contrib/unbound/iterator/iter_delegpt.h head/contrib/unbound/iterator/iter_fwd.c head/contrib/unbound/iterator/iter_hints.c head/contrib/unbound/iterator/iter_utils.c head/contrib/unbound/iterator/iterator.c head/contrib/unbound/libunbound/context.c head/contrib/unbound/libunbound/libunbound.c head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/libunbound/libworker.h head/contrib/unbound/libunbound/python/doc/conf.py head/contrib/unbound/libunbound/python/doc/examples/example1a.rst head/contrib/unbound/libunbound/python/doc/examples/example1b.rst head/contrib/unbound/libunbound/python/doc/examples/example2.rst head/contrib/unbound/libunbound/python/doc/examples/example3.rst head/contrib/unbound/libunbound/python/doc/examples/example4.rst head/contrib/unbound/libunbound/python/doc/examples/example5.rst head/contrib/unbound/libunbound/python/doc/examples/example6.rst head/contrib/unbound/libunbound/python/doc/examples/example7.rst head/contrib/unbound/libunbound/python/doc/examples/example8.rst head/contrib/unbound/libunbound/python/doc/examples/index.rst head/contrib/unbound/libunbound/python/doc/install.rst head/contrib/unbound/libunbound/python/doc/intro.rst head/contrib/unbound/libunbound/worker.h head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/localzone.c head/contrib/unbound/services/localzone.h head/contrib/unbound/services/mesh.c head/contrib/unbound/services/mesh.h head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/outside_network.h head/contrib/unbound/sldns/str2wire.c head/contrib/unbound/sldns/wire2str.c head/contrib/unbound/smallapp/unbound-checkconf.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/smallapp/worker_cb.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/msgencode.c head/contrib/unbound/util/data/msgparse.c head/contrib/unbound/util/data/msgparse.h head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/data/msgreply.h head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/fptr_wlist.h head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/module.c head/contrib/unbound/util/module.h head/contrib/unbound/validator/autotrust.c head/contrib/unbound/validator/val_neg.c head/contrib/unbound/validator/val_nsec.c head/contrib/unbound/validator/val_nsec3.c head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/val_sigcrypt.c head/contrib/unbound/validator/val_utils.c head/contrib/unbound/validator/validator.c head/lib/libunbound/Makefile Directory Properties: head/contrib/unbound/ (props changed) Copied: head/contrib/unbound/.gitattributes (from r313158, vendor/unbound/dist/.gitattributes) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/.gitattributes Sat May 12 12:57:34 2018 (r333552, copy of r313158, vendor/unbound/dist/.gitattributes) @@ -0,0 +1 @@ +testdata/*.[0-9] linguist-documentation Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/Makefile.in Sat May 12 12:57:34 2018 (r333552) @@ -101,7 +101,7 @@ util/data/msgreply.c util/data/packed_rrset.c iterator iterator/iter_delegpt.c iterator/iter_donotq.c iterator/iter_fwd.c \ iterator/iter_hints.c iterator/iter_priv.c iterator/iter_resptype.c \ iterator/iter_scrub.c iterator/iter_utils.c services/listen_dnsport.c \ -services/localzone.c services/mesh.c services/modstack.c \ +services/localzone.c services/mesh.c services/modstack.c services/view.c \ services/outbound_list.c services/outside_network.c util/alloc.c \ util/config_file.c util/configlexer.c util/configparser.c \ util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \ @@ -117,7 +117,7 @@ $(DNSTAP_SRC) COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ as112.lo msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \ -iter_scrub.lo iter_utils.lo localzone.lo mesh.lo modstack.lo \ +iter_scrub.lo iter_utils.lo localzone.lo mesh.lo modstack.lo view.lo \ outbound_list.lo alloc.lo config_file.lo configlexer.lo configparser.lo \ fptr_wlist.lo locks.lo log.lo mini_event.lo module.lo net_help.lo \ random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \ @@ -625,7 +625,8 @@ msgencode.lo msgencode.o: $(srcdir)/util/data/msgencod $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/sldns/sbuffer.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h $(srcdir)/services/view.h msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ @@ -635,7 +636,9 @@ msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h + $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/util/module.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \ @@ -705,25 +708,32 @@ listen_dnsport.lo listen_dnsport.o: $(srcdir)/services $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/regional.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/util/as112.h + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h $(srcdir)/util/as112.h mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h \ $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/services/view.h $(srcdir)/util/data/dname.h modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h \ - $(srcdir)/validator/val_utils.h $(PYTHONMOD_HEADER) $(srcdir)/cachedb/cachedb.h + $(srcdir)/validator/val_utils.h $(PYTHONMOD_HEADER) +view.lo view.o: $(srcdir)/services/view.c config.h $(srcdir)/services/view.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h @@ -760,15 +770,15 @@ fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist. $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \ - $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ - $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h \ - $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h \ - $(PYTHONMOD_HEADER) $(srcdir)/cachedb/cachedb.h + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h \ + $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/util/config_file.h $(PYTHONMOD_HEADER) locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ @@ -778,7 +788,7 @@ mini_event.lo mini_event.o: $(srcdir)/util/mini_event. $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/util/ub_event.h \ $(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ @@ -902,14 +912,7 @@ dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(s $(srcdir)/util/storage/slabhash.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h -cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h $(srcdir)/cachedb/cachedb.h $(srcdir)/util/module.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/services/cache/dns.h $(srcdir)/validator/val_neg.h \ - $(srcdir)/util/rbtree.h $(srcdir)/validator/val_secalgo.h $(srcdir)/iterator/iter_utils.h \ - $(srcdir)/iterator/iter_resptype.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/sldns/sbuffer.h +cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/testcode/checklocks.h unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ @@ -956,9 +959,11 @@ testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/locks.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h $(srcdir)/daemon/cachedump.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -978,10 +983,10 @@ daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ - $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h + $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h \ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \ @@ -992,12 +997,12 @@ remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \ - $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/iterator/iter_delegpt.h \ - $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/sldns/wire2str.h + $(srcdir)/services/view.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -1025,8 +1030,8 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \ $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ @@ -1054,8 +1059,8 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \ $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ @@ -1064,9 +1069,11 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/libworker.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/locks.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ @@ -1074,10 +1081,10 @@ daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ - $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h + $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -1125,7 +1132,7 @@ unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/sm $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h \ - $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) + $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ @@ -1137,8 +1144,9 @@ context.lo context.o: $(srcdir)/libunbound/context.c c $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ + $(srcdir)/sldns/sbuffer.h libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ @@ -1146,9 +1154,9 @@ libunbound.lo libunbound.o: $(srcdir)/libunbound/libun $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h \ $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/util/ub_event.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/sldns/sbuffer.h libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h $(srcdir)/libunbound/libworker.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ @@ -1156,12 +1164,12 @@ libworker.lo libworker.o: $(srcdir)/libunbound/libwork $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h \ $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ - $(srcdir)/sldns/str2wire.h + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/iterator/iter_hints.h $(srcdir)/sldns/str2wire.h unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \ Modified: head/contrib/unbound/cachedb/cachedb.c ============================================================================== --- head/contrib/unbound/cachedb/cachedb.c Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/cachedb/cachedb.c Sat May 12 12:57:34 2018 (r333552) @@ -547,8 +547,8 @@ cachedb_handle_query(struct module_qstate* qstate, return; } - if(qstate->blacklist) { - /* cache is blacklisted */ + if(qstate->blacklist || qstate->no_cache_lookup) { + /* cache is blacklisted or we are instructed from edns to not look */ /* pass request to next module */ qstate->ext_state[id] = module_wait_module; return; @@ -556,10 +556,15 @@ cachedb_handle_query(struct module_qstate* qstate, /* lookup inside unbound's internal cache */ if(cachedb_intcache_lookup(qstate)) { - if(verbosity >= VERB_ALGO) - log_dns_msg("cachedb internal cache lookup", - &qstate->return_msg->qinfo, - qstate->return_msg->rep); + if(verbosity >= VERB_ALGO) { + if(qstate->return_msg->rep) + log_dns_msg("cachedb internal cache lookup", + &qstate->return_msg->qinfo, + qstate->return_msg->rep); + else log_info("cachedb internal cache lookup: rcode %s", + sldns_lookup_by_id(sldns_rcodes, qstate->return_rcode)? + sldns_lookup_by_id(sldns_rcodes, qstate->return_rcode)->name:"??"); + } /* we are done with the query */ qstate->ext_state[id] = module_finished; return; @@ -595,8 +600,8 @@ static void cachedb_handle_response(struct module_qstate* qstate, struct cachedb_qstate* ATTR_UNUSED(iq), struct cachedb_env* ie, int id) { - /* check if we are enabled, and skip if not */ - if(!ie->enabled) { + /* check if we are not enabled or instructed to not cache, and skip */ + if(!ie->enabled || qstate->no_cache_store) { /* we are done with the query */ qstate->ext_state[id] = module_finished; return; @@ -647,6 +652,11 @@ cachedb_operate(struct module_qstate* qstate, enum mod if(event == module_event_error) { verbose(VERB_ALGO, "got called with event error, giving up"); (void)error_response(qstate, id, LDNS_RCODE_SERVFAIL); + return; + } + if(!iq && (event == module_event_moddone)) { + /* during priming, module done but we never started */ + qstate->ext_state[id] = module_finished; return; } Modified: head/contrib/unbound/config.h.in ============================================================================== --- head/contrib/unbound/config.h.in Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/config.h.in Sat May 12 12:57:34 2018 (r333552) @@ -107,6 +107,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H +/* Define to 1 if you have the `DSA_SIG_set0' function. */ +#undef HAVE_DSA_SIG_SET0 + /* Define to 1 if you have the header file. */ #undef HAVE_ENDIAN_H @@ -143,6 +146,9 @@ /* Define to 1 if you have the `EVP_cleanup' function. */ #undef HAVE_EVP_CLEANUP +/* Define to 1 if you have the `EVP_dss1' function. */ +#undef HAVE_EVP_DSS1 + /* Define to 1 if you have the `EVP_MD_CTX_new' function. */ #undef HAVE_EVP_MD_CTX_NEW @@ -344,9 +350,6 @@ /* Define to 1 if you have the `recvmsg' function. */ #undef HAVE_RECVMSG -/* define if you have the sbrk() call */ -#undef HAVE_SBRK - /* Define to 1 if you have the `sendmsg' function. */ #undef HAVE_SENDMSG @@ -394,6 +397,9 @@ /* Define if you have the SSL libraries installed. */ #undef HAVE_SSL + +/* Define to 1 if you have the `SSL_CTX_set_security_level' function. */ +#undef HAVE_SSL_CTX_SET_SECURITY_LEVEL /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H Modified: head/contrib/unbound/configure ============================================================================== --- head/contrib/unbound/configure Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/configure Sat May 12 12:57:34 2018 (r333552) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.5.10. +# Generated by GNU Autoconf 2.69 for unbound 1.6.0. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.5.10' -PACKAGE_STRING='unbound 1.5.10' +PACKAGE_VERSION='1.6.0' +PACKAGE_STRING='unbound 1.6.0' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -659,6 +659,7 @@ WINAPPS WINDRES CHECKLOCK_OBJ staticexe +PC_LIBEVENT_DEPENDENCY UNBOUND_EVENT_UNINSTALL UNBOUND_EVENT_INSTALL SSLLIB @@ -678,6 +679,7 @@ WITH_PYTHONMODULE swig SWIG_LIB SWIG +PC_PY_DEPENDENCY PY_MAJOR_VERSION PYTHON_SITE_PKG PYTHON_LDFLAGS @@ -1401,7 +1403,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.5.10 to adapt to many kinds of systems. +\`configure' configures unbound 1.6.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1466,7 +1468,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.5.10:";; + short | recursive ) echo "Configuration of unbound 1.6.0:";; esac cat <<\_ACEOF @@ -1656,7 +1658,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.5.10 +unbound configure 1.6.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2365,7 +2367,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.5.10, which was +It was created by unbound $as_me 1.6.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2715,13 +2717,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu UNBOUND_VERSION_MAJOR=1 -UNBOUND_VERSION_MINOR=5 +UNBOUND_VERSION_MINOR=6 -UNBOUND_VERSION_MICRO=10 +UNBOUND_VERSION_MICRO=0 LIBUNBOUND_CURRENT=6 -LIBUNBOUND_REVISION=2 +LIBUNBOUND_REVISION=3 LIBUNBOUND_AGE=4 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2771,6 +2773,7 @@ LIBUNBOUND_AGE=4 # 1.5.8 had 6:0:4 # adds ub_ctx_set_stub # 1.5.9 had 6:1:4 # 1.5.10 had 6:2:4 +# 1.6.0 had 6:3:4 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -16823,7 +16826,9 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h LIBS="$PYTHON_LDFLAGS $LIBS" CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" ub_have_python=yes + PC_PY_DEPENDENCY="python" + # Check for SWIG ub_have_swig=no @@ -17535,7 +17540,7 @@ fi done -for ac_func in OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup +for ac_func in OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup DSA_SIG_set0 EVP_dss1 do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -17551,12 +17556,13 @@ done # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -for ac_func in OPENSSL_init_ssl +for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level do : - ac_fn_c_check_func "$LINENO" "OPENSSL_init_ssl" "ac_cv_func_OPENSSL_init_ssl" -if test "x$ac_cv_func_OPENSSL_init_ssl" = xyes; then : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define HAVE_OPENSSL_INIT_SSL 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -17925,13 +17931,13 @@ if test "${enable_dsa+set}" = set; then : fi use_dsa="no" -case "$enable_ecdsa" in +case "$enable_dsa" in no) ;; *) # detect if DSA is supported, and turn it off if not. - ac_fn_c_check_func "$LINENO" "EVP_dss1" "ac_cv_func_EVP_dss1" -if test "x$ac_cv_func_EVP_dss1" = xyes; then : + ac_fn_c_check_func "$LINENO" "DSA_SIG_new" "ac_cv_func_DSA_SIG_new" +if test "x$ac_cv_func_DSA_SIG_new" = xyes; then : cat >>confdefs.h <<_ACEOF @@ -18378,6 +18384,8 @@ _ACEOF fi done # only in libev. (tested on 4.00) + PC_LIBEVENT_DEPENDENCY="libevent" + if test -n "$BAK_LDFLAGS_SET"; then LDFLAGS="$BAK_LDFLAGS" fi @@ -18959,33 +18967,6 @@ fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sbrk" >&5 -$as_echo_n "checking for sbrk... " >&6; } -# catch the warning of deprecated sbrk -old_cflags="$CFLAGS" -CFLAGS="$CFLAGS -Werror" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default - -int main(void) { void* cur = sbrk(0); printf("%u\n", (unsigned)(size_t)((char*)cur - (char*)sbrk(0))); return 0; } - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_SBRK 1" >>confdefs.h - - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -CFLAGS="$old_cflags" - # check if setreuid en setregid fail, on MacOSX10.4(darwin8). if echo $build_os | grep darwin8 > /dev/null; then @@ -19939,7 +19920,7 @@ _ACEOF -version=1.5.10 +version=1.6.0 date=`date +'%b %e, %Y'` @@ -20454,7 +20435,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.5.10, which was +This file was extended by unbound $as_me 1.6.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20520,7 +20501,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.5.10 +unbound config.status 1.6.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/unbound/configure.ac ============================================================================== --- head/contrib/unbound/configure.ac Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/configure.ac Sat May 12 12:57:34 2018 (r333552) @@ -9,15 +9,15 @@ sinclude(dnstap/dnstap.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) -m4_define([VERSION_MINOR],[5]) -m4_define([VERSION_MICRO],[10]) +m4_define([VERSION_MINOR],[6]) +m4_define([VERSION_MICRO],[0]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=6 -LIBUNBOUND_REVISION=2 +LIBUNBOUND_REVISION=3 LIBUNBOUND_AGE=4 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -67,6 +67,7 @@ LIBUNBOUND_AGE=4 # 1.5.8 had 6:0:4 # adds ub_ctx_set_stub # 1.5.9 had 6:1:4 # 1.5.10 had 6:2:4 +# 1.6.0 had 6:3:4 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -543,6 +544,8 @@ if test x_$ub_test_python != x_no; then LIBS="$PYTHON_LDFLAGS $LIBS" CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" ub_have_python=yes + PC_PY_DEPENDENCY="python" + AC_SUBST(PC_PY_DEPENDENCY) # Check for SWIG ub_have_swig=no @@ -673,12 +676,12 @@ else AC_MSG_RESULT([no]) fi AC_CHECK_HEADERS([openssl/conf.h openssl/engine.h openssl/bn.h openssl/dh.h openssl/dsa.h openssl/rsa.h],,, [AC_INCLUDES_DEFAULT]) -AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup]) +AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_CTX_new OpenSSL_add_all_digests OPENSSL_init_crypto EVP_cleanup ERR_load_crypto_strings CRYPTO_cleanup_all_ex_data ERR_free_strings RAND_cleanup DSA_SIG_set0 EVP_dss1]) # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -AC_CHECK_FUNCS([OPENSSL_init_ssl]) +AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level]) LIBS="$BAKLIBS" AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free,SSL_CTX_set_ecdh_auto], [], [], [ @@ -864,12 +867,12 @@ esac AC_ARG_ENABLE(dsa, AC_HELP_STRING([--disable-dsa], [Disable DSA support])) use_dsa="no" -case "$enable_ecdsa" in +case "$enable_dsa" in no) ;; *) # detect if DSA is supported, and turn it off if not. - AC_CHECK_FUNC(EVP_dss1, [ + AC_CHECK_FUNC(DSA_SIG_new, [ AC_DEFINE_UNQUOTED([USE_DSA], [1], [Define this to enable DSA support.]) ], [if test "x$enable_dsa" = "xyes"; then AC_MSG_ERROR([OpenSSL does not support DSA and you used --enable-dsa.]) fi ]) @@ -1000,6 +1003,8 @@ large outgoing port ranges. ]) AC_CHECK_FUNCS([event_base_get_method]) # only in libevent 1.4.3 and later AC_CHECK_FUNCS([ev_loop]) # only in libev. (tested on 3.51) AC_CHECK_FUNCS([ev_default_loop]) # only in libev. (tested on 4.00) + PC_LIBEVENT_DEPENDENCY="libevent" + AC_SUBST(PC_LIBEVENT_DEPENDENCY) if test -n "$BAK_LDFLAGS_SET"; then LDFLAGS="$BAK_LDFLAGS" fi @@ -1141,19 +1146,6 @@ AC_SEARCH_LIBS([setusercontext], [util]) AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync]) AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])]) AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])]) - -AC_MSG_CHECKING([for sbrk]) -# catch the warning of deprecated sbrk -old_cflags="$CFLAGS" -CFLAGS="$CFLAGS -Werror" -AC_COMPILE_IFELSE([AC_LANG_SOURCE(AC_INCLUDES_DEFAULT -[[ -int main(void) { void* cur = sbrk(0); printf("%u\n", (unsigned)(size_t)((char*)cur - (char*)sbrk(0))); return 0; } -]])], [ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SBRK, 1, [define if you have the sbrk() call]) - ], [AC_MSG_RESULT(no)]) -CFLAGS="$old_cflags" # check if setreuid en setregid fail, on MacOSX10.4(darwin8). if echo $build_os | grep darwin8 > /dev/null; then Modified: head/contrib/unbound/contrib/libunbound.pc.in ============================================================================== --- head/contrib/unbound/contrib/libunbound.pc.in Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/contrib/libunbound.pc.in Sat May 12 12:57:34 2018 (r333552) @@ -7,7 +7,7 @@ Name: unbound Description: Library with validating, recursive, and caching DNS resolver URL: http://www.unbound.net Version: @PACKAGE_VERSION@ -Requires: -Libs: -L${libdir} -lunbound @SSLLIB@ @LIBS@ -Libs.private: @LDFLAGS@ +Requires: libcrypto libssl @PC_LIBEVENT_DEPENDENCY@ @PC_PY_DEPENDENCY@ +Libs: -L${libdir} -lunbound +Libs.private: @SSLLIB@ @LIBS@ Cflags: -I${includedir} Modified: head/contrib/unbound/contrib/unbound_munin_ ============================================================================== --- head/contrib/unbound/contrib/unbound_munin_ Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/contrib/unbound_munin_ Sat May 12 12:57:34 2018 (r333552) @@ -150,7 +150,7 @@ get_state ( ) { fi done # try to get it - echo $$ >$lock + if echo $$ >$lock ; then : ; else break; fi done # do not refetch if the file exists and only LEE seconds old if test -f $state; then @@ -266,7 +266,6 @@ if test "$1" = "config" ; then echo "graph_args --base 1024 -l 0" echo "graph_vlabel memory used in bytes" echo "graph_category DNS" - p_config "mem.total.sbrk" "Total memory" "GAUGE" p_config "mem.cache.rrset" "RRset cache memory" "GAUGE" p_config "mem.cache.message" "Message cache memory" "GAUGE" p_config "mem.mod.iterator" "Iterator module memory" "GAUGE" @@ -458,20 +457,6 @@ queue) done ;; memory) - mn=`echo mem.total.sbrk | sed $ABBREV | tr . _` - get_value 'mem.total.sbrk' - if test $value -eq 0; then - chk=`echo $ctrl | sed -e 's/-control$/-checkconf/'` - pidf=`$chk -o pidfile $conf 2>&1` - pid=`cat $pidf 2>&1` - value=`ps -p "$pid" -o rss= 2>&1` - if test "`expr $value + 1 - 1 2>&1`" -eq "$value" 2>&1; then - value=`expr $value \* 1024` - else - value=0 - fi - fi - echo "$mn.value" $value for x in mem.cache.rrset mem.cache.message mem.mod.iterator \ mem.mod.validator msg.cache.count rrset.cache.count \ infra.cache.count key.cache.count; do Modified: head/contrib/unbound/daemon/acl_list.c ============================================================================== --- head/contrib/unbound/daemon/acl_list.c Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/daemon/acl_list.c Sat May 12 12:57:34 2018 (r333552) @@ -170,6 +170,23 @@ acl_list_tags_cfg(struct acl_list* acl, const char* st return 1; } +/** apply acl_view string */ +static int +acl_list_view_cfg(struct acl_list* acl, const char* str, const char* str2, + struct views* vs) +{ + struct acl_addr* node; + if(!(node=acl_find_or_create(acl, str))) + return 0; + node->view = views_find_view(vs, str2, 0 /* get read lock*/); + if(!node->view) { + log_err("no view with name: %s", str2); + return 0; + } + lock_rw_unlock(&node->view->lock); + return 1; +} + /** apply acl_tag_action string */ static int acl_list_tag_action_cfg(struct acl_list* acl, struct config_file* cfg, @@ -210,15 +227,47 @@ acl_list_tag_action_cfg(struct acl_list* acl, struct c /** check wire data parse */ static int -check_data(const char* data) +check_data(const char* data, const struct config_strlist* head) { char buf[65536]; uint8_t rr[LDNS_RR_BUF_SIZE]; size_t len = sizeof(rr); int res; - snprintf(buf, sizeof(buf), "%s %s", "example.com.", data); + /* '.' is sufficient for validation, and it makes the call to + * sldns_wirerr_get_type() simpler below. */ + snprintf(buf, sizeof(buf), "%s %s", ".", data); res = sldns_str2wire_rr_buf(buf, rr, &len, NULL, 3600, NULL, 0, NULL, 0); + + /* Reject it if we would end up having CNAME and other data (including + * another CNAME) for the same tag. */ + if(res == 0 && head) { + const char* err_data = NULL; + + if(sldns_wirerr_get_type(rr, len, 1) == LDNS_RR_TYPE_CNAME) { + /* adding CNAME while other data already exists. */ + err_data = data; + } else { + snprintf(buf, sizeof(buf), "%s %s", ".", head->str); + len = sizeof(rr); + res = sldns_str2wire_rr_buf(buf, rr, &len, NULL, 3600, + NULL, 0, NULL, 0); + if(res != 0) { + /* This should be impossible here as head->str + * has been validated, but we check it just in + * case. */ + return 0; + } + if(sldns_wirerr_get_type(rr, len, 1) == + LDNS_RR_TYPE_CNAME) /* already have CNAME */ + err_data = head->str; + } + if(err_data) { + log_err("redirect tag data '%s' must not coexist with " + "other data.", err_data); + return 0; + } + } if(res == 0) return 1; log_err("rr data [char %d] parse error %s", @@ -258,7 +307,7 @@ acl_list_tag_data_cfg(struct acl_list* acl, struct con } /* check data? */ - if(!check_data(data)) { + if(!check_data(data, node->tag_datas[tagid])) { log_err("cannot parse access-control-tag data: %s %s '%s'", str, tag, data); return 0; @@ -312,6 +361,27 @@ read_acl_tags(struct acl_list* acl, struct config_file return 1; } +/** read acl view config */ +static int +read_acl_view(struct acl_list* acl, struct config_file* cfg, struct views* v) +{ + struct config_str2list* np, *p = cfg->acl_view; + cfg->acl_view = NULL; + while(p) { + log_assert(p->str && p->str2); + if(!acl_list_view_cfg(acl, p->str, p->str2, v)) { + return 0; + } + /* free the items as we go to free up memory */ + np = p->next; + free(p->str); + free(p->str2); + free(p); + p = np; + } + return 1; +} + /** read acl tag actions config */ static int read_acl_tag_actions(struct acl_list* acl, struct config_file* cfg) @@ -362,11 +432,14 @@ read_acl_tag_datas(struct acl_list* acl, struct config } int -acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg) +acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg, + struct views* v) { regional_free_all(acl->region); addr_tree_init(&acl->tree); if(!read_acl_list(acl, cfg)) + return 0; + if(!read_acl_view(acl, cfg, v)) return 0; if(!read_acl_tags(acl, cfg)) return 0; Modified: head/contrib/unbound/daemon/acl_list.h ============================================================================== --- head/contrib/unbound/daemon/acl_list.h Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/daemon/acl_list.h Sat May 12 12:57:34 2018 (r333552) @@ -43,6 +43,7 @@ #ifndef DAEMON_ACL_LIST_H #define DAEMON_ACL_LIST_H #include "util/storage/dnstree.h" +#include "services/view.h" struct config_file; struct regional; @@ -100,6 +101,8 @@ struct acl_addr { struct config_strlist** tag_datas; /** size of the tag_datas array */ size_t tag_datas_size; + /* view element, NULL if none */ + struct view* view; }; /** @@ -118,9 +121,11 @@ void acl_list_delete(struct acl_list* acl); * Process access control config. * @param acl: where to store. * @param cfg: config options. + * @param v: views structure * @return 0 on error. */ -int acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg); +int acl_list_apply_cfg(struct acl_list* acl, struct config_file* cfg, + struct views* v); /** * Lookup access control status for acl structure. Modified: head/contrib/unbound/daemon/cachedump.c ============================================================================== --- head/contrib/unbound/daemon/cachedump.c Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/daemon/cachedump.c Sat May 12 12:57:34 2018 (r333552) @@ -563,6 +563,7 @@ load_qinfo(char* str, struct query_info* qinfo, struct qinfo->qclass = sldns_wirerr_get_class(rr, rr_len, dname_len); qinfo->qname_len = dname_len; qinfo->qname = (uint8_t*)regional_alloc_init(region, rr, dname_len); + qinfo->local_alias = NULL; if(!qinfo->qname) { log_warn("error out of memory"); return NULL; @@ -826,6 +827,7 @@ int print_deleg_lookup(SSL* ssl, struct worker* worker qinfo.qname_len = nmlen; qinfo.qtype = LDNS_RR_TYPE_A; qinfo.qclass = LDNS_RR_CLASS_IN; + qinfo.local_alias = NULL; dname_str(nm, b); if(!ssl_printf(ssl, "The following name servers are used for lookup " Modified: head/contrib/unbound/daemon/daemon.c ============================================================================== --- head/contrib/unbound/daemon/daemon.c Sat May 12 12:00:18 2018 (r333551) +++ head/contrib/unbound/daemon/daemon.c Sat May 12 12:57:34 2018 (r333552) @@ -79,6 +79,7 @@ #include "services/cache/rrset.h" #include "services/cache/infra.h" #include "services/localzone.h" +#include "services/view.h" #include "services/modstack.h" #include "util/module.h" #include "util/random.h" @@ -248,9 +249,16 @@ daemon_init(void) free(daemon); return NULL; } + /* init edns_known_options */ + if(!edns_known_options_init(daemon->env)) { + free(daemon->env); + free(daemon); + return NULL; + } alloc_init(&daemon->superalloc, NULL, 0); daemon->acl = acl_list_create(); if(!daemon->acl) { + edns_known_options_delete(daemon->env); free(daemon->env); free(daemon); return NULL; @@ -347,6 +355,7 @@ static void daemon_setup_modules(struct daemon* daemon daemon->env)) { fatal_exit("failed to setup modules"); } + log_edns_known_options(VERB_ALGO, daemon->env); } /** @@ -542,8 +551,15 @@ void daemon_fork(struct daemon* daemon) { log_assert(daemon); - if(!acl_list_apply_cfg(daemon->acl, daemon->cfg)) + if(!(daemon->views = views_create())) + fatal_exit("Could not create views: out of memory"); + /* create individual views and their localzone/data trees */ + if(!views_apply_cfg(daemon->views, daemon->cfg)) + fatal_exit("Could not set up views"); + + if(!acl_list_apply_cfg(daemon->acl, daemon->cfg, daemon->views)) fatal_exit("Could not setup access control list"); + /* create global local_zones */ if(!(daemon->local_zones = local_zones_create())) fatal_exit("Could not create local zones: out of memory"); if(!local_zones_apply_cfg(daemon->local_zones, daemon->cfg)) @@ -605,6 +621,8 @@ daemon_cleanup(struct daemon* daemon) slabhash_clear(daemon->env->msg_cache); local_zones_delete(daemon->local_zones); daemon->local_zones = NULL; + views_delete(daemon->views); + daemon->views = NULL; /* key cache is cleared by module desetup during next daemon_fork() */ daemon_remote_clear(daemon->rc); for(i=0; inum; i++) @@ -634,6 +652,8 @@ daemon_delete(struct daemon* daemon) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 13:12:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62B01FDADE5; Sat, 12 May 2018 13:12:27 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 18DAF84501; Sat, 12 May 2018 13:12:27 +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 EE4741ED36; Sat, 12 May 2018 13:12:26 +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 w4CDCQZk059267; Sat, 12 May 2018 13:12:26 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CDCQPI059266; Sat, 12 May 2018 13:12:26 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805121312.w4CDCQPI059266@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 12 May 2018 13:12:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333553 - 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: 333553 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 13:12:27 -0000 Author: manu Date: Sat May 12 13:12:26 2018 New Revision: 333553 URL: https://svnweb.freebsd.org/changeset/base/333553 Log: aw_mmc: Read interrupt register value before writing to it Reported by: jmcneill Modified: head/sys/arm/allwinner/aw_mmc.c Modified: head/sys/arm/allwinner/aw_mmc.c ============================================================================== --- head/sys/arm/allwinner/aw_mmc.c Sat May 12 12:57:34 2018 (r333552) +++ head/sys/arm/allwinner/aw_mmc.c Sat May 12 13:12:26 2018 (r333553) @@ -450,6 +450,7 @@ aw_mmc_prepare_dma(struct aw_mmc_softc *sc) AW_MMC_DMAC_IDMAC_IDMA_ON | AW_MMC_DMAC_IDMAC_FIX_BURST); /* Enable RX or TX DMA interrupt */ + val = AW_MMC_READ_4(sc, AW_MMC_IDIE); if (cmd->data->flags & MMC_DATA_WRITE) val |= AW_MMC_IDST_TX_INT; else From owner-svn-src-head@freebsd.org Sat May 12 13:13:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1CD2DFDAF6D; Sat, 12 May 2018 13:13:00 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BD5D08464B; Sat, 12 May 2018 13:12:59 +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 9E4EB1ED41; Sat, 12 May 2018 13:12:59 +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 w4CDCxlt060257; Sat, 12 May 2018 13:12:59 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CDCxTN060256; Sat, 12 May 2018 13:12:59 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805121312.w4CDCxTN060256@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 12 May 2018 13:12:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333554 - 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: 333554 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 13:13:00 -0000 Author: manu Date: Sat May 12 13:12:59 2018 New Revision: 333554 URL: https://svnweb.freebsd.org/changeset/base/333554 Log: aw_mmc: Remove hardware reset From all the BSP (Board Source Package) source that I've looked at it seems that it's never done, remove it. Tested On: A31, A64 Modified: head/sys/arm/allwinner/aw_mmc.c Modified: head/sys/arm/allwinner/aw_mmc.c ============================================================================== --- head/sys/arm/allwinner/aw_mmc.c Sat May 12 13:12:26 2018 (r333553) +++ head/sys/arm/allwinner/aw_mmc.c Sat May 12 13:12:59 2018 (r333554) @@ -246,12 +246,6 @@ aw_mmc_attach(device_t dev) SYSCTL_ADD_INT(ctx, tree, OID_AUTO, "req_timeout", CTLFLAG_RW, &sc->aw_timeout, 0, "Request timeout in seconds"); - /* Hardware reset */ - AW_MMC_WRITE_4(sc, AW_MMC_HWRST, 1); - DELAY(100); - AW_MMC_WRITE_4(sc, AW_MMC_HWRST, 0); - DELAY(500); - /* Soft Reset controller. */ if (aw_mmc_reset(sc) != 0) { device_printf(dev, "cannot reset the controller\n"); From owner-svn-src-head@freebsd.org Sat May 12 13:13:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28779FDB031; Sat, 12 May 2018 13:13:35 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CEC8E847A7; Sat, 12 May 2018 13:13:34 +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 B07A61ED42; Sat, 12 May 2018 13:13:34 +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 w4CDDYAJ060327; Sat, 12 May 2018 13:13:34 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CDDYAv060326; Sat, 12 May 2018 13:13:34 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805121313.w4CDDYAv060326@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 12 May 2018 13:13:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333555 - 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: 333555 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 13:13:35 -0000 Author: manu Date: Sat May 12 13:13:34 2018 New Revision: 333555 URL: https://svnweb.freebsd.org/changeset/base/333555 Log: aw_mmc: Do not fully init the controller in attach Only do a reset of the controller at attach and init it at power_up. We use to enable some interrupts in reset, only enable the interrupts we are interested in when doing a request. While here remove the regulators handling in power_on as it is very wrong and will be dealt with in another commit. Tested on: A31, A64 Modified: head/sys/arm/allwinner/aw_mmc.c head/sys/arm/allwinner/aw_mmc.h Modified: head/sys/arm/allwinner/aw_mmc.c ============================================================================== --- head/sys/arm/allwinner/aw_mmc.c Sat May 12 13:12:59 2018 (r333554) +++ head/sys/arm/allwinner/aw_mmc.c Sat May 12 13:13:34 2018 (r333555) @@ -140,6 +140,7 @@ static int aw_mmc_attach(device_t); static int aw_mmc_detach(device_t); static int aw_mmc_setup_dma(struct aw_mmc_softc *); static int aw_mmc_reset(struct aw_mmc_softc *); +static int aw_mmc_init(struct aw_mmc_softc *); static void aw_mmc_intr(void *); static int aw_mmc_update_clock(struct aw_mmc_softc *, uint32_t); @@ -475,18 +476,37 @@ aw_mmc_reset(struct aw_mmc_softc *sc) if (timeout == 0) return (ETIMEDOUT); + return (0); +} + +static int +aw_mmc_init(struct aw_mmc_softc *sc) +{ + int ret; + + ret = aw_mmc_reset(sc); + if (ret != 0) + return (ret); + /* Set the timeout. */ AW_MMC_WRITE_4(sc, AW_MMC_TMOR, AW_MMC_TMOR_DTO_LMT_SHIFT(AW_MMC_TMOR_DTO_LMT_MASK) | AW_MMC_TMOR_RTO_LMT_SHIFT(AW_MMC_TMOR_RTO_LMT_MASK)); + /* Unmask interrupts. */ + AW_MMC_WRITE_4(sc, AW_MMC_IMKR, 0); + /* Clear pending interrupts. */ AW_MMC_WRITE_4(sc, AW_MMC_RISR, 0xffffffff); + + /* Debug register, undocumented */ + AW_MMC_WRITE_4(sc, AW_MMC_DBGC, 0xdeb); + + /* Function select register */ + AW_MMC_WRITE_4(sc, AW_MMC_FUNS, 0xceaa0000); + AW_MMC_WRITE_4(sc, AW_MMC_IDST, 0xffffffff); - /* Unmask interrupts. */ - AW_MMC_WRITE_4(sc, AW_MMC_IMKR, - AW_MMC_INT_CMD_DONE | AW_MMC_INT_ERR_BIT | - AW_MMC_INT_DATA_OVER | AW_MMC_INT_AUTO_STOP_DONE); + /* Enable interrupts and AHB access. */ AW_MMC_WRITE_4(sc, AW_MMC_GCTL, AW_MMC_READ_4(sc, AW_MMC_GCTL) | AW_MMC_CTRL_INT_ENB); @@ -655,7 +675,7 @@ aw_mmc_request(device_t bus, device_t child, struct mm int blksz; struct aw_mmc_softc *sc; struct mmc_command *cmd; - uint32_t cmdreg; + uint32_t cmdreg, imask; int err; sc = device_get_softc(bus); @@ -664,11 +684,19 @@ aw_mmc_request(device_t bus, device_t child, struct mm AW_MMC_UNLOCK(sc); return (EBUSY); } + sc->aw_req = req; cmd = req->cmd; cmdreg = AW_MMC_CMDR_LOAD; + imask = AW_MMC_INT_ERR_BIT; + sc->aw_intr_wait = 0; + sc->aw_intr = 0; + sc->aw_resid = 0; + cmd->error = MMC_ERR_NONE; + if (cmd->opcode == MMC_GO_IDLE_STATE) cmdreg |= AW_MMC_CMDR_SEND_INIT_SEQ; + if (cmd->flags & MMC_RSP_PRESENT) cmdreg |= AW_MMC_CMDR_RESP_RCV; if (cmd->flags & MMC_RSP_136) @@ -676,30 +704,52 @@ aw_mmc_request(device_t bus, device_t child, struct mm if (cmd->flags & MMC_RSP_CRC) cmdreg |= AW_MMC_CMDR_CHK_RESP_CRC; - sc->aw_intr = 0; - sc->aw_resid = 0; - sc->aw_intr_wait = AW_MMC_INT_CMD_DONE; - cmd->error = MMC_ERR_NONE; - if (cmd->data != NULL) { - sc->aw_intr_wait |= AW_MMC_INT_DATA_OVER; + if (cmd->data) { cmdreg |= AW_MMC_CMDR_DATA_TRANS | AW_MMC_CMDR_WAIT_PRE_OVER; + if (cmd->data->flags & MMC_DATA_MULTI) { cmdreg |= AW_MMC_CMDR_STOP_CMD_FLAG; + imask |= AW_MMC_INT_AUTO_STOP_DONE; sc->aw_intr_wait |= AW_MMC_INT_AUTO_STOP_DONE; + } else { + sc->aw_intr_wait |= AW_MMC_INT_DATA_OVER; + imask |= AW_MMC_INT_DATA_OVER; } if (cmd->data->flags & MMC_DATA_WRITE) cmdreg |= AW_MMC_CMDR_DIR_WRITE; + blksz = min(cmd->data->len, MMC_SECTOR_SIZE); AW_MMC_WRITE_4(sc, AW_MMC_BKSR, blksz); AW_MMC_WRITE_4(sc, AW_MMC_BYCR, cmd->data->len); + } else { + imask |= AW_MMC_INT_CMD_DONE; + } + /* Enable the interrupts we are interested in */ + AW_MMC_WRITE_4(sc, AW_MMC_IMKR, imask); + AW_MMC_WRITE_4(sc, AW_MMC_RISR, 0xffffffff); + + /* Enable auto stop if needed */ + AW_MMC_WRITE_4(sc, AW_MMC_A12A, + cmdreg & AW_MMC_CMDR_STOP_CMD_FLAG ? 0 : 0xffff); + + /* Write the command argument */ + AW_MMC_WRITE_4(sc, AW_MMC_CAGR, cmd->arg); + + /* + * If we don't have data start the request + * if we do prepare the dma request and start the request + */ + if (cmd->data == NULL) { + AW_MMC_WRITE_4(sc, AW_MMC_CMDR, cmdreg | cmd->opcode); + } else { err = aw_mmc_prepare_dma(sc); if (err != 0) device_printf(sc->aw_dev, "prepare_dma failed: %d\n", err); + + AW_MMC_WRITE_4(sc, AW_MMC_CMDR, cmdreg | cmd->opcode); } - AW_MMC_WRITE_4(sc, AW_MMC_CAGR, cmd->arg); - AW_MMC_WRITE_4(sc, AW_MMC_CMDR, cmdreg | cmd->opcode); callout_reset(&sc->aw_timeoutc, sc->aw_timeout * hz, aw_mmc_timeout, sc); AW_MMC_UNLOCK(sc); @@ -914,16 +964,20 @@ aw_mmc_update_ios(device_t bus, device_t child) break; } - /* Set the voltage */ - if (ios->power_mode == power_off) { + switch (ios->power_mode) { + case power_on: + break; + case power_off: if (bootverbose) device_printf(sc->aw_dev, "Powering down sd/mmc\n"); - if (sc->aw_reg_vmmc) - regulator_disable(sc->aw_reg_vmmc); - if (sc->aw_reg_vqmmc) - regulator_disable(sc->aw_reg_vqmmc); - } else if (sc->aw_vdd != ios->vdd) - aw_mmc_set_power(sc, ios->vdd); + aw_mmc_reset(sc); + break; + case power_up: + if (bootverbose) + device_printf(sc->aw_dev, "Powering up sd/mmc\n"); + aw_mmc_init(sc); + break; + }; /* Enable ddr mode if needed */ reg = AW_MMC_READ_4(sc, AW_MMC_GCTL); Modified: head/sys/arm/allwinner/aw_mmc.h ============================================================================== --- head/sys/arm/allwinner/aw_mmc.h Sat May 12 13:12:59 2018 (r333554) +++ head/sys/arm/allwinner/aw_mmc.h Sat May 12 13:13:34 2018 (r333555) @@ -47,6 +47,7 @@ #define AW_MMC_STAR 0x3C /* Status Register */ #define AW_MMC_FWLR 0x40 /* FIFO Threshold Watermark Register */ #define AW_MMC_FUNS 0x44 /* Function Select Register */ +#define AW_MMC_DBGC 0x50 /* Debug register */ #define AW_MMC_CSDC 0x54 /* CRC status detect controler register (A64 smhc2 only) */ #define AW_MMC_A12A 0x58 /* Auto command 12 argument register */ #define AW_MMC_NTSR 0x5C /* SD new timing register (H3, A64 smhc0/1 only) */ From owner-svn-src-head@freebsd.org Sat May 12 13:14:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AD49FFDB0BE; Sat, 12 May 2018 13:14:02 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 54078848F2; Sat, 12 May 2018 13:14:02 +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 359B21ED43; Sat, 12 May 2018 13:14:02 +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 w4CDE21Y060390; Sat, 12 May 2018 13:14:02 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CDE2ex060389; Sat, 12 May 2018 13:14:02 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201805121314.w4CDE2ex060389@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Sat, 12 May 2018 13:14:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333556 - 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: 333556 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 13:14:02 -0000 Author: manu Date: Sat May 12 13:14:01 2018 New Revision: 333556 URL: https://svnweb.freebsd.org/changeset/base/333556 Log: aw_mmc: Rework regulator handling Don't enable regulator on attach but dealt with them on power_up/power_off Only set the voltage for the signaling regulator since I don't have boards that can change the supply voltage. Enable 1.8v signaling voltage. Modified: head/sys/arm/allwinner/aw_mmc.c Modified: head/sys/arm/allwinner/aw_mmc.c ============================================================================== --- head/sys/arm/allwinner/aw_mmc.c Sat May 12 13:13:34 2018 (r333555) +++ head/sys/arm/allwinner/aw_mmc.c Sat May 12 13:14:01 2018 (r333556) @@ -115,6 +115,7 @@ struct aw_mmc_softc { uint32_t aw_intr_wait; void * aw_intrhand; int32_t aw_vdd; + int32_t aw_vccq; regulator_t aw_reg_vmmc; regulator_t aw_reg_vqmmc; unsigned int aw_clock; @@ -265,13 +266,11 @@ aw_mmc_attach(device_t dev) &sc->aw_reg_vmmc) == 0) { if (bootverbose) device_printf(dev, "vmmc-supply regulator found\n"); - regulator_enable(sc->aw_reg_vmmc); } if (regulator_get_by_ofw_property(dev, 0, "vqmmc-supply", &sc->aw_reg_vqmmc) == 0 && bootverbose) { if (bootverbose) device_printf(dev, "vqmmc-supply regulator found\n"); - regulator_enable(sc->aw_reg_vqmmc); } sc->aw_host.f_min = 400000; @@ -281,7 +280,7 @@ aw_mmc_attach(device_t dev) MMC_CAP_UHS_SDR25 | MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_DDR50 | MMC_CAP_MMC_DDR52; - sc->aw_host.caps |= MMC_CAP_SIGNALING_330 /* | MMC_CAP_SIGNALING_180 */; + sc->aw_host.caps |= MMC_CAP_SIGNALING_330 | MMC_CAP_SIGNALING_180; if (bus_width >= 4) sc->aw_host.caps |= MMC_CAP_4_BIT_DATA; @@ -800,6 +799,9 @@ aw_mmc_read_ivar(device_t bus, device_t child, int whi case MMCBR_IVAR_VDD: *(int *)result = sc->aw_host.ios.vdd; break; + case MMCBR_IVAR_VCCQ: + *(int *)result = sc->aw_host.ios.vccq; + break; case MMCBR_IVAR_CAPS: *(int *)result = sc->aw_host.caps; break; @@ -848,6 +850,9 @@ aw_mmc_write_ivar(device_t bus, device_t child, int wh case MMCBR_IVAR_VDD: sc->aw_host.ios.vdd = value; break; + case MMCBR_IVAR_VCCQ: + sc->aw_host.ios.vccq = value; + break; case MMCBR_IVAR_TIMING: sc->aw_host.ios.timing = value; break; @@ -906,36 +911,30 @@ aw_mmc_update_clock(struct aw_mmc_softc *sc, uint32_t } static void -aw_mmc_set_power(struct aw_mmc_softc *sc, int32_t vdd) +aw_mmc_set_vccq(struct aw_mmc_softc *sc, int32_t vccq) { - int min_uvolt, max_uvolt; + int uvolt; - sc->aw_vdd = vdd; - if (sc->aw_reg_vqmmc == NULL) return; - switch (1 << vdd) { - case MMC_OCR_LOW_VOLTAGE: - min_uvolt = max_uvolt = 1800000; + switch (vccq) { + case vccq_180: + uvolt = 1800000; break; - case MMC_OCR_320_330: - min_uvolt = 3200000; - max_uvolt = 3300000; + case vccq_330: + uvolt = 3300000; break; - case MMC_OCR_330_340: - min_uvolt = 3300000; - max_uvolt = 3400000; - break; + default: + return; } - if (sc->aw_reg_vqmmc) - if (regulator_set_voltage(sc->aw_reg_vqmmc, - min_uvolt, max_uvolt) != 0) - device_printf(sc->aw_dev, - "Cannot set vqmmc to %d<->%d\n", - min_uvolt, - max_uvolt); + if (regulator_set_voltage(sc->aw_reg_vqmmc, + uvolt, uvolt) != 0) + device_printf(sc->aw_dev, + "Cannot set vqmmc to %d<->%d\n", + uvolt, + uvolt); } static int @@ -970,14 +969,30 @@ aw_mmc_update_ios(device_t bus, device_t child) case power_off: if (bootverbose) device_printf(sc->aw_dev, "Powering down sd/mmc\n"); + + if (sc->aw_reg_vmmc) + regulator_disable(sc->aw_reg_vmmc); + if (sc->aw_reg_vqmmc) + regulator_disable(sc->aw_reg_vqmmc); + aw_mmc_reset(sc); break; case power_up: if (bootverbose) device_printf(sc->aw_dev, "Powering up sd/mmc\n"); + + if (sc->aw_reg_vmmc) + regulator_enable(sc->aw_reg_vmmc); + if (sc->aw_reg_vqmmc) + regulator_enable(sc->aw_reg_vqmmc); aw_mmc_init(sc); break; }; + + if (ios->vccq != sc->aw_vccq) { + aw_mmc_set_vccq(sc, ios->vccq); + sc->aw_vccq = ios->vccq; + } /* Enable ddr mode if needed */ reg = AW_MMC_READ_4(sc, AW_MMC_GCTL); From owner-svn-src-head@freebsd.org Sat May 12 14:04:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 612F6FDD491; Sat, 12 May 2018 14:04:31 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1479470A9B; Sat, 12 May 2018 14:04:31 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E995A1F536; Sat, 12 May 2018 14:04:30 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CE4UQI085412; Sat, 12 May 2018 14:04:30 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CE4UiY085410; Sat, 12 May 2018 14:04:30 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121404.w4CE4UiY085410@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:04:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333557 - in head: lib/libunbound usr.sbin/unbound X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: lib/libunbound usr.sbin/unbound X-SVN-Commit-Revision: 333557 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:04:31 -0000 Author: des Date: Sat May 12 14:04:30 2018 New Revision: 333557 URL: https://svnweb.freebsd.org/changeset/base/333557 Log: Upgrade Unbound to 1.6.1. More to follow. Modified: head/lib/libunbound/Makefile head/usr.sbin/unbound/Makefile.inc Modified: head/lib/libunbound/Makefile ============================================================================== --- head/lib/libunbound/Makefile Sat May 12 13:14:01 2018 (r333556) +++ head/lib/libunbound/Makefile Sat May 12 14:04:30 2018 (r333557) @@ -29,6 +29,7 @@ SRCS= alloc.c as112.c autotrust.c cachedb.c config_fil val_utils.c validator.c view.c winsock_event.c wire2str.c WARNS?= 3 +NO_WTHREAD_SAFETY= true LIBADD= ssl crypto pthread Modified: head/usr.sbin/unbound/Makefile.inc ============================================================================== --- head/usr.sbin/unbound/Makefile.inc Sat May 12 13:14:01 2018 (r333556) +++ head/usr.sbin/unbound/Makefile.inc Sat May 12 14:04:30 2018 (r333557) @@ -1,6 +1,7 @@ # $FreeBSD$ -NO_WERROR= true +NO_WERROR= true +NO_WTHREAD_SAFETY= true PACKAGE= unbound .include "../Makefile.inc" From owner-svn-src-head@freebsd.org Sat May 12 14:04:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9D60FDD4BF; Sat, 12 May 2018 14:04:50 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 51B2E70DF1; Sat, 12 May 2018 14:04:50 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 317D31F538; Sat, 12 May 2018 14:04:50 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CE4oSn085474; Sat, 12 May 2018 14:04:50 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CE4mHd085467; Sat, 12 May 2018 14:04:48 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121404.w4CE4mHd085467@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:04:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333558 - in head/contrib/unbound: . cachedb compat contrib daemon dnstap doc iterator libunbound services services/cache smallapp util util/data util/storage validator X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . cachedb compat contrib daemon dnstap doc iterator libunbound services services/cache smallapp util util/data util/storage validator X-SVN-Commit-Revision: 333558 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:04:51 -0000 Author: des Date: Sat May 12 14:04:48 2018 New Revision: 333558 URL: https://svnweb.freebsd.org/changeset/base/333558 Log: Upgrade Unbound to 1.6.1. More to follow. Added: - copied unchanged from r333529, vendor/unbound/dist/contrib/unbound.service.in - copied unchanged from r333529, vendor/unbound/dist/contrib/unbound.socket.in head/contrib/unbound/systemd.m4 - copied unchanged from r333529, vendor/unbound/dist/systemd.m4 Directory Properties: head/contrib/unbound/contrib/unbound.service.in (props changed) head/contrib/unbound/contrib/unbound.socket.in (props changed) Modified: head/contrib/unbound/aclocal.m4 head/contrib/unbound/compat/arc4_lock.c head/contrib/unbound/compat/ctime_r.c head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/README head/contrib/unbound/daemon/acl_list.h head/contrib/unbound/daemon/daemon.c head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/stats.h head/contrib/unbound/daemon/unbound.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/daemon/worker.h head/contrib/unbound/dnstap/dnstap.c head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/iterator/iter_donotq.h head/contrib/unbound/iterator/iter_fwd.c head/contrib/unbound/iterator/iter_fwd.h head/contrib/unbound/iterator/iter_hints.c head/contrib/unbound/iterator/iter_hints.h head/contrib/unbound/iterator/iter_priv.h head/contrib/unbound/iterator/iter_scrub.c head/contrib/unbound/iterator/iter_utils.c head/contrib/unbound/iterator/iterator.c head/contrib/unbound/iterator/iterator.h head/contrib/unbound/libunbound/context.c head/contrib/unbound/libunbound/context.h head/contrib/unbound/libunbound/libunbound.c head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/libunbound/unbound-event.h head/contrib/unbound/libunbound/unbound.h head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/dns.h head/contrib/unbound/services/cache/infra.c head/contrib/unbound/services/cache/infra.h head/contrib/unbound/services/cache/rrset.c head/contrib/unbound/services/cache/rrset.h head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/listen_dnsport.h head/contrib/unbound/services/localzone.c head/contrib/unbound/services/localzone.h head/contrib/unbound/services/mesh.c head/contrib/unbound/services/mesh.h head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/outside_network.h head/contrib/unbound/services/view.c head/contrib/unbound/services/view.h head/contrib/unbound/smallapp/unbound-anchor.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/util/alloc.c head/contrib/unbound/util/alloc.h head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/dname.c head/contrib/unbound/util/data/dname.h head/contrib/unbound/util/data/msgparse.c head/contrib/unbound/util/data/msgparse.h head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/data/msgreply.h head/contrib/unbound/util/data/packed_rrset.c head/contrib/unbound/util/data/packed_rrset.h head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/fptr_wlist.h head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/locks.c head/contrib/unbound/util/locks.h head/contrib/unbound/util/log.c head/contrib/unbound/util/mini_event.c head/contrib/unbound/util/mini_event.h head/contrib/unbound/util/module.c head/contrib/unbound/util/module.h head/contrib/unbound/util/net_help.c head/contrib/unbound/util/netevent.c head/contrib/unbound/util/netevent.h head/contrib/unbound/util/rbtree.c head/contrib/unbound/util/rbtree.h head/contrib/unbound/util/storage/dnstree.c head/contrib/unbound/util/storage/dnstree.h head/contrib/unbound/util/storage/lruhash.c head/contrib/unbound/util/storage/lruhash.h head/contrib/unbound/util/storage/slabhash.c head/contrib/unbound/util/storage/slabhash.h head/contrib/unbound/util/tube.c head/contrib/unbound/util/tube.h head/contrib/unbound/util/winsock_event.c head/contrib/unbound/util/winsock_event.h head/contrib/unbound/validator/autotrust.c head/contrib/unbound/validator/autotrust.h head/contrib/unbound/validator/val_anchor.c head/contrib/unbound/validator/val_anchor.h head/contrib/unbound/validator/val_neg.c head/contrib/unbound/validator/val_neg.h head/contrib/unbound/validator/val_nsec3.c head/contrib/unbound/validator/val_nsec3.h head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/val_sigcrypt.c head/contrib/unbound/validator/val_sigcrypt.h head/contrib/unbound/validator/validator.h Directory Properties: head/contrib/unbound/ (props changed) head/contrib/unbound/cachedb/cachedb.c (props changed) head/contrib/unbound/cachedb/cachedb.h (props changed) head/contrib/unbound/compat/isblank.c (props changed) head/contrib/unbound/compat/strsep.c (props changed) head/contrib/unbound/contrib/libunbound.pc.in (props changed) head/contrib/unbound/util/ub_event.c (props changed) head/contrib/unbound/util/ub_event.h (props changed) head/contrib/unbound/util/ub_event_pluggable.c (props changed) Modified: head/contrib/unbound/aclocal.m4 ============================================================================== --- head/contrib/unbound/aclocal.m4 Sat May 12 14:04:30 2018 (r333557) +++ head/contrib/unbound/aclocal.m4 Sat May 12 14:04:48 2018 (r333558) @@ -9044,3 +9044,329 @@ m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29.1) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + Modified: head/contrib/unbound/compat/arc4_lock.c ============================================================================== --- head/contrib/unbound/compat/arc4_lock.c Sat May 12 14:04:30 2018 (r333557) +++ head/contrib/unbound/compat/arc4_lock.c Sat May 12 14:04:48 2018 (r333558) @@ -48,7 +48,7 @@ void _ARC4_UNLOCK(void) } #else /* !THREADS_DISABLED */ -static lock_quick_t arc4lock; +static lock_quick_type arc4lock; static int arc4lockinit = 0; void _ARC4_LOCK(void) Modified: head/contrib/unbound/compat/ctime_r.c ============================================================================== --- head/contrib/unbound/compat/ctime_r.c Sat May 12 14:04:30 2018 (r333557) +++ head/contrib/unbound/compat/ctime_r.c Sat May 12 14:04:48 2018 (r333558) @@ -6,7 +6,7 @@ #include "util/locks.h" /** the lock for ctime buffer */ -static lock_basic_t ctime_lock; +static lock_basic_type ctime_lock; /** has it been inited */ static int ctime_r_init = 0; Modified: head/contrib/unbound/config.h ============================================================================== --- head/contrib/unbound/config.h Sat May 12 14:04:30 2018 (r333557) +++ head/contrib/unbound/config.h Sat May 12 14:04:48 2018 (r333558) @@ -69,6 +69,14 @@ if you don't. */ /* #undef HAVE_DECL_ARC4RANDOM_UNIFORM */ +/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you + don't. */ +#define HAVE_DECL_INET_NTOP 1 + +/* Define to 1 if you have the declaration of `inet_pton', and to 0 if you + don't. */ +#define HAVE_DECL_INET_PTON 1 + /* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you don't. */ #define HAVE_DECL_NID_SECP384R1 1 @@ -108,6 +116,9 @@ /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 +/* Define to 1 if you have the `DSA_SIG_set0' function. */ +/* #undef HAVE_DSA_SIG_SET0 */ + /* Define to 1 if you have the header file. */ /* #undef HAVE_ENDIAN_H */ @@ -144,6 +155,9 @@ /* Define to 1 if you have the `EVP_cleanup' function. */ #define HAVE_EVP_CLEANUP 1 +/* Define to 1 if you have the `EVP_dss1' function. */ +#define HAVE_EVP_DSS1 1 + /* Define to 1 if you have the `EVP_MD_CTX_new' function. */ /* #undef HAVE_EVP_MD_CTX_NEW */ @@ -345,9 +359,6 @@ /* Define to 1 if you have the `recvmsg' function. */ #define HAVE_RECVMSG 1 -/* define if you have the sbrk() call */ -/* #undef HAVE_SBRK */ - /* Define to 1 if you have the `sendmsg' function. */ #define HAVE_SENDMSG 1 @@ -396,6 +407,9 @@ /* Define if you have the SSL libraries installed. */ #define HAVE_SSL /**/ +/* Define to 1 if you have the `SSL_CTX_set_security_level' function. */ +/* #undef HAVE_SSL_CTX_SET_SECURITY_LEVEL */ + /* Define to 1 if you have the header file. */ #define HAVE_STDARG_H 1 @@ -441,6 +455,9 @@ /* Define to 1 if you have the header file. */ #define HAVE_SYSLOG_H 1 +/* Define to 1 if systemd should be used */ +/* #undef HAVE_SYSTEMD */ + /* Define to 1 if you have the header file. */ #define HAVE_SYS_PARAM_H 1 @@ -566,7 +583,7 @@ #define PACKAGE_NAME "unbound" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "unbound 1.5.10" +#define PACKAGE_STRING "unbound 1.6.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "unbound" @@ -575,7 +592,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.5.10" +#define PACKAGE_VERSION "1.6.1" /* default pidfile location */ #define PIDFILE "/var/unbound/unbound.pid" @@ -594,7 +611,7 @@ #define ROOT_CERT_FILE "/var/unbound/icannbundle.pem" /* version number for resource files */ -#define RSRC_PACKAGE_VERSION 1,5,10,0 +#define RSRC_PACKAGE_VERSION 1,6,1,0 /* Directory to chdir to */ #define RUN_DIR "/var/unbound" @@ -1054,6 +1071,14 @@ char *strsep(char **stringp, const char *delim); #ifndef HAVE_ISBLANK #define isblank unbound_isblank int isblank(int c); +#endif + +#if defined(HAVE_INET_NTOP) && !HAVE_DECL_INET_NTOP +const char *inet_ntop(int af, const void *src, char *dst, size_t size); +#endif + +#if defined(HAVE_INET_PTON) && !HAVE_DECL_INET_PTON +int inet_pton(int af, const char* src, void* dst); #endif #if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS) Modified: head/contrib/unbound/config.h.in ============================================================================== --- head/contrib/unbound/config.h.in Sat May 12 14:04:30 2018 (r333557) +++ head/contrib/unbound/config.h.in Sat May 12 14:04:48 2018 (r333558) @@ -68,6 +68,14 @@ if you don't. */ #undef HAVE_DECL_ARC4RANDOM_UNIFORM +/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you + don't. */ +#undef HAVE_DECL_INET_NTOP + +/* Define to 1 if you have the declaration of `inet_pton', and to 0 if you + don't. */ +#undef HAVE_DECL_INET_PTON + /* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you don't. */ #undef HAVE_DECL_NID_SECP384R1 @@ -446,6 +454,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYSLOG_H +/* Define to 1 if systemd should be used */ +#undef HAVE_SYSTEMD + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H @@ -1059,6 +1070,14 @@ char *strsep(char **stringp, const char *delim); #ifndef HAVE_ISBLANK #define isblank unbound_isblank int isblank(int c); +#endif + +#if defined(HAVE_INET_NTOP) && !HAVE_DECL_INET_NTOP +const char *inet_ntop(int af, const void *src, char *dst, size_t size); +#endif + +#if defined(HAVE_INET_PTON) && !HAVE_DECL_INET_PTON +int inet_pton(int af, const char* src, void* dst); #endif #if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS) Modified: head/contrib/unbound/configure ============================================================================== --- head/contrib/unbound/configure Sat May 12 14:04:30 2018 (r333557) +++ head/contrib/unbound/configure Sat May 12 14:04:48 2018 (r333558) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.6.0. +# Generated by GNU Autoconf 2.69 for unbound 1.6.1. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.6.0' -PACKAGE_STRING='unbound 1.6.0' +PACKAGE_VERSION='1.6.1' +PACKAGE_STRING='unbound 1.6.1' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -658,6 +658,15 @@ WIN_DAEMON_SRC WINAPPS WINDRES CHECKLOCK_OBJ +USE_SYSTEMD_FALSE +USE_SYSTEMD_TRUE +SYSTEMD_DAEMON_LIBS +SYSTEMD_DAEMON_CFLAGS +SYSTEMD_LIBS +SYSTEMD_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG staticexe PC_LIBEVENT_DEPENDENCY UNBOUND_EVENT_UNINSTALL @@ -841,6 +850,7 @@ enable_tfo_server with_libevent with_libexpat enable_static_exe +enable_systemd enable_lock_checks enable_allsymbols enable_dnstap @@ -862,7 +872,14 @@ CPP YACC YFLAGS LT_SYS_LIBRARY_PATH -PYTHON_VERSION' +PYTHON_VERSION +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +SYSTEMD_CFLAGS +SYSTEMD_LIBS +SYSTEMD_DAEMON_CFLAGS +SYSTEMD_DAEMON_LIBS' # Initialize some variables set by options. @@ -1403,7 +1420,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.6.0 to adapt to many kinds of systems. +\`configure' configures unbound 1.6.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1468,7 +1485,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.6.0:";; + short | recursive ) echo "Configuration of unbound 1.6.1:";; esac cat <<\_ACEOF @@ -1508,6 +1525,7 @@ Optional Features: --enable-tfo-server Enable TCP Fast Open for server mode --enable-static-exe enable to compile executables statically against (event) libs, for debug purposes + --enable-systemd compile with systemd support --enable-lock-checks enable to check lock and unlock calls, for debug purposes --enable-allsymbols export all symbols from libunbound and link binaries @@ -1591,6 +1609,19 @@ Some influential environment variables: The installed Python version to use, for example '2.3'. This string will be appended to the Python interpreter canonical name. + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + SYSTEMD_CFLAGS + C compiler flags for SYSTEMD, overriding pkg-config + SYSTEMD_LIBS + linker flags for SYSTEMD, overriding pkg-config + SYSTEMD_DAEMON_CFLAGS + C compiler flags for SYSTEMD_DAEMON, overriding pkg-config + SYSTEMD_DAEMON_LIBS + linker flags for SYSTEMD_DAEMON, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1658,7 +1689,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.6.0 +unbound configure 1.6.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2367,7 +2398,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.6.0, which was +It was created by unbound $as_me 1.6.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2719,11 +2750,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=6 -UNBOUND_VERSION_MICRO=0 +UNBOUND_VERSION_MICRO=1 LIBUNBOUND_CURRENT=6 -LIBUNBOUND_REVISION=3 +LIBUNBOUND_REVISION=4 LIBUNBOUND_AGE=4 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2774,6 +2805,7 @@ LIBUNBOUND_AGE=4 # 1.5.9 had 6:1:4 # 1.5.10 had 6:2:4 # 1.6.0 had 6:3:4 +# 1.6.1 had 7:0:5 # ub_callback_t typedef renamed to ub_callback_type # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -18467,6 +18499,317 @@ if test x_$enable_static_exe = x_yes; then fi fi +# Include systemd.m4 - begin +# macros for configuring systemd +# Copyright 2015, Sami Kerola, CloudFlare. +# BSD licensed. +# Check whether --enable-systemd was given. +if test "${enable_systemd+set}" = set; then : + enableval=$enable_systemd; +else + enable_systemd=no +fi + +have_systemd=no + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi +if test "x$enable_systemd" != xno; then : + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5 +$as_echo_n "checking for SYSTEMD... " >&6; } + +if test -n "$SYSTEMD_CFLAGS"; then + pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$SYSTEMD_LIBS"; then + pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1` + else + SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SYSTEMD_PKG_ERRORS" >&5 + + have_systemd=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_systemd=no +else + SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS + SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_systemd=yes +fi + if test "x$have_systemd" != "xyes"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5 +$as_echo_n "checking for SYSTEMD_DAEMON... " >&6; } + +if test -n "$SYSTEMD_DAEMON_CFLAGS"; then + pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SYSTEMD_DAEMON_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-daemon" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$SYSTEMD_DAEMON_LIBS"; then + pkg_cv_SYSTEMD_DAEMON_LIBS="$SYSTEMD_DAEMON_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SYSTEMD_DAEMON_LIBS=`$PKG_CONFIG --libs "libsystemd-daemon" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1` + else + SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5 + + have_systemd_daemon=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_systemd_daemon=no +else + SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS + SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_systemd_daemon=yes +fi + if test "x$have_systemd_daemon" = "xyes"; then : + have_systemd=yes +fi + +fi + case $enable_systemd:$have_systemd in #( + yes:no) : + as_fn_error $? "systemd enabled but libsystemd not found" "$LINENO" 5 ;; #( + *:yes) : + +$as_echo "#define HAVE_SYSTEMD 1" >>confdefs.h + + LIBS="$LIBS $SYSTEMD_LIBS" + + ;; #( + *) : + ;; +esac + + +fi + if test "x$have_systemd" = xyes; then + USE_SYSTEMD_TRUE= + USE_SYSTEMD_FALSE='#' +else + USE_SYSTEMD_TRUE='#' + USE_SYSTEMD_FALSE= +fi + + +# Include systemd.m4 - end + # set lock checking if requested # Check whether --enable-lock_checks was given. if test "${enable_lock_checks+set}" = set; then : @@ -18973,6 +19316,71 @@ if echo $build_os | grep darwin8 > /dev/null; then $as_echo "#define DARWIN_BROKEN_SETREUID 1" >>confdefs.h fi +ac_fn_c_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" " +$ac_includes_default +#ifdef HAVE_NETINET_IN_H +#include +#endif + +#ifdef HAVE_NETINET_TCP_H +#include +#endif + +#ifdef HAVE_ARPA_INET_H +#include +#endif + +#ifdef HAVE_WINSOCK2_H +#include +#endif + +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_have_decl_inet_pton" = xyes; then : + ac_have_decl=1 +else *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 14:15:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C5F27FDDD58; Sat, 12 May 2018 14:15:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6E297740B6; Sat, 12 May 2018 14:15:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2D6871F6C9; Sat, 12 May 2018 14:15:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEFfkF090332; Sat, 12 May 2018 14:15:41 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEFeEH090326; Sat, 12 May 2018 14:15:40 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121415.w4CEFeEH090326@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:15:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333559 - in head: contrib/unbound contrib/unbound/contrib contrib/unbound/daemon contrib/unbound/dns64 contrib/unbound/dnscrypt contrib/unbound/doc contrib/unbound/edns-subnet contrib/... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: contrib/unbound contrib/unbound/contrib contrib/unbound/daemon contrib/unbound/dns64 contrib/unbound/dnscrypt contrib/unbound/doc contrib/unbound/edns-subnet contrib/unbound/iterator contrib/... X-SVN-Commit-Revision: 333559 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:15:42 -0000 Author: des Date: Sat May 12 14:15:39 2018 New Revision: 333559 URL: https://svnweb.freebsd.org/changeset/base/333559 Log: Upgrade Unbound to 1.6.2. More to follow. Added: head/contrib/unbound/dnscrypt/ - copied from r333532, vendor/unbound/dist/dnscrypt/ head/contrib/unbound/doc/IP-BasedActions.pdf - copied unchanged from r333532, vendor/unbound/dist/doc/IP-BasedActions.pdf head/contrib/unbound/edns-subnet/ - copied from r333532, vendor/unbound/dist/edns-subnet/ head/contrib/unbound/respip/ - copied from r333532, vendor/unbound/dist/respip/ head/contrib/unbound/util/shm_side/ - copied from r333532, vendor/unbound/dist/util/shm_side/ Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/ac_pkg_swig.m4 head/contrib/unbound/acx_python.m4 head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/unbound.service.in head/contrib/unbound/daemon/daemon.c head/contrib/unbound/daemon/daemon.h head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/stats.h head/contrib/unbound/daemon/worker.c head/contrib/unbound/dns64/dns64.c head/contrib/unbound/doc/CNAME-basedRedirectionDesignNotes.pdf head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/iterator/iterator.c head/contrib/unbound/libunbound/libunbound.c head/contrib/unbound/respip/respip.c head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/dns.h head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/listen_dnsport.h head/contrib/unbound/services/localzone.c head/contrib/unbound/services/localzone.h head/contrib/unbound/services/mesh.c head/contrib/unbound/services/mesh.h head/contrib/unbound/services/modstack.c head/contrib/unbound/services/view.c head/contrib/unbound/services/view.h head/contrib/unbound/sldns/rrdef.h head/contrib/unbound/sldns/sbuffer.c head/contrib/unbound/sldns/sbuffer.h head/contrib/unbound/sldns/wire2str.c head/contrib/unbound/sldns/wire2str.h head/contrib/unbound/smallapp/unbound-checkconf.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/msgencode.c head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/data/msgreply.h head/contrib/unbound/util/data/packed_rrset.h head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/fptr_wlist.h head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/module.c head/contrib/unbound/util/module.h head/contrib/unbound/util/netevent.c head/contrib/unbound/util/netevent.h head/contrib/unbound/util/storage/lruhash.c head/contrib/unbound/util/storage/lruhash.h head/contrib/unbound/validator/val_anchor.c head/contrib/unbound/validator/val_anchor.h head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/val_sigcrypt.c head/contrib/unbound/validator/val_utils.c head/contrib/unbound/validator/validator.c head/lib/libunbound/Makefile head/usr.sbin/unbound/daemon/Makefile Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat May 12 14:04:48 2018 (r333558) +++ head/contrib/unbound/Makefile.in Sat May 12 14:15:39 2018 (r333559) @@ -23,6 +23,8 @@ CHECKLOCK_SRC=testcode/checklocks.c CHECKLOCK_OBJ=@CHECKLOCK_OBJ@ DNSTAP_SRC=@DNSTAP_SRC@ DNSTAP_OBJ=@DNSTAP_OBJ@ +DNSCRYPT_SRC=@DNSCRYPT_SRC@ +DNSCRYPT_OBJ=@DNSCRYPT_OBJ@ WITH_PYTHONMODULE=@WITH_PYTHONMODULE@ WITH_PYUNBOUND=@WITH_PYUNBOUND@ PY_MAJOR_VERSION=@PY_MAJOR_VERSION@ @@ -95,6 +97,9 @@ PYTHONMOD_HEADER=@PYTHONMOD_HEADER@ PYUNBOUND_SRC= # libunbound_wrap.lo if python libunbound wrapper enabled. PYUNBOUND_OBJ=@PYUNBOUND_OBJ@ +SUBNET_SRC=edns-subnet/edns-subnet.c edns-subnet/subnetmod.c edns-subnet/addrtree.c edns-subnet/subnet-whitelist.c +SUBNET_OBJ=@SUBNET_OBJ@ +SUBNET_HEADER=@SUBNET_HEADER@ COMMON_SRC=services/cache/dns.c services/cache/infra.c services/cache/rrset.c \ util/as112.c util/data/dname.c util/data/msgencode.c util/data/msgparse.c \ util/data/msgreply.c util/data/packed_rrset.c iterator/iterator.c \ @@ -104,6 +109,7 @@ iterator/iter_scrub.c iterator/iter_utils.c services/l services/localzone.c services/mesh.c services/modstack.c services/view.c \ services/outbound_list.c services/outside_network.c util/alloc.c \ util/config_file.c util/configlexer.c util/configparser.c \ +util/shm_side/shm_main.c \ util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \ util/netevent.c util/net_help.c util/random.c util/rbtree.c util/regional.c \ util/rtt.c util/storage/dnstree.c util/storage/lookup3.c \ @@ -112,8 +118,11 @@ util/ub_event.c util/ub_event_pluggable.c util/winsock validator/autotrust.c validator/val_anchor.c validator/validator.c \ validator/val_kcache.c validator/val_kentry.c validator/val_neg.c \ validator/val_nsec3.c validator/val_nsec.c validator/val_secalgo.c \ -validator/val_sigcrypt.c validator/val_utils.c dns64/dns64.c cachedb/cachedb.c $(CHECKLOCK_SRC) \ -$(DNSTAP_SRC) +validator/val_sigcrypt.c validator/val_utils.c dns64/dns64.c \ +edns-subnet/edns-subnet.c edns-subnet/subnetmod.c \ +edns-subnet/addrtree.c edns-subnet/subnet-whitelist.c \ +cachedb/cachedb.c respip/respip.c $(CHECKLOCK_SRC) \ +$(DNSTAP_SRC) $(DNSCRYPT_SRC) COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ as112.lo msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \ @@ -124,7 +133,8 @@ random.lo rbtree.lo regional.lo rtt.lo dnstree.lo look slabhash.lo timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo \ validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \ val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo cachedb.lo \ -$(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) +$(SUBNET_OBJ) $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) $(DNSCRYPT_OBJ) +COMMON_OBJ_WITHOUT_NETCALL+=respip.lo COMMON_OBJ_WITHOUT_UB_EVENT=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \ outside_network.lo COMMON_OBJ=$(COMMON_OBJ_WITHOUT_UB_EVENT) ub_event.lo @@ -148,15 +158,16 @@ str2wire.lo UNITTEST_SRC=testcode/unitanchor.c testcode/unitdname.c \ testcode/unitlruhash.c testcode/unitmain.c testcode/unitmsgparse.c \ testcode/unitneg.c testcode/unitregional.c testcode/unitslabhash.c \ -testcode/unitverify.c testcode/readhex.c testcode/testpkts.c testcode/unitldns.c +testcode/unitverify.c testcode/readhex.c testcode/testpkts.c testcode/unitldns.c \ +testcode/unitecs.c UNITTEST_OBJ=unitanchor.lo unitdname.lo unitlruhash.lo unitmain.lo \ unitmsgparse.lo unitneg.lo unitregional.lo unitslabhash.lo unitverify.lo \ -readhex.lo testpkts.lo unitldns.lo +readhex.lo testpkts.lo unitldns.lo unitecs.lo UNITTEST_OBJ_LINK=$(UNITTEST_OBJ) worker_cb.lo $(COMMON_OBJ) $(SLDNS_OBJ) \ $(COMPAT_OBJ) DAEMON_SRC=daemon/acl_list.c daemon/cachedump.c daemon/daemon.c \ daemon/remote.c daemon/stats.c daemon/unbound.c daemon/worker.c @WIN_DAEMON_SRC@ -DAEMON_OBJ=acl_list.lo cachedump.lo daemon.lo remote.lo stats.lo unbound.lo \ +DAEMON_OBJ=acl_list.lo cachedump.lo daemon.lo shm_main.lo remote.lo stats.lo unbound.lo \ worker.lo @WIN_DAEMON_OBJ@ DAEMON_OBJ_LINK=$(DAEMON_OBJ) $(COMMON_OBJ_ALL_SYMBOLS) $(SLDNS_OBJ) \ $(COMPAT_OBJ) @WIN_DAEMON_OBJ_LINK@ @@ -180,7 +191,7 @@ daemon/worker.c daemon/acl_list.c daemon/daemon.c daem testcode/replay.c testcode/fake_event.c TESTBOUND_OBJ=testbound.lo replay.lo fake_event.lo TESTBOUND_OBJ_LINK=$(TESTBOUND_OBJ) testpkts.lo worker.lo acl_list.lo \ -daemon.lo stats.lo $(COMMON_OBJ_WITHOUT_NETCALL) ub_event.lo $(SLDNS_OBJ) \ +daemon.lo stats.lo shm_main.lo $(COMMON_OBJ_WITHOUT_NETCALL) ub_event.lo $(SLDNS_OBJ) \ $(COMPAT_OBJ) LOCKVERIFY_SRC=testcode/lock_verify.c LOCKVERIFY_OBJ=lock_verify.lo @@ -379,6 +390,13 @@ dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h: $(srcdir)/d dnstap.pb-c.lo dnstap.pb-c.o: dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h +# dnscrypt +dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h \ + dnscrypt/dnscrypt_config.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h + # Python Module pythonmod.lo pythonmod.o: $(srcdir)/pythonmod/pythonmod.c config.h \ pythonmod/interface.h \ @@ -584,7 +602,9 @@ depend: -e 's?$$(srcdir)/util/configparser.c?util/configparser.c?g' \ -e 's?$$(srcdir)/util/configparser.h?util/configparser.h?g' \ -e 's?$$(srcdir)/dnstap/dnstap_config.h??g' \ + -e 's?$$(srcdir)/dnscrypt/dnscrypt_config.h??g' \ -e 's?$$(srcdir)/pythonmod/pythonmod.h?$$(PYTHONMOD_HEADER)?g' \ + -e 's?$$(srcdir)/edns-subnet/subnetmod.h $$(srcdir)/edns-subnet/subnet-whitelist.h $$(srcdir)/edns-subnet/edns-subnet.h $$(srcdir)/edns-subnet/addrtree.h?$$(SUBNET_HEADER)?g' \ -e 's!\(.*\)\.o[ :]*!\1.lo \1.o: !g' \ > $(DEPEND_TMP) cp $(DEPEND_TARGET) $(DEPEND_TMP2) @@ -608,11 +628,12 @@ dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/util/storage/lookup3.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h \ @@ -634,11 +655,12 @@ msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/util/module.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/module.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \ @@ -651,7 +673,8 @@ iterator.lo iterator.o: $(srcdir)/iterator/iterator.c $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \ $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h \ $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/config_file.h $(srcdir)/util/random.h \ $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/sbuffer.h @@ -695,40 +718,46 @@ iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_ut $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/iterator/iter_hints.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/iterator/iter_donotq.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_priv.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/random.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ - $(srcdir)/services/modstack.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_kcache.h \ - $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_sigcrypt.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/outside_network.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/sldns/sbuffer.h localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h $(srcdir)/util/as112.h + $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/as112.h mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/services/view.h $(srcdir)/util/data/dname.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/util/data/dname.h $(srcdir)/respip/respip.h modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h \ - $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h \ - $(srcdir)/validator/val_utils.h $(PYTHONMOD_HEADER) + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/respip/respip.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/services/view.h $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h view.lo view.o: $(srcdir)/services/view.c config.h $(srcdir)/services/view.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ @@ -736,19 +765,22 @@ view.lo view.o: $(srcdir)/services/view.c config.h $(s $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/netevent.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \ $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h + $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/dnstap/dnstap.h alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h config_file.lo config_file.o: $(srcdir)/util/config_file.c config.h $(srcdir)/util/log.h \ @@ -756,45 +788,61 @@ config_file.lo config_file.o: $(srcdir)/util/config_fi $(srcdir)/util/net_help.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/util/iana_ports.inc + $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/iana_ports.inc configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \ $(srcdir)/util/config_file.h util/configparser.h configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h +shm_main.lo shm_main.o: $(srcdir)/util/shm_side/shm_main.c config.h $(srcdir)/util/shm_side/shm_main.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \ - $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \ - $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \ - $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h \ - $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/util/config_file.h $(PYTHONMOD_HEADER) + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h \ + $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/respip/respip.h \ + $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/net_help.h $(srcdir)/edns-subnet/addrtree.h \ + $(srcdir)/edns-subnet/edns-subnet.h locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h -netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/util/ub_event.h \ - $(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/dnstap/dnstap.h +netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/ub_event.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h \ + net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ @@ -802,10 +850,11 @@ net_help.lo net_help.o: $(srcdir)/util/net_help.c conf $(srcdir)/sldns/wire2str.h random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h regional.lo regional.o: $(srcdir)/util/regional.c config.h $(srcdir)/util/log.h $(srcdir)/util/regional.h rtt.lo rtt.o: $(srcdir)/util/rtt.c config.h $(srcdir)/util/rtt.h dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/storage/dnstree.h \ @@ -813,7 +862,8 @@ dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c $(srcdir)/util/log.h $(srcdir)/util/net_help.h lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/modstack.h @@ -821,14 +871,17 @@ slabhash.lo slabhash.o: $(srcdir)/util/storage/slabhas $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h timehist.lo timehist.o: $(srcdir)/util/timehist.c config.h $(srcdir)/util/timehist.h $(srcdir)/util/log.h tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/mesh.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/ub_event.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/ub_event.h ub_event.lo ub_event.o: $(srcdir)/util/ub_event.c config.h $(srcdir)/util/ub_event.h $(srcdir)/util/log.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h ub_event_pluggable.lo ub_event_pluggable.o: $(srcdir)/util/ub_event_pluggable.c config.h $(srcdir)/util/ub_event.h \ - $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/netevent.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ @@ -840,9 +893,10 @@ autotrust.lo autotrust.o: $(srcdir)/validator/autotrus $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/keyraw.h + $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/keyraw.h val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h $(srcdir)/validator/val_anchor.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_sigcrypt.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/autotrust.h \ @@ -857,8 +911,8 @@ validator.lo validator.o: $(srcdir)/validator/validato $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_neg.h $(srcdir)/validator/val_sigcrypt.h \ $(srcdir)/validator/autotrust.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ - $(srcdir)/sldns/wire2str.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/sldns/wire2str.h val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ @@ -895,8 +949,8 @@ val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/va $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/sldns/keyraw.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ @@ -910,9 +964,37 @@ dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(s $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h +edns-subnet.lo edns-subnet.o: $(srcdir)/edns-subnet/edns-subnet.c config.h \ + $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h +subnetmod.lo subnetmod.o: $(srcdir)/edns-subnet/subnetmod.c config.h $(srcdir)/edns-subnet/subnetmod.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/addrtree.h \ + $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/edns-subnet/subnet-whitelist.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h +addrtree.lo addrtree.o: $(srcdir)/edns-subnet/addrtree.c config.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/edns-subnet/addrtree.h +subnet-whitelist.lo subnet-whitelist.o: $(srcdir)/edns-subnet/subnet-whitelist.c config.h \ + $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ + $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/regional.h $(srcdir)/util/config_file.h cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h +respip.lo respip.o: $(srcdir)/respip/respip.c config.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/sldns/str2wire.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/respip/respip.h checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/testcode/checklocks.h unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ @@ -927,7 +1009,10 @@ unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/random.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/random.h \ + $(srcdir)/respip/respip.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/services/localzone.h $(srcdir)/services/view.h unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h $(srcdir)/util/log.h \ $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \ @@ -958,6 +1043,12 @@ testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h +unitecs.lo unitecs.o: $(srcdir)/testcode/unitecs.c config.h $(srcdir)/util/log.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/edns-subnet/addrtree.h \ + $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/edns-subnet.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ @@ -967,68 +1058,72 @@ acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c co cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h $(srcdir)/daemon/cachedump.h \ $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h \ - $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/dnstap/dnstap.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h \ $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h \ $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \ + $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h $(srcdir)/util/storage/lookup3.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ - $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h $(srcdir)/respip/respip.h remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h \ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ - $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ - $(srcdir)/services/view.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h \ - $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ - $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h \ - $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/iterator/iter_delegpt.h \ + $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h \ + $(srcdir)/sldns/wire2str.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/ub_event.h + $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/ub_event.h worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ @@ -1037,16 +1132,18 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/libunbound/libworker.h + $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h $(srcdir)/libunbound/context.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/util/shm_side/shm_main.h testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \ - $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h \ + $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h \ $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/daemon/unbound.c \ $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/ub_event.h testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c config.h $(srcdir)/testcode/testpkts.h \ @@ -1055,9 +1152,10 @@ testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ @@ -1066,8 +1164,9 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/libunbound/libworker.h + $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h $(srcdir)/libunbound/context.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/util/shm_side/shm_main.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ @@ -1076,44 +1175,47 @@ acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c co $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/view.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \ + $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h $(srcdir)/util/storage/lookup3.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ - $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h $(srcdir)/respip/respip.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/testcode/testpkts.h \ - $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/testcode/testpkts.h $(srcdir)/util/rbtree.h \ + $(srcdir)/testcode/fake_event.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h fake_event.lo fake_event.o: $(srcdir)/testcode/fake_event.c config.h $(srcdir)/testcode/fake_event.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h \ - $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ - $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h + $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/modstack.h pktview.lo pktview.o: $(srcdir)/testcode/pktview.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/testcode/readhex.h $(srcdir)/sldns/sbuffer.h \ @@ -1121,10 +1223,11 @@ pktview.lo pktview.o: $(srcdir)/testcode/pktview.c con readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h $(srcdir)/util/log.h \ $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h memstats.lo memstats.o: $(srcdir)/testcode/memstats.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h + $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/modstack.h unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/smallapp/unbound-checkconf.c config.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ @@ -1132,13 +1235,14 @@ unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/sm $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h \ - $(srcdir)/services/view.h $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) + $(srcdir)/services/view.h $(srcdir)/respip/respip.h $(srcdir)/sldns/sbuffer.h worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ @@ -1146,6 +1250,7 @@ context.lo context.o: $(srcdir)/libunbound/context.c c $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/sldns/sbuffer.h libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \ @@ -1155,21 +1260,23 @@ libunbound.lo libunbound.o: $(srcdir)/libunbound/libun $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h \ $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/util/ub_event.h \ $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/sldns/sbuffer.h libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h $(srcdir)/libunbound/libworker.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \ - $(srcdir)/iterator/iter_hints.h $(srcdir)/sldns/str2wire.h + $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/sldns/str2wire.h unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \ @@ -1188,24 +1295,26 @@ perf.lo perf.o: $(srcdir)/testcode/perf.c config.h $(s delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h + $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h $(srcdir)/util/shm_side/shm_main.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/pkthdr.h unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/parseutil.h petal.lo petal.o: $(srcdir)/testcode/petal.c config.h pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c config.h $(srcdir)/util/module.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h \ $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \ - $(srcdir)/iterator/iter_delegpt.h $(srcdir)/sldns/sbuffer.h \ - + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/sldns/sbuffer.h win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc.h $(srcdir)/winrc/w_inst.h \ $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h + $(srcdir)/daemon/worker.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \ $(srcdir)/winrc/w_inst.h Modified: head/contrib/unbound/ac_pkg_swig.m4 ============================================================================== --- head/contrib/unbound/ac_pkg_swig.m4 Sat May 12 14:04:48 2018 (r333558) +++ head/contrib/unbound/ac_pkg_swig.m4 Sat May 12 14:15:39 2018 (r333559) @@ -103,9 +103,20 @@ AC_DEFUN([AC_PROG_SWIG],[ if test -z "$available_patch" ; then [available_patch=0] fi - if test $available_major -ne $required_major \ - -o $available_minor -ne $required_minor \ - -o $available_patch -lt $required_patch ; then + [badversion=0] + if test $available_major -lt $required_major ; then + [badversion=1] + fi + if test $available_major -eq $required_major \ + -a $available_minor -lt $required_minor ; then + [badversion=1] + fi + if test $available_major -eq $required_major \ + -a $available_minor -eq $required_minor \ + -a $available_patch -lt $required_patch ; then + [badversion=1] + fi + if test $badversion -eq 1 ; then AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version. You should look at http://www.swig.org]) SWIG='echo "Error: SWIG version >= $1 is required. You have '"$swig_version"'. You should look at http://www.swig.org" ; false' else Modified: head/contrib/unbound/acx_python.m4 ============================================================================== --- head/contrib/unbound/acx_python.m4 Sat May 12 14:04:48 2018 (r333558) +++ head/contrib/unbound/acx_python.m4 Sat May 12 14:15:39 2018 (r333559) @@ -22,8 +22,7 @@ AC_DEFUN([AC_PYTHON_DEVEL],[ # Check if you have distutils, else fail # AC_MSG_CHECKING([for the distutils Python package]) - ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` - if test -z "$ac_distutils_result"; then + if ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) Modified: head/contrib/unbound/config.h ============================================================================== --- head/contrib/unbound/config.h Sat May 12 14:04:48 2018 (r333558) +++ head/contrib/unbound/config.h Sat May 12 14:15:39 2018 (r333559) @@ -4,6 +4,9 @@ /* Directory to chroot to */ #define CHROOT_DIR "/var/unbound" +/* Define this to enable client subnet option. */ +/* #undef CLIENT_SUBNET */ + /* Do sha512 definitions in config.h */ /* #undef COMPAT_SHA512 */ @@ -386,6 +389,9 @@ /* Define to 1 if you have the `SHA512_Update' function. */ /* #undef HAVE_SHA512_UPDATE */ +/* Define to 1 if you have the `shmget' function. */ +#define HAVE_SHMGET 1 + /* Define to 1 if you have the `sigprocmask' function. */ #define HAVE_SIGPROCMASK 1 @@ -458,6 +464,9 @@ /* Define to 1 if systemd should be used */ /* #undef HAVE_SYSTEMD */ +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IPC_H 1 + /* Define to 1 if you have the header file. */ #define HAVE_SYS_PARAM_H 1 @@ -467,6 +476,9 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_SYS_SHA2_H */ +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SHM_H 1 + /* Define to 1 if you have the header file. */ #define HAVE_SYS_SOCKET_H 1 @@ -583,7 +595,7 @@ #define PACKAGE_NAME "unbound" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "unbound 1.6.1" +#define PACKAGE_STRING "unbound 1.6.2" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "unbound" @@ -592,7 +604,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.6.1" +#define PACKAGE_VERSION "1.6.2" /* default pidfile location */ #define PIDFILE "/var/unbound/unbound.pid" @@ -611,7 +623,7 @@ #define ROOT_CERT_FILE "/var/unbound/icannbundle.pem" /* version number for resource files */ -#define RSRC_PACKAGE_VERSION 1,6,1,0 +#define RSRC_PACKAGE_VERSION 1,6,2,0 /* Directory to chdir to */ #define RUN_DIR "/var/unbound" @@ -652,6 +664,9 @@ /* Define to 1 to use cachedb support */ /* #undef USE_CACHEDB */ +/* Define to 1 to enable dnscrypt support */ +/* #undef USE_DNSCRYPT */ + /* Define to 1 to enable dnstap support */ /* #undef USE_DNSTAP */ @@ -675,6 +690,9 @@ /* Define this to enable client TCP Fast Open. */ /* #undef USE_OSX_MSG_FASTOPEN */ + +/* Define this to enable SHA1 support. */ +#define USE_SHA1 1 /* Define this to enable SHA256 and SHA512 support. */ #define USE_SHA2 1 Modified: head/contrib/unbound/config.h.in ============================================================================== --- head/contrib/unbound/config.h.in Sat May 12 14:04:48 2018 (r333558) +++ head/contrib/unbound/config.h.in Sat May 12 14:15:39 2018 (r333559) @@ -3,6 +3,9 @@ /* Directory to chroot to */ #undef CHROOT_DIR +/* Define this to enable client subnet option. */ +#undef CLIENT_SUBNET + /* Do sha512 definitions in config.h */ #undef COMPAT_SHA512 @@ -385,6 +388,9 @@ /* Define to 1 if you have the `SHA512_Update' function. */ #undef HAVE_SHA512_UPDATE +/* Define to 1 if you have the `shmget' function. */ +#undef HAVE_SHMGET + /* Define to 1 if you have the `sigprocmask' function. */ #undef HAVE_SIGPROCMASK @@ -457,6 +463,9 @@ /* Define to 1 if systemd should be used */ #undef HAVE_SYSTEMD +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_IPC_H *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 14:19:20 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2A09AFDDFE5; Sat, 12 May 2018 14:19:20 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D281774283; Sat, 12 May 2018 14:19:19 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B48741F6D3; Sat, 12 May 2018 14:19:19 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEJJKZ090521; Sat, 12 May 2018 14:19:19 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEJEhe090499; Sat, 12 May 2018 14:19:14 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121419.w4CEJEhe090499@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:19:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333560 - in head/contrib/unbound: . doc services X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . doc services X-SVN-Commit-Revision: 333560 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:19:20 -0000 Author: des Date: Sat May 12 14:19:14 2018 New Revision: 333560 URL: https://svnweb.freebsd.org/changeset/base/333560 Log: Upgrade Unbound to 1.6.3. More to follow. Modified: head/contrib/unbound/config.h head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/services/outside_network.c Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/config.h ============================================================================== --- head/contrib/unbound/config.h Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/config.h Sat May 12 14:19:14 2018 (r333560) @@ -595,7 +595,7 @@ #define PACKAGE_NAME "unbound" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "unbound 1.6.2" +#define PACKAGE_STRING "unbound 1.6.3" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "unbound" @@ -604,7 +604,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.6.2" +#define PACKAGE_VERSION "1.6.3" /* default pidfile location */ #define PIDFILE "/var/unbound/unbound.pid" @@ -623,7 +623,7 @@ #define ROOT_CERT_FILE "/var/unbound/icannbundle.pem" /* version number for resource files */ -#define RSRC_PACKAGE_VERSION 1,6,2,0 +#define RSRC_PACKAGE_VERSION 1,6,3,0 /* Directory to chdir to */ #define RUN_DIR "/var/unbound" Modified: head/contrib/unbound/configure ============================================================================== --- head/contrib/unbound/configure Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/configure Sat May 12 14:19:14 2018 (r333560) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.6.2. +# Generated by GNU Autoconf 2.69 for unbound 1.6.3. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.6.2' -PACKAGE_STRING='unbound 1.6.2' +PACKAGE_VERSION='1.6.3' +PACKAGE_STRING='unbound 1.6.3' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -1429,7 +1429,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.6.2 to adapt to many kinds of systems. +\`configure' configures unbound 1.6.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1494,7 +1494,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.6.2:";; + short | recursive ) echo "Configuration of unbound 1.6.3:";; esac cat <<\_ACEOF @@ -1703,7 +1703,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.6.2 +unbound configure 1.6.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2412,7 +2412,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.6.2, which was +It was created by unbound $as_me 1.6.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2764,11 +2764,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=6 -UNBOUND_VERSION_MICRO=2 +UNBOUND_VERSION_MICRO=3 LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=1 +LIBUNBOUND_REVISION=2 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2821,6 +2821,7 @@ LIBUNBOUND_AGE=5 # 1.6.0 had 6:3:4 # 1.6.1 had 7:0:5 # ub_callback_t typedef renamed to ub_callback_type # 1.6.2 had 7:1:5 +# 1.6.3 had 7:2:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -20487,7 +20488,7 @@ _ACEOF -version=1.6.2 +version=1.6.3 date=`date +'%b %e, %Y'` @@ -21006,7 +21007,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.6.2, which was +This file was extended by unbound $as_me 1.6.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21072,7 +21073,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.6.2 +unbound config.status 1.6.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/unbound/configure.ac ============================================================================== --- head/contrib/unbound/configure.ac Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/configure.ac Sat May 12 14:19:14 2018 (r333560) @@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[6]) -m4_define([VERSION_MICRO],[2]) +m4_define([VERSION_MICRO],[3]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=1 +LIBUNBOUND_REVISION=2 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -71,6 +71,7 @@ LIBUNBOUND_AGE=5 # 1.6.0 had 6:3:4 # 1.6.1 had 7:0:5 # ub_callback_t typedef renamed to ub_callback_type # 1.6.2 had 7:1:5 +# 1.6.3 had 7:2:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary Modified: head/contrib/unbound/doc/Changelog ============================================================================== --- head/contrib/unbound/doc/Changelog Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/Changelog Sat May 12 14:19:14 2018 (r333560) @@ -1,3 +1,9 @@ +13 June 2017: Wouter + - Fix #1280: Unbound fails assert when response from authoritative + contains malformed qname. When 0x20 caps-for-id is enabled, when + assertions are not enabled the malformed qname is handled correctly. + - tag for 1.6.3 + 13 April 2017: Wouter - Fix #1250: inconsistent indentation in services/listen_dnsport.c. - tag for 1.6.2rc1 Modified: head/contrib/unbound/doc/README ============================================================================== --- head/contrib/unbound/doc/README Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/README Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -README for Unbound 1.6.2 +README for Unbound 1.6.3 Copyright 2007 NLnet Labs http://unbound.net Modified: head/contrib/unbound/doc/example.conf ============================================================================== --- head/contrib/unbound/doc/example.conf Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/example.conf Sat May 12 14:19:14 2018 (r333560) @@ -1,7 +1,7 @@ # # Example configuration file. # -# See unbound.conf(5) man page, version 1.6.2. +# See unbound.conf(5) man page, version 1.6.3. # # this is a comment. Modified: head/contrib/unbound/doc/example.conf.in ============================================================================== --- head/contrib/unbound/doc/example.conf.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/example.conf.in Sat May 12 14:19:14 2018 (r333560) @@ -1,7 +1,7 @@ # # Example configuration file. # -# See unbound.conf(5) man page, version 1.6.2. +# See unbound.conf(5) man page, version 1.6.3. # # this is a comment. Modified: head/contrib/unbound/doc/libunbound.3 ============================================================================== --- head/contrib/unbound/doc/libunbound.3 Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/libunbound.3 Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "libunbound" "3" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "libunbound" "3" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" libunbound.3 -- unbound library functions manual .\" @@ -43,7 +43,7 @@ .B ub_ctx_zone_remove, .B ub_ctx_data_add, .B ub_ctx_data_remove -\- Unbound DNS validating resolver 1.6.2 functions. +\- Unbound DNS validating resolver 1.6.3 functions. .SH "SYNOPSIS" .B #include .LP Modified: head/contrib/unbound/doc/libunbound.3.in ============================================================================== --- head/contrib/unbound/doc/libunbound.3.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/libunbound.3.in Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "libunbound" "3" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "libunbound" "3" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" libunbound.3 -- unbound library functions manual .\" @@ -43,7 +43,7 @@ .B ub_ctx_zone_remove, .B ub_ctx_data_add, .B ub_ctx_data_remove -\- Unbound DNS validating resolver 1.6.2 functions. +\- Unbound DNS validating resolver 1.6.3 functions. .SH "SYNOPSIS" .B #include .LP Modified: head/contrib/unbound/doc/unbound-anchor.8 ============================================================================== --- head/contrib/unbound/doc/unbound-anchor.8 Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-anchor.8 Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound-anchor" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound-anchor" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-anchor.8 -- unbound anchor maintenance utility manual .\" Modified: head/contrib/unbound/doc/unbound-anchor.8.in ============================================================================== --- head/contrib/unbound/doc/unbound-anchor.8.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-anchor.8.in Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound-anchor" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound-anchor" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-anchor.8 -- unbound anchor maintenance utility manual .\" Modified: head/contrib/unbound/doc/unbound-checkconf.8 ============================================================================== --- head/contrib/unbound/doc/unbound-checkconf.8 Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-checkconf.8 Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound-checkconf" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound-checkconf" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-checkconf.8 -- unbound configuration checker manual .\" Modified: head/contrib/unbound/doc/unbound-checkconf.8.in ============================================================================== --- head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound-checkconf" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound-checkconf" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-checkconf.8 -- unbound configuration checker manual .\" Modified: head/contrib/unbound/doc/unbound-control.8 ============================================================================== --- head/contrib/unbound/doc/unbound-control.8 Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-control.8 Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound-control" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound-control" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-control.8 -- unbound remote control manual .\" Modified: head/contrib/unbound/doc/unbound-control.8.in ============================================================================== --- head/contrib/unbound/doc/unbound-control.8.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-control.8.in Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound-control" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound-control" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-control.8 -- unbound remote control manual .\" Modified: head/contrib/unbound/doc/unbound-host.1 ============================================================================== --- head/contrib/unbound/doc/unbound-host.1 Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-host.1 Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound\-host" "1" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound\-host" "1" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-host.1 -- unbound DNS lookup utility .\" Modified: head/contrib/unbound/doc/unbound-host.1.in ============================================================================== --- head/contrib/unbound/doc/unbound-host.1.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound-host.1.in Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound\-host" "1" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound\-host" "1" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound-host.1 -- unbound DNS lookup utility .\" Modified: head/contrib/unbound/doc/unbound.8 ============================================================================== --- head/contrib/unbound/doc/unbound.8 Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound.8 Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound.8 -- unbound manual .\" @@ -9,7 +9,7 @@ .\" .SH "NAME" .B unbound -\- Unbound DNS validating resolver 1.6.2. +\- Unbound DNS validating resolver 1.6.3. .SH "SYNOPSIS" .B unbound .RB [ \-h ] Modified: head/contrib/unbound/doc/unbound.8.in ============================================================================== --- head/contrib/unbound/doc/unbound.8.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound.8.in Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound" "8" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound" "8" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound.8 -- unbound manual .\" @@ -9,7 +9,7 @@ .\" .SH "NAME" .B unbound -\- Unbound DNS validating resolver 1.6.2. +\- Unbound DNS validating resolver 1.6.3. .SH "SYNOPSIS" .B unbound .RB [ \-h ] Modified: head/contrib/unbound/doc/unbound.conf.5 ============================================================================== --- head/contrib/unbound/doc/unbound.conf.5 Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound.conf.5 Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound.conf" "5" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound.conf" "5" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound.conf.5 -- unbound.conf manual .\" Modified: head/contrib/unbound/doc/unbound.conf.5.in ============================================================================== --- head/contrib/unbound/doc/unbound.conf.5.in Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/doc/unbound.conf.5.in Sat May 12 14:19:14 2018 (r333560) @@ -1,4 +1,4 @@ -.TH "unbound.conf" "5" "Apr 24, 2017" "NLnet Labs" "unbound 1.6.2" +.TH "unbound.conf" "5" "Jun 13, 2017" "NLnet Labs" "unbound 1.6.3" .\" .\" unbound.conf.5 -- unbound.conf manual .\" Modified: head/contrib/unbound/services/outside_network.c ============================================================================== --- head/contrib/unbound/services/outside_network.c Sat May 12 14:15:39 2018 (r333559) +++ head/contrib/unbound/services/outside_network.c Sat May 12 14:19:14 2018 (r333560) @@ -1549,7 +1549,7 @@ serviced_check_qname(sldns_buffer* pkt, uint8_t* qbuf, return 0; while(len1 != 0 || len2 != 0) { if(LABEL_IS_PTR(len1)) { - d1 = sldns_buffer_at(pkt, PTR_OFFSET(len1, *d1)); + d1 = sldns_buffer_begin(pkt)+PTR_OFFSET(len1, *d1); if(d1 >= sldns_buffer_at(pkt, sldns_buffer_limit(pkt))) return 0; len1 = *d1++; From owner-svn-src-head@freebsd.org Sat May 12 14:36:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 46016FDEBD8; Sat, 12 May 2018 14:36:59 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E2AAE79B01; Sat, 12 May 2018 14:36:58 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C276C1FA29; Sat, 12 May 2018 14:36:58 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEawhR000865; Sat, 12 May 2018 14:36:58 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEawFc000862; Sat, 12 May 2018 14:36:58 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121436.w4CEawFc000862@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:36:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333561 - in head: contrib/unbound contrib/unbound/cachedb contrib/unbound/contrib contrib/unbound/daemon contrib/unbound/dnscrypt contrib/unbound/doc contrib/unbound/edns-subnet contri... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: contrib/unbound contrib/unbound/cachedb contrib/unbound/contrib contrib/unbound/daemon contrib/unbound/dnscrypt contrib/unbound/doc contrib/unbound/edns-subnet contrib/unbound/ipsecmod contri... X-SVN-Commit-Revision: 333561 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:37:00 -0000 Author: des Date: Sat May 12 14:36:58 2018 New Revision: 333561 URL: https://svnweb.freebsd.org/changeset/base/333561 Log: Upgrade Unbound to 1.6.4. More to follow. Added: head/contrib/unbound/contrib/fastrpz.patch - copied unchanged from r333537, vendor/unbound/dist/contrib/fastrpz.patch head/contrib/unbound/contrib/redirect-bogus.patch - copied unchanged from r333537, vendor/unbound/dist/contrib/redirect-bogus.patch head/contrib/unbound/ipsecmod/ - copied from r333537, vendor/unbound/dist/ipsecmod/ head/contrib/unbound/services/authzone.c - copied, changed from r333537, vendor/unbound/dist/services/authzone.c head/contrib/unbound/services/authzone.h - copied unchanged from r333537, vendor/unbound/dist/services/authzone.h Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/cachedb/cachedb.c head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/README head/contrib/unbound/contrib/unbound.service.in head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/stats.h head/contrib/unbound/daemon/worker.c head/contrib/unbound/daemon/worker.h head/contrib/unbound/dnscrypt/cert.h head/contrib/unbound/dnscrypt/dnscrypt.c head/contrib/unbound/dnscrypt/dnscrypt.h head/contrib/unbound/dnscrypt/dnscrypt.m4 head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/edns-subnet/addrtree.c head/contrib/unbound/edns-subnet/subnet-whitelist.c head/contrib/unbound/edns-subnet/subnet-whitelist.h head/contrib/unbound/edns-subnet/subnetmod.c head/contrib/unbound/edns-subnet/subnetmod.h head/contrib/unbound/iterator/iter_hints.c head/contrib/unbound/iterator/iterator.c head/contrib/unbound/libunbound/unbound.h head/contrib/unbound/respip/respip.c head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/dns.h head/contrib/unbound/services/cache/infra.c head/contrib/unbound/services/cache/infra.h head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/localzone.c head/contrib/unbound/services/localzone.h head/contrib/unbound/services/mesh.c head/contrib/unbound/services/mesh.h head/contrib/unbound/services/modstack.c head/contrib/unbound/services/modstack.h head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/view.c head/contrib/unbound/sldns/keyraw.c head/contrib/unbound/sldns/keyraw.h head/contrib/unbound/sldns/parse.c head/contrib/unbound/sldns/rrdef.c head/contrib/unbound/sldns/rrdef.h head/contrib/unbound/sldns/sbuffer.c head/contrib/unbound/sldns/str2wire.c head/contrib/unbound/sldns/str2wire.h head/contrib/unbound/sldns/wire2str.c head/contrib/unbound/sldns/wire2str.h head/contrib/unbound/smallapp/unbound-anchor.c head/contrib/unbound/smallapp/unbound-checkconf.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/msgencode.c head/contrib/unbound/util/data/msgparse.c head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/fptr_wlist.h head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/log.c head/contrib/unbound/util/module.h head/contrib/unbound/util/netevent.c head/contrib/unbound/util/netevent.h head/contrib/unbound/util/shm_side/shm_main.c head/contrib/unbound/util/shm_side/shm_main.h head/contrib/unbound/util/timehist.c head/contrib/unbound/util/timehist.h head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/val_utils.c head/contrib/unbound/validator/val_utils.h head/contrib/unbound/validator/validator.c head/contrib/unbound/validator/validator.h head/lib/libunbound/Makefile Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat May 12 14:19:14 2018 (r333560) +++ head/contrib/unbound/Makefile.in Sat May 12 14:36:58 2018 (r333561) @@ -100,6 +100,9 @@ PYUNBOUND_OBJ=@PYUNBOUND_OBJ@ SUBNET_SRC=edns-subnet/edns-subnet.c edns-subnet/subnetmod.c edns-subnet/addrtree.c edns-subnet/subnet-whitelist.c SUBNET_OBJ=@SUBNET_OBJ@ SUBNET_HEADER=@SUBNET_HEADER@ +IPSECMOD_SRC=ipsecmod/ipsecmod.c ipsecmod/ipsecmod-whitelist.c +IPSECMOD_OBJ=@IPSECMOD_OBJ@ +IPSECMOD_HEADER=@IPSECMOD_HEADER@ COMMON_SRC=services/cache/dns.c services/cache/infra.c services/cache/rrset.c \ util/as112.c util/data/dname.c util/data/msgencode.c util/data/msgparse.c \ util/data/msgreply.c util/data/packed_rrset.c iterator/iterator.c \ @@ -109,7 +112,7 @@ iterator/iter_scrub.c iterator/iter_utils.c services/l services/localzone.c services/mesh.c services/modstack.c services/view.c \ services/outbound_list.c services/outside_network.c util/alloc.c \ util/config_file.c util/configlexer.c util/configparser.c \ -util/shm_side/shm_main.c \ +util/shm_side/shm_main.c services/authzone.c\ util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \ util/netevent.c util/net_help.c util/random.c util/rbtree.c util/regional.c \ util/rtt.c util/storage/dnstree.c util/storage/lookup3.c \ @@ -122,7 +125,7 @@ validator/val_sigcrypt.c validator/val_utils.c dns64/d edns-subnet/edns-subnet.c edns-subnet/subnetmod.c \ edns-subnet/addrtree.c edns-subnet/subnet-whitelist.c \ cachedb/cachedb.c respip/respip.c $(CHECKLOCK_SRC) \ -$(DNSTAP_SRC) $(DNSCRYPT_SRC) +$(DNSTAP_SRC) $(DNSCRYPT_SRC) $(IPSECMOD_SRC) COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ as112.lo msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \ @@ -132,8 +135,9 @@ fptr_wlist.lo locks.lo log.lo mini_event.lo module.lo random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \ slabhash.lo timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo \ validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \ -val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo cachedb.lo \ -$(SUBNET_OBJ) $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) $(DNSCRYPT_OBJ) +val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo cachedb.lo authzone.lo\ +$(SUBNET_OBJ) $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) $(DNSCRYPT_OBJ) \ +$(IPSECMOD_OBJ) COMMON_OBJ_WITHOUT_NETCALL+=respip.lo COMMON_OBJ_WITHOUT_UB_EVENT=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \ outside_network.lo @@ -159,10 +163,10 @@ UNITTEST_SRC=testcode/unitanchor.c testcode/unitdname. testcode/unitlruhash.c testcode/unitmain.c testcode/unitmsgparse.c \ testcode/unitneg.c testcode/unitregional.c testcode/unitslabhash.c \ testcode/unitverify.c testcode/readhex.c testcode/testpkts.c testcode/unitldns.c \ -testcode/unitecs.c +testcode/unitecs.c testcode/unitauth.c UNITTEST_OBJ=unitanchor.lo unitdname.lo unitlruhash.lo unitmain.lo \ unitmsgparse.lo unitneg.lo unitregional.lo unitslabhash.lo unitverify.lo \ -readhex.lo testpkts.lo unitldns.lo unitecs.lo +readhex.lo testpkts.lo unitldns.lo unitecs.lo unitauth.lo UNITTEST_OBJ_LINK=$(UNITTEST_OBJ) worker_cb.lo $(COMMON_OBJ) $(SLDNS_OBJ) \ $(COMPAT_OBJ) DAEMON_SRC=daemon/acl_list.c daemon/cachedump.c daemon/daemon.c \ @@ -605,6 +609,7 @@ depend: -e 's?$$(srcdir)/dnscrypt/dnscrypt_config.h??g' \ -e 's?$$(srcdir)/pythonmod/pythonmod.h?$$(PYTHONMOD_HEADER)?g' \ -e 's?$$(srcdir)/edns-subnet/subnetmod.h $$(srcdir)/edns-subnet/subnet-whitelist.h $$(srcdir)/edns-subnet/edns-subnet.h $$(srcdir)/edns-subnet/addrtree.h?$$(SUBNET_HEADER)?g' \ + -e 's?$$(srcdir)/ipsecmod/ipsecmod.h $$(srcdir)/ipsecmod/ipsecmod-whitelist.h?$$(IPSECMOD_HEADER)?g' \ -e 's!\(.*\)\.o[ :]*!\1.lo \1.o: !g' \ > $(DEPEND_TMP) cp $(DEPEND_TARGET) $(DEPEND_TMP2) @@ -622,18 +627,19 @@ depend: # Dependencies dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/locks.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \ + $(srcdir)/sldns/sbuffer.h infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/storage/lookup3.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h \ @@ -656,11 +662,11 @@ msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/module.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/util/module.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \ @@ -674,10 +680,11 @@ iterator.lo iterator.o: $(srcdir)/iterator/iterator.c $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h \ $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/config_file.h $(srcdir)/util/random.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/random.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/sbuffer.h iter_delegpt.lo iter_delegpt.o: $(srcdir)/iterator/iter_delegpt.c config.h $(srcdir)/iterator/iter_delegpt.h \ $(srcdir)/util/log.h $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h \ @@ -719,17 +726,18 @@ iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_ut $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/iterator/iter_donotq.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_priv.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/validator/val_anchor.h \ - $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/validator/val_sigcrypt.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/random.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/sldns/str2wire.h listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/outside_network.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ @@ -737,27 +745,30 @@ localzone.lo localzone.o: $(srcdir)/services/localzone $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/as112.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/as112.h mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ - $(srcdir)/util/data/dname.h $(srcdir)/respip/respip.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/services/view.h $(srcdir)/util/data/dname.h $(srcdir)/respip/respip.h modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/respip/respip.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/services/view.h $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/respip/respip.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(PYTHONMOD_HEADER) \ + $(srcdir)/cachedb/cachedb.h $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/edns-subnet/subnetmod.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h view.lo view.o: $(srcdir)/services/view.c config.h $(srcdir)/services/view.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ @@ -766,31 +777,32 @@ view.lo view.o: $(srcdir)/services/view.c config.h $(s outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - + $(srcdir)/dnscrypt/cert.h outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \ $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/dnstap/dnstap.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h \ + alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h config_file.lo config_file.o: $(srcdir)/util/config_file.c config.h $(srcdir)/util/log.h \ $(srcdir)/util/configyyrename.h $(srcdir)/util/config_file.h util/configparser.h \ $(srcdir)/util/net_help.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h \ $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/iana_ports.inc configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \ @@ -798,24 +810,33 @@ configlexer.lo configlexer.o: util/configlexer.c confi configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h shm_main.lo shm_main.o: $(srcdir)/util/shm_side/shm_main.c config.h $(srcdir)/util/shm_side/shm_main.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h \ - $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h + $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \ + $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h +authzone.lo authzone.o: $(srcdir)/services/authzone.c config.h $(srcdir)/services/authzone.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_secalgo.h fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ + $(srcdir)/services/authzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ @@ -823,38 +844,42 @@ fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist. $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h \ $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/respip/respip.h \ + $(PYTHONMOD_HEADER) $(srcdir)/cachedb/cachedb.h $(srcdir)/ipsecmod/ipsecmod.h \ $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/net_help.h $(srcdir)/edns-subnet/addrtree.h \ $(srcdir)/edns-subnet/edns-subnet.h locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/ub_event.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/ub_event.h $(srcdir)/util/log.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/dnstap/dnstap.h \ net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/sldns/wire2str.h + $(srcdir)/sldns/wire2str.h \ + random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h regional.lo regional.o: $(srcdir)/util/regional.c config.h $(srcdir)/util/log.h $(srcdir)/util/regional.h rtt.lo rtt.o: $(srcdir)/util/rtt.c config.h $(srcdir)/util/rtt.h dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/storage/dnstree.h \ @@ -863,25 +888,25 @@ dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h slabhash.lo slabhash.o: $(srcdir)/util/storage/slabhash.c config.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h timehist.lo timehist.o: $(srcdir)/util/timehist.c config.h $(srcdir)/util/timehist.h $(srcdir)/util/log.h tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/util/ub_event.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/ub_event.h ub_event.lo ub_event.o: $(srcdir)/util/ub_event.c config.h $(srcdir)/util/ub_event.h $(srcdir)/util/log.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h ub_event_pluggable.lo ub_event_pluggable.o: $(srcdir)/util/ub_event_pluggable.c config.h $(srcdir)/util/ub_event.h \ $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ @@ -894,9 +919,10 @@ autotrust.lo autotrust.o: $(srcdir)/validator/autotrus $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/services/modstack.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/keyraw.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/keyraw.h \ + val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h $(srcdir)/validator/val_anchor.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_sigcrypt.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/autotrust.h \ @@ -912,7 +938,8 @@ validator.lo validator.o: $(srcdir)/validator/validato $(srcdir)/validator/autotrust.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/sldns/wire2str.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ @@ -921,13 +948,15 @@ val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kc val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h $(srcdir)/validator/val_kentry.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h -val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/util/rbtree.h $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/cache/dns.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ + +val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h $(srcdir)/validator/val_nsec3.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h \ @@ -943,14 +972,16 @@ val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c val_secalgo.lo val_secalgo.o: $(srcdir)/validator/val_secalgo.c config.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h \ $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/sldns/sbuffer.h \ + val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \ $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h + $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \ + val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ @@ -958,15 +989,16 @@ val_utils.lo val_utils.o: $(srcdir)/validator/val_util $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h \ $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/sldns/parseutil.h dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(srcdir)/dns64/dns64.h $(srcdir)/util/module.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h edns-subnet.lo edns-subnet.o: $(srcdir)/edns-subnet/edns-subnet.c config.h \ $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h subnetmod.lo subnetmod.o: $(srcdir)/edns-subnet/subnetmod.c config.h $(srcdir)/edns-subnet/subnetmod.h \ @@ -976,8 +1008,9 @@ subnetmod.lo subnetmod.o: $(srcdir)/edns-subnet/subnet $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/addrtree.h \ $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/edns-subnet/subnet-whitelist.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/cache/dns.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/cache/dns.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h addrtree.lo addrtree.o: $(srcdir)/edns-subnet/addrtree.c config.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ @@ -985,18 +1018,43 @@ addrtree.lo addrtree.o: $(srcdir)/edns-subnet/addrtree subnet-whitelist.lo subnet-whitelist.o: $(srcdir)/edns-subnet/subnet-whitelist.c config.h \ $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/regional.h $(srcdir)/util/config_file.h -cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h + $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h +cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h $(srcdir)/cachedb/cachedb.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/data/msgencode.h $(srcdir)/services/cache/dns.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/util/rbtree.h $(srcdir)/validator/val_secalgo.h $(srcdir)/iterator/iter_utils.h \ + $(srcdir)/iterator/iter_resptype.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/sldns/sbuffer.h respip.lo respip.o: $(srcdir)/respip/respip.c config.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h \ $(srcdir)/services/cache/dns.h $(srcdir)/sldns/str2wire.h $(srcdir)/util/config_file.h \ $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/respip/respip.h checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/testcode/checklocks.h +dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h +ipsecmod.lo ipsecmod.o: $(srcdir)/ipsecmod/ipsecmod.c config.h $(srcdir)/ipsecmod/ipsecmod.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h $(srcdir)/ipsecmod/ipsecmod-whitelist.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/services/cache/dns.h $(srcdir)/sldns/wire2str.h +ipsecmod-whitelist.lo ipsecmod-whitelist.o: $(srcdir)/ipsecmod/ipsecmod-whitelist.c config.h \ + $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h \ + $(srcdir)/ipsecmod/ipsecmod-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/str2wire.h unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/unitmain.h \ $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/rrdef.h @@ -1005,14 +1063,15 @@ unitdname.lo unitdname.o: $(srcdir)/testcode/unitdname $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \ $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h -unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ +unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/random.h \ - $(srcdir)/respip/respip.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/services/localzone.h $(srcdir)/services/view.h + $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/random.h $(srcdir)/respip/respip.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h $(srcdir)/util/log.h \ $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \ @@ -1049,18 +1108,24 @@ unitecs.lo unitecs.o: $(srcdir)/testcode/unitecs.c con $(srcdir)/sldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/edns-subnet/addrtree.h \ $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h \ $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/edns-subnet.h +unitauth.lo unitauth.o: $(srcdir)/testcode/unitauth.c config.h $(srcdir)/services/authzone.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h -cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h $(srcdir)/daemon/cachedump.h \ - $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ +cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \ + $(srcdir)/daemon/cachedump.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \ $(srcdir)/dnstap/dnstap.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/regional.h \ @@ -1068,24 +1133,27 @@ cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h \ $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h -daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \ - $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ +daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h $(srcdir)/util/storage/lookup3.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h $(srcdir)/respip/respip.h -remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h \ - $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ +remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \ + $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ @@ -1098,48 +1166,51 @@ remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h \ $(srcdir)/sldns/wire2str.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/outside_network.h $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/ub_event.h + $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/ub_event.h worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ - $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ - $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ - $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h $(srcdir)/libunbound/context.h \ - $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/util/shm_side/shm_main.h + $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \ $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h \ - $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/daemon/unbound.c \ - $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/rbtree.h \ + $(srcdir)/testcode/fake_event.h $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/daemon/unbound.c $(srcdir)/util/log.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ @@ -1153,69 +1224,72 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ - $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ - $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h \ - $(srcdir)/services/outside_network.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ - $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h $(srcdir)/libunbound/context.h \ - $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/util/shm_side/shm_main.h + $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h -daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \ - $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ +daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h $(srcdir)/util/storage/lookup3.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h $(srcdir)/respip/respip.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/outside_network.h $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/testcode/testpkts.h $(srcdir)/util/rbtree.h \ - $(srcdir)/testcode/fake_event.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/testcode/testpkts.h \ + $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h fake_event.lo fake_event.o: $(srcdir)/testcode/fake_event.c config.h $(srcdir)/testcode/fake_event.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ - $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ + $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ - $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h pktview.lo pktview.o: $(srcdir)/testcode/pktview.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/testcode/readhex.h $(srcdir)/sldns/sbuffer.h \ @@ -1224,10 +1298,10 @@ readhex.lo readhex.o: $(srcdir)/testcode/readhex.c con $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h memstats.lo memstats.o: $(srcdir)/testcode/memstats.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ - $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/smallapp/unbound-checkconf.c config.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ @@ -1235,14 +1309,14 @@ unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/sm $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h \ - $(srcdir)/services/view.h $(srcdir)/respip/respip.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/services/view.h $(srcdir)/respip/respip.h $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ @@ -1251,7 +1325,7 @@ context.lo context.o: $(srcdir)/libunbound/context.c c $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/sldns/sbuffer.h libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h \ $(srcdir)/libunbound/unbound-event.h config.h $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h \ $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ @@ -1261,22 +1335,22 @@ libunbound.lo libunbound.o: $(srcdir)/libunbound/libun $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/util/ub_event.h \ $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/services/cache/rrset.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/sldns/sbuffer.h -libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h $(srcdir)/libunbound/libworker.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ - $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ - $(srcdir)/sldns/str2wire.h +libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \ + $(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/services/view.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h \ + $(srcdir)/util/random.h $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/iterator/iter_hints.h $(srcdir)/sldns/str2wire.h unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \ @@ -1287,34 +1361,40 @@ streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h \ + perf.lo perf.o: $(srcdir)/testcode/perf.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h -unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h $(srcdir)/util/log.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h $(srcdir)/util/shm_side/shm_main.h \ - $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/pkthdr.h +unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h \ + $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/shm_side/shm_main.h $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/stats.h \ + $(srcdir)/util/timehist.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/pkthdr.h unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/parseutil.h -petal.lo petal.o: $(srcdir)/testcode/petal.c config.h + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/parseutil.h \ + +petal.lo petal.o: $(srcdir)/testcode/petal.c config.h \ + pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c config.h $(srcdir)/util/module.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \ - $(srcdir)/iterator/iter_delegpt.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/regional.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/sldns/sbuffer.h \ + win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc.h $(srcdir)/winrc/w_inst.h \ $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/daemon/worker.h \ $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \ $(srcdir)/winrc/w_inst.h @@ -1322,11 +1402,14 @@ unbound-service-remove.lo unbound-service-remove.o: $( $(srcdir)/winrc/w_inst.h anchor-update.lo anchor-update.o: $(srcdir)/winrc/anchor-update.c config.h $(srcdir)/libunbound/unbound.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/wire2str.h -keyraw.lo keyraw.o: $(srcdir)/sldns/keyraw.c config.h $(srcdir)/sldns/keyraw.h $(srcdir)/sldns/rrdef.h +keyraw.lo keyraw.o: $(srcdir)/sldns/keyraw.c config.h $(srcdir)/sldns/keyraw.h \ + $(srcdir)/sldns/rrdef.h \ + sbuffer.lo sbuffer.o: $(srcdir)/sldns/sbuffer.c config.h $(srcdir)/sldns/sbuffer.h wire2str.lo wire2str.o: $(srcdir)/sldns/wire2str.c config.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/keyraw.h + $(srcdir)/sldns/keyraw.h \ + parse.lo parse.o: $(srcdir)/sldns/parse.c config.h $(srcdir)/sldns/parse.h $(srcdir)/sldns/parseutil.h \ $(srcdir)/sldns/sbuffer.h parseutil.lo parseutil.o: $(srcdir)/sldns/parseutil.c config.h $(srcdir)/sldns/parseutil.h @@ -1346,9 +1429,11 @@ snprintf.lo snprintf.o: $(srcdir)/compat/snprintf.c co strlcat.lo strlcat.o: $(srcdir)/compat/strlcat.c config.h strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c config.h strptime.lo strptime.o: $(srcdir)/compat/strptime.c config.h -getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h +getentropy_linux.lo getentropy_linux.o: $(srcdir)/compat/getentropy_linux.c config.h \ + getentropy_osx.lo getentropy_osx.o: $(srcdir)/compat/getentropy_osx.c config.h -getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h +getentropy_solaris.lo getentropy_solaris.o: $(srcdir)/compat/getentropy_solaris.c config.h \ + getentropy_win.lo getentropy_win.o: $(srcdir)/compat/getentropy_win.c explicit_bzero.lo explicit_bzero.o: $(srcdir)/compat/explicit_bzero.c config.h arc4random.lo arc4random.o: $(srcdir)/compat/arc4random.c config.h $(srcdir)/compat/chacha_private.h Modified: head/contrib/unbound/cachedb/cachedb.c ============================================================================== --- head/contrib/unbound/cachedb/cachedb.c Sat May 12 14:19:14 2018 (r333560) +++ head/contrib/unbound/cachedb/cachedb.c Sat May 12 14:36:58 2018 (r333561) @@ -171,12 +171,13 @@ static int cachedb_apply_cfg(struct cachedb_env* cachedb_env, struct config_file* cfg) { const char* backend_str = "testframe"; /* TODO get from cfg */ + (void)cfg; /* need this until the TODO is implemented */ if(backend_str && backend_str[0]) { cachedb_env->backend = cachedb_find_backend(backend_str); if(!cachedb_env->backend) { log_err("cachedb: cannot find backend name '%s", backend_str); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 14:37:07 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB5F2FDEC08; Sat, 12 May 2018 14:37:07 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f177.google.com (mail-io0-f177.google.com [209.85.223.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6457679BA7; Sat, 12 May 2018 14:37:05 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f177.google.com with SMTP id c9-v6so10262928iob.12; Sat, 12 May 2018 07:37:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=I9346w2Z5wHxxzXU9a4O5iEKl86O/0rfq32HT9CtXtE=; b=hlEDx2zGrDJoaLtSBXCHVoMdslyFO0btlQv2LxmfpytdTFW9+5vvEX2vPrIRhnYPmC arOWnU4mf/ITRx7TR/UTIZ5yUIiEnkOP2N5+o4A4jidD6i8/bFCl5aK7uspnZifbrnrt taxrGZtCQVXDf3mSpAfyC92zPyFlQWXKoAGcFy3lk6w/cq8Etgji8SMWbHE6unCsvTrS t42DukIgjPmFl4muVDKeLE9HK9gbjZgdzX7MW5kBjkFC4U6nVg0yXqydJ6j6kxCJ1XtC IzLodKzJPnqIXM+EK2sjN49ZFcPAxgDiPsQ7RhCExXpTBrCZrgpUb554y7hh365tFEgI NN7Q== X-Gm-Message-State: ALKqPwd9eEQ8BsLvXW741GUuRlFgvfM5iCAD7EIIJVYzMjJvAe/28+eH Ynd7BQlT3ewLjTofAqx1q7w6FHmg X-Google-Smtp-Source: AB8JxZoeoJnOclWhu/WoiVBgKtAsZg6mmGC7gtmC9O+x2oS0GDxo+ncqf4t+dLsWUiI6vfhR0HYdSg== X-Received: by 2002:a6b:ae49:: with SMTP id x70-v6mr3125220ioe.148.1526135349703; Sat, 12 May 2018 07:29:09 -0700 (PDT) Received: from mail-it0-f47.google.com (mail-it0-f47.google.com. [209.85.214.47]) by smtp.gmail.com with ESMTPSA id z88-v6sm2670468ioi.25.2018.05.12.07.29.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 12 May 2018 07:29:09 -0700 (PDT) Received: by mail-it0-f47.google.com with SMTP id c5-v6so4401200itj.1; Sat, 12 May 2018 07:29:09 -0700 (PDT) X-Received: by 2002:a24:1f4a:: with SMTP id d71-v6mr2355003itd.53.1526135349176; Sat, 12 May 2018 07:29:09 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 2002:a02:a40b:0:0:0:0:0 with HTTP; Sat, 12 May 2018 07:29:08 -0700 (PDT) In-Reply-To: References: <201805111837.w4BIbE1u090904@repo.freebsd.org> From: Conrad Meyer Date: Sat, 12 May 2018 07:29:08 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333500 - head/sys/kern To: Andrew Turner Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:37:07 -0000 On Sat, May 12, 2018 at 5:10 AM, Andrew Turner wrote= : > >> On 11 May 2018, at 19:37, Matt Macy wrote: >> >> Author: mmacy >> Date: Fri May 11 18:37:14 2018 >> New Revision: 333500 >> URL: https://svnweb.freebsd.org/changeset/base/333500 >> >> Log: >> epoch(9): always set inited in epoch_init > > I don=E2=80=99t see a man page for epoch in the tree indicating calling i= t epoch(9) is incorrect. Do you plan to commit one soon? I think so. See r333466: "Documentation will follow initial use case." Conrad From owner-svn-src-head@freebsd.org Sat May 12 14:39:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C483FFDEE06; Sat, 12 May 2018 14:39:42 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 757D579E05; Sat, 12 May 2018 14:39:42 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4F1671FA2B; Sat, 12 May 2018 14:39:42 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEdgWK001005; Sat, 12 May 2018 14:39:42 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEdfEw001001; Sat, 12 May 2018 14:39:41 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121439.w4CEdfEw001001@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:39:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333562 - in head/contrib/unbound: . doc validator X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . doc validator X-SVN-Commit-Revision: 333562 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:39:43 -0000 Author: des Date: Sat May 12 14:39:41 2018 New Revision: 333562 URL: https://svnweb.freebsd.org/changeset/base/333562 Log: Upgrade Unbound to 1.6.5. More to follow. Modified: head/contrib/unbound/aclocal.m4 head/contrib/unbound/config.guess head/contrib/unbound/config.sub head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/validator/autotrust.c Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/aclocal.m4 ============================================================================== --- head/contrib/unbound/aclocal.m4 Sat May 12 14:36:58 2018 (r333561) +++ head/contrib/unbound/aclocal.m4 Sat May 12 14:39:41 2018 (r333562) @@ -9044,9 +9044,9 @@ m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) -dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -dnl serial 11 (pkg-config-0.29.1) -dnl +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 11 (pkg-config-0.29.1) + dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl @@ -9319,6 +9319,74 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR + +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES # AM_CONDITIONAL -*- Autoconf -*- Modified: head/contrib/unbound/config.guess ============================================================================== --- head/contrib/unbound/config.guess Sat May 12 14:36:58 2018 (r333561) +++ head/contrib/unbound/config.guess Sat May 12 14:39:41 2018 (r333562) @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2013-06-10' +timestamp='2016-10-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ timestamp='2013-06-10' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -149,7 +149,7 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac @@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -579,8 +603,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -617,13 +642,13 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -662,11 +687,11 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -679,12 +704,12 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -789,14 +814,14 @@ EOF echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -826,7 +851,7 @@ EOF *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; - i*:MSYS*:*) + *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) @@ -878,7 +903,7 @@ EOF exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -901,7 +926,7 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -932,6 +957,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -944,6 +972,9 @@ EOF ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -969,10 +1000,13 @@ EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or1k:Linux:*:*) + mips64el:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; - or32:Linux:*:*) + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) @@ -1001,6 +1035,9 @@ EOF ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1020,7 +1057,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1099,7 +1136,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1248,6 +1285,9 @@ EOF SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1260,22 +1300,32 @@ EOF if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1306,7 +1356,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1348,7 +1398,7 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1359,171 +1409,25 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp Modified: head/contrib/unbound/config.sub ============================================================================== --- head/contrib/unbound/config.sub Sat May 12 14:36:58 2018 (r333561) +++ head/contrib/unbound/config.sub Sat May 12 14:39:41 2018 (r333562) @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2013-08-10' +timestamp='2016-09-05' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ timestamp='2013-08-10' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -33,7 +33,7 @@ timestamp='2013-08-10' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ timestamp='2013-08-10' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,8 +116,8 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2 case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -255,16 +254,18 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ @@ -282,8 +283,10 @@ case $basic_machine in | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ @@ -295,14 +298,14 @@ case $basic_machine in | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | open8 \ - | or1k | or32 \ + | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -310,6 +313,7 @@ case $basic_machine in | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -324,7 +328,10 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -369,18 +376,20 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ @@ -400,8 +409,10 @@ case $basic_machine in | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ @@ -413,16 +424,18 @@ case $basic_machine in | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -430,6 +443,7 @@ case $basic_machine in | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -506,6 +520,9 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -626,6 +643,14 @@ case $basic_machine in basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -767,6 +792,9 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux @@ -822,6 +850,10 @@ case $basic_machine in basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -998,7 +1030,7 @@ case $basic_machine in ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1006,9 +1038,9 @@ case $basic_machine in ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1354,27 +1386,28 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 14:48:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AD400FDF43D; Sat, 12 May 2018 14:48:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5B07F7BB77; Sat, 12 May 2018 14:48:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 38E6F1FBBF; Sat, 12 May 2018 14:48:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEmfCu006219; Sat, 12 May 2018 14:48:41 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEmcmD006208; Sat, 12 May 2018 14:48:38 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121448.w4CEmcmD006208@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:48:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333563 - in head/contrib/unbound: . cachedb contrib daemon dns64 dnscrypt doc iterator libunbound services services/cache sldns smallapp util util/data util/shm_side util/storage valid... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . cachedb contrib daemon dns64 dnscrypt doc iterator libunbound services services/cache sldns smallapp util util/data util/shm_side util/storage validator X-SVN-Commit-Revision: 333563 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:48:42 -0000 Author: des Date: Sat May 12 14:48:38 2018 New Revision: 333563 URL: https://svnweb.freebsd.org/changeset/base/333563 Log: Upgrade Unbound to 1.6.6. More to follow. Added: head/contrib/unbound/dnscrypt/dnscrypt_config.h (contents, props changed) Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/acx_nlnetlabs.m4 head/contrib/unbound/cachedb/cachedb.c head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/fastrpz.patch head/contrib/unbound/daemon/daemon.c head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/unbound.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/dns64/dns64.c head/contrib/unbound/dnscrypt/dnscrypt.c head/contrib/unbound/dnscrypt/dnscrypt.h head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/iterator/iterator.c head/contrib/unbound/iterator/iterator.h head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/libunbound/unbound.h head/contrib/unbound/services/authzone.c head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/infra.c head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/localzone.c head/contrib/unbound/services/localzone.h head/contrib/unbound/services/outside_network.c head/contrib/unbound/sldns/parseutil.c head/contrib/unbound/sldns/str2wire.c head/contrib/unbound/sldns/wire2str.c head/contrib/unbound/smallapp/unbound-anchor.c head/contrib/unbound/smallapp/unbound-checkconf.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/net_help.c head/contrib/unbound/util/net_help.h head/contrib/unbound/util/netevent.c head/contrib/unbound/util/shm_side/shm_main.c head/contrib/unbound/util/storage/lookup3.c head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/val_utils.c Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/Makefile.in Sat May 12 14:48:38 2018 (r333563) @@ -426,7 +426,7 @@ libunbound/python/libunbound_wrap.c: $(srcdir)/libunbo # Pyunbound python unbound wrapper _unbound.la: libunbound_wrap.lo libunbound.la - $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -avoid-version -no-undefined -shared -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound + $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -avoid-version -no-undefined -shared -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) -L. -L.libs -lunbound util/config_file.c: util/configparser.h util/configlexer.c: $(srcdir)/util/configlexer.lex util/configparser.h @@ -735,9 +735,9 @@ iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_ut $(srcdir)/sldns/str2wire.h listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/services/outside_network.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ @@ -749,8 +749,8 @@ localzone.lo localzone.o: $(srcdir)/services/localzone $(srcdir)/util/as112.h mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h \ $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h \ @@ -777,12 +777,12 @@ view.lo view.o: $(srcdir)/services/view.c config.h $(s outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \ $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \ $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ @@ -830,7 +830,7 @@ authzone.lo authzone.o: $(srcdir)/services/authzone.c $(srcdir)/validator/val_secalgo.h fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ @@ -851,8 +851,8 @@ locks.lo locks.o: $(srcdir)/util/locks.c config.h $(sr log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/modstack.h @@ -860,8 +860,8 @@ module.lo module.o: $(srcdir)/util/module.c config.h $ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/ub_event.h $(srcdir)/util/log.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/ub_event.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ @@ -876,7 +876,7 @@ net_help.lo net_help.o: $(srcdir)/util/net_help.c conf random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h @@ -897,19 +897,19 @@ slabhash.lo slabhash.o: $(srcdir)/util/storage/slabhas timehist.lo timehist.o: $(srcdir)/util/timehist.c config.h $(srcdir)/util/timehist.h $(srcdir)/util/log.h tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/mesh.h \ $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/ub_event.h ub_event.lo ub_event.o: $(srcdir)/util/ub_event.c config.h $(srcdir)/util/ub_event.h $(srcdir)/util/log.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h ub_event_pluggable.lo ub_event_pluggable.o: $(srcdir)/util/ub_event_pluggable.c config.h $(srcdir)/util/ub_event.h \ $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h $(srcdir)/validator/autotrust.h \ @@ -1040,7 +1040,9 @@ checklocks.lo checklocks.o: $(srcdir)/testcode/checklo $(srcdir)/testcode/checklocks.h dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/storage/lookup3.h ipsecmod.lo ipsecmod.o: $(srcdir)/ipsecmod/ipsecmod.c config.h $(srcdir)/ipsecmod/ipsecmod.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ @@ -1174,9 +1176,10 @@ stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $( $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ + $(srcdir)/validator/val_kcache.h unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/daemon/remote.h \ @@ -1207,16 +1210,15 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \ $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/rbtree.h \ - $(srcdir)/testcode/fake_event.h $(srcdir)/daemon/remote.h \ - $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/daemon/unbound.c $(srcdir)/util/log.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/ub_event.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/daemon/remote.h \ + $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h $(srcdir)/daemon/unbound.c $(srcdir)/daemon/daemon.h \ + $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/ub_event.h testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c config.h $(srcdir)/testcode/testpkts.h \ $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h @@ -1266,17 +1268,19 @@ stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $( $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ + $(srcdir)/validator/val_kcache.h replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/testcode/testpkts.h \ - $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h \ + $(srcdir)/testcode/testpkts.h $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/rrdef.h fake_event.lo fake_event.o: $(srcdir)/testcode/fake_event.c config.h $(srcdir)/testcode/fake_event.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h \ $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ @@ -1309,7 +1313,8 @@ unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/sm $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h \ - $(srcdir)/services/view.h $(srcdir)/respip/respip.h $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) + $(srcdir)/services/view.h $(srcdir)/respip/respip.h $(srcdir)/sldns/sbuffer.h $(PYTHONMOD_HEADER) \ + $(srcdir)/edns-subnet/subnet-whitelist.h worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/libunbound/context.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ Modified: head/contrib/unbound/acx_nlnetlabs.m4 ============================================================================== --- head/contrib/unbound/acx_nlnetlabs.m4 Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/acx_nlnetlabs.m4 Sat May 12 14:48:38 2018 (r333563) @@ -688,8 +688,8 @@ AC_DEFUN([ACX_SSL_CHECKS], [ # check if -lwsock32 or -lgdi32 are needed. BAKLIBS="$LIBS" BAKSSLLIBS="$LIBSSL_LIBS" - LIBS="$LIBS -lgdi32" - LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32" + LIBS="$LIBS -lgdi32 -lws2_32" + LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32" AC_MSG_CHECKING([if -lcrypto needs -lgdi32]) AC_TRY_LINK([], [ int HMAC_Update(void); @@ -839,7 +839,11 @@ dnl see if on windows if test "$ac_cv_header_windows_h" = "yes"; then AC_DEFINE(USE_WINSOCK, 1, [Whether the windows socket API is used]) USE_WINSOCK="1" - LIBS="$LIBS -lws2_32" + if echo $LIBS | grep 'lws2_32' >/dev/null; then + : + else + LIBS="$LIBS -lws2_32" + fi fi ], dnl no quick getaddrinfo, try mingw32 and winsock2 library. Modified: head/contrib/unbound/cachedb/cachedb.c ============================================================================== --- head/contrib/unbound/cachedb/cachedb.c Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/cachedb/cachedb.c Sat May 12 14:48:38 2018 (r333563) @@ -61,6 +61,8 @@ /** the unit test testframe for cachedb, its module state contains * a cache for a couple queries (in memory). */ struct testframe_moddata { + /** lock for mutex */ + lock_basic_type lock; /** key for single stored data element, NULL if none */ char* stored_key; /** data for single stored data element, NULL if none */ @@ -72,14 +74,18 @@ struct testframe_moddata { static int testframe_init(struct module_env* env, struct cachedb_env* cachedb_env) { + struct testframe_moddata* d; (void)env; verbose(VERB_ALGO, "testframe_init"); - cachedb_env->backend_data = (void*)calloc(1, + d = (struct testframe_moddata*)calloc(1, sizeof(struct testframe_moddata)); + cachedb_env->backend_data = (void*)d; if(!cachedb_env->backend_data) { log_err("out of memory"); return 0; } + lock_basic_init(&d->lock); + lock_protect(&d->lock, d, sizeof(*d)); return 1; } @@ -92,6 +98,7 @@ testframe_deinit(struct module_env* env, struct cached verbose(VERB_ALGO, "testframe_deinit"); if(!d) return; + lock_basic_destroy(&d->lock); free(d->stored_key); free(d->stored_data); free(d); @@ -105,17 +112,22 @@ testframe_lookup(struct module_env* env, struct cached cachedb_env->backend_data; (void)env; verbose(VERB_ALGO, "testframe_lookup of %s", key); + lock_basic_lock(&d->lock); if(d->stored_key && strcmp(d->stored_key, key) == 0) { - if(d->stored_datalen > sldns_buffer_capacity(result_buffer)) + if(d->stored_datalen > sldns_buffer_capacity(result_buffer)) { + lock_basic_unlock(&d->lock); return 0; /* too large */ + } verbose(VERB_ALGO, "testframe_lookup found %d bytes", (int)d->stored_datalen); sldns_buffer_clear(result_buffer); sldns_buffer_write(result_buffer, d->stored_data, d->stored_datalen); sldns_buffer_flip(result_buffer); + lock_basic_unlock(&d->lock); return 1; } + lock_basic_unlock(&d->lock); return 0; } @@ -126,6 +138,7 @@ testframe_store(struct module_env* env, struct cachedb struct testframe_moddata* d = (struct testframe_moddata*) cachedb_env->backend_data; (void)env; + lock_basic_lock(&d->lock); verbose(VERB_ALGO, "testframe_store %s (%d bytes)", key, (int)data_len); /* free old data element (if any) */ @@ -137,6 +150,7 @@ testframe_store(struct module_env* env, struct cachedb d->stored_data = memdup(data, data_len); if(!d->stored_data) { + lock_basic_unlock(&d->lock); log_err("out of memory"); return; } @@ -146,8 +160,10 @@ testframe_store(struct module_env* env, struct cachedb free(d->stored_data); d->stored_data = NULL; d->stored_datalen = 0; + lock_basic_unlock(&d->lock); return; } + lock_basic_unlock(&d->lock); /* (key,data) successfully stored */ } @@ -170,16 +186,17 @@ cachedb_find_backend(const char* str) static int cachedb_apply_cfg(struct cachedb_env* cachedb_env, struct config_file* cfg) { - const char* backend_str = "testframe"; /* TODO get from cfg */ - (void)cfg; /* need this until the TODO is implemented */ - if(backend_str && backend_str[0]) { - cachedb_env->backend = cachedb_find_backend(backend_str); - if(!cachedb_env->backend) { - log_err("cachedb: cannot find backend name '%s", - backend_str); - return 0; - } + const char* backend_str = cfg->cachedb_backend; + + /* If unspecified we use the in-memory test DB. */ + if(!backend_str) + backend_str = "testframe"; + cachedb_env->backend = cachedb_find_backend(backend_str); + if(!cachedb_env->backend) { + log_err("cachedb: cannot find backend name '%s'", backend_str); + return 0; } + /* TODO see if more configuration needs to be applied or not */ return 1; } @@ -277,9 +294,10 @@ calc_hash(struct module_qstate* qstate, char* buf, siz size_t clen = 0; uint8_t hash[CACHEDB_HASHSIZE/8]; const char* hex = "0123456789ABCDEF"; - const char* secret = "default"; /* TODO: from qstate->env->cfg */ + const char* secret = qstate->env->cfg->cachedb_secret ? + qstate->env->cfg->cachedb_secret : "default"; size_t i; - + /* copy the hash info into the clear buffer */ if(clen + qstate->qinfo.qname_len < sizeof(clear)) { memmove(clear+clen, qstate->qinfo.qname, Modified: head/contrib/unbound/config.h ============================================================================== --- head/contrib/unbound/config.h Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/config.h Sat May 12 14:48:38 2018 (r333563) @@ -297,6 +297,9 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_NETTLE_DSA_COMPAT_H */ +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETTLE_EDDSA_H */ + /* Use libnss for crypto */ /* #undef HAVE_NSS */ @@ -602,7 +605,7 @@ #define PACKAGE_NAME "unbound" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "unbound 1.6.4" +#define PACKAGE_STRING "unbound 1.6.6" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "unbound" @@ -611,7 +614,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.6.4" +#define PACKAGE_VERSION "1.6.6" /* default pidfile location */ #define PIDFILE "/var/unbound/unbound.pid" @@ -630,7 +633,7 @@ #define ROOT_CERT_FILE "/var/unbound/icannbundle.pem" /* version number for resource files */ -#define RSRC_PACKAGE_VERSION 1,6,4,0 +#define RSRC_PACKAGE_VERSION 1,6,6,0 /* Directory to chdir to */ #define RUN_DIR "/var/unbound" Modified: head/contrib/unbound/config.h.in ============================================================================== --- head/contrib/unbound/config.h.in Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/config.h.in Sat May 12 14:48:38 2018 (r333563) @@ -296,6 +296,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_NETTLE_DSA_COMPAT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_NETTLE_EDDSA_H + /* Use libnss for crypto */ #undef HAVE_NSS Modified: head/contrib/unbound/configure ============================================================================== --- head/contrib/unbound/configure Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/configure Sat May 12 14:48:38 2018 (r333563) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.6.5. +# Generated by GNU Autoconf 2.69 for unbound 1.6.6. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.6.5' -PACKAGE_STRING='unbound 1.6.5' +PACKAGE_VERSION='1.6.6' +PACKAGE_STRING='unbound 1.6.6' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -1437,7 +1437,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.6.5 to adapt to many kinds of systems. +\`configure' configures unbound 1.6.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1502,7 +1502,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.6.5:";; + short | recursive ) echo "Configuration of unbound 1.6.6:";; esac cat <<\_ACEOF @@ -1714,7 +1714,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.6.5 +unbound configure 1.6.6 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2423,7 +2423,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.6.5, which was +It was created by unbound $as_me 1.6.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2775,11 +2775,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=6 -UNBOUND_VERSION_MICRO=5 +UNBOUND_VERSION_MICRO=6 LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=4 +LIBUNBOUND_REVISION=5 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2835,6 +2835,7 @@ LIBUNBOUND_AGE=5 # 1.6.3 had 7:2:5 # 1.6.4 had 7:3:5 # 1.6.5 had 7:4:5 +# 1.6.6 had 7:5:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -16464,7 +16465,9 @@ if test x"$ax_pthread_ok" = xyes; then $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h - LIBS="$PTHREAD_LIBS $LIBS" + if test -n "$PTHREAD_LIBS"; then + LIBS="$PTHREAD_LIBS $LIBS" + fi CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" ub_have_pthreads=yes @@ -16894,8 +16897,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu $as_echo "#define HAVE_PYTHON 1" >>confdefs.h - LIBS="$PYTHON_LDFLAGS $LIBS" - CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" + if test -n "$LIBS"; then + LIBS="$PYTHON_LDFLAGS $LIBS" + else + LIBS="$PYTHON_LDFLAGS" + fi + if test -n "$CPPFLAGS"; then + CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" + else + CPPFLAGS="$PYTHON_CPPFLAGS" + fi ub_have_python=yes PC_PY_DEPENDENCY="python" @@ -17250,8 +17261,8 @@ $as_echo "no" >&6; } # check if -lwsock32 or -lgdi32 are needed. BAKLIBS="$LIBS" BAKSSLLIBS="$LIBSSL_LIBS" - LIBS="$LIBS -lgdi32" - LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32" + LIBS="$LIBS -lgdi32 -lws2_32" + LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5 $as_echo_n "checking if -lcrypto needs -lgdi32... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -18053,6 +18064,7 @@ case "$enable_dsa" in ;; *) # detect if DSA is supported, and turn it off if not. + if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then ac_fn_c_check_func "$LINENO" "DSA_SIG_new" "ac_cv_func_DSA_SIG_new" if test "x$ac_cv_func_DSA_SIG_new" = xyes; then : @@ -18067,6 +18079,13 @@ else fi fi + else + +cat >>confdefs.h <<_ACEOF +#define USE_DSA 1 +_ACEOF + + fi ;; esac @@ -18096,11 +18115,6 @@ cat >>confdefs.h <<_ACEOF _ACEOF if test $ac_have_decl = 1; then : - -cat >>confdefs.h <<_ACEOF -#define USE_ED25519 1 -_ACEOF - use_ed25519="yes" else @@ -18109,6 +18123,28 @@ else fi fi + if test $USE_NETTLE = "yes"; then + for ac_header in nettle/eddsa.h +do : + ac_fn_c_check_header_compile "$LINENO" "nettle/eddsa.h" "ac_cv_header_nettle_eddsa_h" "$ac_includes_default +" +if test "x$ac_cv_header_nettle_eddsa_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NETTLE_EDDSA_H 1 +_ACEOF + use_ed25519="yes" +fi + +done + + fi + if test $use_ed25519 = "yes"; then + +cat >>confdefs.h <<_ACEOF +#define USE_ED25519 1 +_ACEOF + + fi ;; esac @@ -18621,7 +18657,12 @@ if test x_$enable_static_exe = x_yes; then if test "$on_mingw" = yes; then staticexe="-all-static" # for static compile, include gdi32 and zlib here. - LIBS="$LIBS -lgdi32 -lz" + if echo $LIBS | grep 'lgdi32' >/dev/null; then + : + else + LIBS="$LIBS -lgdi32" + fi + LIBS="$LIBS -lz" fi fi @@ -18979,7 +19020,11 @@ if test "$ac_cv_header_windows_h" = "yes"; then $as_echo "#define USE_WINSOCK 1" >>confdefs.h USE_WINSOCK="1" - LIBS="$LIBS -lws2_32" + if echo $LIBS | grep 'lws2_32' >/dev/null; then + : + else + LIBS="$LIBS -lws2_32" + fi fi else @@ -20633,7 +20678,12 @@ $as_echo "#define OMITTED__D_LARGEFILE_SOURCE_1 1" >>c fi -LDFLAGS="$LATE_LDFLAGS $LDFLAGS" +if test -n "$LATE_LDFLAGS"; then + LDFLAGS="$LATE_LDFLAGS $LDFLAGS" +fi +# remove start spaces +LDFLAGS=`echo "$LDFLAGS"|sed -e 's/^ *//'` +LIBS=`echo "$LIBS"|sed -e 's/^ *//'` cat >>confdefs.h <<_ACEOF @@ -20643,7 +20693,7 @@ _ACEOF -version=1.6.5 +version=1.6.6 date=`date +'%b %e, %Y'` @@ -21162,7 +21212,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.6.5, which was +This file was extended by unbound $as_me 1.6.6, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21228,7 +21278,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.6.5 +unbound config.status 1.6.6 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/unbound/configure.ac ============================================================================== --- head/contrib/unbound/configure.ac Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/configure.ac Sat May 12 14:48:38 2018 (r333563) @@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[6]) -m4_define([VERSION_MICRO],[5]) +m4_define([VERSION_MICRO],[6]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=4 +LIBUNBOUND_REVISION=5 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -74,6 +74,7 @@ LIBUNBOUND_AGE=5 # 1.6.3 had 7:2:5 # 1.6.4 had 7:3:5 # 1.6.5 had 7:4:5 +# 1.6.6 had 7:5:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -456,7 +457,9 @@ ub_have_pthreads=no if test x_$withval != x_no; then AX_PTHREAD([ AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]) - LIBS="$PTHREAD_LIBS $LIBS" + if test -n "$PTHREAD_LIBS"; then + LIBS="$PTHREAD_LIBS $LIBS" + fi CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" ub_have_pthreads=yes @@ -558,8 +561,16 @@ if test x_$ub_test_python != x_no; then AC_SUBST(PY_MAJOR_VERSION) # Have Python AC_DEFINE(HAVE_PYTHON,1,[Define if you have Python libraries and header files.]) - LIBS="$PYTHON_LDFLAGS $LIBS" - CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" + if test -n "$LIBS"; then + LIBS="$PYTHON_LDFLAGS $LIBS" + else + LIBS="$PYTHON_LDFLAGS" + fi + if test -n "$CPPFLAGS"; then + CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" + else + CPPFLAGS="$PYTHON_CPPFLAGS" + fi ub_have_python=yes PC_PY_DEPENDENCY="python" AC_SUBST(PC_PY_DEPENDENCY) @@ -912,10 +923,14 @@ case "$enable_dsa" in ;; *) # detect if DSA is supported, and turn it off if not. + if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then AC_CHECK_FUNC(DSA_SIG_new, [ AC_DEFINE_UNQUOTED([USE_DSA], [1], [Define this to enable DSA support.]) ], [if test "x$enable_dsa" = "xyes"; then AC_MSG_ERROR([OpenSSL does not support DSA and you used --enable-dsa.]) fi ]) + else + AC_DEFINE_UNQUOTED([USE_DSA], [1], [Define this to enable DSA support.]) + fi ;; esac @@ -927,13 +942,18 @@ case "$enable_ed25519" in *) if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then AC_CHECK_DECLS([NID_ED25519], [ - AC_DEFINE_UNQUOTED([USE_ED25519], [1], [Define this to enable ED25519 support.]) use_ed25519="yes" ], [ if test "x$enable_ed25519" = "xyes"; then AC_MSG_ERROR([OpenSSL does not support ED25519 and you used --enable-ed25519.]) fi ], [AC_INCLUDES_DEFAULT #include ]) fi + if test $USE_NETTLE = "yes"; then + AC_CHECK_HEADERS([nettle/eddsa.h], use_ed25519="yes",, [AC_INCLUDES_DEFAULT]) + fi + if test $use_ed25519 = "yes"; then + AC_DEFINE_UNQUOTED([USE_ED25519], [1], [Define this to enable ED25519 support.]) + fi ;; esac @@ -1106,7 +1126,12 @@ if test x_$enable_static_exe = x_yes; then if test "$on_mingw" = yes; then staticexe="-all-static" # for static compile, include gdi32 and zlib here. - LIBS="$LIBS -lgdi32 -lz" + if echo $LIBS | grep 'lgdi32' >/dev/null; then + : + else + LIBS="$LIBS -lgdi32" + fi + LIBS="$LIBS -lz" fi fi @@ -1448,7 +1473,12 @@ AC_SUBST(ALLTARGET) AC_SUBST(INSTALLTARGET) ACX_STRIP_EXT_FLAGS -LDFLAGS="$LATE_LDFLAGS $LDFLAGS" +if test -n "$LATE_LDFLAGS"; then + LDFLAGS="$LATE_LDFLAGS $LDFLAGS" +fi +# remove start spaces +LDFLAGS=`echo "$LDFLAGS"|sed -e 's/^ *//'` +LIBS=`echo "$LIBS"|sed -e 's/^ *//'` AC_DEFINE_UNQUOTED([MAXSYSLOGMSGLEN], [10240], [Define to the maximum message length to pass to syslog.]) Modified: head/contrib/unbound/contrib/fastrpz.patch ============================================================================== --- head/contrib/unbound/contrib/fastrpz.patch Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/contrib/fastrpz.patch Sat May 12 14:48:38 2018 (r333563) @@ -3263,15 +3263,15 @@ diff -u --unidirectional-new-file -r1.1 ./util/configp %token VAR_RESPONSE_IP_TAG VAR_RESPONSE_IP VAR_RESPONSE_IP_DATA %token VAR_HARDEN_ALGO_DOWNGRADE VAR_IP_TRANSPARENT %token VAR_DISABLE_DNSSEC_LAME_CHECK -@@ -150,7 +151,7 @@ +@@ -153,7 +154,7 @@ toplevelvar: serverstart contents_server | stubstart contents_stub | forwardstart contents_forward | pythonstart contents_py | rcstart contents_rc | dtstart contents_dt | viewstart - contents_view | + contents_view | rpzstart contents_rpz | - dnscstart contents_dnsc + dnscstart contents_dnsc | + cachedbstart contents_cachedb ; - @@ -2160,6 +2161,50 @@ (strcmp($2, "yes")==0); } Modified: head/contrib/unbound/daemon/daemon.c ============================================================================== --- head/contrib/unbound/daemon/daemon.c Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/daemon/daemon.c Sat May 12 14:48:38 2018 (r333563) @@ -221,7 +221,9 @@ daemon_init(void) # ifdef HAVE_ERR_LOAD_CRYPTO_STRINGS ERR_load_crypto_strings(); # endif +#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL) ERR_load_SSL_strings(); +#endif # ifdef USE_GOST (void)sldns_key_EVP_load_gost_id(); # endif @@ -239,7 +241,7 @@ daemon_init(void) # if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL) (void)SSL_library_init(); # else - (void)OPENSSL_init_ssl(0, NULL); + (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL); # endif # if defined(HAVE_SSL) && defined(OPENSSL_THREADS) && !defined(THREADS_DISABLED) if(!ub_openssl_lock_init()) @@ -421,8 +423,8 @@ daemon_create_workers(struct daemon* daemon) daemon->rand = ub_initstate(seed, NULL); if(!daemon->rand) fatal_exit("could not init random generator"); + hash_set_raninit((uint32_t)ub_random(daemon->rand)); } - hash_set_raninit((uint32_t)ub_random(daemon->rand)); shufport = (int*)calloc(65536, sizeof(int)); if(!shufport) fatal_exit("out of memory during daemon init"); @@ -690,6 +692,9 @@ daemon_cleanup(struct daemon* daemon) daemon->num = 0; #ifdef USE_DNSTAP dt_delete(daemon->dtenv); +#endif +#ifdef USE_DNSCRYPT + dnsc_delete(daemon->dnscenv); #endif daemon->cfg = NULL; } Modified: head/contrib/unbound/daemon/remote.c ============================================================================== --- head/contrib/unbound/daemon/remote.c Sat May 12 14:39:41 2018 (r333562) +++ head/contrib/unbound/daemon/remote.c Sat May 12 14:48:38 2018 (r333563) @@ -229,42 +229,10 @@ daemon_remote_create(struct config_file* cfg) free(rc); return NULL; } - /* no SSLv2, SSLv3 because has defects */ - if((SSL_CTX_set_options(rc->ctx, SSL_OP_NO_SSLv2) & SSL_OP_NO_SSLv2) - != SSL_OP_NO_SSLv2){ - log_crypto_err("could not set SSL_OP_NO_SSLv2"); + if(!listen_sslctx_setup(rc->ctx)) { daemon_remote_delete(rc); return NULL; } - if((SSL_CTX_set_options(rc->ctx, SSL_OP_NO_SSLv3) & SSL_OP_NO_SSLv3) - != SSL_OP_NO_SSLv3){ - log_crypto_err("could not set SSL_OP_NO_SSLv3"); - daemon_remote_delete(rc); - return NULL; - } -#if defined(SSL_OP_NO_TLSv1) && defined(SSL_OP_NO_TLSv1_1) - /* if we have tls 1.1 disable 1.0 */ - if((SSL_CTX_set_options(rc->ctx, SSL_OP_NO_TLSv1) & SSL_OP_NO_TLSv1) - != SSL_OP_NO_TLSv1){ - log_crypto_err("could not set SSL_OP_NO_TLSv1"); - daemon_remote_delete(rc); - return NULL; - } -#endif -#if defined(SSL_OP_NO_TLSv1_1) && defined(SSL_OP_NO_TLSv1_2) - /* if we have tls 1.2 disable 1.1 */ - if((SSL_CTX_set_options(rc->ctx, SSL_OP_NO_TLSv1_1) & SSL_OP_NO_TLSv1_1) - != SSL_OP_NO_TLSv1_1){ - log_crypto_err("could not set SSL_OP_NO_TLSv1_1"); - daemon_remote_delete(rc); - return NULL; - } -#endif -#if defined(SHA256_DIGEST_LENGTH) && defined(USE_ECDSA) - /* if we have sha256, set the cipher list to have no known vulns */ - if(!SSL_CTX_set_cipher_list(rc->ctx, "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256")) - log_crypto_err("could not set cipher list with SSL_CTX_set_cipher_list"); -#endif if (cfg->remote_control_use_cert == 0) { /* No certificates are requested */ @@ -314,23 +282,7 @@ daemon_remote_create(struct config_file* cfg) log_crypto_err("Error in SSL_CTX check_private_key"); goto setup_error; } -#if HAVE_DECL_SSL_CTX_SET_ECDH_AUTO - if(!SSL_CTX_set_ecdh_auto(rc->ctx,1)) { - log_crypto_err("Error in SSL_CTX_ecdh_auto, not enabling ECDHE"); - } -#elif defined(USE_ECDSA) - if(1) { - EC_KEY *ecdh = EC_KEY_new_by_curve_name (NID_X9_62_prime256v1); - if (!ecdh) { - log_crypto_err("could not find p256, not enabling ECDHE"); - } else { - if (1 != SSL_CTX_set_tmp_ecdh (rc->ctx, ecdh)) { - log_crypto_err("Error in SSL_CTX_set_tmp_ecdh, not enabling ECDHE"); - } - EC_KEY_free (ecdh); - } - } -#endif + listen_sslctx_setup_2(rc->ctx); if(!SSL_CTX_load_verify_locations(rc->ctx, s_cert, NULL)) { log_crypto_err("Error setting up SSL_CTX verify locations"); setup_error: @@ -415,7 +367,7 @@ add_open(const char* ip, int nr, struct listen_port** if (cfg->username && cfg->username[0] && cfg_uid != (uid_t)-1) { if(chown(ip, cfg_uid, cfg_gid) == -1) - log_err("cannot chown %u.%u %s: %s", + verbose(VERB_QUERY, "cannot chown %u.%u %s: %s", (unsigned)cfg_uid, (unsigned)cfg_gid, ip, strerror(errno)); } @@ -841,7 +793,7 @@ print_stats(SSL* ssl, const char* nm, struct ub_stats_ static int print_thread_stats(SSL* ssl, int i, struct ub_stats_info* s) { - char nm[16]; + char nm[32]; snprintf(nm, sizeof(nm), "thread%d", i); nm[sizeof(nm)-1]=0; return print_stats(ssl, nm, s); @@ -873,6 +825,9 @@ print_mem(SSL* ssl, struct worker* worker, struct daem #ifdef USE_IPSECMOD size_t ipsecmod = 0; #endif /* USE_IPSECMOD */ +#ifdef USE_DNSCRYPT + size_t dnscrypt_shared_secret = 0; +#endif /* USE_DNSCRYPT */ msg = slabhash_get_mem(daemon->env->msg_cache); rrset = slabhash_get_mem(&daemon->env->rrset_cache->table); val = mod_get_mem(&worker->env, "validator"); @@ -884,6 +839,12 @@ print_mem(SSL* ssl, struct worker* worker, struct daem #ifdef USE_IPSECMOD ipsecmod = mod_get_mem(&worker->env, "ipsecmod"); #endif /* USE_IPSECMOD */ +#ifdef USE_DNSCRYPT + if(daemon->dnscenv) { + dnscrypt_shared_secret = slabhash_get_mem( + daemon->dnscenv->shared_secrets_cache); + } +#endif /* USE_DNSCRYPT */ if(!print_longnum(ssl, "mem.cache.rrset"SQ, rrset)) return 0; @@ -903,6 +864,11 @@ print_mem(SSL* ssl, struct worker* worker, struct daem if(!print_longnum(ssl, "mem.mod.ipsecmod"SQ, ipsecmod)) return 0; #endif /* USE_IPSECMOD */ +#ifdef USE_DNSCRYPT + if(!print_longnum(ssl, "mem.cache.dnscrypt_shared_secret"SQ, + dnscrypt_shared_secret)) + return 0; +#endif /* USE_DNSCRYPT */ return 1; } @@ -1065,6 +1031,9 @@ print_ext(SSL* ssl, struct ub_stats_info* s) if(!ssl_printf(ssl, "num.answer.rcode.nodata"SQ"%lu\n", (unsigned long)s->svr.ans_rcode_nodata)) return 0; } + /* iteration */ + if(!ssl_printf(ssl, "num.query.ratelimited"SQ"%lu\n", + (unsigned long)s->svr.queries_ratelimited)) return 0; /* validation */ if(!ssl_printf(ssl, "num.answer.secure"SQ"%lu\n", (unsigned long)s->svr.ans_secure)) return 0; @@ -1086,6 +1055,12 @@ print_ext(SSL* ssl, struct ub_stats_info* s) (unsigned)s->svr.infra_cache_count)) return 0; if(!ssl_printf(ssl, "key.cache.count"SQ"%u\n", (unsigned)s->svr.key_cache_count)) return 0; +#ifdef USE_DNSCRYPT + if(!ssl_printf(ssl, "dnscrypt_shared_secret.cache.count"SQ"%u\n", + (unsigned)s->svr.shared_secret_cache_count)) return 0; + if(!ssl_printf(ssl, "num.query.dnscrypt.shared_secret.cachemiss"SQ"%lu\n", + (unsigned long)s->svr.num_query_dnscrypt_secret_missed_cache)) return 0; +#endif /* USE_DNSCRYPT */ return 1; } @@ -2389,10 +2364,16 @@ dump_infra_host(struct lruhash_entry* e, void* arg) struct infra_data* d = (struct infra_data*)e->data; char ip_str[1024]; char name[257]; + int port; if(a->ssl_failed) return; addr_to_str(&k->addr, k->addrlen, ip_str, sizeof(ip_str)); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 14:51:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92248FDF617; Sat, 12 May 2018 14:51:22 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3ED927CD90; Sat, 12 May 2018 14:51:22 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 202CD1FBFF; Sat, 12 May 2018 14:51:22 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEpMHL006403; Sat, 12 May 2018 14:51:22 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEpJwT006390; Sat, 12 May 2018 14:51:19 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121451.w4CEpJwT006390@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:51:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333564 - in head/contrib/unbound: . cachedb contrib daemon dns64 dnscrypt doc edns-subnet iterator libunbound libunbound/python/doc/examples services services/cache sldns smallapp util... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . cachedb contrib daemon dns64 dnscrypt doc edns-subnet iterator libunbound libunbound/python/doc/examples services services/cache sldns smallapp util util/data util/shm_side ... X-SVN-Commit-Revision: 333564 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:51:23 -0000 Author: des Date: Sat May 12 14:51:18 2018 New Revision: 333564 URL: https://svnweb.freebsd.org/changeset/base/333564 Log: Upgrade Unbound to 1.6.7. More to follow. Modified: head/contrib/unbound/cachedb/cachedb.c head/contrib/unbound/config.h head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/aaaa-filter-iterator.patch head/contrib/unbound/contrib/parseunbound.pl head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/unbound.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/dns64/dns64.c head/contrib/unbound/dnscrypt/dnscrypt.c head/contrib/unbound/dnscrypt/dnscrypt.h head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/requirements.txt head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/edns-subnet/addrtree.h head/contrib/unbound/edns-subnet/subnetmod.c head/contrib/unbound/edns-subnet/subnetmod.h head/contrib/unbound/iterator/iter_utils.h head/contrib/unbound/iterator/iterator.c head/contrib/unbound/iterator/iterator.h head/contrib/unbound/libunbound/context.h head/contrib/unbound/libunbound/libunbound.c head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/libunbound/python/doc/examples/example7.rst head/contrib/unbound/libunbound/unbound.h head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/dns.h head/contrib/unbound/services/mesh.c head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/view.h head/contrib/unbound/sldns/parse.c head/contrib/unbound/sldns/parse.h head/contrib/unbound/sldns/parseutil.c head/contrib/unbound/sldns/parseutil.h head/contrib/unbound/sldns/rrdef.h head/contrib/unbound/sldns/sbuffer.h head/contrib/unbound/sldns/str2wire.c head/contrib/unbound/sldns/wire2str.c head/contrib/unbound/smallapp/unbound-anchor.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/smallapp/unbound-host.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/data/msgreply.h head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/module.h head/contrib/unbound/util/netevent.c head/contrib/unbound/util/shm_side/shm_main.c head/contrib/unbound/util/storage/slabhash.h head/contrib/unbound/util/ub_event.h head/contrib/unbound/validator/autotrust.c head/contrib/unbound/validator/val_nsec3.c head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/val_sigcrypt.c head/contrib/unbound/validator/val_utils.h head/contrib/unbound/validator/validator.c Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/cachedb/cachedb.c ============================================================================== --- head/contrib/unbound/cachedb/cachedb.c Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/cachedb/cachedb.c Sat May 12 14:51:18 2018 (r333564) @@ -347,6 +347,13 @@ prep_data(struct module_qstate* qstate, struct sldns_b if(!qstate->return_msg || !qstate->return_msg->rep) return 0; + /* We don't store the reply if its TTL is 0 unless serve-expired is + * enabled. Such a reply won't be reusable and simply be a waste for + * the backend. It's also compatible with the default behavior of + * dns_cache_store_msg(). */ + if(qstate->return_msg->rep->ttl == 0 && + !qstate->env->cfg->serve_expired) + return 0; if(verbosity >= VERB_ALGO) log_dns_msg("cachedb encoding", &qstate->return_msg->qinfo, qstate->return_msg->rep); @@ -387,32 +394,37 @@ good_expiry_and_qinfo(struct module_qstate* qstate, st &expiry, sizeof(expiry)); expiry = be64toh(expiry); - if((time_t)expiry < *qstate->env->now) + if((time_t)expiry < *qstate->env->now && + !qstate->env->cfg->serve_expired) return 0; return 1; } +/* Adjust the TTL of the given RRset by 'subtract'. If 'subtract' is + * negative, set the TTL to 0. */ static void packed_rrset_ttl_subtract(struct packed_rrset_data* data, time_t subtract) { size_t i; size_t total = data->count + data->rrsig_count; - if(data->ttl > subtract) + if(subtract >= 0 && data->ttl > subtract) data->ttl -= subtract; else data->ttl = 0; for(i=0; irr_ttl[i] > subtract) + if(subtract >= 0 && data->rr_ttl[i] > subtract) data->rr_ttl[i] -= subtract; else data->rr_ttl[i] = 0; } } +/* Adjust the TTL of a DNS message and its RRs by 'adjust'. If 'adjust' is + * negative, set the TTLs to 0. */ static void adjust_msg_ttl(struct dns_msg* msg, time_t adjust) { size_t i; - if(msg->rep->ttl > adjust) + if(adjust >= 0 && msg->rep->ttl > adjust) msg->rep->ttl -= adjust; else msg->rep->ttl = 0; msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl); @@ -476,10 +488,26 @@ parse_data(struct module_qstate* qstate, struct sldns_ adjust = *qstate->env->now - (time_t)timestamp; if(qstate->return_msg->rep->ttl < adjust) { verbose(VERB_ALGO, "cachedb msg expired"); - return 0; /* message expired */ + /* If serve-expired is enabled, we still use an expired message + * setting the TTL to 0. */ + if(qstate->env->cfg->serve_expired) + adjust = -1; + else + return 0; /* message expired */ } verbose(VERB_ALGO, "cachedb msg adjusted down by %d", (int)adjust); adjust_msg_ttl(qstate->return_msg, adjust); + + /* Similar to the unbound worker, if serve-expired is enabled and + * the msg would be considered to be expired, mark the state so a + * refetch will be scheduled. The comparison between 'expiry' and + * 'now' should be redundant given how these values were calculated, + * but we check it just in case as does good_expiry_and_qinfo(). */ + if(qstate->env->cfg->serve_expired && + (adjust == -1 || (time_t)expiry < *qstate->env->now)) { + qstate->need_refetch = 1; + } + return 1; } @@ -563,11 +591,15 @@ cachedb_intcache_lookup(struct module_qstate* qstate) static void cachedb_intcache_store(struct module_qstate* qstate) { + uint32_t store_flags = qstate->query_flags; + + if(qstate->env->cfg->serve_expired) + store_flags |= DNSCACHE_STORE_ZEROTTL; if(!qstate->return_msg) return; (void)dns_cache_store(qstate->env, &qstate->qinfo, qstate->return_msg->rep, 0, qstate->prefetch_leeway, 0, - qstate->region, qstate->query_flags); + qstate->region, store_flags); } /** Modified: head/contrib/unbound/config.h ============================================================================== --- head/contrib/unbound/config.h Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/config.h Sat May 12 14:51:18 2018 (r333564) @@ -605,7 +605,7 @@ #define PACKAGE_NAME "unbound" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "unbound 1.6.6" +#define PACKAGE_STRING "unbound 1.6.7" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "unbound" @@ -614,7 +614,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.6.6" +#define PACKAGE_VERSION "1.6.7" /* default pidfile location */ #define PIDFILE "/var/unbound/unbound.pid" @@ -633,7 +633,7 @@ #define ROOT_CERT_FILE "/var/unbound/icannbundle.pem" /* version number for resource files */ -#define RSRC_PACKAGE_VERSION 1,6,6,0 +#define RSRC_PACKAGE_VERSION 1,6,7,0 /* Directory to chdir to */ #define RUN_DIR "/var/unbound" Modified: head/contrib/unbound/configure ============================================================================== --- head/contrib/unbound/configure Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/configure Sat May 12 14:51:18 2018 (r333564) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.6.6. +# Generated by GNU Autoconf 2.69 for unbound 1.6.7. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.6.6' -PACKAGE_STRING='unbound 1.6.6' +PACKAGE_VERSION='1.6.7' +PACKAGE_STRING='unbound 1.6.7' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -1437,7 +1437,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.6.6 to adapt to many kinds of systems. +\`configure' configures unbound 1.6.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1502,7 +1502,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.6.6:";; + short | recursive ) echo "Configuration of unbound 1.6.7:";; esac cat <<\_ACEOF @@ -1714,7 +1714,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.6.6 +unbound configure 1.6.7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2423,7 +2423,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.6.6, which was +It was created by unbound $as_me 1.6.7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2775,11 +2775,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=6 -UNBOUND_VERSION_MICRO=6 +UNBOUND_VERSION_MICRO=7 LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=5 +LIBUNBOUND_REVISION=6 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2836,6 +2836,7 @@ LIBUNBOUND_AGE=5 # 1.6.4 had 7:3:5 # 1.6.5 had 7:4:5 # 1.6.6 had 7:5:5 +# 1.6.7 had 7:6:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -2851,7 +2852,7 @@ LIBUNBOUND_AGE=5 # Current and Age. Set Revision to 0, since this is the first # implementation of the new API. # -# Otherwise, we're changing the binary API and breaking bakward +# Otherwise, we're changing the binary API and breaking backward # compatibility with old binaries. Increment Current. Set Age to 0, # since we're backward compatible with no previous APIs. Set Revision # to 0 too. @@ -20693,7 +20694,7 @@ _ACEOF -version=1.6.6 +version=1.6.7 date=`date +'%b %e, %Y'` @@ -21212,7 +21213,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.6.6, which was +This file was extended by unbound $as_me 1.6.7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21278,7 +21279,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.6.6 +unbound config.status 1.6.7 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/unbound/configure.ac ============================================================================== --- head/contrib/unbound/configure.ac Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/configure.ac Sat May 12 14:51:18 2018 (r333564) @@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[6]) -m4_define([VERSION_MICRO],[6]) +m4_define([VERSION_MICRO],[7]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=5 +LIBUNBOUND_REVISION=6 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -75,6 +75,7 @@ LIBUNBOUND_AGE=5 # 1.6.4 had 7:3:5 # 1.6.5 had 7:4:5 # 1.6.6 had 7:5:5 +# 1.6.7 had 7:6:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -90,7 +91,7 @@ LIBUNBOUND_AGE=5 # Current and Age. Set Revision to 0, since this is the first # implementation of the new API. # -# Otherwise, we're changing the binary API and breaking bakward +# Otherwise, we're changing the binary API and breaking backward # compatibility with old binaries. Increment Current. Set Age to 0, # since we're backward compatible with no previous APIs. Set Revision # to 0 too. Modified: head/contrib/unbound/contrib/aaaa-filter-iterator.patch ============================================================================== --- head/contrib/unbound/contrib/aaaa-filter-iterator.patch Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/contrib/aaaa-filter-iterator.patch Sat May 12 14:51:18 2018 (r333564) @@ -1,10 +1,10 @@ Index: trunk/doc/unbound.conf.5.in =================================================================== ---- trunk/doc/unbound.conf.5.in (revision 3587) +--- trunk/doc/unbound.conf.5.in (revision 4357) +++ trunk/doc/unbound.conf.5.in (working copy) -@@ -593,6 +593,13 @@ - possible. Best effort approach, full QNAME and original QTYPE will be sent when - upstream replies with a RCODE other than NOERROR. Default is off. +@@ -701,6 +701,13 @@ + this option in enabled. Only use if you know what you are doing. + This option only has effect when qname-minimisation is enabled. Default is off. .TP +.B aaaa\-filter: \fI +Activate behavior similar to BIND's AAAA-filter. @@ -18,7 +18,7 @@ Index: trunk/doc/unbound.conf.5.in on your private network, and are not allowed to be returned for Index: trunk/iterator/iter_scrub.c =================================================================== ---- trunk/iterator/iter_scrub.c (revision 3587) +--- trunk/iterator/iter_scrub.c (revision 4357) +++ trunk/iterator/iter_scrub.c (working copy) @@ -617,6 +617,32 @@ } @@ -75,10 +75,11 @@ Index: trunk/iterator/iter_scrub.c /* At this point, we brutally remove ALL rrsets that aren't * children of the originating zone. The idea here is that, * as far as we know, the server that we contacted is ONLY -@@ -681,6 +715,24 @@ +@@ -680,6 +714,24 @@ + prev = NULL; rrset = msg->rrset_first; while(rrset) { - ++ + /* ASN: For AAAA records only... */ + if((ie->aaaa_filter) && (rrset->type == LDNS_RR_TYPE_AAAA)) { + /* ASN: If this is not a AAAA query, then remove AAAA @@ -96,13 +97,12 @@ Index: trunk/iterator/iter_scrub.c + LDNS_RR_TYPE_AAAA, qinfo->qclass); + } + /* ASN: End of added code */ -+ + /* remove private addresses */ if( (rrset->type == LDNS_RR_TYPE_A || - rrset->type == LDNS_RR_TYPE_AAAA)) { Index: trunk/iterator/iter_utils.c =================================================================== ---- trunk/iterator/iter_utils.c (revision 3587) +--- trunk/iterator/iter_utils.c (revision 4357) +++ trunk/iterator/iter_utils.c (working copy) @@ -175,6 +175,7 @@ } @@ -114,9 +114,9 @@ Index: trunk/iterator/iter_utils.c Index: trunk/iterator/iterator.c =================================================================== ---- trunk/iterator/iterator.c (revision 3587) +--- trunk/iterator/iterator.c (revision 4357) +++ trunk/iterator/iterator.c (working copy) -@@ -1776,6 +1776,53 @@ +@@ -1847,6 +1847,53 @@ return 0; } @@ -170,7 +170,7 @@ Index: trunk/iterator/iterator.c /** * This is the request event state where the request will be sent to one of -@@ -1823,6 +1870,13 @@ +@@ -1894,6 +1941,13 @@ return error_response(qstate, id, LDNS_RCODE_SERVFAIL); } @@ -184,7 +184,7 @@ Index: trunk/iterator/iterator.c /* Make sure we have a delegation point, otherwise priming failed * or another failure occurred */ if(!iq->dp) { -@@ -2922,6 +2976,61 @@ +@@ -3095,6 +3149,61 @@ return 0; } @@ -244,9 +244,9 @@ Index: trunk/iterator/iterator.c +/* ASN: End of added code */ + /* - * Return priming query results to interestes super querystates. + * Return priming query results to interested super querystates. * -@@ -2941,6 +3050,9 @@ +@@ -3114,6 +3223,9 @@ else if(super->qinfo.qtype == LDNS_RR_TYPE_DS && ((struct iter_qstate*) super->minfo[id])->state == DSNS_FIND_STATE) processDSNSResponse(qstate, id, super); @@ -256,7 +256,7 @@ Index: trunk/iterator/iterator.c else if(qstate->return_rcode != LDNS_RCODE_NOERROR) error_supers(qstate, id, super); else if(qstate->is_priming) -@@ -2978,6 +3090,9 @@ +@@ -3151,6 +3263,9 @@ case INIT_REQUEST_3_STATE: cont = processInitRequest3(qstate, iq, id); break; @@ -266,7 +266,7 @@ Index: trunk/iterator/iterator.c case QUERYTARGETS_STATE: cont = processQueryTargets(qstate, iq, ie, id); break; -@@ -3270,6 +3385,8 @@ +@@ -3460,6 +3575,8 @@ return "INIT REQUEST STATE (stage 2)"; case INIT_REQUEST_3_STATE: return "INIT REQUEST STATE (stage 3)"; @@ -275,7 +275,7 @@ Index: trunk/iterator/iterator.c case QUERYTARGETS_STATE : return "QUERY TARGETS STATE"; case PRIME_RESP_STATE : -@@ -3294,6 +3411,7 @@ +@@ -3484,6 +3601,7 @@ case INIT_REQUEST_STATE : case INIT_REQUEST_2_STATE : case INIT_REQUEST_3_STATE : @@ -285,19 +285,19 @@ Index: trunk/iterator/iterator.c return 0; Index: trunk/iterator/iterator.h =================================================================== ---- trunk/iterator/iterator.h (revision 3587) +--- trunk/iterator/iterator.h (revision 4357) +++ trunk/iterator/iterator.h (working copy) -@@ -113,6 +113,9 @@ +@@ -130,6 +130,9 @@ */ int* target_fetch_policy; + /** ASN: AAAA-filter flag */ + int aaaa_filter; + - /** ip6.arpa dname in wireformat, used for qname-minimisation */ - uint8_t* ip6arpa_dname; - }; -@@ -163,6 +166,14 @@ + /** lock on ratelimit counter */ + lock_basic_type queries_ratelimit_lock; + /** number of queries that have been ratelimited */ +@@ -182,6 +185,14 @@ INIT_REQUEST_3_STATE, /** @@ -311,26 +311,26 @@ Index: trunk/iterator/iterator.h + /** * Each time a delegation point changes for a given query or a * query times out and/or wakes up, this state is (re)visited. - * This state is reponsible for iterating through a list of -@@ -346,6 +357,13 @@ + * This state is responsible for iterating through a list of +@@ -364,6 +375,13 @@ + * be used when creating the state. A higher one will be attempted. */ int refetch_glue; - ++ + /** + * ASN: This is a flag that, if true, means that this query is + * for fetching A records to populate cache and determine if we must + * return AAAA records or not. + */ + int fetch_a_for_aaaa; -+ + /** list of pending queries to authoritative servers. */ struct outbound_list outlist; - Index: trunk/pythonmod/interface.i =================================================================== ---- trunk/pythonmod/interface.i (revision 3587) +--- trunk/pythonmod/interface.i (revision 4357) +++ trunk/pythonmod/interface.i (working copy) -@@ -632,6 +632,7 @@ +@@ -851,6 +851,7 @@ int harden_dnssec_stripped; int harden_referral_path; int use_caps_bits_for_id; @@ -340,9 +340,9 @@ Index: trunk/pythonmod/interface.i size_t unwanted_threshold; Index: trunk/util/config_file.c =================================================================== ---- trunk/util/config_file.c (revision 3587) +--- trunk/util/config_file.c (revision 4357) +++ trunk/util/config_file.c (working copy) -@@ -176,6 +176,7 @@ +@@ -195,6 +195,7 @@ cfg->harden_referral_path = 0; cfg->harden_algo_downgrade = 0; cfg->use_caps_bits_for_id = 0; @@ -352,9 +352,9 @@ Index: trunk/util/config_file.c cfg->private_domain = NULL; Index: trunk/util/config_file.h =================================================================== ---- trunk/util/config_file.h (revision 3587) +--- trunk/util/config_file.h (revision 4357) +++ trunk/util/config_file.h (working copy) -@@ -179,6 +179,8 @@ +@@ -209,6 +209,8 @@ int harden_algo_downgrade; /** use 0x20 bits in query as random ID bits */ int use_caps_bits_for_id; @@ -365,9 +365,9 @@ Index: trunk/util/config_file.h /** strip away these private addrs from answers, no DNS Rebinding */ Index: trunk/util/configlexer.lex =================================================================== ---- trunk/util/configlexer.lex (revision 3587) +--- trunk/util/configlexer.lex (revision 4357) +++ trunk/util/configlexer.lex (working copy) -@@ -267,6 +267,7 @@ +@@ -279,6 +279,7 @@ use-caps-for-id{COLON} { YDVAR(1, VAR_USE_CAPS_FOR_ID) } caps-whitelist{COLON} { YDVAR(1, VAR_CAPS_WHITELIST) } unwanted-reply-threshold{COLON} { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } @@ -377,9 +377,9 @@ Index: trunk/util/configlexer.lex prefetch-key{COLON} { YDVAR(1, VAR_PREFETCH_KEY) } Index: trunk/util/configparser.y =================================================================== ---- trunk/util/configparser.y (revision 3587) +--- trunk/util/configparser.y (revision 4357) +++ trunk/util/configparser.y (working copy) -@@ -92,6 +92,7 @@ +@@ -95,6 +95,7 @@ %token VAR_STATISTICS_CUMULATIVE VAR_OUTGOING_PORT_PERMIT %token VAR_OUTGOING_PORT_AVOID VAR_DLV_ANCHOR_FILE VAR_DLV_ANCHOR %token VAR_NEG_CACHE_SIZE VAR_HARDEN_REFERRAL_PATH VAR_PRIVATE_ADDRESS @@ -387,7 +387,7 @@ Index: trunk/util/configparser.y %token VAR_PRIVATE_DOMAIN VAR_REMOTE_CONTROL VAR_CONTROL_ENABLE %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE -@@ -169,6 +170,7 @@ +@@ -203,6 +204,7 @@ server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size | server_harden_referral_path | server_private_address | server_private_domain | server_extended_statistics | @@ -395,10 +395,12 @@ Index: trunk/util/configparser.y server_local_data_ptr | server_jostle_timeout | server_unwanted_reply_threshold | server_log_time_ascii | server_domain_insecure | server_val_sig_skew_min | -@@ -893,6 +895,15 @@ +@@ -1183,6 +1185,15 @@ + OUTYY(("P(server_caps_whitelist:%s)\n", $2)); + if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, $2)) yyerror("out of memory"); - } - ; ++ } ++ ; +server_aaaa_filter: VAR_AAAA_FILTER STRING_ARG + { + OUTYY(("P(server_aaaa_filter:%s)\n", $2)); @@ -406,8 +408,6 @@ Index: trunk/util/configparser.y + yyerror("expected yes or no."); + else cfg_parser->cfg->aaaa_filter = (strcmp($2, "yes")==0); + free($2); -+ } -+ ; + } + ; server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG - { - OUTYY(("P(server_private_address:%s)\n", $2)); Modified: head/contrib/unbound/contrib/parseunbound.pl ============================================================================== --- head/contrib/unbound/contrib/parseunbound.pl Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/contrib/parseunbound.pl Sat May 12 14:51:18 2018 (r333564) @@ -91,7 +91,7 @@ while ( scalar keys %startstats < $numthreads || scala $allstats{$inthread}->{outstandingexc} = $4; } elsif ( $line =~ m/info: average recursion processing time ([0-9\.]+) sec/ ) { - $allstats{$inthread}->{recursionavg} = int($1 * 1000); # change sec to milisec. + $allstats{$inthread}->{recursionavg} = int($1 * 1000); # change sec to millisec. } elsif ( $line =~ m/info: histogram of recursion processing times/ ) { next; @@ -103,7 +103,7 @@ while ( scalar keys %startstats < $numthreads || scala } elsif ( $line =~ m/info: lower\(secs\) upper\(secs\) recursions/ ) { # since after this line we're unsure if we get these numbers - # at all, we sould consider this marker as the end of the + # at all, we should consider this marker as the end of the # block. Chances that we're parsing a file halfway written # at this stage are small. Bold statement. $donestats{$inthread} = 1; Modified: head/contrib/unbound/daemon/remote.c ============================================================================== --- head/contrib/unbound/daemon/remote.c Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/daemon/remote.c Sat May 12 14:51:18 2018 (r333564) @@ -827,6 +827,7 @@ print_mem(SSL* ssl, struct worker* worker, struct daem #endif /* USE_IPSECMOD */ #ifdef USE_DNSCRYPT size_t dnscrypt_shared_secret = 0; + size_t dnscrypt_nonce = 0; #endif /* USE_DNSCRYPT */ msg = slabhash_get_mem(daemon->env->msg_cache); rrset = slabhash_get_mem(&daemon->env->rrset_cache->table); @@ -843,6 +844,7 @@ print_mem(SSL* ssl, struct worker* worker, struct daem if(daemon->dnscenv) { dnscrypt_shared_secret = slabhash_get_mem( daemon->dnscenv->shared_secrets_cache); + dnscrypt_nonce = slabhash_get_mem(daemon->dnscenv->nonces_cache); } #endif /* USE_DNSCRYPT */ @@ -868,6 +870,9 @@ print_mem(SSL* ssl, struct worker* worker, struct daem if(!print_longnum(ssl, "mem.cache.dnscrypt_shared_secret"SQ, dnscrypt_shared_secret)) return 0; + if(!print_longnum(ssl, "mem.cache.dnscrypt_nonce"SQ, + dnscrypt_nonce)) + return 0; #endif /* USE_DNSCRYPT */ return 1; } @@ -1058,8 +1063,12 @@ print_ext(SSL* ssl, struct ub_stats_info* s) #ifdef USE_DNSCRYPT if(!ssl_printf(ssl, "dnscrypt_shared_secret.cache.count"SQ"%u\n", (unsigned)s->svr.shared_secret_cache_count)) return 0; + if(!ssl_printf(ssl, "dnscrypt_nonce.cache.count"SQ"%u\n", + (unsigned)s->svr.nonce_cache_count)) return 0; if(!ssl_printf(ssl, "num.query.dnscrypt.shared_secret.cachemiss"SQ"%lu\n", (unsigned long)s->svr.num_query_dnscrypt_secret_missed_cache)) return 0; + if(!ssl_printf(ssl, "num.query.dnscrypt.replay"SQ"%lu\n", + (unsigned long)s->svr.num_query_dnscrypt_replay)) return 0; #endif /* USE_DNSCRYPT */ return 1; } @@ -1771,7 +1780,7 @@ negative_del_rrset(struct lruhash_entry* e, void* arg) struct ub_packed_rrset_key* k = (struct ub_packed_rrset_key*)e->key; struct packed_rrset_data* d = (struct packed_rrset_data*)e->data; /* delete the parentside negative cache rrsets, - * these are namerserver rrsets that failed lookup, rdata empty */ + * these are nameserver rrsets that failed lookup, rdata empty */ if((k->rk.flags & PACKED_RRSET_PARENT_SIDE) && d->count == 1 && d->rrsig_count == 0 && d->rr_len[0] == 0) { d->ttl = inf->expired; Modified: head/contrib/unbound/daemon/stats.c ============================================================================== --- head/contrib/unbound/daemon/stats.c Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/daemon/stats.c Sat May 12 14:51:18 2018 (r333564) @@ -174,6 +174,21 @@ get_dnscrypt_cache_miss(struct worker* worker, int res lock_basic_unlock(&de->shared_secrets_cache_lock); return r; } + +/** get the number of replayed queries */ +static size_t +get_dnscrypt_replay(struct worker* worker, int reset) +{ + size_t r; + struct dnsc_env* de = worker->daemon->dnscenv; + + lock_basic_lock(&de->nonces_cache_lock); + r = de->num_query_dnscrypt_replay; + if(reset && !worker->env.cfg->stat_cumulative) + de->num_query_dnscrypt_replay = 0; + lock_basic_unlock(&de->nonces_cache_lock); + return r; +} #endif /* USE_DNSCRYPT */ void @@ -225,13 +240,21 @@ server_stats_compile(struct worker* worker, struct ub_ (long long)get_dnscrypt_cache_miss(worker, reset); s->svr.shared_secret_cache_count = (long long)count_slabhash_entries( worker->daemon->dnscenv->shared_secrets_cache); + s->svr.nonce_cache_count = (long long)count_slabhash_entries( + worker->daemon->dnscenv->nonces_cache); + s->svr.num_query_dnscrypt_replay = + (long long)get_dnscrypt_replay(worker, reset); } else { s->svr.num_query_dnscrypt_secret_missed_cache = 0; s->svr.shared_secret_cache_count = 0; + s->svr.nonce_cache_count = 0; + s->svr.num_query_dnscrypt_replay = 0; } #else s->svr.num_query_dnscrypt_secret_missed_cache = 0; s->svr.shared_secret_cache_count = 0; + s->svr.nonce_cache_count = 0; + s->svr.num_query_dnscrypt_replay = 0; #endif /* USE_DNSCRYPT */ /* get tcp accept usage */ Modified: head/contrib/unbound/daemon/unbound.c ============================================================================== --- head/contrib/unbound/daemon/unbound.c Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/daemon/unbound.c Sat May 12 14:51:18 2018 (r333564) @@ -400,7 +400,7 @@ detach(void) #endif /* HAVE_DAEMON */ } -/** daemonize, drop user priviliges and chroot if needed */ +/** daemonize, drop user privileges and chroot if needed */ static void perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode, const char** cfgfile, int need_pidfile) Modified: head/contrib/unbound/daemon/worker.c ============================================================================== --- head/contrib/unbound/daemon/worker.c Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/daemon/worker.c Sat May 12 14:51:18 2018 (r333564) @@ -1633,7 +1633,8 @@ worker_init(struct worker* worker, struct config_file cfg->use_caps_bits_for_id, worker->ports, worker->numports, cfg->unwanted_threshold, cfg->outgoing_tcp_mss, &worker_alloc_cleanup, worker, - cfg->do_udp, worker->daemon->connect_sslctx, cfg->delay_close, + cfg->do_udp || cfg->udp_upstream_without_downstream, + worker->daemon->connect_sslctx, cfg->delay_close, dtenv); if(!worker->back) { log_err("could not create outgoing sockets"); Modified: head/contrib/unbound/dns64/dns64.c ============================================================================== --- head/contrib/unbound/dns64/dns64.c Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/dns64/dns64.c Sat May 12 14:51:18 2018 (r333564) @@ -792,6 +792,10 @@ dns64_inform_super(struct module_qstate* qstate, int i qstate->return_msg->rep)) return; + /* Use return code from A query in response to client. */ + if (super->return_rcode != LDNS_RCODE_NOERROR) + super->return_rcode = qstate->return_rcode; + /* Generate a response suitable for the original query. */ if (qstate->qinfo.qtype == LDNS_RR_TYPE_A) { dns64_adjust_a(id, super, qstate); Modified: head/contrib/unbound/dnscrypt/dnscrypt.c ============================================================================== --- head/contrib/unbound/dnscrypt/dnscrypt.c Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/dnscrypt/dnscrypt.c Sat May 12 14:51:18 2018 (r333564) @@ -60,6 +60,17 @@ struct shared_secret_cache_key { }; +struct nonce_cache_key { + /** the nonce used by the client */ + uint8_t nonce[crypto_box_HALF_NONCEBYTES]; + /** the client_magic used by the client, this is associated to 1 cert only */ + uint8_t magic_query[DNSCRYPT_MAGIC_HEADER_LEN]; + /** the client public key */ + uint8_t client_publickey[crypto_box_PUBLICKEYBYTES]; + /** the hash table entry, data is uint8_t */ + struct lruhash_entry entry; +}; + /** * Generate a key suitable to find shared secret in slabhash. * \param[in] key: a uint8_t pointer of size DNSCRYPT_SHARED_SECRET_KEY_LENGTH @@ -136,6 +147,87 @@ dnsc_shared_secrets_lookup(struct slabhash* cache, } /** + * Generate a key hash suitable to find a nonce in slabhash. + * \param[in] nonce: a uint8_t pointer of size crypto_box_HALF_NONCEBYTES + * \param[in] magic_query: a uint8_t pointer of size DNSCRYPT_MAGIC_HEADER_LEN + * \param[in] pk: The public key of the client. uint8_t pointer of size + * crypto_box_PUBLICKEYBYTES. + * \return the hash of the key. + */ +static uint32_t +dnsc_nonce_cache_key_hash(const uint8_t nonce[crypto_box_HALF_NONCEBYTES], + const uint8_t magic_query[DNSCRYPT_MAGIC_HEADER_LEN], + const uint8_t pk[crypto_box_PUBLICKEYBYTES]) +{ + uint32_t h = 0; + h = hashlittle(nonce, crypto_box_HALF_NONCEBYTES, h); + h = hashlittle(magic_query, DNSCRYPT_MAGIC_HEADER_LEN, h); + return hashlittle(pk, crypto_box_PUBLICKEYBYTES, h); +} + +/** + * Inserts a nonce, magic_query, pk tuple into the nonces_cache slabhash. + * \param[in] cache: the slabhash in which to look for the key. + * \param[in] nonce: a uint8_t pointer of size crypto_box_HALF_NONCEBYTES + * \param[in] magic_query: a uint8_t pointer of size DNSCRYPT_MAGIC_HEADER_LEN + * \param[in] pk: The public key of the client. uint8_t pointer of size + * crypto_box_PUBLICKEYBYTES. + * \param[in] hash: the hash of the key. + */ +static void +dnsc_nonce_cache_insert(struct slabhash *cache, + const uint8_t nonce[crypto_box_HALF_NONCEBYTES], + const uint8_t magic_query[DNSCRYPT_MAGIC_HEADER_LEN], + const uint8_t pk[crypto_box_PUBLICKEYBYTES], + uint32_t hash) +{ + struct nonce_cache_key* k = + (struct nonce_cache_key*)calloc(1, sizeof(*k)); + if(!k) { + free(k); + return; + } + lock_rw_init(&k->entry.lock); + memcpy(k->nonce, nonce, crypto_box_HALF_NONCEBYTES); + memcpy(k->magic_query, magic_query, DNSCRYPT_MAGIC_HEADER_LEN); + memcpy(k->client_publickey, pk, crypto_box_PUBLICKEYBYTES); + k->entry.hash = hash; + k->entry.key = k; + k->entry.data = NULL; + slabhash_insert(cache, + hash, &k->entry, + NULL, + NULL); +} + +/** + * Lookup a record in nonces_cache. + * \param[in] cache: the slabhash in which to look for the key. + * \param[in] nonce: a uint8_t pointer of size crypto_box_HALF_NONCEBYTES + * \param[in] magic_query: a uint8_t pointer of size DNSCRYPT_MAGIC_HEADER_LEN + * \param[in] pk: The public key of the client. uint8_t pointer of size + * crypto_box_PUBLICKEYBYTES. + * \param[in] hash: the hash of the key. + * \return a pointer to the locked cache entry or NULL on failure. + */ +static struct lruhash_entry* +dnsc_nonces_lookup(struct slabhash* cache, + const uint8_t nonce[crypto_box_HALF_NONCEBYTES], + const uint8_t magic_query[DNSCRYPT_MAGIC_HEADER_LEN], + const uint8_t pk[crypto_box_PUBLICKEYBYTES], + uint32_t hash) +{ + struct nonce_cache_key k; + memset(&k, 0, sizeof(k)); + k.entry.hash = hash; + memcpy(k.nonce, nonce, crypto_box_HALF_NONCEBYTES); + memcpy(k.magic_query, magic_query, DNSCRYPT_MAGIC_HEADER_LEN); + memcpy(k.client_publickey, pk, crypto_box_PUBLICKEYBYTES); + + return slabhash_lookup(cache, hash, &k, 0); +} + +/** * Decrypt a query using the dnsccert that was found using dnsc_find_cert. * The client nonce will be extracted from the encrypted query and stored in * client_nonce, a shared secret will be computed and stored in nmkey and the @@ -163,11 +255,44 @@ dnscrypt_server_uncurve(struct dnsc_env* env, struct lruhash_entry* entry; uint32_t hash; + uint32_t nonce_hash; + if (len <= DNSCRYPT_QUERY_HEADER_SIZE) { return -1; } query_header = (struct dnscrypt_query_header *)buf; + + /* Detect replay attacks */ + nonce_hash = dnsc_nonce_cache_key_hash( + query_header->nonce, + cert->magic_query, + query_header->publickey); + + lock_basic_lock(&env->nonces_cache_lock); + entry = dnsc_nonces_lookup( + env->nonces_cache, + query_header->nonce, + cert->magic_query, + query_header->publickey, + nonce_hash); + + if(entry) { + lock_rw_unlock(&entry->lock); + env->num_query_dnscrypt_replay++; + lock_basic_unlock(&env->nonces_cache_lock); + return -1; + } + + dnsc_nonce_cache_insert( + env->nonces_cache, + query_header->nonce, + cert->magic_query, + query_header->publickey, + nonce_hash); + lock_basic_unlock(&env->nonces_cache_lock); + + /* Find existing shared secret */ hash = dnsc_shared_secrets_cache_key(key, cert->es_version[1], query_header->publickey, @@ -547,7 +672,7 @@ dnsc_find_cert(struct dnsc_env* dnscenv, struct sldns_ * In order to be able to serve certs over TXT, we can reuse the local-zone and * local-data config option. The zone and qname are infered from the * provider_name and the content of the TXT record from the certificate content. - * returns the number of certtificate TXT record that were loaded. + * returns the number of certificate TXT record that were loaded. * < 0 in case of error. */ static int @@ -770,8 +895,16 @@ dnsc_create(void) env = (struct dnsc_env *) calloc(1, sizeof(struct dnsc_env)); lock_basic_init(&env->shared_secrets_cache_lock); lock_protect(&env->shared_secrets_cache_lock, - &env->num_query_dnscrypt_secret_missed_cache, - sizeof(env->num_query_dnscrypt_secret_missed_cache)); + &env->num_query_dnscrypt_secret_missed_cache, + sizeof(env->num_query_dnscrypt_secret_missed_cache)); + lock_basic_init(&env->nonces_cache_lock); + lock_protect(&env->nonces_cache_lock, + &env->nonces_cache, + sizeof(env->nonces_cache)); + lock_protect(&env->nonces_cache_lock, + &env->num_query_dnscrypt_replay, + sizeof(env->num_query_dnscrypt_replay)); + return env; } @@ -803,6 +936,16 @@ dnsc_apply_cfg(struct dnsc_env *env, struct config_fil if(!env->shared_secrets_cache){ fatal_exit("dnsc_apply_cfg: could not create shared secrets cache."); } + env->nonces_cache = slabhash_create( + cfg->dnscrypt_nonce_cache_slabs, + HASH_DEFAULT_STARTARRAY, + cfg->dnscrypt_nonce_cache_size, + dnsc_nonces_sizefunc, + dnsc_nonces_compfunc, + dnsc_nonces_delkeyfunc, + dnsc_nonces_deldatafunc, + NULL + ); return 0; } @@ -817,7 +960,9 @@ dnsc_delete(struct dnsc_env *env) sodium_free(env->certs); sodium_free(env->keypairs); slabhash_delete(env->shared_secrets_cache); + slabhash_delete(env->nonces_cache); lock_basic_destroy(&env->shared_secrets_cache_lock); + lock_basic_destroy(&env->nonces_cache_lock); free(env); } @@ -857,4 +1002,52 @@ dnsc_shared_secrets_deldatafunc(void* d, void* ATTR_UN { uint8_t* data = (uint8_t*)d; free(data); +} + +/** + * ######################################################### + * ############### Nonces cache functions ################## + * ######################################################### + */ + +size_t +dnsc_nonces_sizefunc(void *k, void* ATTR_UNUSED(d)) +{ + struct nonce_cache_key* nk = (struct nonce_cache_key*)k; + size_t key_size = sizeof(struct nonce_cache_key) + + lock_get_mem(&nk->entry.lock); + (void)nk; /* otherwise ssk is unused if no threading, or fixed locksize */ + return key_size; +} + +int +dnsc_nonces_compfunc(void *m1, void *m2) +{ + struct nonce_cache_key *k1 = m1, *k2 = m2; + return + sodium_memcmp( + k1->nonce, + k2->nonce, + crypto_box_HALF_NONCEBYTES) != 0 || + sodium_memcmp( + k1->magic_query, + k2->magic_query, + DNSCRYPT_MAGIC_HEADER_LEN) != 0 || + sodium_memcmp( + k1->client_publickey, k2->client_publickey, + crypto_box_PUBLICKEYBYTES) != 0; +} + +void +dnsc_nonces_delkeyfunc(void *k, void* ATTR_UNUSED(arg)) +{ + struct nonce_cache_key* nk = (struct nonce_cache_key*)k; + lock_rw_destroy(&nk->entry.lock); + free(nk); +} + +void +dnsc_nonces_deldatafunc(void* ATTR_UNUSED(d), void* ATTR_UNUSED(arg)) +{ + return; } Modified: head/contrib/unbound/dnscrypt/dnscrypt.h ============================================================================== --- head/contrib/unbound/dnscrypt/dnscrypt.h Sat May 12 14:48:38 2018 (r333563) +++ head/contrib/unbound/dnscrypt/dnscrypt.h Sat May 12 14:51:18 2018 (r333564) @@ -63,11 +63,20 @@ struct dnsc_env { uint64_t nonce_ts_last; unsigned char hash_key[crypto_shorthash_KEYBYTES]; char * provider_name; + + /** Caches */ struct slabhash *shared_secrets_cache; /** lock on shared secret cache counters */ lock_basic_type shared_secrets_cache_lock; /** number of misses from shared_secrets_cache */ size_t num_query_dnscrypt_secret_missed_cache; + + /** slabhash keeping track of nonce/cient pk/server sk pairs. */ + struct slabhash *nonces_cache; + /** lock on nonces_cache, used to avoid race condition in updating the hash */ + lock_basic_type nonces_cache_lock; + /** number of replayed queries */ + size_t num_query_dnscrypt_replay; }; struct dnscrypt_query_header { @@ -138,6 +147,27 @@ void dnsc_shared_secrets_delkeyfunc(void *k, void* arg * Function to delete a share secret cache value. */ void dnsc_shared_secrets_deldatafunc(void* d, void* arg); + +/** + * Computes the size of the nonce cache entry. + */ +size_t dnsc_nonces_sizefunc(void *k, void *d); + +/** + * Compares two nonce cache keys. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 14:51:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3188EFDF7A7; Sat, 12 May 2018 14:51:54 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D45127D02C; Sat, 12 May 2018 14:51:53 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9BDCD1FD1B; Sat, 12 May 2018 14:51:53 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEprCn009443; Sat, 12 May 2018 14:51:53 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEpr4w009442; Sat, 12 May 2018 14:51:53 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121451.w4CEpr4w009442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:51:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333565 - head/contrib/unbound/libunbound/python X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/contrib/unbound/libunbound/python X-SVN-Commit-Revision: 333565 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:51:54 -0000 Author: des Date: Sat May 12 14:51:53 2018 New Revision: 333565 URL: https://svnweb.freebsd.org/changeset/base/333565 Log: No reason to keep this around. Deleted: head/contrib/unbound/libunbound/python/ From owner-svn-src-head@freebsd.org Sat May 12 14:57:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 03F75FDFB59; Sat, 12 May 2018 14:57:50 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AB73C7E353; Sat, 12 May 2018 14:57:49 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C9211FD58; Sat, 12 May 2018 14:57:49 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CEvnRf011184; Sat, 12 May 2018 14:57:49 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CEvg4p011149; Sat, 12 May 2018 14:57:42 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121457.w4CEvg4p011149@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 14:57:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333566 - in head/contrib/unbound: . doc validator X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . doc validator X-SVN-Commit-Revision: 333566 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 14:57:50 -0000 Author: des Date: Sat May 12 14:57:42 2018 New Revision: 333566 URL: https://svnweb.freebsd.org/changeset/base/333566 Log: Upgrade Unbound to 1.6.8. More to follow. Modified: head/contrib/unbound/aclocal.m4 head/contrib/unbound/config.h head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/validator/autotrust.c head/contrib/unbound/validator/autotrust.h head/contrib/unbound/validator/val_nsec.c head/contrib/unbound/validator/val_nsec.h head/contrib/unbound/validator/val_nsec3.c head/contrib/unbound/validator/val_nsec3.h head/contrib/unbound/validator/val_sigcrypt.c head/contrib/unbound/validator/val_sigcrypt.h head/contrib/unbound/validator/val_utils.c head/contrib/unbound/validator/val_utils.h head/contrib/unbound/validator/validator.c Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/aclocal.m4 ============================================================================== --- head/contrib/unbound/aclocal.m4 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/aclocal.m4 Sat May 12 14:57:42 2018 (r333566) @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9390,7 +9390,7 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "ye # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -9421,7 +9421,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, Modified: head/contrib/unbound/config.h ============================================================================== --- head/contrib/unbound/config.h Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/config.h Sat May 12 14:57:42 2018 (r333566) @@ -605,7 +605,7 @@ #define PACKAGE_NAME "unbound" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "unbound 1.6.7" +#define PACKAGE_STRING "unbound 1.6.8" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "unbound" @@ -614,7 +614,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.6.7" +#define PACKAGE_VERSION "1.6.8" /* default pidfile location */ #define PIDFILE "/var/unbound/unbound.pid" @@ -633,7 +633,7 @@ #define ROOT_CERT_FILE "/var/unbound/icannbundle.pem" /* version number for resource files */ -#define RSRC_PACKAGE_VERSION 1,6,7,0 +#define RSRC_PACKAGE_VERSION 1,6,8,0 /* Directory to chdir to */ #define RUN_DIR "/var/unbound" Modified: head/contrib/unbound/configure ============================================================================== --- head/contrib/unbound/configure Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/configure Sat May 12 14:57:42 2018 (r333566) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.6.7. +# Generated by GNU Autoconf 2.69 for unbound 1.6.8. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.6.7' -PACKAGE_STRING='unbound 1.6.7' +PACKAGE_VERSION='1.6.8' +PACKAGE_STRING='unbound 1.6.8' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -1437,7 +1437,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.6.7 to adapt to many kinds of systems. +\`configure' configures unbound 1.6.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1502,7 +1502,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.6.7:";; + short | recursive ) echo "Configuration of unbound 1.6.8:";; esac cat <<\_ACEOF @@ -1714,7 +1714,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.6.7 +unbound configure 1.6.8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2423,7 +2423,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.6.7, which was +It was created by unbound $as_me 1.6.8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2775,11 +2775,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=6 -UNBOUND_VERSION_MICRO=7 +UNBOUND_VERSION_MICRO=8 LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=6 +LIBUNBOUND_REVISION=7 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2837,6 +2837,7 @@ LIBUNBOUND_AGE=5 # 1.6.5 had 7:4:5 # 1.6.6 had 7:5:5 # 1.6.7 had 7:6:5 +# 1.6.8 had 7:7:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -20694,7 +20695,7 @@ _ACEOF -version=1.6.7 +version=1.6.8 date=`date +'%b %e, %Y'` @@ -21213,7 +21214,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.6.7, which was +This file was extended by unbound $as_me 1.6.8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21279,7 +21280,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.6.7 +unbound config.status 1.6.8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/unbound/configure.ac ============================================================================== --- head/contrib/unbound/configure.ac Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/configure.ac Sat May 12 14:57:42 2018 (r333566) @@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[6]) -m4_define([VERSION_MICRO],[7]) +m4_define([VERSION_MICRO],[8]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=6 +LIBUNBOUND_REVISION=7 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -76,6 +76,7 @@ LIBUNBOUND_AGE=5 # 1.6.5 had 7:4:5 # 1.6.6 had 7:5:5 # 1.6.7 had 7:6:5 +# 1.6.8 had 7:7:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary Modified: head/contrib/unbound/doc/Changelog ============================================================================== --- head/contrib/unbound/doc/Changelog Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/Changelog Sat May 12 14:57:42 2018 (r333566) @@ -1,3 +1,7 @@ +19 January 2018: Wouter + - patch for CVE-2017-15105: vulnerability in the processing of + wildcard synthesized NSEC records. + 10 October 2017: Wouter - tag 1.6.7 Modified: head/contrib/unbound/doc/README ============================================================================== --- head/contrib/unbound/doc/README Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/README Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -README for Unbound 1.6.7 +README for Unbound 1.6.8 Copyright 2007 NLnet Labs http://unbound.net Modified: head/contrib/unbound/doc/example.conf ============================================================================== --- head/contrib/unbound/doc/example.conf Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/example.conf Sat May 12 14:57:42 2018 (r333566) @@ -1,7 +1,7 @@ # # Example configuration file. # -# See unbound.conf(5) man page, version 1.6.7. +# See unbound.conf(5) man page, version 1.6.8. # # this is a comment. Modified: head/contrib/unbound/doc/example.conf.in ============================================================================== --- head/contrib/unbound/doc/example.conf.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/example.conf.in Sat May 12 14:57:42 2018 (r333566) @@ -1,7 +1,7 @@ # # Example configuration file. # -# See unbound.conf(5) man page, version 1.6.7. +# See unbound.conf(5) man page, version 1.6.8. # # this is a comment. Modified: head/contrib/unbound/doc/libunbound.3 ============================================================================== --- head/contrib/unbound/doc/libunbound.3 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/libunbound.3 Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "libunbound" "3" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "libunbound" "3" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" libunbound.3 -- unbound library functions manual .\" @@ -43,7 +43,7 @@ .B ub_ctx_zone_remove, .B ub_ctx_data_add, .B ub_ctx_data_remove -\- Unbound DNS validating resolver 1.6.7 functions. +\- Unbound DNS validating resolver 1.6.8 functions. .SH "SYNOPSIS" .B #include .LP Modified: head/contrib/unbound/doc/libunbound.3.in ============================================================================== --- head/contrib/unbound/doc/libunbound.3.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/libunbound.3.in Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "libunbound" "3" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "libunbound" "3" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" libunbound.3 -- unbound library functions manual .\" @@ -43,7 +43,7 @@ .B ub_ctx_zone_remove, .B ub_ctx_data_add, .B ub_ctx_data_remove -\- Unbound DNS validating resolver 1.6.7 functions. +\- Unbound DNS validating resolver 1.6.8 functions. .SH "SYNOPSIS" .B #include .LP Modified: head/contrib/unbound/doc/unbound-anchor.8 ============================================================================== --- head/contrib/unbound/doc/unbound-anchor.8 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-anchor.8 Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound-anchor" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound-anchor" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-anchor.8 -- unbound anchor maintenance utility manual .\" Modified: head/contrib/unbound/doc/unbound-anchor.8.in ============================================================================== --- head/contrib/unbound/doc/unbound-anchor.8.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-anchor.8.in Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound-anchor" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound-anchor" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-anchor.8 -- unbound anchor maintenance utility manual .\" Modified: head/contrib/unbound/doc/unbound-checkconf.8 ============================================================================== --- head/contrib/unbound/doc/unbound-checkconf.8 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-checkconf.8 Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound-checkconf" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound-checkconf" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-checkconf.8 -- unbound configuration checker manual .\" Modified: head/contrib/unbound/doc/unbound-checkconf.8.in ============================================================================== --- head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound-checkconf" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound-checkconf" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-checkconf.8 -- unbound configuration checker manual .\" Modified: head/contrib/unbound/doc/unbound-control.8 ============================================================================== --- head/contrib/unbound/doc/unbound-control.8 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-control.8 Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound-control" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound-control" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-control.8 -- unbound remote control manual .\" Modified: head/contrib/unbound/doc/unbound-control.8.in ============================================================================== --- head/contrib/unbound/doc/unbound-control.8.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-control.8.in Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound-control" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound-control" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-control.8 -- unbound remote control manual .\" Modified: head/contrib/unbound/doc/unbound-host.1 ============================================================================== --- head/contrib/unbound/doc/unbound-host.1 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-host.1 Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound\-host" "1" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound\-host" "1" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-host.1 -- unbound DNS lookup utility .\" Modified: head/contrib/unbound/doc/unbound-host.1.in ============================================================================== --- head/contrib/unbound/doc/unbound-host.1.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound-host.1.in Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound\-host" "1" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound\-host" "1" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound-host.1 -- unbound DNS lookup utility .\" Modified: head/contrib/unbound/doc/unbound.8 ============================================================================== --- head/contrib/unbound/doc/unbound.8 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound.8 Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound.8 -- unbound manual .\" @@ -9,7 +9,7 @@ .\" .SH "NAME" .B unbound -\- Unbound DNS validating resolver 1.6.7. +\- Unbound DNS validating resolver 1.6.8. .SH "SYNOPSIS" .B unbound .RB [ \-h ] Modified: head/contrib/unbound/doc/unbound.8.in ============================================================================== --- head/contrib/unbound/doc/unbound.8.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound.8.in Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound" "8" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound" "8" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound.8 -- unbound manual .\" @@ -9,7 +9,7 @@ .\" .SH "NAME" .B unbound -\- Unbound DNS validating resolver 1.6.7. +\- Unbound DNS validating resolver 1.6.8. .SH "SYNOPSIS" .B unbound .RB [ \-h ] Modified: head/contrib/unbound/doc/unbound.conf.5 ============================================================================== --- head/contrib/unbound/doc/unbound.conf.5 Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound.conf.5 Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound.conf" "5" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound.conf" "5" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound.conf.5 -- unbound.conf manual .\" Modified: head/contrib/unbound/doc/unbound.conf.5.in ============================================================================== --- head/contrib/unbound/doc/unbound.conf.5.in Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/doc/unbound.conf.5.in Sat May 12 14:57:42 2018 (r333566) @@ -1,4 +1,4 @@ -.TH "unbound.conf" "5" "Oct 10, 2017" "NLnet Labs" "unbound 1.6.7" +.TH "unbound.conf" "5" "Jan 19, 2018" "NLnet Labs" "unbound 1.6.8" .\" .\" unbound.conf.5 -- unbound.conf manual .\" Modified: head/contrib/unbound/validator/autotrust.c ============================================================================== --- head/contrib/unbound/validator/autotrust.c Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/autotrust.c Sat May 12 14:57:42 2018 (r333566) @@ -1227,17 +1227,20 @@ void autr_write_file(struct module_env* env, struct tr * @param ve: validator environment (with options) for verification. * @param tp: trust point to verify with * @param rrset: DNSKEY rrset to verify. + * @param qstate: qstate with region. * @return false on failure, true if verification successful. */ static int verify_dnskey(struct module_env* env, struct val_env* ve, - struct trust_anchor* tp, struct ub_packed_rrset_key* rrset) + struct trust_anchor* tp, struct ub_packed_rrset_key* rrset, + struct module_qstate* qstate) { char* reason = NULL; uint8_t sigalg[ALGO_NEEDS_MAX+1]; int downprot = env->cfg->harden_algo_downgrade; enum sec_status sec = val_verify_DNSKEY_with_TA(env, ve, rrset, - tp->ds_rrset, tp->dnskey_rrset, downprot?sigalg:NULL, &reason); + tp->ds_rrset, tp->dnskey_rrset, downprot?sigalg:NULL, &reason, + qstate); /* sigalg is ignored, it returns algorithms signalled to exist, but * in 5011 there are no other rrsets to check. if downprot is * enabled, then it checks that the DNSKEY is signed with all @@ -1276,7 +1279,8 @@ min_expiry(struct module_env* env, struct packed_rrset /** Is rr self-signed revoked key */ static int rr_is_selfsigned_revoked(struct module_env* env, struct val_env* ve, - struct ub_packed_rrset_key* dnskey_rrset, size_t i) + struct ub_packed_rrset_key* dnskey_rrset, size_t i, + struct module_qstate* qstate) { enum sec_status sec; char* reason = NULL; @@ -1285,7 +1289,7 @@ rr_is_selfsigned_revoked(struct module_env* env, struc /* no algorithm downgrade protection necessary, if it is selfsigned * revoked it can be removed. */ sec = dnskey_verify_rrset(env, ve, dnskey_rrset, dnskey_rrset, i, - &reason); + &reason, LDNS_SECTION_ANSWER, qstate); return (sec == sec_status_secure); } @@ -1501,7 +1505,7 @@ init_events(struct trust_anchor* tp) static void check_contains_revoked(struct module_env* env, struct val_env* ve, struct trust_anchor* tp, struct ub_packed_rrset_key* dnskey_rrset, - int* changed) + int* changed, struct module_qstate* qstate) { struct packed_rrset_data* dd = (struct packed_rrset_data*) dnskey_rrset->entry.data; @@ -1521,7 +1525,7 @@ check_contains_revoked(struct module_env* env, struct } if(!ta) continue; /* key not found */ - if(rr_is_selfsigned_revoked(env, ve, dnskey_rrset, i)) { + if(rr_is_selfsigned_revoked(env, ve, dnskey_rrset, i, qstate)) { /* checked if there is an rrsig signed by this key. */ /* same keytag, but stored can be revoked already, so * compare keytags, with +0 or +128(REVOKE flag) */ @@ -2118,7 +2122,8 @@ autr_tp_remove(struct module_env* env, struct trust_an } int autr_process_prime(struct module_env* env, struct val_env* ve, - struct trust_anchor* tp, struct ub_packed_rrset_key* dnskey_rrset) + struct trust_anchor* tp, struct ub_packed_rrset_key* dnskey_rrset, + struct module_qstate* qstate) { int changed = 0; log_assert(tp && tp->autr); @@ -2159,7 +2164,7 @@ int autr_process_prime(struct module_env* env, struct return 1; /* trust point exists */ } /* check for revoked keys to remove immediately */ - check_contains_revoked(env, ve, tp, dnskey_rrset, &changed); + check_contains_revoked(env, ve, tp, dnskey_rrset, &changed, qstate); if(changed) { verbose(VERB_ALGO, "autotrust: revokedkeys, reassemble"); if(!autr_assemble(tp)) { @@ -2175,7 +2180,7 @@ int autr_process_prime(struct module_env* env, struct } } /* verify the dnskey rrset and see if it is valid. */ - if(!verify_dnskey(env, ve, tp, dnskey_rrset)) { + if(!verify_dnskey(env, ve, tp, dnskey_rrset, qstate)) { verbose(VERB_ALGO, "autotrust: dnskey did not verify."); /* only increase failure count if this is not the first prime, * this means there was a previous successful probe */ Modified: head/contrib/unbound/validator/autotrust.h ============================================================================== --- head/contrib/unbound/validator/autotrust.h Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/autotrust.h Sat May 12 14:57:42 2018 (r333566) @@ -47,6 +47,7 @@ struct val_anchors; struct trust_anchor; struct ub_packed_rrset_key; struct module_env; +struct module_qstate; struct val_env; struct sldns_buffer; @@ -188,12 +189,14 @@ void autr_point_delete(struct trust_anchor* tp); * @param tp: trust anchor to process. * @param dnskey_rrset: DNSKEY rrset probed (can be NULL if bad prime result). * allocated in a region. Has not been validated yet. + * @param qstate: qstate with region. * @return false if trust anchor was revoked completely. * Otherwise logs errors to log, does not change return value. * On errors, likely the trust point has been unchanged. */ int autr_process_prime(struct module_env* env, struct val_env* ve, - struct trust_anchor* tp, struct ub_packed_rrset_key* dnskey_rrset); + struct trust_anchor* tp, struct ub_packed_rrset_key* dnskey_rrset, + struct module_qstate* qstate); /** * Debug printout of rfc5011 tracked anchors Modified: head/contrib/unbound/validator/val_nsec.c ============================================================================== --- head/contrib/unbound/validator/val_nsec.c Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_nsec.c Sat May 12 14:57:42 2018 (r333566) @@ -176,7 +176,7 @@ val_nsec_proves_no_ds(struct ub_packed_rrset_key* nsec static int nsec_verify_rrset(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* nsec, struct key_entry_key* kkey, - char** reason) + char** reason, struct module_qstate* qstate) { struct packed_rrset_data* d = (struct packed_rrset_data*) nsec->entry.data; @@ -185,7 +185,8 @@ nsec_verify_rrset(struct module_env* env, struct val_e rrset_check_sec_status(env->rrset_cache, nsec, *env->now); if(d->security == sec_status_secure) return 1; - d->security = val_verify_rrset_entry(env, ve, nsec, kkey, reason); + d->security = val_verify_rrset_entry(env, ve, nsec, kkey, reason, + LDNS_SECTION_AUTHORITY, qstate); if(d->security == sec_status_secure) { rrset_update_sec_status(env->rrset_cache, nsec, *env->now); return 1; @@ -196,7 +197,8 @@ nsec_verify_rrset(struct module_env* env, struct val_e enum sec_status val_nsec_prove_nodata_dsreply(struct module_env* env, struct val_env* ve, struct query_info* qinfo, struct reply_info* rep, - struct key_entry_key* kkey, time_t* proof_ttl, char** reason) + struct key_entry_key* kkey, time_t* proof_ttl, char** reason, + struct module_qstate* qstate) { struct ub_packed_rrset_key* nsec = reply_find_rrset_section_ns( rep, qinfo->qname, qinfo->qname_len, LDNS_RR_TYPE_NSEC, @@ -213,7 +215,7 @@ val_nsec_prove_nodata_dsreply(struct module_env* env, * 1) this is a delegation point and there is no DS * 2) this is not a delegation point */ if(nsec) { - if(!nsec_verify_rrset(env, ve, nsec, kkey, reason)) { + if(!nsec_verify_rrset(env, ve, nsec, kkey, reason, qstate)) { verbose(VERB_ALGO, "NSEC RRset for the " "referral did not verify."); return sec_status_bogus; @@ -242,7 +244,8 @@ val_nsec_prove_nodata_dsreply(struct module_env* env, i++) { if(rep->rrsets[i]->rk.type != htons(LDNS_RR_TYPE_NSEC)) continue; - if(!nsec_verify_rrset(env, ve, rep->rrsets[i], kkey, reason)) { + if(!nsec_verify_rrset(env, ve, rep->rrsets[i], kkey, reason, + qstate)) { verbose(VERB_ALGO, "NSEC for empty non-terminal " "did not verify."); return sec_status_bogus; Modified: head/contrib/unbound/validator/val_nsec.h ============================================================================== --- head/contrib/unbound/validator/val_nsec.h Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_nsec.h Sat May 12 14:57:42 2018 (r333566) @@ -46,6 +46,7 @@ #include "util/data/packed_rrset.h" struct val_env; struct module_env; +struct module_qstate; struct ub_packed_rrset_key; struct reply_info; struct query_info; @@ -64,6 +65,7 @@ struct key_entry_key; * @param kkey: key entry to use for verification of signatures. * @param proof_ttl: if secure, the TTL of how long this proof lasts. * @param reason: string explaining why bogus. + * @param qstate: qstate with region. * @return security status. * SECURE: proved absence of DS. * INSECURE: proved that this was not a delegation point. @@ -73,7 +75,7 @@ struct key_entry_key; enum sec_status val_nsec_prove_nodata_dsreply(struct module_env* env, struct val_env* ve, struct query_info* qinfo, struct reply_info* rep, struct key_entry_key* kkey, - time_t* proof_ttl, char** reason); + time_t* proof_ttl, char** reason, struct module_qstate* qstate); /** * nsec typemap check, takes an NSEC-type bitmap as argument, checks for type. Modified: head/contrib/unbound/validator/val_nsec3.c ============================================================================== --- head/contrib/unbound/validator/val_nsec3.c Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_nsec3.c Sat May 12 14:57:42 2018 (r333566) @@ -1285,7 +1285,7 @@ nsec3_prove_wildcard(struct module_env* env, struct va static int list_is_secure(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key** list, size_t num, - struct key_entry_key* kkey, char** reason) + struct key_entry_key* kkey, char** reason, struct module_qstate* qstate) { struct packed_rrset_data* d; size_t i; @@ -1299,7 +1299,7 @@ list_is_secure(struct module_env* env, struct val_env* if(d->security == sec_status_secure) continue; d->security = val_verify_rrset_entry(env, ve, list[i], kkey, - reason); + reason, LDNS_SECTION_AUTHORITY, qstate); if(d->security != sec_status_secure) { verbose(VERB_ALGO, "NSEC3 did not verify"); return 0; @@ -1312,7 +1312,8 @@ list_is_secure(struct module_env* env, struct val_env* enum sec_status nsec3_prove_nods(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key** list, size_t num, - struct query_info* qinfo, struct key_entry_key* kkey, char** reason) + struct query_info* qinfo, struct key_entry_key* kkey, char** reason, + struct module_qstate* qstate) { rbtree_type ct; struct nsec3_filter flt; @@ -1325,7 +1326,7 @@ nsec3_prove_nods(struct module_env* env, struct val_en *reason = "no valid NSEC3s"; return sec_status_bogus; /* no valid NSEC3s, bogus */ } - if(!list_is_secure(env, ve, list, num, kkey, reason)) + if(!list_is_secure(env, ve, list, num, kkey, reason, qstate)) return sec_status_bogus; /* not all NSEC3 records secure */ rbtree_init(&ct, &nsec3_hash_cmp); /* init names-to-hash cache */ filter_init(&flt, list, num, qinfo); /* init RR iterator */ Modified: head/contrib/unbound/validator/val_nsec3.h ============================================================================== --- head/contrib/unbound/validator/val_nsec3.h Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_nsec3.h Sat May 12 14:57:42 2018 (r333566) @@ -71,6 +71,7 @@ struct val_env; struct regional; struct module_env; +struct module_qstate; struct ub_packed_rrset_key; struct reply_info; struct query_info; @@ -185,6 +186,7 @@ nsec3_prove_wildcard(struct module_env* env, struct va * @param qinfo: query that is verified for. * @param kkey: key entry that signed the NSEC3s. * @param reason: string for bogus result. + * @param qstate: qstate with region. * @return: * sec_status SECURE of the proposition is proven by the NSEC3 RRs, * BOGUS if not, INSECURE if all of the NSEC3s could be validly ignored. @@ -194,7 +196,8 @@ nsec3_prove_wildcard(struct module_env* env, struct va enum sec_status nsec3_prove_nods(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key** list, size_t num, - struct query_info* qinfo, struct key_entry_key* kkey, char** reason); + struct query_info* qinfo, struct key_entry_key* kkey, char** reason, + struct module_qstate* qstate); /** * Prove NXDOMAIN or NODATA. Modified: head/contrib/unbound/validator/val_sigcrypt.c ============================================================================== --- head/contrib/unbound/validator/val_sigcrypt.c Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_sigcrypt.c Sat May 12 14:57:42 2018 (r333566) @@ -485,7 +485,8 @@ int algo_needs_missing(struct algo_needs* n) enum sec_status dnskeyset_verify_rrset(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* dnskey, - uint8_t* sigalg, char** reason) + uint8_t* sigalg, char** reason, sldns_pkt_section section, + struct module_qstate* qstate) { enum sec_status sec; size_t i, num; @@ -512,7 +513,7 @@ dnskeyset_verify_rrset(struct module_env* env, struct } for(i=0; inow, rrset, - dnskey, i, &sortree, reason); + dnskey, i, &sortree, reason, section, qstate); /* see which algorithm has been fixed up */ if(sec == sec_status_secure) { if(!sigalg) @@ -553,7 +554,8 @@ void algo_needs_reason(struct module_env* env, int alg enum sec_status dnskey_verify_rrset(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* dnskey, - size_t dnskey_idx, char** reason) + size_t dnskey_idx, char** reason, sldns_pkt_section section, + struct module_qstate* qstate) { enum sec_status sec; size_t i, num, numchecked = 0; @@ -577,7 +579,8 @@ dnskey_verify_rrset(struct module_env* env, struct val buf_canon = 0; sec = dnskey_verify_rrset_sig(env->scratch, env->scratch_buffer, ve, *env->now, rrset, - dnskey, dnskey_idx, i, &sortree, &buf_canon, reason); + dnskey, dnskey_idx, i, &sortree, &buf_canon, reason, + section, qstate); if(sec == sec_status_secure) return sec; numchecked ++; @@ -591,7 +594,8 @@ enum sec_status dnskeyset_verify_rrset_sig(struct module_env* env, struct val_env* ve, time_t now, struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* dnskey, size_t sig_idx, - struct rbtree_type** sortree, char** reason) + struct rbtree_type** sortree, char** reason, sldns_pkt_section section, + struct module_qstate* qstate) { /* find matching keys and check them */ enum sec_status sec = sec_status_bogus; @@ -616,7 +620,7 @@ dnskeyset_verify_rrset_sig(struct module_env* env, str /* see if key verifies */ sec = dnskey_verify_rrset_sig(env->scratch, env->scratch_buffer, ve, now, rrset, dnskey, i, - sig_idx, sortree, &buf_canon, reason); + sig_idx, sortree, &buf_canon, reason, section, qstate); if(sec == sec_status_secure) return sec; } @@ -1121,12 +1125,15 @@ int rrset_canonical_equal(struct regional* region, * signer name length. * @param sortree: if NULL is passed a new sorted rrset tree is built. * Otherwise it is reused. + * @param section: section of packet where this rrset comes from. + * @param qstate: qstate with region. * @return false on alloc error. */ static int rrset_canonical(struct regional* region, sldns_buffer* buf, struct ub_packed_rrset_key* k, uint8_t* sig, size_t siglen, - struct rbtree_type** sortree) + struct rbtree_type** sortree, sldns_pkt_section section, + struct module_qstate* qstate) { struct packed_rrset_data* d = (struct packed_rrset_data*)k->entry.data; uint8_t* can_owner = NULL; @@ -1175,6 +1182,20 @@ rrset_canonical(struct regional* region, sldns_buffer* canonicalize_rdata(buf, k, d->rr_len[walk->rr_idx]); } sldns_buffer_flip(buf); + + /* Replace RR owner with canonical owner for NSEC records in authority + * section, to prevent that a wildcard synthesized NSEC can be used in + * the non-existence proves. */ + if(ntohs(k->rk.type) == LDNS_RR_TYPE_NSEC && + section == LDNS_SECTION_AUTHORITY) { + k->rk.dname = regional_alloc_init(qstate->region, can_owner, + can_owner_len); + if(!k->rk.dname) + return 0; + k->rk.dname_len = can_owner_len; + } + + return 1; } @@ -1318,7 +1339,8 @@ dnskey_verify_rrset_sig(struct regional* region, sldns struct val_env* ve, time_t now, struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* dnskey, size_t dnskey_idx, size_t sig_idx, - struct rbtree_type** sortree, int* buf_canon, char** reason) + struct rbtree_type** sortree, int* buf_canon, char** reason, + sldns_pkt_section section, struct module_qstate* qstate) { enum sec_status sec; uint8_t* sig; /* RRSIG rdata */ @@ -1417,7 +1439,7 @@ dnskey_verify_rrset_sig(struct regional* region, sldns /* create rrset canonical format in buffer, ready for * signature */ if(!rrset_canonical(region, buf, rrset, sig+2, - 18 + signer_len, sortree)) { + 18 + signer_len, sortree, section, qstate)) { log_err("verify: failed due to alloc error"); return sec_status_unchecked; } Modified: head/contrib/unbound/validator/val_sigcrypt.h ============================================================================== --- head/contrib/unbound/validator/val_sigcrypt.h Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_sigcrypt.h Sat May 12 14:57:42 2018 (r333566) @@ -44,8 +44,10 @@ #ifndef VALIDATOR_VAL_SIGCRYPT_H #define VALIDATOR_VAL_SIGCRYPT_H #include "util/data/packed_rrset.h" +#include "sldns/pkthdr.h" struct val_env; struct module_env; +struct module_qstate; struct ub_packed_rrset_key; struct rbtree_type; struct regional; @@ -237,13 +239,16 @@ uint16_t dnskey_get_flags(struct ub_packed_rrset_key* * @param sigalg: if nonNULL provide downgrade protection otherwise one * algorithm is enough. * @param reason: if bogus, a string returned, fixed or alloced in scratch. + * @param section: section of packet where this rrset comes from. + * @param qstate: qstate with region. * @return SECURE if one key in the set verifies one rrsig. * UNCHECKED on allocation errors, unsupported algorithms, malformed data, * and BOGUS on verification failures (no keys match any signatures). */ enum sec_status dnskeyset_verify_rrset(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* rrset, - struct ub_packed_rrset_key* dnskey, uint8_t* sigalg, char** reason); + struct ub_packed_rrset_key* dnskey, uint8_t* sigalg, char** reason, + sldns_pkt_section section, struct module_qstate* qstate); /** * verify rrset against one specific dnskey (from rrset) @@ -253,12 +258,15 @@ enum sec_status dnskeyset_verify_rrset(struct module_e * @param dnskey: DNSKEY rrset, keyset. * @param dnskey_idx: which key from the rrset to try. * @param reason: if bogus, a string returned, fixed or alloced in scratch. + * @param section: section of packet where this rrset comes from. + * @param qstate: qstate with region. * @return secure if *this* key signs any of the signatures on rrset. * unchecked on error or and bogus on bad signature. */ enum sec_status dnskey_verify_rrset(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* rrset, - struct ub_packed_rrset_key* dnskey, size_t dnskey_idx, char** reason); + struct ub_packed_rrset_key* dnskey, size_t dnskey_idx, char** reason, + sldns_pkt_section section, struct module_qstate* qstate); /** * verify rrset, with dnskey rrset, for a specific rrsig in rrset @@ -271,13 +279,16 @@ enum sec_status dnskey_verify_rrset(struct module_env* * @param sortree: reused sorted order. Stored in region. Pass NULL at start, * and for a new rrset. * @param reason: if bogus, a string returned, fixed or alloced in scratch. + * @param section: section of packet where this rrset comes from. + * @param qstate: qstate with region. * @return secure if any key signs *this* signature. bogus if no key signs it, * or unchecked on error. */ enum sec_status dnskeyset_verify_rrset_sig(struct module_env* env, struct val_env* ve, time_t now, struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* dnskey, size_t sig_idx, - struct rbtree_type** sortree, char** reason); + struct rbtree_type** sortree, char** reason, sldns_pkt_section section, + struct module_qstate* qstate); /** * verify rrset, with specific dnskey(from set), for a specific rrsig @@ -295,6 +306,8 @@ enum sec_status dnskeyset_verify_rrset_sig(struct modu * pass false at start. pass old value only for same rrset and same * signature (but perhaps different key) for reuse. * @param reason: if bogus, a string returned, fixed or alloced in scratch. + * @param section: section of packet where this rrset comes from. + * @param qstate: qstate with region. * @return secure if this key signs this signature. unchecked on error or * bogus if it did not validate. */ @@ -302,7 +315,8 @@ enum sec_status dnskey_verify_rrset_sig(struct regiona struct sldns_buffer* buf, struct val_env* ve, time_t now, struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* dnskey, size_t dnskey_idx, size_t sig_idx, - struct rbtree_type** sortree, int* buf_canon, char** reason); + struct rbtree_type** sortree, int* buf_canon, char** reason, + sldns_pkt_section section, struct module_qstate* qstate); /** * canonical compare for two tree entries Modified: head/contrib/unbound/validator/val_utils.c ============================================================================== --- head/contrib/unbound/validator/val_utils.c Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_utils.c Sat May 12 14:57:42 2018 (r333566) @@ -335,7 +335,8 @@ rrset_get_ttl(struct ub_packed_rrset_key* rrset) enum sec_status val_verify_rrset(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* keys, - uint8_t* sigalg, char** reason) + uint8_t* sigalg, char** reason, sldns_pkt_section section, + struct module_qstate* qstate) { enum sec_status sec; struct packed_rrset_data* d = (struct packed_rrset_data*)rrset-> @@ -357,7 +358,8 @@ val_verify_rrset(struct module_env* env, struct val_en } log_nametypeclass(VERB_ALGO, "verify rrset", rrset->rk.dname, ntohs(rrset->rk.type), ntohs(rrset->rk.rrset_class)); - sec = dnskeyset_verify_rrset(env, ve, rrset, keys, sigalg, reason); + sec = dnskeyset_verify_rrset(env, ve, rrset, keys, sigalg, reason, + section, qstate); verbose(VERB_ALGO, "verify result: %s", sec_status_to_string(sec)); regional_free_all(env->scratch); @@ -390,7 +392,7 @@ val_verify_rrset(struct module_env* env, struct val_en enum sec_status val_verify_rrset_entry(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* rrset, struct key_entry_key* kkey, - char** reason) + char** reason, sldns_pkt_section section, struct module_qstate* qstate) { /* temporary dnskey rrset-key */ struct ub_packed_rrset_key dnskey; @@ -403,7 +405,8 @@ val_verify_rrset_entry(struct module_env* env, struct dnskey.rk.dname_len = kkey->namelen; dnskey.entry.key = &dnskey; dnskey.entry.data = kd->rrset_data; - sec = val_verify_rrset(env, ve, rrset, &dnskey, kd->algo, reason); + sec = val_verify_rrset(env, ve, rrset, &dnskey, kd->algo, reason, + section, qstate); return sec; } @@ -411,7 +414,8 @@ val_verify_rrset_entry(struct module_env* env, struct static enum sec_status verify_dnskeys_with_ds_rr(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* dnskey_rrset, - struct ub_packed_rrset_key* ds_rrset, size_t ds_idx, char** reason) + struct ub_packed_rrset_key* ds_rrset, size_t ds_idx, char** reason, + struct module_qstate* qstate) { enum sec_status sec = sec_status_bogus; size_t i, num, numchecked = 0, numhashok = 0; @@ -442,7 +446,7 @@ verify_dnskeys_with_ds_rr(struct module_env* env, stru /* Otherwise, we have a match! Make sure that the DNSKEY * verifies *with this key* */ sec = dnskey_verify_rrset(env, ve, dnskey_rrset, - dnskey_rrset, i, reason); + dnskey_rrset, i, reason, LDNS_SECTION_ANSWER, qstate); if(sec == sec_status_secure) { return sec; } @@ -478,7 +482,8 @@ int val_favorite_ds_algo(struct ub_packed_rrset_key* d enum sec_status val_verify_DNSKEY_with_DS(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* dnskey_rrset, - struct ub_packed_rrset_key* ds_rrset, uint8_t* sigalg, char** reason) + struct ub_packed_rrset_key* ds_rrset, uint8_t* sigalg, char** reason, + struct module_qstate* qstate) { /* as long as this is false, we can consider this DS rrset to be * equivalent to no DS rrset. */ @@ -520,7 +525,7 @@ val_verify_DNSKEY_with_DS(struct module_env* env, stru has_useful_ds = 1; sec = verify_dnskeys_with_ds_rr(env, ve, dnskey_rrset, - ds_rrset, i, reason); + ds_rrset, i, reason, qstate); if(sec == sec_status_secure) { if(!sigalg || algo_needs_set_secure(&needs, (uint8_t)ds_get_key_algo(ds_rrset, i))) { @@ -553,11 +558,12 @@ val_verify_DNSKEY_with_DS(struct module_env* env, stru struct key_entry_key* val_verify_new_DNSKEYs(struct regional* region, struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* dnskey_rrset, - struct ub_packed_rrset_key* ds_rrset, int downprot, char** reason) + struct ub_packed_rrset_key* ds_rrset, int downprot, char** reason, + struct module_qstate* qstate) { uint8_t sigalg[ALGO_NEEDS_MAX+1]; enum sec_status sec = val_verify_DNSKEY_with_DS(env, ve, - dnskey_rrset, ds_rrset, downprot?sigalg:NULL, reason); + dnskey_rrset, ds_rrset, downprot?sigalg:NULL, reason, qstate); if(sec == sec_status_secure) { return key_entry_create_rrset(region, @@ -579,7 +585,8 @@ enum sec_status val_verify_DNSKEY_with_TA(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* dnskey_rrset, struct ub_packed_rrset_key* ta_ds, - struct ub_packed_rrset_key* ta_dnskey, uint8_t* sigalg, char** reason) + struct ub_packed_rrset_key* ta_dnskey, uint8_t* sigalg, char** reason, + struct module_qstate* qstate) { /* as long as this is false, we can consider this anchor to be * equivalent to no anchor. */ @@ -630,7 +637,7 @@ val_verify_DNSKEY_with_TA(struct module_env* env, stru has_useful_ta = 1; sec = verify_dnskeys_with_ds_rr(env, ve, dnskey_rrset, - ta_ds, i, reason); + ta_ds, i, reason, qstate); if(sec == sec_status_secure) { if(!sigalg || algo_needs_set_secure(&needs, (uint8_t)ds_get_key_algo(ta_ds, i))) { @@ -656,7 +663,7 @@ val_verify_DNSKEY_with_TA(struct module_env* env, stru has_useful_ta = 1; sec = dnskey_verify_rrset(env, ve, dnskey_rrset, - ta_dnskey, i, reason); + ta_dnskey, i, reason, LDNS_SECTION_ANSWER, qstate); if(sec == sec_status_secure) { if(!sigalg || algo_needs_set_secure(&needs, (uint8_t)dnskey_get_algo(ta_dnskey, i))) { @@ -690,12 +697,12 @@ val_verify_new_DNSKEYs_with_ta(struct regional* region struct val_env* ve, struct ub_packed_rrset_key* dnskey_rrset, struct ub_packed_rrset_key* ta_ds_rrset, struct ub_packed_rrset_key* ta_dnskey_rrset, int downprot, - char** reason) + char** reason, struct module_qstate* qstate) { uint8_t sigalg[ALGO_NEEDS_MAX+1]; enum sec_status sec = val_verify_DNSKEY_with_TA(env, ve, dnskey_rrset, ta_ds_rrset, ta_dnskey_rrset, - downprot?sigalg:NULL, reason); + downprot?sigalg:NULL, reason, qstate); if(sec == sec_status_secure) { return key_entry_create_rrset(region, Modified: head/contrib/unbound/validator/val_utils.h ============================================================================== --- head/contrib/unbound/validator/val_utils.h Sat May 12 14:51:53 2018 (r333565) +++ head/contrib/unbound/validator/val_utils.h Sat May 12 14:57:42 2018 (r333566) @@ -42,10 +42,12 @@ #ifndef VALIDATOR_VAL_UTILS_H #define VALIDATOR_VAL_UTILS_H #include "util/data/packed_rrset.h" +#include "sldns/pkthdr.h" struct query_info; struct reply_info; struct val_env; struct module_env; +struct module_qstate; struct ub_packed_rrset_key; struct key_entry_key; struct regional; @@ -120,11 +122,14 @@ void val_find_signer(enum val_classification subtype, * @param sigalg: if nonNULL provide downgrade protection otherwise one * algorithm is enough. Algo list is constructed in here. * @param reason: reason of failure. Fixed string or alloced in scratch. + * @param section: section of packet where this rrset comes from. + * @param qstate: qstate with region. * @return security status of verification. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 15:04:07 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C487FE00B1; Sat, 12 May 2018 15:04:06 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47EBD7FF67; Sat, 12 May 2018 15:04:06 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0E6A01FF01; Sat, 12 May 2018 15:04:06 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CF450i016305; Sat, 12 May 2018 15:04:05 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CF453v016303; Sat, 12 May 2018 15:04:05 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121504.w4CF453v016303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 15:04:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333567 - in head/contrib/unbound: . cachedb compat contrib daemon dnscrypt dnstap doc edns-subnet iterator libunbound services services/cache sldns smallapp util util/data validator X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . cachedb compat contrib daemon dnscrypt dnstap doc edns-subnet iterator libunbound services services/cache sldns smallapp util util/data validator X-SVN-Commit-Revision: 333567 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 15:04:07 -0000 Author: des Date: Sat May 12 15:04:05 2018 New Revision: 333567 URL: https://svnweb.freebsd.org/changeset/base/333567 Log: Upgrade Unbound to 1.7.0. More to follow. Added: head/contrib/unbound/contrib/libunbound.so.conf - copied unchanged from r333547, vendor/unbound/dist/contrib/libunbound.so.conf Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/cachedb/cachedb.c head/contrib/unbound/compat/arc4_lock.c head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/README head/contrib/unbound/contrib/fastrpz.patch head/contrib/unbound/daemon/cachedump.c head/contrib/unbound/daemon/daemon.c head/contrib/unbound/daemon/unbound.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/dnscrypt/dnscrypt.c head/contrib/unbound/dnscrypt/dnscrypt.h head/contrib/unbound/dnscrypt/dnscrypt.m4 head/contrib/unbound/dnstap/dnstap.proto head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/edns-subnet/addrtree.c head/contrib/unbound/edns-subnet/subnetmod.c head/contrib/unbound/iterator/iter_delegpt.h head/contrib/unbound/iterator/iter_hints.c head/contrib/unbound/iterator/iter_scrub.c head/contrib/unbound/iterator/iter_utils.c head/contrib/unbound/iterator/iter_utils.h head/contrib/unbound/iterator/iterator.c head/contrib/unbound/iterator/iterator.h head/contrib/unbound/libunbound/context.c head/contrib/unbound/libunbound/libunbound.c head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/services/authzone.c head/contrib/unbound/services/authzone.h head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/dns.h head/contrib/unbound/services/cache/rrset.c head/contrib/unbound/services/cache/rrset.h head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/localzone.c head/contrib/unbound/services/localzone.h head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/outside_network.h head/contrib/unbound/sldns/str2wire.c head/contrib/unbound/sldns/str2wire.h head/contrib/unbound/sldns/wire2str.c head/contrib/unbound/sldns/wire2str.h head/contrib/unbound/smallapp/unbound-checkconf.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/data/msgreply.h head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/log.c head/contrib/unbound/util/log.h head/contrib/unbound/util/module.h head/contrib/unbound/util/net_help.c head/contrib/unbound/util/net_help.h head/contrib/unbound/util/netevent.c head/contrib/unbound/util/netevent.h head/contrib/unbound/util/ub_event.c head/contrib/unbound/validator/val_neg.c head/contrib/unbound/validator/val_neg.h head/contrib/unbound/validator/val_nsec.c head/contrib/unbound/validator/val_sigcrypt.c head/contrib/unbound/validator/val_utils.c head/contrib/unbound/validator/val_utils.h head/contrib/unbound/validator/validator.c Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat May 12 14:57:42 2018 (r333566) +++ head/contrib/unbound/Makefile.in Sat May 12 15:04:05 2018 (r333567) @@ -137,8 +137,7 @@ slabhash.lo timehist.lo tube.lo winsock_event.lo autot validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \ val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo cachedb.lo authzone.lo\ $(SUBNET_OBJ) $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) $(DNSCRYPT_OBJ) \ -$(IPSECMOD_OBJ) -COMMON_OBJ_WITHOUT_NETCALL+=respip.lo +$(IPSECMOD_OBJ) respip.lo COMMON_OBJ_WITHOUT_UB_EVENT=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \ outside_network.lo COMMON_OBJ=$(COMMON_OBJ_WITHOUT_UB_EVENT) ub_event.lo @@ -265,7 +264,7 @@ ALL_OBJ=$(COMMON_OBJ) $(UNITTEST_OBJ) $(DAEMON_OBJ) \ COMPILE=$(LIBTOOL) --tag=CC --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) @PTHREAD_CFLAGS_ONLY@ LINK=$(LIBTOOL) --tag=CC --mode=link $(CC) $(staticexe) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -LINK_LIB=$(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(staticexe) -version-info @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined +LINK_LIB=$(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -version-info @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined .PHONY: clean realclean doc lint all install uninstall tests test strip lib longtest longcheck check alltargets @@ -390,7 +389,7 @@ dnstap.lo dnstap.o: $(srcdir)/dnstap/dnstap.c config.h dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h: $(srcdir)/dnstap/dnstap.proto @-if test ! -d dnstap; then $(INSTALL) -d dnstap; fi - $(PROTOC_C) --c_out=. $(srcdir)/dnstap/dnstap.proto + $(PROTOC_C) --c_out=. --proto_path=$(srcdir) $(srcdir)/dnstap/dnstap.proto dnstap.pb-c.lo dnstap.pb-c.o: dnstap/dnstap.pb-c.c dnstap/dnstap.pb-c.h @@ -533,6 +532,8 @@ install-all: all $(PYTHONMOD_INSTALL) $(PYUNBOUND_INST $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man8 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man5 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 + $(INSTALL) -m 755 -d $(DESTDIR)$(libdir)/pkgconfig + $(INSTALL) -m 644 contrib/libunbound.pc $(DESTDIR)$(libdir)/pkgconfig $(LIBTOOL) --mode=install cp -f unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound$(EXEEXT) $(LIBTOOL) --mode=install cp -f unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT) $(LIBTOOL) --mode=install cp -f unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT) @@ -627,102 +628,107 @@ depend: # Dependencies dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/validator/val_utils.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/util/storage/lookup3.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h as112.lo as112.o: $(srcdir)/util/as112.c $(srcdir)/util/as112.h dname.lo dname.o: $(srcdir)/util/data/dname.c config.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/storage/lookup3.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/sldns/sbuffer.h msgencode.lo msgencode.o: $(srcdir)/util/data/msgencode.c config.h $(srcdir)/util/data/msgencode.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h $(srcdir)/services/view.h msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/regional.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/util/module.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/module.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \ - $(srcdir)/util/net_help.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h iterator.lo iterator.o: $(srcdir)/iterator/iterator.c config.h $(srcdir)/iterator/iterator.h \ $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/iterator/iter_utils.h \ - $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \ - $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h \ - $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/iterator/iter_donotq.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h \ + $(srcdir)/iterator/iter_priv.h $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/authzone.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ $(srcdir)/util/config_file.h $(srcdir)/util/random.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h \ $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/sbuffer.h iter_delegpt.lo iter_delegpt.o: $(srcdir)/iterator/iter_delegpt.c config.h $(srcdir)/iterator/iter_delegpt.h \ $(srcdir)/util/log.h $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/sldns/sbuffer.h iter_donotq.lo iter_donotq.o: $(srcdir)/iterator/iter_donotq.c config.h $(srcdir)/iterator/iter_donotq.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h iter_fwd.lo iter_fwd.o: $(srcdir)/iterator/iter_fwd.c config.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h + $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h iter_hints.lo iter_hints.o: $(srcdir)/iterator/iter_hints.c config.h $(srcdir)/iterator/iter_hints.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h \ - $(srcdir)/sldns/wire2str.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h iter_priv.lo iter_priv.o: $(srcdir)/iterator/iter_priv.c config.h $(srcdir)/iterator/iter_priv.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \ $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/storage/dnstree.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/sbuffer.h iter_resptype.lo iter_resptype.o: $(srcdir)/iterator/iter_resptype.c config.h \ $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \ $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/data/dname.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h iter_scrub.lo iter_scrub.o: $(srcdir)/iterator/iter_scrub.c config.h $(srcdir)/iterator/iter_scrub.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h \ + $(srcdir)/sldns/sbuffer.h iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_utils.c config.h $(srcdir)/iterator/iter_utils.h \ $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/iterator/iter_hints.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h \ $(srcdir)/iterator/iter_donotq.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_priv.h \ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ @@ -736,33 +742,34 @@ iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_ut listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/testcode/checklocks.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ + $(srcdir)/sldns/sbuffer.h localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/data/msgencode.h $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h \ $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ $(srcdir)/util/as112.h mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/services/view.h $(srcdir)/util/data/dname.h $(srcdir)/respip/respip.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/util/data/dname.h $(srcdir)/respip/respip.h modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/dns64/dns64.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h \ $(srcdir)/validator/val_utils.h $(srcdir)/respip/respip.h $(srcdir)/services/localzone.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(PYTHONMOD_HEADER) \ @@ -770,168 +777,186 @@ modstack.lo modstack.o: $(srcdir)/services/modstack.c $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h view.lo view.o: $(srcdir)/services/view.c config.h $(srcdir)/services/view.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/config_file.h outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \ $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \ $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/services/listen_dnsport.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h \ alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h config_file.lo config_file.o: $(srcdir)/util/config_file.c config.h $(srcdir)/util/log.h \ $(srcdir)/util/configyyrename.h $(srcdir)/util/config_file.h util/configparser.h \ $(srcdir)/util/net_help.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/iana_ports.inc + $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/util/rtt.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/sldns/parseutil.h $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/iana_ports.inc configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \ $(srcdir)/util/config_file.h util/configparser.h configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h shm_main.lo shm_main.o: $(srcdir)/util/shm_side/shm_main.c config.h $(srcdir)/util/shm_side/shm_main.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \ - $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/services/mesh.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h \ + $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \ + $(srcdir)/dnstap/dnstap.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h authzone.lo authzone.o: $(srcdir)/services/authzone.c config.h $(srcdir)/services/authzone.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h $(srcdir)/validator/val_nsec3.h \ - $(srcdir)/validator/val_secalgo.h + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/random.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/services/outside_network.h \ + $(srcdir)/services/listen_dnsport.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/keyraw.h \ + $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_secalgo.h fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h \ - $(srcdir)/services/authzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \ - $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \ - $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h \ - $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/config_file.h $(srcdir)/respip/respip.h \ - $(PYTHONMOD_HEADER) $(srcdir)/cachedb/cachedb.h $(srcdir)/ipsecmod/ipsecmod.h \ - $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/util/net_help.h $(srcdir)/edns-subnet/addrtree.h \ - $(srcdir)/edns-subnet/edns-subnet.h -locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h -log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h -mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/services/view.h $(srcdir)/services/authzone.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/validator/autotrust.h $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h \ + $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/util/config_file.h $(srcdir)/respip/respip.h $(PYTHONMOD_HEADER) \ + $(srcdir)/cachedb/cachedb.h $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/edns-subnet/subnetmod.h \ + $(srcdir)/util/net_help.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h +locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/checklocks.h +log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/sldns/sbuffer.h +mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ $(srcdir)/services/modstack.h module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/ub_event.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/ub_event.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h \ + \ net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/sldns/wire2str.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \ random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h regional.lo regional.o: $(srcdir)/util/regional.c config.h $(srcdir)/util/log.h $(srcdir)/util/regional.h rtt.lo rtt.o: $(srcdir)/util/rtt.c config.h $(srcdir)/util/rtt.h dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/util/net_help.h + $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/net_help.h lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/modstack.h slabhash.lo slabhash.o: $(srcdir)/util/storage/slabhash.c config.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h timehist.lo timehist.o: $(srcdir)/util/timehist.c config.h $(srcdir)/util/timehist.h $(srcdir)/util/log.h tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/mesh.h \ - $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/ub_event.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/ub_event.h ub_event.lo ub_event.o: $(srcdir)/util/ub_event.c config.h $(srcdir)/util/ub_event.h $(srcdir)/util/log.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/tube.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/tube.h \ + $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h ub_event_pluggable.lo ub_event_pluggable.o: $(srcdir)/util/ub_event_pluggable.c config.h $(srcdir)/util/ub_event.h \ $(srcdir)/libunbound/unbound-event.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \ + $(srcdir)/util/rbtree.h winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h $(srcdir)/validator/autotrust.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_utils.h \ - $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/keyraw.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/sldns/pkthdr.h $(srcdir)/validator/val_sigcrypt.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/validator/val_kcache.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/keyraw.h \ val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h $(srcdir)/validator/val_anchor.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_sigcrypt.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/autotrust.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/as112.h \ - $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/validator/autotrust.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/as112.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/sldns/str2wire.h validator.lo validator.o: $(srcdir)/validator/validator.c config.h $(srcdir)/validator/validator.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h \ $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/validator/val_kcache.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_nsec.h \ $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_neg.h $(srcdir)/validator/val_sigcrypt.h \ @@ -942,59 +967,64 @@ validator.lo validator.o: $(srcdir)/validator/validato $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h + $(srcdir)/testcode/checklocks.h $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h \ + $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h \ - $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \ - $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/rbtree.h $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/sbuffer.h val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h $(srcdir)/validator/val_nsec3.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/validator/val_nsec.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/validator/val_secalgo.h \ + $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/validator/val_nsec.h \ + $(srcdir)/sldns/sbuffer.h val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c config.h $(srcdir)/validator/val_nsec.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/validator/val_utils.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h + $(srcdir)/testcode/checklocks.h $(srcdir)/validator/val_utils.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h val_secalgo.lo val_secalgo.o: $(srcdir)/validator/val_secalgo.c config.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h \ - $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ $(srcdir)/sldns/sbuffer.h \ val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \ $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h \ - $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/validator.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/keyraw.h \ $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \ val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h \ - $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/sldns/parseutil.h + $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/validator/validator.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/util/rbtree.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/parseutil.h dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(srcdir)/dns64/dns64.h $(srcdir)/util/module.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ @@ -1003,37 +1033,38 @@ edns-subnet.lo edns-subnet.o: $(srcdir)/edns-subnet/ed $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h subnetmod.lo subnetmod.o: $(srcdir)/edns-subnet/subnetmod.c config.h $(srcdir)/edns-subnet/subnetmod.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/addrtree.h \ - $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/edns-subnet/subnet-whitelist.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/services/modstack.h $(srcdir)/services/cache/dns.h $(srcdir)/util/regional.h \ - $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/addrtree.h $(srcdir)/edns-subnet/edns-subnet.h \ + $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/services/modstack.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h addrtree.lo addrtree.o: $(srcdir)/edns-subnet/addrtree.c config.h $(srcdir)/util/log.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/edns-subnet/addrtree.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/edns-subnet/addrtree.h subnet-whitelist.lo subnet-whitelist.o: $(srcdir)/edns-subnet/subnet-whitelist.c config.h \ $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/testcode/checklocks.h cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h $(srcdir)/cachedb/cachedb.h $(srcdir)/util/module.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/services/cache/dns.h $(srcdir)/validator/val_neg.h \ - $(srcdir)/util/rbtree.h $(srcdir)/validator/val_secalgo.h $(srcdir)/iterator/iter_utils.h \ - $(srcdir)/iterator/iter_resptype.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h \ - $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/data/msgencode.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h $(srcdir)/validator/val_secalgo.h \ + $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/sldns/parseutil.h \ + $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h respip.lo respip.o: $(srcdir)/respip/respip.c config.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/module.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h \ - $(srcdir)/services/cache/dns.h $(srcdir)/sldns/str2wire.h $(srcdir)/util/config_file.h \ - $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/services/view.h $(srcdir)/services/cache/dns.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ $(srcdir)/services/modstack.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/respip/respip.h checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -1041,59 +1072,66 @@ checklocks.lo checklocks.o: $(srcdir)/testcode/checklo dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \ $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/storage/lookup3.h + $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/storage/slabhash.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/lookup3.h ipsecmod.lo ipsecmod.o: $(srcdir)/ipsecmod/ipsecmod.c config.h $(srcdir)/ipsecmod/ipsecmod.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h $(srcdir)/ipsecmod/ipsecmod-whitelist.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \ - $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ - $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/regional.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/services/cache/dns.h $(srcdir)/sldns/wire2str.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h \ + $(srcdir)/ipsecmod/ipsecmod-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/fptr_wlist.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ + $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/sldns/wire2str.h ipsecmod-whitelist.lo ipsecmod-whitelist.o: $(srcdir)/ipsecmod/ipsecmod-whitelist.c config.h \ $(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h \ - $(srcdir)/ipsecmod/ipsecmod-whitelist.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/regional.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/sldns/str2wire.h + $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/util/rbtree.h $(srcdir)/ipsecmod/ipsecmod-whitelist.h \ + $(srcdir)/util/storage/dnstree.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/data/dname.h $(srcdir)/sldns/str2wire.h unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/unitmain.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/sbuffer.h \ + $(srcdir)/sldns/rrdef.h unitdname.lo unitdname.o: $(srcdir)/testcode/unitdname.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ - $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/sldns/sbuffer.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h + $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \ - $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h + $(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/storage/slabhash.h unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/keyraw.h \ - $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/random.h $(srcdir)/respip/respip.h $(srcdir)/util/module.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h + $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/services/cache/infra.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/random.h $(srcdir)/respip/respip.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h $(srcdir)/util/log.h \ $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/alloc.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/testcode/readhex.h \ - $(srcdir)/testcode/testpkts.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h + $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ + $(srcdir)/testcode/readhex.h $(srcdir)/testcode/testpkts.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/wire2str.h unitneg.lo unitneg.o: $(srcdir)/testcode/unitneg.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/data/dname.h $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h \ - $(srcdir)/sldns/rrdef.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/dname.h $(srcdir)/testcode/unitmain.h \ + $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h $(srcdir)/sldns/rrdef.h unitregional.lo unitregional.o: $(srcdir)/testcode/unitregional.c config.h $(srcdir)/testcode/unitmain.h \ $(srcdir)/util/log.h $(srcdir)/util/regional.h unitslabhash.lo unitslabhash.o: $(srcdir)/testcode/unitslabhash.c config.h $(srcdir)/testcode/unitmain.h \ - $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h + $(srcdir)/util/log.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ + $(srcdir)/testcode/checklocks.h unitverify.lo unitverify.o: $(srcdir)/testcode/unitverify.c config.h $(srcdir)/util/log.h \ $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/validator/val_secalgo.h \ - $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h \ - $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/validator/val_secalgo.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h \ + $(srcdir)/util/rbtree.h $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/rrdef.h $(srcdir)/validator/val_utils.h \ $(srcdir)/testcode/testpkts.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h \ $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/keyraw.h \ $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h @@ -1105,84 +1143,89 @@ testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c unitldns.lo unitldns.o: $(srcdir)/testcode/unitldns.c config.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h unitecs.lo unitecs.o: $(srcdir)/testcode/unitecs.c config.h $(srcdir)/util/log.h $(srcdir)/util/module.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/edns-subnet/addrtree.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/testcode/unitmain.h $(srcdir)/edns-subnet/addrtree.h \ $(srcdir)/edns-subnet/subnetmod.h $(srcdir)/services/outbound_list.h $(srcdir)/util/alloc.h \ $(srcdir)/util/net_help.h $(srcdir)/util/storage/slabhash.h $(srcdir)/edns-subnet/edns-subnet.h unitauth.lo unitauth.o: $(srcdir)/testcode/unitauth.c config.h $(srcdir)/services/authzone.h \ - $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h \ - $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/services/mesh.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgparse.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \ + $(srcdir)/testcode/unitmain.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \ $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h $(srcdir)/util/locks.h \ - $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ - $(srcdir)/services/localzone.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h + $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h $(srcdir)/util/module.h \ + $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/sldns/str2wire.h cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \ $(srcdir)/daemon/cachedump.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ - $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h \ - $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \ - $(srcdir)/dnstap/dnstap.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/util/regional.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/netevent.h \ + $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h \ + $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ + $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \ + $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \ + $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h \ + $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h \ $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h \ $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/worker.h \ - $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h \ - $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ - $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h \ - $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \ + $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ + $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \ + $(srcdir)/sldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \ + $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h $(srcdir)/dnscrypt/cert.h $(srcdir)/util/data/msgreply.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \ + $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ $(srcdir)/util/config_file.h $(srcdir)/util/shm_side/shm_main.h $(srcdir)/util/storage/lookup3.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \ - $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h $(srcdir)/respip/respip.h + $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h $(srcdir)/util/random.h $(srcdir)/util/tube.h \ + $(srcdir)/util/net_help.h $(srcdir)/sldns/keyraw.h $(srcdir)/respip/respip.h remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \ $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h \ - $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h $(srcdir)/services/view.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \ - $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \ - $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/iterator/iter_delegpt.h \ - $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/sldns/wire2str.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \ + $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ + $(srcdir)/services/view.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h \ + $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h \ + $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h \ + $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \ - $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/iterator/iterator.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \ - $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rtt.h \ - $(srcdir)/validator/val_kcache.h + $(srcdir)/testcode/checklocks.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ + $(srcdir)/services/outside_network.h $(srcdir)/services/listen_dnsport.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ + $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ - $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/remote.h \ + $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ + $(srcdir)/daemon/remote.h \ $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h \ @@ -1193,25 +1236,27 @@ unbound.lo unbound.o: $(srcdir)/daemon/unbound.c confi worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ - $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \ - $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \ - $(srcdir)/daemon/remote.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h \ + $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h \ + $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \ + $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \ $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/services/view.h \ $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \ $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \ - $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ - $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ - $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/validator/autotrust.h \ - $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h $(srcdir)/libunbound/context.h \ - $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h $(srcdir)/util/shm_side/shm_main.h + $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/authzone.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/localzone.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ + $(srcdir)/validator/autotrust.h $(srcdir)/validator/val_anchor.h $(srcdir)/respip/respip.h \ + $(srcdir)/libunbound/context.h $(srcdir)/libunbound/libworker.h $(srcdir)/sldns/wire2str.h \ + $(srcdir)/util/shm_side/shm_main.h testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/testpkts.h \ $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ - $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/daemon/remote.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h \ + $(srcdir)/daemon/remote.h \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 15:20:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE3CBFE0C27; Sat, 12 May 2018 15:20:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9881782CE1; Sat, 12 May 2018 15:20:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 79A15200A7; Sat, 12 May 2018 15:20:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CFKf5H022405; Sat, 12 May 2018 15:20:41 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CFKdDU022394; Sat, 12 May 2018 15:20:39 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121520.w4CFKdDU022394@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 15:20:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333568 - in head/contrib/unbound: . cachedb contrib daemon doc iterator libunbound services services/cache sldns smallapp util util/data validator X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head/contrib/unbound: . cachedb contrib daemon doc iterator libunbound services services/cache sldns smallapp util util/data validator X-SVN-Commit-Revision: 333568 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 15:20:42 -0000 Author: des Date: Sat May 12 15:20:39 2018 New Revision: 333568 URL: https://svnweb.freebsd.org/changeset/base/333568 Log: Upgrade Unbound to 1.7.1. Added: head/contrib/unbound/cachedb/redis.c - copied unchanged from r333549, vendor/unbound/dist/cachedb/redis.c head/contrib/unbound/cachedb/redis.h - copied unchanged from r333549, vendor/unbound/dist/cachedb/redis.h head/contrib/unbound/contrib/unbound-querycachedb.py - copied unchanged from r333549, vendor/unbound/dist/contrib/unbound-querycachedb.py Modified: head/contrib/unbound/Makefile.in head/contrib/unbound/cachedb/cachedb.c head/contrib/unbound/cachedb/cachedb.h head/contrib/unbound/config.h head/contrib/unbound/config.h.in head/contrib/unbound/configure head/contrib/unbound/configure.ac head/contrib/unbound/contrib/README head/contrib/unbound/contrib/fastrpz.patch head/contrib/unbound/daemon/daemon.c head/contrib/unbound/daemon/remote.c head/contrib/unbound/daemon/stats.c head/contrib/unbound/daemon/worker.c head/contrib/unbound/doc/Changelog head/contrib/unbound/doc/README head/contrib/unbound/doc/example.conf head/contrib/unbound/doc/example.conf.in head/contrib/unbound/doc/libunbound.3 head/contrib/unbound/doc/libunbound.3.in head/contrib/unbound/doc/unbound-anchor.8 head/contrib/unbound/doc/unbound-anchor.8.in head/contrib/unbound/doc/unbound-checkconf.8 head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/doc/unbound-control.8 head/contrib/unbound/doc/unbound-control.8.in head/contrib/unbound/doc/unbound-host.1 head/contrib/unbound/doc/unbound-host.1.in head/contrib/unbound/doc/unbound.8 head/contrib/unbound/doc/unbound.8.in head/contrib/unbound/doc/unbound.conf.5 head/contrib/unbound/doc/unbound.conf.5.in head/contrib/unbound/iterator/iter_delegpt.c head/contrib/unbound/iterator/iter_delegpt.h head/contrib/unbound/iterator/iter_fwd.c head/contrib/unbound/iterator/iter_hints.c head/contrib/unbound/iterator/iter_utils.c head/contrib/unbound/iterator/iter_utils.h head/contrib/unbound/iterator/iterator.c head/contrib/unbound/libunbound/libworker.c head/contrib/unbound/libunbound/libworker.h head/contrib/unbound/libunbound/unbound.h head/contrib/unbound/libunbound/worker.h head/contrib/unbound/services/authzone.c head/contrib/unbound/services/authzone.h head/contrib/unbound/services/cache/dns.c head/contrib/unbound/services/cache/rrset.c head/contrib/unbound/services/listen_dnsport.c head/contrib/unbound/services/mesh.c head/contrib/unbound/services/outside_network.c head/contrib/unbound/services/outside_network.h head/contrib/unbound/sldns/keyraw.c head/contrib/unbound/sldns/keyraw.h head/contrib/unbound/sldns/str2wire.c head/contrib/unbound/smallapp/unbound-control.c head/contrib/unbound/smallapp/worker_cb.c head/contrib/unbound/util/config_file.c head/contrib/unbound/util/config_file.h head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.y head/contrib/unbound/util/data/dname.c head/contrib/unbound/util/data/dname.h head/contrib/unbound/util/data/msgparse.c head/contrib/unbound/util/data/msgreply.c head/contrib/unbound/util/data/packed_rrset.c head/contrib/unbound/util/data/packed_rrset.h head/contrib/unbound/util/fptr_wlist.c head/contrib/unbound/util/fptr_wlist.h head/contrib/unbound/util/iana_ports.inc head/contrib/unbound/util/module.h head/contrib/unbound/util/net_help.c head/contrib/unbound/util/net_help.h head/contrib/unbound/util/netevent.c head/contrib/unbound/util/tube.c head/contrib/unbound/util/ub_event.c head/contrib/unbound/validator/val_anchor.c head/contrib/unbound/validator/val_anchor.h head/contrib/unbound/validator/val_neg.c head/contrib/unbound/validator/val_neg.h head/contrib/unbound/validator/val_secalgo.c head/contrib/unbound/validator/validator.c head/contrib/unbound/validator/validator.h Directory Properties: head/contrib/unbound/ (props changed) Modified: head/contrib/unbound/Makefile.in ============================================================================== --- head/contrib/unbound/Makefile.in Sat May 12 15:04:05 2018 (r333567) +++ head/contrib/unbound/Makefile.in Sat May 12 15:20:39 2018 (r333568) @@ -112,7 +112,7 @@ iterator/iter_scrub.c iterator/iter_utils.c services/l services/localzone.c services/mesh.c services/modstack.c services/view.c \ services/outbound_list.c services/outside_network.c util/alloc.c \ util/config_file.c util/configlexer.c util/configparser.c \ -util/shm_side/shm_main.c services/authzone.c\ +util/shm_side/shm_main.c services/authzone.c \ util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \ util/netevent.c util/net_help.c util/random.c util/rbtree.c util/regional.c \ util/rtt.c util/storage/dnstree.c util/storage/lookup3.c \ @@ -124,7 +124,7 @@ validator/val_nsec3.c validator/val_nsec.c validator/v validator/val_sigcrypt.c validator/val_utils.c dns64/dns64.c \ edns-subnet/edns-subnet.c edns-subnet/subnetmod.c \ edns-subnet/addrtree.c edns-subnet/subnet-whitelist.c \ -cachedb/cachedb.c respip/respip.c $(CHECKLOCK_SRC) \ +cachedb/cachedb.c cachedb/redis.c respip/respip.c $(CHECKLOCK_SRC) \ $(DNSTAP_SRC) $(DNSCRYPT_SRC) $(IPSECMOD_SRC) COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \ as112.lo msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \ @@ -135,7 +135,7 @@ fptr_wlist.lo locks.lo log.lo mini_event.lo module.lo random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \ slabhash.lo timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo \ validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \ -val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo cachedb.lo authzone.lo\ +val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo cachedb.lo redis.lo authzone.lo \ $(SUBNET_OBJ) $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) $(DNSCRYPT_OBJ) \ $(IPSECMOD_OBJ) respip.lo COMMON_OBJ_WITHOUT_UB_EVENT=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \ @@ -645,7 +645,8 @@ infra.lo infra.o: $(srcdir)/services/cache/infra.c con rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/sldns/rrdef.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h + $(srcdir)/util/config_file.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/net_help.h as112.lo as112.o: $(srcdir)/util/as112.c $(srcdir)/util/as112.h dname.lo dname.o: $(srcdir)/util/data/dname.c config.h $(srcdir)/util/data/dname.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ @@ -882,7 +883,7 @@ netevent.lo netevent.o: $(srcdir)/util/netevent.c conf $(srcdir)/util/storage/lruhash.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h \ $(srcdir)/sldns/rrdef.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \ - $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/dnstap/dnstap.h \ + $(srcdir)/services/modstack.h $(srcdir)/sldns/sbuffer.h $(srcdir)/sldns/str2wire.h $(srcdir)/dnstap/dnstap.h \ \ net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \ @@ -960,11 +961,11 @@ validator.lo validator.o: $(srcdir)/validator/validato $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/validator/val_kcache.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_nsec.h \ $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_neg.h $(srcdir)/validator/val_sigcrypt.h \ - $(srcdir)/validator/autotrust.h $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h \ - $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h \ - $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ - $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h + $(srcdir)/validator/autotrust.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \ + $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \ + $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ + $(srcdir)/dnscrypt/cert.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \ + $(srcdir)/services/modstack.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/str2wire.h val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ $(srcdir)/testcode/checklocks.h $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h \ @@ -1054,11 +1055,16 @@ subnet-whitelist.lo subnet-whitelist.o: $(srcdir)/edns cachedb.lo cachedb.o: $(srcdir)/cachedb/cachedb.c config.h $(srcdir)/cachedb/cachedb.h $(srcdir)/util/module.h \ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h \ $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \ - $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \ - $(srcdir)/util/config_file.h $(srcdir)/util/data/msgencode.h $(srcdir)/services/cache/dns.h \ - $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h $(srcdir)/validator/val_secalgo.h \ - $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/sldns/parseutil.h \ - $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h + $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/cachedb/redis.h $(srcdir)/util/regional.h \ + $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/data/msgencode.h \ + $(srcdir)/services/cache/dns.h $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h \ + $(srcdir)/validator/val_secalgo.h $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h \ + $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h $(srcdir)/sldns/sbuffer.h +redis.lo redis.o: $(srcdir)/cachedb/redis.c config.h $(srcdir)/cachedb/redis.h $(srcdir)/cachedb/cachedb.h \ + $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ + $(srcdir)/testcode/checklocks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \ + $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/util/alloc.h \ + $(srcdir)/util/config_file.h $(srcdir)/sldns/sbuffer.h respip.lo respip.o: $(srcdir)/respip/respip.c config.h $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h \ $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h \ @@ -1204,12 +1210,12 @@ remote.lo remote.o: $(srcdir)/daemon/remote.c config.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ $(srcdir)/util/rbtree.h $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \ - $(srcdir)/services/view.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h \ - $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h \ - $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h \ - $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \ - $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h $(srcdir)/sldns/str2wire.h \ - $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h + $(srcdir)/services/view.h $(srcdir)/services/authzone.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \ + $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ + $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_anchor.h \ + $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \ + $(srcdir)/iterator/iter_hints.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/services/outside_network.h \ + $(srcdir)/sldns/str2wire.h $(srcdir)/sldns/parseutil.h $(srcdir)/sldns/wire2str.h stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h \ $(srcdir)/libunbound/unbound.h $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/sldns/sbuffer.h \ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \ @@ -1222,7 +1228,8 @@ stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $( $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/util/rtt.h $(srcdir)/services/authzone.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/validator/val_neg.h unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \ $(srcdir)/util/locks.h $(srcdir)/testcode/checklocks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \ $(srcdir)/daemon/remote.h \ @@ -1319,7 +1326,8 @@ stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $( $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h \ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/dnstree.h \ - $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h + $(srcdir)/util/rtt.h $(srcdir)/services/authzone.h $(srcdir)/validator/val_kcache.h \ + $(srcdir)/validator/val_neg.h replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \ $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/dnscrypt/dnscrypt.h \ $(srcdir)/dnscrypt/cert.h $(srcdir)/util/locks.h \ Modified: head/contrib/unbound/cachedb/cachedb.c ============================================================================== --- head/contrib/unbound/cachedb/cachedb.c Sat May 12 15:04:05 2018 (r333567) +++ head/contrib/unbound/cachedb/cachedb.c Sat May 12 15:20:39 2018 (r333568) @@ -43,6 +43,7 @@ #include "config.h" #ifdef USE_CACHEDB #include "cachedb/cachedb.h" +#include "cachedb/redis.h" #include "util/regional.h" #include "util/net_help.h" #include "util/config_file.h" @@ -56,7 +57,20 @@ #include "sldns/wire2str.h" #include "sldns/sbuffer.h" -#define CACHEDB_HASHSIZE 256 /* bit hash */ +/* header file for htobe64 */ +#ifdef HAVE_ENDIAN_H +# include +#endif +#ifdef HAVE_SYS_ENDIAN_H +# include +#endif +#ifdef HAVE_LIBKERN_OSBYTEORDER_H +/* In practice this is specific to MacOS X. We assume it doesn't have +* htobe64/be64toh but has alternatives with a different name. */ +# include +# define htobe64(x) OSSwapHostToBigInt64(x) +# define be64toh(x) OSSwapBigToHostInt64(x) +#endif /** the unit test testframe for cachedb, its module state contains * a cache for a couple queries (in memory). */ @@ -176,6 +190,10 @@ static struct cachedb_backend testframe_backend = { "t static struct cachedb_backend* cachedb_find_backend(const char* str) { +#ifdef USE_REDIS + if(strcmp(str, redis_backend.name) == 0) + return &redis_backend; +#endif if(strcmp(str, testframe_backend.name) == 0) return &testframe_backend; /* TODO add more backends here */ @@ -571,7 +589,8 @@ cachedb_intcache_lookup(struct module_qstate* qstate) qstate->region, qstate->env->scratch, 1 /* no partial messages with only a CNAME */ ); - if(!msg && qstate->env->neg_cache) { + if(!msg && qstate->env->neg_cache && + iter_qname_indicates_dnssec(qstate->env, &qstate->qinfo)) { /* lookup in negative cache; may result in * NOERROR/NODATA or NXDOMAIN answers that need validation */ msg = val_neg_getmsg(qstate->env->neg_cache, &qstate->qinfo, Modified: head/contrib/unbound/cachedb/cachedb.h ============================================================================== --- head/contrib/unbound/cachedb/cachedb.h Sat May 12 15:04:05 2018 (r333567) +++ head/contrib/unbound/cachedb/cachedb.h Sat May 12 15:20:39 2018 (r333568) @@ -87,6 +87,8 @@ struct cachedb_backend { uint8_t*, size_t); }; +#define CACHEDB_HASHSIZE 256 /* bit hash */ + /** Init the cachedb module */ int cachedb_init(struct module_env* env, int id); /** Deinit the cachedb module */ Copied: head/contrib/unbound/cachedb/redis.c (from r333549, vendor/unbound/dist/cachedb/redis.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/cachedb/redis.c Sat May 12 15:20:39 2018 (r333568, copy of r333549, vendor/unbound/dist/cachedb/redis.c) @@ -0,0 +1,283 @@ +/* + * cachedb/redis.c - cachedb redis module + * + * Copyright (c) 2018, NLnet Labs. All rights reserved. + * + * This software is open source. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 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. + * + * Neither the name of the NLNET LABS nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT + * HOLDER 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. + */ + +/** + * \file + * + * This file contains a module that uses the redis database to cache + * dns responses. + */ + +#include "config.h" +#ifdef USE_CACHEDB +#include "cachedb/redis.h" +#include "cachedb/cachedb.h" +#include "util/alloc.h" +#include "util/config_file.h" +#include "sldns/sbuffer.h" + +#ifdef USE_REDIS +#include "hiredis/hiredis.h" + +struct redis_moddata { + redisContext** ctxs; /* thread-specific redis contexts */ + int numctxs; /* number of ctx entries */ + const char* server_host; /* server's IP address or host name */ + int server_port; /* server's TCP port */ + struct timeval timeout; /* timeout for connection setup and commands */ +}; + +static redisContext* +redis_connect(const struct redis_moddata* moddata) +{ + redisContext* ctx; + + ctx = redisConnectWithTimeout(moddata->server_host, + moddata->server_port, moddata->timeout); + if(!ctx || ctx->err) { + const char *errstr = "out of memory"; + if(ctx) + errstr = ctx->errstr; + log_err("failed to connect to redis server: %s", errstr); + goto fail; + } + if(redisSetTimeout(ctx, moddata->timeout) != REDIS_OK) { + log_err("failed to set redis timeout"); + goto fail; + } + return ctx; + + fail: + if(ctx) + redisFree(ctx); + return NULL; +} + +static int +redis_init(struct module_env* env, struct cachedb_env* cachedb_env) +{ + int i; + struct redis_moddata* moddata = NULL; + + verbose(VERB_ALGO, "redis_init"); + + moddata = calloc(1, sizeof(struct redis_moddata)); + if(!moddata) { + log_err("out of memory"); + return 0; + } + moddata->numctxs = env->cfg->num_threads; + moddata->ctxs = calloc(env->cfg->num_threads, sizeof(redisContext*)); + if(!moddata->ctxs) { + log_err("out of memory"); + free(moddata); + return 0; + } + /* note: server_host is a shallow reference to configured string. + * we don't have to free it in this module. */ + moddata->server_host = env->cfg->redis_server_host; + moddata->server_port = env->cfg->redis_server_port; + moddata->timeout.tv_sec = env->cfg->redis_timeout / 1000; + moddata->timeout.tv_usec = (env->cfg->redis_timeout % 1000) * 1000; + for(i = 0; i < moddata->numctxs; i++) + moddata->ctxs[i] = redis_connect(moddata); + cachedb_env->backend_data = moddata; + return 1; +} + +static void +redis_deinit(struct module_env* env, struct cachedb_env* cachedb_env) +{ + struct redis_moddata* moddata = (struct redis_moddata*) + cachedb_env->backend_data; + (void)env; + + verbose(VERB_ALGO, "redis_deinit"); + + if(!moddata) + return; + if(moddata->ctxs) { + int i; + for(i = 0; i < moddata->numctxs; i++) { + if(moddata->ctxs[i]) + redisFree(moddata->ctxs[i]); + } + free(moddata->ctxs); + } + free(moddata); +} + +/* + * Send a redis command and get a reply. Unified so that it can be used for + * both SET and GET. If 'data' is non-NULL the command is supposed to be + * SET and GET otherwise, but the implementation of this function is agnostic + * about the semantics (except for logging): 'command', 'data', and 'data_len' + * are opaquely passed to redisCommand(). + * This function first checks whether a connection with a redis server has + * been established; if not it tries to set up a new one. + * It returns redisReply returned from redisCommand() or NULL if some low + * level error happens. The caller is responsible to check the return value, + * if it's non-NULL, it has to free it with freeReplyObject(). + */ +static redisReply* +redis_command(struct module_env* env, struct cachedb_env* cachedb_env, + const char* command, const uint8_t* data, size_t data_len) +{ + redisContext* ctx; + redisReply* rep; + struct redis_moddata* d = (struct redis_moddata*) + cachedb_env->backend_data; + + /* We assume env->alloc->thread_num is a unique ID for each thread + * in [0, num-of-threads). We could treat it as an error condition + * if the assumption didn't hold, but it seems to be a fundamental + * assumption throughout the unbound architecture, so we simply assert + * it. */ + log_assert(env->alloc->thread_num < d->numctxs); + ctx = d->ctxs[env->alloc->thread_num]; + + /* If we've not established a connection to the server or we've closed + * it on a failure, try to re-establish a new one. Failures will be + * logged in redis_connect(). */ + if(!ctx) { + ctx = redis_connect(d); + d->ctxs[env->alloc->thread_num] = ctx; + } + if(!ctx) + return NULL; + + /* Send the command and get a reply, synchronously. */ + rep = (redisReply*)redisCommand(ctx, command, data, data_len); + if(!rep) { + /* Once an error as a NULL-reply is returned the context cannot + * be reused and we'll need to set up a new connection. */ + log_err("redis_command: failed to receive a reply, " + "closing connection: %s", ctx->errstr); + redisFree(ctx); + d->ctxs[env->alloc->thread_num] = NULL; + return NULL; + } + + /* Check error in reply to unify logging in that case. + * The caller may perform context-dependent checks and logging. */ + if(rep->type == REDIS_REPLY_ERROR) + log_err("redis: %s resulted in an error: %s", + data ? "set" : "get", rep->str); + + return rep; +} + +static int +redis_lookup(struct module_env* env, struct cachedb_env* cachedb_env, + char* key, struct sldns_buffer* result_buffer) +{ + redisReply* rep; + char cmdbuf[4+(CACHEDB_HASHSIZE/8)*2+1]; /* "GET " + key */ + int n; + int ret = 0; + + verbose(VERB_ALGO, "redis_lookup of %s", key); + + n = snprintf(cmdbuf, sizeof(cmdbuf), "GET %s", key); + if(n < 0 || n >= (int)sizeof(cmdbuf)) { + log_err("redis_lookup: unexpected failure to build command"); + return 0; + } + + rep = redis_command(env, cachedb_env, cmdbuf, NULL, 0); + if(!rep) + return 0; + switch (rep->type) { + case REDIS_REPLY_NIL: + verbose(VERB_ALGO, "redis_lookup: no data cached"); + break; + case REDIS_REPLY_STRING: + verbose(VERB_ALGO, "redis_lookup found %d bytes", + (int)rep->len); + if((size_t)rep->len > sldns_buffer_capacity(result_buffer)) { + log_err("redis_lookup: replied data too long: %lu", + (size_t)rep->len); + break; + } + sldns_buffer_clear(result_buffer); + sldns_buffer_write(result_buffer, rep->str, rep->len); + sldns_buffer_flip(result_buffer); + ret = 1; + break; + case REDIS_REPLY_ERROR: + break; /* already logged */ + default: + log_err("redis_lookup: unexpected type of reply for (%d)", + rep->type); + break; + } + freeReplyObject(rep); + return ret; +} + +static void +redis_store(struct module_env* env, struct cachedb_env* cachedb_env, + char* key, uint8_t* data, size_t data_len) +{ + redisReply* rep; + char cmdbuf[4+(CACHEDB_HASHSIZE/8)*2+3+1]; /* "SET " + key + " %b" */ + int n; + + verbose(VERB_ALGO, "redis_store %s (%d bytes)", key, (int)data_len); + + /* build command to set to a binary safe string */ + n = snprintf(cmdbuf, sizeof(cmdbuf), "SET %s %%b", key); + if(n < 0 || n >= (int)sizeof(cmdbuf)) { + log_err("redis_store: unexpected failure to build command"); + return; + } + + rep = redis_command(env, cachedb_env, cmdbuf, data, data_len); + if(rep) { + verbose(VERB_ALGO, "redis_store set completed"); + if(rep->type != REDIS_REPLY_STATUS && + rep->type != REDIS_REPLY_ERROR) { + log_err("redis_store: unexpected type of reply (%d)", + rep->type); + } + freeReplyObject(rep); + } +} + +struct cachedb_backend redis_backend = { "redis", + redis_init, redis_deinit, redis_lookup, redis_store +}; +#endif /* USE_REDIS */ +#endif /* USE_CACHEDB */ Copied: head/contrib/unbound/cachedb/redis.h (from r333549, vendor/unbound/dist/cachedb/redis.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/unbound/cachedb/redis.h Sat May 12 15:20:39 2018 (r333568, copy of r333549, vendor/unbound/dist/cachedb/redis.h) @@ -0,0 +1,45 @@ +/* + * cachedb/redis.h - cachedb redis module + * + * Copyright (c) 2018, NLnet Labs. All rights reserved. + * + * This software is open source. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 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. + * + * Neither the name of the NLNET LABS nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT + * HOLDER 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. + */ + +/** + * \file + * + * This file contains a module that uses the redis database to cache + * dns responses. + */ + +/** the redis backend definition, contains callable functions + * and name string */ +extern struct cachedb_backend redis_backend; Modified: head/contrib/unbound/config.h ============================================================================== --- head/contrib/unbound/config.h Sat May 12 15:04:05 2018 (r333567) +++ head/contrib/unbound/config.h Sat May 12 15:20:39 2018 (r333568) @@ -84,6 +84,10 @@ don't. */ #define HAVE_DECL_NID_ED25519 0 +/* Define to 1 if you have the declaration of `NID_ED448', and to 0 if you + don't. */ +#define HAVE_DECL_NID_ED448 0 + /* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you don't. */ #define HAVE_DECL_NID_SECP384R1 1 @@ -96,6 +100,10 @@ don't. */ /* #undef HAVE_DECL_REALLOCARRAY */ +/* Define to 1 if you have the declaration of `redisConnect', and to 0 if you + don't. */ +/* #undef HAVE_DECL_REDISCONNECT */ + /* Define to 1 if you have the declaration of `sk_SSL_COMP_pop_free', and to 0 if you don't. */ #define HAVE_DECL_SK_SSL_COMP_POP_FREE 1 @@ -234,6 +242,9 @@ /* Define to 1 if you have the header file. */ #define HAVE_GRP_H 1 +/* Define to 1 if you have the header file. */ +/* #undef HAVE_HIREDIS_HIREDIS_H */ + /* If you have HMAC_Update */ #define HAVE_HMAC_UPDATE 1 @@ -264,6 +275,9 @@ /* Define to 1 if you have the `kill' function. */ #define HAVE_KILL 1 +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBKERN_OSBYTEORDER_H */ + /* Define if we have LibreSSL */ /* #undef HAVE_LIBRESSL */ @@ -480,6 +494,9 @@ /* Define to 1 if systemd should be used */ /* #undef HAVE_SYSTEMD */ +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_ENDIAN_H 1 + /* Define to 1 if you have the header file. */ #define HAVE_SYS_IPC_H 1 @@ -611,7 +628,7 @@ #define PACKAGE_NAME "unbound" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "unbound 1.7.0" +#define PACKAGE_STRING "unbound 1.7.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "unbound" @@ -620,7 +637,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.7.0" +#define PACKAGE_VERSION "1.7.1" /* default pidfile location */ #define PIDFILE "/var/unbound/unbound.pid" @@ -639,7 +656,7 @@ #define ROOT_CERT_FILE "/var/unbound/icannbundle.pem" /* version number for resource files */ -#define RSRC_PACKAGE_VERSION 1,7,0,0 +#define RSRC_PACKAGE_VERSION 1,7,1,0 /* Directory to chdir to */ #define RUN_DIR "/var/unbound" @@ -704,6 +721,9 @@ /* Define this to enable ED25519 support. */ /* #undef USE_ED25519 */ +/* Define this to enable ED448 support. */ +/* #undef USE_ED448 */ + /* Define this to enable GOST support. */ #define USE_GOST 1 @@ -719,6 +739,9 @@ /* Define this to enable client TCP Fast Open. */ /* #undef USE_OSX_MSG_FASTOPEN */ +/* Define this to use hiredis client. */ +/* #undef USE_REDIS */ + /* Define this to enable SHA1 support. */ #define USE_SHA1 1 @@ -1223,6 +1246,8 @@ void *unbound_stat_realloc_log(void *ptr, size_t size, /** default port for DNS traffic. */ #define UNBOUND_DNS_PORT 53 +/** default port for DNS over TLS traffic. */ +#define UNBOUND_DNS_OVER_TLS_PORT 853 /** default port for unbound control traffic, registered port with IANA, ub-dns-control 8953/tcp unbound dns nameserver control */ #define UNBOUND_CONTROL_PORT 8953 Modified: head/contrib/unbound/config.h.in ============================================================================== --- head/contrib/unbound/config.h.in Sat May 12 15:04:05 2018 (r333567) +++ head/contrib/unbound/config.h.in Sat May 12 15:20:39 2018 (r333568) @@ -83,6 +83,10 @@ don't. */ #undef HAVE_DECL_NID_ED25519 +/* Define to 1 if you have the declaration of `NID_ED448', and to 0 if you + don't. */ +#undef HAVE_DECL_NID_ED448 + /* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you don't. */ #undef HAVE_DECL_NID_SECP384R1 @@ -95,6 +99,10 @@ don't. */ #undef HAVE_DECL_REALLOCARRAY +/* Define to 1 if you have the declaration of `redisConnect', and to 0 if you + don't. */ +#undef HAVE_DECL_REDISCONNECT + /* Define to 1 if you have the declaration of `sk_SSL_COMP_pop_free', and to 0 if you don't. */ #undef HAVE_DECL_SK_SSL_COMP_POP_FREE @@ -233,6 +241,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_GRP_H +/* Define to 1 if you have the header file. */ +#undef HAVE_HIREDIS_HIREDIS_H + /* If you have HMAC_Update */ #undef HAVE_HMAC_UPDATE @@ -263,6 +274,9 @@ /* Define to 1 if you have the `kill' function. */ #undef HAVE_KILL +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBKERN_OSBYTEORDER_H + /* Define if we have LibreSSL */ #undef HAVE_LIBRESSL @@ -479,6 +493,9 @@ /* Define to 1 if systemd should be used */ #undef HAVE_SYSTEMD +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_ENDIAN_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IPC_H @@ -703,6 +720,9 @@ /* Define this to enable ED25519 support. */ #undef USE_ED25519 +/* Define this to enable ED448 support. */ +#undef USE_ED448 + /* Define this to enable GOST support. */ #undef USE_GOST @@ -718,6 +738,9 @@ /* Define this to enable client TCP Fast Open. */ #undef USE_OSX_MSG_FASTOPEN +/* Define this to use hiredis client. */ +#undef USE_REDIS + /* Define this to enable SHA1 support. */ #undef USE_SHA1 @@ -1222,6 +1245,8 @@ void *unbound_stat_realloc_log(void *ptr, size_t size, /** default port for DNS traffic. */ #define UNBOUND_DNS_PORT 53 +/** default port for DNS over TLS traffic. */ +#define UNBOUND_DNS_OVER_TLS_PORT 853 /** default port for unbound control traffic, registered port with IANA, ub-dns-control 8953/tcp unbound dns nameserver control */ #define UNBOUND_CONTROL_PORT 8953 Modified: head/contrib/unbound/configure ============================================================================== --- head/contrib/unbound/configure Sat May 12 15:04:05 2018 (r333567) +++ head/contrib/unbound/configure Sat May 12 15:20:39 2018 (r333568) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.7.0. +# Generated by GNU Autoconf 2.69 for unbound 1.7.1. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.7.0' -PACKAGE_STRING='unbound 1.7.0' +PACKAGE_VERSION='1.7.1' +PACKAGE_STRING='unbound 1.7.1' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl' PACKAGE_URL='' @@ -859,11 +859,13 @@ enable_gost enable_ecdsa enable_dsa enable_ed25519 +enable_ed448 enable_event_api enable_tfo_client enable_tfo_server with_libevent with_libexpat +with_libhiredis enable_static_exe enable_systemd enable_lock_checks @@ -1438,7 +1440,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.7.0 to adapt to many kinds of systems. +\`configure' configures unbound 1.7.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1503,7 +1505,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.7.0:";; + short | recursive ) echo "Configuration of unbound 1.7.1:";; esac cat <<\_ACEOF @@ -1544,6 +1546,7 @@ Optional Features: --disable-ecdsa Disable ECDSA support --disable-dsa Disable DSA support --disable-ed25519 Disable ED25519 support + --disable-ed448 Disable ED448 support --enable-event-api Enable (experimental) pluggable event base libunbound API installed to unbound-event.h --enable-tfo-client Enable TCP Fast Open for client mode @@ -1610,6 +1613,7 @@ Optional Packages: an explicit path). Slower, but allows use of large outgoing port ranges. --with-libexpat=path specify explicit path for libexpat. + --with-libhiredis=path specify explicit path for libhiredis. --with-dnstap-socket-path=pathname set default dnstap socket path --with-protobuf-c=path Path where protobuf-c is installed, for dnstap @@ -1718,7 +1722,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.7.0 +unbound configure 1.7.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2427,7 +2431,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.7.0, which was +It was created by unbound $as_me 1.7.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2779,11 +2783,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=7 -UNBOUND_VERSION_MICRO=0 +UNBOUND_VERSION_MICRO=1 LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=8 +LIBUNBOUND_REVISION=9 LIBUNBOUND_AGE=5 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2843,6 +2847,7 @@ LIBUNBOUND_AGE=5 # 1.6.7 had 7:6:5 # 1.6.8 had 7:7:5 # 1.7.0 had 7:8:5 +# 1.7.1 had 7:9:5 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -14477,7 +14482,7 @@ CC=$lt_save_CC # Checks for header files. -for ac_header in stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/ipc.h sys/shm.h +for ac_header in stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default @@ -18314,6 +18319,50 @@ _ACEOF ;; esac +# Check whether --enable-ed448 was given. +if test "${enable_ed448+set}" = set; then : + enableval=$enable_ed448; +fi + +use_ed448="no" +case "$enable_ed448" in + no) + ;; + *) + if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then + ac_fn_c_check_decl "$LINENO" "NID_ED448" "ac_cv_have_decl_NID_ED448" "$ac_includes_default +#include + +" +if test "x$ac_cv_have_decl_NID_ED448" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NID_ED448 $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + + use_ed448="yes" + +else + if test "x$enable_ed448" = "xyes"; then as_fn_error $? "OpenSSL does not support ED448 and you used --enable-ed448." "$LINENO" 5 + fi +fi + + fi + if test $use_ed448 = "yes"; then + +cat >>confdefs.h <<_ACEOF +#define USE_ED448 1 +_ACEOF + + fi + ;; +esac + # Check whether --enable-event-api was given. if test "${enable_event_api+set}" = set; then : enableval=$enable_event_api; @@ -18810,6 +18859,70 @@ cat >>confdefs.h <<_ACEOF _ACEOF +# hiredis (redis C client for cachedb) + +# Check whether --with-libhiredis was given. +if test "${with_libhiredis+set}" = set; then : + withval=$with_libhiredis; +else + withval="no" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libhiredis" >&5 +$as_echo_n "checking for libhiredis... " >&6; } +found_libhiredis="no" +if test x_$withval = x_yes -o x_$withval != x_no; then + if test x_$withval = x_ -o x_$withval = x_yes; then + withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr" + fi + for dir in $withval ; do + if test -f "$dir/include/hiredis/hiredis.h"; then + found_libhiredis="yes" + if test "$dir" != "/usr"; then + CPPFLAGS="$CPPFLAGS -I$dir/include" + LDFLAGS="$LDFLAGS -L$dir/lib" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5 +$as_echo "found in $dir" >&6; } + +$as_echo "#define USE_REDIS 1" >>confdefs.h + + LIBS="$LIBS -lhiredis" + break; + fi + done + if test x_$found_libhiredis != x_yes; then + as_fn_error $? "Could not find libhiredis, hiredis.h" "$LINENO" 5 + fi + for ac_header in hiredis/hiredis.h +do : + ac_fn_c_check_header_compile "$LINENO" "hiredis/hiredis.h" "ac_cv_header_hiredis_hiredis_h" "$ac_includes_default +" +if test "x$ac_cv_header_hiredis_hiredis_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_HIREDIS_HIREDIS_H 1 +_ACEOF + +fi + +done + + ac_fn_c_check_decl "$LINENO" "redisConnect" "ac_cv_have_decl_redisConnect" "$ac_includes_default + #include + +" +if test "x$ac_cv_have_decl_redisConnect" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_REDISCONNECT $ac_have_decl +_ACEOF + +fi + # set static linking if requested staticexe="" @@ -20928,7 +21041,7 @@ _ACEOF -version=1.7.0 +version=1.7.1 date=`date +'%b %e, %Y'` @@ -21447,7 +21560,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.7.0, which was +This file was extended by unbound $as_me 1.7.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21513,7 +21626,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.7.0 +unbound config.status 1.7.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: head/contrib/unbound/configure.ac ============================================================================== --- head/contrib/unbound/configure.ac Sat May 12 15:04:05 2018 (r333567) +++ head/contrib/unbound/configure.ac Sat May 12 15:20:39 2018 (r333568) @@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[7]) -m4_define([VERSION_MICRO],[0]) +m4_define([VERSION_MICRO],[1]) AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=7 -LIBUNBOUND_REVISION=8 +LIBUNBOUND_REVISION=9 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sat May 12 15:34:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E5C0FAB86D; Sat, 12 May 2018 15:34:36 +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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B4D9B85D81; Sat, 12 May 2018 15:34: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 92DB2203D2; Sat, 12 May 2018 15:34: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 w4CFYZo7031243; Sat, 12 May 2018 15:34:35 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CFYZn5031242; Sat, 12 May 2018 15:34:35 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805121534.w4CFYZn5031242@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sat, 12 May 2018 15:34:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333569 - head/usr.sbin/cpucontrol X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.sbin/cpucontrol X-SVN-Commit-Revision: 333569 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 15:34:36 -0000 Author: emaste Date: Sat May 12 15:34:35 2018 New Revision: 333569 URL: https://svnweb.freebsd.org/changeset/base/333569 Log: cpucontrol: improve Intel microcode revision check According to the Intel SDM (Volme 3, 9.11.7) the BIOS signature MSR should be zeroed before executing cpuid (although in practice it does not seem to matter). PR: 192487 Submitted by: Dan Lukes Reported by: Henrique de Moraes Holschuh MFC after: 3 days Modified: head/usr.sbin/cpucontrol/intel.c Modified: head/usr.sbin/cpucontrol/intel.c ============================================================================== --- head/usr.sbin/cpucontrol/intel.c Sat May 12 15:20:39 2018 (r333568) +++ head/usr.sbin/cpucontrol/intel.c Sat May 12 15:34:35 2018 (r333569) @@ -95,7 +95,8 @@ intel_update(const char *dev, const char *path) void *fw_data; size_t data_size, total_size; cpuctl_msr_args_t msrargs = { - .msr = MSR_IA32_PLATFORM_ID, + .msr = MSR_BIOS_SIGN, + .data = 0, }; cpuctl_cpuid_args_t idargs = { .level = 1, /* Signature. */ @@ -115,12 +116,18 @@ intel_update(const char *dev, const char *path) WARN(0, "could not open %s for writing", dev); return; } + error = ioctl(devfd, CPUCTL_WRMSR, &msrargs); + if (error < 0) { + WARN(0, "ioctl(%s)", dev); + goto fail; + } error = ioctl(devfd, CPUCTL_CPUID, &idargs); if (error < 0) { WARN(0, "ioctl(%s)", dev); goto fail; } signature = idargs.data[0]; + msrargs.msr = MSR_IA32_PLATFORM_ID; error = ioctl(devfd, CPUCTL_RDMSR, &msrargs); if (error < 0) { WARN(0, "ioctl(%s)", dev); From owner-svn-src-head@freebsd.org Sat May 12 15:35:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB562FAB963; Sat, 12 May 2018 15:35: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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 698B785EDE; Sat, 12 May 2018 15:35: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 4A98E203D5; Sat, 12 May 2018 15:35: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 w4CFZRgt032083; Sat, 12 May 2018 15:35:27 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CFZRal032082; Sat, 12 May 2018 15:35:27 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201805121535.w4CFZRal032082@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 12 May 2018 15:35:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333570 - head/sys/cddl/dev/dtrace/aarch64 X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/cddl/dev/dtrace/aarch64 X-SVN-Commit-Revision: 333570 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 15:35:27 -0000 Author: markj Date: Sat May 12 15:35:26 2018 New Revision: 333570 URL: https://svnweb.freebsd.org/changeset/base/333570 Log: DTrace aarch64: Avoid calling unwind_frame() in the probe context. unwind_frame() may be instrumented by FBT, leading to recursion into dtrace_probe(). Manually inline unwind_frame() as we do with stack unwinding code for other architectures. Submitted by: Domagoj Stolfa Reviewed by: manu MFC after: 1 week Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D15359 Modified: head/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c Modified: head/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c ============================================================================== --- head/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c Sat May 12 15:34:35 2018 (r333569) +++ head/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c Sat May 12 15:35:26 2018 (r333570) @@ -70,7 +70,7 @@ dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, in { struct unwind_state state; int scp_offset; - register_t sp; + register_t sp, fp; int depth; depth = 0; @@ -88,11 +88,15 @@ dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, in state.pc = (uint64_t)dtrace_getpcstack; while (depth < pcstack_limit) { - if (unwind_frame(&state)) - break; - if (!INKERNEL(state.pc) || !INKERNEL(state.fp)) break; + + fp = state.fp; + state.sp = fp + 0x10; + /* FP to previous frame (X29) */ + state.fp = *(register_t *)(fp); + /* LR (X30) */ + state.pc = *(register_t *)(fp + 8) - 4; /* * NB: Unlike some other architectures, we don't need to From owner-svn-src-head@freebsd.org Sat May 12 17:02:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8BC9EFC3E4B; Sat, 12 May 2018 17:02:28 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3E79476A03; Sat, 12 May 2018 17:02:28 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1FBAF2122F; Sat, 12 May 2018 17:02:28 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CH2SvF077918; Sat, 12 May 2018 17:02:28 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CH2Sjw077917; Sat, 12 May 2018 17:02:28 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121702.w4CH2Sjw077917@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 17:02:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333571 - head/lib/libfetch X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/lib/libfetch X-SVN-Commit-Revision: 333571 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 17:02:28 -0000 Author: des Date: Sat May 12 17:02:27 2018 New Revision: 333571 URL: https://svnweb.freebsd.org/changeset/base/333571 Log: Preserve if-modified-since timestamps across redirects. PR: 224426 MFC after: 1 week Modified: head/lib/libfetch/http.c Modified: head/lib/libfetch/http.c ============================================================================== --- head/lib/libfetch/http.c Sat May 12 15:35:26 2018 (r333570) +++ head/lib/libfetch/http.c Sat May 12 17:02:27 2018 (r333571) @@ -1874,6 +1874,7 @@ http_request_body(struct url *URL, const char *op, str } new->offset = url->offset; new->length = url->length; + new->ims_time = url->ims_time; break; case hdr_transfer_encoding: /* XXX weak test*/ From owner-svn-src-head@freebsd.org Sat May 12 17:04:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B859FC5006; Sat, 12 May 2018 17:04:41 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BA5D476BDA; Sat, 12 May 2018 17:04:40 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 915192123A; Sat, 12 May 2018 17:04:40 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CH4e4P078055; Sat, 12 May 2018 17:04:40 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CH4eTh078054; Sat, 12 May 2018 17:04:40 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121704.w4CH4eTh078054@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 17:04:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333572 - head/usr.bin/fetch X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/usr.bin/fetch X-SVN-Commit-Revision: 333572 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 17:04:41 -0000 Author: des Date: Sat May 12 17:04:40 2018 New Revision: 333572 URL: https://svnweb.freebsd.org/changeset/base/333572 Log: Support If-Modified-Since for https as well as http. PR: 224426 Submitted by: zsnafzig@edu.uwaterloo.ca MFC after: 1 week Modified: head/usr.bin/fetch/fetch.c Modified: head/usr.bin/fetch/fetch.c ============================================================================== --- head/usr.bin/fetch/fetch.c Sat May 12 17:02:27 2018 (r333571) +++ head/usr.bin/fetch/fetch.c Sat May 12 17:04:40 2018 (r333572) @@ -552,9 +552,10 @@ fetch(char *URL, const char *path) goto signal; if (f == NULL) { warnx("%s: %s", URL, fetchLastErrString); - if (i_flag && strcmp(url->scheme, SCHEME_HTTP) == 0 - && fetchLastErrCode == FETCH_OK - && strcmp(fetchLastErrString, "Not Modified") == 0) { + if (i_flag && (strcmp(url->scheme, SCHEME_HTTP) == 0 || + strcmp(url->scheme, SCHEME_HTTPS) == 0) && + fetchLastErrCode == FETCH_OK && + strcmp(fetchLastErrString, "Not Modified") == 0) { /* HTTP Not Modified Response, return OK. */ r = 0; goto done; From owner-svn-src-head@freebsd.org Sat May 12 17:10:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DC20FC5549; Sat, 12 May 2018 17:10:40 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A8ADB7831A; Sat, 12 May 2018 17:10:39 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 89D782124C; Sat, 12 May 2018 17:10:39 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CHAdVv078372; Sat, 12 May 2018 17:10:39 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CHAaRx078357; Sat, 12 May 2018 17:10:36 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121710.w4CHAaRx078357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 17:10:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333573 - in head: . contrib/unbound/daemon contrib/unbound/doc contrib/unbound/smallapp etc/rc.d tools/build/mk usr.sbin/unbound usr.sbin/unbound/anchor usr.sbin/unbound/checkconf usr.... X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: in head: . contrib/unbound/daemon contrib/unbound/doc contrib/unbound/smallapp etc/rc.d tools/build/mk usr.sbin/unbound usr.sbin/unbound/anchor usr.sbin/unbound/checkconf usr.sbin/unbound/control usr.... X-SVN-Commit-Revision: 333573 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 17:10:40 -0000 Author: des Date: Sat May 12 17:10:36 2018 New Revision: 333573 URL: https://svnweb.freebsd.org/changeset/base/333573 Log: Rename all Unbound binaries and man pages from unbound* to local-unbound*. PR: 222902 Added: head/usr.sbin/unbound/setup/ - copied from r333572, head/usr.sbin/unbound/local-setup/ Deleted: head/usr.sbin/unbound/local-setup/ Modified: head/ObsoleteFiles.inc head/contrib/unbound/daemon/unbound.c head/contrib/unbound/doc/unbound-checkconf.8.in head/contrib/unbound/smallapp/unbound-anchor.c head/contrib/unbound/smallapp/unbound-checkconf.c head/contrib/unbound/smallapp/unbound-control.c head/etc/rc.d/local_unbound head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.sbin/unbound/Makefile head/usr.sbin/unbound/Makefile.inc head/usr.sbin/unbound/anchor/Makefile head/usr.sbin/unbound/checkconf/Makefile head/usr.sbin/unbound/control/Makefile head/usr.sbin/unbound/daemon/Makefile Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sat May 12 17:04:40 2018 (r333572) +++ head/ObsoleteFiles.inc Sat May 12 17:10:36 2018 (r333573) @@ -38,6 +38,16 @@ # xargs -n1 | sort | uniq -d; # done +# 20180512: Rename Unbound tools +OLD_FILES+=usr/sbin/unbound +OLD_FILES+=usr/sbin/unbound-anchor +OLD_FILES+=usr/sbin/unbound-checkconf +OLD_FILES+=usr/sbin/unbound-control +OLD_FILES+=usr/share/man/man5/unbound.conf.5.gz +OLD_FILES+=usr/share/man/man8/unbound-anchor.8.gz +OLD_FILES+=usr/share/man/man8/unbound-checkconf.8.gz +OLD_FILES+=usr/share/man/man8/unbound-control.8.gz +OLD_FILES+=usr/share/man/man8/unbound.8.gz # 20180508: retire nxge OLD_FILES+=usr/share/man/man4/if_nxge.4.gz OLD_FILES+=usr/share/man/man4/nxge.4.gz Modified: head/contrib/unbound/daemon/unbound.c ============================================================================== --- head/contrib/unbound/daemon/unbound.c Sat May 12 17:04:40 2018 (r333572) +++ head/contrib/unbound/daemon/unbound.c Sat May 12 17:10:36 2018 (r333573) @@ -95,7 +95,7 @@ static void usage(void) time_t t; struct timeval now; struct ub_event_base* base; - printf("usage: unbound [options]\n"); + printf("usage: local-unbound [options]\n"); printf(" start unbound daemon DNS resolver.\n"); printf("-h this help\n"); printf("-c file config file to read instead of %s\n", CONFIGFILE); Modified: head/contrib/unbound/doc/unbound-checkconf.8.in ============================================================================== --- head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 17:04:40 2018 (r333572) +++ head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 17:10:36 2018 (r333573) @@ -8,7 +8,7 @@ .\" .\" .SH "NAME" -unbound\-checkconf +.B unbound\-checkconf \- Check unbound configuration file for errors. .SH "SYNOPSIS" .B unbound\-checkconf Modified: head/contrib/unbound/smallapp/unbound-anchor.c ============================================================================== --- head/contrib/unbound/smallapp/unbound-anchor.c Sat May 12 17:04:40 2018 (r333572) +++ head/contrib/unbound/smallapp/unbound-anchor.c Sat May 12 17:10:36 2018 (r333573) @@ -174,7 +174,7 @@ struct ip_list { static void usage(void) { - printf("Usage: unbound-anchor [opts]\n"); + printf("Usage: local-unbound-anchor [opts]\n"); printf(" Setup or update root anchor. " "Most options have defaults.\n"); printf(" Run this program before you start the validator.\n"); Modified: head/contrib/unbound/smallapp/unbound-checkconf.c ============================================================================== --- head/contrib/unbound/smallapp/unbound-checkconf.c Sat May 12 17:04:40 2018 (r333572) +++ head/contrib/unbound/smallapp/unbound-checkconf.c Sat May 12 17:10:36 2018 (r333573) @@ -80,7 +80,7 @@ static void usage(void) { - printf("Usage: unbound-checkconf [file]\n"); + printf("Usage: local-unbound-checkconf [file]\n"); printf(" Checks unbound configuration file for errors.\n"); printf("file if omitted %s is used.\n", CONFIGFILE); printf("-o option print value of option to stdout.\n"); Modified: head/contrib/unbound/smallapp/unbound-control.c ============================================================================== --- head/contrib/unbound/smallapp/unbound-control.c Sat May 12 17:04:40 2018 (r333572) +++ head/contrib/unbound/smallapp/unbound-control.c Sat May 12 17:10:36 2018 (r333573) @@ -77,7 +77,7 @@ static void usage(void) { - printf("Usage: unbound-control [options] command\n"); + printf("Usage: local-unbound-control [options] command\n"); printf(" Remote control utility for unbound server.\n"); printf("Options:\n"); printf(" -c file config file, default is %s\n", CONFIGFILE); Modified: head/etc/rc.d/local_unbound ============================================================================== --- head/etc/rc.d/local_unbound Sat May 12 17:04:40 2018 (r333572) +++ head/etc/rc.d/local_unbound Sat May 12 17:10:36 2018 (r333573) @@ -14,7 +14,7 @@ name="local_unbound" desc="Local caching forwarding resolver" rcvar="local_unbound_enable" -command="/usr/sbin/unbound" +command="/usr/sbin/local-unbound" extra_commands="anchor configtest reload setup" start_precmd="local_unbound_prestart" start_postcmd="local_unbound_poststart" @@ -44,7 +44,7 @@ do_as_unbound() # local_unbound_anchor() { - do_as_unbound /usr/sbin/unbound-anchor -a ${local_unbound_anchor} + do_as_unbound ${command}-anchor -a ${local_unbound_anchor} # we can't trust the exit code - check if the file exists [ -f ${local_unbound_anchor} ] } @@ -54,7 +54,7 @@ local_unbound_anchor() # local_unbound_configtest() { - do_as_unbound /usr/sbin/unbound-checkconf ${local_unbound_config} + do_as_unbound ${command}-checkconf ${local_unbound_config} } # @@ -64,7 +64,7 @@ local_unbound_configtest() local_unbound_setup() { echo "Performing initial setup." - /usr/sbin/local-unbound-setup -n \ + ${command}-setup -n \ -u unbound \ -w ${local_unbound_workdir} \ -c ${local_unbound_config} \ Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat May 12 17:04:40 2018 (r333572) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat May 12 17:10:36 2018 (r333573) @@ -8726,17 +8726,17 @@ OLD_FILES+=usr/lib32/private/libunbound.a OLD_FILES+=usr/lib32/private/libunbound.so OLD_LIBS+=usr/lib32/private/libunbound.so.5 OLD_FILES+=usr/lib32/private/libunbound_p.a +OLD_FILES+=usr/share/man/man5/local-unbound.conf.5.gz +OLD_FILES+=usr/share/man/man8/local-unbound-anchor.8.gz +OLD_FILES+=usr/share/man/man8/local-unbound-checkconf.8.gz +OLD_FILES+=usr/share/man/man8/local-unbound-control.8.gz +OLD_FILES+=usr/share/man/man8/local-unbound.8.gz .endif OLD_FILES+=usr/sbin/local-unbound-setup -OLD_FILES+=usr/sbin/unbound -OLD_FILES+=usr/sbin/unbound-anchor -OLD_FILES+=usr/sbin/unbound-checkconf -OLD_FILES+=usr/sbin/unbound-control -OLD_FILES+=usr/share/man/man5/unbound.conf.5.gz -OLD_FILES+=usr/share/man/man8/unbound-anchor.8.gz -OLD_FILES+=usr/share/man/man8/unbound-checkconf.8.gz -OLD_FILES+=usr/share/man/man8/unbound-control.8.gz -OLD_FILES+=usr/share/man/man8/unbound.8.gz +OLD_FILES+=usr/sbin/local-unbound +OLD_FILES+=usr/sbin/local-unbound-anchor +OLD_FILES+=usr/sbin/local-unbound-checkconf +OLD_FILES+=usr/sbin/local-unbound-control .endif .if ${MK_USB} == no Modified: head/usr.sbin/unbound/Makefile ============================================================================== --- head/usr.sbin/unbound/Makefile Sat May 12 17:04:40 2018 (r333572) +++ head/usr.sbin/unbound/Makefile Sat May 12 17:10:36 2018 (r333573) @@ -1,7 +1,7 @@ # $FreeBSD$ SUBDIR= daemon anchor checkconf control -SUBDIR+= local-setup +SUBDIR+= setup SUBDIR_PARALLEL= .include Modified: head/usr.sbin/unbound/Makefile.inc ============================================================================== --- head/usr.sbin/unbound/Makefile.inc Sat May 12 17:04:40 2018 (r333572) +++ head/usr.sbin/unbound/Makefile.inc Sat May 12 17:10:36 2018 (r333573) @@ -4,4 +4,14 @@ NO_WERROR= true NO_WTHREAD_SAFETY= true PACKAGE= unbound +.for man in ${MAN} +${man}: ${UNBOUNDDIR}/doc/${man:S/local-//} + sed -E \ + -e 's/\<(fI)?unbound\>/\1local-unbound/g' \ + -e 's/\<(fI)?Unbound\>/Local-unbound/g' \ + -e 's/\/local-unbound/\/unbound/g' \ + <${.ALLSRC} >${.TARGET} +CLEANFILES += ${man} +.endfor + .include "../Makefile.inc" Modified: head/usr.sbin/unbound/anchor/Makefile ============================================================================== --- head/usr.sbin/unbound/anchor/Makefile Sat May 12 17:04:40 2018 (r333572) +++ head/usr.sbin/unbound/anchor/Makefile Sat May 12 17:10:36 2018 (r333573) @@ -7,10 +7,10 @@ EXPATDIR= ${SRCTOP}/contrib/expat .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/smallapp ${UNBOUNDDIR}/doc -PROG= unbound-anchor +PROG= local-unbound-anchor SRCS= unbound-anchor.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} -I${EXPATDIR}/lib LIBADD= unbound bsdxml ssl crypto pthread -MAN= unbound-anchor.8 +MAN= local-unbound-anchor.8 .include Modified: head/usr.sbin/unbound/checkconf/Makefile ============================================================================== --- head/usr.sbin/unbound/checkconf/Makefile Sat May 12 17:04:40 2018 (r333572) +++ head/usr.sbin/unbound/checkconf/Makefile Sat May 12 17:10:36 2018 (r333573) @@ -6,10 +6,10 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/smallapp ${UNBOUNDDIR}/util ${UNBOUNDDIR}/doc -PROG= unbound-checkconf +PROG= local-unbound-checkconf SRCS= ub_event.c unbound-checkconf.c worker_cb.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} LIBADD= unbound pthread -MAN= unbound-checkconf.8 +MAN= local-unbound-checkconf.8 .include Modified: head/usr.sbin/unbound/control/Makefile ============================================================================== --- head/usr.sbin/unbound/control/Makefile Sat May 12 17:04:40 2018 (r333572) +++ head/usr.sbin/unbound/control/Makefile Sat May 12 17:10:36 2018 (r333573) @@ -6,10 +6,10 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/smallapp ${UNBOUNDDIR}/util ${UNBOUNDDIR}/doc -PROG= unbound-control +PROG= local-unbound-control SRCS= ub_event.c unbound-control.c worker_cb.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} LIBADD= unbound crypto ssl pthread -MAN= unbound-control.8 +MAN= local-unbound-control.8 .include Modified: head/usr.sbin/unbound/daemon/Makefile ============================================================================== --- head/usr.sbin/unbound/daemon/Makefile Sat May 12 17:04:40 2018 (r333572) +++ head/usr.sbin/unbound/daemon/Makefile Sat May 12 17:10:36 2018 (r333573) @@ -6,11 +6,11 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/daemon ${UNBOUNDDIR}/util ${UNBOUNDDIR}/util/shm_side ${UNBOUNDDIR}/doc -PROG= unbound +PROG= local-unbound SRCS= acl_list.c cachedump.c daemon.c remote.c shm_main.c stats.c \ ub_event.c unbound.c worker.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} LIBADD= unbound util ssl crypto pthread -MAN= unbound.8 unbound.conf.5 +MAN= local-unbound.8 local-unbound.conf.5 .include From owner-svn-src-head@freebsd.org Sat May 12 17:14:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 980D9FC5B87; Sat, 12 May 2018 17:14:58 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.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 BD61F7892E; Sat, 12 May 2018 17:14:57 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4CHEsUZ081767; Sat, 12 May 2018 10:14:54 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4CHEsCq081766; Sat, 12 May 2018 10:14:54 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805121714.w4CHEsCq081766@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333573 - in head: . contrib/unbound/daemon contrib/unbound/doc contrib/unbound/smallapp etc/rc.d tools/build/mk usr.sbin/unbound usr.sbin/unbound/anchor usr.sbin/unbound/checkconf usr.... In-Reply-To: <201805121710.w4CHAaRx078357@repo.freebsd.org> To: =?UTF-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Date: Sat, 12 May 2018 10:14:54 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org 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-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 17:14:59 -0000 > Author: des > Date: Sat May 12 17:10:36 2018 > New Revision: 333573 > URL: https://svnweb.freebsd.org/changeset/base/333573 > > Log: > Rename all Unbound binaries and man pages from unbound* to local-unbound*. > > PR: 222902 > > Added: > head/usr.sbin/unbound/setup/ > - copied from r333572, head/usr.sbin/unbound/local-setup/ > Deleted: > head/usr.sbin/unbound/local-setup/ > Modified: > head/ObsoleteFiles.inc > head/contrib/unbound/daemon/unbound.c > head/contrib/unbound/doc/unbound-checkconf.8.in > head/contrib/unbound/smallapp/unbound-anchor.c > head/contrib/unbound/smallapp/unbound-checkconf.c > head/contrib/unbound/smallapp/unbound-control.c > head/etc/rc.d/local_unbound > head/tools/build/mk/OptionalObsoleteFiles.inc > head/usr.sbin/unbound/Makefile > head/usr.sbin/unbound/Makefile.inc > head/usr.sbin/unbound/anchor/Makefile > head/usr.sbin/unbound/checkconf/Makefile > head/usr.sbin/unbound/control/Makefile > head/usr.sbin/unbound/daemon/Makefile > > Modified: head/ObsoleteFiles.inc > ============================================================================== > --- head/ObsoleteFiles.inc Sat May 12 17:04:40 2018 (r333572) > +++ head/ObsoleteFiles.inc Sat May 12 17:10:36 2018 (r333573) > @@ -38,6 +38,16 @@ > # xargs -n1 | sort | uniq -d; > # done > > +# 20180512: Rename Unbound tools > +OLD_FILES+=usr/sbin/unbound > +OLD_FILES+=usr/sbin/unbound-anchor > +OLD_FILES+=usr/sbin/unbound-checkconf > +OLD_FILES+=usr/sbin/unbound-control > +OLD_FILES+=usr/share/man/man5/unbound.conf.5.gz > +OLD_FILES+=usr/share/man/man8/unbound-anchor.8.gz > +OLD_FILES+=usr/share/man/man8/unbound-checkconf.8.gz > +OLD_FILES+=usr/share/man/man8/unbound-control.8.gz > +OLD_FILES+=usr/share/man/man8/unbound.8.gz > # 20180508: retire nxge > OLD_FILES+=usr/share/man/man4/if_nxge.4.gz > OLD_FILES+=usr/share/man/man4/nxge.4.gz > > Modified: head/contrib/unbound/daemon/unbound.c > ============================================================================== > --- head/contrib/unbound/daemon/unbound.c Sat May 12 17:04:40 2018 (r333572) > +++ head/contrib/unbound/daemon/unbound.c Sat May 12 17:10:36 2018 (r333573) > @@ -95,7 +95,7 @@ static void usage(void) > time_t t; > struct timeval now; > struct ub_event_base* base; > - printf("usage: unbound [options]\n"); > + printf("usage: local-unbound [options]\n"); > printf(" start unbound daemon DNS resolver.\n"); > printf("-h this help\n"); > printf("-c file config file to read instead of %s\n", CONFIGFILE); > > Modified: head/contrib/unbound/doc/unbound-checkconf.8.in > ============================================================================== > --- head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 17:04:40 2018 (r333572) > +++ head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 17:10:36 2018 (r333573) > @@ -8,7 +8,7 @@ > .\" > .\" > .SH "NAME" > -unbound\-checkconf > +.B unbound\-checkconf Is that one missing a local-, or did unbound-checkconf not get renamed? > \- Check unbound configuration file for errors. > .SH "SYNOPSIS" > .B unbound\-checkconf > > Modified: head/contrib/unbound/smallapp/unbound-anchor.c > ============================================================================== > --- head/contrib/unbound/smallapp/unbound-anchor.c Sat May 12 17:04:40 2018 (r333572) > +++ head/contrib/unbound/smallapp/unbound-anchor.c Sat May 12 17:10:36 2018 (r333573) > @@ -174,7 +174,7 @@ struct ip_list { > static void > usage(void) > { > - printf("Usage: unbound-anchor [opts]\n"); > + printf("Usage: local-unbound-anchor [opts]\n"); > printf(" Setup or update root anchor. " > "Most options have defaults.\n"); > printf(" Run this program before you start the validator.\n"); > > Modified: head/contrib/unbound/smallapp/unbound-checkconf.c > ============================================================================== > --- head/contrib/unbound/smallapp/unbound-checkconf.c Sat May 12 17:04:40 2018 (r333572) > +++ head/contrib/unbound/smallapp/unbound-checkconf.c Sat May 12 17:10:36 2018 (r333573) > @@ -80,7 +80,7 @@ > static void > usage(void) > { > - printf("Usage: unbound-checkconf [file]\n"); > + printf("Usage: local-unbound-checkconf [file]\n"); Looks like it is renamed here... > printf(" Checks unbound configuration file for errors.\n"); > printf("file if omitted %s is used.\n", CONFIGFILE); > printf("-o option print value of option to stdout.\n"); > > Modified: head/contrib/unbound/smallapp/unbound-control.c > ============================================================================== > --- head/contrib/unbound/smallapp/unbound-control.c Sat May 12 17:04:40 2018 (r333572) > +++ head/contrib/unbound/smallapp/unbound-control.c Sat May 12 17:10:36 2018 (r333573) > @@ -77,7 +77,7 @@ > static void > usage(void) > { > - printf("Usage: unbound-control [options] command\n"); > + printf("Usage: local-unbound-control [options] command\n"); > printf(" Remote control utility for unbound server.\n"); > printf("Options:\n"); > printf(" -c file config file, default is %s\n", CONFIGFILE); > > Modified: head/etc/rc.d/local_unbound > ============================================================================== > --- head/etc/rc.d/local_unbound Sat May 12 17:04:40 2018 (r333572) > +++ head/etc/rc.d/local_unbound Sat May 12 17:10:36 2018 (r333573) > @@ -14,7 +14,7 @@ name="local_unbound" > desc="Local caching forwarding resolver" > rcvar="local_unbound_enable" > > -command="/usr/sbin/unbound" > +command="/usr/sbin/local-unbound" > extra_commands="anchor configtest reload setup" > start_precmd="local_unbound_prestart" > start_postcmd="local_unbound_poststart" > @@ -44,7 +44,7 @@ do_as_unbound() > # > local_unbound_anchor() > { > - do_as_unbound /usr/sbin/unbound-anchor -a ${local_unbound_anchor} > + do_as_unbound ${command}-anchor -a ${local_unbound_anchor} > # we can't trust the exit code - check if the file exists > [ -f ${local_unbound_anchor} ] > } > @@ -54,7 +54,7 @@ local_unbound_anchor() > # > local_unbound_configtest() > { > - do_as_unbound /usr/sbin/unbound-checkconf ${local_unbound_config} > + do_as_unbound ${command}-checkconf ${local_unbound_config} > } > > # > @@ -64,7 +64,7 @@ local_unbound_configtest() > local_unbound_setup() > { > echo "Performing initial setup." > - /usr/sbin/local-unbound-setup -n \ > + ${command}-setup -n \ > -u unbound \ > -w ${local_unbound_workdir} \ > -c ${local_unbound_config} \ > > Modified: head/tools/build/mk/OptionalObsoleteFiles.inc > ============================================================================== > --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat May 12 17:04:40 2018 (r333572) > +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat May 12 17:10:36 2018 (r333573) > @@ -8726,17 +8726,17 @@ OLD_FILES+=usr/lib32/private/libunbound.a > OLD_FILES+=usr/lib32/private/libunbound.so > OLD_LIBS+=usr/lib32/private/libunbound.so.5 > OLD_FILES+=usr/lib32/private/libunbound_p.a > +OLD_FILES+=usr/share/man/man5/local-unbound.conf.5.gz > +OLD_FILES+=usr/share/man/man8/local-unbound-anchor.8.gz > +OLD_FILES+=usr/share/man/man8/local-unbound-checkconf.8.gz > +OLD_FILES+=usr/share/man/man8/local-unbound-control.8.gz > +OLD_FILES+=usr/share/man/man8/local-unbound.8.gz > .endif > OLD_FILES+=usr/sbin/local-unbound-setup > -OLD_FILES+=usr/sbin/unbound > -OLD_FILES+=usr/sbin/unbound-anchor > -OLD_FILES+=usr/sbin/unbound-checkconf > -OLD_FILES+=usr/sbin/unbound-control > -OLD_FILES+=usr/share/man/man5/unbound.conf.5.gz > -OLD_FILES+=usr/share/man/man8/unbound-anchor.8.gz > -OLD_FILES+=usr/share/man/man8/unbound-checkconf.8.gz > -OLD_FILES+=usr/share/man/man8/unbound-control.8.gz > -OLD_FILES+=usr/share/man/man8/unbound.8.gz > +OLD_FILES+=usr/sbin/local-unbound > +OLD_FILES+=usr/sbin/local-unbound-anchor > +OLD_FILES+=usr/sbin/local-unbound-checkconf > +OLD_FILES+=usr/sbin/local-unbound-control > .endif > > .if ${MK_USB} == no > > Modified: head/usr.sbin/unbound/Makefile > ============================================================================== > --- head/usr.sbin/unbound/Makefile Sat May 12 17:04:40 2018 (r333572) > +++ head/usr.sbin/unbound/Makefile Sat May 12 17:10:36 2018 (r333573) > @@ -1,7 +1,7 @@ > # $FreeBSD$ > > SUBDIR= daemon anchor checkconf control > -SUBDIR+= local-setup > +SUBDIR+= setup > SUBDIR_PARALLEL= > > .include > > Modified: head/usr.sbin/unbound/Makefile.inc > ============================================================================== > --- head/usr.sbin/unbound/Makefile.inc Sat May 12 17:04:40 2018 (r333572) > +++ head/usr.sbin/unbound/Makefile.inc Sat May 12 17:10:36 2018 (r333573) > @@ -4,4 +4,14 @@ NO_WERROR= true > NO_WTHREAD_SAFETY= true > PACKAGE= unbound > > +.for man in ${MAN} > +${man}: ${UNBOUNDDIR}/doc/${man:S/local-//} > + sed -E \ > + -e 's/\<(fI)?unbound\>/\1local-unbound/g' \ > + -e 's/\<(fI)?Unbound\>/Local-unbound/g' \ > + -e 's/\/local-unbound/\/unbound/g' \ > + <${.ALLSRC} >${.TARGET} > +CLEANFILES += ${man} > +.endfor > + > .include "../Makefile.inc" > > Modified: head/usr.sbin/unbound/anchor/Makefile > ============================================================================== > --- head/usr.sbin/unbound/anchor/Makefile Sat May 12 17:04:40 2018 (r333572) > +++ head/usr.sbin/unbound/anchor/Makefile Sat May 12 17:10:36 2018 (r333573) > @@ -7,10 +7,10 @@ EXPATDIR= ${SRCTOP}/contrib/expat > > .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/smallapp ${UNBOUNDDIR}/doc > > -PROG= unbound-anchor > +PROG= local-unbound-anchor > SRCS= unbound-anchor.c > CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} -I${EXPATDIR}/lib > LIBADD= unbound bsdxml ssl crypto pthread > -MAN= unbound-anchor.8 > +MAN= local-unbound-anchor.8 > > .include > > Modified: head/usr.sbin/unbound/checkconf/Makefile > ============================================================================== > --- head/usr.sbin/unbound/checkconf/Makefile Sat May 12 17:04:40 2018 (r333572) > +++ head/usr.sbin/unbound/checkconf/Makefile Sat May 12 17:10:36 2018 (r333573) > @@ -6,10 +6,10 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound > > .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/smallapp ${UNBOUNDDIR}/util ${UNBOUNDDIR}/doc > > -PROG= unbound-checkconf > +PROG= local-unbound-checkconf And also here.... > SRCS= ub_event.c unbound-checkconf.c worker_cb.c > CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} > LIBADD= unbound pthread > -MAN= unbound-checkconf.8 > +MAN= local-unbound-checkconf.8 > > .include > > Modified: head/usr.sbin/unbound/control/Makefile > ============================================================================== > --- head/usr.sbin/unbound/control/Makefile Sat May 12 17:04:40 2018 (r333572) > +++ head/usr.sbin/unbound/control/Makefile Sat May 12 17:10:36 2018 (r333573) > @@ -6,10 +6,10 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound > > .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/smallapp ${UNBOUNDDIR}/util ${UNBOUNDDIR}/doc > > -PROG= unbound-control > +PROG= local-unbound-control > SRCS= ub_event.c unbound-control.c worker_cb.c > CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} > LIBADD= unbound crypto ssl pthread > -MAN= unbound-control.8 > +MAN= local-unbound-control.8 > > .include > > Modified: head/usr.sbin/unbound/daemon/Makefile > ============================================================================== > --- head/usr.sbin/unbound/daemon/Makefile Sat May 12 17:04:40 2018 (r333572) > +++ head/usr.sbin/unbound/daemon/Makefile Sat May 12 17:10:36 2018 (r333573) > @@ -6,11 +6,11 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound > > .PATH: ${UNBOUNDDIR} ${UNBOUNDDIR}/daemon ${UNBOUNDDIR}/util ${UNBOUNDDIR}/util/shm_side ${UNBOUNDDIR}/doc > > -PROG= unbound > +PROG= local-unbound > SRCS= acl_list.c cachedump.c daemon.c remote.c shm_main.c stats.c \ > ub_event.c unbound.c worker.c > CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} > LIBADD= unbound util ssl crypto pthread > -MAN= unbound.8 unbound.conf.5 > +MAN= local-unbound.8 local-unbound.conf.5 > > .include > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Sat May 12 18:07:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 776B7FC8B4E; Sat, 12 May 2018 18:07:54 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2731980060; Sat, 12 May 2018 18:07:54 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F10DD21C03; Sat, 12 May 2018 18:07:53 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CI7rbb009364; Sat, 12 May 2018 18:07:53 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CI7rQO009363; Sat, 12 May 2018 18:07:53 GMT (envelope-from des@FreeBSD.org) Message-Id: <201805121807.w4CI7rQO009363@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: des set sender to des@FreeBSD.org using -f From: =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= Date: Sat, 12 May 2018 18:07:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333574 - head/usr.sbin/unbound/setup X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/usr.sbin/unbound/setup X-SVN-Commit-Revision: 333574 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 18:07:54 -0000 Author: des Date: Sat May 12 18:07:53 2018 New Revision: 333574 URL: https://svnweb.freebsd.org/changeset/base/333574 Log: If the sole non-option command line argument is "none", remove any pre-existing forwarder configuration and set Unbound up to recurse. PR: 222902 MFC after: 1 week Modified: head/usr.sbin/unbound/setup/local-unbound-setup.sh Modified: head/usr.sbin/unbound/setup/local-unbound-setup.sh ============================================================================== --- head/usr.sbin/unbound/setup/local-unbound-setup.sh Sat May 12 17:10:36 2018 (r333573) +++ head/usr.sbin/unbound/setup/local-unbound-setup.sh Sat May 12 18:07:53 2018 (r333574) @@ -253,6 +253,18 @@ gen_unbound_conf() { } # +# Rename a file we are about to replace. +# +backup() { + local file="$1" + if [ -f "${file}" ] ; then + local bkfile="${file}.${bkext}" + echo "Original ${file} saved as ${bkfile}" + mv "${file}" "${bkfile}" + fi +} + +# # Replace one file with another, making a backup copy of the first, # but only if the new file is different from the old. # @@ -263,9 +275,7 @@ replace() { echo "${file} created" mv "${newfile}" "${file}" elif ! cmp -s "${file}" "${newfile}" ; then - local oldfile="${file}.${bkext}" - echo "original ${file} saved as ${oldfile}" - mv "${file}" "${oldfile}" + backup "${file}" mv "${newfile}" "${file}" else echo "${file} not modified" @@ -359,13 +369,20 @@ main() { # from resolv.conf. # forwarders="$@" - if [ -z "$forwarders" ] ; then + case "${forwarders}" in + [Nn][Oo][Nn][Ee]) + forwarders="none" + style=recursing + ;; + "") echo "Extracting forwarders from ${resolv_conf}." forwarders=$(get_nameservers <"${resolv_conf}") style=dynamic - else + ;; + *) style=static - fi + ;; + esac # # Generate forward.conf. @@ -377,6 +394,9 @@ main() { else echo "unbound will recurse." fi + elif [ "${forwarders}" = "none" ] ; then + echo "Forwarding disabled, unbound will recurse." + backup "${forward_conf}" else local tmp_forward_conf=$(mktemp -u "${forward_conf}.XXXXX") gen_forward_conf ${forwarders} | unexpand >"${tmp_forward_conf}" From owner-svn-src-head@freebsd.org Sat May 12 18:25:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 29513FC997B; Sat, 12 May 2018 18:25:52 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id B2C3B81E30; Sat, 12 May 2018 18:25:51 +0000 (UTC) (envelope-from des@des.no) Received: from next.des.no (smtp.des.no [194.63.250.102]) by smtp.des.no (Postfix) with ESMTP id B77F2BB04; Sat, 12 May 2018 18:25:43 +0000 (UTC) Received: by next.des.no (Postfix, from userid 1001) id EFC708169; Sat, 12 May 2018 20:25:43 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: "Rodney W. Grimes" Cc: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333573 - in head: . contrib/unbound/daemon contrib/unbound/doc contrib/unbound/smallapp etc/rc.d tools/build/mk usr.sbin/unbound usr.sbin/unbound/anchor usr.sbin/unbound/checkconf usr.... In-Reply-To: <201805121714.w4CHEsCq081766@pdx.rh.CN85.dnsmgr.net> (Rodney W. Grimes's message of "Sat, 12 May 2018 10:14:54 -0700 (PDT)") References: <201805121714.w4CHEsCq081766@pdx.rh.CN85.dnsmgr.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (berkeley-unix) Date: Sat, 12 May 2018 20:25:43 +0200 Message-ID: <86sh6wvihk.fsf@next.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 18:25:52 -0000 "Rodney W. Grimes" writes: > Dag-Erling Sm=C3=B8rgrav writes: > > Modified: head/contrib/unbound/doc/unbound-checkconf.8.in > > =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/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 17:04:40= 2018 (r333572) > > +++ head/contrib/unbound/doc/unbound-checkconf.8.in Sat May 12 17:10:36= 2018 (r333573) > > @@ -8,7 +8,7 @@ > > .\" > > .\" > > .SH "NAME" > > -unbound\-checkconf > > +.B unbound\-checkconf > Is that one missing a local-, or did unbound-checkconf not get > renamed? This was just a markup error, the man pages are preprocessed at build time: > > Modified: head/usr.sbin/unbound/Makefile.inc > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/usr.sbin/unbound/Makefile.inc Sat May 12 17:04:40 2018 (r33357= 2) > > +++ head/usr.sbin/unbound/Makefile.inc Sat May 12 17:10:36 2018 (r33357= 3) > > @@ -4,4 +4,14 @@ NO_WERROR=3D true > > NO_WTHREAD_SAFETY=3D true > > PACKAGE=3D unbound > >=20=20 > > +.for man in ${MAN} > > +${man}: ${UNBOUNDDIR}/doc/${man:S/local-//} > > + sed -E \ > > + -e 's/\<(fI)?unbound\>/\1local-unbound/g' \ > > + -e 's/\<(fI)?Unbound\>/Local-unbound/g' \ > > + -e 's/\/local-unbound/\/unbound/g' \ > > + <${.ALLSRC} >${.TARGET} > > +CLEANFILES +=3D ${man} > > +.endfor > > + > > .include "../Makefile.inc" DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@freebsd.org Sat May 12 20:00:30 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63407FCE4CE; Sat, 12 May 2018 20:00:30 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1132E6ED2F; Sat, 12 May 2018 20:00:30 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E4EB122E09; Sat, 12 May 2018 20:00:29 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CK0Tnb065125; Sat, 12 May 2018 20:00:29 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CK0TB8065122; Sat, 12 May 2018 20:00:29 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201805122000.w4CK0TB8065122@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Sat, 12 May 2018 20:00:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333575 - in head/sys: dev/hwpmc kern X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: dev/hwpmc kern X-SVN-Commit-Revision: 333575 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 20:00:30 -0000 Author: mmacy Date: Sat May 12 20:00:29 2018 New Revision: 333575 URL: https://svnweb.freebsd.org/changeset/base/333575 Log: hwpmc/epoch - don't reference domain if NUMA is not set It appears that domain information is set correctly independent of whether or not NUMA is defined. However, there is no memory backing secondary domains leading to allocation failure. Reported by: pho@, np@ Approved by: sbruno@ Modified: head/sys/dev/hwpmc/hwpmc_logging.c head/sys/dev/hwpmc/hwpmc_mod.c head/sys/kern/subr_epoch.c Modified: head/sys/dev/hwpmc/hwpmc_logging.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_logging.c Sat May 12 18:07:53 2018 (r333574) +++ head/sys/dev/hwpmc/hwpmc_logging.c Sat May 12 20:00:29 2018 (r333575) @@ -61,6 +61,24 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef NUMA +#define NDOMAINS vm_ndomains + +static int +getdomain(int cpu) +{ + struct pcpu *pc; + + pc = pcpu_find(cpu); + return (pc->pc_domain); +} +#else +#define NDOMAINS 1 +#define malloc_domain(size, type, domain, flags) malloc((size), (type), (flags)) +#define free_domain(addr, type) free(addr, type) +#define getdomain(cpu) 0 +#endif + /* * Sysctl tunables */ @@ -1148,7 +1166,6 @@ void pmclog_initialize() { int domain, cpu; - struct pcpu *pc; struct pmclog_buffer *plb; if (pmclog_buffer_size <= 0 || pmclog_buffer_size > 16*1024) { @@ -1170,20 +1187,18 @@ pmclog_initialize() pmc_nlogbuffers_pcpu = PMC_NLOGBUFFERS_PCPU; pmclog_buffer_size = PMC_LOG_BUFFER_SIZE; } - for (domain = 0; domain < vm_ndomains; domain++) { + for (domain = 0; domain < NDOMAINS; domain++) { pmc_dom_hdrs[domain] = malloc_domain(sizeof(struct pmc_domain_buffer_header), M_PMC, domain, M_WAITOK|M_ZERO); mtx_init(&pmc_dom_hdrs[domain]->pdbh_mtx, "pmc_bufferlist_mtx", "pmc-leaf", MTX_SPIN); TAILQ_INIT(&pmc_dom_hdrs[domain]->pdbh_head); } CPU_FOREACH(cpu) { - if (CPU_ABSENT(cpu)) - continue; - pc = pcpu_find(cpu); - domain = pc->pc_domain; + domain = getdomain(cpu); + KASSERT(pmc_dom_hdrs[domain] != NULL, ("no mem allocated for domain: %d", domain)); pmc_dom_hdrs[domain]->pdbh_ncpus++; } - for (domain = 0; domain < vm_ndomains; domain++) { + for (domain = 0; domain < NDOMAINS; domain++) { int ncpus = pmc_dom_hdrs[domain]->pdbh_ncpus; int total = ncpus*pmc_nlogbuffers_pcpu; @@ -1215,7 +1230,7 @@ pmclog_shutdown() mtx_destroy(&pmc_kthread_mtx); - for (domain = 0; domain < vm_ndomains; domain++) { + for (domain = 0; domain < NDOMAINS; domain++) { mtx_destroy(&pmc_dom_hdrs[domain]->pdbh_mtx); while ((plb = TAILQ_FIRST(&pmc_dom_hdrs[domain]->pdbh_head)) != NULL) { TAILQ_REMOVE(&pmc_dom_hdrs[domain]->pdbh_head, plb, plb_next); Modified: head/sys/dev/hwpmc/hwpmc_mod.c ============================================================================== --- head/sys/dev/hwpmc/hwpmc_mod.c Sat May 12 18:07:53 2018 (r333574) +++ head/sys/dev/hwpmc/hwpmc_mod.c Sat May 12 20:00:29 2018 (r333575) @@ -76,6 +76,14 @@ __FBSDID("$FreeBSD$"); #include "hwpmc_soft.h" +#ifdef NUMA +#define NDOMAINS vm_ndomains +#else +#define NDOMAINS 1 +#define malloc_domain(size, type, domain, flags) malloc((size), (type), (flags)) +#define free_domain(addr, type) free(addr, type) +#endif + /* * Types */ Modified: head/sys/kern/subr_epoch.c ============================================================================== --- head/sys/kern/subr_epoch.c Sat May 12 18:07:53 2018 (r333574) +++ head/sys/kern/subr_epoch.c Sat May 12 20:00:29 2018 (r333575) @@ -119,7 +119,7 @@ static __read_mostly int inited; static void epoch_call_task(void *context); -#if defined(__powerpc64__) || defined(__powerpc__) +#if defined(__powerpc64__) || defined(__powerpc__) || !defined(NUMA) static bool usedomains = false; #else static bool usedomains = true; From owner-svn-src-head@freebsd.org Sat May 12 20:22:21 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9B23FCF51D; Sat, 12 May 2018 20:22:20 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 936AC7188E; Sat, 12 May 2018 20:22:20 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f48.google.com (mail-it0-f48.google.com [209.85.214.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id 55FE0278AB; Sat, 12 May 2018 20:22:20 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f48.google.com with SMTP id c3-v6so6272434itj.4; Sat, 12 May 2018 13:22:20 -0700 (PDT) X-Gm-Message-State: ALKqPwfoo1lFjPIlcpTJ7GzyrsaadiHEAOXf3lCIK7x22HXXDuq8WD/T Fe2UP9OPMqXSUEtknLpmfB/qAnxGfaCdVIpFydo= X-Google-Smtp-Source: AB8JxZpDB6mWLlsZIDY9ie/964TvJQ/XrMqsBcLEzg9wL/6oKjrNt/4JqYuxQ7Fr/APgEB1F8MmIIWe3UUpvz+DeLfE= X-Received: by 2002:a24:4455:: with SMTP id o82-v6mr3385515ita.4.1526156539705; Sat, 12 May 2018 13:22:19 -0700 (PDT) MIME-Version: 1.0 References: <201805120126.w4C1QYMu097965@repo.freebsd.org> <20180512073516.GA68235@x2.osted.lan> In-Reply-To: <20180512073516.GA68235@x2.osted.lan> From: Matthew Macy Date: Sat, 12 May 2018 13:22:09 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333509 - in head/sys: dev/hwpmc kern sys To: Peter Holm Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 20:22:21 -0000 Fixed in 333575. On Sat, May 12, 2018 at 00:35 Peter Holm wrote: > On Sat, May 12, 2018 at 01:26:34AM +0000, Matt Macy wrote: > > Author: mmacy > > Date: Sat May 12 01:26:34 2018 > > New Revision: 333509 > > URL: https://svnweb.freebsd.org/changeset/base/333509 > > > > Log: > > hwpmc(9): Make pmclog buffer pcpu and update constants > > > > On non-trivial SMP systems the contention on the pmc_owner mutex leads > > to a substantial number of samples captured being from the pmc process > > itself. This change a) makes buffers larger to avoid contention on the > > global list b) makes the working sample buffer per cpu. > > > > Run pmcstat in the background (default event rate of 64k): > > pmcstat -S UNHALTED_CORE_CYCLES -O /dev/null sleep 600 & > > > > Before: > > make -j96 buildkernel -s >&/dev/null 3336.68s user 24684.10s system > 7442% cpu 6:16.50 total > > > > After: > > make -j96 buildkernel -s >&/dev/null 2697.82s user 1347.35s system > 6058% cpu 1:06.77 total > > > > For more realistic overhead measurement set the sample rate for ~2khz > > on a 2.1Ghz processor: > > pmcstat -n 1050000 -S UNHALTED_CORE_CYCLES -O /dev/null sleep 6000 & > > > > Collecting 10 samples of `make -j96 buildkernel` from each: > > > > x before > > + after > > > > real time: > > N Min Max Median Avg > Stddev > > x 10 76.4 127.62 84.845 88.577 > 15.100031 > > + 10 59.71 60.79 60.135 60.179 > 0.29957192 > > Difference at 95.0% confidence > > -28.398 +/- 10.0344 > > -32.0602% +/- 7.69825% > > (Student's t, pooled s = 10.6794) > > > > system time: > > N Min Max Median Avg > Stddev > > x 10 2277.96 6948.53 2949.47 3341.492 > 1385.2677 > > + 10 1038.7 1081.06 1070.555 1064.017 > 15.85404 > > Difference at 95.0% confidence > > -2277.47 +/- 920.425 > > -68.1574% +/- 8.77623% > > (Student's t, pooled s = 979.596) > > > > x no pmc > > + pmc running > > real time: > > > > HEAD: > > N Min Max Median Avg > Stddev > > x 10 58.38 59.15 58.86 58.847 > 0.22504567 > > + 10 76.4 127.62 84.845 88.577 > 15.100031 > > Difference at 95.0% confidence > > 29.73 +/- 10.0335 > > 50.5208% +/- 17.0525% > > (Student's t, pooled s = 10.6785) > > > > patched: > > N Min Max Median Avg > Stddev > > x 10 58.38 59.15 58.86 58.847 > 0.22504567 > > + 10 59.71 60.79 60.135 60.179 > 0.29957192 > > Difference at 95.0% confidence > > 1.332 +/- 0.248939 > > 2.2635% +/- 0.426506% > > (Student's t, pooled s = 0.264942) > > > > system time: > > > > HEAD: > > N Min Max Median Avg > Stddev > > x 10 1010.15 1073.31 1025.465 1031.524 > 18.135705 > > + 10 2277.96 6948.53 2949.47 3341.492 > 1385.2677 > > Difference at 95.0% confidence > > 2309.97 +/- 920.443 > > 223.937% +/- 89.3039% > > (Student's t, pooled s = 979.616) > > > > patched: > > N Min Max Median Avg > Stddev > > x 10 1010.15 1073.31 1025.465 1031.524 > 18.135705 > > + 10 1038.7 1081.06 1070.555 1064.017 > 15.85404 > > Difference at 95.0% confidence > > 32.493 +/- 16.0042 > > 3.15% +/- 1.5794% > > (Student's t, pooled s = 17.0331) > > > > Reviewed by: jeff@ > > Approved by: sbruno@ > > Differential Revision: https://reviews.freebsd.org/D15155 > > > > Modified: > > head/sys/dev/hwpmc/hwpmc_amd.c > > head/sys/dev/hwpmc/hwpmc_core.c > > head/sys/dev/hwpmc/hwpmc_e500.c > > head/sys/dev/hwpmc/hwpmc_intel.c > > head/sys/dev/hwpmc/hwpmc_logging.c > > head/sys/dev/hwpmc/hwpmc_mod.c > > head/sys/dev/hwpmc/hwpmc_mpc7xxx.c > > head/sys/dev/hwpmc/hwpmc_piv.c > > head/sys/dev/hwpmc/hwpmc_ppc970.c > > head/sys/dev/hwpmc/hwpmc_ppro.c > > head/sys/dev/hwpmc/hwpmc_soft.c > > head/sys/kern/kern_pmc.c > > head/sys/sys/pmc.h > > head/sys/sys/pmckern.h > > > > Modified: head/sys/dev/hwpmc/hwpmc_amd.c > > > ============================================================================== > > --- head/sys/dev/hwpmc/hwpmc_amd.c Fri May 11 22:16:23 2018 > (r333508) > > Got this during boot: > > ada1: Serial Number 15150F3BC143 > ada1: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes) > ada1: Command Queueing enabled > ada1: 976762MB (2000409264 512 byte sectors) > > > Fatal trap 12: page fault while in kernel mode > cpuid = 103; apic id = 7b > fault virtual address = 0x38 > fault code = supervisor write data, page not present > instruction pointer = 0x20:0xffffffff826d0a3e > stack pointer = 0x28:0xffffffff827c62c0 > frame pointer = 0x28:0xffffffff827c62f0 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, long 1, def32 0, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 0 (swapper) > [ thread pid 0 tid 100000 ] > Stopped at pmclog_initialize+0x15e: addl $0x1,ll+0x17(%rax) > db> bt > Tracing pid 0 tid 100000 td 0xffffffff81ff1160 > pmclog_initialize() at pmclog_initialize+0x15e/frame 0xffffffff827c62f0 > load() at load+0x1097/frame 0xffffffff827c6350 > kern_syscall_module_handler() at kern_syscall_module_handler+0x2a1/frame > 0xffffffff827c63a0 > module_register_init() at module_register_init+0xc0/frame > 0xffffffff827c63d0 > mi_startup() at mi_startup+0x118/frame 0xffffffff827c63f0 > btext() at btext+0x2c > db> x/s version > version: FreeBSD 12.0-CURRENT #2 r333519: Sat May 12 09:14:17 CEST > 2018\012 pho@flix1a.netperf.freebsd.org: > /usr/obj/usr/src/amd64.amd64/sys/PHO\012 > db> show registers > cs 0x20 > ds 0x3b ll+0x1a > es 0x3b ll+0x1a > fs 0x13 > gs 0x28 ll+0x7 > ss 0x28 ll+0x7 > rax 0 > rcx 0xffffffffffffffff > rdx 0xffffffff826e0a21 ucp_events+0x2d81 > rbx 0x34 ll+0x13 > rsp 0xffffffff827c62c0 > rbp 0xffffffff827c62f0 > rsi 0xffffffff81b16340 lock_class_mtx_spin > rdi 0x34 ll+0x13 > r8 0x20000 > r9 0x32 ll+0x11 > r10 0xfffff8183fd1f380 > r11 0 > r12 0x67 ll+0x46 > r13 0x67 ll+0x46 > r14 0x1 > r15 0x68 ll+0x47 > rip 0xffffffff826d0a3e pmclog_initialize+0x15e > rflags 0x10247 _binary_t5fw_cfg_uwire_txt_size+0xac98 > pmclog_initialize+0x15e: addl $0x1,ll+0x17(%rax) > db> > > - Peter >